最近用CPU226做主站和一称重仪表利用MODBUS RTU协议通讯,可以读出仪表实时数据,但是有一点不是太明白,比如写发送基本格式:地址;功能码;寄存器地址高字节;寄存器地址低字节;数据值高字节;数据值低字节;CRC校验码低字节;CRC校验码高字节。共8个字节.
格式中寄存器地址是如何理解,比如寄存器地址VW1000,如何映射MODBUS地址?是40001,40002之类的吗?
最佳答案
调用Modbus从站时 可以将起始地址进行设置,那么自然可以对应到4X1 3X1了
MaxIQ参数将供Modbus地址0xxxx和1xxxx使用的I和Q点数设为0至128之间的数值。数值0禁止所有向输入和输出的读取。建议使用的MaxIQ数值是128,该数值可在S7-200中存取所有的I和Q点。
MaxAI参数将供Modbus地址3xxxx使用的字输入(AI)寄存器数目设为0至32之间的数值。数值0禁止模拟输入的读数。建议使用的MaxAI数值如下,这些数值可允许存取所有的S7-200模拟输入:
0用于CPU 221
16用于CPU 222
32用于CPU 224、224XP、226和226XM
MaxHold参数设定供Modbus地址4xxxx使用的V存储器中的字保持寄存器数目。例如,为了允许主设备存取2000个字节的V存储器,将MaxHold设为1000个字的数值(保持寄存器)。
HoldStart参数是V存储器中保持寄存器的起始地址。该数值一般被设为VB0,因此HoldStart参数被设为&VB0 (VB0地址)。其它V存储器地址可指定为保持寄存器的起始地址,以便在项目的其它地方使用VB0。Modbus主设备可存取V内存
MaxHold个字数,从HoldStart开始。
MBUS_INIT指令完成时,"完成"输出打开。"错误"输出字节包含执行指令的结果。请参阅Modbus从站协议执行错误代码中可能因执行指令而产生的错误条件。
提问者对于答案的评价:
OK
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc180760.html