.NET 8 工业自动化流程编辑器,不用写代码,拖拽生成PLC数据流
前言
工业自动化领域有一个长期存在的痛点:PLC程序逻辑的编写和调试高度依赖厂商工具,不同品牌的设备之间打通数据流程更是麻烦。传统做法要么写大量中转代码,要么依赖专用的网关硬件,成本高且灵活性差。
用流程图的方式编排自动化逻辑,让Modbus和西门子S7协议的数据流动变得可视化。它把PLC数据读取、逻辑判断、数值转换、写入控制这些操作都做成了可拖拽的节点,配上高性能的后端执行引擎,算是给工业自动化场景提供了一个低门槛的解决方案。
项目介绍
一个基于Blazor和ASP.NET Core构建的工业自动化流程编辑器。用户可以在浏览器里拖拽节点、画连线,组成一套完整的数据处理流程,然后由后端引擎并发执行。这个项目支持Modbus TCP和西门子S7两种主流工业协议,能直接跟PLC设备通信。
流程执行引擎采用异步非阻塞设计,配合背压控制和熔断器机制,保证在高负载下也能稳定运行。目前项目代码完全开源,结构清晰,适合做二次开发或者直接集成到现有的MES系统中。
项目功能
|
|
|
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
项目特点
纯Web端编辑器:不需要安装任何客户端软件,有浏览器就能用
跨平台运行:基于.NET 8,后端可跑在Windows、Linux、容器里
高性能执行:理论吞吐量5万消息/秒,平均延迟控制在5毫秒左右
轻量架构:没有过度依赖第三方框架,核心执行引擎自己实现
模块化设计:共享模型层、API层、Web前端层分离,方便替换或扩展
工业协议内置:Modbus和S7协议直接集成,不用额外装驱动或中间件
项目技术
|
|
|
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
项目结构分为三个核心部分:
-
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、#可视化编程、#高性能执行引擎、#背压控制、#低代码
作者:小码编匠

.NET 10 实现工业调试必备的通信工具(支持串口/Modbus/TCP/OPC UA)
WPF 工具 + 多模型 AI 代理让 Copilot 用上国产大模型
15个高质量开源项目:带你玩转C#运动控制、机器视觉与现代化UI
WinForm + SunnyUI 的智能图书管理系统(用户/管理员双端)
Element 风格的 WPF 后台管理系统,免费开源,开箱即用
开箱即用的 .NET 8 + Avalonia + SukiUI 桌面应用模板
.NET 8 + S7.Net Plus 开源PLC监控系统,支持西门子与Modbus双协议
5分钟搭建工控 HMI:WinForm 状态/报警/趋势控件库及模板
WPF + Halcon/OpenCvSharp 的锂电池极耳视觉检测系统
.NET 8+MAUI跨平台 IoT 移动端,实时监控水温、转速与光强
WPF 表格终于能筛选了!支持嵌套对象、百万级数据、开箱即用
C# 工业机器视觉平台,实现 OpenCV 与 深度学习算法的可视化编排
填补.NET 生态空白:面向工业视觉的高性能 3D 点云/网格处理库
WPF + MVVM架构的开源高效工业级电池管理系统(BMS)
.NET 9+ Avalonia + Prism 高性能、支持 AOT 跨平台桌面应用
一个真正好用的 .NET 开源短链系统:支持生成 + 实时监控
WPF 工业视觉检测系统:双工位(面阵 + 线扫)独立运行架构
.NET 10 + CQRS + MediatR 一个跨平台文档管理系统
谁说 WinForm 不能高颜值?看这个 Ant Design 无边框收银系统
WinForm + SQL Server 企业物资管理系统(库存、出入库、审批全搞定)
基于 WinForm、Halcon、OpenCV的多功能图像处理与机器视觉框架
WPF + Halcon + YOLO 工业视觉检测的全能上位机
觉得有收获?不妨分享让更多人受益
关注「DotNet技术匠」,共同提升技术实力




夜雨聆风