{
  "$schema": "https://raw.githubusercontent.com/nobrega8/mbmap-library/main/schema/mbmap-2.schema.json",
  "mbmap": 2,
  "vendor": "Socomec",
  "model": "Diris A40 / A41 / RS485",
  "models": [
    "Diris A40",
    "Diris A41"
  ],
  "vendor_website": "socomec.com",
  "revision": 3,
  "source": "Socomec, \"DIRIS A40/A41 RS485 - JBUS/MODBUS\" instruction manual, ref. 536 103 A (Portuguese copy, new communication table from 01/2009); https://archive.org/details/manualzilla-id-6063540",
  "notes": [
    "Socomec DIRIS A40 / A41 with RS485 JBUS/MODBUS, new communication table (devices sold from 2009).",
    "Addresses are as sent on the bus (hex C550 is decimal 50512). Values are 32-bit, high word first; scaling is applied through the register scale.",
    "Only part of the manual's tables is mapped: main measurements, energies and the first average values. Pulse counters, maxima, harmonics and the old pre-2009 table are not included."
  ],
  "byte_order": "big",
  "word_order": "big",
  "address_base": 0,
  "x_status": "official",
  "revised": "2026-11-10",
  "sources": [
    {
      "title": "DIRIS A40/A41 RS485 - JBUS/MODBUS (Manual de instruções)",
      "version": "536 103 A",
      "url": "https://archive.org/details/manualzilla-id-6063540",
      "note": "tables C550, C650, C750 (new table from 01/2009)"
    }
  ],
  "registers": [
    {"name": "Hour meter", "group": "Measurements", "area": "holding", "address": 50512, "type": "uint32", "unit": "h", "scale": 0.01, "access": "R"},
    {"name": "Voltage U12", "group": "Measurements", "area": "holding", "address": 50514, "type": "uint32", "unit": "V", "scale": 0.01, "access": "R"},
    {"name": "Voltage U23", "group": "Measurements", "area": "holding", "address": 50516, "type": "uint32", "unit": "V", "scale": 0.01, "access": "R"},
    {"name": "Voltage U31", "group": "Measurements", "area": "holding", "address": 50518, "type": "uint32", "unit": "V", "scale": 0.01, "access": "R"},
    {"name": "Voltage V1", "group": "Measurements", "area": "holding", "address": 50520, "type": "uint32", "unit": "V", "scale": 0.01, "access": "R"},
    {"name": "Voltage V2", "group": "Measurements", "area": "holding", "address": 50522, "type": "uint32", "unit": "V", "scale": 0.01, "access": "R"},
    {"name": "Voltage V3", "group": "Measurements", "area": "holding", "address": 50524, "type": "uint32", "unit": "V", "scale": 0.01, "access": "R"},
    {"name": "Frequency", "group": "Measurements", "area": "holding", "address": 50526, "type": "uint32", "unit": "Hz", "scale": 0.01, "access": "R"},
    {"name": "Current I1", "group": "Measurements", "area": "holding", "address": 50528, "type": "uint32", "unit": "mA", "access": "R"},
    {"name": "Current I2", "group": "Measurements", "area": "holding", "address": 50530, "type": "uint32", "unit": "mA", "access": "R"},
    {"name": "Current I3", "group": "Measurements", "area": "holding", "address": 50532, "type": "uint32", "unit": "mA", "access": "R"},
    {"name": "Neutral current In", "group": "Measurements", "area": "holding", "address": 50534, "type": "uint32", "unit": "mA", "access": "R"},
    {"name": "Active power total", "group": "Measurements", "area": "holding", "address": 50536, "type": "int32", "unit": "kW", "scale": 0.01, "access": "R"},
    {"name": "Reactive power total", "group": "Measurements", "area": "holding", "address": 50538, "type": "int32", "unit": "kvar", "scale": 0.01, "access": "R"},
    {"name": "Apparent power total", "group": "Measurements", "area": "holding", "address": 50540, "type": "uint32", "unit": "kVA", "scale": 0.01, "access": "R"},
    {"name": "Power factor total", "group": "Measurements", "area": "holding", "address": 50542, "type": "int32", "scale": 0.001, "access": "R"},
    {"name": "Active power phase 1", "group": "Measurements", "area": "holding", "address": 50544, "type": "int32", "unit": "kW", "scale": 0.01, "access": "R"},
    {"name": "Active power phase 2", "group": "Measurements", "area": "holding", "address": 50546, "type": "int32", "unit": "kW", "scale": 0.01, "access": "R"},
    {"name": "Active power phase 3", "group": "Measurements", "area": "holding", "address": 50548, "type": "int32", "unit": "kW", "scale": 0.01, "access": "R"},
    {"name": "Reactive power phase 1", "group": "Measurements", "area": "holding", "address": 50550, "type": "int32", "unit": "kvar", "scale": 0.01, "access": "R"},
    {"name": "Reactive power phase 2", "group": "Measurements", "area": "holding", "address": 50552, "type": "int32", "unit": "kvar", "scale": 0.01, "access": "R"},
    {"name": "Reactive power phase 3", "group": "Measurements", "area": "holding", "address": 50554, "type": "int32", "unit": "kvar", "scale": 0.01, "access": "R"},
    {"name": "Apparent power phase 1", "group": "Measurements", "area": "holding", "address": 50556, "type": "uint32", "unit": "kVA", "scale": 0.01, "access": "R"},
    {"name": "Apparent power phase 2", "group": "Measurements", "area": "holding", "address": 50558, "type": "uint32", "unit": "kVA", "scale": 0.01, "access": "R"},
    {"name": "Apparent power phase 3", "group": "Measurements", "area": "holding", "address": 50560, "type": "uint32", "unit": "kVA", "scale": 0.01, "access": "R"},
    {"name": "Power factor phase 1", "group": "Measurements", "area": "holding", "address": 50562, "type": "int32", "scale": 0.001, "access": "R"},
    {"name": "Power factor phase 2", "group": "Measurements", "area": "holding", "address": 50564, "type": "int32", "scale": 0.001, "access": "R"},
    {"name": "Power factor phase 3", "group": "Measurements", "area": "holding", "address": 50566, "type": "int32", "scale": 0.001, "access": "R"},
    {"name": "Hour meter (energy table)", "group": "Energy", "area": "holding", "address": 50768, "type": "uint32", "unit": "h", "scale": 0.01, "access": "R"},
    {"name": "Active energy +", "group": "Energy", "area": "holding", "address": 50770, "type": "uint32", "unit": "kWh", "access": "R"},
    {"name": "Reactive energy +", "group": "Energy", "area": "holding", "address": 50772, "type": "uint32", "unit": "kvarh", "access": "R"},
    {"name": "Apparent energy", "group": "Energy", "area": "holding", "address": 50774, "type": "uint32", "unit": "kVAh", "access": "R"},
    {"name": "Active energy -", "group": "Energy", "area": "holding", "address": 50776, "type": "uint32", "unit": "kWh", "access": "R"},
    {"name": "Reactive energy -", "group": "Energy", "area": "holding", "address": 50778, "type": "uint32", "unit": "kvarh", "access": "R"},
    {"name": "Predicted active power", "group": "Energy", "area": "holding", "address": 50802, "type": "int32", "unit": "kW", "scale": 0.01, "access": "R"},
    {"name": "Predicted reactive power", "group": "Energy", "area": "holding", "address": 50804, "type": "int32", "unit": "kvar", "scale": 0.01, "access": "R"},
    {"name": "Predicted apparent power", "group": "Energy", "area": "holding", "address": 50806, "type": "uint32", "unit": "kVA", "scale": 0.01, "access": "R"},
    {"name": "Average U12", "group": "Averages", "area": "holding", "address": 51024, "type": "uint32", "unit": "V", "scale": 0.01, "access": "R"},
    {"name": "Average U23", "group": "Averages", "area": "holding", "address": 51026, "type": "uint32", "unit": "V", "scale": 0.01, "access": "R"},
    {"name": "Average U31", "group": "Averages", "area": "holding", "address": 51028, "type": "uint32", "unit": "V", "scale": 0.01, "access": "R"},
    {"name": "Average V1", "group": "Averages", "area": "holding", "address": 51030, "type": "uint32", "unit": "V", "scale": 0.01, "access": "R"},
    {"name": "Average V2", "group": "Averages", "area": "holding", "address": 51032, "type": "uint32", "unit": "V", "scale": 0.01, "access": "R"},
    {"name": "Average V3", "group": "Averages", "area": "holding", "address": 51034, "type": "uint32", "unit": "V", "scale": 0.01, "access": "R"},
    {"name": "Average frequency", "group": "Averages", "area": "holding", "address": 51036, "type": "uint32", "unit": "Hz", "scale": 0.01, "access": "R"},
    {"name": "Average I1", "group": "Averages", "area": "holding", "address": 51038, "type": "uint32", "unit": "mA", "access": "R"},
    {"name": "Average I2", "group": "Averages", "area": "holding", "address": 51040, "type": "uint32", "unit": "mA", "access": "R"},
    {"name": "Average I3", "group": "Averages", "area": "holding", "address": 51042, "type": "uint32", "unit": "mA", "access": "R"},
    {"name": "Average In", "group": "Averages", "area": "holding", "address": 51044, "type": "uint32", "unit": "mA", "access": "R"}
  ]
}
