Train Following .. where is my train?
Modern DCC control systems (which is a combination of Command Station, feedback and train control software) have the ability to keep track of which trains are where.
Some control systems use local identification systems to decide which train is arriving and then decide what to do with it.
This is of course very restrictive and a better solution is generally to keep track of where each train is so that fully informed decisions may be made regarding its routing.
In general there are a few ways of tracking trains :
- Having the train ‘know’ where it is, and pass that information to control center
- Having the track detect the trains and then passing the information to the control center
- Using trackside or external systems such as GPS, RFID, Wireless, Sonar and block detection to detect the presence of a train or rolling stock
Systems based on “intelligent tracks” are very rare and is mostly impractical to model.
Trackside detection systems are the most efficient solution for model railroads.
Block Detection is most commonly used, wile technologies such as GPS is not suitable for use with indoor model railroads.
There are two basic ways of representing a trains location:
- One is to have some location identity associated with each train
- The other is to have a train identity associated with each track section
The most popular method implemented is the second option and is safer and more efficient.
It is easier to get confused with the strategy of storing locations against trains as you might have two trains in the same location.
Also the most common information you need is ‘which train is here’, in order to decide what you are going to do with that train.
So therefore the key information for following trains is having a train identity against each section of track. If we ignore for now how these identities are made and allocated when a train is first placed on the track, and just concentrate on keeping track of just a train number.
Naturally the train identity itself does not of itself tell us much, but all the other train related information we might want (such as route, type, length, power settings etc.) could be stored in arrays, indexed by train number. This means that the higher layers of control software can retrieve the information about a train sitting on a given track by using the train number stored against that track. For example the progressive route selection logic might look at the train numbers of the reserved sections to deduce when to reserve the next set of track, and when to release the track the train has passed.