在进行西门子PLC与Modbus通信时,正确理解并快速推算PLC地址与Modbus地址之间的关系至关重要。以下是针对西门子PLC与Modbus协议的地址转换规则说明,旨在帮助工程师迅速准确地进行地址匹配。
Modbus地址可分为四种类型,每一种对应不同的PLC信号类型:
00001—09999 为离散输出地址,映PLC的Q线圈。
10001—19999 为离散输入地址,映PLC的I输入点。
30001—39999 为输入寄存器地址,映PLC的模拟量输入AIW。
40001—49999 为保持寄存器地址,映PLC的V存储器。
对于S7-200系列PLC,具体的地址映射关系如下:
一、离散输出地址 (0XXXX -> Qaa.b)
以0开头的Modbus地址,代表离散输出信号。对应PLC的Q线圈地址。地址转换的计算方法为:
公式:(XXXX-1) / 8 = 商 -> aa (字节号),余数为位号b。
例如,Modbus地址126转换为 (126-1) / 8 = 15,余数为5,对应PLC地址 Q15.5。
反向计算:已知 Qaa.b,可以通过公式 地址号 = aa8 + (b + 1) 来得到Modbus地址。
比如,Q15.7 对应的地址为 158 + (7+1) = 128,即 00128。
二、离散输入地址 (1XXXX -> Iaa.b)
以1开头的Modbus地址,代表离散输入信号。对应PLC的I输入点地址。与离散输出地址相同,计算方式一致,只是地址前需加上10000。
例如,Modbus地址10009对应 (9-1)/8 = 1,余数为0,对应 I1.0。
反向计算同样使用公式:地址号 = aa8 + (b + 1)。
三、输入寄存器地址 (3XXXX -> AIWaa)
输入寄存器地址通常以3开头,映PLC的模拟量输入寄存器(AIW)。计算方法:
公式:AIWaa = (XXXX-1) 2,即Modbus地址与PLC地址按2倍关系转换。
例如,Modbus地址30004对应 AIW6,其计算为 (4-1)2 = 6。
反向计算时,已知AIWaa,通过 (aa + 2)/2 来恢复Modbus地址。
四、保持寄存器地址 (4XXXX -> VW)
保持寄存器地址以4开头,映PLC的V存储器。每个Modbus地址对应PLC中的一个字,而实际的PLC地址则由设定的起始地址决定。
例如,如果设定起始地址为 &VB0,则Modbus地址 40001 对应 VW0。
计算公式为:VW = (XXXX - 1) 2 + a,其中 a 是起始地址偏移。
举例:若设定起始地址为 VB11,则 40001 对应 VW11,其计算为 (1-1)2 + 11 = 11。
通过掌握这些规则,您可以轻松在Modbus地址和西门子PLC地址之间进行转换,从而更高效地配置和调试设备。