- Home
- Modbus register maps
- Grundfos
- E-pumps (MAGNA3, TPE, CRE, CUE) via CIM 200 / CIM 500
Pump (circulator / E-pump / pump drive) · Modbus register map
Grundfos E-pumps (MAGNA3, TPE, CRE, CUE) via CIM 200 / CIM 500 Modbus register map
Updated 16 October 2026
Grundfos exposes its electronically controlled pumps over Modbus through a plug-in CIM 200 (RTU) or CIM 500 (Modbus TCP) module, a CIU box, or the SoftCIM port on newer MGE motors. All pump types share one functional profile: a control block (remote/start/stop, control mode, setpoint), a status block and a measurement block. This map covers the module configuration and watchdog, control and status words, alarm/warning codes and the live measurements; many measurements exist only on certain motor generations or with an extra sensor.
This page lists 102 Modbus registers for the Grundfos E-pumps (MAGNA3, TPE, CRE, CUE) via CIM 200 / CIM 500 — 20 writable — with the table, 0-based wire address, data type, word order, scale, units and access of each, re-typed from Grundfos’s own free documentation (linked below) and checked against it.
- Manufacturer
- Grundfos
- Model
- E-pumps (MAGNA3, TPE, CRE, CUE) via CIM 200 / CIM 500
- Equipment type
- Pump (circulator / E-pump / pump drive)
- Registers
- 102 (20 writable)
- Transport
- Modbus RTU, Modbus TCP
- Default unit ID
- Not stated
- Default serial
- 19200 baud, 8E1
- TCP port
- 502
- Documented addressing
- 1-based (subtract 1 for the wire address)
- 32-bit word order
- ABCD high word first (big-endian)
- Also known as
- MAGNA3, TPE, TPE Series 2000, CRE, CRNE, CRIE, MTRE, CHIE, CME, NBE, NKE, CUE, MGE, CIM 200, CIU 200, CIM 500, CIU 500, SoftCIM Modbus RTU
Integration notes: Grundfos E-pumps (MAGNA3, TPE, CRE, CUE) via CIM 200 / CIM 500
Set the CIM 200 address on the two hex rotary switches (or the CIM 500 to Modbus TCP), then write control register 00101 = 3 (remote + start) and the setpoint to 00104 in 0.01 % steps. Poll 00201 for on/alarm/warning bits, 00205/00206 for codes and 00301 onwards for head, flow, speed and power.
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 100 | ControlRegister | BITMAP16 | Remote/start/stop/reset command word | Read/write |
| HR 101 | ControlMode | UINT16 | Control mode | Read/write |
| HR 103 | Setpoint | UINT16 | Setpoint, 0.01 % | Read/write |
| HR 200 | PumpStatus | BITMAP16 | Status bits (on, running, alarm, warning, remote) | Read |
| HR 204 | AlarmCode | UINT16 | Alarm code | Read |
| HR 300 | Head | UINT16 | Head | Read |
| HR 301 | VolumeFlow | UINT16 | Flow | Read |
| HR 303 | Speed | UINT16 | Speed | Read |
| HR 311 | Power | UINT32 ABCD | Power (32-bit) | Read |
| HR 11 | Watchdog | UINT16 | Comm watchdog timeout | Read/write |
Enable Modbus control & writes
Bus control requires bit 0 (RemoteAccessReq) of 00101 = 1; then bit 1 starts (1) or stops (0) the pump. OperationMode 00103 only takes effect while the pump is commanded on (OnOffReq = 1).
Communication loss & watchdog
Register 00012 sets a comm-loss timeout of 5-3600 s (0 = disabled, the default). Any valid telegram feeds it; on timeout the pump returns to Local mode.
Byte order & addressing
- Register numbers are 1-based: 00104 is wire address 103.
- Temperatures are in 0.01 K, not degrees C.
- ResetAlarm (00101 bit 2) acts on a rising edge; with AutoAckControlBits (00005) = 0 you must clear the bit yourself before the next reset.
- The setpoint is a percentage of the configured sensor range (closed loop) or of nominal frequency (open loop), not an engineering value.
- The manual's 'stop' telegram example shows value 0x03 in the frame but 0x0001 in the text; 0x0001 (remote, off) is the stop command per the bit definitions.
Network setup
- CIM 200: set the slave address (1-247) on hex rotary switches SW6 (high nibble) and SW7 (low nibble).
- CIM 200 baud via SW4/SW5: OFF/ON = 9600, OFF/OFF = 19200 (default), ON/OFF = 38400, ON/ON = software-defined (registers 00003/00004/00009/00010).
- CIM 200 parity via SW3: OFF = even parity, 1 stop bit (default); ON = no parity, 2 stop bits.
- CIM 200 line termination (120 ohm) via SW1 and SW2, both ON = terminated; default is not terminated. Switch changes take effect immediately.
- CIM 500: set the protocol rotary switch to the Modbus TCP position, then set the Modbus TCP IP address in the web server (default web server 192.168.1.100, user admin). The Modbus TCP IP must differ from the web server IP; port 502 is always active.
- SoftCIM (MGE with FM310/311/110): configure address, baud, parity, stop bits and watchdog in Grundfos GO under Settings > Communication > RS485 AYB.
Watch out for
- Register 00002 is shown as RESERVED in the table but returns 'RegisterOffset' in the manual's example; leave it at 0.
- SoftCIM cannot be used while a CIM module is fitted in the same MGE motor; set the AYB port to GENIbus in that case.
- Restart the CIM/CIU after changing the pump's sensor configuration so measurement scaling is updated.
- Unit ID is ignored by the CIM 500 on Modbus TCP.
Grundfos E-pumps (MAGNA3, TPE, CRE, CUE) via CIM 200 / CIM 500 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 |
|---|---|---|---|---|---|---|---|---|---|
| HR | 0doc 00001 | SlaveMinimumReplyDelay | Extra reply delay added by the CIM 200 (0-10000 ms). Not on CIM 500 or SoftCIM. | UINT16 | ms | Read/write | |||
| HR | 2doc 00003 | SoftwareDefinedModbusAddress | Slave address used only when SW4/SW5 select software-defined settings (CIM 200). | UINT16 | Read/write | ||||
| HR | 3doc 00004 | SoftwareDefinedBitRate | Baud rate used only in software-defined mode (CIM 200). | UINT16 | Read/write | 0 = 1200; 1 = 2400; 2 = 4800; 3 = 9600; 4 = 19200; 5 = 38400 | |||
| HR | 4doc 00005 | AutoAckControlBits | 1 = CIM lowers triggered control bits (e.g. ResetAlarm) automatically. | UINT16 | Read/write | 0 = Disabled; 1 = Enabled | |||
| HR | 8doc 00009 | SoftwareDefinedParity | Parity used only in software-defined mode (CIM 200). | UINT16 | Read/write | 0 = None; 1 = Even; 2 = Odd | |||
| HR | 9doc 00010 | SoftwareDefinedStopBit | Stop bits used only in software-defined mode (CIM 200). | UINT16 | Read/write | 0 = No stop bit; 1 = 1 stop bit; 2 = 2 stop bits | |||
| HR | 11doc 00012 | Watchdog | Comm-loss timeout; 0 disables. On timeout the pump reverts to Local mode. | UINT16 | s | Read/write | |||
| HR | 20doc 00021 | GENIbusCRCErrorCnt | CRC errors on the internal GENIbus link to the pump. | UINT16 | Read | ||||
| HR | 21doc 00022 | GENIbusDataErrorCnt | Data errors on the internal GENIbus link to the pump. | UINT16 | Read | ||||
| HR | 22doc 00023 | VersionNumber | Grundfos version number, BCD coded. | UINT16 | Read | ||||
| HR | 23doc 00024 | ActualModbusAddress | Slave address currently in use (1-247). | UINT16 | Read | ||||
| HR | 24doc 00025 | GENIbusTXcount | Telegrams sent to the pump on GENIbus (HI/LO pair). | UINT32 | ABCD | Read | |||
| HR | 26doc 00027 | GENIbusRXcount | Telegrams received from the pump on GENIbus (HI/LO pair). | UINT32 | ABCD | Read | |||
| HR | 29doc 00030 | UnitFamily | Product family code. | UINT16 | Read | 1 = Circulator pumps; 2 = E-pump; 7 = Motor Protector; 17 = Hydro Multi-E; 21 = Hydro/Control MPC; 26 = Dedicated Controls; 28 = CIU xx2 SEG AutoAdapt; 30 = Smart Digital Dosing, DDA; 38 = Circulator twin pump; 39 = Multi pump; 46 = LC Controller, water supply; 48 = LC Controller, waste water; 65 = SQ Controller | |||
| HR | 30doc 00031 | UnitType | Product type within the family; see manual table (e.g. family 1 type 10 = MAGNA3). | UINT16 | Read | ||||
| HR | 31doc 00032 | UnitVersion | Product version. | UINT16 | Read | ||||
| HR | 33doc 00034 | ProductSoftwareVersion | Product software version, BCD digits aa.bb.cc.dd (HI/LO pair). | UINT32 | ABCD | Read | |||
| HR | 35doc 00036 | ProductSoftwareDayMonth | Product software date, BCD ddmm. | UINT16 | Read | ||||
| HR | 36doc 00037 | ProductSoftwareYear | Product software date, BCD yyyy. | UINT16 | Read | ||||
| HR | 100doc 00101 | ControlRegister | Remote/local, start/stop, alarm reset and related command bits. | BITMAP16 | Read/write | bit 0 = RemoteAccessReq (1 = remote, Modbus master controls); bit 1 = OnOffReq (1 = start, 0 = stop); bit 2 = ResetAlarm (rising edge); bit 4 = CopyToLocal (MAGNA3, CUE, MGE model H+); bit 5 = EnableMaxFlowLimit (MAGNA3, MGE model H+) | |||
| HR | 101doc 00102 | ControlMode | Requested control mode; not every mode is supported by every pump. | UINT16 | Read/write | 0 = Constant speed; 1 = Constant frequency; 3 = Constant head; 4 = Constant pressure; 5 = Constant differential pressure; 6 = Proportional pressure; 7 = Constant flow; 8 = Constant temperature; 9 = Constant differential temperature; 10 = Constant level; 128 = AUTOadapt; 129 = FLOWadapt; 130 = Closed-loop sensor; 131 = AUTOadapt (CP) | |||
| HR | 102doc 00103 | OperationMode | Requested operating mode; only acts when OnOffReq is On. | UINT16 | Read/write | 0 = Auto-control (setpoint); 4 = OpenLoopMin; 6 = OpenLoopMax | |||
| HR | 103doc 00104 | Setpoint | Closed loop: % of setpoint range. Open loop: % of nominal frequency. | UINT16 | × 0.01 | % | Read/write | ||
| HR | 104doc 00105 | RelayControl | Relay outputs when configured for bus control (0 = closed, 1 = open). | BITMAP16 | Read/write | bit 0 = Relay1Control (E-pumps and CUE); bit 1 = Relay2Control (CUE, large MGE, MGE model H+); bit 2 = Relay3Control (MGE model H+); bit 3 = Relay4Control (MGE model H+) | |||
| HR | 106doc 00107 | SetPumpUnixRtc | Sets pump clock, seconds since 1970-01-01 (MAGNA3 / MGE model H+). | UINT32 | ABCD | s | Read/write | ||
| HR | 108doc 00109 | SensorFeedback | Closed-loop sensor feedback written via Modbus. | UINT16 | × 0.01 | % | Read/write | ||
| HR | 109doc 00110 | SetKp | Controller proportional gain (MAGNA3 / MGE model H+). | UINT16 | × 0.1 | Read/write | |||
| HR | 110doc 00111 | SetTi | Controller integral time (MAGNA3 / MGE model H+). | UINT16 | × 0.1 | s | Read/write | ||
| HR | 111doc 00112 | SetDirectCtr | Direct or inverse control (MAGNA3 / MGE model H+). | UINT16 | Read/write | 0 = Inverse control; 1 = Direct control | |||
| HR | 200doc 00201 | PumpStatus | Pump mode and state flags. | BITMAP16 | Read | bit 0 = LowFlowStop active (MGE model H+); bit 1 = CopyToLocal enabled; bit 2 = MaxFlowLimit enabled; bit 3 = ResetAlarmAck; bit 4 = Setpoint influence active; bit 5 = AtMaxPower; bit 6 = Rotation (running); bit 7 = Direction (1 = counterclockwise); bit 8 = AccessMode (1 = remote); bit 9 = OnOff (1 = on/started); bit 10 = Alarm; bit 11 = Warning; bit 12 = ForcedToLocal; bit 13 = AtMaxSpeed; bit 15 = AtMinSpeed | |||
| HR | 201doc 00202 | ProcessFeedback | Closed loop: % of sensor range. Open loop: % of pump performance. | UINT16 | × 0.01 | % | Read | ||
| HR | 202doc 00203 | ControlMode (actual) | Active control mode. | UINT16 | Read | 0 = Constant speed; 1 = Constant frequency; 3 = Constant head; 4 = Constant pressure; 5 = Constant differential pressure; 6 = Proportional pressure; 7 = Constant flow; 8 = Constant temperature; 9 = Constant differential temperature; 10 = Constant level; 128 = AUTOadapt; 129 = FLOWadapt; 130 = Closed-loop sensor; 131 = AUTOadapt (CP) | |||
| HR | 203doc 00204 | OperationMode (actual) | Active operating mode. | UINT16 | Read | 0 = Auto-control; 4 = OpenLoopMin; 6 = OpenLoopMax; 7 = UserCurve; 8 = StopButton; 9 = HandMode | |||
| HR | 204doc 00205 | AlarmCode | Active Grundfos alarm code; 0 = none. | UINT16 | Read | 1 = Leakage current; 2 = Missing phase; 3 = External fault signal; 4 = Too many restarts; 7 = Too many hardware shutdowns; 14 = Electronic DC-link protection activated (ERP); 16 = Other; 29 = Turbine operation, impellers forced backwards; 30 = Change bearings; 31 = Change varistor(s); 32 = Overvoltage; 40 = Undervoltage; 41 = Undervoltage transient; 42 = Cut-in fault (dV/dt); 45 = Voltage asymmetry; 48 = Overload; 49 = Overcurrent (i_line, i_dc, i_mo); 50 = Motor protection function, general shutdown (MPF); 51 = Blocked motor or pump; 54 = Motor protection function, 3-second limit; 55 = Motor current protection activated (MCP); 56 = Underload; 57 = Dry-running; 60 = Low input power; 62 = Safe Torque Off activated; 64 = Overtemperature; 65 = Motor temperature 1 (t_m or t_mo or t_mo1); 66 = Control electronics temperature high; 67 = Temperature too high, internal frequency converter module (t_m); 68 = Water temperature high; 70 = Thermal relay 2 in motor, for example thermistor; 72 = Hardware fault, type 1; 73 = Hardware shutdown (HSD); 76 = Internal communication fault; 77 = Communication fault, twin-head pump; 80 = Hardware fault, type 2; 83 = Verification error, FE parameter area (EEPROM); 84 = Memory access error; 85 = Verification error, BE parameter area (EEPROM); 88 = Sensor fault; 89 = Signal fault, (feedback) sensor 1; 91 = Signal fault, temperature 1 sensor; 93 = Signal fault, sensor 2; 96 = Setpoint signal outside range; 105 = Electronic rectifier protection activated (ERP); 106 = Electronic inverter protection activated (EIP); 135 = Signal fault, GDS sensor; 148 = Motor bearing temperature high (Pt100) in drive end (DE); 149 = Motor bearing temperature high (Pt100) in non-drive end (NDE); 155 = Inrush fault; 156 = Communication fault, internal frequency converter module; 157 = Real time clock error; 159 = The CIM module has lost connection to the product; 161 = Sensor supply fault, 5 V; 162 = Sensor supply fault, 24 V; 163 = Measurement fault, motor protection; 164 = Signal fault, LiqTec sensor; 165 = Signal fault, analog input 1; 166 = Signal fault, analog input 2; 167 = Signal fault, analog input 3; 175 = Signal fault, temperature sensor 2; 176 = Signal fault, temperature sensor 3; 190 = Limit exceeded, sensor 1; 191 = Limit exceeded, sensor 2; 209 = Non-return valve fault; 215 = Soft pressure buildup timeout; 240 = Lubricate bearings; 241 = Motor phase failure; 242 = Automatic motor model recognition failed | |||
| HR | 205doc 00206 | WarningCode | Active Grundfos warning code; same code list as alarms. | UINT16 | Read | 1 = Leakage current; 2 = Missing phase; 3 = External fault signal; 4 = Too many restarts; 7 = Too many hardware shutdowns; 14 = Electronic DC-link protection activated (ERP); 16 = Other; 29 = Turbine operation, impellers forced backwards; 30 = Change bearings; 31 = Change varistor(s); 32 = Overvoltage; 40 = Undervoltage; 41 = Undervoltage transient; 42 = Cut-in fault (dV/dt); 45 = Voltage asymmetry; 48 = Overload; 49 = Overcurrent (i_line, i_dc, i_mo); 50 = Motor protection function, general shutdown (MPF); 51 = Blocked motor or pump; 54 = Motor protection function, 3-second limit; 55 = Motor current protection activated (MCP); 56 = Underload; 57 = Dry-running; 60 = Low input power; 62 = Safe Torque Off activated; 64 = Overtemperature; 65 = Motor temperature 1 (t_m or t_mo or t_mo1); 66 = Control electronics temperature high; 67 = Temperature too high, internal frequency converter module (t_m); 68 = Water temperature high; 70 = Thermal relay 2 in motor, for example thermistor; 72 = Hardware fault, type 1; 73 = Hardware shutdown (HSD); 76 = Internal communication fault; 77 = Communication fault, twin-head pump; 80 = Hardware fault, type 2; 83 = Verification error, FE parameter area (EEPROM); 84 = Memory access error; 85 = Verification error, BE parameter area (EEPROM); 88 = Sensor fault; 89 = Signal fault, (feedback) sensor 1; 91 = Signal fault, temperature 1 sensor; 93 = Signal fault, sensor 2; 96 = Setpoint signal outside range; 105 = Electronic rectifier protection activated (ERP); 106 = Electronic inverter protection activated (EIP); 135 = Signal fault, GDS sensor; 148 = Motor bearing temperature high (Pt100) in drive end (DE); 149 = Motor bearing temperature high (Pt100) in non-drive end (NDE); 155 = Inrush fault; 156 = Communication fault, internal frequency converter module; 157 = Real time clock error; 159 = The CIM module has lost connection to the product; 161 = Sensor supply fault, 5 V; 162 = Sensor supply fault, 24 V; 163 = Measurement fault, motor protection; 164 = Signal fault, LiqTec sensor; 165 = Signal fault, analog input 1; 166 = Signal fault, analog input 2; 167 = Signal fault, analog input 3; 175 = Signal fault, temperature sensor 2; 176 = Signal fault, temperature sensor 3; 190 = Limit exceeded, sensor 1; 191 = Limit exceeded, sensor 2; 209 = Non-return valve fault; 215 = Soft pressure buildup timeout; 240 = Lubricate bearings; 241 = Motor phase failure; 242 = Automatic motor model recognition failed | |||
| HR | 206doc 00207 | BearingService | Bits 0-7: months to next bearing service (0xFF = n/a). Bit 8: service type. | BITMAP16 | Read | bit 8 = BearingServiceType (0 = lubricate, 1 = change bearings) | |||
| HR | 207doc 00208 | DriveState | Drive state (MGE motors and CUE only). | UINT16 | Read | 0 = Stopped; 1 = Accelerating; 2 = Decelerating; 3 = Steady state/closed loop; 5 = Accelerating halt; 6 = Decelerating halt; 7 = Start on the run (flying cut-in) | |||
| HR | 208doc 00209 | FeedbackSensorUnit | Engineering unit of the feedback sensor. | UINT16 | Read | 0 = bar; 1 = mbar; 2 = m; 3 = kPa; 4 = psi; 5 = ft; 6 = m³/h; 7 = m³/s; 8 = l/s; 9 = gpm; 10 = °C; 11 = °F; 12 = %; 13 = K; 14 = W | |||
| HR | 211doc 00212 | NomFrequency | Nominal pump frequency (MAGNA3 / MGE model H+). | UINT16 | × 0.1 | Hz | Read | ||
| HR | 212doc 00213 | MinFrequency | Minimum frequency, % of nominal (MAGNA3 / MGE model H+). | UINT16 | × 0.01 | % | Read | ||
| HR | 213doc 00214 | MaxFrequency | Maximum frequency, % of nominal (MAGNA3 / MGE model H+). | UINT16 | × 0.01 | % | Read | ||
| HR | 214doc 00215 | SetpointRangeMin | Setpoint range minimum, % of sensor maximum (MAGNA3 / MGE model H+). | UINT16 | × 0.01 | % | Read | ||
| HR | 215doc 00216 | SetpointRangeMax | Setpoint range maximum, % of sensor maximum (MAGNA3 / MGE model H+). | UINT16 | × 0.01 | % | Read | ||
| HR | 220doc 00221 | FlowEstimationState | Whether the flow estimate is within range. | UINT16 | Read | 0 = Within range; 1 = Below range; 2 = Above range | |||
| HR | 221doc 00222 | Kp | Actual proportional gain (MAGNA3 / MGE model H+). | UINT16 | × 0.1 | Read | |||
| HR | 222doc 00223 | Ti | Actual integral time (MAGNA3 / MGE model H+). | UINT16 | × 0.1 | s | Read | ||
| HR | 223doc 00224 | DirectControl | Actual direct/inverse selection. | UINT16 | Read | 0 = Inverse control; 1 = Direct control | |||
| HR | 224doc 00225 | ControlSource | Source currently controlling the pump. | UINT16 | Read | 1 = Display; 2 = Bus; 3 = GO app; 4 = Digital input; 5 = OFF button | |||
| HR | 300doc 00301 | Head | Actual system head/pressure. | UINT16 | × 0.001 | bar | Read | ||
| HR | 301doc 00302 | VolumeFlow | Actual system flow (estimated on MAGNA3 and TPE Series 2000). | UINT16 | × 0.1 | m³/h | Read | ||
| HR | 302doc 00303 | RelativePerformance | Performance relative to maximum. | UINT16 | × 0.01 | % | Read | ||
| HR | 303doc 00304 | Speed | Motor speed. | UINT16 | rpm | Read | |||
| HR | 304doc 00305 | Frequency | Control signal applied to the motor. | UINT16 | × 0.1 | Hz | Read | ||
| HR | 305doc 00306 | DigitalInput | External digital input states. | BITMAP16 | Read | bit 0 = DI1; bit 1 = DI2; bit 2 = DI3; bit 3 = DI4 | |||
| HR | 306doc 00307 | DigitalOutput | External digital output states. | BITMAP16 | Read | bit 0 = DO1; bit 1 = DO2; bit 2 = DO3; bit 3 = DO4 | |||
| HR | 307doc 00308 | ActualSetpoint | Open loop: % of nominal frequency. Closed loop: % of sensor maximum. | UINT16 | × 0.01 | % | Read | ||
| HR | 308doc 00309 | MotorCurrent | UINT16 | × 0.1 | A | Read | |||
| HR | 309doc 00310 | DCLinkVoltage | Frequency converter DC-link voltage. | UINT16 | × 0.1 | V | Read | ||
| HR | 310doc 00311 | MotorVoltage | Motor voltage. 0.25-7.5 kW pumps: MGE model G only; not on MAGNA3. | UINT16 | × 0.1 | V | Read | ||
| HR | 311doc 00312 | Power | Total power consumption (HI/LO pair). | UINT32 | ABCD | W | Read | ||
| HR | 313doc 00314 | RemoteFlow | Flow from an external sensor. | UINT16 | × 0.1 | m³/h | Read | ||
| HR | 314doc 00315 | InletPressure | Inlet pressure relative to atmosphere; raw includes -1.000 bar offset. | UINT16 | × 0.001 − 1 | bar | Read | ||
| HR | 315doc 00316 | RemotePressure1 | Pressure at external sensor 1. | UINT16 | × 0.001 | bar | Read | ||
| HR | 316doc 00317 | FeedTankLevel | Feed tank level; raw includes -100 m offset. | UINT16 | × 0.01 − 100 | m | Read | ||
| HR | 317doc 00318 | PowerElectronicTemp | Frequency converter temperature (kelvin). | UINT16 | × 0.01 | K | Read | ||
| HR | 318doc 00319 | MotorTemp | Motor winding temperature (kelvin). CUE with sensor. | UINT16 | × 0.01 | K | Read | ||
| HR | 319doc 00320 | RemoteTemp1 | External temperature sensor 1 (kelvin). | UINT16 | × 0.01 | K | Read | ||
| HR | 320doc 00321 | ElectronicTemp | Pump electronics temperature (kelvin). | UINT16 | × 0.01 | K | Read | ||
| HR | 321doc 00322 | PumpLiquidTemp | Pumped-liquid temperature (kelvin). | UINT16 | × 0.01 | K | Read | ||
| HR | 322doc 00323 | BearingTempDE | Drive-end bearing temperature (kelvin). | UINT16 | × 0.01 | K | Read | ||
| HR | 323doc 00324 | BearingTempNDE | Non-drive-end bearing temperature (kelvin). | UINT16 | × 0.01 | K | Read | ||
| HR | 324doc 00325 | AuxSensorInput | Auxiliary sensor input. | UINT16 | × 0.01 | % | Read | ||
| HR | 325doc 00326 | SpecificEnergyConsumption | UINT16 | Wh/m³ | Read | ||||
| HR | 326doc 00327 | OperationTime | Total operating hours (HI/LO pair). | UINT32 | ABCD | h | Read | ||
| HR | 328doc 00329 | TotalPoweredTime | Total powered-on hours (HI/LO pair). | UINT32 | ABCD | h | Read | ||
| HR | 330doc 00331 | Torque | Motor torque (11-22 kW and CUE). | UINT16 | × 0.1 | Nm | Read | ||
| HR | 331doc 00332 | Energy | Total energy consumption (HI/LO pair). | UINT32 | ABCD | kWh | Read | ||
| HR | 333doc 00334 | NumberOfStarts | Number of pump starts (HI/LO pair). | UINT32 | ABCD | Read | |||
| HR | 336doc 00337 | RemoteTemp2 | External temperature sensor 2 (kelvin). | UINT16 | × 0.01 | K | Read | ||
| HR | 337doc 00338 | UserSetpoint | User-selected setpoint (open loop % of nominal frequency, closed loop % of range). | UINT16 | × 0.01 | % | Read | ||
| HR | 338doc 00339 | DiffPressure | Pressure across the pump flanges. | UINT16 | × 0.001 | bar | Read | ||
| HR | 339doc 00340 | OutletPressure | UINT16 | × 0.001 | bar | Read | |||
| HR | 340doc 00341 | RemotePressure2 | UINT16 | × 0.001 | bar | Read | |||
| HR | 341doc 00342 | LoadPercent | Motor current as % of rated current. | UINT16 | × 0.01 | % | Read | ||
| HR | 342doc 00343 | PumpUnixRtc | Pump clock, seconds since 1970-01-01 (HI/LO pair). | UINT32 | ABCD | s | Read | ||
| HR | 344doc 00345 | MaxFlowLimit | Actual maximum flow limit. | UINT16 | × 0.1 | m³/h | Read | ||
| HR | 345doc 00346 | RemoteDiffTemp | Remote differential temperature. | UINT16 | × 0.01 | K | Read | ||
| HR | 346doc 00347 | InletDiffPressure | UINT16 | × 0.001 | bar | Read | |||
| HR | 347doc 00348 | OutletDiffPressure | UINT16 | × 0.001 | bar | Read | |||
| HR | 348doc 00349 | RemoteDiffPressure | UINT16 | × 0.001 | bar | Read | |||
| HR | 349doc 00350 | StorageTankLevel | Storage tank level; raw includes -100 m offset. | UINT16 | × 0.01 − 100 | m | Read | ||
| HR | 350doc 00351 | AmbientTemp | Ambient temperature (kelvin). | UINT16 | × 0.01 | K | Read | ||
| HR | 351doc 00352 | HeatEnergyCounter1 | Heat energy, direction 1 (needs flow and delta-T). | UINT32 | ABCD | kWh | Read | ||
| HR | 353doc 00354 | HeatPower | Actual heat power (needs flow and delta-T). | UINT32 | ABCD | W | Read | ||
| HR | 355doc 00356 | HeatDiffTemp | Forward/return delta-T used for heat calculation. | UINT16 | × 0.01 | K | Read | ||
| HR | 356doc 00357 | Volume1 | Total pumped volume, direction 1. | UINT32 | ABCD | × 0.01 | m³ | Read | |
| HR | 358doc 00359 | HeatEnergyCounter2 | Heat energy, direction 2. | UINT32 | ABCD | kWh | Read | ||
| HR | 360doc 00361 | Volume2 | Total pumped volume, direction 2. | UINT32 | ABCD | × 0.01 | m³ | Read | |
| HR | 700doc 00701 | Simulation.AlarmCode | Alarm code to simulate (not CUE). | UINT16 | Read/write | ||||
| HR | 701doc 00702 | Simulation.WarningCode | Warning code to simulate (not CUE). | UINT16 | Read/write | ||||
| HR | 707doc 00708 | Simulation.Activate | Starts/stops alarm simulation. | UINT16 | Read/write | 0 = Deactivate; 1 = Activate | |||
| HR | 708doc 00709 | Simulation.Active | Alarm simulation status. | UINT16 | Read | 0 = Not active; 1 = Active |
Notes on this map
- All blocks can be read with function code 03 or 04; this map lists them as holding registers. Configuration and control registers are written with 06 or 16.
- 32-bit values are split into HI and LO registers with HI at the lower address; the manual gives value = HI x 65536 + LO, so word order is ABCD.
- Temperatures are published in 0.01 K (kelvin); subtract 273.15 to get degrees C.
- InletPressure (00315) carries a -1.000 bar offset; FeedTankLevel (00317) and StorageTankLevel (00350) carry a -100 m offset. These are applied via offset.
- A raw value of 0xFFFF in the measurement block means 'not available' (sensor missing or pump type does not support it). Many measurements need MGE model G/H/K, CUE or an external sensor; see the availability table on pp. 23-24.
- Left out: FeedbackSensorMin/Max (00210/00211) because the manual gives no scaling; Conductivity, pH and Turbidity (00363-00365) because the published units look inconsistent; user registers 00751-00800 (free storage). Also left out: SetMaxFlowLimit (00106), because the manual says it is written in 0.01 m³/h while its read-back register MaxFlowLimit (00345) is listed in 0.1 m³/h; the write scale is not certain.
- SoftCIM Modbus RTU and CIM 200 support the same registers unless noted. In the configuration block, 00001, 00003, 00004, 00009 and 00010 apply to the CIM 200 only (not CIM 500), and 00001 is not supported by SoftCIM; 00005 and 00012 apply to both CIM 200 and CIM 500.
- Alarm and warning code lists are shared; not every code applies to every pump type.
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 Grundfos E-pumps (MAGNA3, TPE, CRE, CUE) via CIM 200 / CIM 500
What Modbus registers does the Grundfos E-pumps (MAGNA3, TPE, CRE, CUE) via CIM 200 / CIM 500 have?
This map lists 102 registers: 102 holding registers. 20 of them can be written. Registers vary with firmware, options and configuration, so confirm against the device.
Are the Grundfos E-pumps (MAGNA3, TPE, CRE, CUE) via CIM 200 / CIM 500 Modbus addresses 0-based or 1-based?
The manufacturer's document numbers registers 1-based (subtract 1 for the wire address). 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. Registers are printed as 5-digit register numbers (00104 = Setpoint). The manual's telegram examples address register X as X-1 on the wire, e.g. Setpoint 00104 is written at address 0x0067 (103).
What byte order does the Grundfos E-pumps (MAGNA3, TPE, CRE, CUE) via CIM 200 / CIM 500 use for 32-bit values?
Multi-register values in this map use ABCD (high word first (big-endian)). Set your client to this order for every 32/64-bit value in the table.
What are the minimum Modbus registers to integrate the Grundfos E-pumps (MAGNA3, TPE, CRE, CUE) via CIM 200 / CIM 500?
Start with HR 100 ControlRegister (Remote/start/stop/reset command word); HR 101 ControlMode (Control mode); HR 103 Setpoint (Setpoint, 0.01 %); HR 200 PumpStatus (Status bits (on, running, alarm, warning, remote)); HR 204 AlarmCode (Alarm code); HR 300 Head (Head); HR 301 VolumeFlow (Flow); HR 303 Speed (Speed); HR 311 Power (Power (32-bit)); HR 11 Watchdog (Comm watchdog timeout).
How do I enable Modbus control of the Grundfos E-pumps (MAGNA3, TPE, CRE, CUE) via CIM 200 / CIM 500?
Bus control requires bit 0 (RemoteAccessReq) of 00101 = 1; then bit 1 starts (1) or stops (0) the pump. OperationMode 00103 only takes effect while the pump is commanded on (OnOffReq = 1).
What happens when the Grundfos E-pumps (MAGNA3, TPE, CRE, CUE) via CIM 200 / CIM 500 loses Modbus communication?
Register 00012 sets a comm-loss timeout of 5-3600 s (0 = disabled, the default). Any valid telegram feeds it; on timeout the pump returns to Local mode.
Where is the official Grundfos E-pumps (MAGNA3, TPE, CRE, CUE) via CIM 200 / CIM 500 Modbus documentation?
The source is Modbus for Grundfos pumps - SoftCIM Modbus RTU, CIM/CIU 200 Modbus RTU, CIM/CIU 500 Ethernet for Modbus TCP - Functional profile and user manual (98367081), revision 2025-05, published free by Grundfos at https://api.grundfos.com/literature/Grundfosliterature-6012947.pdf.
More Grundfos Modbus register maps
- Pump (booster system / multi-pump controller)
Grundfos Booster systems (Hydro MPC, Hydro Multi-E, Multi-B) via CIM 200 / CIM 500
Grundfos booster systems: Hydro MPC / Control MPC (CU 352), GENIECON MPC, Hydro Multi-B (CU 323), DDD (CU 354), Hydro Multi-E, TPED and MAGNA3-D twin pumps, with CIM/CIU 200, CIM/CIU 500 or SoftCIM.
Also known as: Hydro MPC, Control MPC, CU 352, GENIECON MPC, Hydro Multi-E, Hydro Multi-B, CU 323, DDD, CU 354, TPED, MAGNA3-D, CIM 200, CIM 500, SoftCIM Modbus TCP - Pump (chemical dosing pump)
Grundfos SMART Digital DDA dosing pump (SoftCIM, CIM 200 / CIM 500)
Grundfos SMART Digital DDA dosing pumps: DDA model C with built-in SoftCIM Modbus RTU/TCP, and DDA XL (or others) through a CIM 200 Modbus RTU or CIM 500 Modbus TCP module in a CIU 900, per functional profile 98473491 (09.2026).
Also known as: DDA, DDA S, DDA XL, DDA-C, DDA model C, SMART Digital S, SMART Digital XL, CIM 200, CIM 500, 98473491
Source: Modbus for Grundfos pumps - SoftCIM Modbus RTU, CIM/CIU 200 Modbus RTU, CIM/CIU 500 Ethernet for Modbus TCP - Functional profile and user manual · 98367081 · rev. 2025-05. Register numbers, types, scaling and units are reproduced as published; descriptions are our own.