Modbus Intermittent Communication Drops
The most frustrating Modbus problem: it works, then it doesn't, then it works again. Values flicker, signals drop for half a second, outputs follow the dropout and cause physical equipment to stutter. This guide helps you systematically diagnose and fix intermittent communication.
On a BESS site, a Modbus signal (shutdown_complete_ems_a) was dropping out for exactly 500ms every 60-120 seconds. This was tied to a physical output, causing relay chatter. The cause: the EMS was periodically refreshing its register table, clearing the value briefly during the update cycle. The fix was a Turn-Off Delay (TOF) timer in the PLC code that rode through the dropout.
Diagnosing the Pattern
Intermittent problems always have a pattern — you just need to find it. Start by logging every communication failure with a timestamp. Then look for correlations:
- Regular interval (e.g., every 60 seconds) → The slave device is doing something periodic (firmware update cycle, internal refresh, watchdog reset)
- Correlates with equipment (e.g., when a VFD starts) → EMI/electrical noise
- Gets worse under load (more devices = more dropouts) → Bus congestion or polling too fast
- Time of day (e.g., worse in the afternoon) → Thermal issues — loose connections expand in heat
Polling Rate Issues
If you're polling too fast, the slave can't process requests quickly enough and starts ignoring some. Most Modbus devices need 50-200ms between requests. If you're polling 20 devices on the same RS485 bus at 100ms each, the bus is saturated and devices miss their turn.
Calculate your bus capacity: at 9600 baud, a typical request+response takes ~30ms. With 20 devices, that's 600ms per poll cycle minimum. Add 50ms inter-frame delay per device and you need 1.6 seconds for a complete cycle.
EMI & Electrical Noise
If dropouts correlate with equipment switching (VFDs, contactors, generators), the cause is electromagnetic interference on the RS485 cable. Solutions:
- Route RS485 cable away from power cables (minimum 300mm separation)
- Use shielded twisted pair cable
- Add ferrite cores to both ends of the RS485 cable
- Install surge suppressors on the RS485 line if lightning or switching transients are an issue
Bus Contention
Modbus RS485 supports only one master. If two masters (e.g., your PLC and a commissioning laptop) are on the same bus, their transmissions collide randomly, causing intermittent failures for both. Use a Modbus TCP gateway to allow multiple clients.
Software-Side Resilience
Even after fixing the root cause, add resilience in your PLC/SCADA code:
Find the pattern in your dropouts
ModBus Pro's built-in request logging timestamps every communication attempt, making it easier to spot patterns. See if dropouts are periodic, correlate with events, or cluster on specific devices. Turn random failures into root cause diagnosis.
Download Free