Wednesday, October 20, 2021

Proper Signal Status through Digital Magic

 Okay, I may be 'overselling' this blog post via the title, but this is something that has annoyed me for a long, long time.  And that's when certain signal aspects appear and when they change, something not easy to model on a railroad that features semaphore signals.  

The photo above shows the Swiss CE6/8 II waiting for the signal to change so it can proceed.  The shorter signal with the orange circle directly in front of the taller one is the advanced signal, which tells the train driver what the next signal 'down the line' is showing, in other words, telling the train driver whether to expect to stop or expect to proceed.  The home signal behind that one protects the track directly ahead of the train, and indicates to the train driver whether they can proceed into that section of track or not.

Mechanical signals, in this case semaphore signals, are operated using long cables (at least two, one for 'halt' and one for 'proceed' for a two-aspect signal) that run from a central location in the station or a small hut out on the railway line to each and every signal.  Pulleys, tensioning mechanisms, and guides are used to guide the cables to their destination, which can be a respectable distance away.  The image below shows a few tensioners, big weights carefully designed to make sure the cables are always taut.  You can see the cables in the image near the ground if you look closely, and a set of cable guides near the bottom left-hand corner of the image.  


When you think about railroading using semaphore signals, you have to imagine the poor guy (or gal) in the signal house / tower having to throw those big heavy levers to change the signal aspect.  It's not like modern light signals that operate automatically or with the push of a button.  Also, the signal operator then needs to let the next signalman up the line know a train is approaching, and also let the 'previous' signalman know that the train has passed, so that signalman knows the track ahead is clear for the next train.  As such, there are some operational effects that I discovered are fairly difficult to mimic in model railroading.  Specifically:

 1) Signals don't automatically switch from 'stop' to 'proceed' as soon as the block (the section of track to the next signal) ahead is clear.  Instead, they switch when the block ahead is clear and a train is expected.  In actuality, the signalman gets the notification (by telegraph or phone) that a train just left the previous station and is headed their way.  That would be their trigger to throw whatever levers were necessary for switches and signals for that train's arrival and/or departure.

2) In most cases, individual levers control advanced signals and home signals.  So they would not move at the same time.  The operator would need to throw one, then the other.

3) Semaphore signals don't necessarily go back to 'Halt' the second the train passes.  The signalman will likely have prioritized cranking the railroad crossing gates back up first, or notifying the switchmen both ahead and behind them of the train's approach and clearing the previous block of track.  

4) Although the advanced signal should not be thrown to 'halt' as soon as the train has departed but only when it reaches the next block, signal operators would generally throw the lever for the advance signal right after throwing the lever for the home signal to 'halt'.  The same goes for the advance signal if the track ahead was clear.  Easier to do them together, I suppose.


Given those conditions, it's pretty hard to make a realistic simulation on a model railroad.  That is, unless you have software that can accommodate, which I do.  The easiest part was to simulate the time it takes for the signal operator to throw one lever, walk over to the other lever, and throw that.  Thanks to having 51 different sensors all being read by the computer and software, I can have the home signal throw to 'halt' a little while after the train has passed, and then have the advance signal throw to 'halt' when the train reaches the next sensor, about another five seconds later.  That takes care of items 2, 3, and 4.  Item 1 is achieved through conditional operation in the software.  Basically you tell the software, "turn the signal green only if a train just entered the previous block (by tripping a sensor) and if the block of track ahead of the signal is clear."  

When I completed the programming for item #1 I began to discover other applications of that kind of logic.  Stay tuned for a future blog where I discover how to use conditional logic to have certain train categories stop in the station and others not, plus automatic station announcements based on train activity...