最近研究PC和PLC通讯,晚上睡觉冒出一些想法,觉都没睡好。于是早上起来写个备忘,纯粹是个人想法。
以三菱PLC和PC通讯举例,我个人三菱PLC用的最多。OPC服务器选用三菱自家的MX OPC SERVER,网上可以下载到6.05版本,感兴趣的网友自己搜下就能找到。
打算用C#作为上位机,想了几种方案。静态是我个人想的词,是预先定义好,需要持续通讯的意思。
1、opc服务器静态,opc客户端静态
opc服务器定义所有通讯用到的标签,opc客户端激活所有项。
2、opc服务器静态,opc客户端动态
opc服务器定义所有通讯用到的标签,opc客户端只激活当前项。
3、opc服务器动态,opc客户端动态
opc服务器不定义标签,opc客户端根据打开的窗口,动态订阅标签,opcserver也动态创建标签。
以上三种方案,如果分层讨论,应该是:
第一层:驱动获取数据并推送到GroupDataChange.
第二层:客户端接收变化的Item,如果画面使用了该item则驱动界面发生变化。
opc服务器不管静态还是动态,只要创建后对于GroupDataChange来说都是一样的。
疑惑的地方在于opc客户端的订阅,是一次性注册全局变量,以后不再注册,还是打开哪个画面,就注册该画面的item,关闭即消失,下次打开再重新注册?
时间: 2024-11-04 17:07:13