上文: EG边缘计算网关连接中移ONENET物联网平台(MQTT协议)
更多可见:成都纵横智控
本章节主要实现一个流程:EG8000采集的数据,组装成JSON格式,并通过TCP上报应用平台;同时能够接收应用平台下发的控制命令,实现远程开关。要实现此流程,需要提前准备好以下材料:
要采集的PLC的IP端口以及点位表,例如:
| PLC | S7-200 Smart | ||
| IP | 192.168.0.34/102 | ||
| 地址 | 数据类型 | 属性 | 名称 |
| I0.0 | Boolean | 只读 | MotorState1 |
| I0.1 | Boolean | 只读 | MotorState2 |
| V0.4 | Boolean | 读写 | MotorControl1 |
| V0.5 | Boolean | 读写 | MotorControl2 |
| VD100 | Float | 只读 | voltage |
| VD200 | Float | 只读 | current |
| VW300 | Uint16 | 只读 | frequency |
| VW302 | Uint16 | 只读 | frequencySetValue |
MQTT通信相关参数及JSON数据格式要求,例如:
- JSON格式:
- {
- "sensorDatas":
- [
- {
- "flag":"MotorState1",
- "switcher":1
- },
- {
- "flag":"MotorState2",
- "switcher":1
- },
- {
- "flag":"MotorControl1",
- "switcher":1
- },
- {
- "flag":"MotorControl2",
- "switcher":1
- },
- {
- "flag":"voltage",
- "value":220.0
- },
- {
- "flag":"current",
- "value":10.2
- },
- {
- "flag":"frequency",
- "value":50
- },
- {
- "flag":"frequencySetValue",
- "value":50
- },
- ]
- }
网关配置:
第一步:采集PLC数据
第二步:拼接Json
第三步:MQTT上报
第四步:下行MQTT订阅
第五步:解析下行Json写入PLC
平台配置:
第一步:添加设备
第二步:添加数据点
第三步:绑定标志
第四步:测试
此处为采集PLC数据,不在过多赘述,可参考其他案例。采集到PLC的流程如下:
此处为语雀内容卡片,点击链接查看:PLC Item · IOTRouter

此处报文将数据按照需求概述拼接成Json格式,需要注意的是平台限制每包数据上传间隔必须大于1S,这里使用缓存队列节点来实现数据有序发送:
💡平台3.0有数据接收长度限制,所以本案例通过函数节点对采集的数据做了拆分上传处理

- 新增MQTT发布节点,连接信息如下:
- IP域名:1883.dtuip.com
- 端口:1883
- 客户端ID:网关SN(序列号)
- 用户名:平台3.0登录账号
- 密码:平台3.0登录密码
- 发布主题:网关SN(序列号)
配置MQTT发布节点,用于将采集到的数据上传平台3.0:

- 新增MQTT订阅节点:
- 连接信息:使用发布节点配置的连接信息
- 订阅主题:网关SN/+
配置MQTT订阅节点,用于接收平台3.0下发的控制指令:

因为平台3.0的下发的报文格式不满足PLC的要求,所以,此处需要将收到的JSON格式进行格式转换。这里我们需要使用函数计算节点,通过编程将它进行处理转换,再给到PLC进行写的操作:

设备管理->添加设备->填入网关SN








💡MQTT配置节点导出时,不会携带用户名和密码。因此导入时需要重新录入用户名和密码