wincc 7.0 关于 modbustcp的问题
林慧玲
发布于2014-03-18 17:34
16
0
标签:
wincc下,modbustcpcpu类型下有三种,各是什么意思?另外。设置如下:
cpu:premium,
服务器:192.168.0.18。
端口502,
远程从站地址1其它默认。
建立数据变量为newtag_1,数据为浮点数32位,地址区域为保持寄存器,%mw设置为1。
转串口后,再用串口检测出来后数据如下:01031a810001d33a。但是用modscan检测出来的数据倒是正常且有回复数据。哪里设置错了。其它的cpu类型设置后两次正常但随后不正常数据。
问题补充:
分明是浮点数,发出的应该是00001地址才对,且数据长度为0002才对。但是wincc里是没有奇偶校验的啊。
佳答案
先说串口检测到的报文01031a810001d33a,01代表modbus从站地址为1,03代表读取保持寄存器,1a81代表保持寄存器地址为6785,对应premiumplc地址为%mw6784(premiumplc遵从iec0地址编码),0001代表读取的数据长度;d33a代表crc校验码。
现在就可以看到和读写有差别的地方:
1/的实际读写地址为%mw1,而发出的报文为%mw6784;
2/实际读取的是浮点数,而发出的报文只读取了1个保持寄存器即1个字,因此,要确认上述数据是否设置正确,另外注意串口的奇偶校验是否正确;