乐于分享
好东西不私藏

.NET 8 工业自动化流程编辑器,不用写代码,拖拽生成PLC数据流

.NET 8 工业自动化流程编辑器,不用写代码,拖拽生成PLC数据流

前言

工业自动化领域有一个长期存在的痛点:PLC程序逻辑的编写和调试高度依赖厂商工具,不同品牌的设备之间打通数据流程更是麻烦。传统做法要么写大量中转代码,要么依赖专用的网关硬件,成本高且灵活性差。

用流程图的方式编排自动化逻辑,让Modbus和西门子S7协议的数据流动变得可视化。它把PLC数据读取、逻辑判断、数值转换、写入控制这些操作都做成了可拖拽的节点,配上高性能的后端执行引擎,算是给工业自动化场景提供了一个低门槛的解决方案。

项目介绍

一个基于Blazor和ASP.NET Core构建的工业自动化流程编辑器。用户可以在浏览器里拖拽节点、画连线,组成一套完整的数据处理流程,然后由后端引擎并发执行。这个项目支持Modbus TCP和西门子S7两种主流工业协议,能直接跟PLC设备通信。

流程执行引擎采用异步非阻塞设计,配合背压控制和熔断器机制,保证在高负载下也能稳定运行。目前项目代码完全开源,结构清晰,适合做二次开发或者直接集成到现有的MES系统中。

项目功能

功能分类
具体能力
流程可视化编辑
浏览器内拖拽节点、连接线,实时保存流程图配置
PLC协议通信
Modbus TCP(线圈、寄存器、离散输入等全部功能码)和西门子S7(S7-1200/1500/300/400系列)
执行引擎
异步消息队列、线程池管理、优先级调度、对象池复用
稳定性机制
背压控制、流量限制、熔断器保护、超时控制
性能监控
实时查看流程吞吐量、节点延迟、系统资源占用
节点类型
注入节点、调试节点、函数节点、开关节点、延迟节点、PLC读写节点

项目特点

纯Web端编辑器:不需要安装任何客户端软件,有浏览器就能用

跨平台运行:基于.NET 8,后端可跑在Windows、Linux、容器里

高性能执行:理论吞吐量5万消息/秒,平均延迟控制在5毫秒左右

轻量架构:没有过度依赖第三方框架,核心执行引擎自己实现

模块化设计:共享模型层、API层、Web前端层分离,方便替换或扩展

工业协议内置:Modbus和S7协议直接集成,不用额外装驱动或中间件

项目技术

技术领域
采用方案
后端框架
ASP.NET Core(.NET 8)
前端框架
Blazor WebAssembly
高性能队列
System.Threading.Channels
协议库
自研Modbus TCP、西门子S7实现
并发模型
异步非阻塞 + 线程池
监控指标
自定义PerformanceMonitor
配置存储
JSON文件 + 内存缓存

项目结构分为三个核心部分:

  • FlowDesigner.Shared:存放流程模型、节点定义、执行状态等公共数据结构

  • FlowDesigner.Api:提供流程执行、节点调度、PLC通信的后端服务

  • FlowDesigner.Web:Blazor前端,负责流程编辑器的界面和交互

项目效果

实际运行时的典型工作流程是这样的:

1、打开浏览器访问 http://localhost:5001,进入编辑器界面

2、从左侧节点库拖拽一个”Modbus读取”节点到画布上,配置PLC的IP地址、寄存器地址和读取长度

3、再拖一个”函数节点”作为中间处理,写一段简单的JS表达式做数据换算(比如原始值乘以系数)

4、最后拖一个”Modbus写入”节点,把处理后的数值写回另一个寄存器

5、用连线把这三个节点串起来,保存流程

6、后端执行引擎加载这个流程定义,按照设定的触发条件(定时或事件)开始跑数据

整个过程完全可视化,逻辑修改只需要在编辑器里重新连线或调整节点参数,不用改代码、不用重启服务。对于那些需要频繁调整数据处理逻辑的产线场景,这套模式能省下大量时间。

性能方面,引擎采用Channel作为消息传递的载体,配合对象池减少GC压力。单机实测在普通服务器上可以同时跑100个流程实例,每个消息的处理延迟基本都在毫秒级。背压控制会在队列积压超过阈值时自动限流,防止系统被突发流量冲垮。

项目源码

项目结构包含以下关键文件:

FlowDesigner.sln:解决方案文件,用Visual Studio或Rider打开即可

src/FlowDesigner.Api/:后端服务代码,Controllers、Services、配置都在这里

src/FlowDesigner.Web/:Blazor前端,Components和Pages是主要关注点

src/FlowDesigner.Shared/:模型定义,包括Flow、FlowNode、PlcModels等

快速跑起来的步骤

1、确保本地安装了.NET 8 SDK

2、clone代码后执行 dotnet build

3、开两个终端窗口,一个进到Api目录运行 dotnet run --urls "http://localhost:5000"

4、另一个进到Web目录运行 dotnet run --urls "http://localhost:5001"

5、访问5001端口开始使用,5000端口的Swagger文档可以查看API细节

