3.6.1 Modbus-TCP转IEC 104协议
1、测试工具
该协议转发所需测试工具如下:
-
低代码控制器;
-
Vinci Software(支持协议IEC 60870-101/103/104和Modbus TCP/RTU/ASC,从模式和主模式测试);
-
Modbus Poll(Modbus客户端)和Modbus Slave(Modbus服务端)。
2、主要流程
Modbus部分:控制器作为Modbus客户端,Modbus Slave作为Modbus服务端,Modbus Slave主动上传采集的数据至控制器;
数据处理:将Modbus采集到数据转存与IEC 104协议对应测点之中。
IEC 104部分:控制器作为IEC 104服务端,Vinci作为IEC 104客户端,控制器主动上传数据至Vinci或Vinci发送总召命令读取控制器中所有数据。
3、控制器配置文件
3.1、测点配置文件
序号 | 点号 | 名称 | 别名 | 是否离散 | 是否计算点 | 默认值 | 备注 |
---|---|---|---|---|---|---|---|
1 | 100001 | 测点1 | YX1 | TRUE | FALSE | 0 | 遥信1 |
2 | 100002 | 测点2 | YX2 | TRUE | FALSE | 0 | 遥信2 |
3 | 100003 | 测点3 | YX3 | TRUE | FALSE | 0 | 遥信3 |
4 | 100004 | 测点4 | YX4 | TRUE | FALSE | 0 | 遥信4 |
5 | 100005 | 测点5 | YX5 | TRUE | FALSE | 0 | 遥信5 |
6 | 100006 | 测点6 | YX6 | TRUE | FALSE | 0 | 遥信6 |
7 | 100007 | 测点7 | YX7 | TRUE | FALSE | 0 | 遥信7 |
8 | 100008 | 测点8 | YX8 | TRUE | FALSE | 0 | 遥信8 |
9 | 100009 | 测点9 | YX9 | TRUE | FALSE | 0 | 遥信9 |
10 | 100010 | 测点10 | YX10 | TRUE | FALSE | 0 | 遥信10 |
11 | 100011 | 测点11 | YC1 | FALSE | FALSE | 0 | 遥测1 |
12 | 100012 | 测点12 | YC2 | FALSE | FALSE | 0 | 遥测2 |
13 | 100013 | 测点13 | YC3 | FALSE | FALSE | 0 | 遥测3 |
14 | 100014 | 测点14 | YC4 | FALSE | FALSE | 0 | 遥测4 |
15 | 100015 | 测点15 | YC5 | FALSE | FALSE | 0 | 遥测5 |
16 | 100016 | 测点16 | YC6 | FALSE | FALSE | 0 | 遥测6 |
17 | 100017 | 测点17 | YC7 | FALSE | FALSE | 0 | 遥测7 |
18 | 100018 | 测点18 | YC8 | FALSE | FALSE | 0 | 遥测8 |
19 | 100019 | 测点19 | YC9 | FALSE | FALSE | 0 | 遥测9 |
20 | 100020 | 测点20 | YC10 | FALSE | FALSE | 0 | 遥测10 |
3.2、通信通道配置文件
Modbus通信通道配置文件
Modbus-TCP客户端的通信通道配置文件如下:
通道名称 | 测试通道1 | 序号 | 寄存器类型 | 起始地址 | 数据类型 | 新请求标志 | 轮询周期 | 点号 |
---|---|---|---|---|---|---|---|---|
测点个数 | 20 | 1 | COILS | 0 | Binary | FALSE | 5000 | 100001 |
服务端ip | 127.0.0.1 | 2 | COILS | 1 | Binary | FALSE | 5000 | 100002 |
服务端端口 | 5502 | 3 | COILS | 2 | Binary | FALSE | 5000 | 100003 |
slave id | 1 | 4 | COILS | 3 | Binary | FALSE | 5000 | 100004 |
通信协议 | XA | 5 | COILS | 4 | Binary | FALSE | 5000 | 100005 |
一次读寄存器数上限 | 125 | 6 | COILS | 5 | Binary | FALSE | 5000 | 100006 |
一次读开关数上限 | 2000 | 7 | COILS | 6 | Binary | FALSE | 5000 | 100007 |
一次写寄存器数上限 | 120 | 8 | COILS | 7 | Binary | FALSE | 5000 | 100008 |
一次写开关数上限 | 1968 | 9 | COILS | 8 | Binary | FALSE | 5000 | 100009 |
轮询周期(ms) | 5000 | 10 | COILS | 9 | Binary | FALSE | 5000 | 100010 |
超时(ms) | 1000 | 11 | HOLDING | 10 | TwoByteIntSigned | FALSE | 5000 | 100011 |
状态测点号 | 12 | HOLDING | 11 | TwoByteIntSigned | FALSE | 5000 | 100012 | |
13 | HOLDING | 12 | TwoByteIntSigned | FALSE | 5000 | 100013 | ||
14 | HOLDING | 13 | TwoByteIntSigned | FALSE | 5000 | 100014 | ||
15 | HOLDING | 14 | TwoByteIntSigned | FALSE | 5000 | 100015 | ||
16 | HOLDING | 15 | TwoByteIntSigned | FALSE | 5000 | 100016 | ||
17 | HOLDING | 16 | TwoByteIntSigned | FALSE | 5000 | 100017 | ||
18 | HOLDING | 17 | TwoByteIntSigned | FALSE | 5000 | 100018 | ||
19 | HOLDING | 18 | TwoByteIntSigned | FALSE | 5000 | 100019 | ||
20 | HOLDING | 19 | TwoByteIntSigned | FALSE | 5000 | 100020 |
IEC 104通信通道配置文件
IEC 104服务端的通信通道配置文件如下:
通道名称 | iec104服务通道1 | 连接名称 | 104连接1 | 序号 | 起始地址 | 点号 | 是否遥信 | 控制点地址 |
---|---|---|---|---|---|---|---|---|
连接个数 | 1 | 测点个数 | 20 | 1 | 1 | 100001 | TRUE | 6001 |
服务端端口 | 2404 | 客户端ip | 127.0.0.1 | 2 | 2 | 100002 | TRUE | 6002 |
遥信数据类型 | 1 | 客户端端口 | 9999 | 3 | 3 | 100003 | TRUE | 6003 |
遥测数据类型 | 13 | 通道状态点号 | 100020 | 4 | 4 | 100004 | TRUE | 6004 |
是否为客户端 | FALSE | 源发地址 | 0 | 5 | 5 | 100005 | TRUE | 6005 |
公共地址 | 1 | 6 | 6 | 100006 | TRUE | |||
公共地址字节数 | 2 | 7 | 7 | 100007 | TRUE | |||
传输原因字节数 | 2 | 8 | 8 | 100008 | TRUE | |||
信息体地址字节数 | 3 | 9 | 9 | 100009 | TRUE | |||
T1超时(ms) | 15000 | 10 | 10 | 100010 | TRUE | |||
T2超时(ms) | 10000 | 11 | 11 | 100011 | FALSE | 6011 | ||
T3超时(ms) | 20000 | 12 | 12 | 100012 | FALSE | 6012 | ||
最大发送报文参数 | 12 | 13 | 13 | 100013 | FALSE | 6013 | ||
最大接受报文参数 | 8 | 14 | 14 | 100014 | FALSE | 6014 | ||
控制方向是否带时标 | FALSE | 15 | 15 | 100015 | FALSE | 6015 | ||
总召时间间隔(ms) | 10000 | 16 | 16 | 100016 | FALSE | |||
是否为客户端 | FALSE | 17 | 17 | 100017 | FALSE | |||
点度量总召时间间隔(ms) | 10000 | 18 | 18 | 100018 | FALSE | |||
19 | 19 | 100019 | FALSE | |||||
20 | 20 | 100020 | FALSE |
4、测试过程
4.1Modbus Slave配置
如下图所示,配置Modbus服务端的IP地址及端口号(根据实际情况变动);并完成线圈及保存寄存器的地址+数据配置,完成后点击connection。
4.2低代码控制器配置
控制器作为Modbus客户端以及IEC 104服务端,上传第三节中的各配置文件,注意其中IP地址及端口号需根据实际情况变动。
4.3Vinci配置
如下图所示,配置IEC 104客户端的IP地址及端口号(根据实际情况变动),设置公共地址、源发地址与低代码控制器IEC 104通信通道配置文件一致,完成后点击Start,即可得到如图的数据。
由于控制器会主动上传数据至Vinci,所以能自动显示数据,同时Vinci可以发送总召命令读取控制器中公共地址相同的所有数据。
对比数据可知低代码控制器完成了Modbus-TCP至IEC 104协议转发任务。