新闻中心

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

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

2025-08-26 15:00:41 阅读: 发布人:纵横智控

需求概述

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

准备工作

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

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

PLC

S7-200 Smart

IP

192.168.0.24/102

点表(DB1)

地址

数据类型

属性

名称

V0.0

Boolean

只读

MotorState1

V0.1

Boolean

只读

MotorState2

V0.2

Boolean

只读

MotorState3

V0.3

Boolean

只读

MotorState4

V0.4

Boolean

读写

MotorControl1

V0.5

Boolean

读写

MotorControl2

V0.6

Boolean

读写

MotorControl3

V0.7

Boolean

读写

MotorControl4

VD100

Unsigned16

只读

voltage (V)

VD200

Unsigned16

只读

current (A)

2. TCP通信相关参数

ip:tcp1500.dtuip.com

port:1500

JSON格式:

{

"sensorDatas":

[

{

"flag":"MotorState1",

"switcher":1

},

{

"flag":"MotorState2",

"switcher":1

},

{

"flag":"MotorState3",

"switcher":1

},

{

"flag":"MotorState4",

"switcher":1

},

{

"flag":"MotorControl1",

"switcher":0

},

{

"flag":"MotorControl2",

"switcher":0

},

{

"flag":"MotorControl3",

"switcher":0

},

{

"flag":"MotorControl4",

"switcher":0

},

{

"flag":"voltage",

"value":220.0

},

{

"flag":"current",

"value":10.2

}

]

}

需求分析

在制作流程时,基础逻辑遵循数据流向进行架构设计。经分析,本需求主要分为三个部分实现:设备注册平台、PLC数据读取与上传、接收平台指令并写入PLC。

设备注册:

建立TCP连接

实现TCP状态感知,首次连接优先发送注册信息(发送设备SN)

获取设备SN

PLC读取与上传:

通过S7节点读取PLC数据

将PLC数据按照Json格式化

将格式化后的数据通过TCP发送至纵横云平台

接收平台指令并写入PLC:

获取平台下发的Json指令

将收到的Json数据解析并转换为PLC可识别数据

将数据写入PLC中

边缘计算网关/物联网平台/网关模块/纵横智控

需求实现

1. 设备注册与连接

通过系统节点获取设备SN(SN为注册包信息,需要在TCP连接成功时发送一次):

 

建立TCP连接并检查TCP连接状态,根据状态设置变量flag的值表示连接状态:

 

以上流程即可实现TCP连接成功的时候发送一条注册信息。上面流程中的函数节点的代码如下:

//flag置1

var connectFlag = 1;

 

global.set('connectFlag', connectFlag);

 

return msg;

 

 

 

//flag置0

var connectFlag = 0;

 

global.set('connectFlag', connectFlag);

 

return msg;

 

 

//SN获取以及校验

let sn = global.get("DeviceInfo").sn

if (sn.length == 15)

msg.payload = "0" + sn

else if (sn.length == 16)

msg.payload = sn

else

node.error("SN错误请检查", msg);

return msg;

2. PLC读取与上传

从节点库拖入一个S7读数据节点,以及一个调试节点,调试节点用于查看读取到的PLC的数据,方便定位问题:

 

双击S7读数据节点,根据需求概述的内容填写对应的设置参数,如下图所示:

IP:PLC的IP

端口:102(S7协议通信默认端口102)

模式:TASP(S7-200 Smart选择TASP,其余型号选择Rack/Slot)

本地TSAP:1002(固定值)

远端TSAP:0301(固定值)

采集周期:1000ms(默认1000ms,可自定义)

超时周期:2000ms(默认2000ms,可自定义)

 

数据点配置(根据帮助文档可以找到对应关系)

V0.0-->DB1,X0.0

V0.1-->DB1,X0.1

V0.2-->DB1,X0.2

V0.3-->DB1,X0.3

V0.4-->DB1,X0.4

V0.5-->DB1,X0.5

V0.6-->DB1,X0.6

V0.7-->DB1,X0.7

VD100 -->DB1,W100

VD200 -->DB1,W200

 输出模式可以根据需求选择,这里选择所有变量输出一条

如果设置正确,调试窗口会有日志打印,显示的是读取到的数据内容:

导入PLC点表:

本例程用到的数据点文件示例:

热门产品