Wincc下,ModbusTcpCPU类型下有三种,各是什么意思?另外。我的设置如下:
CPU:Premium,
服务器:192.168.0.18 。
端口502,
远程从站地址 1 其它默认。
建立数据变量为NewTag_1,数据为浮点数32位,地址 区域为保持 寄存器,%MW 设置为1。
我转串口后,再用串口检测出来后数据如下:01 03 1A 81 00 01 D3 3A 。但是用ModScan检测出来的数据倒是正常且有回复数据。请问一下,哪里设置错了。其它的CPU类型设置后第一两次正常但随后 不正常数据。谢谢
问题补充:
奇怪就在这里。我分明是浮点数,发出的应该是00 001 地址才对,且数据长度为00 02才对。但是Wincc里是没有奇偶校验的啊。
最佳答案
先说楼主串口检测到的报文01 03 1A 81 00 01 D3 3A,01代表Modbus从站地址为1,03代表读取保持寄存器,1A 81代表保持寄存器地址为6785,对应Premium PLC地址为%MW6784(Premium PLC遵从IEC0地址编码),00 01代表读取的数据长度;D3 3A代表CRC校验码。
现在就可以看到和楼主读写有差别的地方:
1/ 楼主的实际读写地址为%MW1,而发出的报文为%MW6784;
2/ 实际读取的是浮点数,而发出的报文只读取了1个保持寄存器即1个字,因此,楼主要确认上述数据是否设置正确,另外注意串口的奇偶校验是否正确;
提问者对于答案的评价:
其实不论什么设置都输出一样的指令。我怀疑是那个Wincc安装 的问题造成的。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc220521.html