modbus地址怎么与plc地址对应(快速推算Modbus通信地址对应的PLC实际地址)
快速推算西门子PLC MODBUS通信地址对应的PLC实际地址
以下说明都是应用于西门子PLC 通信MODBUS的场合。
我们知道Modbus地址有4类:
00001---09999是离散输出地址,对应PLC的Q线圈。
10001---19999是离散输入地址,对应PLC的I输入点。
30001---39999是输入寄存器地址,对应PLC模拟量输入AIW
40001---49999是保持寄存器地址,对应PLC的V存储器
它们与PLC S7-200的地址对应关系如下:
一、以0开头的离散输出地址0XXXX--------Qaa.b
00001-------Q0.0 00002-------Q0.1 00003-------Q0.2
…………………………..
00126------Q 15.5 00127--------Q15.6 00128--------Q15.7
快速写出它们对应关系呢?用以下公式推算:
(XXXX-1)/ 8=商---作为字节号aa
余数---作为位号b
如地址126 (00126-1)/8=商15---余5 则对应Q15.5
地址4 (4-1)/8=0 余3 则对应Q0.3
反过来,知道Qaa.b,对应地址:
地址号=aa*8 (b 1)
如:Q15.7-----地址=15*8 (7 1)=128---则地址00128
Q1.7------地址=1*8 (7 1)=16------则地址00016
二、以1开头的离散输入地址1XXXX--------Iaa.b
10001-------I0.0 10002-------I0.1 10003-------I0.2
…………………………..
10126------I15.5 00127--------I15.6 10128--------I15.7
公式计算同上。地址要加上开头的10000
如地址10009,则对应(9-1)/8=1--余0--------I1.0
I1.1---------地址=1*8 (1 1)=10---地址为10010
以上每一个MODBUS地址对应一个位
三、30001---39999是输入寄存器地址 3XXXX-------AIWaa
30001-------AIW0 30002-------AIW2 30003-------AIW4
…………………………..
30030------AIW58 30031--------AIW60 30032--------AIW62
对应公式
AIW aa=(XXXX-1)*2
如30004 aa=(0004-1)*2=6------对应AIW6
如30030 aa=(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) 40100 VW198(VB198、VB199)
如果HoldStart---设定起始地址是&VB50
则对应关系:
40001---VW50 40002---VW52 40003---VW54
40050---VW148 40051-----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
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com