注意事项

项目目前处于开发阶段

PLC 通讯功能需要真实硬件设备测试

性能指标为理论值,实际取决于硬件配置

为了防止丢失,可以在评论区留言关键字自动化流程编辑器,即可获取完整源码地址。

总结

项目提供了一个很实用的思路:把工业自动化的数据流处理做成可视化流程编排。它没有试图做一个万能平台,而是聚焦在Modbus和S7这两个最常用的工业协议上,把读写操作、数据转换、逻辑判断这些高频操作用节点的方式标准化了。

对于需要快速搭建数据采集、设备联动的场景,这套方案可以直接拿来用或者稍微改改就能上生产。高性能执行引擎和稳定性机制也是值得单独拿出来复用的模块。当然,项目还在开发阶段,PLC通讯部分需要更多真实设备测试来验证稳定性,但整体的架构和设计思路已经相当清晰。

关键词

Flow Designer、Blazor、#工业自动化#流程编辑器#PLC通讯#Modbus TCP、#西门子S7、ASP.NET Core、#可视化编程#高性能执行引擎#背压控制#低代码

最后
如果你觉得这篇文章对你有帮助,不妨点个赞支持一下!你的支持是我继续分享知识的动力。如果有任何疑问或需要进一步的帮助,欢迎随时留言。也可以加入微信公众号[DotNet技术匠] 社区,与其他热爱技术的同行一起交流心得,共同成长!

作者:小码编匠

出处:gitee.com/smallcore/DotNetCore
声明:网络内容,仅供学习,尊重版权,侵权速删,歉意致谢!
END
方便大家交流、资源共享和共同成长
纯技术交流群,需要加入的小伙伴请扫码,并备注加群

推荐阅读

.NET 10 实现工业调试必备的通信工具(支持串口/Modbus/TCP/OPC UA)

WPF 工具 + 多模型 AI 代理让 Copilot 用上国产大模型

C# 高颜值工业设备监控上位机,支持多参数实时采集

C# 工控开发打造专业级运动控制系统

.NET 8 + WPF 的温湿度远程监测上位机系统

C# + VisionMaster 的通用视觉控制上位机

WinForm 开发的机器视觉自动化上位机

无硬件如何学上位机?C# 开发的雷赛运动控制卡仿真软件

15个高质量开源项目:带你玩转C#运动控制、机器视觉与现代化UI

WinForm + SunnyUI 的智能图书管理系统(用户/管理员双端)

Element 风格的 WPF 后台管理系统,免费开源,开箱即用

开箱即用的 .NET 8 + Avalonia + SukiUI 桌面应用模板

.NET 8 + S7.Net Plus 开源PLC监控系统,支持西门子与Modbus双协议

5分钟搭建工控 HMI:WinForm 状态/报警/趋势控件库及模板

WPF + Halcon/OpenCvSharp 的锂电池极耳视觉检测系统

C# 自动化设备运动控制上位机模拟系统

.NET 8+MAUI跨平台 IoT 移动端,实时监控水温、转速与光强

一款高效易用的 WinForm 端口扫描工具

WPF 表格终于能筛选了!支持嵌套对象、百万级数据、开箱即用

C# 工业机器视觉平台,实现 OpenCV 与 深度学习算法的可视化编排

填补.NET 生态空白:面向工业视觉的高性能 3D 点云/网格处理库

WPF 打造可视化标签打印工具:自由绘制,所见即所得

WPF + MVVM架构的开源高效工业级电池管理系统(BMS)

.NET 9+ Avalonia + Prism 高性能、支持 AOT 跨平台桌面应用

开源、有文档、能上线的 .NET + Vue 通用权限系统

一个真正好用的 .NET 开源短链系统:支持生成 + 实时监控

.NET 开源串口转发工具,工业协议调试 + 自动应答

WPF 工业视觉检测系统:双工位(面阵 + 线扫)独立运行架构

.NET 10 + CQRS + MediatR 一个跨平台文档管理系统

WinForm + Modbus 上位机温湿度数据采集系统

超实用!一个专为工控量身打造的 WinForm 控件库

基于 C# 的轻量级离线工业语音播报方案

.NET 8 高性能跨平台设备健康监测上位机系统

谁说 WinForm 不能高颜值?看这个 Ant Design 无边框收银系统

WinForm + SQL Server 企业物资管理系统(库存、出入库、审批全搞定)

WinForm 做了个医院信息管理系统,支持多角色权限

WPF +虚拟PLC 实现的工业视觉检测线模拟系统

本月.NET干货:流式菜单、高颜值控件库与硬核视觉实战

基于 WinForm、Halcon、OpenCV的多功能图像处理与机器视觉框架

WPF + Halcon + YOLO 工业视觉检测的全能上位机

零依赖!WinForm 车牌识别系统开发全流程(算法实现+模块拆解)

C# 运动控制流程引擎:实现类 PLC 的启动与暂停功能

觉得有收获?不妨分享让更多人受益

关注「DotNet技术匠」,共同提升技术实力

收藏
点赞
分享
在看