FBSS Signalling
Overview
The Fixed Block Signalling System (FBSS) is the core signalling framework in Railux 6 Ultra. It divides the railway into discrete blocks, each monitored by a signal. Trains are only permitted to enter a block if it is clear, ensuring safety and efficient traffic flow. All signals and logic are centrally managed for reliability and scalability.
How FBSS Works
Track is split into blocks: Each block is protected by a signal.
Signal aspects (Red, Yellow, Green, etc.): Indicate the status of the block ahead to train drivers and automated systems.
Multi-directional & multi-block linking: Each signal can reference its next and one or more previous blocks, supporting complex track layouts such as junctions or merges.
Centralised control: All logic and state updates are handled by a main script (
FBSS_Main) for consistency across the network.
Folder Structure (Typical)
RailuxFBSS_Signalling/
│
├── A202/
│ └── API/
│ ├── AlwaysYellow
│ ├── CurrentSignal
│ ├── DebounceDuration
│ ├── NextBlock
│ ├── PreviousBlock
│ ├── PreviousBlock (additional for multi-block support)
│
├── Lights/
├── Sensors/
└── FBSS_MainAPI Reference (Per Signal/Block)
Each block or signal has an API folder containing the following objects:
AlwaysYellow
BoolValue
If true, this signal always shows yellow (used for cautionary or approach signals).
CurrentSignal
StringValue
The current aspect (e.g., Red, Yellow, Green). Used by scripts and signal lights.
DebounceDuration
Number
The minimum time (seconds) before this signal can change again (prevents rapid toggling).
NextBlock
Object
Reference to the next block (the block this signal protects).
PreviousBlock(s)
Object(s)
Reference(s) to one or more previous blocks feeding into this block (for junctions, merges).
Note:
Multiple
PreviousBlockobjects are permitted for complex track layouts.Scripts should iterate through all
PreviousBlockentries to determine occupancy or status for this signal.
Example: Multi-Previous Block Support
For a signal at a junction where two tracks merge, you might have:
API/
├── AlwaysYellow
├── CurrentSignal
├── DebounceDuration
├── NextBlock
├── PreviousBlock (for Track 1)
├── PreviousBlock (for Track 2)Scripts should check both PreviousBlock references to determine if either incoming track is occupied before clearing the signal.
Signal Aspects (Typical Values)
Red
Red
Stop
Yellow
Yellow
Caution
Green
Green
Proceed
Typical Usage
Place a folder for each signal/block under
RailuxFBSS_Signalling(e.g.,A202,A203).Configure each signal’s
APIfolder as above.The main script (
FBSS_Main) will read and update each signal’s state based on block occupancy and the state of neighbouring blocks.
Example API Setup for a Block
A202/
└── API/
├── AlwaysYellow -- BoolValue
├── CurrentSignal -- IntValue
├── DebounceDuration -- NumberValue
├── NextBlock -- ObjectValue (points to next block)
├── PreviousBlock -- ObjectValue (points to previous block 1)
├── PreviousBlock -- ObjectValue (points to previous block 2, if junction)Scripting Notes
Iterate over all PreviousBlock values when determining if a block is clear, especially at junctions or merges.
DebounceDuration should be tuned to prevent rapid aspect changes in busy areas.
AlwaysYellow can be used for approach or distant signals as required by route design.
Best Practices
Use unique names for each block/signal folder (e.g.,
A202,A203).Clearly link
NextBlockand all relevantPreviousBlockreferences for every signal.Test complex junctions to ensure all possible routes are correctly protected.
Last updated