- Home
- Modbus register maps
- Wilo
- Para MAXO (built-in Modbus RTU)
Pump (high-efficiency circulator) · Modbus register map
Wilo Para MAXO (built-in Modbus RTU) Modbus register map
Updated 16 October 2026
The Wilo Para MAXO is a high-efficiency OEM circulator (used inside boilers and heat pumps) with Modbus RTU on its signal cable. A master switches the pump on/off, picks constant speed or constant/variable differential pressure, and writes a relative duty point in 0.5 % steps; a bus command timer can drop the pump to preset fallback values on comm loss. Read-only data covers pressure, calculated flow, power, energy, run hours, speed, status bits and the Wilo error code.
This page lists 28 Modbus registers for the Wilo Para MAXO (built-in Modbus RTU) — 10 writable — with the table, 0-based wire address, data type, word order, scale, units and access of each, re-typed from Wilo’s own free documentation (linked below) and checked against it.
- Manufacturer
- Wilo
- Model
- Para MAXO (built-in Modbus RTU)
- Equipment type
- Pump (high-efficiency circulator)
- Registers
- 28 (10 writable)
- Transport
- Modbus RTU
- Default unit ID
- 101
- Default serial
- 19200 baud, 8E1
- Documented addressing
- 0-based (the number printed is the address on the wire)
- Firmware
- Para MAXO Modbus module 1.00-99.99
- Also known as
- Para MAXO, Wilo-Para MAXO, Para MAXO Modbus
Integration notes: Wilo Para MAXO (built-in Modbus RTU)
Talk to address 101 at 19200 8E1 by default. Write H 42 (control mode), then H 1 (duty point, 200 = 100 %) and H 40 = 1 to run; read I 200/I 400 for set and actual duty point, I 1/I 2/I 4 for pressure, flow and power, and I 404/I 940 for status and errors.
Minimum registers to map
Addresses are 0-based wire addresses. Enough to monitor and run the unit; map more as the job needs.
| Register | Name | Type | Why | Access |
|---|---|---|---|---|
| HR 40 | Pump Command in | BITMAP16 | Pump on/off | Read/write |
| HR 42 | Control Function | UINT16 | Control mode | Read/write |
| HR 1 | duty point (rel.) | INT16 | Duty point (setpoint), 0.5 % steps | Read/write |
| IR 404 | Operation Status | BITMAP16 | Operation status bits | Read |
| IR 940 | Warning/Error Message | UINT16 | Wilo error code | Read |
| IR 4 | power input | UINT16 | Electrical power | Read |
| IR 7 | Speed | INT16 | Speed | Read |
| IR 2 | Flow (calculated) | UINT16 | Calculated flow | Read |
Enable Modbus control & writes
No enable step is documented: the pump accepts Modbus writes directly. Use Bus Command Timer (H 300) = MANUAL to allow both local and bus operation (last write wins).
Communication loss & watchdog
Fallback emulation (guide p. 23): set H 400 (20-65534 s, default 300 s), the fallback on/off H 404 and the fallback duty point H 402, then write H 300 = 6 (SET_PRESET) and keep rewriting it before the timeout. If it lapses the pump runs on the preset values. The fallback control mode register H 403 is not listed here because Wilo's documents give conflicting codes for it.
Byte order & addressing
- Register numbers are already wire addresses (0-based); do not subtract 1.
- Duty point is in 0.5 % steps: 200 = 100 % of the mode's reference (max head or max speed from I 206).
- After changing the control mode (H 42), write H 1 = 0 first and then the new duty point so the active duty point refreshes.
- Writes below the minimum output (I 204) are clamped to it.
- Input register I 402 (Pump Command active) shows bit 3 as a static 1 described as needed 'for write access', while the guide's examples write H 40 = 1 (bit 0 only). Follow the guide's values and confirm with I 402.
Network setup
- Signal cable: core 1 (brown) = Data+ / D1 / B(+), core 3 (black) = Data- / D0 / A(-), core 2 (blue/grey) = common.
- Terminate both bus ends with 120-150 ohm; no line polarization is needed on the Wilo side.
- Change address, baud and frame via H 61440, H 61441 and H 61442 (default 101, 19200, 8E1).
Watch out for
- Wilo numbers registers from zero, unlike the usual 1-based Modbus register numbering; a tool that adds or subtracts 1 will hit the wrong register.
- Calculated flow is an estimate; do not use it for closed-loop control.
Wilo Para MAXO (built-in Modbus RTU) Modbus registers
Address = 0-based wire address (the documented number is shown under it when it differs) · Order: ABCD = high word first, CDAB = low word first · Scale: engineering value = raw × scale.
| Table | Address | Name | Description | Type | Order | Scale | Units | Access | Values / bits |
|---|---|---|---|---|---|---|---|---|---|
| IR | 1 | Pressure | Actual (differential) pressure; 65535 = error/not available. | UINT16 | × 10 | cm H2O | Read | ||
| IR | 2 | Flow (calculated) | Calculated estimate, not for closed-loop control; error value 9999 (list) or 65535 (guide). | UINT16 | × 0.1 | m³/h | Read | ||
| IR | 3 | Energy Consumption | Total consumed electrical energy; 65535 = error. | UINT16 | kWh | Read | |||
| IR | 4 | power input | Actual electrical input power; 65535 = error. | UINT16 | W | Read | |||
| IR | 5 | Operation Time | Total running time (motor turning); 65535 = error. | UINT16 | × 10 | h | Read | ||
| IR | 7 | Speed | Rotational speed; 65535 = error. | INT16 | rpm | Read | |||
| IR | 10 | Control Function (active) | Active control mode. | UINT16 | Read | 1 = Gen_Spd (constant speed); 3 = Gen_PHdConst (constant differential pressure); 4 = Gen_PHdVar (variable differential pressure); 140 = Gen_UsrDfd (user-configurable PID) | |||
| IR | 18 | Speed max-pres-value | Maximum speed value. | UINT16 | rpm | Read | |||
| IR | 19 | Speed min-pres-value | Minimum speed value. | UINT16 | rpm | Read | |||
| IR | 24 | Flow (calculated) max-pres-value | UINT16 | × 0.1 | m³/h | Read | |||
| IR | 200 | duty point (rel.) (active) | Setpoint currently in effect. | INT16 | × 0.5 | % | Read | ||
| IR | 202 | duty point (rel.) maximum-output | Highest duty point the pump accepts in this mode. | INT16 | × 0.5 | % | Read | ||
| IR | 204 | duty point (rel.) minimum-output | Lowest duty point the pump accepts; lower writes are clamped. | INT16 | × 0.5 | % | Read | ||
| IR | 208 | duty point (rel.) units | Unit code of the duty-point reference. | UINT16 | Read | 19 = kWh; 47 = W; 73 = s; 104 = rpm (min-1); 135 = m³/h | |||
| IR | 400 | duty point (rel.) (output) | Actual operating point as % of the duty-point range. | INT16 | × 0.5 | % | Read | ||
| IR | 402 | Pump Command active | Command currently in effect. | BITMAP16 | Read | bit 0 = Pump on; bit 3 = TRUE (static 1) | |||
| IR | 404 | Operation Status | Pump operating state flags. | BITMAP16 | Read | bit 0 = Ready for Operation; bit 1 = Pump on; bit 3 = Warning Present; bit 4 = Error Present (will retry); bit 5 = Final Error present (no retry) | |||
| IR | 940 | Warning/Error Message | Current Wilo warning/error code (E000-E255). | UINT16 | Read | 0 = No error; 4 = Mains undervoltage; 7 = Generator operation; 10 = Blocked rotor; 11 = Dry running; 19 = Pump flow error; 21 = Motor overload (torque); 23 = Short circuit; 25 = Motor/winding contact missing; 30 = Module overtemperature; 31 = Power bridge/component overtemperature; 32 = DC link undervoltage; 33 = DC link overvoltage; 38 = Fluid temperature sensor defect; 50 = BMS communication timeout; 111 = Overcurrent; 112 = Speed above synchronous value; 119 = Turbine operation; 252 = Extended code | |||
| HR | 1 | duty point (rel.) | Setpoint as % of the duty-point range (200 = 100 %); 32767 = error. | INT16 | × 0.5 | % | Read/write | ||
| HR | 40 | Pump Command in | Pump on/off command. | BITMAP16 | Read/write | bit 0 = Pump on | |||
| HR | 42 | Control Function | Control mode; an unsupported value leaves the previous mode active. | UINT16 | Read/write | 1 = Gen_Spd (constant speed); 3 = Gen_PHdConst (constant differential pressure); 4 = Gen_PHdVar (variable differential pressure); 140 = Gen_UsrDfd (user-configurable PID) | |||
| HR | 300 | Bus Command Timer | Local-lockout / fallback timer state machine (write SET or SET_PRESET periodically). | UINT16 | Read/write | 1 = OFF; 2 = SET; 3 = ACTIVE; 4 = RESET; 5 = MANUAL; 6 = SET_PRESET; 7 = ACTIVE_PRESET; 8 = RESET_PRESET; 9 = MANUAL_PRESET | |||
| HR | 400 | Bus Command Timer Timeout | Fallback timeout, 20-65534 s (factory 300 s). | UINT16 | s | Read/write | |||
| HR | 402 | duty point (rel.) preset | Fallback setpoint used after the bus command timer elapses. | INT16 | × 0.5 | % | Read/write | ||
| HR | 404 | Pump Command preset | Fallback on/off command. | BITMAP16 | Read/write | bit 0 = Pump on preset | |||
| HR | 61440 | interface device identifier | Modbus slave address, 1-247 (default 101). | UINT16 | Read/write | ||||
| HR | 61441 | transmission serial speed | Baud rate (default 19200). | UINT16 | Read/write | 0 = 300; 1 = 600; 2 = 1200; 3 = 2400; 4 = 4800; 5 = 9600; 6 = 19200; 7 = 38400; 8 = 57600; 9 = 115200; 10 = 76800; 12 = Invalid | |||
| HR | 61442 | transmission serial frame | Data bits / parity / stop bits (default 8E1). | UINT16 | Read/write | 2 = 8N1; 3 = 8N2; 6 = 8E1; 10 = 8O1; 15 = Invalid |
Notes on this map
- The register list is Wilo's public HTML datapoint list (Wilo's media CDN, reached from the short link qr.wilo.com/para-maxo-Modbus-registers printed in Wilo's own guide). Addressing, communication defaults (address 101, 19200 baud, 8E1), the duty-point worked examples and the fallback procedure come from Wilo's 'OEM Technical guide Wilo-Para MAXO Modbus Communication Protocol' V01.01 (2025-02-13), https://cms.media.wilo.com/cdndoc/wilo698135/9854564/wilo698135.pdf, pp. 5, 8, 11, 17-25. That PDF carries a notice that it is Wilo property and may not be copied or extracted without Wilo's written acceptance; only re-keyed facts are used here and the PDF is linked, not re-hosted.
- Scale: physical value = raw x scale as listed in the datapoint list (e.g. Pressure raw x 10 = cm H2O, Operation Time raw x 10 = h, Flow raw x 0.1 = m³/h, duty point raw x 0.5 = %).
- Duty point is relative: the engineering value at 100 % is published in input register 206 ('duty point 100 % value', a 32-bit REAL). Head or speed = duty point % x that value / 100.
- Left out because the 32-bit word order is not stated: duty point 100 % value (I 206, REAL), Heartbeat Count (I 500, UDINT), Vendor ID (I 702, DWORD) and parameter block acknowledge (61694, DWORD).
- Flow error value: the datapoint list gives 9999, the technical guide's warning cites 65535; treat both as invalid.
- Removed where Wilo's documents disagree: Bus Command Timer Time remain (I 504: UINT, scale 1 in the datapoint list but UDINT, scale 2 in the guide); Application Version (I 700: WORD in the guide and older list, UDINT in the current list); Control Function preset (H 403: the list codes the modes 1/3/4 but the guide's fallback section codes them 1/2/3). Flow min-pres-value (I 25) is left out because the current list's support reference does not include Para MAXO.
- Speed (I 7) is INT in the current datapoint list and UINT in the guide and the older list; it is typed INT16 here. Real pump speeds are far below 32768 rpm, so both readings agree.
- The control-mode lists (H 42, I 10) also include 140 = Gen_UsrDfd for Para MAXO in the current datapoint list; the guide only describes 1, 3 and 4.
Check it against the live device. A register map tells you what the controller can expose; the unit in front of you may differ by firmware or options. Read a few registers and compare them with the unit’s own display; for a 32-bit value the float and byte-order decoder shows all four word orders at once, so a wrong word order or scale is obvious. New to this? Read what a register map is and why addresses are off by one.
Questions about the Wilo Para MAXO (built-in Modbus RTU)
What Modbus registers does the Wilo Para MAXO (built-in Modbus RTU) have?
This map lists 28 registers: 18 input registers, 10 holding registers. 10 of them can be written. Registers vary with firmware, options and configuration, so confirm against the device.
Are the Wilo Para MAXO (built-in Modbus RTU) Modbus addresses 0-based or 1-based?
The manufacturer's document numbers registers 0-based (the number printed is the address on the wire). Every address on this page is the 0-based wire address you put in the request; the documented number is shown under it where it differs. Wilo register numbers start at zero and equal the request address (Wilo's Para MAXO Modbus technical guide states this explicitly), so Flow 'I 2' is input register address 2 on the wire.
What are the minimum Modbus registers to integrate the Wilo Para MAXO (built-in Modbus RTU)?
Start with HR 40 Pump Command in (Pump on/off); HR 42 Control Function (Control mode); HR 1 duty point (rel.) (Duty point (setpoint), 0.5 % steps); IR 404 Operation Status (Operation status bits); IR 940 Warning/Error Message (Wilo error code); IR 4 power input (Electrical power); IR 7 Speed (Speed); IR 2 Flow (calculated) (Calculated flow).
How do I enable Modbus control of the Wilo Para MAXO (built-in Modbus RTU)?
No enable step is documented: the pump accepts Modbus writes directly. Use Bus Command Timer (H 300) = MANUAL to allow both local and bus operation (last write wins).
What happens when the Wilo Para MAXO (built-in Modbus RTU) loses Modbus communication?
Fallback emulation (guide p. 23): set H 400 (20-65534 s, default 300 s), the fallback on/off H 404 and the fallback duty point H 402, then write H 300 = 6 (SET_PRESET) and keep rewriting it before the timeout. If it lapses the pump runs on the preset values. The fallback control mode register H 403 is not listed here because Wilo's documents give conflicting codes for it.
Where is the official Wilo Para MAXO (built-in Modbus RTU) Modbus documentation?
The source is WILO datapoint list MODBUS - Para MAXO (Modbus list of registers) (wilo458422), published free by Wilo at https://cms.media.wilo.com/cdndoc/wilo458422/9310881/wilo458422.html.
More Wilo Modbus register maps
Source: WILO datapoint list MODBUS - Para MAXO (Modbus list of registers) · wilo458422. Register numbers, types, scaling and units are reproduced as published; descriptions are our own.