device library

Krohne MFC400 mass flowmeter

Register map(s) for this device, with a note of how far each has been checked. Addresses are 0-based, as on the wire. Scale and byte order are confirmed only at the hardware-verified rung.

coherence-checked

Round-trips through a real Modbus stack with no overlapping addresses and a word-order-sensitive codec — the map is internally coherent and wire-decodable. Does NOT prove byte-order or scaling match a real device: the emulator is seeded from the map's own types, so a uniformly wrong byte-order still round-trips. Only hardware-verified confirms byte-order/scale on the wire.

pointaddress (0-based)typescaleunit
flow_velocity30000F32BE1m/s
volume_flow30002F32BE1m³/s
mass_flow30004F32BE1kg/s
temperature30006F32BE1K
density30008F32BE1kg/m³
concentration_1_value30010F32BE1Brix
concentration_2_value30012F32BE1
concentration_1_flow30014F32BE1m³/s
concentration_2_flow30016F32BE1
ne_107_status_flow_velocity30500U161
ne_107_status_volume_flow30501U161
ne_107_status_mass_flow30502U161
ne_107_status_temperature30503U161
ne_107_status_density30504U161
ne_107_status_conc_1_value30505U161
ne_107_status_conc_2_value30506U161
ne_107_status_conc_1_flow30507U161
ne_107_status_conc_2_flow30508U161
drive_level31000F32BE1%
sensor_a_level31002F32BE1%
sensor_b_level31004F32BE1%
strain_131006F32BE1Ohm
strain_231008F32BE1Ohm
tube_frequency31010F32BE1Hz
two_phase_signal31012F32BE1
se_pcb_temperature31014F32BE1K
totaliser_1_value32100F32BE1m³
totaliser_2_value32102F32BE1m³
totaliser_3_value32104F32BE1m³
actual_operation_mode39000U32BE1
device_operation_time39002F32BE1s
ne_107_status_groups39004U32BE1
ne_107_device_status39100U161

link settings as documented (unverified): RTU; default 19200 8E1; unit ID 1; FC 01,02,03,04,05,08,16,43; Data format defaults to Big Endian. Transmission delay default is 0s.

⚠ Some registers are protected by a custody transfer lock. — Starkest reads only; we never write a control register.

bench facts as documented (unverified)
terminalsD- (Signal A (D0)), D (Signal B (D1)), C- (Common 0 V), C (Not connected)
A/B polarityD- is Signal A (D0), D is Signal B (D1)
termination120 Ohm / 560 Ohm (if activated by factory)
connectorTerminals C and D
isolationgalvanically isolated
shield/groundScreened twisted pair
wiring notesMaximum 32 participants per line without repeater. Maximum distance 1.2 km / 3937 ft.
max registers/read125
broadcastsupported
protocol notesWriting to holding registers does not take effect immediately. Must perform 'Apply Changes' by writing to coil 1002.
identification notesDevice identification via Modbus Function Code 0x2B (Encapsulated Interface Transport) MEI type 0x0E.
FC 43 device IDsupported
powerV+ and V- terminals
doc revision05/2013 - 4002525102 - AD Modbus MFC 400 R02 en
firmware applicabilityElectronic Revision: ER 1.0.3_, Modbus version 2.1.0_
field reports — community-sourced, unverified (checked 2026-06-11)
  • confirmed: comms defaults (baud rate 19200, parity E, stop bits 1, unit ID 1) — confirmed by Krohne MFC 400 Modbus Manuals [2.2.1]
  • confirmed: physical terminals (D- as Signal A/D0, D as Signal B/D1, C- as Common, C as Not connected) — confirmed by Krohne MFC 400 Modbus Manuals
  • confirmed: Apply Changes quirk via writing to coil 1002 — confirmed by Krohne MFC 400 Modbus Manuals
  • confirmed: register map addresses (flow_velocity @ 30000, volume_flow @ 30002, mass_flow @ 30004, temperature @ 30006, density @ 30008) — confirmed by Krohne MFC 400 Modbus Manuals

The trust ladder

Each rung states what it proved and what it did not. Gray until proven; green is earned by hardware only.

Device not here? Upload its manual and get a checked map back. It's free.

Want it confirmed against your own device? Order hardware verification. If it doesn't check out, you don't pay.

Building on a lot of devices? License the library — machine-readable maps, the firmware matrix, and API access.