View Code? Open in Web Editor
NEW
UwUtopia Is A New Generation of SCADA System
License: MIT License
uwutopia's Introduction
UwUtopia
- Full managed code
- Developer-friendly
- Clean code and design are preferred for future implementation
- No Legacy Code
- No Legacy Protocol
- No Legacy Solution
- Target on Linux/Windows
- This project is not intended for mobile platforms
- HMI is only client NO MORE
- ModbusTCP/OPC UI/MQTT NO MORE
- We will not use FBD or IEC 61131-3 programming language for HMI scripting because its cringe and not align with modern approaches to UX/UI development
- C# and Lua(probably) HMI scripting
- We will support touch for platforms that are compatible with Avalonia UI
- Support C# and Lua scripting to generate HMI panels
- WYSIWYG editor for HMI
- Beautiful and consistent property view
- Reduce the pain during HMI coding
- We will store timeline process values in a specialized database, not using MS SQL, PostgreSQL, or MySQL because - cringe
- We will store configuration in an embedded database, not using MS SQL, PostgreSQL, or MySQL because - cringe
- Complete storage configuration from UI, including redundancy policies, storage strategies, and more
- Avalonia UI for HMI/Editor
- Zero Reactive UI
- Rx when needed
- Dotnet for everything else
MVP Roadmap -> #1
uwutopia's People
Contributors
Watchers
uwutopia's Issues
Unfortunately, there is currently no understanding of how it will work
Add the ability to create screens where control elements will be located
I think it's worth trying our luck and generating the logo using AI
We need to add the ability to check the connection from the editor
I think we should make it possible to add required connections in the project tree. These connections will then be available in the TagTable
MVP Roadmap
The actual goal is to implement a minimum viable product with the following features
Features
Runtime
- Communication implementation
- Scripting machine implementation
Communication
- Implement ModbusTCP protocol for communication with controller or device
Editor
- Create a communication editor to add and configure the ModbusTCP protocol
- Create simple controls
- Button
- SVG image
- Label
- IO field with input type
- Add script machine for controls scripting
- Create canvas for control location
- Create a serialization/deserialization mechanism for the canvas with controls and scripts
Tags implementation for Editor
- Create TagTable that add and remove HMI tags
- Protocol Tag
- Name
- Adress
- Type
- Protocol Name
- Types of supported communication (periodically, if change, etc)
- Quality Code
- Value
- HMI Tag
Trend implementation
- Create trend configuration
- Create trend control
- Create DB connect for save historical data
HMI
- Load project file from editor and start runtime
We need to design access policies
We need to consider the possibility of using either nmodbus or easymodbus
But the second one seems to be no longer supported
Right now, I can only think about which screen should the runtime start from
- Button
- Label
- Svg image
- IO field