Endress+Hauser Proline Promag 400 Modbus RS485 Modbus register map

Electromagnetic flowmeter transmitter from the Proline Promag 400 family with a Modbus RS485 interface. Registers cover volume and mass flow, conductivity, three totalizers, unit selections, diagnostics, device information and the Modbus communication settings.

Protocol
Modbus RS485 (RTU or ASCII)
Defaults
Bus address range 1 to 247. Baud rate options run from 1200 to 115200. Data transfer mode can be RTU or ASCII, with even, odd or no parity. The byte order parameter ships set to 1-0-3-2.
Addresses in the manual
0-based protocol addresses, as sent on the wire
32 and 64-bit values
Low word first (CD AB)
Registers listed
72
Checked against
GP01045D/06/EN/02.21, 71538157, dated 2022-02-01, valid for device firmware 02.01.zz

Address base. Section 6.1.2 (p. 174) says the register addresses follow the Modbus Application Protocol Specification, listed as plain numbers (example: mass flow = 2007, reset totalizer = 6401). For systems using the Modicon convention a leading 3 (read) or 4 (write) is added in front of the number (32007, 46401), which is a prefix and not an offset. This file records the plain numbers. The manual gives no example telegram, so treat the zero-based reading as the manual's own statement and confirm against a live device. Registers shown as a range, for example 3874 to 3875, are listed here by the first address. Address 4918 in the manual is address 4918 on the wire.

Word order. Float values use two registers. The Byte order parameter (register 4915) selects 0-1-2-3, 3-2-1-0, 2-3-0-1 or 1-0-3-2; the factory setting 1-0-3-2 sends the low-order word first with bytes in normal order (CD AB). The setting can be changed to match the host.

Modbus Poll and the Modbus protocol itself count from 0. The "Wire address" column is the number to type into Modbus Poll.

Downloads

The register table has every column on this page. The blocks file imports into Modbus Poll. The template JSON holds the same blocks plus unit, scale and access for scripts.

Registers

