{
  "$schema": "https://raw.githubusercontent.com/nobrega8/mbmap-library/main/schema/mbmap-2.schema.json",
  "mbmap": 2,
  "vendor": "Mikro",
  "model": "DPM680",
  "models": ["DPM680"],
  "revision": 2,
  "vendor_website": "itmikro.com.my",
  "source": "Modbus Database (Jibril Sharafi, MIT licence), table mikro/dpm680; https://www.aggsoft.com/serial-data-logger/tutorials/modbus-data-logging/mikro-dpm680.htm. Not verified against the manufacturer's documentation",
  "notes": [
    "Mikro DPM680.",
    "Converted automatically from the Modbus Database (MIT licence, Jibril Sharafi).",
    "Not verified against the manufacturer's documentation. The byte order is a guess: the source does not give one.",
    "Corrections are welcome (CONTRIBUTING.md). Change x_status once this table has been checked against the manual."
  ],
  "byte_order": "big",
  "word_order": "big",
  "address_base": 0,
  "x_status": "unofficial",
  "x_origin": "modbus-database",
  "registers": [
    {"name": "Device type sub", "area": "holding", "address": 3, "type": "uint16", "access": "R", "description": "unit: x0000"},
    {"name": "Version number main", "area": "holding", "address": 4, "type": "uint16", "access": "R", "description": "unit: x0000 ; 0x0002"},
    {"name": "Version number sub", "area": "holding", "address": 6, "type": "uint16", "access": "R", "description": "unit: x0000 ; 0x0000"},
    {"name": "Parity selection", "area": "holding", "address": 1001, "type": "uint16", "access": "R", "description": "unit: =none, 1 stop bit 1=none, 2 stop bit 2=odd, 1 stop bit 3=even, 1 stop bit"},
    {"name": "Baudrate selection", "area": "holding", "address": 1002, "type": "uint16", "access": "R", "description": "unit: =300 2=600 3=1200 4=2400 5=4800 6=9600 7=19200 8=38400"},
    {"name": "Ip address", "area": "holding", "address": 1003, "type": "uint16", "access": "R", "description": "unit: x00 | 0x00 ; 0x00 | 0x00"},
    {"name": "Subnet mask", "area": "holding", "address": 1005, "type": "uint16", "access": "R", "description": "unit: x00 | 0x00 ; 0x00 | 0x00"},
    {"name": "Real energy", "area": "holding", "address": 4000, "type": "int64", "unit": "Wh", "access": "R"},
    {"name": "Apparent energy", "area": "holding", "address": 4004, "type": "int64", "unit": "VAh", "access": "R"},
    {"name": "Reactive energy", "area": "holding", "address": 4008, "type": "int64", "unit": "varh", "access": "R"},
    {"name": "Total real power", "area": "holding", "address": 4012, "type": "int32", "unit": "W", "access": "R"},
    {"name": "Total apparent power", "area": "holding", "address": 4014, "type": "int32", "unit": "VA", "access": "R"},
    {"name": "Total reactive power", "area": "holding", "address": 4016, "type": "int32", "unit": "var", "access": "R"},
    {"name": "Total power factor", "area": "holding", "address": 4018, "type": "uint16", "access": "R", "description": "unit: 1"},
    {"name": "Frequency", "area": "holding", "address": 4019, "type": "uint16", "unit": "Hz", "access": "R"},
    {"name": "Instantaneous current A", "area": "holding", "address": 4020, "type": "uint32", "unit": "A", "access": "R"},
    {"name": "Instantaneous current B", "area": "holding", "address": 4022, "type": "uint32", "unit": "A", "access": "R"},
    {"name": "Instantaneous current C", "area": "holding", "address": 4024, "type": "uint32", "unit": "A", "access": "R"},
    {"name": "Instantaneous current N", "area": "holding", "address": 4026, "type": "uint32", "unit": "A", "access": "R"},
    {"name": "Voltage line ab", "area": "holding", "address": 4028, "type": "uint32", "unit": "V", "access": "R"},
    {"name": "Voltage line bc", "area": "holding", "address": 4030, "type": "uint32", "unit": "V", "access": "R"},
    {"name": "Voltage line ac", "area": "holding", "address": 4032, "type": "uint32", "unit": "V", "access": "R"},
    {"name": "Voltage phase an", "area": "holding", "address": 4034, "type": "uint32", "unit": "V", "access": "R"},
    {"name": "Voltage phase bn", "area": "holding", "address": 4036, "type": "uint32", "unit": "V", "access": "R"},
    {"name": "Voltage phase cn", "area": "holding", "address": 4038, "type": "uint32", "unit": "V", "access": "R"},
    {"name": "Real power A", "area": "holding", "address": 4040, "type": "int32", "unit": "W", "access": "R"},
    {"name": "Real power B", "area": "holding", "address": 4042, "type": "int32", "unit": "W", "access": "R"},
    {"name": "Real power C", "area": "holding", "address": 4044, "type": "int32", "unit": "W", "access": "R"},
    {"name": "Apparent power A", "area": "holding", "address": 4046, "type": "int32", "unit": "VA", "access": "R"},
    {"name": "Apparent power B", "area": "holding", "address": 4048, "type": "int32", "unit": "VA", "access": "R"},
    {"name": "Apparent power C", "area": "holding", "address": 4050, "type": "int32", "unit": "VA", "access": "R"},
    {"name": "Reactive power A", "area": "holding", "address": 4052, "type": "int32", "unit": "var", "access": "R"},
    {"name": "Reactive power B", "area": "holding", "address": 4054, "type": "int32", "unit": "var", "access": "R"},
    {"name": "Reactive power C", "area": "holding", "address": 4056, "type": "int32", "unit": "var", "access": "R"},
    {"name": "Current demand A", "area": "holding", "address": 4058, "type": "uint32", "unit": "A", "access": "R"},
    {"name": "Current demand B", "area": "holding", "address": 4060, "type": "uint32", "unit": "A", "access": "R"},
    {"name": "Current demand C", "area": "holding", "address": 4062, "type": "uint32", "unit": "A", "access": "R"},
    {"name": "Real power demand", "area": "holding", "address": 4064, "type": "int32", "unit": "W", "access": "R"},
    {"name": "Reactive power demand", "area": "holding", "address": 4066, "type": "int32", "unit": "var", "access": "R"},
    {"name": "Apparent power demand", "area": "holding", "address": 4068, "type": "int32", "unit": "VA", "access": "R"},
    {"name": "Positive sequence current", "area": "holding", "address": 4070, "type": "uint32", "unit": "A", "access": "R"},
    {"name": "Negative sequence current", "area": "holding", "address": 4072, "type": "uint32", "unit": "A", "access": "R"},
    {"name": "Zero sequence current", "area": "holding", "address": 4074, "type": "uint32", "unit": "A", "access": "R"},
    {"name": "Positive sequence phase voltage", "area": "holding", "address": 4076, "type": "uint32", "unit": "V", "access": "R"},
    {"name": "Negative sequence phase voltage", "area": "holding", "address": 4078, "type": "uint32", "unit": "V", "access": "R"},
    {"name": "Zero sequence phase voltage", "area": "holding", "address": 4080, "type": "uint32", "unit": "V", "access": "R"},
    {"name": "Current thd A", "area": "holding", "address": 4082, "type": "uint16", "unit": "%", "access": "R"},
    {"name": "Current thd B", "area": "holding", "address": 4083, "type": "uint16", "unit": "%", "access": "R"},
    {"name": "Current thd C", "area": "holding", "address": 4084, "type": "uint16", "unit": "%", "access": "R"},
    {"name": "Voltage thd A", "area": "holding", "address": 4085, "type": "uint16", "unit": "%", "access": "R"}
  ]
}
