首先介绍下本人使用opc的场景:有客户使用了某厂商的空调(及其他设备)自动化控制系统(为甲方做楼宇节能方案)。现在客户想要让空调根据房间的使用情况进行自动控制,客户每个房间的使用情况是在OA里面设置的,所以解决方案就是:每天从OA系统拿到每个房间的使用时间段,然后同步给自动化控制系统。由于该自动化控制系统很老久,只支持OPC协议(还是我万能的http好用),所以只能去踩OPC的坑了。
名词解释
OPC是什么
网上搜下就知道这个东西是为了解决硬件设备之间没有通用协议造成数据无法互通的问题,由某某标准化组织基于微软的COM/DCOM组件开发的一种通用协议。当我知道是基于COM/DCOM之类的东西,瞬间觉得这玩意是上个世纪的东西 真是老古董了。。。OPC如何工作的
OPC分为server端和client端。server端只是用于定义数据点位Item(有没有做数据持久化就不知道了),该数据点位可以接收client端传过来的数据。client端首先要创建group(group只存在于客户端,每个客户端自己维护group),然后在group中添加点位Item(该点位必须在server端有定义,否则无法监听),添加后即可监听到该点位的数据变化,也可对该点位数据进行写入。假如有两个client端监听的同一个点位,那任何一个client端对该点位的修改都会被另一个client端读取到(应该是定时拉取的)。这个工作方式有点像发布订阅模式。