{
  "$schema": "https://raw.githubusercontent.com/nobrega8/mbmap-library/main/schema/mbmap-2.schema.json",
  "mbmap": 2,
  "vendor": "Socomec",
  "model": "DIRIS A-10",
  "models": ["DIRIS A-10"],
  "vendor_website": "https://www.socomec.com",
  "description": "Read-only starter map based on Socomec Modbus tables V200.55 (2017-08). Uses the document's decimal register addresses as literal addresses; verify whether your client expects zero-based offsets before connecting.",
  "revision": 2,
  "source": "https://www.socomec.fr/sites/default/files/2021-05/DIRIS-A10-HTML_COMMUNICATION-TABLE_2017-08_CMT_EN.html",
  "protocol": "tcp+rtu",
  "unit_id": 1,
  "byte_order": "big",
  "word_order": "big",
  "address_base": 0,
  "x_status": "verified",
  "notes": [
    "Tested on a DIRIS A-10, product version 1.1.2 (software version 100, JBUS table version 201), November 2026. Checked: identification, configuration (network type, CT), hour meter, voltages, frequency, currents, total and per-phase power and power factor, and the 32-bit word order (big). The unscaled block at 51280 was not tested."
  ],
  "registers": [
    {"name": "Product order ID", "group": "Identification", "area": "holding", "address": 50004, "type": "uint16", "scale": 1, "offset": 0, "access": "R", "description": "Product order ID; official table V200.55, address 50004"},
    {"name": "Product ID", "group": "Identification", "area": "holding", "address": 50005, "type": "uint16", "scale": 1, "offset": 0, "access": "R", "description": "Product ID; official table V200.55, address 50005"},
    {"name": "JBUS table version", "group": "Identification", "area": "holding", "address": 50006, "type": "uint16", "scale": 1, "offset": 0, "access": "R", "description": "JBUS table version"},
    {"name": "Product software version", "group": "Identification", "area": "holding", "address": 50007, "type": "uint16", "scale": 1, "offset": 0, "access": "R", "description": "Product software version"},
    {"name": "Customization loaded", "group": "Identification", "area": "holding", "address": 50017, "type": "uint16", "scale": 1, "offset": 0, "access": "R", "enum": {"0": "False", "1": "True"}, "description": "Official table lists U8; represented as uint16 because Modbus registers are 16-bit"},
    {"name": "Product version major", "group": "Identification", "area": "holding", "address": 50018, "type": "uint16", "scale": 1, "offset": 0, "access": "R", "description": "Product version major"},
    {"name": "Product version minor", "group": "Identification", "area": "holding", "address": 50019, "type": "uint16", "scale": 1, "offset": 0, "access": "R", "description": "Product version minor"},
    {"name": "Product version revision", "group": "Identification", "area": "holding", "address": 50020, "type": "uint16", "scale": 1, "offset": 0, "access": "R", "description": "Product version revision"},
    {"name": "Product version build", "group": "Identification", "area": "holding", "address": 50021, "type": "uint16", "scale": 1, "offset": 0, "access": "R", "description": "Product version build"},
    {"name": "Network type", "group": "Configuration", "area": "holding", "address": 57344, "type": "uint16", "scale": 1, "offset": 0, "access": "R", "enum": {"0": "1BL", "1": "2BL", "2": "3BL", "3": "3NBL", "4": "4BL", "5": "4NBL"}, "description": "Network setting; read-only in this starter map"},
    {"name": "CT secondary", "group": "Configuration", "area": "holding", "address": 57345, "type": "uint16", "scale": 1, "offset": 0, "unit": "A", "access": "R", "enum": {"1": "1 A", "5": "5 A"}, "description": "Current transformer secondary"},
    {"name": "CT primary", "group": "Configuration", "area": "holding", "address": 57346, "type": "uint16", "scale": 1, "offset": 0, "unit": "A", "access": "R", "description": "Current transformer primary"},
    {"name": "Hour meter", "group": "Measurements", "area": "holding", "address": 50512, "type": "uint32", "scale": 0.01, "offset": 0, "unit": "h", "access": "R", "byte_order": "big", "word_order": "big", "description": "U32, 2 words; raw value divided by 100"},
    {"name": "Voltage L1-L2", "group": "Voltage", "area": "holding", "address": 50514, "type": "uint32", "scale": 0.01, "offset": 0, "unit": "V", "access": "R", "byte_order": "big", "word_order": "big", "description": "U32, 2 words; raw value divided by 100"},
    {"name": "Voltage L2-L3", "group": "Voltage", "area": "holding", "address": 50516, "type": "uint32", "scale": 0.01, "offset": 0, "unit": "V", "access": "R", "byte_order": "big", "word_order": "big", "description": "U32, 2 words; raw value divided by 100"},
    {"name": "Voltage L3-L1", "group": "Voltage", "area": "holding", "address": 50518, "type": "uint32", "scale": 0.01, "offset": 0, "unit": "V", "access": "R", "byte_order": "big", "word_order": "big", "description": "U32, 2 words; raw value divided by 100"},
    {"name": "Voltage L1-N", "group": "Voltage", "area": "holding", "address": 50520, "type": "uint32", "scale": 0.01, "offset": 0, "unit": "V", "access": "R", "byte_order": "big", "word_order": "big", "description": "U32, 2 words; raw value divided by 100"},
    {"name": "Voltage L2-N", "group": "Voltage", "area": "holding", "address": 50522, "type": "uint32", "scale": 0.01, "offset": 0, "unit": "V", "access": "R", "byte_order": "big", "word_order": "big", "description": "U32, 2 words; raw value divided by 100"},
    {"name": "Voltage L3-N", "group": "Voltage", "area": "holding", "address": 50524, "type": "uint32", "scale": 0.01, "offset": 0, "unit": "V", "access": "R", "byte_order": "big", "word_order": "big", "description": "U32, 2 words; raw value divided by 100"},
    {"name": "Frequency", "group": "Measurements", "area": "holding", "address": 50526, "type": "uint32", "scale": 0.01, "offset": 0, "unit": "Hz", "access": "R", "byte_order": "big", "word_order": "big", "description": "U32, 2 words; raw value divided by 100"},
    {"name": "Current L1", "group": "Current", "area": "holding", "address": 50528, "type": "uint32", "scale": 0.001, "offset": 0, "unit": "A", "access": "R", "byte_order": "big", "word_order": "big", "description": "U32, 2 words; raw value divided by 1000"},
    {"name": "Current L2", "group": "Current", "area": "holding", "address": 50530, "type": "uint32", "scale": 0.001, "offset": 0, "unit": "A", "access": "R", "byte_order": "big", "word_order": "big", "description": "U32, 2 words; raw value divided by 1000"},
    {"name": "Current L3", "group": "Current", "area": "holding", "address": 50532, "type": "uint32", "scale": 0.001, "offset": 0, "unit": "A", "access": "R", "byte_order": "big", "word_order": "big", "description": "U32, 2 words; raw value divided by 1000"},
    {"name": "Neutral current", "group": "Current", "area": "holding", "address": 50534, "type": "uint32", "scale": 0.001, "offset": 0, "unit": "A", "access": "R", "byte_order": "big", "word_order": "big", "description": "U32, 2 words; raw value divided by 1000"},
    {"name": "Active power total", "group": "Power", "area": "holding", "address": 50536, "type": "int32", "scale": 10, "offset": 0, "unit": "W", "access": "R", "byte_order": "big", "word_order": "big", "description": "S32; document unit W / 0.1, i.e. raw multiplied by 10"},
    {"name": "Reactive power total", "group": "Power", "area": "holding", "address": 50538, "type": "int32", "scale": 10, "offset": 0, "unit": "var", "access": "R", "byte_order": "big", "word_order": "big", "description": "S32; document unit var / 0.1, i.e. raw multiplied by 10"},
    {"name": "Apparent power total", "group": "Power", "area": "holding", "address": 50540, "type": "uint32", "scale": 10, "offset": 0, "unit": "VA", "access": "R", "byte_order": "big", "word_order": "big", "description": "U32; document unit VA / 0.1, i.e. raw multiplied by 10"},
    {"name": "Power factor", "group": "Power", "area": "holding", "address": 50542, "type": "int32", "scale": 0.001, "offset": 0, "access": "R", "byte_order": "big", "word_order": "big", "description": "S32; raw value divided by 1000; negative=leading, positive=lagging"},
    {"name": "Active power phase 1", "group": "Power", "area": "holding", "address": 50544, "type": "int32", "scale": 10, "offset": 0, "unit": "W", "access": "R", "byte_order": "big", "word_order": "big", "description": "S32; document unit W / 0.1, i.e. raw multiplied by 10"},
    {"name": "Active power phase 2", "group": "Power", "area": "holding", "address": 50546, "type": "int32", "scale": 10, "offset": 0, "unit": "W", "access": "R", "byte_order": "big", "word_order": "big", "description": "S32; document unit W / 0.1, i.e. raw multiplied by 10"},
    {"name": "Active power phase 3", "group": "Power", "area": "holding", "address": 50548, "type": "int32", "scale": 10, "offset": 0, "unit": "W", "access": "R", "byte_order": "big", "word_order": "big", "description": "S32; document unit W / 0.1, i.e. raw multiplied by 10"},
    {"name": "Reactive power phase 1", "group": "Power", "area": "holding", "address": 50550, "type": "int32", "scale": 10, "offset": 0, "unit": "var", "access": "R", "byte_order": "big", "word_order": "big", "description": "S32; document unit var / 0.1, i.e. raw multiplied by 10"},
    {"name": "Reactive power phase 2", "group": "Power", "area": "holding", "address": 50552, "type": "int32", "scale": 10, "offset": 0, "unit": "var", "access": "R", "byte_order": "big", "word_order": "big", "description": "S32; document unit var / 0.1, i.e. raw multiplied by 10"},
    {"name": "Reactive power phase 3", "group": "Power", "area": "holding", "address": 50554, "type": "int32", "scale": 10, "offset": 0, "unit": "var", "access": "R", "byte_order": "big", "word_order": "big", "description": "S32; document unit var / 0.1, i.e. raw multiplied by 10"},
    {"name": "Apparent power phase 1", "group": "Power", "area": "holding", "address": 50556, "type": "uint32", "scale": 10, "offset": 0, "unit": "VA", "access": "R", "byte_order": "big", "word_order": "big", "description": "U32; document unit VA / 0.1, i.e. raw multiplied by 10"},
    {"name": "Apparent power phase 2", "group": "Power", "area": "holding", "address": 50558, "type": "uint32", "scale": 10, "offset": 0, "unit": "VA", "access": "R", "byte_order": "big", "word_order": "big", "description": "U32; document unit VA / 0.1, i.e. raw multiplied by 10"},
    {"name": "Apparent power phase 3", "group": "Power", "area": "holding", "address": 50560, "type": "uint32", "scale": 10, "offset": 0, "unit": "VA", "access": "R", "byte_order": "big", "word_order": "big", "description": "U32; document unit VA / 0.1, i.e. raw multiplied by 10"},
    {"name": "Power factor phase 1", "group": "Power", "area": "holding", "address": 50562, "type": "int32", "scale": 0.001, "offset": 0, "access": "R", "byte_order": "big", "word_order": "big", "description": "S32; raw value divided by 1000"},
    {"name": "Power factor phase 2", "group": "Power", "area": "holding", "address": 50564, "type": "int32", "scale": 0.001, "offset": 0, "access": "R", "byte_order": "big", "word_order": "big", "description": "S32; raw value divided by 1000"},
    {"name": "Power factor phase 3", "group": "Power", "area": "holding", "address": 50566, "type": "int32", "scale": 0.001, "offset": 0, "access": "R", "byte_order": "big", "word_order": "big", "description": "S32; raw value divided by 1000"},
    {"name": "Hour meter (unscaled)", "group": "Measurements", "area": "holding", "address": 51280, "type": "uint16", "scale": 1, "offset": 0, "unit": "h", "access": "R", "description": "No-transformer metrology block; U16"},
    {"name": "Voltage L1-L2 (unscaled)", "group": "Voltage", "area": "holding", "address": 51281, "type": "uint16", "scale": 0.01, "offset": 0, "unit": "V", "access": "R", "description": "No-transformer metrology block; U16, raw value divided by 100"},
    {"name": "Voltage L2-L3 (unscaled)", "group": "Voltage", "area": "holding", "address": 51282, "type": "uint16", "scale": 0.01, "offset": 0, "unit": "V", "access": "R", "description": "No-transformer metrology block; U16, raw value divided by 100"},
    {"name": "Voltage L3-L1 (unscaled)", "group": "Voltage", "area": "holding", "address": 51283, "type": "uint16", "scale": 0.01, "offset": 0, "unit": "V", "access": "R", "description": "No-transformer metrology block; U16, raw value divided by 100"},
    {"name": "Voltage L1-N (unscaled)", "group": "Voltage", "area": "holding", "address": 51284, "type": "uint16", "scale": 0.01, "offset": 0, "unit": "V", "access": "R", "description": "No-transformer metrology block; U16, raw value divided by 100"},
    {"name": "Voltage L2-N (unscaled)", "group": "Voltage", "area": "holding", "address": 51285, "type": "uint16", "scale": 0.01, "offset": 0, "unit": "V", "access": "R", "description": "No-transformer metrology block; U16, raw value divided by 100"},
    {"name": "Voltage L3-N (unscaled)", "group": "Voltage", "area": "holding", "address": 51286, "type": "uint16", "scale": 0.01, "offset": 0, "unit": "V", "access": "R", "description": "No-transformer metrology block; U16, raw value divided by 100"},
    {"name": "Frequency (unscaled)", "group": "Measurements", "area": "holding", "address": 51287, "type": "uint16", "scale": 0.01, "offset": 0, "unit": "Hz", "access": "R", "description": "No-transformer metrology block; U16, raw value divided by 100"},
    {"name": "Current L1 (unscaled)", "group": "Current", "area": "holding", "address": 51288, "type": "uint16", "scale": 0.001, "offset": 0, "unit": "A", "access": "R", "description": "No-transformer metrology block; U16, raw value divided by 1000"},
    {"name": "Current L2 (unscaled)", "group": "Current", "area": "holding", "address": 51289, "type": "uint16", "scale": 0.001, "offset": 0, "unit": "A", "access": "R", "description": "No-transformer metrology block; U16, raw value divided by 1000"},
    {"name": "Current L3 (unscaled)", "group": "Current", "area": "holding", "address": 51290, "type": "uint16", "scale": 0.001, "offset": 0, "unit": "A", "access": "R", "description": "No-transformer metrology block; U16, raw value divided by 1000"}
  ]
}
