Modbus RTU communication Error
I tried to communicate 6 ABB vfd drive (ACS560) to PM554-TP-ETH via modbus RTU. When all the drives are in idle condition the communication is good . for the application to read 3 values from each drives. when any one of vfd is in running condition i got error in each 6 block (ACS_COM_MOD_RTU) .
then i tried to communicated each drives individually the same issues exists.
Error Numbers are :
1. 8216 (check sum error).
2.28685(Function Block Read_Parameters has been executed with error).
I don't why those error come only in running condition not in idle condition.
kindly guide me to solve this issue.
Voted best answer
As pointed out by Mr Kamil，the most probable reason is EMI.
In addition to serial cable grounding，it is critical that only standard twisted pair cable (shielded) is used for communication. Grounding the shield eliminates EMI due to capacitive coupling，where as twisted pair arrangement eliminates EMI effects due to inductive coupling.
The twisted pair cable ensures the voltage induced in both D+ and D- wires are equal. This allows the Modbus driver to identify common mode noise signal in the serial line and thereby filter it while decoding the serial data stream/applying checksum calculation to the received data bytes in the modbus RTU message frame.
As a trouble shooting step，instead of PLC as a master，use Modscan32 and usb to rs485 serial converter to verify the received hexadecimal data ，while the drive(s) is running.
As per my experience，either few bytes will go missing or their values may change in the modbus message received by the master due to EMI messing with the signal levels. Hence the checksum error.