新闻中心
PRESS CENTER本文主要实现的功能是:使用EG系列网关完成Modbus协议与各种PLC协议之间的双向协议转换。其中Modbus协议包括:Modbus TCP主站 / Modbus RTU主站 / Modbus TCP从站 / Modbus RTU从站。PLC协议指的是网关支持的所有PLC协议。
Modbus RTU与Modbus TCP协议的区别在网关上的体现仅仅是一个配置项,因此不单独区分介绍。网关已经屏蔽了不同PLC协议之间的差异化,故本案例选择西门子S7-200 Smart PLC作为演示载体,但文档所述方法适用于所有PLC协议。
综上所述,案例演示分为两个部分:
Modbus 主站PLC协议
本章节主要实现一个需求:使用EG系列网关实现Modbus TCP主站和S7-200 Smart PLC之间的双向协议转换。适用场景是:EG系列网关作为Modbus主站读取传感器的数据,然后将读取的数据写入PLC;同时也能将从PLC读到的数据,写入到Modbus传感器。
1.Modbus点位表
功能码0x03 | ||
寄存器地址 | 读写权限 | 解析方式 |
40001 | 只读 | UInt16 |
40002 | 只读 | UInt16 |
40003 | 只写 | UInt16 |
40004 | 只写 | UInt16 |
2.PLC点位表
点表地址 | 读写权限 | 解析方式 |
VW0 | 只写 | UInt16 |
VW2 | 只写 | UInt16 |
VW4 | 只读 | UInt16 |
VW6 | 只读 | UInt16 |
3.点位映射关系
Modbus寄存器地址 | 数据流向 | PLC点表地址 |
40001 | ➡️ | VW0 |
40002 | ➡️ | VW2 |
40003 | ⬅️ | VW4 |
40004 | ⬅️ | VW6 |
读取Modbus写入PLC:
读取Modbus的40001寄存器,将值写入PLC的VW0
读取Modbus的40002寄存器,将值写入PLC的VW2
读取PLC写入Modbus:
读取PLC的VW4,将值写入Modbus的40003寄存器
读取PLC的VW6,将值写入Modbus的40004寄存器
网关配置:第一步:采集Modbus数据
第二步:采集PLC数据
第三步:Modbus与PLC数据交换
第四步:自动运行
第一步:采集Modbus数据
采集Modbus请参考其他案例,此处不做重点介绍。下图为采集到Modbus TCP数据后,将数据打印输出:节点使用详情查看:此处为语雀内容卡片,点击链接查看:https://iotrouter.yuque.com/zn3vdn/eg8000/hn4q2114580z53bu
第二步:采集PLC数据
采集PLC数据可参考其它案例,此处不做重点介绍。下图为采集到PLC数据后,将数据打印输出:此处为语雀内容卡片,点击链接查看:https://iotrouter.yuque.com/zn3vdn/eg8000/gkvlbflayb5ub0zp
第三步:Modbus与PLC数据交换
1.读取Modbus写入PLC
点击注入节点 1,启动Modbus数据采集流程。
通过Modbus主站请求节点读取寄存器数据(电脑端Modbus Slave软件模拟从站)。
经Modbus主站解析节点解析后,将数据写入PLC。
2.读取PLC写入Modbus
点击注入节点 2,启动PLC数据采集流程。
通过Siemens节点读取S7-200 Smart数据。
将读取到的PLC数据写入Modbus设备(电脑端Modbus Slave软件模拟从站)。
第四步:自动运行
1.配置注入节点为周期性触发,周期设为每 5 秒执行一次。
2.为保证数据转换有序进行,增加一个延迟节点,延迟时间依实际情况而定。
流程源码:https://iotrouter.yuque.com/zn3vdn/eg8000/bloew2cbdhm42irp
Modbus 从站PLC协议
本章节主要实现一个需求:使用EG系列网关实现Modbus TCP从站和S7-200 Smart PLC之间的双向协议转换。适用场景是:EG系列网关读取PLC的数据,然后将读取的数据映射为Modbus寄存器,并作为Modbus从站供外部Modbus主站读取;同时网关也能接收外部Modbus主站的写数据命令,并将数据写入PLC。
这样即实现了,外部Modbus主站可以采用Modbus协议和PLC实现双向数据通信。网络拓扑
PLC点位表
点表地址 | 读写权限 | 解析方式 |
VW0 | 读写 | UInt16 |
VW100 | 读写 | UInt16 |
VW200 | 读写 | Float |
网关配置:
第一步:采集PLC数据
第二步:配置Modbus从站
第三步:PLC数据映射到Modbus从站
第四步:配置TCP服务端(给外部Modbus TCP主站提供连接通道)
第五步:Modbus TCP主站测试(Modbus Poll软件)
第一步:采集PLC数据
采集PLC数据可参考其它案例,此处不做重点介绍。下图为采集到PLC数据后,将数据打印输出:此处为语雀内容卡片,点击链接查看:https://iotrouter.yuque.com/zn3vdn/eg8000/gkvlbflayb5ub0zp
第二步:配置Modbus从站
Modbus从机节点可参考其他案例,此处不做重点介绍。下图示例中配置了三个虚拟寄存器,分别对应PLC的三个数据点:
Modbus 从机节点支持Modbus RTU/Modbus TCP 协议。用于将网关采集到的其它数据转换为符合Modbus协议的数据,以供外部的Modbus主站进行读写操作。输入msg.payload #如果数据类型是对象,则会将对象中的键与配置的键名进行匹配,并将相应的值写入对应的寄存...详细查看文档:https://iotrouter.yuque.com/zn3vdn/eg8000/rwsclqi3iw4cgoxt
第三步:PLC数据映射到Modbus从站
在PLC读取配置中,将循环读取时间设定为 2000ms,以此实现每2秒一次的读取频率。然后将读取到的数据写入到Modbus从机中(数据点名称一样即可自动匹配转换)。
第四步:配置TCP服务端
TCP服务监听可参考其他案例,此处不做重点介绍。下图为TCP节点的配置:
TCP IN/OUT,EG8200系列边缘计算网关支持同时作为TCP的服务端和TCP的客户端,且没有连接数量的限制。TCP功能根据数据流向分为两个节点,分别是:TCP IN表示网关收到的数据,TCP OUT表示网关发送的数据。监听模式网关作为TCP服务端,连接模式网关作为TCP客户端。TCP IN和TCP OU...详细查看:https://iotrouter.yuque.com/zn3vdn/eg8000/biy9z9qin5yhqhn1
第五步:Modbus TCP主站
测试使用Modbus Poll(Modbus主站软件)读写测试。
流程源码:https://iotrouter.yuque.com/zn3vdn/eg8000/bloew2cbdhm42irp