{ "$schema": "https://raw.githubusercontent.com/nobrega8/mbmap-library/main/schema/mbmap-2.schema.json", "mbmap": 2, "vendor": "Reinhausen", "model": "TAPCON 250", "models": ["TAPCON 250"], "vendor_website": "reinhausen.com", "description": "Digital on-load tap-changer voltage controller with the CI communication module", "revision": 2, "revised": "2026-10-18", "source": "Maschinenfabrik Reinhausen, \"TAPCON 250 Implementation of MODBUS (ASCII/RTU) Protocol\", supplement BB 2072201/02 (2011-05), section 6", "sources": [ {"title": "Digital OLTC Voltage Controller TAPCON 250, Implementation of MODBUS (ASCII/RTU) Protocol", "version": "BB 2072201/02", "date": "2011-05", "note": "section 6, device data points"} ], "notes": [ "Modbus RTU or ASCII over RS-232 (default), RS-485, fibre or the optional Ethernet/modem port of the CI module.", "Over Ethernet the controller speaks Modbus RTU wrapped in TCP, not Modbus TCP.", "Coils can only be written (FC05); their state cannot be read back. Holding registers are written one at a time with FC06.", "Currents are in percent of the 200 mA nominal input (100 % = 200 mA)." ], "protocol": "rtu", "unit_id": 1, "baudrate": 9600, "parity": "E", "databits": 8, "stopbits": 1, "byte_order": "big", "word_order": "big", "address_base": 0, "enums": { "inactive_active": {"0": "Inactive", "1": "Active"}, "voltage_level": {"0": "Off", "1": "On"}, "parallel_method": {"0": "Off", "1": "Circulating current", "2": "Master", "3": "Follower", "4": "Auto synchronous", "5": "XPA"} }, "x_status": "official", "registers": [ {"name": "Set auto/manual", "group": "Commands", "area": "coil", "address": 0, "type": "bool", "access": "W", "enum": {"0": "Manual", "1": "Auto"}, "description": "On sets auto mode, off sets manual mode"}, {"name": "Raise", "group": "Commands", "area": "coil", "address": 1, "type": "bool", "access": "W", "description": "On starts a raise command; off has no effect"}, {"name": "Lower", "group": "Commands", "area": "coil", "address": 2, "type": "bool", "access": "W", "description": "On starts a lower command; off has no effect"}, {"name": "SI command 1", "group": "Commands", "area": "coil", "address": 7, "type": "bool", "access": "W", "description": "Sets or resets a flag that the controller can use like an input"}, {"name": "SI command 2", "group": "Commands", "area": "coil", "address": 8, "type": "bool", "access": "W", "description": "Sets or resets a flag that the controller can use like an input"}, {"name": "SI command 3", "group": "Commands", "area": "coil", "address": 9, "type": "bool", "access": "W", "description": "Sets or resets a flag that the controller can use like an input"}, {"name": "Auto mode", "group": "Status", "area": "discrete", "address": 0, "type": "bool", "enum": {"0": "Manual", "1": "Auto"}}, {"name": "Voltage level 1 (reference)", "group": "Voltage level", "area": "discrete", "address": 3, "type": "bool", "enum": "voltage_level", "description": "Only one voltage level is active at a time"}, {"name": "Voltage level 2 (alternate)", "group": "Voltage level", "area": "discrete", "address": 4, "type": "bool", "enum": "voltage_level"}, {"name": "Voltage level 3 (alternate)", "group": "Voltage level", "area": "discrete", "address": 5, "type": "bool", "enum": "voltage_level"}, {"name": "Voltage level 4 (alternate)", "group": "Voltage level", "area": "discrete", "address": 6, "type": "bool", "enum": "voltage_level"}, {"name": "SI command 1 flag", "group": "Status", "area": "discrete", "address": 7, "type": "bool", "description": "Listed without a function code in the supplement"}, {"name": "SI command 2 flag", "group": "Status", "area": "discrete", "address": 8, "type": "bool", "description": "Listed without a function code in the supplement"}, {"name": "SI command 3 flag", "group": "Status", "area": "discrete", "address": 9, "type": "bool", "description": "Listed without a function code in the supplement"}, {"name": "Operation counter circuit", "group": "Status", "area": "discrete", "address": 10, "type": "bool", "enum": {"0": "Open", "1": "Closed"}}, {"name": "Parallel control", "group": "Parallel operation", "area": "discrete", "address": 11, "type": "bool", "enum": {"0": "Off", "1": "On"}}, {"name": "Parallel control error", "group": "Parallel operation", "area": "discrete", "address": 12, "type": "bool", "enum": {"0": "No error", "1": "Error"}}, {"name": "Remote/local", "group": "Status", "area": "discrete", "address": 13, "type": "bool", "enum": {"0": "Remote", "1": "Local"}}, {"name": "Overvoltage", "group": "Alarms", "area": "discrete", "address": 14, "type": "bool", "enum": {"0": "No overvoltage", "1": "Overvoltage"}}, {"name": "Undervoltage", "group": "Alarms", "area": "discrete", "address": 15, "type": "bool", "enum": {"0": "No undervoltage", "1": "Undervoltage"}}, {"name": "Overcurrent", "group": "Alarms", "area": "discrete", "address": 16, "type": "bool", "enum": {"0": "No overcurrent", "1": "Overcurrent"}}, {"name": "Function monitoring 15 min", "group": "Alarms", "area": "discrete", "address": 18, "type": "bool", "enum": "inactive_active"}, {"name": "Raise input", "group": "Inputs", "area": "discrete", "address": 19, "type": "bool", "enum": "inactive_active"}, {"name": "Lower input", "group": "Inputs", "area": "discrete", "address": 20, "type": "bool", "enum": "inactive_active"}, {"name": "Auto inhibit", "group": "Inputs", "area": "discrete", "address": 21, "type": "bool", "enum": "inactive_active"}, {"name": "Neutral position", "group": "Inputs", "area": "discrete", "address": 22, "type": "bool", "enum": "inactive_active"}, {"name": "Switch status", "group": "Inputs", "area": "discrete", "address": 23, "type": "bool", "enum": "inactive_active"}, {"name": "Power flow direction", "group": "Status", "area": "discrete", "address": 24, "type": "bool", "enum": {"0": "Forward", "1": "Reverse"}}, {"name": "User programmable alarm", "group": "Alarms", "area": "discrete", "address": 27, "type": "bool", "enum": "inactive_active"}, {"name": "Hunting alarm", "group": "Alarms", "area": "discrete", "address": 30, "type": "bool", "enum": "inactive_active"}, {"name": "Tap position", "group": "Measurements", "area": "input", "address": 0, "type": "int16", "description": "-50 to 140"}, {"name": "Measured voltage", "group": "Measurements", "area": "input", "address": 1, "type": "uint16", "scale": 0.1, "unit": "V"}, {"name": "Voltage deviation", "group": "Measurements", "area": "input", "address": 2, "type": "int16", "scale": 0.1, "unit": "%"}, {"name": "Active current", "group": "Measurements", "area": "input", "address": 3, "type": "int16", "scale": 0.01, "unit": "%", "description": "100 % = 200 mA"}, {"name": "Reactive current", "group": "Measurements", "area": "input", "address": 4, "type": "int16", "scale": 0.01, "unit": "%", "description": "100 % = 200 mA"}, {"name": "Apparent current", "group": "Measurements", "area": "input", "address": 5, "type": "int16", "scale": 0.01, "unit": "%", "description": "100 % = 200 mA"}, {"name": "Voltage level", "group": "Settings", "area": "holding", "address": 0, "type": "uint16", "scale": 0.1, "unit": "V", "access": "RW", "write_min": 100, "write_max": 135, "description": "Reference voltage level (raw 1000-1350)"}, {"name": "Parallel operation method", "group": "Settings", "area": "holding", "address": 6, "type": "uint16", "access": "RW", "enum": "parallel_method"}, {"name": "Paralleling group", "group": "Settings", "area": "holding", "address": 7, "type": "uint16", "access": "RW", "enum": {"0": "Off", "1": "Group 1", "2": "Group 2"}} ] }