C#+WPF变量管理器框架介绍:
1.底层通过PLC协议与PLC数据进行数据读写,目前支持西门子S7协议和Modbus,当然已经做好了扩展接口,例如需要实现欧姆龙或者三菱协议时只需要按照接口格式编写代码即可。
2.交换出来的数据通过事件驱动给变量组,变量组来轮询读取所添加的变量地址。
3.轮询读取出的PLC数据转发给上层网关,网关负责调用变量结果(读和写),这样就实现了不同通讯协议共用同一个网关服务器。
4.同时做了一些HMI界面的基础控件,只需要给控件输入变量的名称即可自动获取对应地址的数据,达到组态软件拖拽放置控件的效果。
5.还可以把读取的所有变量通过MQTT协议转发给其他设备达到服务器数据共享的目的。
6.变量管理器的所有数据都保存在Mysql数据库中,所有想要运行此软件系统必须要装Mysql数据库软件。
7.说一下为什么要开发出这一套系统,作者在自动化应用过程中经常遇到WINCC等一些组态软件无法实现的功能,因为这些组态软件功能都是厂商开发好的,局限性比较大,虽说有些组态软件的脚本功能比较强大,但是学习门槛高,调试难度大,开发周期也就拉长了,并且换个平台后这些刚学会的脚本知识完全无用武之地,通用性比较差,经过了这一些阻碍,决定选择使用高级语言C#来做开发,功能实现灵魂,通用性强,且还可以开发其他应用软件,利大于弊,遇到组态软件实现不了的功能就直接上Visual Studio,一切困难就迎刃而解了。
8.当然开发这套变量管理系统借鉴了网上很多此方面的案例,网上很多大牛都是我比较佩服的,也感谢他们的分享精神,然后结合自己的实际使用情况,就开发出来这个版本,实际使用效果较佳,一套应用软件基本上只需要做界面布局,数据历史记录和查询这些工作,其他的界面交互都交给现在的基础控件完成了。
9.这篇文章我只粗略的介绍了变量管理系统的框架,后面会再发一篇文章介绍一个应用案例。有这方面的技术交流可以联系作者8300877
接下来进行整个系统的介绍:
变量监视控件,可以读写所添加的所有变量状态,并且可以设置仿真,达到离线测试控件和数据的目的。
基础控件展示,基于自行设计和网络上共享的一些案例,都集成到了一起。
控件的读取只需要一行XAML代码即可实现实时显示PLC数据。
网关实例化,一句代码完成了整个变量管理器的调用,非常简单。
可实现事件通知,某个变量值改变时通知事件,进行程序逻辑操作。
变量的增删查改可以在这个变量管理软件里操作,如果嫌这个软件操作不如EXCEL那么方便,可以导出成EXCEL文件,在EXCEL里编辑好所有变量再导入即可完成变量配置,扩展性非常强。
配置PLC连接参数,目前支持西门子S7协议和Modbus协议。可自行添加其他驱动程序。
可设置每个变量组的刷新时间,有的变量组需要高刷新,有的数据不需要,根据实际情况自行修改。
变量所有的配置都保存再Mysql数据库里,启动变量服务器时会从数据库中读取一系列数据进行通讯。
这是一个项目案例的主界面,是不是比传统WINCC,组态王看着要美观,关键是灵活开发,通过C#+WPF实现任何自己想要实现的功能。
下一篇文章会专门介绍这个案例。