{ "$schema": "https://raw.githubusercontent.com/nobrega8/mbmap-library/main/schema/mbmap-2.schema.json", "mbmap": 2, "vendor": "Lovato Electric", "model": "DMG300 / DMG700", "models": [ "DMG300", "DMG 300", "DMG700", "DMG 700" ], "vendor_website": "lovatoelectric.com", "description": "Lovato DMG300 and DMG700 digital multimeters/power analysers; Modbus RTU, ASCII or TCP through the communication port or expansion modules", "revision": 2, "revised": "2026-10-17", "source": "Lovato Electric, \"DMG series Modbus communication protocol\", I317IGB02_22", "sources": [ { "title": "Digital multimeters-analyzers DMG series, Communication protocol Modbus", "version": "I317IGB02_22", "url": "https://datasheet.lovatoelectric.com/DOWNLOAD/Technical/TechInstructions/28.%20CONTATORI%20DI%20ENERGIA%20E%20ANALIZZATORI%20DI%20RETE/I317IGB02_22.pdf", "note": "measure tables (table 2 onwards); rows marked for this model" } ], "notes": [ "Addresses are the table addresses of the protocol, which are 1-based: the query uses the table address minus one.", "Measurements are read with FC04; 32-bit values are high word first.", "Not in this map: the maximum, minimum and average blocks (0x0400-0x0A62), commands (0x2FF0), event log, setup parameters and waveforms." ], "protocol": "tcp+rtu", "unit_id": 1, "baudrate": 9600, "parity": "N", "databits": 8, "stopbits": 1, "byte_order": "big", "word_order": "big", "address_base": 1, "x_status": "official", "registers": [ { "name": "L1 Phase Voltage", "group": "Measurements", "area": "input", "address": 2, "type": "uint32", "scale": 0.01, "unit": "V", "access": "R" }, { "name": "L2 Phase Voltage", "group": "Measurements", "area": "input", "address": 4, "type": "uint32", "scale": 0.01, "unit": "V", "access": "R" }, { "name": "L3 Phase Voltage", "group": "Measurements", "area": "input", "address": 6, "type": "uint32", "scale": 0.01, "unit": "V", "access": "R" }, { "name": "L1 Current", "group": "Measurements", "area": "input", "address": 8, "type": "uint32", "scale": 0.0001, "unit": "A", "access": "R" }, { "name": "L2 Current", "group": "Measurements", "area": "input", "address": 10, "type": "uint32", "scale": 0.0001, "unit": "A", "access": "R" }, { "name": "L3 Current", "group": "Measurements", "area": "input", "address": 12, "type": "uint32", "scale": 0.0001, "unit": "A", "access": "R" }, { "name": "L1-L2 Voltage", "group": "Measurements", "area": "input", "address": 14, "type": "uint32", "scale": 0.01, "unit": "V", "access": "R" }, { "name": "L2-L3 Voltage", "group": "Measurements", "area": "input", "address": 16, "type": "uint32", "scale": 0.01, "unit": "V", "access": "R" }, { "name": "L3-L1 Voltage", "group": "Measurements", "area": "input", "address": 18, "type": "uint32", "scale": 0.01, "unit": "V", "access": "R" }, { "name": "L1 Active Power", "group": "Measurements", "area": "input", "address": 20, "type": "int32", "scale": 0.01, "unit": "W", "access": "R", "description": "Power scale may change with the device setting (see protocol note on power measurements)" }, { "name": "L2 Active Power", "group": "Measurements", "area": "input", "address": 22, "type": "int32", "scale": 0.01, "unit": "W", "access": "R", "description": "Power scale may change with the device setting (see protocol note on power measurements)" }, { "name": "L3 Active Power", "group": "Measurements", "area": "input", "address": 24, "type": "int32", "scale": 0.01, "unit": "W", "access": "R", "description": "Power scale may change with the device setting (see protocol note on power measurements)" }, { "name": "L1 Reactive Power", "group": "Measurements", "area": "input", "address": 26, "type": "int32", "scale": 0.01, "unit": "var", "access": "R", "description": "Power scale may change with the device setting (see protocol note on power measurements)" }, { "name": "L2 Reactive Power", "group": "Measurements", "area": "input", "address": 28, "type": "int32", "scale": 0.01, "unit": "var", "access": "R", "description": "Power scale may change with the device setting (see protocol note on power measurements)" }, { "name": "L3 Reactive Power", "group": "Measurements", "area": "input", "address": 30, "type": "int32", "scale": 0.01, "unit": "var", "access": "R", "description": "Power scale may change with the device setting (see protocol note on power measurements)" }, { "name": "L1 Apparent Power", "group": "Measurements", "area": "input", "address": 32, "type": "uint32", "scale": 0.01, "unit": "VA", "access": "R", "description": "Power scale may change with the device setting (see protocol note on power measurements)" }, { "name": "L2 Apparent Power", "group": "Measurements", "area": "input", "address": 34, "type": "uint32", "scale": 0.01, "unit": "VA", "access": "R", "description": "Power scale may change with the device setting (see protocol note on power measurements)" }, { "name": "L3 Apparent Power", "group": "Measurements", "area": "input", "address": 36, "type": "uint32", "scale": 0.01, "unit": "VA", "access": "R", "description": "Power scale may change with the device setting (see protocol note on power measurements)" }, { "name": "L1 Power Factor", "group": "Measurements", "area": "input", "address": 38, "type": "int32", "scale": 0.0001, "access": "R" }, { "name": "L2 Power Factor", "group": "Measurements", "area": "input", "address": 40, "type": "int32", "scale": 0.0001, "access": "R" }, { "name": "L3 Power Factor", "group": "Measurements", "area": "input", "address": 42, "type": "int32", "scale": 0.0001, "access": "R" }, { "name": "Frequency", "group": "Measurements", "area": "input", "address": 50, "type": "uint32", "scale": 0.001, "unit": "Hz", "access": "R" }, { "name": "Equivalent Phase Voltage", "group": "Measurements", "area": "input", "address": 52, "type": "uint32", "scale": 0.01, "unit": "V", "access": "R" }, { "name": "Equivalent Phase-To-Phase Voltage", "group": "Measurements", "area": "input", "address": 54, "type": "uint32", "scale": 0.01, "unit": "V", "access": "R" }, { "name": "Equivalent Current", "group": "Measurements", "area": "input", "address": 56, "type": "uint32", "scale": 0.0001, "unit": "A", "access": "R" }, { "name": "Equivalent Active Power", "group": "Measurements", "area": "input", "address": 58, "type": "int32", "scale": 0.01, "unit": "W", "access": "R" }, { "name": "Equivalent Reactive Power", "group": "Measurements", "area": "input", "address": 60, "type": "int32", "scale": 0.01, "unit": "var", "access": "R" }, { "name": "Equivalent Apparent Power", "group": "Measurements", "area": "input", "address": 62, "type": "uint32", "scale": 0.01, "unit": "VA", "access": "R" }, { "name": "Equivalent Power Factor", "group": "Measurements", "area": "input", "address": 64, "type": "int32", "scale": 0.0001, "access": "R" }, { "name": "Phase-Phase Voltage asymmetry", "group": "Measurements", "area": "input", "address": 66, "type": "uint32", "scale": 0.01, "unit": "%", "access": "R" }, { "name": "Phase-neutral Voltage asymmetry", "group": "Measurements", "area": "input", "address": 68, "type": "uint32", "scale": 0.01, "unit": "%", "access": "R" }, { "name": "Current Asymmetry", "group": "Measurements", "area": "input", "address": 70, "type": "uint32", "scale": 0.01, "unit": "%", "access": "R" }, { "name": "Neutral Current", "group": "Measurements", "area": "input", "address": 72, "type": "uint32", "scale": 0.0001, "unit": "A", "access": "R" }, { "name": "L1 Voltage THD", "group": "Measurements", "area": "input", "address": 84, "type": "uint32", "scale": 0.01, "unit": "%", "access": "R" }, { "name": "L2 Voltage THD", "group": "Measurements", "area": "input", "address": 86, "type": "uint32", "scale": 0.01, "unit": "%", "access": "R" }, { "name": "L3 Voltage THD", "group": "Measurements", "area": "input", "address": 88, "type": "uint32", "scale": 0.01, "unit": "%", "access": "R" }, { "name": "L1 Current THD", "group": "Measurements", "area": "input", "address": 90, "type": "uint32", "scale": 0.01, "unit": "%", "access": "R" }, { "name": "L2 Current THD", "group": "Measurements", "area": "input", "address": 92, "type": "uint32", "scale": 0.01, "unit": "%", "access": "R" }, { "name": "L3 Current THD", "group": "Measurements", "area": "input", "address": 94, "type": "uint32", "scale": 0.01, "unit": "%", "access": "R" }, { "name": "L1-2 Voltage THD", "group": "Measurements", "area": "input", "address": 96, "type": "uint32", "scale": 0.01, "unit": "%", "access": "R" }, { "name": "L2-3 Voltage THD", "group": "Measurements", "area": "input", "address": 98, "type": "uint32", "scale": 0.01, "unit": "%", "access": "R" }, { "name": "L3-1 Voltage THD", "group": "Measurements", "area": "input", "address": 100, "type": "uint32", "scale": 0.01, "unit": "%", "access": "R" }, { "name": "Total imported Active Energy", "group": "Energy", "area": "input", "address": 6688, "type": "uint32", "scale": 0.01, "unit": "kWh", "access": "R" }, { "name": "Total exported Active Energy", "group": "Energy", "area": "input", "address": 6690, "type": "uint32", "scale": 0.01, "unit": "kWh", "access": "R" }, { "name": "Total imported Reactive Energy", "group": "Energy", "area": "input", "address": 6692, "type": "uint32", "scale": 0.01, "unit": "kvarh", "access": "R" }, { "name": "Total exported Reactive Energy", "group": "Energy", "area": "input", "address": 6694, "type": "uint32", "scale": 0.01, "unit": "kvarh", "access": "R" }, { "name": "Total Apparent Energy", "group": "Energy", "area": "input", "address": 6696, "type": "uint32", "scale": 0.01, "unit": "kVAh", "access": "R" }, { "name": "Partial imported Active Energy", "group": "Energy", "area": "input", "address": 6698, "type": "uint32", "scale": 0.01, "unit": "kWh", "access": "R" }, { "name": "Partial exported Active Energy", "group": "Energy", "area": "input", "address": 6700, "type": "uint32", "scale": 0.01, "unit": "kWh", "access": "R" }, { "name": "Partial imported Reactive Energy", "group": "Energy", "area": "input", "address": 6702, "type": "uint32", "scale": 0.01, "unit": "kvarh", "access": "R" }, { "name": "Partial exported Reactive Energy", "group": "Energy", "area": "input", "address": 6704, "type": "uint32", "scale": 0.01, "unit": "kvarh", "access": "R" }, { "name": "Partial Apparent Energy", "group": "Energy", "area": "input", "address": 6706, "type": "uint32", "scale": 0.01, "unit": "kVAh", "access": "R" }, { "name": "Total imported Active Energy (64-bit)", "group": "Energy", "area": "input", "address": 6944, "type": "uint64", "scale": 0.01, "unit": "kWh", "access": "R" }, { "name": "Total exported Active Energy (64-bit)", "group": "Energy", "area": "input", "address": 6948, "type": "uint64", "scale": 0.01, "unit": "kWh", "access": "R" }, { "name": "Total imported Reactive Energy (64-bit)", "group": "Energy", "area": "input", "address": 6952, "type": "uint64", "scale": 0.01, "unit": "kvarh", "access": "R" }, { "name": "Total exported Reactive Energy (64-bit)", "group": "Energy", "area": "input", "address": 6956, "type": "uint64", "scale": 0.01, "unit": "kvarh", "access": "R" }, { "name": "Total Apparent Energy (64-bit)", "group": "Energy", "area": "input", "address": 6960, "type": "uint64", "scale": 0.01, "unit": "kVAh", "access": "R" }, { "name": "Partial imported Active Energy (64-bit)", "group": "Energy", "area": "input", "address": 6964, "type": "uint64", "scale": 0.01, "unit": "kWh", "access": "R" }, { "name": "Partial exported Active Energy (64-bit)", "group": "Energy", "area": "input", "address": 6968, "type": "uint64", "scale": 0.01, "unit": "kWh", "access": "R" }, { "name": "Partial imported Reactive Energy (64-bit)", "group": "Energy", "area": "input", "address": 6972, "type": "uint64", "scale": 0.01, "unit": "kvarh", "access": "R" }, { "name": "Partial exported Reactive Energy (64-bit)", "group": "Energy", "area": "input", "address": 6976, "type": "uint64", "scale": 0.01, "unit": "kvarh", "access": "R" }, { "name": "Partial Apparent Energy (64-bit)", "group": "Energy", "area": "input", "address": 6980, "type": "uint64", "scale": 0.01, "unit": "kVAh", "access": "R" }, { "name": "Imported Active Energy Tariff 1 (64-bit)", "group": "Energy", "area": "input", "address": 6984, "type": "uint64", "scale": 0.01, "unit": "kWh", "access": "R" }, { "name": "Exported Active Energy Tariff 1 (64-bit)", "group": "Energy", "area": "input", "address": 6988, "type": "uint64", "scale": 0.01, "unit": "kWh", "access": "R" }, { "name": "Imported Reactive Energy Tariff 1 (64-bit)", "group": "Energy", "area": "input", "address": 6992, "type": "uint64", "scale": 0.01, "unit": "kvarh", "access": "R" }, { "name": "Exported Reactive Energy Tariff 1 (64-bit)", "group": "Energy", "area": "input", "address": 6996, "type": "uint64", "scale": 0.01, "unit": "kvarh", "access": "R" }, { "name": "Apparent Energy Tariff 1 (64-bit)", "group": "Energy", "area": "input", "address": 7000, "type": "uint64", "scale": 0.01, "unit": "kVAh", "access": "R" }, { "name": "Imported Active Energy Tariff 2 (64-bit)", "group": "Energy", "area": "input", "address": 7004, "type": "uint64", "scale": 0.01, "unit": "kWh", "access": "R" }, { "name": "Apparent Energy Tariff 2 (64-bit)", "group": "Energy", "area": "input", "address": 7020, "type": "uint64", "scale": 0.01, "unit": "kVAh", "access": "R" }, { "name": "Imported Active Energy Tariff 3 (64-bit)", "group": "Energy", "area": "input", "address": 7024, "type": "uint64", "scale": 0.01, "unit": "kWh", "access": "R" }, { "name": "Apparent Energy Tariff 3 (64-bit)", "group": "Energy", "area": "input", "address": 7040, "type": "uint64", "scale": 0.01, "unit": "kVAh", "access": "R" }, { "name": "Imported Active Energy Tariff 4 (64-bit)", "group": "Energy", "area": "input", "address": 7044, "type": "uint64", "scale": 0.01, "unit": "kWh", "access": "R" }, { "name": "Apparent Energy Tariff 4 (64-bit)", "group": "Energy", "area": "input", "address": 7060, "type": "uint64", "scale": 0.01, "unit": "kVAh", "access": "R" }, { "name": "Counter 1", "group": "Counters", "area": "input", "address": 7424, "type": "uint32", "access": "R" }, { "name": "Counter 2", "group": "Counters", "area": "input", "address": 7426, "type": "uint32", "access": "R" }, { "name": "Counter 3", "group": "Counters", "area": "input", "address": 7428, "type": "uint32", "access": "R" }, { "name": "Counter 4", "group": "Counters", "area": "input", "address": 7430, "type": "uint32", "access": "R" }, { "name": "Total Hour meter", "group": "Counters", "area": "input", "address": 7680, "type": "uint32", "unit": "s", "access": "R" }, { "name": "Partial Hour meter", "group": "Counters", "area": "input", "address": 7682, "type": "uint32", "unit": "s", "access": "R" }, { "name": "Input 1", "group": "I/O", "area": "input", "address": 8449, "type": "uint16", "access": "R", "enum": { "0": "Off", "1": "On" } }, { "name": "Input 8", "group": "I/O", "area": "input", "address": 8456, "type": "uint16", "access": "R", "enum": { "0": "Off", "1": "On" } }, { "name": "Output 1", "group": "I/O", "area": "input", "address": 8465, "type": "uint16", "access": "R", "enum": { "0": "Off", "1": "On" } }, { "name": "Output 8", "group": "I/O", "area": "input", "address": 8472, "type": "uint16", "access": "R", "enum": { "0": "Off", "1": "On" } }, { "name": "Alarm 1", "group": "I/O", "area": "input", "address": 8481, "type": "uint16", "access": "R" }, { "name": "Alarm 8", "group": "I/O", "area": "input", "address": 8488, "type": "uint16", "access": "R" }, { "name": "Boolean 1", "group": "I/O", "area": "input", "address": 8497, "type": "uint16", "access": "R", "enum": { "0": "Off", "1": "On" } }, { "name": "Boolean 8", "group": "I/O", "area": "input", "address": 8504, "type": "uint16", "access": "R", "enum": { "0": "Off", "1": "On" } }, { "name": "Limit 1", "group": "I/O", "area": "input", "address": 8513, "type": "uint16", "access": "R", "enum": { "0": "Off", "1": "On" } }, { "name": "Limit 8", "group": "Measurements", "area": "input", "address": 328, "type": "uint16", "access": "R", "enum": { "0": "Off", "1": "On" } }, { "name": "Remote 1", "group": "I/O", "area": "input", "address": 20224, "type": "uint16", "access": "R", "enum": { "0": "Off", "1": "On" } }, { "name": "Remote 8", "group": "I/O", "area": "input", "address": 20231, "type": "uint16", "access": "R", "enum": { "0": "Off", "1": "On" } } ] }