ModbusRTU Alert


Recommended Posts

I am slightly confused as to why I am recieving the following error.

P-ModbusRTU 0011: CRC Fail

06/03/10 11:18:54.052

P-ModbusRTU 0014: ID Mismatch

I currently have only one device connectede via Seriel RS232 and all connections are fine. I can both read and write to my device (digital I/O unit) if that makes any difference with no problems. Ihave tried both addressing methods, 0 and 40k both resulting in the same problem. The error is also intermittent, about once every 60 seconds. I have checked the manual, and fault codes only seem available from 1000 upwards. Any ideas??

Many Thanks


Link to comment
Share on other sites

Sounds like you have garbage on the line. Watch the serial monitor. You'll probably see traffic that is very orderly, then every 60 seconds or so, something that doesn't make sense. With Modbus it's pretty easy to spot problems. In RTU, the first byte is always the ID and the second byte the command. These should be echoed back in receive (along with data), so the first two bytes of tx and rx in RTU are always the same unless there is an error. If the device is sending back an error code, the second byte in the Rx will be 128 more than the Tx, so if Tx has command 3, it will return 131. ID mismatch means that the first byte returned did not match the first byte sent. CRC fail means the checksum failed, usually because of an errant byte.

Link to comment
Share on other sites

  • 2 years later...

good morning

I have the following problem I am using a PLC as a slave device. But to give up with the Scada i get the following error

03/22/13 12:36:48.004

P-ModbusRTU 0011: CRC Fail

And in comm monitor

TX: / 001/001/000/001/000/001/172/010

RX / 001/001/000/001/000/003/172/138/001

TX: / 001/001u1/000/001/182/009

RX / 001/001u1/000/003/182/137/001

TX: 001/003/195Q/000/002/169/158

RX: 001/003/195Q/000/002/169/158/001

Have if I can help please



Link to comment
Share on other sites

Are you getting that error over and over again, or just once in a while? If just once in a while, you may have a wiring issue, or just environmental electrical noise on the line. Check for good wiring and shielding. If you get it with every query, then there is probably a bug in your devices Modbus implementation. It looks like the device is returning a valid packet except I can't do the CRC in my head to check that part :)

Link to comment
Share on other sites

That's because the monitor is not set to "Display ASCII chars as Codes", so any value between 32 and 127 displays as a character instead of the 3 digit number. In the original post, there was enough that I could tell it was a reasonable proper modbus frame even with the substitution. I always enable "Display ASCII chars as codes" when dealing with Modbus (except ASCII). Basically any protocol that isn't ASCII based.

Link to comment
Share on other sites


This topic is now archived and is closed to further replies.