335 lines
8.9 KiB
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"
|
|
}
|
|
]
|
|
} |