Modbus RTU RS-485 Wiring: Polarity, Termination and Common Faults
Modbus RTU communication failures are responsible for the majority of sub-metering and HVAC commissioning delays in KNX projects. RS-485 is a robust protocol when wired correctly, but it is unforgiving of common installation mistakes: reversed polarity, missing termination resistors, ground loops in screened cables, and bus length exceedance. This guide covers the diagnostic process for each failure mode, with specific reference to the wiring conventions used by the most common energy meters (Carlo Gavazzi EM340, Eastron SDM630) and HVAC equipment (Belimo Energy Valve, Mitsubishi MAC-397IF) in KNX installations.
RS-485 fundamentals
RS-485 is a differential signalling standard: the logic state is determined by the voltage difference between two conductors (A and B, also called D+ and D-, or non-inverting and inverting). Logic 1: A > B (A is more positive than B by at least 200mV). Logic 0: B > A (B is more positive than A by at least 200mV). Common voltages: A = +3.5V, B = -3.5V for logic 1. A = -3.5V, B = +3.5V for logic 0. Maximum bus voltage: ±7V. Fail-safe: when the bus is idle (no transmission), the termination resistor holds the line in a defined state — preventing false start bits. Bias resistors (pull-up on A, pull-down on B) are built into most modern RS-485 masters — verify in the device manual.
Polarity confusion — the most common fault
Every RS-485 device uses different labelling for the two conductors. Common label conventions: A/B (standard RS-485 naming — A = non-inverting, B = inverting), D+/D- (some manufacturers define D+ = non-inverting = A), TX+/RX+ and TX-/RX- (half-duplex devices), + and - (ambiguous — some define + as A/non-inverting, others as B/inverting). Carlo Gavazzi EM340: terminals labelled + (= RS-485 A, non-inverting) and - (= RS-485 B, inverting). Eastron SDM630: terminals labelled A (= RS-485 A, non-inverting) and B (= RS-485 B, inverting) — same as standard. Belimo Energy Valve: terminals labelled + and - where + = A (non-inverting). WAGO 750-653 RS-485 module: terminals B (non-inverting) and A (inverting) — REVERSED from standard convention. If WAGO B goes to Carlo Gavazzi + and WAGO A goes to Carlo Gavazzi -, the polarity is correct despite confusing labelling. When in doubt: swap A and B — if communication was failing, swapping usually fixes it immediately.
Termination resistors
RS-485 requires a termination resistor at each end of the bus (at the Modbus master and at the last device on the string). Value: match cable impedance — 120 ohms for standard twisted-pair cable (Belden 9841, Turck RSC 485). Without termination: reflections cause ringing at the end of each transmitted byte — received as phantom start bits and corrupted data. Symptoms of missing termination: occasional CRC errors (5-20% of messages fail), degrading performance at higher baud rates, errors only at specific polling intervals. Adding termination: connect 120-ohm resistor between A and B at the far end of the bus. Most modern Modbus devices have an internal jumper or DIP switch for termination — enable on the last device on the bus. Only terminate at BOTH ends — terminating intermediate devices or only one end causes signal degradation.
Ground loops in screened cables
Screened (shielded) RS-485 cable (Belden 9841 or equivalent) should have its screen earthed at ONE end only — typically at the Modbus master/WAGO controller end. If both ends are earthed: current flows in the screen from earth differences between panel earth and remote device earth (common in industrial environments). This ground loop current induces noise in the A/B signal conductors — causes CRC errors even at low baud rates. Diagnosis: disconnect screen at one end, retry communication. If communication improves immediately: ground loop confirmed. Solution: earth screen at master end only. For buildings with poor earthing (TT system): equipotential bonding between equipment earth bars before connecting RS-485 screened cable, or use optically isolated RS-485 repeater at field device.
Bus length and baud rate
Maximum bus length at different baud rates (for 120-ohm cable): 9600 baud = 1200m, 19200 = 600m, 38400 = 300m, 115200 = 100m. In practice: keep bus under 500m at 9600 baud even if cable length permits more — longer runs accumulate more interference and capacitance. For runs over 300m: use RS-485 repeater (Wago 750-627 or Phoenix Contact TRIO-RS) at midpoint. Capacitance limit: RS-485 standard specifies maximum 52pF/m cable capacitance. Longer cables have more capacitance, reducing the allowed rise time and therefore the maximum baud rate. Most energy meter bus installations (< 200m) work perfectly at 9600 baud.
Diagnostic procedure
Step 1: verify communication cable continuity with multimeter (A to A, B to B, no cross-connections). Step 2: measure bus voltage with oscilloscope or multimeter — idle bus should show A > B by at least 200mV. Step 3: send single Modbus read request, observe A and B with oscilloscope — should see differential signal switching cleanly. Step 4: check termination at both ends. Step 5: if oscilloscope not available — use Modbus scanner app (Modbus Poll, QModMaster on PC with USB/RS-485 adapter) to send test queries with manual timeout and retry settings. Step 6: reduce baud rate to 2400 — if communication succeeds, the problem is cable capacitance or length-related. Step 7: isolate devices — disconnect all but one device from bus, test communication — if successful, reconnect one device at a time to find the faulty device (short-circuit, wiring error, address conflict).
Need help with your KNX or DALI project?
Our certified engineers can discuss panel design, commissioning, integrations and project-specific edge cases. Free initial consultation.
Contact our engineers →