![]() ![]() |
I have a multi-drop RS485 arrangement with 2 slaves (HMI running on Windows XP with Modbus Slave app) and a master (Modbus Poll). I use RS232/RS485 converter in the slaves and USB/RS485 converter in the master PC. As long as both slave applications are running, the communication is ok. When one slave app is stopped, I get CRC Error in Modbus Poll master. When I remove the RS232 from the 'stopped' slave, the comms is ok again. Any ideas why I get the 'CRC Error'?
![]() ![]() |
Generically speaking, if you are adhering to proper "Fail Safe Biasing", 3rd wire Common and Termination resistors you should not have this happen. Some Dell computers have been known to send all there RS232 outputs HIGH when the port/app is shut down.
![]() ![]() |
You probably need a better RS232/485 converter on the slaves - what is happening is that the "off-line" slave is causing a long-break on the RS-232 output (so the RS-232 TX line goes to an invalid state). This causes the RS-485 output to be transmitting.
If you are a student doing tests/simulation, it is a sad truth that MOST notebook computers now put their RS-232 port into an invalid state when powered down/not open in Windows.
So either buy an RS-232/485 converter which auto-detects & suppresses such a 'long break' condition. Or power/wire the RS-232/485 in such a way that it auto-powers down if the RS-232 slave device is not functioning.
If you are a student doing tests/simulation, it is a sad truth that MOST notebook computers now put their RS-232 port into an invalid state when powered down/not open in Windows.
So either buy an RS-232/485 converter which auto-detects & suppresses such a 'long break' condition. Or power/wire the RS-232/485 in such a way that it auto-powers down if the RS-232 slave device is not functioning.
![]() ![]() |
Can somebody tell me the reason for error like Read Error: Break Condition in MODBUS Poll..??
I also get the message Insufficient Databytes received.
I also get the message Insufficient Databytes received.
![]() ![]() |
It sounds like either your RS232-485 converter or a slave device is sending a "break" condition (all 0's for >1 character time). It would probably be related to "insufficient databytes" as well if the device sending the break decides to send it during a response packet.
Darrin
Darrin
![]() ![]() |
But this happens only with one specific device I am trying to read. The others work just fine. So is it still possible that the problem is at the converter?
![]() ![]() |
Not sure what kind of converter you are using, and how it is configured. but if all the other devices on the network are good and only one slave is giving you grief, then it sure sounds like something is going on with that slave. It almost sounds like some sort of hardware problem, as it's not very common in Modbus device firmware to have or need the ability to ever intentionally send a BREAK condition (and not all UARTS even support that feature).
Your use of this site is subject to the terms and conditions set forth under Legal Notices and the Privacy Policy. Please read those terms and conditions carefully. Subject to the rights expressly reserved to others under Legal Notices, the content of this site and the compilation thereof is © 1999-2013 Nerds in Control, LLC. All rights reserved.
Users of this site are benefiting from open source technologies, including PHP, MySQL and Apache. Be happy.
Fortune
Do infants have as much fun in infancy as adults do in adultery?







on 27 January, 2010 - 1:39 pm
