PLCSharp — 开源 PLC 风格上位机控制系统

📅 2026年07月20日 📂 技术

PLCSharp — 开源 PLC 风格上位机控制系统

最近在 GitHub 上发现了一个很有意思的开源项目——PLCSharp,一个基于 WPF/.NET 8 的 PLC 风格上位机软件,特此分享一下。

什么是 PLCSharp?

PLCSharp 是一套工业上位机控制系统,用户可以通过灵活配置硬件、界面、视觉工具、运动控制和编写工艺流程脚本,快速完成工业自动化项目的开发。

技术交流 QQ 群:109869009

界面展示

主界面可灵活设置,包括:

界面 1 界面 2 界面 3 界面 4 界面 5 界面 6 界面 7 界面 8 界面 9 界面 10

技术栈

项目使用了一套现代 .NET 技术栈:

技术 用途
.NET 8 (net8.0-windows) 运行时
WPF + Prism.DryIoc UI 框架 + MVVM 依赖注入
OpenCvSharp4 机器视觉处理
EF Core SQLite 本地数据持久化
Natasha C# 动态编译(用于工艺流程脚本)

项目架构

PLCSharp 的分层设计清晰合理:

层级 说明
Core/ 基础设施层:Prism 扩展、通用模型、工具类、自定义控件、图标字体
Models/ 全局数据模型:EF Core 数据库上下文、全局变量、导航状态
VVMs/ 业务模块(View-ViewModel 对):认证、主页、通讯、运动控制、视觉、工作流、配方、机器人

业务模块(VVMs)详解

  • Authority — 用户认证与权限管理
  • Connects — 通讯管理:支持 Modbus TCP/RTU、Socket、SerialPort
  • MotionController — 运动控制:支持固高科技 EMC/SMC 系列板卡
  • Vision机器视觉引擎:海康相机封装 + 视觉流程步骤处理器
  • Workflows — 工作流引擎:流程步骤编排、条件分支、动态编译执行
  • GlobalVariables — 全局变量管理:变量列表、编辑器、导入导出
  • Recipe — 配方管理
  • Robots — 机器人配置

核心亮点

1. 视觉流程引擎

PLCSharp 内置了一套完整的机器视觉流程引擎,采用策略模式设计:

  • 图像获取:海康相机拍照、文件读取、全局/局部图像
  • 图像处理:灰度化、阈值分割、通道拆分、坐标转换
  • 视觉算法:卡尺寻边、卡尺找圆、卡尺找旋转矩形、ORB 特征匹配、两线交点检测
  • ROI 绘制:内置 ImageEdit 控件,支持直线、圆、旋转矩形的拖拽绘制和调整

每种视觉工具对应一个独立的 Handler,新增算法只需添加枚举 + 实现接口,扩展性极强。

2. 运动控制

支持固高科技 EMC/SMC 系列运动控制板卡,提供轴配置、点位管理等完整功能,适合多轴联动控制场景。

3. 通讯管理

内置 Modbus TCP/RTU、Socket、SerialPort 等工业通讯协议,方便与 PLC、传感器、执行器等设备对接。

4. 工作流引擎

通过 Natasha 实现 C# 脚本的动态编译执行,支持工艺流程的步骤编排和条件分支,灵活应对不同的生产工艺。

适用场景

  • 需要快速搭建工业视觉检测系统
  • 替代传统 PLC + 触摸屏 方案的上位机开发
  • 自动化设备的集成控制软件开发
  • 学习 WPF + Prism + 机器视觉 的工业级项目参考

免责声明

项目作者特别声明:本项目仅用于学习交流,未经严格测试及安全认证,请勿用于实际生产环境,作者不对使用该软件所造成的任何直接和间接后果负责。

获取项目


感兴趣的朋友可以 Star 关注一下,后续我也会尝试基于这个项目做一些二次开发和功能扩展。

An error has occurred. This application may no longer respond until reloaded. Reload 🗙