Endress+Hauser · Flow meter
Proline Promag W 400 (Modbus RS485) Modbus register map
Default configuration
- Protocol
- RS485
- Port
- 502
- Unit ID
- 247
- Addressing
- 0-based
- Byte order
- Big endian
- Word order
- Low word first
- Baud rate
- 19200
- Parity
- Even
- Data bits
- 8
- Stop bits
- 1
This device has an RS-485 interface. Reach it through a Modbus RTU-to-TCP gateway, configured with the factory serial settings above.
Register map
| Address | Count | Name | Type | Unit | Scale | Access |
|---|---|---|---|---|---|---|
| 3874 | 2 | Volume flow Signed floating-point volume flow measured value. The unit is whatever is selected in the volume-flow unit register (2103). | Float32 | - | 1 | R |
| 3876 | 2 | Mass flow Signed floating-point mass flow measured value (requires the density input used by the device). Unit from the mass-flow unit register (2101). | Float32 | - | 1 | R |
| 2013 | 2 | Conductivity Signed floating-point conductivity measured value. Unit from the conductivity unit register (2121). | Float32 | - | 1 | R |
| 2610 | 2 | Totalizer 1 value Signed floating-point totalizer 1 value. Unit from the volume unit register (2104). | Float32 | - | 1 | R |
| 2612 | 2 | Totalizer 1 overflow Signed integer totalizer 1 overflow counter: the current totalizer 1 reading is the totalizer 1 value plus 10 000 000 x this overflow. Type caveat: the parameter's own description types it 'Integer with sign', while the register table's data type column says Float (4 bytes) - it is read here as a signed 32-bit integer, as the parameter description states; check it against the local display on an installation that has passed 7 digits before relying on it. | Int32 | - | 1 | R |
| 2810 | 2 | Totalizer 2 value Signed floating-point totalizer 2 value. | Float32 | - | 1 | R |
| 2812 | 2 | Totalizer 2 overflow Signed integer totalizer 2 overflow counter: the current totalizer 2 reading is the totalizer 2 value plus 10 000 000 x this overflow. Same type caveat as totalizer 1 overflow: parameter description 'Integer with sign' against the register table's Float (4 bytes). | Int32 | - | 1 | R |
| 3010 | 2 | Totalizer 3 value Signed floating-point totalizer 3 value. | Float32 | - | 1 | R |
| 3012 | 2 | Totalizer 3 overflow Signed integer totalizer 3 overflow counter: the current totalizer 3 reading is the totalizer 3 value plus 10 000 000 x this overflow. Same type caveat as totalizer 1 overflow: parameter description 'Integer with sign' against the register table's Float (4 bytes). | Int32 | - | 1 | R |
| 2101 | 1 | Mass flow unit Unit code for the mass flow. The vendor register table lists the complete selection list; the factory setting is country-dependent. | UInt16 | - | 1 | RW |
| 2102 | 1 | Mass unit Unit code for the mass. Factory setting is country-dependent. | UInt16 | - | 1 | RW |
| 2103 | 1 | Volume flow unit Unit code for the volume flow, e.g. 18 = l/h, 45 = gal/min (US). The vendor table lists the complete selection list; the factory setting is country-dependent. | UInt16 | - | 1 | RW |
| 2104 | 1 | Volume unit Unit code for the volume/totalizer, e.g. 2 = m3, 4 = l. The register table lists the complete selection list. | UInt16 | - | 1 | RW |
| 2107 | 1 | Density unit Unit code for the density, e.g. kg/l or lb/ft3. Factory setting is country-dependent. | UInt16 | - | 1 | RW |
| 2109 | 1 | Temperature unit Unit code for temperature: 0 = degC, 1 = K, 2 = degF, 3 = degR. Factory setting is country-dependent (degC or degF). | UInt16 | - | 1 | RW |
| 2121 | 1 | Conductivity unit Unit code for conductivity (1 = MS/m, 2 = kS/m, 3 = S/m, 4 = S/cm, ... 10 = nS/cm). | UInt16 | - | 1 | RW |
| 2150 | 1 | Date/time format Date/time display format. | UInt16 | - | 1 | RW |
| 4910 | 1 | Bus address Modbus RS485 bus address of the device (1-247). Factory setting 247. | UInt16 | - | 1 | RW |
| 4912 | 1 | Baudrate Modbus RS485 baud-rate code (1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200). Factory setting 19200. | UInt16 | - | 1 | RW |
| 4913 | 1 | Data transfer mode Data transfer mode: ASCII or RTU. Factory setting RTU. | UInt16 | - | 1 | RW |
| 4914 | 1 | Parity Parity bits: 0 = even, 1 = odd, 2 = none/1 stop bit, 3 = none/2 stop bits. Factory setting 0 (even, 1 stop bit). | UInt16 | - | 1 | RW |
| 4915 | 1 | Byte order Byte transmission sequence: 0-1-2-3, 3-2-1-0, 1-0-3-2 or 2-3-0-1. Factory setting 1-0-3-2. | UInt16 | - | 1 | RW |
| 4920 | 1 | Failure mode Measured-value output on a diagnostic message: NaN value or last valid value. Factory setting NaN value. | UInt16 | - | 1 | RW |
| 2547 | 1 | Device ID Modbus device ID of the measuring device. | UInt16 | - | 1 | R |
| 4481 | 1 | Device revision Modbus device revision. | UInt16 | - | 1 | R |
| 2732 | 1 | Actual diagnostics Diagnostic event code of the currently pending diagnostic message. | UInt16 | - | 1 | R |
| 2734 | 1 | Previous diagnostics Diagnostic event code of the last diagnostic message that was pending. | UInt16 | - | 1 | R |
| 2736 | 1 | Diagnostics 1 Diagnostic list entry 1 (current diagnostic event code). | UInt16 | - | 1 | R |
| 2738 | 1 | Diagnostics 2 Diagnostic list entry 2. | UInt16 | - | 1 | R |
| 2740 | 1 | Diagnostics 3 Diagnostic list entry 3. | UInt16 | - | 1 | R |
| 2742 | 1 | Diagnostics 4 Diagnostic list entry 4. | UInt16 | - | 1 | R |
| 2744 | 1 | Diagnostics 5 Diagnostic list entry 5. | UInt16 | - | 1 | R |
| 2026 | 16 | Device tag Device tag, max. 32 characters, packed into 16 registers. | Ascii | - | 1 | R |
| 7003 | 6 | Serial number Serial number, max. 11 characters, packed into 6 registers. | Ascii | - | 1 | R |
| 7277 | 4 | Firmware version Firmware version as a character string xx.yy.zz, in 4 registers. | Ascii | - | 1 | R |
| 7263 | 8 | Device name Device name, max. 32 characters, in 8 registers. | Ascii | - | 1 | R |
| 2058 | 10 | Order code Order code string, in 10 registers. | Ascii | - | 1 | R |
| 4818 | 1 | Configuration counter Increments on every change of a device parameter; useful to detect configuration changes. | UInt16 | - | 1 | R |
| 2273 | 1 | Filter options Filter option selection for the flow measurement. | UInt16 | - | 1 | RW |
| 2274 | 1 | Flow damping Flow damping (response time) of the flow measurement. | UInt16 | - | 1 | RW |
| 5503 | 1 | Flow override Flow override mode: forces the flow output to a configured value for a defined time. | UInt16 | - | 1 | RW |
| 5106 | 1 | Empty pipe detection Empty pipe detection on/off. | UInt16 | - | 1 | RW |
| 2280 | 1 | Electrode cleaning circuit Electrode cleaning circuit (ECC) on/off. | UInt16 | - | 1 | RW |
| 2328 | 2 | ECC cleaning cycle Electrode cleaning cycle duration in hours; the register table gives the entry range as 0.5 to 168 h. | Float32 | h | 1 | RW |
| 2330 | 2 | ECC duration Duration of the electrode cleaning pulse in seconds. | Float32 | s | 1 | RW |
| 2332 | 2 | ECC recovery time Recovery time after electrode cleaning in seconds. | Float32 | s | 1 | RW |
| 2334 | 1 | ECC polarity Polarity of the electrode cleaning circuit. | UInt16 | - | 1 | R |
| 2497 | 1 | Density source Source of the density used for mass flow: fixed value or external density input. | UInt16 | - | 1 | RW |
| 2117 | 2 | External density External density value supplied to the device. | Float32 | - | 1 | R |
| 2830 | 2 | Fixed density Fixed density value used when the density source is the fixed value. | Float32 | - | 1 | RW |
| 5501 | 1 | Installation direction Installation direction of the sensor: flow direction or reverse flow direction. | UInt16 | - | 1 | RW |
| 2260 | 2 | Integration time Integration time of the measuring signal in milliseconds; the register table gives the range as 1 to 65 ms. | Float32 | ms | 1 | R |
| 2852 | 2 | Measuring period Measuring period of the device in milliseconds; the register table gives the range as 2 to 1000 ms. | Float32 | ms | 1 | R |
| 5519 | 2 | Volume flow factor Factor for the volume-flow process-variable adjustment. | Float32 | - | 1 | RW |
| 5521 | 2 | Volume flow offset Offset for the volume-flow process-variable adjustment. | Float32 | - | 1 | RW |
| 5523 | 2 | Mass flow factor Factor for the mass-flow process-variable adjustment. | Float32 | - | 1 | RW |
| 5525 | 2 | Mass flow offset Offset for the mass-flow process-variable adjustment. | Float32 | - | 1 | RW |
| 5527 | 2 | Conductivity factor Factor for the conductivity process-variable adjustment. | Float32 | - | 1 | RW |
| 5529 | 2 | Conductivity offset Offset for the conductivity process-variable adjustment. | Float32 | - | 1 | RW |
| 6817 | 1 | Device reset Device reset command (restart the device or restore settings, depending on the written value). | UInt16 | - | 1 | RW |
| 6814 | 2 | Simulation process variable value Value used for the process variable when simulation is active. | Float32 | - | 1 | RW |
| 6812 | 1 | Device alarm simulation Switches the device alarm on/off for simulation. | UInt16 | - | 1 | RW |
| 4259 | 1 | Diagnostic event simulation Diagnostic event selected for simulation. | UInt16 | - | 1 | RW |
| 4261 | 1 | Diagnostic event category Category used for the diagnostic event simulation. | UInt16 | - | 1 | RW |
Read this device live with Modbus Connect, free for Windows, macOS and Linux
Related guides
Notes
Source: Endress+Hauser 'Proline Promag W 400 — Modbus RS485 — Operating Instructions' BA01231D/06/EN/04.19 (2019), section 9.3 'Modbus RS485 information' and section 10.4.3 'Configuring the communication interface', plus the matching 'Description of Device Parameters — Proline Promag 400 Modbus RS485' GP01045D/06/EN/02.21 (2022-02-01), chapter 6.3 'Register information' — every row above is a row of that table (parameter name and register number). The pair covers the Modbus RS485 variant of the Promag W 400, the water/wastewater version of the Promag 400 family. Factory frame from the OI parameter overview: bus address 247, baud rate 19200, RTU, parity even with 1 stop bit, byte order 1-0-3-2. Addressing: section 6.1.2 'Address model' puts the register numbers on the Modbus Application Protocol scale and adds a '3'/'4' prefix only for Modicon notation, so the printed numbers are stored unchanged with addressing = zero_based; its illustrative example still calls mass flow 2007/32007 (a leftover from an earlier revision) while the register table gives mass flow as 3876 to 3877, and the table is followed. Byte order 1-0-3-2 for FLOAT is CDAB (Byte 1, Byte 0, Byte 3, Byte 2): the low word sits at the lower address, the bytes inside each 16-bit word staying big-endian (the same option's INTEGER table sends Byte 1/Byte 0, MSB first) → byte_order BigEndian, word_order LowFirst. The OI says the device does not distinguish function codes 03 and 04, so the whole map is carried in the holding-register area. Deliberately omitted: the diagnostic-list timestamp strings (no register count printed), the web-server IP strings and the display-only rows. Conductivity and mass flow need the matching software option/hardware. The totalizer overflow rows are typed 'Integer with sign' by the parameter description but 'Float (4 byte)' by the register table; they are read as Int32 and the conflict is stated in each row.