{ "$schema": "https://raw.githubusercontent.com/nobrega8/mbmap-library/main/schema/mbmap-2.schema.json", "mbmap": 2, "vendor": "Kohler", "model": "MPAC 1500", "models": ["MPAC 1500"], "vendor_website": "rehlko.com", "revision": 3, "revised": "2026-11-10", "source": "Kohler, \"Protocol Operation: Modbus Communications Protocol\", TP-6113 12/21; https://techcomm.kohler.com/techcomm/pdf/tp6113.pdf", "notes": [ "MPAC 1500 automatic transfer switch controller.", "Addresses are zero-based: the manual register 40001 is address 0.", "The manual limits a read to 50 registers. Only the monitoring part of the register table is in this map.", "Data is available over Modbus RTU (8N1); Modbus TCP needs a Modbus/Ethernet converter." ], "parity": "N", "databits": 8, "stopbits": 1, "max_read_registers": 50, "byte_order": "big", "word_order": "little", "address_base": 0, "x_status": "official", "sources": [ {"title": "Protocol Operation: Modbus Communications Protocol (TP-6113)", "version": "12/21", "date": "2021-12", "url": "https://techcomm.kohler.com/techcomm/pdf/tp6113.pdf", "note": "section 10; register tables also compared with edition 9/14"} ], "registers": [ {"name": "System overview", "area": "holding", "address": 0, "type": "uint16", "access": "R", "description": "Packed word: contactor position, preferred source and availability, top warning event"}, {"name": "Source N Line-Neutral L1-L0", "area": "holding", "address": 1, "type": "uint16", "scale": 0.1, "unit": "V", "access": "R"}, {"name": "Source N Line-Neutral L2-L0", "area": "holding", "address": 2, "type": "uint16", "scale": 0.1, "unit": "V", "access": "R"}, {"name": "Source N Line-Neutral L3-L0", "area": "holding", "address": 3, "type": "uint16", "scale": 0.1, "unit": "V", "access": "R"}, {"name": "Source E Line-Neutral L1-L0", "area": "holding", "address": 4, "type": "uint16", "scale": 0.1, "unit": "V", "access": "R"}, {"name": "Source E Line-Neutral L2-L0", "area": "holding", "address": 5, "type": "uint16", "scale": 0.1, "unit": "V", "access": "R"}, {"name": "Source E Line-Neutral L3-L0", "area": "holding", "address": 6, "type": "uint16", "scale": 0.1, "unit": "V", "access": "R"}, {"name": "Source N Line Voltage L1-L2", "area": "holding", "address": 7, "type": "uint16", "scale": 0.1, "unit": "V", "access": "R"}, {"name": "Source N Line Voltage L2-L3", "area": "holding", "address": 8, "type": "uint16", "scale": 0.1, "unit": "V", "access": "R"}, {"name": "Source N Line Voltage L3-L1", "area": "holding", "address": 9, "type": "uint16", "scale": 0.1, "unit": "V", "access": "R"}, {"name": "Source E Line Voltage L1-L2", "area": "holding", "address": 10, "type": "uint16", "scale": 0.1, "unit": "V", "access": "R"}, {"name": "Source E Line Voltage L2-L3", "area": "holding", "address": 11, "type": "uint16", "scale": 0.1, "unit": "V", "access": "R"}, {"name": "Source E Line Voltage L3-L1", "area": "holding", "address": 12, "type": "uint16", "scale": 0.1, "unit": "V", "access": "R"}, {"name": "Source N Frequency", "area": "holding", "address": 13, "type": "uint16", "scale": 0.1, "unit": "Hz", "access": "R"}, {"name": "Source E Frequency", "area": "holding", "address": 14, "type": "uint16", "scale": 0.1, "unit": "Hz", "access": "R"}, {"name": "Current L1", "area": "holding", "address": 15, "type": "uint16", "scale": 0.1, "unit": "A", "access": "R"}, {"name": "Current L2", "area": "holding", "address": 16, "type": "uint16", "scale": 0.1, "unit": "A", "access": "R"}, {"name": "Current L3", "area": "holding", "address": 17, "type": "uint16", "scale": 0.1, "unit": "A", "access": "R"}, {"name": "Closed Transition In Phase Degree", "area": "holding", "address": 18, "type": "uint16", "unit": "°", "access": "R"}, {"name": "Closed-Programmed Transition", "area": "holding", "address": 38, "type": "uint16", "access": "RW"}, {"name": "Password for writing register 40042", "area": "holding", "address": 39, "type": "uint16", "access": "W"}, {"name": "Synchronous Voltage Phase Angle", "area": "holding", "address": 40, "type": "uint16", "unit": "°", "access": "R"}, {"name": "Synchronous Voltage Differential", "area": "holding", "address": 41, "type": "uint16", "unit": "%", "access": "RW"}, {"name": "Synchronous Frequency Differential", "area": "holding", "address": 42, "type": "uint16", "scale": 0.1, "unit": "Hz", "access": "RW"}, {"name": "Service Entrance Type", "area": "holding", "address": 43, "type": "uint16", "access": "RW"}, {"name": "Phase Rotation Actual", "area": "holding", "address": 44, "type": "uint16", "access": "R"}, {"name": "Phase Rotation Expected", "area": "holding", "address": 45, "type": "uint16", "access": "RW"}, {"name": "Nominal Normal Voltage", "area": "holding", "address": 46, "type": "uint16", "scale": 0.1, "unit": "V", "access": "RW"}, {"name": "Nominal Emergency Voltage", "area": "holding", "address": 47, "type": "uint16", "scale": 0.1, "unit": "V", "access": "RW"}, {"name": "Nominal Normal Frequency", "area": "holding", "address": 48, "type": "uint16", "scale": 0.1, "unit": "Hz", "access": "RW"}, {"name": "Nominal Emergency Frequency", "area": "holding", "address": 49, "type": "uint16", "scale": 0.1, "unit": "Hz", "access": "RW"}, {"name": "Normal Number of Phases", "area": "holding", "address": 50, "type": "uint16", "access": "RW"}, {"name": "Emergency Number of Phases", "area": "holding", "address": 51, "type": "uint16", "access": "RW"}, {"name": "Rated Amperage", "area": "holding", "address": 52, "type": "uint16", "access": "RW"}, {"name": "Password for writing register 40057", "area": "holding", "address": 57, "type": "uint16", "access": "W"}, {"name": "Normal Engine Start Time Delay", "area": "holding", "address": 58, "type": "uint16", "unit": "s", "access": "RW"}, {"name": "Emergency Engine Start Time Delay", "area": "holding", "address": 59, "type": "uint16", "unit": "s", "access": "RW"}, {"name": "Normal Ext. Engine Start Time Delay", "area": "holding", "address": 60, "type": "uint16", "unit": "s", "access": "RW"}, {"name": "Emergency Ext. Engine Start Time", "area": "holding", "address": 61, "type": "uint16", "unit": "s", "access": "RW"}, {"name": "Normal Engine Cooldown", "area": "holding", "address": 62, "type": "uint16", "unit": "s", "access": "RW"}, {"name": "Emergency Engine Cooldown", "area": "holding", "address": 63, "type": "uint16", "unit": "s", "access": "RW"}, {"name": "Standby to Preferred", "area": "holding", "address": 64, "type": "uint16", "unit": "s", "access": "RW"}, {"name": "Preferred to Standby", "area": "holding", "address": 65, "type": "uint16", "unit": "s", "access": "RW"}, {"name": "Off (Preferred to Standby - Prog.", "area": "holding", "address": 66, "type": "uint16", "unit": "s", "access": "RW"}, {"name": "Off (Standby to Preferred - Prog.", "area": "holding", "address": 67, "type": "uint16", "unit": "s", "access": "RW"}, {"name": "Fail to Acquire Preferred", "area": "holding", "address": 68, "type": "uint16", "unit": "s", "access": "RW"}, {"name": "Fail to Acquire Standby", "area": "holding", "address": 69, "type": "uint16", "unit": "s", "access": "RW"}, {"name": "Fail to Synchronize", "area": "holding", "address": 70, "type": "uint16", "unit": "s", "access": "RW"}, {"name": "Fail to Synch. Enable", "area": "holding", "address": 71, "type": "uint16", "access": "RW"}, {"name": "Active Time Delay Number", "area": "holding", "address": 74, "type": "uint16", "access": "R"}, {"name": "Active Time Delay Remaining", "area": "holding", "address": 75, "type": "uint16", "scale": 0.1, "unit": "s", "access": "R"}, {"name": "Device ID", "area": "holding", "address": 49998, "type": "uint16", "access": "R", "reference": "0x0017", "description": "Fixed controller type code"} ] }