n
描述
Modbus 数据模型在结构上是简单的,分为 4 部分存储区(数据类型):n
- 离散输入(输入-位方式访问,只读)n
- 线圈(输出-位方式访问,读写)n
- 输入寄存器(输入数据-字方式访问,只读)n
- 保持寄存器(输出数据-字方式访问,读写)
表 01 展示了的存储区和位地址的对照,位地址在 Modbus 设备(应用层)中并在协议(数据链路层)中作为 Modbus 地址传输。
n
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 报文中使用的功能码。
MB_DATA_ADDR
DATA_LEN
MB_DATA_PTR0(十进制)
40001(十进制)
10(十进制)
“DATA_CON1”.MB_DATA_PTRModbus 请求:读取
起始地址 = 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_PTR1(十进制)
40005(十进制)
10(十进制)
“DATA_CON2”.MB_DATA_PTRModbus 请求:写
请求地址 = 40005:保持寄存器
写入数据的单位(字)
Modbus 服务器接收数据或者发送给 Modbus 服务器的缓存(数据寄存器)。
例如
数据存储在 DB3 “DATA_CON2” 中的变量 “MB_DATA_PTR” 中,数据类型为Word 类型的数组Array[0..9]。在 Modbus 设备中保持寄存器的字 4 至 14 被写入。
表 02