KROHNE IFC 300 Modbus register map

IFC 300 signal converter for electromagnetic flowmeters, sold with OPTIFLUX and WATERFLUX flow sensors, fitted with the RS485 Modbus interface card. Registers cover flow speed, volume and mass flow, conductivity, three counters, converter and calibration commands, process input filter and diagnosis settings, and the Modbus communication parameters.

Protocol
Modbus RTU (RS485)
Defaults
Menus C5.8.1 to C5.8.6: slave address 1 (range 1 to 247), 19200 baud, even parity, data format Big Endian, transmission delay 0 ms (range 0 to 40 ms), 1 stop bit. Baud rates 1200 to 115200 are selectable. Terminals D- (signal A, D0), D (signal B, D1) and C- (common). Termination and polarization are off by default and enabled with jumpers X5 and X6. Function codes supported: 01, 03, 04, 05, 08 and 16.
Addresses in the manual
0-based protocol addresses, as sent on the wire
32 and 64-bit values
High word first (AB CD)
Registers listed
81
Checked against
Document 4000410703, AD Modbus IFC 300 R03 en, dated 07/2010, for Electronic Revision ER 3.3.xx (SW.REV. 3.3x) and Modbus version 1.2.x; vendor-hosted on KROHNE's own document server

Address base. Section 6.2 (p. 8) says the converter uses protocol addresses, so the register address listed is the actual number required in the Modbus command, and gives the example that input register 30006 is start address 30006 decimal = 7536 hex. This file records the listed numbers as printed (coils 1000 to 3005, input registers 30000 to 30036 and 20000, holding registers 40000 to 50004). Section 6.3 (p. 9) adds that register numbers, where a system asks for them, equal the protocol address plus 1 with a prefix of 1 for coils, 3 for input registers and 4 for holding registers, and that systems limited to addresses up to 9999 can drop the leading 3 or 4 (and replace a leading 20 of 20xxx with 9xxx for input registers). Coils are read with function 01 and written with 05, input registers read with 04, holding registers read with 03 and written with 16. Floats occupy 2 registers, double floats 4 registers; the manual's byte, word and ulong types occupy 1, 1 and 2 registers. Address 1000 in the manual is address 1000 on the wire.

Word order. Section 6.2 (p. 8) says the converter can use big endian format (MSB first) or little endian format (LSB first), selected by menu C5.8.4 or holding register 50004 (1 Big Endian, 2 Little Endian), with Big Endian the default. The manual gives no worked telegram showing how the two registers of a float are ordered, so check one known value against the device if the host reads nonsense.

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

