Skip to content

Commit

Permalink
Update the design document.
Browse files Browse the repository at this point in the history
  • Loading branch information
LiuYuancheng committed Jul 28, 2023
1 parent 2084535 commit d54f10f
Show file tree
Hide file tree
Showing 5 changed files with 48 additions and 8 deletions.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Railway[Metro] IT/OT System security test platform
# Railway[Metro] IT/OT System Security Test Platform

**Project Design :** We want to create a digital twin type Railway emulation platform to simulate multiple trains running on different tracks with different sensor-signal control for cyber security researchers to demo/test different kind of IT attack's affect on OT system. The system contents 6 main components (programs):
**Project Design :** We want to create a digital twin type Railway system emulation platform to simulate multiple trains running on different tracks with different sensor-signal control for cyber security researchers to demo/test different kind of IT attack's affect on OT system. The system contents 6 main components (programs):

- 2D Railway[Metro] System Real-world Emulator
- Railway System SCADA HMI
Expand Down
Binary file modified doc/designDoc.pptx
Binary file not shown.
Binary file added doc/img/scadaHMI/uidetail.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/img/scadaHMI/workflow.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
52 changes: 46 additions & 6 deletions doc/scadaHMI_readme.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# Railway System SCADA HMI

**Project Design :** We want to create a railway SCADA (Supervisory Control and Data Acquisition program with a HMI (Human Machine Interface ) to provide multiple railway junction and station state monitoring and control with below functions:
**Project Design :** We want to create a railway SCADA (Supervisory Control and Data Acquisition) program with a HMI (Human Machine Interface ) to provide below multiple railway junctions and stations state monitor and control functions:

- Provide PLC (Modbus TCP) connection interface to fetch/set the PLC's register/coils state.
- Visualize the connected PLC's holding register and coils state and the digital I/O state of the PLC.
- Visualize the tracks junction sensor-signal auto-controlling process and the sensor-signal state.
- Visualize the tracks train-station sensor-signal auto-controlling process and the sensor-signal state.
- Provide PLC (Modbus TCP) connection interface to fetch/set the PLCs' register/coils state.
- Visualize the connected PLC's holding register state, coils state and the digital I/O state.
- Visualize the tracks junction the sensor & signal state and sensor-signal auto-controlling process.
- Visualize the tracks train-station sensor & signal state and sensor-signal auto-controlling process .
- Provide the sensors and signals' state overload control (admin engineer debug permission).

[TOC]
Expand All @@ -27,7 +27,7 @@ The Railway System SCADA HMI is part of the Railway IT/OT System security test p

The HMI contents below components and function:

- A train sensors-signal relation map to show sensor state, signal state and the sensors-signals auto control relation ship (tracks-cross-junction and train-stations).
- A train sensors-signal relation map to show sensors state, signals state and the sensors-signals auto control relation ship (tracks-cross-junction and train-stations).
- Three PLC panel to show the junction-sensor-signal control system's Digital Input/Output state, PLC holding register state and the PLC Coils state.
- Three PLC panel to shoe the station-sensor-signal control system's Digital Input/Output state, PLC holding register state and the PLC Coils state.

Expand All @@ -39,3 +39,43 @@ Code Base: https://github.com/LiuYuancheng/Metro_emulator/tree/main/src/scadaEmu

------

### Program design

The program contents 2 main threads:

- Main user interface thread : HMI map to show the junctions and stations' sensor-signal state, junction control PLC set [PLC-00, PLC-01 and PLC-02] state with the digital I/O information, station control PLC set [PLC-03, PLC-04 and PLC-05] state with the digital I/O information.
- PLC Communication thread : communicate with the Railway Junctions Sensor-Signal System Control PLC Simulator and Railway Stations Sensor-Signal System Control PLC Simulator through Modbus TCP to get the OT data.

This is the program modules workflow diagram:

![](img/scadaHMI/workflow.png)



##### User interface design

The program user interface design detail is shown below:

![](img/scadaHMI/uidetail.png)



##### Program module files list

| Idx | Program File | Execution Env | Description |
| ---- | ------------------ | ------------- | ------------------------------------------------------------ |
| 1 | trainHMIConfig.txt | | system config file. |
| 2 | trainCtrlGlobal.py | python 3 | System global file, the system config file's contents will be saved in the global parameters. |
| 3 | trainCtrlPanel.py | python 3 | All the UI function panels module. |
| 4 | trainDataMgr.py | python 3 | This module provides map manger to generate the display panel , data manger to process the PLC data, PLC connector to communicate with PLC. |
| 5 | trainCtrlRun.py | python | Main HMI user interface. |
| | | | |









0 comments on commit d54f10f

Please sign in to comment.