工控智汇

工控智汇

快速推算Modbus通信地址对应的PLC实际地址

admin 77 105

快速推算西门子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