81 registers
Manual Wire Register Type Regs Unit Scale Access Area
1000 1000 Cold start commandCold_Start · Write 1 to generate a cold start; writing 0 is ignored. bool 1 1 W Coil (FC01)
1001 1001 Warm start commandWarm_Start · Write 1 to generate a warm start; writing 0 is ignored. The calibration procedures (6.10) use this coil to activate new values and say the warm start takes at most 5 s. bool 1 1 W Coil (FC01)
1002 1002 Error reset commandError_Reset · Write 1 to generate an error reset; writing 0 is ignored. bool 1 1 W Coil (FC01)
3000 3000 Start or stop counter 1Counter_1_Run · Write 1 starts the counter, write 0 stops it. Read 1 means the counter is running, 0 means stopped. Converter function C3.1.8 / C3.1.9. bool 1 1 RW Coil (FC01)
3001 3001 Start or stop counter 2Counter_2_Run · Write 1 starts the counter, write 0 stops it. Read 1 means the counter is running, 0 means stopped. Converter function C3.2.8 / C3.2.9. bool 1 1 RW Coil (FC01)
3002 3002 Start or stop counter 3Counter_3_Run · Write 1 starts the counter, write 0 stops it. Read 1 means the counter is running, 0 means stopped. Converter function C3.3.8 / C3.3.9. Only available in converters with IO2; a write to a non-existing counter causes an error response. bool 1 1 RW Coil (FC01)
3003 3003 Reset counter 1Counter_1_Reset · Write 1 resets the counter; write 0 has no effect and a read returns 0. Converter function C3.1.6. bool 1 1 W Coil (FC01)
3004 3004 Reset counter 2Counter_2_Reset · Write 1 resets the counter; write 0 has no effect and a read returns 0. Converter function C3.2.6. bool 1 1 W Coil (FC01)
3005 3005 Reset counter 3Counter_3_Reset · Write 1 resets the counter; write 0 has no effect and a read returns 0. Converter function C3.3.6. Only available in converters with IO2; a write to a non-existing counter causes an error response. bool 1 1 W Coil (FC01)
2000 2000 Start zero calibrationZero_Calibration_Start · Write 1 starts the function (converter function C1.1.1). Read 1 means running, 0 means complete (procedure in 6.10.1, p. 18). The result is read from input register 20000. bool 1 1 RW Coil (FC01)
2001 2001 Start coil temperature calibrationCoil_Temperature_Calibration_Start · Write 1 starts the function (converter function C1.1.8). Read 1 means running, 0 means complete (procedure in 6.10.2, p. 19). bool 1 1 RW Coil (FC01)
2002 2002 Start electrode factor calibrationElectrode_Factor_Calibration_Start · Write 1 starts the function (converter function C1.1.11). Read 1 means running, 0 means complete (procedure in 6.10.3, p. 20). bool 1 1 RW Coil (FC01)
30000 30000 Flow speedFlow_Speed float32 2 m/s 1 R Input (FC04)
30002 30002 Volume flowVolume_Flow float32 2 m3/s 1 R Input (FC04)
30004 30004 Mass flowMass_Flow · Footnote 1: not available for sensor option PF (partly filled). For sensor option PF the manual lists the level in % at this same address (footnote 3: only available for sensor option PF). float32 2 kg/s 1 R Input (FC04)
30006 30006 Coil temperatureCoil_Temperature float32 2 K 1 R Input (FC04)
30008 30008 ConductivityConductivity · This value may not be measured, depending on holding register 42003: 0 off (not measured), 1 conductivity, 2 conductivity plus empty pipe (S), 3 conductivity plus empty pipe (F), 4 conductivity plus empty pipe (I). For sensor options PF and CAP this value is only used for empty pipe detection. float32 2 S/m 1 R Input (FC04)
30010 30010 Diagnosis valueDiagnosis_Value · This value may not be measured, depending on holding register 42011: 25 off, 31 electrode noise (m/s), 28 flow profile (no unit), 21 linearity (no unit), 8 terminal 2 DC (V), 9 terminal 3 DC (V). Flow profile and linearity are not available for sensor option PF; terminal 2 and 3 DC are not available for sensor option CAP. float32 2 1 R Input (FC04)
30012 30012 Display channel 1Display_Channel_1 · Represents the value on the first line of the first measurement screen, in SI units. float32 2 1 R Input (FC04)
30014 30014 Display channel 2Display_Channel_2 · Represents the value on the first line of the second measurement screen, in SI units. float32 2 1 R Input (FC04)
30016 30016 Operating timeOperating_Time float32 2 s 1 R Input (FC04)
30020 30020 Counter 1 valueCounter_1_Value · Double float, 4 registers. The unit follows the counter 1 measurement selection in holding register 40001 (volume in m3, mass in kg). float64 4 m3 or kg 1 R Input (FC04)
30024 30024 Counter 2 valueCounter_2_Value · Double float, 4 registers. The unit follows the counter 2 measurement selection in holding register 40003. float64 4 m3 or kg 1 R Input (FC04)
30028 30028 Counter 3 valueCounter_3_Value · Double float, 4 registers. Only available for converters with IO 2. The unit follows the counter 3 measurement selection in holding register 40005. float64 4 m3 or kg 1 R Input (FC04)
30032 30032 Long status sensorSensor_Status_Long · The manual lists the type as byte [4] (2 registers) and does not describe the bit assignments. uint32 2 1 R Input (FC04)
30034 30034 Long status deviceDevice_Status_Long · The manual lists the type as byte [4] (2 registers) and does not describe the bit assignments. uint32 2 1 R Input (FC04)
30036 30036 Long status sensor option PFSensor_Option_PF_Status_Long · Footnote 3: only available for sensor option PF (partly filled). The manual lists the type as byte [4] (2 registers) and does not describe the bit assignments. uint32 2 1 R Input (FC04)
20000 20000 Result of the last calibration procedureCalibration_Result · The manual says the result of a calibration procedure is read from input register at protocol address 20000 (or 9000 for systems limited to 4 digits) and that it is one or more float values. Read it with function 04 after the calibration coil reads 0. float32 2 1 R Input (FC04)
40000 40000 Counter 1 functionCounter_1_Function · 0 off, 1 sum counter, 2 plus counter, 3 minus counter. Converter function C3.1.1. Manual type byte, 1 register. uint16 1 1 RW Holding (FC03)
40001 40001 Counter 1 measurementCounter_1_Measurement · 21 volume flow, 22 mass flow (not available for sensor option PF); for sensor option PF the value is 27 volume flow. Converter function C3.1.2. Manual type word, 1 register. uint16 1 1 RW Holding (FC03)
40002 40002 Counter 2 functionCounter_2_Function · 0 off, 1 sum counter, 2 plus counter, 3 minus counter. Converter function C3.2.1. Manual type byte, 1 register. uint16 1 1 RW Holding (FC03)
40003 40003 Counter 2 measurementCounter_2_Measurement · 21 volume flow, 22 mass flow (not available for sensor option PF); for sensor option PF the value is 27 volume flow. Converter function C3.2.2. Manual type word, 1 register. uint16 1 1 RW Holding (FC03)
40004 40004 Counter 3 functionCounter_3_Function · 0 off, 1 sum counter, 2 plus counter, 3 minus counter. Converter function C3.3.1. Manual type byte, 1 register. Counter 3 parameters are only available for converters with IO 2. uint16 1 1 RW Holding (FC03)
40005 40005 Counter 3 measurementCounter_3_Measurement · 21 volume flow, 22 mass flow (not available for sensor option PF); for sensor option PF the value is 27 volume flow. Converter function C3.3.2. Manual type word, 1 register. Counter 3 parameters are only available for converters with IO 2. uint16 1 1 RW Holding (FC03)
41000 41000 Counter 1 low flow cutoff valueCounter_1_Low_Flow_Cutoff · Converter function C3.1.3. float32 2 m3/s or kg/s 1 RW Holding (FC03)
41002 41002 Counter 1 time constantCounter_1_Time_Constant · Converter function C3.1.4. float32 2 s 1 RW Holding (FC03)
41004 41004 Set counter 1 or read counter 1Counter_1_Set_Or_Read · Converter function C3.1.7. float32 2 m3 or kg 1 RW Holding (FC03)
41006 41006 Counter 2 low flow cutoff valueCounter_2_Low_Flow_Cutoff · Converter function C3.2.3. float32 2 m3/s or kg/s 1 RW Holding (FC03)
41008 41008 Counter 2 time constantCounter_2_Time_Constant · Converter function C3.2.4. float32 2 s 1 RW Holding (FC03)
41010 41010 Set counter 2 or read counter 2Counter_2_Set_Or_Read · Converter function C3.2.7. float32 2 m3 or kg 1 RW Holding (FC03)
41012 41012 Counter 3 low flow cutoff valueCounter_3_Low_Flow_Cutoff · Converter function C3.3.3. Counter 3 parameters are only available for converters with IO 2. float32 2 m3/s or kg/s 1 RW Holding (FC03)
41014 41014 Counter 3 time constantCounter_3_Time_Constant · Converter function C3.3.4. Counter 3 parameters are only available for converters with IO 2. float32 2 s 1 RW Holding (FC03)
41016 41016 Set counter 3 or read counter 3Counter_3_Set_Or_Read · Converter function C3.3.7. Counter 3 parameters are only available for converters with IO 2. float32 2 m3 or kg 1 RW Holding (FC03)
41018 41018 Preset counter 1Counter_1_Preset · Converter function C3.1.5. float32 2 m3 or kg 1 RW Holding (FC03)
41020 41020 Preset counter 2Counter_2_Preset · Converter function C3.2.5. float32 2 m3 or kg 1 RW Holding (FC03)
41022 41022 Preset counter 3Counter_3_Preset · Converter function C3.3.5. Counter 3 parameters are only available for converters with IO 2. float32 2 m3 or kg 1 RW Holding (FC03)
42000 42000 Flow directionFlow_Direction · 0 normal direction, 1 reverse direction. Converter function C1.2.2. Manual type byte, 1 register. uint16 1 1 RW Holding (FC03)
42001 42001 Pulse filterPulse_Filter · 0 off, 1 on, 2 automatic. Converter function C1.2.4. Manual type byte, 1 register. uint16 1 1 RW Holding (FC03)
42002 42002 Noise filterNoise_Filter · 0 off, 1 on. Converter function C1.2.7. Manual type byte, 1 register. The second address column is blank for this row in the manual; the first column prints 42002. uint16 1 1 RW Holding (FC03)
42003 42003 Empty pipe detection modeEmpty_Pipe_Mode · For sensor options without PF or CAP: 0 off, 1 conductivity, 2 conductivity plus empty pipe (S), 3 conductivity plus empty pipe (F), 4 conductivity plus empty pipe (I). For sensor options PF or CAP: 0 off, 1 conductivity, 2 empty pipe (S), 3 empty pipe (F), 4 empty pipe (I). Converter function C1.3.1. Manual type byte, 1 register. uint16 1 1 RW Holding (FC03)
42004 42004 Full pipe diagnosisFull_Pipe_Diagnosis · 0 off, 1 on. Converter function C1.3.4. Not available for sensor options PF or CAP (footnotes 1 and 2). Manual type byte, 1 register. uint16 1 1 RW Holding (FC03)
42005 42005 Linearity diagnosisLinearity_Diagnosis · 0 off, 1 on. Converter function C1.3.6. Not available for sensor options PF or CAP. Manual type byte, 1 register. uint16 1 1 RW Holding (FC03)
42006 42006 Gain diagnosisGain_Diagnosis · 0 off, 1 on. Converter function C1.3.8. Manual type byte, 1 register. uint16 1 1 RW Holding (FC03)
42007 42007 Coil current diagnosisCoil_Current_Diagnosis · 0 off, 1 on. Converter function C1.3.9. Manual type byte, 1 register. uint16 1 1 RW Holding (FC03)
42008 42008 Flow profile diagnosisFlow_Profile_Diagnosis · 0 off, 1 on. Converter function C1.3.10. Not available for sensor options PF or CAP. Manual type byte, 1 register. uint16 1 1 RW Holding (FC03)
42009 42009 Electrode noise diagnosisElectrode_Noise_Diagnosis · 0 off, 1 on. Converter function C1.3.13. Manual type byte, 1 register. uint16 1 1 RW Holding (FC03)
42010 42010 Settling of field diagnosisSettling_Of_Field_Diagnosis · 0 off, 1 on. Converter function C1.3.16. Manual type byte, 1 register. uint16 1 1 RW Holding (FC03)
42011 42011 Diagnosis value selectionDiagnosis_Value_Select · 25 off, 31 electrode noise, 28 flow profile, 21 linearity, 8 terminal 2 DC, 9 terminal 3 DC. Flow profile and linearity are not available for sensor option PF; terminal 2 and 3 DC are not available for sensor option CAP. Converter function C1.3.17. Selects what input register 30010 reports. Manual type byte, 1 register. uint16 1 1 RW Holding (FC03)
43000 43000 Limitation lowLimitation_Low · Converter function C1.2.1. float32 2 m/s 1 RW Holding (FC03)
43002 43002 Limitation highLimitation_High · Converter function C1.2.1. float32 2 m/s 1 RW Holding (FC03)
43004 43004 Time constantTime_Constant · Converter function C1.2.3. float32 2 s 1 RW Holding (FC03)
43006 43006 Pulse widthPulse_Width · Converter function C1.2.5. float32 2 s 1 RW Holding (FC03)
43008 43008 Pulse limitationPulse_Limitation · Converter function C1.2.6. float32 2 m/s 1 RW Holding (FC03)
43010 43010 Noise levelNoise_Level · Converter function C1.2.8. float32 2 m/s 1 RW Holding (FC03)
43012 43012 Noise suppressionNoise_Suppression · Converter function C1.2.9. float32 2 1 RW Holding (FC03)
43014 43014 Low flow cutoff valueLow_Flow_Cutoff · Converter function C1.2.10. float32 2 m/s 1 RW Holding (FC03)
43016 43016 Limit empty pipeEmpty_Pipe_Limit · Converter function C1.3.3. float32 2 S/m 1 RW Holding (FC03)
43018 43018 Limit full pipeFull_Pipe_Limit · Converter function C1.3.5. Not available for sensor options PF or CAP. float32 2 S/m 1 RW Holding (FC03)
43020 43020 Limit flow profileFlow_Profile_Limit · Converter function C1.3.11. Not available for sensor options PF or CAP. float32 2 1 RW Holding (FC03)
43022 43022 Limit electrode noiseElectrode_Noise_Limit · Converter function C1.3.14. float32 2 m/s 1 RW Holding (FC03)
43024 43024 Zero pointZero_Point · Converter function C1.1.1. Written with the result of the zero flow calibration, then activated with a warm start (coil 1001); see 6.10.1. float32 2 m/s 1 RW Holding (FC03)
43026 43026 Coil resistance Rsp,20Coil_Resistance_Rsp20 · Converter function C1.1.7. Compare with the value on the device type plate; see 6.10.2. float32 2 Ω 1 RW Holding (FC03)
43028 43028 Coil temperature calibration pointCoil_Temperature_Calpoint · Converter function C1.1.8. Actual coil temperature entered as the calibration target; see 6.10.2. float32 2 K 1 RW Holding (FC03)
43030 43030 Coil resistance calibration pointCoil_Resistance_Calpoint · Converter function C1.1.8. Written with the coil temperature calibration result; see 6.10.2. float32 2 Ω 1 RW Holding (FC03)
43032 43032 Electrode factor EFElectrode_Factor · Converter function C1.1.11. Written with the conductivity calibration result; see 6.10.3. float32 2 m 1 RW Holding (FC03)
43034 43034 Conductivity calibration point (first register pair)Conductivity_Calpoint_A · Converter function C1.1.11. The manual lists this row and 43036 with the same description and says the target value has to be written to both registers (6.10.3). float32 2 S/m 1 RW Holding (FC03)
43036 43036 Conductivity calibration point (second register pair)Conductivity_Calpoint_B · Converter function C1.1.11. The manual lists this row and 43034 with the same description and says the target value has to be written to both registers (6.10.3). float32 2 S/m 1 RW Holding (FC03)
50000 50000 Baud rateModbus_Baud_Rate · Options 1200, 2400, 3600, 4800, 9600, 19200 (default), 38400, 57600, 115200. Converter function C5.8.2. Manual type ulong, 2 registers. Section 2.1 (p. 4) omits 3600 from its baud rate list. uint32 2 baud 1 RW Holding (FC03)
50002 50002 Slave addressModbus_Slave_Address · Range 1 to 247 (default 1 per p. 6). Converter function C5.8.1. Manual type byte, 1 register. uint16 1 1 RW Holding (FC03)
50003 50003 ParityModbus_Parity · 0 even parity (default), 1 odd parity, 3 no parity. Converter function C5.8.3. Manual type byte, 1 register. uint16 1 1 RW Holding (FC03)
50004 50004 Data formatModbus_Data_Format · 1 Big Endian (default), 2 Little Endian. Converter function C5.8.4. Manual type byte, 1 register. uint16 1 1 RW 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 AB CD.
  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: IFC 300 Supplementary instructions, Signal converter for electromagnetic flowmeters, Description of Modbus interface (cdn.krohne.com)

Document 4000410703, AD Modbus IFC 300 R03 en, dated 07/2010, for Electronic Revision ER 3.3.xx (SW.REV. 3.3x) and Modbus version 1.2.x; vendor-hosted on KROHNE's own document server, pp. 4-20. Read on 2026-10-24.

Also used: KROHNE IFC 300 product page (converter for combination with OPTIFLUX and WATERFLUX flow sensors) (krohne.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.

Other flow meters

All register maps · Modbus addressing explained