The railway automation is divided into four distinct levels (from bottom to top):
- Physical field devices, e.g. turnouts and signals
- Field controllers controlling field devices
- Signal boxes (NodeMCU devkit)
- Remote control (RPi & Codesys)
Devices to be used:
- Codesys PLC running on Raspberry Pi
- NodeMCU devkits and Arduinos
Signal boxes will use NodeMCU devkits. More info here: https://en.wikipedia.org/wiki/NodeMCU. Connection to remote control will be WiFi. Signal boxes will run http server as well. Thus, operator can “step in” to any signal box with a web browser.
Actual field devices (turnouts & signals) will be controlled by field controllers (Arduino Nanos). Connection to signal box is I2C bus. Field controllers have “standard” software – a controller can control either 4 turnouts or 4 signals (I still have to figure out how to standardize signal software). This is for the sake of software integrity.