s-7200和上位机用MODBUE通讯,开关量上位机可以顺利读出,模拟量不行,请问问题点大概有哪些?
最佳答案
你说的模拟量是不是AIW值,如果是就用功能4,如果不是就用功能3
功能3读取单个或多个保持寄存器(V存储器中的字)的内容,最多可以读120个字。
[例]用功能3读取18号站中以VW20开始的两个字(VW20和VW22),站地址18对应的十六进制数为16#12,VW20对应的modbus地址为000010,对应的十六进制数为16#000A,则请求帧(见图7-31)为12 03 00 0A 00 02 E6 AA(十六进制数),假设VW20=16#1234,VW22=16#ABCD,响应帧(见图7-32)为12 03 04 12 34 AB CD 22 E1(十六进制数)。响应帧的长度L(字节数)与请求读取的字数N有关,L=5+2N(245≥L≥7)。为了允许主设备存取2000个字节的V内存,将MaxHold设为1000个字的数值(保持寄存器)。
功能4用来读单个或多个模拟量输入值,其请求帧和响应帧的格式与功能3相同。
功能4的请求帧(8个字节):
站地址(字节)/04(字节)/首字地址(字)/字数(字)/CRC(字)
功能4的响应帧
站地址(字节)/04 (字节)/数据字节数2N(字节)/数据字1(字)/……/数据字n(字)/CRC (字)
如果读的是V区数据,还要注意的是要读取的数据要在HoldStart 和MaxHold之间
比如:HoldStart=&vb0 MaxHold=20,那么上位机只能读取VW0-VW38 20个字
提问者对于答案的评价:
谢谢指点
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc353523.html