Xylem Bell & Gossett pump controller
Register map(s) for this device, each at the trust rung it earned. Addresses are 0-based
as on the wire. Word order and scaling are confirmed at the hardware-verified rung and at no rung below it.
interop-verified
Read + decoded cleanly over a real network vs an independent third-party Modbus test server (transport and framing; reads are remapped into the server's register window, so the map's own addresses are NOT exercised). Does NOT prove word order/scaling against the actual device.
| point | address (0-based) | type | scale | unit |
| last_error_code | 6 | U16 | 1 | |
| parameter_index | 8 | U16 | 1 | |
| control_word_pcd | 2809 | U16 | 1 | |
| reference_pcd | 2810 | I16 | 0.006103515625 | |
| status_word_pcd | 2909 | U16 | 1 | |
| main_actual_value_pcd | 2910 | I16 | 0.006103515625 | |
| control_word | 49999 | U16 | 1 | |
| bus_reference | 50009 | I16 | 0.006103515625 | % |
| status_word | 50199 | U16 | 1 | |
| main_actual_value | 50209 | I16 | 0.006103515625 | % |
| power_kw | 16099 | U32BE | 0.01 | kW |
| motor_voltage | 16119 | U16 | 0.1 | V |
| frequency | 16129 | U16 | 0.1 | Hz |
| motor_current | 16139 | U32BE | 0.01 | A |
| speed_rpm | 16169 | I16 | 1 | RPM |
| dc_link_voltage | 16299 | U16 | 1 | V |
| heatsink_temp | 16339 | I16 | 1 | |
link settings as documented (unverified): RTU; default 9600 8E1; FC 01,03,05,06,11,15,16,17
bench facts as documented (unverified)
| terminals | Terminal 68, Terminal 69 |
| A/B polarity | Terminal 68 is connected to the P signal (TX+, RX+), Terminal 69 is connected to the N signal (TX-, RX-) |
| termination | Resistor network at both ends, set switch S801 on the control card to 'On' |
| connector | Control card terminals |
| isolation | Galvanic isolation |
| shield/ground | 0.25 mm2/24 AWG shielded twisted-pair cable |
| max registers/read | 63 |
| broadcast | supported |
| firmware register | 15429 |
| power | 380-500 V, 525-690 V |
| environment | Air humidity designed to meet IEC/EN 60068-2-3, EN 50178 at 50°C. IP54/55 or IP00/IP20/TYPE 1. |
| doc revision | MG92B102, Rev. 2011-10-31 |
field reports — community-sourced, unverified (checked 2026-06-11)
- Off-by-one register addressing confusion: Users frequently encounter issues because Danfoss/Xylem documentation lists 1-based register numbers (e.g., 2810 for Control Word, 16170 for Speed RPM), but Modbus masters require 0-based addressing (e.g., 2809, 16169). [source]
- Write function code documentation anomaly: The vendor documentation lists Function Code 03 (Read Holding Registers) for all parameters, failing to explicitly specify that Function Codes 06 (Write Single Register) or 16 (Write Multiple Registers) must be used to write to writable parameters. [source]
- RS-485 polarity swap: In some field installations, technicians have had to reverse the RS-485 polarity (swapping terminals 68 and 69) to establish communication, despite the documented polarity. [source]
- confirmed: comms defaults (baud rates [2400-115200], default baud 9600, RTU framing, Even parity, 1 stop bit) — confirmed by Danfoss Modbus RTU Operating Instructions (MG92B102) and Xylem Technologic manuals
- confirmed: physical connection details (terminals 68/69, polarity, termination switch S801, galvanic isolation) — confirmed by Xylem Technologic Intelligent Pump Controller Instruction Manual and Danfoss VLT manuals
- confirmed: register map addresses (0-based addresses for control word, status word, parameters like speed, frequency, current, etc.) — confirmed by Danfoss FC102 Modbus Register Overview and Xylem documentation
- confirmed: quirks (broadcast supported, max read registers of 63) — confirmed by Danfoss Modbus RTU Operating Instructions (MG92B102)
The trust ladder
Each rung states what it proved and what it did not. Gray until proven; green is earned by hardware only.
- generated — A prompt produced it. Unproven — anyone can regenerate this.
- structure-verified — Decode path is structurally sound (addresses, widths, finite values). Does NOT prove word order or scaling.
- interop-verified — Read + decoded cleanly over a real network vs an independent third-party Modbus test server (transport and framing; reads are remapped into the server's register window, so the map's own addresses are NOT exercised). Does NOT prove word order/scaling against the actual device.
- simulator-verified — Decoded correctly against a protocol emulator seeded with known-true values — catches word-order/scaling errors vs the emulator, not the physical device.
- hardware-verified x1 — Matched a real device with operator-attested readings as ground truth — the only rung that confirms word order + scaling on the wire.