赞
踩
Adam.Sun
前文摘要
在《在Node-RED中通过EthernetIP CIP协议获取A-B CMX PLC数据》的文章中,我们已经通过树莓派的Node-RED成功将采集到CMX PLC的数据,本文我们将介绍如何将这些数据通过MQTT上传到数据云平台。
首先我们使用悉息科技的MQTT服务器进行测试,也可使用其他类似云端服务器。
登录服务器中台:https://witjoint.console.*********.com/login
在连接中创建MQTT连接
创建MQTT通道并命名
获取到MQTT通道连接信息如下图,在Node-Red中会使用到:
服务器地址Host:iothub.aliyun.zhangkong365.com
端口Port:1883
用户名Username:adam
密码Password:******
通道名称Topic:Channel/5f90e2dae72d993c11b5670d/Raspberry
打开Node-Red,在流程1中添加MQTT OUT节点
双击打开流程1中的MQTT OUT节点,点击服务端右侧的编辑按钮
在连接页面输入服务端地址Host:iothub.aliyun.zhangkong365.com,确认端口Port:1883
在安全页面,输入用户名Username:adam和密码Password:******
点击添加按钮保存,
输入主题通道名称Topic:Channel/5f90e2dae72d993c11b5670d/Raspberry
点击完成
关联我们之前创在Node-RED中通过EthernetIP CIP协议获取A-B CMX PLC数据建的和L35E PLC的以太网连接Eth ip in节点。
注:关于L35E PLC变量获取可以参考文档:在Node-RED中获取A-B CMX PLC数据
点击部署,此时可以看到MQTT OUT控件已经正常工作并且状态为已连接。
注意:
由于AB PLC中数组使用的 [ ] 和结构体使用的 . 不符合JsonPath格式,所以我们需要在流程中加上函数进行转换或者使用普通的PLC变量标签。
函数内容如下,目的是将不符合JsonPath格式的 . 替换为 _ 。
注:也可以将object对象转为字符串进行替换。
通过debug诊断信息为
打开数据云中台的MQTT通道信息,点击自定义数据结构按钮
在上报数据中,我们可以看到已经接收到的JSON数据结构上传的MQTT报文,然后我们基于接受的报文信息设置上报数据结构。
设置识别上报数据结构
至此MQTT数据发布完成。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。