72 registers
Manual Wire Register Type Regs Unit Scale Access Area
4918 4918 Locking statusLockingStatus · Bit-style codes: 256 hardware locked, 512 temporarily locked, 2048 custody transfer active (defined parameters), 32768 custody transfer active (all parameters). uint16 1 1 R Holding (FC03)
3878 3878 Direct access codeDirectAccess · Range 0 to 65535. uint16 1 1 RW Holding (FC03)
6817 6817 Device resetDeviceReset · 0 cancel, 1 restart device, 2 reset to delivery settings, 25 restore S-DAT backup (option dependent). uint16 1 1 RW Holding (FC03)
2902 2902 Software option overviewSoftwareOptionOverview · Coded list of enabled software options, for example 1 extended HistoROM, 128 custody transfer. uint16 1 1 R Holding (FC03)
3874 3874 Volume flowVolumeFlow · Unit taken from the volume flow unit register (2103). float32 2 1 R Holding (FC03)
3876 3876 Mass flowMassFlow · Unit taken from the mass flow unit register (2101). float32 2 1 R Holding (FC03)
2013 2013 ConductivityConductivity · Unit taken from the conductivity unit register (2121). float32 2 1 R Holding (FC03)
2103 2103 Volume flow unit codeVolumeFlowUnit · 0 cm3/s, 1 cm3/min, 2 cm3/h and so on; the full list is in the manual. uint16 1 1 RW Holding (FC03)
2104 2104 Volume unit codeVolumeUnit · 0 cm3, 4 l and others; see the manual. uint16 1 1 RW Holding (FC03)
2121 2121 Conductivity unit codeConductivityUnit · 1 MS/m and others; see the manual. uint16 1 1 RW Holding (FC03)
2109 2109 Temperature unit codeTemperatureUnit · 0 degC, 1 K and others. uint16 1 1 RW Holding (FC03)
2101 2101 Mass flow unit codeMassFlowUnit · 0 g/s and others; see the manual. uint16 1 1 RW Holding (FC03)
2102 2102 Mass unit codeMassUnit · 50 g and others; see the manual. uint16 1 1 RW Holding (FC03)
2107 2107 Density unit codeDensityUnit · 0 g/cm3 and others; see the manual. uint16 1 1 RW Holding (FC03)
2273 2273 Filter optionFilterOptions uint16 1 1 RW Holding (FC03)
2274 2274 Flow dampingFlowDamping · Range 0 to 15. uint16 1 1 RW Holding (FC03)
5503 5503 Flow overrideFlowOverride · 0 off. uint16 1 1 RW Holding (FC03)
5508 5508 Conductivity dampingConductivityDamping · Range 0 to 999.9 s. float32 2 1 RW Holding (FC03)
5101 5101 Low flow cut off, assigned process variableLowFlowCutoffAssign · 0 off. uint16 1 1 RW Holding (FC03)
5138 5138 Low flow cut off on valueLowFlowCutoffOn float32 2 1 RW Holding (FC03)
5104 5104 Low flow cut off off valueLowFlowCutoffOff · Range 0 to 100 %. float32 2 1 RW Holding (FC03)
5106 5106 Empty pipe detectionEmptyPipeDetection · 0 off. uint16 1 1 RW Holding (FC03)
2890 2890 Empty pipe detection switch pointEmptyPipeSwitchPoint · Range 0 to 100 %. float32 2 1 RW Holding (FC03)
2298 2298 Empty pipe detection measured valueEmptyPipeMeasuredValue float32 2 1 R Holding (FC03)
2280 2280 Electrode cleaning circuitElectrodeCleaning · 0 off. uint16 1 1 RW Holding (FC03)
2497 2497 Density sourceDensitySource · 0 fixed density. uint16 1 1 RW Holding (FC03)
2117 2117 External densityExternalDensity float32 2 1 R Holding (FC03)
2830 2830 Fixed densityFixedDensity float32 2 1 RW Holding (FC03)
5501 5501 Installation directionInstallationDirection · 0 forward flow. uint16 1 1 RW Holding (FC03)
5521 5521 Volume flow offsetVolumeFlowOffset float32 2 1 RW Holding (FC03)
5519 5519 Volume flow factorVolumeFlowFactor float32 2 1 RW Holding (FC03)
5525 5525 Mass flow offsetMassFlowOffset float32 2 1 RW Holding (FC03)
5523 5523 Mass flow factorMassFlowFactor float32 2 1 RW Holding (FC03)
2048 2048 Nominal diameterNominalDiameter · Text such as DNxx. string 10 1 R Holding (FC03)
2313 2313 Calibration factorCalibrationFactor float32 2 1 R Holding (FC03)
2870 2870 Zero pointZeroPoint float32 2 1 R Holding (FC03)
4910 4910 Modbus bus addressBusAddress · Range 1 to 247. uint16 1 1 RW Holding (FC03)
4912 4912 Baud rate codeBaudrate · 0 1200, 1 2400, 2 4800, 3 9600, 4 19200, 5 38400, 6 57600, 7 115200. uint16 1 1 RW Holding (FC03)
4913 4913 Data transfer modeDataTransferMode · 0 RTU, 1 ASCII. uint16 1 1 RW Holding (FC03)
4914 4914 Parity and stop bitsParity · 0 even, 1 odd, 2 none with 2 stop bits, 3 none with 1 stop bit, as listed in the register table (p. 191). The parameter description (p. 114) lists the RTU picklist the other way round (2 none with 1 stop bit, 3 none with 2 stop bits), so confirm values 2 and 3 on the device. ASCII mode offers only 0 and 1. uint16 1 1 RW Holding (FC03)
4915 4915 Byte orderByteOrder · 0 is 0-1-2-3, 1 is 3-2-1-0, 2 is 2-3-0-1, 3 is 1-0-3-2. Factory setting is 1-0-3-2 per the parameter description. uint16 1 1 RW Holding (FC03)
4916 4916 Telegram delayTelegramDelay · Range 0 to 100 ms. float32 2 1 RW Holding (FC03)
4920 4920 Failure modeFailureMode · 1 last valid value, 255 NaN value. uint16 1 1 RW Holding (FC03)
2547 2547 Device IDDeviceId · 4-digit hexadecimal number. uint16 1 1 R Holding (FC03)
4481 4481 Device revisionDeviceRevision · 4-digit hexadecimal number. uint16 1 1 R Holding (FC03)
5001 5001 Modbus data map scan list entry 0ScanListRegister0 · Scan list entries 0 to 15 sit at 5001 to 5016. uint16 1 1 RW Holding (FC03)
2609 2609 Reset all totalizersResetAllTotalizers · 0 cancel. uint16 1 1 RW Holding (FC03)
2601 2601 Totalizer 1 assigned process variableTotalizer1Assign · 0 off, 1 volume flow, 2 mass flow, 3 corrected volume flow. Totalizers 2 and 3 use 2801 and 3001. uint16 1 1 RW Holding (FC03)
4604 4604 Totalizer 1 unit codeTotalizer1Unit · Totalizers 2 and 3 use 4605 and 4606. uint16 1 1 RW Holding (FC03)
2605 2605 Totalizer 1 operation modeTotalizer1Mode · 0 net flow total, 1 forward flow total, 2 reverse flow total. Totalizers 2 and 3 use 2805 and 3005. uint16 1 1 RW Holding (FC03)
2608 2608 Totalizer 1 controlTotalizer1Control · 0 totalize, 1 reset and totalize, 2 preset and hold, 3 reset and hold, 4 preset and totalize, 5 hold. Totalizers 2 and 3 use 2808 and 3008. uint16 1 1 RW Holding (FC03)
2590 2590 Totalizer 1 preset valueTotalizer1Preset · Totalizers 2 and 3 use 2592 and 2594. float32 2 1 RW Holding (FC03)
2606 2606 Totalizer 1 failure modeTotalizer1FailureMode · 0 stop, 1 actual value, 2 last valid value. Totalizers 2 and 3 use 2806 and 3006. uint16 1 1 RW Holding (FC03)
2732 2732 Actual diagnosticsActualDiagnostics uint16 1 1 R Holding (FC03)
2734 2734 Previous diagnosticsPreviousDiagnostics uint16 1 1 R Holding (FC03)
2026 2026 Device tagDeviceTag string 16 1 R Holding (FC03)
7003 7003 Serial numberSerialNumber string 6 1 R Holding (FC03)
7277 7277 Firmware versionFirmwareVersion · Text in the format xx.yy.zz. string 4 1 R Holding (FC03)
7263 7263 Device nameDeviceName string 8 1 R Holding (FC03)
2058 2058 Order codeOrderCode string 10 1 R Holding (FC03)
4818 4818 Configuration counterConfigurationCounter · Range 0 to 65535. uint16 1 1 R Holding (FC03)
2292 2292 Main electronics temperature, minimumElectronicsTempMin float32 2 1 R Holding (FC03)
2294 2294 Main electronics temperature, maximumElectronicsTempMax float32 2 1 R Holding (FC03)
6812 6812 Device alarm simulationDeviceAlarmSimulation · 0 off. uint16 1 1 RW Holding (FC03)
6813 6813 Simulation process variableSimulationAssign · 0 off, 1 volume flow, others in manual. uint16 1 1 RW Holding (FC03)
6814 6814 Simulation process variable valueSimulationValue float32 2 1 RW Holding (FC03)
2610 2610 Totalizer 1 valueTotalizer1Value · Unit follows the totalizer unit code. float32 2 1 R Holding (FC03)
2612 2612 Totalizer 1 overflowTotalizer1Overflow · Listed as a float register holding an integer with sign. float32 2 1 R Holding (FC03)
2810 2810 Totalizer 2 valueTotalizer2Value · Unit follows the totalizer unit code. float32 2 1 R Holding (FC03)
2812 2812 Totalizer 2 overflowTotalizer2Overflow · Listed as a float register holding an integer with sign. float32 2 1 R Holding (FC03)
3010 3010 Totalizer 3 valueTotalizer3Value · Unit follows the totalizer unit code. float32 2 1 R Holding (FC03)
3012 3012 Totalizer 3 overflowTotalizer3Overflow · Listed as a float register holding an integer with sign. float32 2 1 R Holding (FC03)

