当前位置: 主页 > PLC控制

西门子200的MBUS-MSG指令的问题

48193是该变频器说明书里频率地址,194是电流,195是电压之类的这样,如果和变频器通讯,如果在ADDr填48193,count那里填5,DATAptr填VB0
读取变频器数据是不是就会读取48193,48194,48195,48196,48197五个参数然后由VB0,VB2,VB4,VB6,VB8分别存储,是这样吗

最佳答案

&VB0对应的地址是一个字,也就是对应VW0,你一次读五笔,这五笔就是这样对应。&VB0=VW0,&VB1=VW2,&VB2=VW4,&VB3=VW6,&VB4=VW8
你可以参考下面的说明:
参数Count指定在此次请求中要读取或写入的数据元素数。对于位数据类型,Count将是位数;而对
于字数据类型,它指的则是字数。
地址0xxxxCount是要读取或写入的位数
地址1xxxxCount是要读取的位数
地址3xxxxCount是要读取的输入寄存器字的个数
地址4xxxxCount是要读取或写入的保持寄存器字的个数
MBUS_MSG指令将读取或写入最大120个字或1920个位(240字节的数据)。Count值的实际限制取
决于MODBUS从站设备中的限制。
参数DataPtr是一个间接地址指针,它指向S7-200CPU中与读取或写入请求相关的数据所在的V存
储器。对于读取请求,DataPtr应该指向用于存储从Modbus从站读取的数据的第一个CPU存储器位
置。而对于写请求,DataPtr应该指向要发送到Modbus从站的数据的第一个CPU存储器位置。
DataPtr值作为一个间接地址指针,传送到MBUS_MSG中。例如,如果要写入到Modbus从站设备
的数据在S7-200CPU中的起始地址为VW200,那么DataPtr的值就应该是&VB200(VB200的地
址)。指针的类型必须始终为VB,即使它指向的是字数据。
表12–9MBUS_MSG指令的参数。
参数数据类型操作数
FirSTBOOLI、Q、M、S、SM、T、C、V、L(上升沿检测单元所要求的功率
流)
SlaveBYTEVB、IB、QB、MB、SB、SMB、LB、AC、常数、*VD、*AC、*LD
RWBYTEVB、IB、QB、MB、SB、SMB、LB、AC、常数、*VD、*AC、*LD
ADDRDWORDVD、ID、QD、MD、SD、SMD、LD、AC、常数、*VD、*AC、
*LD
CountintVW、IW、QW、MW、SW、SMW、LW、AC、常数、*VD、*AC、
*LD
DataPtrDWORD&VB
DoneBOOLI、Q、M、S、SM、T、C、V、L
errorBYTEVB、IB、QB、MB、SB、SMB、LB、AC、*VD、*AC、*LD
保持寄存器(地址4xxxx)和输入寄存器(地址3xxxx)是字值(2字节或16位)。S7-200CPU字格
式与Modbus寄存器的完全相同。较低编号的V存储器地址是寄存器的最高有效字节。较高编号的V存
储器地址则是寄存器的最低有效字节。下表说明了S7-200字节和字编址是如何与Modbus寄存器格式
相对应的。
表12–10Modbus保持寄存器
S7-200CPU存储器
字节地址
S7-200CPU存储器
字地址
Modbus
保持寄存器地址
V存储器地址十六进制数据V存储器地址十六进制数据V存储器地址十六进制数据
VB20012VW200123440011234
VB20134
VB20256VW202567840025678
VB20378
VB2049AVW2049ABC40039ABC
VB205BC
位数据(地址0xxxx和1xxxx)区作为打包的字节读/写,也就是说,8个数据位打包成一个字节的数
据。第一个数据字节的最低有效位是寻址的位号(参数Addr)。如果只写入单个位,则该位必须在
DataPtr所指向的字节的最低有效位中。

提问者对于答案的评价:
是这个意思就行,大概了解了

  • 关注微信

猜你喜欢

微信公众号