logoalt Hacker News

red_admiral • yesterday at 3:50 PM • 0 replies • view on HN

The German signalling is built around _Fahrstrassen_, literally 'roads to drive on'. Each one has a start and end point, and the station designer comes up with the ones to implement like 'from entry signal X to platform 1'. These 'roads' are usually a strict subset of the physically possible settings of all the switches.

In the old mechanical lever boxes, there were three kinds of levers: 'elements' (switches, derailers, gates), 'roads' and signals. To let a train move along a road, you first had to set all its elements correctly, and the road lever would only unlock when this was done. Pulling the road lever would also lock the associated elements in place. Then, you could 'open' the signal lever associated with the road, which is only unlocked when the road lever is pulled.

The interface in the page is built of modular components for elements and signals, which behind the scenes are connected to 'road' circuits. You select a road by holding the button at the start and pressing the one at the end. This tries to set up all elements along the road correctly, locks them electrically (with relays) if this succeeds, and then switches the signal at the start of the road. Obviously, the safety property is that you cannot set a road (or an individual element) while it is locked by another road, and no two roads can ever conflict with each other.

Of course, there are 'emergency overrides' for when components are malfunctioning, and strict protocols for using them - for example, not this way: https://en.wikipedia.org/wiki/Bad_Aibling_rail_accident