当我们拿到一个ModbusTCP的设备,连接到PLC网络后,发现无法读到数据,那么这时候我们应该如何做,才能找到其中的问题呢?
碰到这种问题,排除网线等问题外,不外乎两种可能行,一是ModbusTCP设备故障,二是PLC端有问题,PLC端问题包括配置,包括编程。
那么我们来一步一步找出问题所在。
下面以ModbusTCP读卡器YW-630NA和YW-641NA为例,这2款智能卡读卡器都是ModbusTCP的,连接PLC后,正常可以读取40004和40005卡号寄存器。如果读取失败,那么我们一步一步来排除故障。
1、在计算机端开启一个TCP Server工具,将PLC上配置的连接设备的IP修改为计算机的IP,这样当PLC轮询是会将数据发送到计算机。如果没有数据,则说明PLC端配置错误,找下程序的问题。
2、如果有数据, 那么我们就分析这个数据,如下图:
计算机端收到了轮询数据,就说明PLC端的配置和程序都是对的,看看帧数据:
00 02 00 00 00 06 FF 03 00 04 00 04
我们分析下数据:
00 02 00 00 modbusTCP协议头,不用管。
00 06 长度
FF 读卡器设备的站地址
03 读功能码
00 04 卡号寄存器首地址
00 04 寄存器个数,4个寄存器
这样看这个协议,就很清楚了,Modbus读卡器的站地址是否为255(0xFF),如果不是就设置成255.
另外再看寄存器首地址,由于基址不一样,西门子的地址需要+1,也就是在PLC端配置成40005开始。
3.通过以上的分析,我们可以很快的诊断出问题出现在哪里。
楼主最近还看过