新闻中心
PRESS CENTER本文主要实现的功能是:使用EG系列网关完成Modbus协议与IEC104主站协议之间的双向协议转换。其中Modbus协议包括:Modbus TCP主站 / Modbus RTU主站 / Modbus TCP从站 / Modbus RTU从站。IEC104主站协议指的是网关作为IEC104主站和其它电力设备从站之间的通信协议。
Modbus RTU与Modbus TCP协议的区别在网关上的体现仅仅是一个配置项,因此不单独区分介绍。
综上所述,案例演示分为两个部分:
Modbus 主站IEC104主站
本章节主要实现一个需求:使用EG系列网关实现Modbus RTU主站和IEC104主站之间的双向协议转换。适用场景是:EG系列网关作为Modbus主站读取传感器的数据,然后作为IEC104主站将读取的数据以遥调遥控的方式写入IEC104从站;同时也能作为IEC104主站读取IEC104从站的遥信遥测数据,并将读取的数据写入到Modbus传感器。
1. Modbus点位表
功能码0x03 | ||
寄存器地址 | 读写权限 | 解析方式 |
10001 | 只读 | Bool |
10002 | 只读 | Bool |
40001 | 只写 | 浮点数 |
40003 | 只写 | 浮点数 |
2. 104点位表
元素地址 | 读写权限 | 解析方式 |
24577 | 只写(遥控) | 0分闸/1合闸 |
24578 | 只写(遥控) | 0分闸/1合闸 |
16385 | 只读(遥测) | 浮点数 |
16386 | 只读(遥测) | 浮点数 |
3. 点位映射关系
Modbus寄存器地址 | 数据流向 | 104点表地址 |
10001 | -> | 24577(遥控) |
10002 | -> | 24578(遥控) |
40001 | <- | 16385(遥测) |
40003 | <- | 16386(遥测) |
读取Modbus写入104:
读取Modbus的10001寄存器,将值写入104的24577
读取Modbus的10002寄存器,将值写入104的24578
读取104写入Modbus:
读取104的16385,将值写入Modbus的40001寄存器
读取104的16386,将值写入Modbus的40003寄存器
网关配置:
第一步:采集Modbus数据
第二步:采集104数据
第三步:Modbus与104数据交互
第四步:自动运行
第一步:采集Modbus数据
采集Modbus请参考其他案例,此处不做重点介绍。下图为采集到Modbus RTU数据后,将数据打印输出:
此处为语雀内容卡片,点击链接查看:https://iotrouter.yuque.com/zn3vdn/eg8000/hn4q2114580z53bu
第二步:采集104数据
采集104数据可参考其它案例,此处不做重点介绍。下图为采集到104数据后,将数据打印输出:
此处为语雀内容卡片,点击链接查看:https://iotrouter.yuque.com/zn3vdn/eg/wff6kithpkit8nry
第三步:Modbus与104数据交互
1.读取Modbus写入104
点击注入节点 ,启动Modbus数据采集流程。
通过Modbus主站请求节点读取寄存器数据(电脑端Modbus Slave软件模拟从站)。
经Modbus主站解析节点解析后,将数据写入104(电脑端IEC104模拟终端模拟从站)。
2.读取104写入Modbus
IEC104Clinet节点配置总召周期,读取104数据。
将读取到的104数据写入Modbus设备(电脑端Modbus Slave软件模拟从站)。
第四步:自动运行
1.配置注入节点为周期性触发,周期设为每 5 秒执行一次。
2.为保证数据转换有序进行,采集周期依据实际情况而定。
流程源码:https://iotrouter.yuque.com/zn3vdn/eg8000/llcmr0chtudtshil
Modbus 从站与IEC104主站
本章节主要实现一个需求:使用EG系列网关实现Modbus RTU从站和IEC104主站之间的双向协议转换。适用场景是:EG系列网关作为IEC104主站读取IEC104从站的遥信遥测数据,然后将读取的数据映射为Modbus寄存器,并作为Modbus从站供外部Modbus主站读取;同时网关也能接收外部Modbus主站的写数据命令,并将数据以遥调遥控的方式写入IEC104从站。
这样即实现了,外部Modbus主站可以采用Modbus协议和IEC104从站实现数据双向通信。
1. Modbus点位表
功能码0x03 | ||
寄存器地址 | 读写权限 | 解析方式 |
10001 | 只读 | Bool |
10002 | 只读 | Bool |
40001 | 只读 | 浮点数 |
40003 | 只读 | 浮点数 |
00001 | 读写 | Bool |
00002 | 读写 | Bool |
2. 104点位表
元素地址 | 读写权限 | 解析方式 |
1 | 只读(遥信) | 0分闸/1合闸 |
2 | 只读(遥信) | 0分闸/1合闸 |
16385 | 只读(遥测) | 浮点数 |
16386 | 只读(遥测) | 浮点数 |
24577 | 只写(遥控) | 0分闸/1合闸 |
24578 | 只写(遥控) | 0分闸/1合闸 |
3. 点位映射关系
Modbus寄存器地址 | 数据流向 | 104点表地址 |
10001 | <- | 1(遥信) |
10002 | <- | 2(遥信) |
40001 | <- | 16385(遥测) |
40003 | <- | 16386(遥测) |
00001 | -> | 24577(遥控) |
00002 | -> | 24578(遥控) |
读取104从站数据写入Modbus从站:
读取104的地址1,将值写入Modbus的10001寄存器
读取104的地址2,将值写入Modbus的10002寄存器
读取104的地址16385,将值写入Modbus的40001寄存器
读取104的地址16386,将值写入Modbus的40003寄存器
控制Modbus从站写入104从站:
通过写Modbus的00001寄存器,将值写入104的地址24577
通过写Modbus的00002寄存器,将值写入104的地址24578
网关配置:
第一步:采集104从站数据
第二步:添加Modbus从站
第三步:104主站数据映射到Modbus从站
第四步:添加串口节点
第五步:Modbus主站将数据写入104从站
第一步:采集104数据
采集104数据可参考其它案例,此处不做重点介绍。下图为采集到104数据后,将数据打印输出:
此处为语雀内容卡片,点击链接查看:https://iotrouter.yuque.com/zn3vdn/eg/wff6kithpkit8nry
第二步:添加Modbus从站
Modbus从站详细配置请参考其它案例,此处不做重点介绍。此处仅展示本示例所需配置:
此处为语雀内容卡片,点击链接查看:https://iotrouter.yuque.com/zn3vdn/eg8000/ez6ci1bzet4og5gl
第三步:104主站数据映射到Modbus从站
104节点总召周期时间配置为 5s,以此实现每5秒一次的读取频率。然后将读取到的数据写入到Modbus从机的对应寄存器(数据点名称一样即可自动匹配转换)。
第四步:添加串口节点
串口节点用于外部Modbus主站与网关Modbus从站通信,详细配置请参见其他案例,此处仅展示本示例所需配置:
此处为语雀内容卡片,点击链接查看:https://iotrouter.yuque.com/zn3vdn/eg/aa5zmwb55m6dbzzz
第五步:Modbus主站数据写入104从站
网关通过串口节点接收 Modbus 主站写指令,经 Modbus 从机节点解析后,将数据传递至 104 节点,实现遥控功能。
流程源码:https://iotrouter.yuque.com/zn3vdn/eg8000/llcmr0chtudtshil