ics-simlab-config-gen-claude/examples/ied/logic/configuration.json

335 lines
8.9 KiB
JSON

{
"ui":
{
"network":
{
"ip": "192.168.0.111",
"port": 8501,
"docker_network": "vlan1"
}
},
"hmis":
[
],
"plcs":
[
{
"name": "ied",
"logic": "ied.py",
"network":
{
"ip": "192.168.0.21",
"docker_network": "vlan1"
},
"identity":
{
"major_minor_revision": "3.2.5",
"model_name": "ICS123-CPU2025",
"product_code": "ICS-2025",
"product_name": "ICS-SimLab IED PLC",
"vendor_name": "ICS-SimLab",
"vendor_url": "https://github.com/JaxsonBrownie/ICS-SimLab"
},
"inbound_connections":
[
{
"type": "tcp",
"ip": "192.168.0.21",
"port": 502
}
],
"outbound_connections":
[
{
"type": "tcp",
"ip": "192.168.0.11",
"port": 502,
"id": "transformer_con"
},
{
"type": "tcp",
"ip": "192.168.0.12",
"port": 502,
"id": "transformer_voltage_transducer_con"
},
{
"type": "tcp",
"ip": "192.168.0.13",
"port": 502,
"id": "output_voltage_transducer_con"
},
{
"type": "tcp",
"ip": "192.168.0.14",
"port": 502,
"id": "breaker_con"
}
],
"registers":
{
"coil":
[
{
"address": 1,
"count": 1,
"io": "output",
"id": "breaker_control_command"
}
],
"discrete_input":
[
{
"address": 11,
"count": 1,
"io": "input",
"id": "breaker_state"
}
],
"holding_register":
[
{
"address": 21,
"count": 1,
"io": "input",
"id": "tap_change_command"
},
{
"address": 22,
"count": 1,
"io": "output",
"id": "tap_position"
}
],
"input_register":
[
{
"address": 31,
"count": 1,
"io": "input",
"id": "transformer_voltage_reading"
},
{
"address": 32,
"count": 1,
"io": "input",
"id": "output_voltage_reading"
}
]
},
"monitors":
[
{
"outbound_connection_id": "transformer_voltage_transducer_con",
"id": "transformer_voltage_reading",
"value_type": "input_register",
"slave_id": 1,
"address": 31,
"count": 1,
"interval": 0.2
},
{
"outbound_connection_id": "output_voltage_transducer_con",
"id": "output_voltage_reading",
"value_type": "input_register",
"slave_id": 1,
"address": 31,
"count": 1,
"interval": 0.5
}
],
"controllers":
[
{
"outbound_connection_id": "breaker_con",
"id": "breaker_control_command",
"value_type": "coil",
"slave_id": 1,
"address": 1,
"count": 1
},
{
"outbound_connection_id": "transformer_con",
"id": "tap_position",
"value_type": "holding_register",
"slave_id": 1,
"address": 21,
"count": 1
}
]
}
],
"sensors":
[
{
"name": "transformer_voltage_transducer",
"hil": "hil",
"network":
{
"ip": "192.168.0.12",
"docker_network": "vlan1"
},
"inbound_connections":
[
{
"type": "tcp",
"ip": "192.168.0.12",
"port": 502
}
],
"registers":
{
"coil":[],
"discrete_input": [],
"holding_register": [],
"input_register":
[
{
"address": 31,
"count": 1,
"physical_value": "transformer_voltage"
}
]
}
},
{
"name": "output_voltage_transducer",
"hil": "hil",
"network":
{
"ip": "192.168.0.13",
"docker_network": "vlan1"
},
"inbound_connections":
[
{
"type": "tcp",
"ip": "192.168.0.13",
"port": 502
}
],
"registers":
{
"coil":[],
"discrete_input": [],
"holding_register": [],
"input_register":
[
{
"address": 31,
"count": 1,
"physical_value": "output_voltage"
}
]
}
}
],
"actuators":
[
{
"name": "transformer",
"hil": "hil",
"network":
{
"ip": "192.168.0.11",
"docker_network": "vlan1"
},
"inbound_connections":
[
{
"type": "tcp",
"ip": "192.168.0.11",
"port": 502
}
],
"registers":
{
"coil": [],
"discrete_input": [],
"holding_register":
[
{
"address": 21,
"count": 1,
"physical_value": "tap_position"
}
],
"input_register": []
}
},
{
"name": "breaker",
"hil": "hil",
"network":
{
"ip": "192.168.0.14",
"docker_network": "vlan1"
},
"inbound_connections":
[
{
"type": "tcp",
"ip": "192.168.0.14",
"port": 502
}
],
"registers":
{
"coil":
[
{
"address": 1,
"count": 1,
"physical_value": "breaker_state"
}
],
"discrete_input": [],
"holding_register": [],
"input_register": []
}
}
],
"hils":
[
{
"name": "hil",
"logic": "ied_hil.py",
"physical_values":
[
{
"name": "breaker_state",
"io": "input"
},
{
"name": "tap_position",
"io": "input"
},
{
"name": "transformer_voltage",
"io": "output"
},
{
"name": "output_voltage",
"io": "output"
}
]
}
],
"serial_networks":
[
],
"ip_networks":
[
{
"docker_name": "vlan1",
"name": "ics_simlab",
"subnet": "192.168.0.0/24"
}
]
}