Skip to content

Commit

Permalink
Created the scada-hmi read me and update the main read me file.
Browse files Browse the repository at this point in the history
  • Loading branch information
LiuYuancheng committed Jul 28, 2023
1 parent bf1a780 commit 2084535
Show file tree
Hide file tree
Showing 10 changed files with 108 additions and 24 deletions.
76 changes: 52 additions & 24 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,77 +1,105 @@
# Metro_Railway_System_Emulator
# Railway[Metro] IT/OT System security test platform

**Project Design :** We want to create a digital twin type Metro emulation system to simulate multiple trains running on different tracks with the control signals. The system contents 3 parts:
**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):

- Metro railway signal system real word emulator (2D).
- 2D Railway[Metro] System Real-world Emulator
- Railway System SCADA HMI
- Railway System Trains Controller HMI
- Railway Junctions Sensor-Signal System Control PLC Simulator
- Railway Stations Sensor-Signal System Control PLC Simulator
- Railway Trains Sensor-Power System Control PLC Simulator

- HMI and SCADA system for railway and train control.
- PLC and latching relay emulators.
[TOC]

------

### Introduction

2D Railway[Metro] System real-world emulator UI:
Railway[Metro] IT/OT System security test platform is build by 6 main components (introduced in the program design) under below structure:

![](doc/interface.png)
![](doc/img/networkCommDesign.png)

The detail introduction of each component is shown below:


SCADA-HMI UI

![](doc/hmiUI.png)
#### 1. 2D Railway[Metro] System Real-world Emulator

2D Railway[Metro] System real-world emulator UI:

![](doc/video/connectionHub5.gif)

Train Power Controller UI
2D Railway[Metro] System real-world emulator UI detailed software design document: [link](doc/metroEmuUI_readme.md)

![](doc/traincontroller.png)


#### 2. Railway System SCADA HMI

------
Railway System SCADA HMI UI :

![](doc/video/scadaHmi.gif)

Railway System SCADA HMI detailed software design document: [link](doc/scadaHMI_readme.md)

### System Design

The 3 parts will follow below work flow:

#### System network design
#### 3. Railway System Trains Controller HMI

![](doc/img/networkDesign.png)
Railway System Trains Controller HMI UI

#### System data communication network design
![](doc/video/trainsHmi.gif)

![](doc/img/networkCommDesign.png)
Railway System Trains Controller HMI detailed software design document: [link](doc/trainsCtrlHMI.md)



Signal system PLC ladder diagrams set
#### 4. Railway Junctions Sensor-Signal System Control PLC Simulator

PLCs set Digital I/O connection and the Ladder logic:

![](doc/img/signalPlc.png)

Railway Junctions Sensor-Signal System Control PLC Simulator detailed software design document: [link](doc/sensorsPLCSimu_readme.md)



#### 5. Railway Stations Sensor-Signal System Control PLC Simulator

Station system PLC ladder diagram set:
PLCs set Digital I/O connection and the Ladder logic:

![](doc/img/stationPlc.png)

Train control PLC config:
Railway Stations Sensor-Signal System Control PLC Simulator detailed software design document: [link](doc/stationPLCSimu_readme.md)



#### 6. Railway Trains Sensor-Power System Control PLC Simulator

PLCs set Digital I/O connection and the Ladder logic:

![](doc/img/trainPlc.png)

For each sensors-Signal set, the circuit logic is below:
Railway Trains Sensor-Power System Control PLC Simulator detailed software design document: [link](doc/trainsPlcSimu_readme.md)

![](doc/circuit_logic2.png)


**Program version:** `v0.1.2`

Verify circuit logic: https://www.circuit-diagram.org/editor/
Code base: https://github.com/LiuYuancheng/Metro_emulator/tree/main/src

------

### System Design

The 3 parts will follow below work flow:

#### System network design

![](doc/img/networkDesign.png)

Verify circuit logic: https://www.circuit-diagram.org/editor/

[Under progress ]



Expand Down
15 changes: 15 additions & 0 deletions deployAnsible/RailwaySystem_Realworld_Emulator.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,3 +48,18 @@
- name: Copy the file from master to mwiapp02
copy: src=buffer/app01-to-app02.jar dest=/tmp/
when: "{{ inventory_hostname == 'mwiapp02' }}"




- name: Copy config file from ansible host to VM
hosts: '{{ target-vm-name }}'
tasks:
- name: Copying the config file
become: true
copy:
src: '{{host-config-file-path}}'
dest: '{{git-cloned-file-path}}'
owner: XS23-RAIL
group: XS23-RAIL

Binary file modified doc/designDoc.pptx
Binary file not shown.
Binary file modified doc/hmiUI.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 modified doc/img/networkCommDesign.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 modified doc/img/networkDesign.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
41 changes: 41 additions & 0 deletions doc/scadaHMI_readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# 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:

- 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 the sensors and signals' state overload control (admin engineer debug permission).

[TOC]

------

### Introduction

The Railway System SCADA HMI is part of the Railway IT/OT System security test platform. It is used to monitor the whole railway tracks sensors-signal auto control system. You can refer the system topology diagram to check its function in the system by below link:

- [Railway IT/OT System security test platform system structure diagram](img/networkCommDesign.png)
- [Railway IT/OT System security test platform network topology diagram](img/networkDesign.png)



**Railway System SCADA HMI User Interface**

![](video/scadaHmi.gif)

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).
- 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.

**Program version:** `v0.1.2`

Code Base: https://github.com/LiuYuancheng/Metro_emulator/tree/main/src/scadaEmuUI



------

Binary file modified doc/traincontroller.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/video/scadaHmi.gif
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 src/scadaEmuUI/img/plcIcon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 2084535

Please sign in to comment.