{ "$schema": "https://raw.githubusercontent.com/nobrega8/mbmap-library/main/schema/mbmap-2.schema.json", "mbmap": 2, "vendor": "Panasonic", "model": "KW9M Eco-POWER METER", "models": [ "KW9M", "AKW91110", "AKW92112" ], "vendor_website": "industry.panasonic.com", "description": "Multi-circuit power meter with RS-485 Modbus RTU", "revision": 1, "revised": "2026-10-18", "source": "Panasonic KW9M Eco-POWER METER User's Manual, section 7.4 MODBUS (RTU) communication", "sources": [ { "title": "KW9M Eco-POWER METER User's Manual", "url": "https://mediap.industry.panasonic.eu/assets/custom-upload/Factory%20&%20Automation/Eco-POWER%20METERS/Manuals/mn_kw9m_user_jp_en.pdf", "note": "Section 7.4.2, Data Register List (MODBUS communication)" } ], "notes": [ "The meter leaves the factory set to MEWTOCOL: set Protocol (0x62) to MODBUS at the keys or with the Configurator before using this map; changing the protocol resets the serial settings.", "32-bit values take two registers with the least significant word at the lower address (the manual marks the lower register ), so the word order is little; the bytes of each register are big-endian.", "The manual lists each measurement twice at different resolutions. This map uses the finer one (0.001 kWh, 0.001 kW, 0.01 V, 0.001 A, 0.01 Hz). The coarser mirrors start at 0x64 (energy, 0.01 kWh), 0x8C (power, 0.01 kW), 0xA4 (voltage, 0.1 V), 0xB4 (current, 0.01 A) and 0xBE (frequency, 0.1 Hz), and 0x145 to 0x158 repeat the total energies.", "The numbers in brackets, (1) to (3), are the measuring circuits or phases of the chosen wiring; with a single-phase two-wire meter only (1) is meaningful.", "Supported functions are 03 (read), 06 (write one register) and 16 (write several); a read is limited to 26 registers (57 bytes) and a write to 23 (55 bytes). Registers that are not listed read as 0 and writes to them are acknowledged but ignored, as are writes outside the setting range.", "Settings written over Modbus go to the internal memory straight away, which limits its life: do not rewrite them in a loop.", "Integral energies can be cleared by writing 0 to them or with the reset registers; the totals are read only. Instantaneous active and reactive powers are signed 32-bit values.", "The factory serial settings are device number 1, 19200 bit/s, 8 data bits, odd parity, 1 stop bit, response time 5 ms." ], "protocol": "rtu", "unit_id": 1, "baudrate": 19200, "data_bits": 8, "parity": "O", "stop_bits": 1, "byte_order": "big", "word_order": "little", "address_base": 0, "max_read_registers": 26, "x_status": "official", "enums": { "speed": {"0": "1200 bit/s", "1": "2400 bit/s", "2": "4800 bit/s", "3": "9600 bit/s", "4": "19200 bit/s", "5": "38400 bit/s"}, "format": {"0": "8 data bits, odd parity", "1": "8 data bits, no parity", "2": "8 data bits, even parity"}, "wiring": {"0": "1P2W", "1": "1P3W", "2": "3P3W", "3": "3P4W"}, "protocol": {"0": "MEWTOCOL", "1": "MODBUS", "2": "DL/T645-2007"}, "demand_type": {"1": "Sliding block", "2": "Fixed block"}, "demand_status": {"0": "Start", "1": "Stop"}, "no_yes": {"0": "No", "1": "Yes"}, "pf_status": {"0": "Even", "1": "Lag", "2": "Lead"} }, "registers": [ {"name": "RS485 device number", "group": "Settings", "area": "holding", "address": 50, "type": "uint16", "access": "RW", "write_min": 1, "write_max": 247}, {"name": "RS485 transmission speed", "group": "Settings", "area": "holding", "address": 51, "type": "uint16", "access": "RW", "enum": "speed"}, {"name": "RS485 transmission format", "group": "Settings", "area": "holding", "address": 52, "type": "uint16", "access": "RW", "enum": "format"}, {"name": "RS485 stop bit", "group": "Settings", "area": "holding", "address": 53, "type": "uint16", "access": "RW", "write_min": 1, "write_max": 2}, {"name": "RS485 response time", "group": "Settings", "area": "holding", "address": 54, "type": "uint16", "access": "RW", "unit": "ms", "write_min": 1, "write_max": 99}, {"name": "Phase/wire", "group": "Settings", "area": "holding", "address": 55, "type": "uint16", "access": "RW", "enum": "wiring"}, {"name": "CT type (rated secondary current)", "group": "Settings", "area": "holding", "address": 56, "type": "uint16", "access": "RW", "unit": "A", "description": "1 A or 5 A"}, {"name": "CT primary current", "group": "Settings", "area": "holding", "address": 57, "type": "uint16", "access": "RW", "unit": "A", "write_min": 1, "write_max": 65535}, {"name": "VT ratio", "group": "Settings", "area": "holding", "address": 58, "type": "uint16", "access": "RW", "scale": 0.01, "write_min": 1, "write_max": 600}, {"name": "Temperature correction", "group": "Settings", "area": "holding", "address": 59, "type": "int16", "access": "RW", "scale": 0.1, "unit": "°C", "write_min": -100, "write_max": 100}, {"name": "Update cycle", "group": "Settings", "area": "holding", "address": 65, "type": "uint16", "access": "RW", "scale": 100, "unit": "ms", "write_min": 100, "write_max": 1000}, {"name": "Auto-off", "group": "Settings", "area": "holding", "address": 70, "type": "uint16", "access": "RW", "unit": "min", "write_min": 0, "write_max": 99, "description": "0 = display always on"}, {"name": "Conversion rate (-P)", "group": "Settings", "area": "holding", "address": 87, "type": "uint16", "access": "RW", "scale": 0.01, "write_min": 0, "write_max": 99.99}, {"name": "Conversion rate (P)", "group": "Settings", "area": "holding", "address": 93, "type": "uint16", "access": "RW", "scale": 0.01, "write_min": 0, "write_max": 99.99}, {"name": "Password", "group": "Settings", "area": "holding", "address": 94, "type": "uint16", "access": "RW", "write_min": 0, "write_max": 9999}, {"name": "Auto display start", "group": "Settings", "area": "holding", "address": 95, "type": "uint16", "access": "RW", "unit": "min", "write_min": 0, "write_max": 99, "description": "0 = fixed display item"}, {"name": "Display cycle", "group": "Settings", "area": "holding", "address": 96, "type": "uint16", "access": "RW", "unit": "s", "write_min": 1, "write_max": 99}, {"name": "Luminance", "group": "Settings", "area": "holding", "address": 97, "type": "uint16", "access": "RW", "write_min": 1, "write_max": 5}, {"name": "Protocol", "group": "Settings", "area": "holding", "address": 98, "type": "uint16", "access": "RW", "enum": "protocol", "description": "Changing it resets the other serial settings to their defaults"}, {"name": "Power demand type", "group": "Demand", "area": "holding", "address": 30108, "type": "uint16", "access": "RW", "enum": "demand_type"}, {"name": "Power demand interval 1", "group": "Demand", "area": "holding", "address": 30109, "type": "uint16", "access": "RW", "unit": "min", "write_min": 0, "write_max": 60}, {"name": "Power demand interval 2", "group": "Demand", "area": "holding", "address": 30110, "type": "uint16", "access": "RW", "unit": "min", "write_min": 0, "write_max": 60}, {"name": "Current demand interval", "group": "Demand", "area": "holding", "address": 30111, "type": "uint16", "access": "RW", "unit": "min", "write_min": 0, "write_max": 60}, {"name": "Demand measurement status", "group": "Demand", "area": "holding", "address": 30200, "type": "uint16", "access": "RW", "enum": "demand_status"}, {"name": "Reset all integral values", "group": "Commands", "area": "holding", "address": 30300, "type": "uint16", "access": "RW", "enum": "no_yes", "write_min": 0, "write_max": 1}, {"name": "Reset integral value 1", "group": "Commands", "area": "holding", "address": 30301, "type": "uint16", "access": "RW", "enum": "no_yes", "write_min": 0, "write_max": 1}, {"name": "Reset integral value 2", "group": "Commands", "area": "holding", "address": 30302, "type": "uint16", "access": "RW", "enum": "no_yes", "write_min": 0, "write_max": 1}, {"name": "Reset integral value 3", "group": "Commands", "area": "holding", "address": 30303, "type": "uint16", "access": "RW", "enum": "no_yes", "write_min": 0, "write_max": 1}, {"name": "Reset logging data", "group": "Commands", "area": "holding", "address": 30306, "type": "uint16", "access": "RW", "enum": "no_yes", "write_min": 0, "write_max": 1}, {"name": "Cut-off current", "group": "Settings", "area": "holding", "address": 30307, "type": "uint16", "access": "RW", "scale": 0.1, "unit": "%", "write_min": 0.1, "write_max": 50}, {"name": "Integral active energy (1)", "group": "Energy", "area": "holding", "address": 198, "type": "uint32", "access": "RW", "scale": 0.001, "unit": "kWh"}, {"name": "Integral active energy (2)", "group": "Energy", "area": "holding", "address": 200, "type": "uint32", "access": "RW", "scale": 0.001, "unit": "kWh"}, {"name": "Integral active energy (3)", "group": "Energy", "area": "holding", "address": 202, "type": "uint32", "access": "RW", "scale": 0.001, "unit": "kWh"}, {"name": "Total integral active energy", "group": "Energy", "area": "holding", "address": 204, "type": "uint32", "access": "R", "scale": 0.001, "unit": "kWh"}, {"name": "Integral reactive energy (1)", "group": "Energy", "area": "holding", "address": 206, "type": "uint32", "access": "RW", "scale": 0.001, "unit": "kvarh"}, {"name": "Integral reactive energy (2)", "group": "Energy", "area": "holding", "address": 208, "type": "uint32", "access": "RW", "scale": 0.001, "unit": "kvarh"}, {"name": "Integral reactive energy (3)", "group": "Energy", "area": "holding", "address": 210, "type": "uint32", "access": "RW", "scale": 0.001, "unit": "kvarh"}, {"name": "Total integral reactive energy", "group": "Energy", "area": "holding", "address": 212, "type": "uint32", "access": "R", "scale": 0.001, "unit": "kvarh"}, {"name": "Integral apparent energy (1)", "group": "Energy", "area": "holding", "address": 214, "type": "uint32", "access": "RW", "scale": 0.001, "unit": "kVAh"}, {"name": "Integral apparent energy (2)", "group": "Energy", "area": "holding", "address": 216, "type": "uint32", "access": "RW", "scale": 0.001, "unit": "kVAh"}, {"name": "Integral apparent energy (3)", "group": "Energy", "area": "holding", "address": 218, "type": "uint32", "access": "RW", "scale": 0.001, "unit": "kVAh"}, {"name": "Total integral apparent energy", "group": "Energy", "area": "holding", "address": 220, "type": "uint32", "access": "R", "scale": 0.001, "unit": "kVAh"}, {"name": "Integral export active energy (1)", "group": "Energy", "area": "holding", "address": 222, "type": "uint32", "access": "RW", "scale": 0.001, "unit": "kWh"}, {"name": "Integral export active energy (2)", "group": "Energy", "area": "holding", "address": 224, "type": "uint32", "access": "RW", "scale": 0.001, "unit": "kWh"}, {"name": "Integral export active energy (3)", "group": "Energy", "area": "holding", "address": 226, "type": "uint32", "access": "RW", "scale": 0.001, "unit": "kWh"}, {"name": "Total integral export active energy", "group": "Energy", "area": "holding", "address": 228, "type": "uint32", "access": "R", "scale": 0.001, "unit": "kWh"}, {"name": "Integral export reactive energy (1)", "group": "Energy", "area": "holding", "address": 230, "type": "uint32", "access": "RW", "scale": 0.001, "unit": "kvarh"}, {"name": "Integral export reactive energy (2)", "group": "Energy", "area": "holding", "address": 232, "type": "uint32", "access": "RW", "scale": 0.001, "unit": "kvarh"}, {"name": "Integral export reactive energy (3)", "group": "Energy", "area": "holding", "address": 234, "type": "uint32", "access": "RW", "scale": 0.001, "unit": "kvarh"}, {"name": "Total integral export reactive energy", "group": "Energy", "area": "holding", "address": 236, "type": "uint32", "access": "R", "scale": 0.001, "unit": "kvarh"}, {"name": "Instantaneous active power (1)", "group": "Power", "area": "holding", "address": 238, "type": "int32", "access": "R", "scale": 0.001, "unit": "kW"}, {"name": "Instantaneous active power (2)", "group": "Power", "area": "holding", "address": 240, "type": "int32", "access": "R", "scale": 0.001, "unit": "kW"}, {"name": "Instantaneous active power (3)", "group": "Power", "area": "holding", "address": 242, "type": "int32", "access": "R", "scale": 0.001, "unit": "kW"}, {"name": "Total instantaneous active power", "group": "Power", "area": "holding", "address": 244, "type": "int32", "access": "R", "scale": 0.001, "unit": "kW"}, {"name": "Instantaneous reactive power (1)", "group": "Power", "area": "holding", "address": 246, "type": "int32", "access": "R", "scale": 0.001, "unit": "kvar"}, {"name": "Instantaneous reactive power (2)", "group": "Power", "area": "holding", "address": 248, "type": "int32", "access": "R", "scale": 0.001, "unit": "kvar"}, {"name": "Instantaneous reactive power (3)", "group": "Power", "area": "holding", "address": 250, "type": "int32", "access": "R", "scale": 0.001, "unit": "kvar"}, {"name": "Total instantaneous reactive power", "group": "Power", "area": "holding", "address": 252, "type": "int32", "access": "R", "scale": 0.001, "unit": "kvar"}, {"name": "Instantaneous apparent power (1)", "group": "Power", "area": "holding", "address": 254, "type": "uint32", "access": "R", "scale": 0.001, "unit": "kVA"}, {"name": "Instantaneous apparent power (2)", "group": "Power", "area": "holding", "address": 256, "type": "uint32", "access": "R", "scale": 0.001, "unit": "kVA"}, {"name": "Instantaneous apparent power (3)", "group": "Power", "area": "holding", "address": 258, "type": "uint32", "access": "R", "scale": 0.001, "unit": "kVA"}, {"name": "Total instantaneous apparent power", "group": "Power", "area": "holding", "address": 260, "type": "uint32", "access": "R", "scale": 0.001, "unit": "kVA"}, {"name": "Voltage 1", "group": "Voltage", "area": "holding", "address": 262, "type": "uint32", "access": "R", "scale": 0.01, "unit": "V"}, {"name": "Voltage 2", "group": "Voltage", "area": "holding", "address": 264, "type": "uint32", "access": "R", "scale": 0.01, "unit": "V"}, {"name": "Voltage 3", "group": "Voltage", "area": "holding", "address": 266, "type": "uint32", "access": "R", "scale": 0.01, "unit": "V"}, {"name": "Voltage average", "group": "Voltage", "area": "holding", "address": 268, "type": "uint32", "access": "R", "scale": 0.01, "unit": "V"}, {"name": "Line voltage 1-2", "group": "Voltage", "area": "holding", "address": 270, "type": "uint32", "access": "R", "scale": 0.01, "unit": "V"}, {"name": "Line voltage 2-3", "group": "Voltage", "area": "holding", "address": 272, "type": "uint32", "access": "R", "scale": 0.01, "unit": "V"}, {"name": "Line voltage 3-1", "group": "Voltage", "area": "holding", "address": 274, "type": "uint32", "access": "R", "scale": 0.01, "unit": "V"}, {"name": "Line voltage average", "group": "Voltage", "area": "holding", "address": 276, "type": "uint32", "access": "R", "scale": 0.01, "unit": "V"}, {"name": "Current (1)", "group": "Current", "area": "holding", "address": 278, "type": "uint32", "access": "R", "scale": 0.001, "unit": "A"}, {"name": "Current (2)", "group": "Current", "area": "holding", "address": 280, "type": "uint32", "access": "R", "scale": 0.001, "unit": "A"}, {"name": "Current (3)", "group": "Current", "area": "holding", "address": 282, "type": "uint32", "access": "R", "scale": 0.001, "unit": "A"}, {"name": "Current average", "group": "Current", "area": "holding", "address": 286, "type": "uint32", "access": "R", "scale": 0.001, "unit": "A"}, {"name": "Frequency (1)", "group": "Voltage", "area": "holding", "address": 288, "type": "uint16", "access": "R", "scale": 0.01, "unit": "Hz"}, {"name": "Frequency (2)", "group": "Voltage", "area": "holding", "address": 289, "type": "uint16", "access": "R", "scale": 0.01, "unit": "Hz"}, {"name": "Frequency (3)", "group": "Voltage", "area": "holding", "address": 290, "type": "uint16", "access": "R", "scale": 0.01, "unit": "Hz"}, {"name": "Frequency average", "group": "Voltage", "area": "holding", "address": 291, "type": "uint16", "access": "R", "scale": 0.01, "unit": "Hz"}, {"name": "Power factor (1)", "group": "Power", "area": "holding", "address": 194, "type": "int16", "access": "R", "scale": 0.001}, {"name": "Power factor (2)", "group": "Power", "area": "holding", "address": 195, "type": "int16", "access": "R", "scale": 0.001}, {"name": "Power factor (3)", "group": "Power", "area": "holding", "address": 196, "type": "int16", "access": "R", "scale": 0.001}, {"name": "Power factor average", "group": "Power", "area": "holding", "address": 197, "type": "int16", "access": "R", "scale": 0.001}, {"name": "Power factor status", "group": "Power", "area": "holding", "address": 324, "type": "uint16", "access": "R", "enum": "pf_status"}, {"name": "Present demand (active power)", "group": "Demand", "area": "holding", "address": 305, "type": "uint32", "access": "R", "scale": 0.001, "unit": "kW"}, {"name": "Present demand (reactive power)", "group": "Demand", "area": "holding", "address": 307, "type": "uint32", "access": "R", "scale": 0.001, "unit": "kvar"}, {"name": "Present demand (apparent power)", "group": "Demand", "area": "holding", "address": 309, "type": "uint32", "access": "R", "scale": 0.001, "unit": "kVA"}, {"name": "Present demand (active power, export)", "group": "Demand", "area": "holding", "address": 311, "type": "uint32", "access": "R", "scale": 0.001, "unit": "kW"}, {"name": "Present demand (reactive power, export)", "group": "Demand", "area": "holding", "address": 313, "type": "uint32", "access": "R", "scale": 0.001, "unit": "kvar"}, {"name": "Present demand (current 1)", "group": "Demand", "area": "holding", "address": 315, "type": "uint32", "access": "R", "scale": 0.001, "unit": "A"}, {"name": "Present demand (current 2)", "group": "Demand", "area": "holding", "address": 317, "type": "uint32", "access": "R", "scale": 0.001, "unit": "A"}, {"name": "Present demand (current 3)", "group": "Demand", "area": "holding", "address": 319, "type": "uint32", "access": "R", "scale": 0.001, "unit": "A"}, {"name": "Maximum demand value, active power", "group": "Demand", "area": "holding", "address": 31903, "type": "uint32", "access": "R", "scale": 0.001, "unit": "kW"}, {"name": "Maximum demand value, reactive power", "group": "Demand", "area": "holding", "address": 31908, "type": "uint32", "access": "R", "scale": 0.001, "unit": "kvar"}, {"name": "Maximum demand value, apparent power", "group": "Demand", "area": "holding", "address": 31913, "type": "uint32", "access": "R", "scale": 0.001, "unit": "kVA"}, {"name": "Maximum demand value, active power (export)", "group": "Demand", "area": "holding", "address": 31918, "type": "uint32", "access": "R", "scale": 0.001, "unit": "kW"}, {"name": "Maximum demand value, reactive power (export)", "group": "Demand", "area": "holding", "address": 31923, "type": "uint32", "access": "R", "scale": 0.001, "unit": "kvar"}, {"name": "Maximum demand value, current 1", "group": "Demand", "area": "holding", "address": 31928, "type": "uint32", "access": "R", "scale": 0.001, "unit": "A"}, {"name": "Maximum demand value, current 2", "group": "Demand", "area": "holding", "address": 31933, "type": "uint32", "access": "R", "scale": 0.001, "unit": "A"}, {"name": "Maximum demand value, current 3", "group": "Demand", "area": "holding", "address": 31938, "type": "uint32", "access": "R", "scale": 0.001, "unit": "A"}, {"name": "Temperature", "group": "Device", "area": "holding", "address": 418, "type": "int16", "access": "R", "scale": 0.1, "unit": "°C"}, {"name": "Phase voltage THD (1)", "group": "Harmonics", "area": "holding", "address": 664, "type": "int32", "access": "R", "scale": 0.001, "unit": "%"}, {"name": "Phase voltage THD (2)", "group": "Harmonics", "area": "holding", "address": 666, "type": "int32", "access": "R", "scale": 0.001, "unit": "%"}, {"name": "Phase voltage THD (3)", "group": "Harmonics", "area": "holding", "address": 668, "type": "int32", "access": "R", "scale": 0.001, "unit": "%"}, {"name": "Phase voltage THD average", "group": "Harmonics", "area": "holding", "address": 670, "type": "int32", "access": "R", "scale": 0.001, "unit": "%"}, {"name": "Line voltage THD 1-2", "group": "Harmonics", "area": "holding", "address": 672, "type": "int32", "access": "R", "scale": 0.001, "unit": "%"}, {"name": "Line voltage THD 2-3", "group": "Harmonics", "area": "holding", "address": 674, "type": "int32", "access": "R", "scale": 0.001, "unit": "%"}, {"name": "Line voltage THD 3-1", "group": "Harmonics", "area": "holding", "address": 676, "type": "int32", "access": "R", "scale": 0.001, "unit": "%"}, {"name": "Line voltage THD average", "group": "Harmonics", "area": "holding", "address": 678, "type": "int32", "access": "R", "scale": 0.001, "unit": "%"}, {"name": "Current THD (1)", "group": "Harmonics", "area": "holding", "address": 680, "type": "int32", "access": "R", "scale": 0.001, "unit": "%"}, {"name": "Current THD (2)", "group": "Harmonics", "area": "holding", "address": 682, "type": "int32", "access": "R", "scale": 0.001, "unit": "%"}, {"name": "Current THD (3)", "group": "Harmonics", "area": "holding", "address": 684, "type": "int32", "access": "R", "scale": 0.001, "unit": "%"}, {"name": "Current THD average", "group": "Harmonics", "area": "holding", "address": 686, "type": "int32", "access": "R", "scale": 0.001, "unit": "%"}, {"name": "Export power conversion value (1)", "group": "Energy", "area": "holding", "address": 5040, "type": "uint32", "access": "R", "scale": 0.01}, {"name": "Export power conversion value (2)", "group": "Energy", "area": "holding", "address": 5042, "type": "uint32", "access": "R", "scale": 0.01}, {"name": "Export power conversion value (3)", "group": "Energy", "area": "holding", "address": 5044, "type": "uint32", "access": "R", "scale": 0.01}, {"name": "Total export power conversion value", "group": "Energy", "area": "holding", "address": 5046, "type": "uint32", "access": "R", "scale": 0.01}, {"name": "Conversion value (1)", "group": "Energy", "area": "holding", "address": 5090, "type": "uint32", "access": "R", "scale": 0.01}, {"name": "Conversion value (2)", "group": "Energy", "area": "holding", "address": 5092, "type": "uint32", "access": "R", "scale": 0.01}, {"name": "Conversion value (3)", "group": "Energy", "area": "holding", "address": 5094, "type": "uint32", "access": "R", "scale": 0.01}, {"name": "Total conversion value", "group": "Energy", "area": "holding", "address": 5096, "type": "uint32", "access": "R", "scale": 0.01} ] }