新闻中心

PRESS CENTER 纵横智控
你的位置: 首页 新闻 技术应用
纵横智控

【教程】EG网关采集西门子PLC数据通过MQTT上报纵横云平台3.0

2025-08-26 11:00:01 阅读: 发布人:纵横智控

需求概述

本章节主要实现一个需求:EG8200采集西门子PLC的数据,拼装成Json格式,通过MQTT上报纵横云平台;同时能够接收纵横云平台下发的控制命令,实现远程控制PLC。

准备工作

要实现此功能,需提前准备好以下材料。

1. PLC的IP/端口/点位表

PLC

S7-200 Smart

IP

192.168.0.30/102

点表(DB1)

地址

数据类型

属性

名称

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

2. MQTT通信相关参数

JSON格式:

{

"sensorDatas":

[

{

"flag":"MotorState1",

"switcher":1

},

{

"flag":"MotorState2",

"switcher":1

},

{

"flag":"voltage",

"value":220.0

},

{

"flag":"current",

"value":10.2

}

]

}

需求分析

网关配置:

第一步:采集PLC数据

第二步:拼接Json

第三步:MQTT上报

第四步:MQTT订阅

第五步:解析下行Json并写入PLC

平台配置:

第一步:添加设备

第二步:添加数据点

第三步:绑定标识

第四步:测试

需求实现

网关配置

第一步:采集PLC数据

采集PLC数据可参考其它案例,此处不做重点介绍。配置流程如下视频介绍:

此处为语雀视频卡片,点击链接查看:读取西门子.mp4

第二步:拼接Json

网关上报的Json数据中Key值必须与平台配置的数据点标识名称一致,平台才能正确识别显示。

PLC节点输出Json格式

描述

纵横云平台要求Json格式

{

"MotorState1": false,

"voltage": 50,

}

需将左侧Json格式

转换为右侧Json格式

{

"sensorDatas": [{

"flag": "MotorState1",

"switcher": 0

}, {

"flag": "voltage",

"value": 50

}]

}

纵横云平台3.0有数据接收长度限制,所以本案例通过函数节点对上报数据做了拆分上传

纵横云平台限制每包数据上传间隔必须大于1S,这里增加了一个缓存队列节点来实现数据有序发送

第三步:MQTT上报

新增MQTT发布节点,连接信息如下:

IP域名:1883.dtuip.com

端口:1883

客户端ID:网关SN(序列号)

用户名:平台3.0登录账号

密码:平台3.0登录密码

发布主题:网关SN(序列号)

配置MQTT发布节点,用于将采集到的数据上传到纵横云平台3.0:

此处为语雀视频卡片,点击链接查看:MQTT连接.mp4

第四步:MQTT订阅

连接信息:使用发布节点配置的连接信息

订阅主题:网关SN/+

配置MQTT订阅节点,用于接收纵横云平台3.0下发的控制指令:

此处为语雀视频卡片,点击链接查看:下行配置.mp4

第五步:解析Json并写入到PLC

纵横云平台下发的报文格式与PLC节点要求的Json格式不一致,因此,此处需要将收到的Json格式转换。

纵横云平台下发Json格式

描述

PLC节点要求Json格式

{

"sensorDatas": [{

"sensorsId": 4503840,

"switcher": 0,

"flag": "MotorControl2"

}],

"down": "down"

}

需将左侧Json格式

转换为右侧Json格式

{

"MotorControl2": false

}

此处为语雀视频卡片,点击链接查看:下行解包.mp4

平台配置

平台3.0地址:app.iotrouter.com

平台3.0注册邀请码:882261310

序列号:设备SN,需要将SN发客服,添加到后台才可使用

第一步:添加设备

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

 

【教程】EG网关采集西门子PLC数据通过MQTT上报纵横云平台3.0

第二步:添加数据点

在设备管理页面找到刚才添加的设备,点击编辑设备。

【教程】EG网关采集西门子PLC数据通过MQTT上报纵横云平台3.0

找到传感器添加数据点。

【教程】EG网关采集西门子PLC数据通过MQTT上报纵横云平台3.0

根据本案例中的数据点添加:4个开关型变量,4个数值型变量。小数位以及单位根据自己的需求设定。添加完成后下滑到底部点击创建设备。

【教程】EG网关采集西门子PLC数据通过MQTT上报纵横云平台3.0

第三步:绑定标识

在设备管理页面找到刚才添加的设备,点击设置连接。

【教程】EG网关采集西门子PLC数据通过MQTT上报纵横云平台3.0

将PLC节点的数据点名称填入纵横云平台对应的读写标识。

【教程】EG网关采集西门子PLC数据通过MQTT上报纵横云平台3.0

【教程】EG网关采集西门子PLC数据通过MQTT上报纵横云平台3.0

第四步:测试

此处为语雀视频卡片,点击链接查看:测试.mp4

注意

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

热门产品