全国服务热线 15821971992

西门子中国授权代理|PLC模块代理

发布:2022-12-06 21:30,更新:2023-10-26 04:00

西门子plc Modbus 地址和 S7-200 存储区地址的映射,从站地址与S7-200的地址对应

Modbus 地址和 S7-200 存储区地址的映射

西门子plc S7-200 通过 Modbus Master 和 Slave 协议库通信时,Modbus 地址和 S7-200 内存储区地址的 映射关系都类似。

Modbus 保持寄存器地址映射举例:

Modbus 保持寄存器地址映射举例 

Modbus 数字量地址映射举例:

位地址(0xxxx 和 1xxxx)数据总是以字节为单位打包读写。个字节中的低有效位对应 Modbus 地址的起始地址。如下图所示:

数字量地址映射举例 

图 4. 数字量地址映射举例

 

 

2.3 Modbus RTU 从站地址与S7-200的地址对应

Modbus地址总是以00001、30004之类的形式出现。S7-200内部的数据存储区与Modbus的0、1、3、4共4类地址的对应关系如下:

表2. Modbus地址对应表

Modbus地址S7-200数据区
00001 ~ 00128Q0.0 ~ Q15.7
10001 ~ 10128I0.0 ~ I15.7
30001 ~ 30032AIW0 ~ AIW62
40001 ~ 4xxxxT ~ T + 2 * (xxxx -1)

其中T为S7-200中的缓冲区起始地址,即 HoldStart。

如果已知S7-200中的V存储区地址,推算Modbus地址的公式如下:

Modbus地址 = 40000 + (T/2+1) ; T为偶数

2.4 Modbus RTU 从站指令库支持的功能码

Modbus RTU 从站指令库支持特定的 Modbus 功能。访问使用此指令库的主站必须遵循这个指令库的要求。

表 3. Modbus RTU 从站功能码

功能码主站使用相应功能码作用于此从站的效用1234561516
读取单个/多个线圈(离散量输出点)状态。 功能 1 返回任意个数输出点(Q)的 ON/OFF 状态。
读取单个/多个触点(离散量输入点)状态。 功能 2 返回任意个数输入点(I)的 ON/OFF 状态。
读取单个/多个保持寄存器。功能 3 返回 V 存储区的内容。在 Modbus 协议下保持寄存器都是"字"值,在一次请求中可以读取多 120 个字的数据。
读取单个/多个输入寄存器。功能 4 返回 S7-200 的模拟量数据值。
写单个线圈(离散量输出点)。功能 5 用于将离散量输出点设置为指定的值。这个点不是被强制的,用户程序可以覆盖 Modbus 通信请求写入的值。
写单个保持寄存器。功能 6 写一个值到 S7-200 的 V 存储区的保持寄存器中。
写多个线圈(离散量输出点)。功能 15 把多个离散量输出点的值写到 S7-200 的输出映像寄存器(Q 区)。输出点的地址必须以字节边界起始(如 Q0.0 或 Q2.0),并且输出点的数目必须是 8 的整数倍。这是此 Modbus RTU 从站指令库的限制。些点不是被强制的,用户程序可以覆盖 Modbus 通信请求写入的值。
些多个保持寄存器。功能 16 写多个值到 S7-200 的 V 存储区的保持寄存器中。在一次请求中可以写多 120 个字的数据。


联系方式

  • 地址:上海杨浦 上海市松江区广富林路4855弄88号3楼
  • 邮编:200093
  • 电话:15821971992
  • 经理:聂聪
  • 手机:15821971992
  • 传真:021-33556143
  • QQ:2724917714
  • Email:2724917714@qq.com