Web端如何通过MQTT与OPC实现设备交互控制?

        KepOPC是服务于工业数据采集及交换的定制型工业软件,目前有KepOPC工业互联网数据交换平台、KepOPC数据采集及分析、OPCDA-UA、OPC-阿里云物联网平台、OPC-Modbus&S7、S7数据采集及交换平台等中间件软件,同时还提供工业互联进程中Linux跨平台数据交换及应用平台的整体开发和解决方案。中间件支持标准及非标协议定制开发,实现工厂设备与物联网平台的快速接插,起到工业数据桥梁和纽带的作用;并提供终端平台的深度边缘计算,为智能制造、医疗制药、智能家居、能源化工等行业提供生产及报警数据的实时交换和历史数据存储分析,为工业互联网平台的大数据分析和云计算应用提供基础数据和分析服务。

        本文介绍如何利用KepOPC实现MQTT和OPC之间的交互,首先让我们通过下面这张图了解整个工作流程:

图1 KepOPC工作流程图

一、消息发布

        如图1所示,KepOPC采集OPC服务器数据向MQTT代理服务器发布json消息,可以根据用户分组编号发布不同的topic内容,json消息体格式如下:

        {"timestamp": 1630750344483, "values": [{"rw": "Read/Write", "opctag": "WSCC.Device1.Group1.currentPower", "desp": "\u8282\u70b9\u63cf\u8ff01", "value": 10.0, "state": "Good", "code": "520421031"}, {"rw": "Read/Write", "opctag": "WSCC.Device1.Group1.currentPower_rg", "desp": "\u8282\u70b9\u63cf\u8ff02", "value": 0.0, "state": "Good", "code": "520421032"}, {"rw": "Read/Write", "opctag": "WSCC.Device1.Group1.esFactor", "desp": "\u8282\u70b9\u63cf\u8ff03", "value": 11.0, "state": "Good", "code": "520421033"}, {"rw": "Read/Write", "opctag": "WSCC.Device1.Group1.esFactor_rg", "desp": "\u8282\u70b9\u63cf\u8ff04", "value": 0.0, "state": "Good", "code": "520421034"}, {"rw": "Read/Write", "opctag": "WSCC.Device1.Group1.fenliLevel", "desp": "\u8282\u70b9\u63cf\u8ff05", "value": 20.0, "state": "Good", "code": "520421035"}, {"rw": "Read/Write", "opctag": "WSCC.Device1.Group1.fenliLevel_rg", "desp": "\u8282\u70b9\u63cf\u8ff06", "value": 0.0, "state": "Good", "code": "520421036"}, {"rw": "Read/Write", "opctag": "WSCC.Device1.Group1.gongzuoFlow", "desp": "\u8282\u70b9\u63cf\u8ff07", "value": 0.0, "state": "Good", "code": "520421037"}, {"rw": "Read/Write", "opctag": "WSCC.Device1.Group1.gongzuoFlow_rg", "desp": "\u8282\u70b9\u63cf\u8ff08", "value": 30.0, "state": "Good", "code": "520421038"}, {"rw": "Read/Write", "opctag": "WSCC.Device1.Group1.gongzuoHighAlarm", "desp": "\u8282\u70b9\u63cf\u8ff09", "value": 123.0, "state": "Good", "code": "520421039"}, {"rw": "Read/Write", "opctag": "WSCC.Device1.Group1.highLevelAlarm", "desp": "\u8282\u70b9\u63cf\u8ff010", "value": 0.0, "state": "Good", "code": "520421040"}, {"rw": "Read/Write", "opctag": "WSCC.Device1.Group1.highPressAlarm", "desp": "\u8282\u70b9\u63cf\u8ff011", "value": 111.0, "state": "Good", "code": "520421041"}, {"rw": "Read/Write", "opctag": "WSCC.Device1.Group1.huanrePress", "desp": "\u8282\u70b9\u63cf\u8ff012", "value": 125.0, "state": "Good", "code": "520421042"}]}

  • timestamp :topic消息体发布时间;

  • values:topic消息体,列表类型,每组节点信息的集合;

    • opctag:opc节点名称;

    • code:转义名称,用于Web端与opc节点之间的点位映射;

    • value:实时值(带类型);

    • desp:节点描述,用于Web端展示节点安装位置及名称等信息;

    • state:opc节点通讯状态,Good/Bad/Error;

    • rw:opc节点读写状态,Read/Write(允许写值)或Read(不允许写值);

        以上功能是用于Web端通过mqtt或websocket的方式订阅中间加发布的json工业监测数据,数据的订阅采用分组订阅的方式,中间件支持opc节点按照系统或类型分组发布,以满足Web端可以根据车间/设备/部件选择性订阅展示,提高了数据刷新和利用效率。订阅的消息体如图2所示:

图2 MQTT订阅的节点json消息体

二、Web或移动端控制

        用户建立自己的Web端系统,布局监测点实时值或曲线展示界面,显示中间件推送的传感器或控制器数据,根据用户需要可以在OPC服务器设置对应的控制节点,改变控制点的值实现对PLC等设备的开停/参数调整等控制实现;Web端设计精美的开停按钮或旋钮,鼠标点击按钮时通过mqtt/websocket发布需要写值参数到mqtt服务器。

        KepOPC同时向MQTT代理服务器订阅控制指令json消息体,通过配置文件添加需要订阅的控制指令topic,订阅的opc写值消息体格式同发布消息体格式一致,具体描述如下:

  • timestamp :写值topic消息体发布时间;

  • values:写值topic消息体,列表类型,需要写值节点信息的集合(长度>=1);

    • *opctag:opc节点名称(需要写值的opc节点名称);

    • code:转义名称,用于Web端与opc节点之间的点位映射;

    • *value:实时值(带类型);

    • desp:节点描述,用于Web端展示节点安装位置及名称等信息;

    • state:opc节点通讯状态,Good/Bad/Error;

    • rw:opc节点读写状态,Read/Write(允许写值)或Read(不允许写值);

        以上带*为必须项,Web端发布消息体时请注意判断rw的状态,当状态为Read/Write时才能写值到opc服务器中,否则为只读。values(列表)为多个opc节点的组合时,即为同一时刻对多个opc节点写值。以实现通过web端或移动app实现对设备端的控制和参数调整。如图3所示:

        发布写值信息时请谨慎操作,非专业人员请结合现场,以免造成不必要的损失!!!

图4 KepOPC订阅mqtt消息实现OPC写值过程

        如图4所示,通过Web端或移动APP发布写值指令json数据到代理服务器后,中间件订阅到写值内容并将三个节点值依次写入到OPC服务器,实现MQTT与OPC的写值交互,中间件的指令操作延时≤100ms。

总结:通过KepOPC中间件可实现Web或移动APP快速搭建物联网管控功能,通过MQTT实现与工业场景设备的管控,实现对工业互联网系统设备的实时监测、控制和工艺优化参数调优等功能。


往期回顾:

微信搜索KepOPC工业互联或 扫一扫添加微信好友关注公众号,获取最新产品资讯。

问题反馈及合作技术交流 Email:49271508@qq.com  或 公众号留言

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值