n
描述
Modbus 数据模型在结构上是简单的,分为 4 部分存储区(数据类型):n
- 离散输入(输入-位方式访问,只读)n
- 线圈(输出-位方式访问,读写)n
- 输入寄存器(输入数据-字方式访问,只读)n
- 保持寄存器(输出数据-字方式访问,读写)
表 01 展示了的存储区和位地址的对照,位地址在 Modbus 设备(应用层)中并在协议(数据链路层)中作为 Modbus 地址传输。
n
存储区 | Modbus 设备中应用层的地址 | 传输报文中 Modbus 地址(数据链路层) |
离散输入(输入) | 10001 至 19999 | 0至 9998 |
线圈(输出) | 1 至 9999 | 0至 9998 |
输入寄存器(输入数据) | 30001 至 39999 300001至 365536 扩展的地址空间 |
0至 9998 0至 65535 |
保持寄存器(输出数据) | 40001至 49999 400001至 465536 扩展的地址空间 |
0至 9998 0至 65535 |
表 01 n
SIMATIC S7 中通过功能块激活 Modbus/TCP 通信。n
注意
S7-1200/S7-1500 的Modbus/TCP 功能块不支持输入寄存器扩展的地址空间。n
S7-1200/S7-1500 Modbus 程序块的地址表示
在 SIMATIC S7-1200/S7-1500 中 Modbus 功能块使用应用层的地址。
表02 展示了 MB_CLIENT 功能块的地址使用方法。参数 MB_MODE 和 MB_DATA_ADDR 的不同组合决定了当前 Modbus 报文中使用的功能码。
FB MB_CLIENT 的参数 | FB MB_CLIENT 参数值 | 描述 | Modbus 设备中的地址表示 |
MB_MODE MB_DATA_ADDR DATA_LEN MB_DATA_PTR | 0(十进制) 40001(十进制) 10(十进制) "DATA_CON1".MB_DATA_PTR | Modbus 请求:读取 起始地址 = 40001:保持寄存器 读取数据的单位(字) Modbus 服务器接收数据或者发送给 Modbus 服务器的缓存(数据寄存器)。 例如 数据存储在 DB2 "DATA_CON1"中的变量 "MB_DATA_PTR" 中,数据类型为Word 类型的数组 Array[0..9]。 | 在 Modbus 设备中,保持寄存器的字 0至 10 被读取。 |
MB_MODE MB_DATA_ADDR DATA_LEN MB_DATA_PTR | 1(十进制) 40005(十进制) 10(十进制) "DATA_CON2".MB_DATA_PTR | Modbus 请求:写 请求地址 = 40005:保持寄存器 写入数据的单位(字) Modbus 服务器接收数据或者发送给 Modbus 服务器的缓存(数据寄存器)。 例如 数据存储在 DB3 "DATA_CON2" 中的变量 "MB_DATA_PTR" 中,数据类型为Word 类型的数组Array[0..9]。 | 在 Modbus 设备中保持寄存器的字 4 至 14 被写入。 |
表 02
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc325625.html