{
  "format": "voltrus-modbus-poll-template",
  "version": 1,
  "device": {
    "vendor": "ABB",
    "model": "AZL402 simulator template"
  },
  "page": "https://voltrus.id/registers/abb/azl402-simulator/",
  "source": {
    "title": "Modbus Poll source code, device templates",
    "url": "https://github.com/VoltrusID/voltrus-explorers/blob/main/apps/modbus-poll/src/templates.ts",
    "document": "voltrus-explorers apps/modbus-poll/src/templates.ts at commit 1933046",
    "fetched": "2026-10-24"
  },
  "addressing": "Block addresses are 0-based wire addresses, the ones Modbus Poll shows.",
  "wordOrder": "big",
  "blocks": [
    {
      "name": "pH",
      "address": 200,
      "quantity": 1,
      "type": "float32",
      "area": "holding"
    },
    {
      "name": "ORP",
      "address": 202,
      "quantity": 1,
      "type": "float32",
      "area": "holding"
    },
    {
      "name": "Turbidity",
      "address": 204,
      "quantity": 1,
      "type": "float32",
      "area": "holding"
    },
    {
      "name": "Dissolved_Oxygen",
      "address": 206,
      "quantity": 1,
      "type": "float32",
      "area": "holding"
    },
    {
      "name": "Conductivity",
      "address": 208,
      "quantity": 1,
      "type": "float32",
      "area": "holding"
    },
    {
      "name": "Chlorine_Free",
      "address": 210,
      "quantity": 1,
      "type": "float32",
      "area": "holding"
    },
    {
      "name": "Temperature",
      "address": 212,
      "quantity": 1,
      "type": "float32",
      "area": "holding"
    }
  ],
  "registers": [
    {
      "name": "pH",
      "description": "pH value",
      "addressInManual": 200,
      "address": 200,
      "area": "holding",
      "type": "float32",
      "registers": 2,
      "unit": "pH",
      "scale": 1,
      "access": "RW"
    },
    {
      "name": "ORP",
      "description": "Oxidation-reduction potential",
      "addressInManual": 202,
      "address": 202,
      "area": "holding",
      "type": "float32",
      "registers": 2,
      "unit": "mV",
      "scale": 1,
      "access": "RW"
    },
    {
      "name": "Turbidity",
      "description": "Water turbidity",
      "addressInManual": 204,
      "address": 204,
      "area": "holding",
      "type": "float32",
      "registers": 2,
      "unit": "NTU",
      "scale": 1,
      "access": "RW"
    },
    {
      "name": "Dissolved_Oxygen",
      "description": "Dissolved oxygen concentration",
      "addressInManual": 206,
      "address": 206,
      "area": "holding",
      "type": "float32",
      "registers": 2,
      "unit": "mg/L",
      "scale": 1,
      "access": "RW"
    },
    {
      "name": "Conductivity",
      "description": "Electrical conductivity",
      "addressInManual": 208,
      "address": 208,
      "area": "holding",
      "type": "float32",
      "registers": 2,
      "unit": "µS/cm",
      "scale": 1,
      "access": "RW"
    },
    {
      "name": "Chlorine_Free",
      "description": "Free chlorine residual",
      "addressInManual": 210,
      "address": 210,
      "area": "holding",
      "type": "float32",
      "registers": 2,
      "unit": "mg/L",
      "scale": 1,
      "access": "RW"
    },
    {
      "name": "Temperature",
      "description": "Water temperature",
      "addressInManual": 212,
      "address": 212,
      "area": "holding",
      "type": "float32",
      "registers": 2,
      "unit": "°C",
      "scale": 1,
      "access": "RW"
    }
  ]
}
