前景回顾:【边缘计算网关教程】3.创建第二个流程-CSDN博客
目录
1. 硬件连接
2. PLC串口参数
2.1. 打开STEP7软件
2.2. 查看通信参数
3. 网关设置
3.1. PLC连接设置
3.2. 数据点位设置
3.3. 测试
西门子 PPI 协议
适配PLC:S7-200
西门子S7-200 PLC没有网口,只有串口。串口通信使用的是PPI协议,以下主要讲解EG8200Mini使用PPI协议读取西门子S7-200 PLC的数据。
1. 硬件连接
EG8200Mini和西门子S7 200通信之前,必须保证接线正确。PPI采用的是485通信,具体接线为3脚接A,8脚接B:
实际接线图如下:红色是RS485A接S7 200的3脚,蓝色是RS485B接S7 200的8脚
2. PLC串口参数
2.1. 打开STEP7软件
2.2. 查看通信参数
可以看到站号是2,波特率是9600,后面网关配置需要使用该参数
3. 网关设置
3.1. PLC连接设置
从左侧拖入一个Siemens节点,双击打开设置页面,根据PLC的串口参数填写配置如下:
协议:选择PPI
串口:选择RS485-1,根据实际硬件连接选择
波特率:9600
数据位:8
停止位:1
校验位:EVEN
通讯超时:2000
串口分帧:100,单位ms,串口分帧时间根据实际情况填写,推荐50-100ms
站号:2
按照如上设置好PLC的连接信息,此时点击部署后,可以看到PLC显示状态就绪:
3.2. 数据点位设置
通常情况下,可以在Siemens节点的参数列表内填写要读取的数据点,数据点填写完成后,会按照设定的频率自动读取PLC的点位。本示例采用了高级的方案,以函数的方式来读取PLC的点位,此方案的好处是可以动态修改要读取的数据点。
拖入一个函数节点,复制如下代码:
msg.payload = []
msg.payload[0] = {}
msg.payload[0].func = "ReadBool"
msg.payload[0].body = {}
msg.payload[0].body.name = "I0.5"
msg.payload[0].body.address = "I0.5"
msg.payload[0].body.length = 1
return msg;
这段代码的意思是:使用“ReadBool”方法读“I0.5”地址的1个Bool量,结果存在名字为“I0.5”的变量中。其中length表示一次性可以读多个连续地址的值。msg.payload是一个数组,你也可以一次性读多种不同类型的数据。所有可调用的方法,可参考节点介绍:
示例如下:
3.3. 测试
拖入一个注入节点和调试节点,如图所示,点击注入节点,观察读到的数据点结果为:I0.5:true,通信成功
参考见:https://mp.weixin.qq.com/s/BttiBr5jWNeMYQMI_aG-BA-成都纵横智控