{ "$schema": "https://raw.githubusercontent.com/nobrega8/mbmap-library/main/schema/mbmap-2.schema.json", "mbmap": 2, "vendor": "Bronkhorst", "model": "Digital Mass Flow / Pressure (MBC)", "models": ["MBC3", "MBCII", "EL-FLOW", "IN-FLOW", "CORI-FLOW", "LIQUI-FLOW L30", "MASS-VIEW"], "description": "Digital multibus mass flow and pressure meters and controllers with the Modbus slave interface", "vendor_website": "bronkhorst.com", "revision": 1, "revised": "2026-10-18", "sources": [{"title": "Instruction manual: Modbus slave interface for digital Mass Flow / Pressure instruments", "version": "9.17.035", "date": "2013-03-27", "url": "http://www.bronkhorst.com/en/downloads", "note": "section 4.4.6, the table of commonly used parameters, plus the interface settings of sections 3 and 4"}], "source": "Bronkhorst, Modbus slave interface for digital Mass Flow / Pressure instruments, document 9.17.035 (27-03-2013)", "notes": ["Addresses are the PDU addresses of the manual (register number minus 1). The manual lists only the most commonly used parameters.", "RS485 two-wire, RTU (MBC3 and MASS-VIEW can also use ASCII). Delivered with address 1 and 19200 baud; 9600, 19200 and 38400 baud everywhere, 57600 and 115200 on MBC3 only.", "Parity is even and fixed on MBCII, CORI-FLOW and MASS-VIEW; MBC3 allows even, odd or none (no parity needs 2 stop bits).", "Byte parameters read as a 16-bit register with the upper byte 0. Floats and long integers use two registers, high word first; strings hold two characters per register, first character in the high byte.", "Reading a part of a two-register parameter returns exception 02; reading a write-only register returns exception 04.", "A reply takes up to 100 ms. A read response is limited to 100 bytes at 9600 baud, 200 at 19200 and 400 at 38400.", "Meaning of the values (units, control modes, alarm modes) is in the Operation instructions for digital instruments, document 9.17.023."], "protocol": "rtu", "unit_id": 1, "baudrate": 19200, "parity": "E", "databits": 8, "stopbits": 1, "max_read_registers": 50, "byte_order": "big", "word_order": "big", "address_base": 0, "x_status": "official", "registers": [ {"name": "Wink", "group": "Control", "area": "holding", "address": 0, "type": "uint16", "access": "W", "comment": "Write 14592 to make the instrument wink"}, {"name": "Initreset", "group": "Control", "area": "holding", "address": 10, "type": "uint16", "access": "RW"}, {"name": "Valve output", "group": "Control", "area": "holding", "address": 31, "type": "uint16", "access": "RW", "write_min": 0, "write_max": 32767, "description": "Range 0 to 32767"}, {"name": "Measure", "group": "Measurement", "area": "holding", "address": 32, "type": "uint16"}, {"name": "Setpoint", "group": "Control", "area": "holding", "address": 33, "type": "uint16", "access": "RW"}, {"name": "Setpoint slope", "group": "Control", "area": "holding", "address": 34, "type": "uint16", "access": "RW"}, {"name": "Analog input", "group": "Measurement", "area": "holding", "address": 35, "type": "uint16"}, {"name": "Control mode", "group": "Control", "area": "holding", "address": 36, "type": "uint16", "access": "RW"}, {"name": "Sensor type", "group": "Fluid and sensor", "area": "holding", "address": 46, "type": "uint16", "access": "RW"}, {"name": "Capacity unit index", "group": "Fluid and sensor", "area": "holding", "address": 47, "type": "uint16", "access": "RW"}, {"name": "Fluid number", "group": "Fluid and sensor", "area": "holding", "address": 48, "type": "uint16", "access": "RW"}, {"name": "Alarm info", "group": "Alarm", "area": "holding", "address": 52, "type": "uint16"}, {"name": "Temperature", "group": "Measurement", "area": "holding", "address": 1063, "type": "uint16", "comment": "Integer variant; the float at 0xA138 has the full range and resolution"}, {"name": "Alarm limit maximum", "group": "Alarm", "area": "holding", "address": 3105, "type": "uint16", "access": "RW"}, {"name": "Alarm limit minimum", "group": "Alarm", "area": "holding", "address": 3106, "type": "uint16", "access": "RW"}, {"name": "Alarm mode", "group": "Alarm", "area": "holding", "address": 3107, "type": "uint16", "access": "RW"}, {"name": "Alarm setpoint mode", "group": "Alarm", "area": "holding", "address": 3109, "type": "uint16", "access": "RW"}, {"name": "Alarm new setpoint", "group": "Alarm", "area": "holding", "address": 3110, "type": "uint16", "access": "RW"}, {"name": "Alarm delay", "group": "Alarm", "area": "holding", "address": 3111, "type": "uint16", "access": "RW"}, {"name": "Reset alarm enable", "group": "Alarm", "area": "holding", "address": 3113, "type": "uint16", "access": "RW"}, {"name": "Counter value", "group": "Counter", "area": "holding", "address": 3329, "type": "uint16", "access": "RW", "comment": "Integer variant; the float at 0xE808 has the full range and resolution"}, {"name": "Counter unit index", "group": "Counter", "area": "holding", "address": 3330, "type": "uint16", "access": "RW"}, {"name": "Counter limit", "group": "Counter", "area": "holding", "address": 3331, "type": "uint16", "access": "RW", "comment": "Integer variant; the float at 0xE818 has the full range and resolution"}, {"name": "Counter setpoint mode", "group": "Counter", "area": "holding", "address": 3333, "type": "uint16", "access": "RW"}, {"name": "Counter new setpoint", "group": "Counter", "area": "holding", "address": 3334, "type": "uint16", "access": "RW"}, {"name": "Counter mode", "group": "Counter", "area": "holding", "address": 3336, "type": "uint16", "access": "RW"}, {"name": "Identification number", "group": "Identification", "area": "holding", "address": 3628, "type": "uint16", "access": "RW"}, {"name": "Normal step controller response", "group": "Tuning", "area": "holding", "address": 3653, "type": "uint16", "access": "RW"}, {"name": "Stable situation controller response", "group": "Tuning", "area": "holding", "address": 3665, "type": "uint16", "access": "RW"}, {"name": "Open from zero controller response", "group": "Tuning", "area": "holding", "address": 3666, "type": "uint16", "access": "RW"}, {"name": "Calibration mode", "group": "Configuration", "area": "holding", "address": 3681, "type": "uint16", "access": "RW"}, {"name": "Monitor mode", "group": "Configuration", "area": "holding", "address": 3682, "type": "uint16", "access": "RW"}, {"name": "Reset", "group": "Control", "area": "holding", "address": 3688, "type": "uint16", "access": "W"}, {"name": "Bridge potmeter", "group": "Configuration", "area": "holding", "address": 3717, "type": "uint16", "access": "RW"}, {"name": "Modbus slave address", "group": "Configuration", "area": "holding", "address": 4010, "type": "uint16", "access": "RW", "write_min": 1, "write_max": 247, "description": "Slave address, 1 to 247. Rotary switches, when set to a valid address, take over"}, {"name": "Polynomial constant A", "group": "Tuning", "area": "holding", "address": 33064, "type": "float32", "access": "RW"}, {"name": "Polynomial constant B", "group": "Tuning", "area": "holding", "address": 33072, "type": "float32", "access": "RW"}, {"name": "Polynomial constant C", "group": "Tuning", "area": "holding", "address": 33080, "type": "float32", "access": "RW"}, {"name": "Polynomial constant D", "group": "Tuning", "area": "holding", "address": 33088, "type": "float32", "access": "RW"}, {"name": "Sensor differentiator down", "group": "Tuning", "area": "holding", "address": 33112, "type": "float32", "access": "RW"}, {"name": "Sensor differentiator up", "group": "Tuning", "area": "holding", "address": 33120, "type": "float32", "access": "RW"}, {"name": "Capacity", "group": "Fluid and sensor", "area": "holding", "address": 33128, "type": "float32", "access": "RW"}, {"name": "Fluid name", "group": "Fluid and sensor", "area": "holding", "address": 33160, "type": "string", "length": 5, "access": "RW"}, {"name": "Capacity unit", "group": "Fluid and sensor", "area": "holding", "address": 33272, "type": "string", "length": 4, "access": "RW"}, {"name": "Fmeasure", "group": "Measurement", "area": "holding", "address": 41216, "type": "float32"}, {"name": "FSetpoint", "group": "Control", "area": "holding", "address": 41240, "type": "float32", "access": "RW"}, {"name": "Temperature (float)", "group": "Measurement", "area": "holding", "address": 41272, "type": "float32"}, {"name": "Capacity 0%", "group": "Fluid and sensor", "area": "holding", "address": 41392, "type": "float32", "access": "RW"}, {"name": "Counter value (float)", "group": "Counter", "area": "holding", "address": 59400, "type": "float32", "access": "RW"}, {"name": "Counter limit (float)", "group": "Counter", "area": "holding", "address": 59416, "type": "float32", "access": "RW"}, {"name": "Counter unit", "group": "Counter", "area": "holding", "address": 59448, "type": "string", "length": 2}, {"name": "Device type", "group": "Identification", "area": "holding", "address": 61704, "type": "string", "length": 3}, {"name": "BHT model number", "group": "Identification", "area": "holding", "address": 61712, "type": "string", "length": 7, "access": "RW"}, {"name": "Serial number", "group": "Identification", "area": "holding", "address": 61720, "type": "string", "length": 8, "access": "RW", "role": "serial"}, {"name": "Customer model", "group": "Identification", "area": "holding", "address": 61728, "type": "string", "length": 8, "access": "RW"}, {"name": "Firmware version", "group": "Identification", "area": "holding", "address": 61736, "type": "string", "length": 3, "role": "firmware"}, {"name": "Usertag", "group": "Identification", "area": "holding", "address": 61744, "type": "string", "length": 7, "access": "RW"}, {"name": "PID Kp", "group": "Tuning", "area": "holding", "address": 62120, "type": "float32", "access": "RW"}, {"name": "PID Ti", "group": "Tuning", "area": "holding", "address": 62128, "type": "float32", "access": "RW"}, {"name": "PID Td", "group": "Tuning", "area": "holding", "address": 62136, "type": "float32", "access": "RW"}, {"name": "Density actual", "group": "Measurement", "area": "holding", "address": 62584, "type": "float32"}, {"name": "Dynamic display factor", "group": "Configuration", "area": "holding", "address": 62728, "type": "float32", "access": "RW"}, {"name": "Static display factor", "group": "Configuration", "area": "holding", "address": 62736, "type": "float32", "access": "RW"}, {"name": "Exponential smoothing", "group": "Tuning", "area": "holding", "address": 62752, "type": "float32", "access": "RW"}, {"name": "Modbus baudrate", "group": "Configuration", "area": "holding", "address": 64840, "type": "uint32", "access": "RW", "description": "Baud rate; 57600 and 115200 only on MBC3 instruments"} ] }