工控项目经常是这样的节奏:
方案已经确定下来了,PLC也已经选好了,但客户催着要进行调试和运行。
协议驱动要写,数据归档要做,预警逻辑要实现,界面也要开发。
等基础功能全部开发完成,工期也过了大半的时候,真正的业务逻辑才开始编写。
最近刷到一个用.NET做的SCADA框架,把网关,采集,界面开发都集成了起来。
SharpSCADA 是一个用 C# 和 .NET Framework 写的轻量级工控网关。
一般的组态软件不是价格贵就是功能简单。
而 SharpSCADA。
把工控网关、数据采集、组态界面等全部集成到一个系统中来。
经常做工控数据采集的开发者,可以关注一下。
下面我们看看它有哪些独特功能。
多种品牌的PLC协议统一封装,一个接口解决。
工厂车间里经常西门子、AB、施耐德 PLC 混用,传统方案要么买多套专用软件,要么自己写通讯协议对接。
买软件贵,自己写库费时间,做项目调试时抓瞎。
SharpSCADA 把 Profinet、EtherNetIP、Modbus TCP/RTU、OPC DA等主流协议进行了封装,用了类似 OPC 的接口来构建网关结构。
一个网关服务端就可以管理多个品牌的PLC通信,不用再一套一套地去查找库了。
协议只用几行代码就可以实现:
<driver name="Siemens" type="SiemensDriver" ip="192.168.1.10" rack="0" slot="2"></driver><driver name="Modbus" type="ModbusDriver" ip="192.168.1.20" port="502"></driver>以前调西门子 1200 要找专门的库,调 AB PLC 又要找另一套,Modbus 还得再找开源实现。
现在把接口统一了之后,效率就翻了一番。
数据采集、归档、预警一套系统全包了。
很多小工厂只有实时监控,历史数据或者记录在纸张上,或者干脆不保存。
做趋势分析和故障追溯时,抓瞎。
设备出现故障想要查看历史数据的时候,不是找不到了就是需要花费很长时间去翻阅纸质记录。
SharpSCADA 支持实时数据采集、历史数据存储以及变量触发报警功能。
实时数据采集直接从PLC中读取数据,历史数据归档则自动保存到SQL Server中。
变量触发预警机制可以自动检测到变量的变化,并且当超过阈值的时候就会发出警报。
配置变量和报警只需要用 TagConfig 工具:
Tag1,Driver1,Group1,100,200,Alarm1Tag2,Driver2,Group2,50,150,Alarm2导入就可以批量设置驱动、变量、报警、量程等等的信息,节省了大半天的手动输入时间。
以前做工控项目需要自己编写数据归档和预警逻辑,现在使用TagConfig工具几分钟就可以完成。
做设备维护的工程师,这个功能很节省时间。
人机界面开发基于 Visual Studio,自定义图元不用学脚本。
传统组态软件二次开发受限制,想要做一个自定义控件的话,不是不支持就是需要学习一种专门的脚本语言。
很费精力。
SharpSCADA 基于 Visual Studio + 设计器插件,支持 VS2010-VS2015 各版本。
会C#/.NET的工程师可以直接上手,不需要学习新的脚本语言。
继承HMIControlBase接口,只用很少的代码就可以实现复杂的图元组件:
public class MyGauge : HMIControlBase{ // 图元拖放、组合、连线、变量绑定都支持 // 编译为可执行文件独立运行}支持图元拖放、组合、连线、变量绑定和编辑等功能。
设计的时候用Visual Studio来拖控件,运行的时候就编译成一个可执行文件单独运行。
上手比传统的组态软件要好很多,不需要学习专门的脚本语言。
驱动模块化设计,增加新的协议也很容易。
目前已发布驱动支持 Siemens S300/200/1200/1500、Panasonic、AB EtherNetIP、Omron UDP。
做西门子PLC项目有驱动,做松下PLC项目也有驱动,AB PLC也一样支持。
计划支持 OPC UA、Mitsubishi、DDE 等新协议。
驱动层采用模块化的设计方式,ClientDriver、ModbusDriver、OPCDriver等各个通信组件都进行了单独封装。
每个驱动独立封装,不影响其他模块,扩展新协议只需要继承接口:
public class NewDriver : IDriver{ // 实现通讯接口即可添加新协议}扩展新的协议不需修改整个系统,只须编写一个驱动模块即可。
过去要扩展协议只能修改整个系统或者寻找第三方库进行适配,而现在有了模块化的设计之后就方便多了。
看到这你想装上试试 ?
你可以从 GitHub 克隆源码,也可以直接运行可执行文件测试。
git clone https://github.com/GavinYellow/SharpSCADA.git下载好代码之后,在Visual Studio中打开DataExchange.sln文件并直接进行编译和运行测试。
恢复数据库db2014.bak或者db2008.bak,并把配置文件修改到C盘根目录下。
启动服务端BatchCoreTest.exe,然后启动客户端CoreTest.exe。
感兴趣的朋友可以抓紧试试。
开源地址:https://github.com/GavinYellow/SharpSCADA 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!