Приложение Г: Эталонный пример конфигурации к АРМА ПЛК

{
  "mega12nw": [
    { "module_type": "DO16_Module", "busAddr" : 51}, 
    { "module_type": "DI16_Module", "busAddr" : 41}, 
    { "module_type": "AI16_Module", "busAddr" : 65}, 
    { "module_type": "AO4_Module", "busAddr" : 81}
  ], 
  "modbus": [
    {
      "module_type": "modbusComMaster",
      "name": "COM1",
      "addr1": 2,
      "com_port": {
        "port": "/dev/ttymxc5",
        "baudrate": 115200,
        "data_bits": 8,
        "parity": "none",
        "stop_bits": 1
      },
      "timeout": 100,
      "count_time_auth_max": 0,
      "time_between_frames": 10,
      "slaves": [
        {
          "name": "Slave7",
          "addr2": 7,
          "additional_address": 7,
          "timeout": 100,
          "channels": [
            {
              "modbus_func": 3,
              "name": "Registers 1-50",
              "addr3": 0,
              "offset": 0,
              "register_count": 50,
              "cycle_time": 100,
              "event_error": true
            }
          ]
        }
      ]
    },
    {
      "module_type": "modbusComSlave",
      "name": "COM2",
      "addr1": 3,
      "com_port": {
        "port": "/dev/ttymxc1",
        "baudrate": 115200,
        "data_bits": 8,
        "parity": "none",
        "stop_bits": 1
      },
      "additional_address": 3,
      "watch_dog_time": 0,
      "discrete_inputs": {
        "name": "DI Channels",
        "addr3": 0,
        "offset": 0,
        "discrete_count": 50
      },
      "coils": {
        "name": "DO Channels",
        "sw_write_allowed": true,
        "addr3": 1,
        "offset": 0,
        "coil_count": 50
      },
      "input_registers": {
        "name": "AI Registers",
        "addr3": 2,
        "offset": 0,
        "register_count": 50
      },
      "holding_registers": {
        "name": "AO Registers",
        "sw_write_allowed": true,
        "addr3": 3,
        "offset": 0,
        "register_count": 50
      }
    },
    {
      "module_type": "modbusComMaster",
      "name": "COM3",
      "addr1": 4,
      "com_port": {
        "port": "/dev/ttymxc2",
        "baudrate": 115200,
        "data_bits": 8,
        "parity": "none",
        "stop_bits": 1
      },
      "timeout": 100,
      "count_time_auth_max": 0,
      "time_between_frames": 10,
      "slaves": [
        {
          "name": "Slave7",
          "addr2": 7,
          "additional_address": 7,
          "timeout": 100,
          "channels": [
            {
              "modbus_func": 3,
              "name": "Registers 1-50",
              "addr3": 0,
              "offset": 0,
              "register_count": 50,
              "cycle_time": 100,
              "event_error": true
            }
          ]
        }
      ]
    },
    {
      "module_type": "modbusComSlave",
      "name": "COM4",
      "addr1": 5,
      "com_port": {
        "port": "/dev/ttymxc3",
        "baudrate": 115200,
        "data_bits": 8,
        "parity": "none",
        "stop_bits": 1
      },
      "additional_address": 3,
      "watch_dog_time": 0,
      "discrete_inputs": {
        "name": "DI Channels",
        "addr3": 0,
        "offset": 0,
        "discrete_count": 50
      },
      "coils": {
        "name": "DO Channels",
        "sw_write_allowed": true,
        "addr3": 1,
        "offset": 0,
        "coil_count": 50
      },
      "input_registers": {
        "name": "AI Registers",
        "addr3": 2,
        "offset": 0,
        "register_count": 50
      },
      "holding_registers": {
        "name": "AO Registers",
        "sw_write_allowed": true,
        "addr3": 3,
        "offset": 0,
        "register_count": 50
      }
    },
    {
      "module_type": "modbusTcpSlave",
      "name": "ETH0",
      "addr1": 6,
      "tcp": {
        "ip": "192.168.5.10",
        "port": 502
      },
      "watch_dog_time": 0,
      "discrete_inputs": {
        "name": "DI Channels",
        "addr3": 0,
        "offset": 0,
        "discrete_count": 50
      },
      "coils": {
        "name": "DO Channels",
        "sw_write_allowed": true,
        "addr3": 1,
        "offset": 0,
        "coil_count": 50
      },
      "input_registers": {
        "name": "AI Registers",
        "addr3": 2,
        "offset": 0,
        "register_count": 50
      },
      "holding_registers": {
        "name": "AO Registers",
        "sw_write_allowed": true,
        "addr3": 3,
        "offset": 0,
        "register_count": 50
      }
    },
    {
      "module_type": "modbusTcpMaster",
      "name": "ETH1",
      "addr1": 7,
      "timeout": 100,
      "count_time_auth_max": 3,
      "time_between_frames": 10,
      "slaves": [
        {
          "name": "Mega12FB",
          "addr2": 3,
		  "additional_address": 3,
          "tcp": {
            "ip": "192.168.1.232",
            "port": 502
          },
          "timeout": 100,
          "channels": [
            {
              "modbus_func": 3,
              "name": "Holding Registers",
              "addr3": 0,
              "offset": 0,
              "register_count": 50,
              "cycle_time": 100,
              "event_error": true
            }
          ]
        }
      ]
    }
  ]
}