So you need to place signals (signals) and blocks (every area on a railway line is in a block, and signalling with signals at the entrances of blocks ensures only one train can be in a block at once - see this Wikipedia article if you don’t know how this works, although I assume you do). An example block and signal is included in the model. The block contains a value object you can ignore called Occupied. However, in each and every signal, you’ll need to:
- use the Block ObjectValue to set which block it ‘protects’ (is at the entrance to)
- use the Autotrigger BoolValue to set whether it is always green or only when a train is coming towards it (set to false if there’s more than one signal ‘protecting’ the block this signal protects, otherwise true)
- add ObjectValues to the ASignals folder for every signal a train can pass as its next signal after this one
Then, if you set Autotrigger to false:
- add ObjectValues to the TBlocks folder for every block that ‘triggers’ the signal to make it turn green
= add ObjectValues to the TSignals folder for every signal that can’t be green when this one is (other signals ‘protecting’ the block)
You can also use the S1-3Enabled BoolValues to decide whether single yellow, double yellow and green signal aspects can be shown (if not, it defaults down - for example, if a signal wants to show green but can’t, it tries to show double yellow - if it can’t, it tries single yellow, and so on). As well as this, the ManualState value effectively overrides everything else (but only down - you can make a green signal red, but not a red signal green), so if you ever implement a manual signalling system you can use that.
The signal also has more value objects - ignore them.
Feel free to ask if you have any more questions!