Scale is the number to multiply the raw value by to get the unit. Types with more than one register (32 and 64-bit) follow the word order above.

Open in Modbus Poll

  1. Download the Modbus Poll blocks file.
  2. Open Modbus Poll, connect to the device and set its unit ID. In Modbus Poll set Word order to CD AB.
  3. In the blocks panel on the right, click Import CSV and pick the file. CSV import is a Pro feature. Without Pro, Modbus Poll polls the first 20 values of your blocks.
  4. The wire addresses are already in the file, so there is no 0-based or 1-based conversion to do.

Once the values look right, export the tag list to Ignition, Kepware, Node-RED, Home Assistant or Voltrus SCADA.

Source and accuracy

Manufacturer document: Description of Device Parameters, Proline Promag 400 Modbus RS485 (bdih-download.endress.com)

GP01045D/06/EN/02.21, 71538157, dated 2022-02-01, valid for device firmware 02.01.zz, p. 174-203. Read on 2026-10-24.

Also used: Proline Promag 400 Modbus RS485 special documentation (register information, custody transfer) (bdih-download.endress.com)

Addresses, types, units and scale are taken from the document above. Names and descriptions are written by Voltrus. Firmware versions can differ, so confirm a value on your own device before you rely on it.

Found a mistake? Report it by email with the register address and the manual page.

More from Endress+Hauser

All Endress+Hauser register maps

Other flow meters

All register maps · Modbus addressing explained