西门子PLC 7288 SMART 200 系列大量现货 13922952859
siemens西门子PLC专注西门子PLC 7288系列 SMART 200系列现货销售
全国咨询热线:13922952859

在使用 Modbus/TCP 方式数据通信时,怎样寻址到作

时间:2022-08-28 12:43:16 作者:admin 点击:

n

描述
Modbus 数据模型在结构上是简单的,分为 4 部分存储区(数据类型):n

  • 离散输入(输入-位方式访问,只读)n
  • 线圈(输出-位方式访问,读写)n
  • 输入寄存器(输入数据-字方式访问,只读)n
  • 保持寄存器(输出数据-字方式访问,读写)

表 01 展示了的存储区和位地址的对照,位地址在 Modbus 设备(应用层)中并在协议(数据链路层)中作为 Modbus 地址传输。
n

存储区Modbus 设备中应用层的地址传输报文中 Modbus 地址(数据链路层)离散输入(输入)10001 至 199990至 9998线圈(输出)1 至 99990至 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_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