快速推算西门子PLCModbus通信地址对应的PLC实际地址
以下说明都是应用于西门子PLC通信MODBUS的场合。
我们知道Modbus地址有4类:
00001---09999是离散输出地址,对应PLC的Q线圈。
10001---19999是离散输入地址,对应PLC的I输入点。
30001---39999是输入寄存器地址,对应PLC模拟量输入AIW
40001---49999是保持寄存器地址,对应PLC的V存储器
它们与PLCS7-200的地址对应关系如下:
一、以0开头的离散输出地址0
00001-------
…………………………..
00126------
快速写出它们对应关系呢?用以下公式推算:
(XXXX-1)/8=商---作为字节号aa
余数---作为位号b
如地址126(00126-1)/8=商15---余5则对应
地址4(4-1)/8=0余3则对应
反过来,知道,对应地址:
地址号=aa*8+(b+1)
如:地址=15*8+(7+1)=128---则地址00128
地址=1*8+(7+1)=16------则地址00016
二、以1开头的离散输入地址1
10001-------
…………………………..
10126------
公式计算同上。地址要加上开头的10000
如地址10009,则对应(9-1)/8=1--余0--------
地址=1*8+(1+1)=10---地址为10010
以上每一个MODBUS地址对应一个位
三、30001---39999是输入寄存器地址3XXXX-------AIWaa
30001-------AIW030002-------AIW230003-------AIW4
…………………………..
30030------AIW5830031--------AIW6030032--------AIW62
对应公式
AIWaa=(XXXX-1)*2
如30004aa=(0004-1)*2=6------对应AIW6
如30030aa=(0030-1)*2=58----对应AIW58
反过来地址=(aa+2)/2再加上开头30000
如AIW62则地址=(32+2)/2=32------地址30032
注意每一个3XXXX地址对应一个字
四、40001---49999是保持寄存器地址,
它对应-----从站指定的供MODBUS地址使用的V存储器。以VBa开头的起始地址(间接寻址方式)

如下图,是PLC从站设定,HoldStart---设定起始地址是VB0
则:对应关系
40001--------VW0(VB0、VB1)40002-----VW2(VB2、VB3)
40003--------VW4(VB4、VB5)40100VW198(VB198、VB199)
如果HoldStart---设定起始地址是VB50
则对应关系:
40001---VW5040002---VW5240003---VW54
40050---VW14840051-----VW150
因此可得公式,HoldStart---设定起始地址是VBa
则对应关系
4XXXX对应VW=(XXXX-1)*2+a
举例:HoldStart---设定起始地址是VB11
则40001对应(0001-1)*2+11=11,对应vw11
40010对应(0010-1)*2+11=29,对应VW29
反过来已知VWb---对应地址
地址={(b-a)+2}/2
如VW29-----对应{(29-11)+2}/2=10-----对应地址40010
VW51------对应{(51-11)+2}/2=21------对应地址40021
![[湖北 宜昌市当阳市王店镇] [湖北 宜昌市当阳市王店镇]](/imgs/baidou-v2/upload/default/1B4D88366.jpg)




