Video Gallery  


Who's Online  

We have 36 guests and no members online


Monday, March 10, 2008

updated 4-16-2008

This entry and language is based around the CTI-Electronics solution. It may apply to other product solutions as well.

For those unaware of a CTI beacon, it is a set of pointers that one 'loads' with a locomotive number that then follows the physical location of the loco. (we are required to write explicit code to move the loco.)

I'm focused on how to detect error conditions on my layout, stuff that makes trains go bump in the night. A few ideas I am pursuing:

  1. Train looses its beacon - if a detector fires and there is no beacon value on either side of that block, out of sync, stop the railroad.
  2. Collision possible - when a detector fires and the beacon for that block is not clear and the beacon on either or both sides is loaded with a locomotive value, either out of sync or a collision is forth coming. Stop the railroad.
  3. Maintaining an accurate indicator of the direction the train is traveling is important. Two options, a test to see which side of the block contains the beacon will give direction. Place it in a variable and test to confirm at least once each lap.
  4. After a train leaves a block, a new block signal must be received with so many seconds or a loss of sync condition exists, due to station stop which can be programmed around, however this would certainly catch a derailment, the bane of current automated operations.
  5. Know how many trains are running and signal an error whenever the number of beacons with values is less, or more than the number of trains you have running. I do this by having a continuous loop that counts the beacons and checks against the total every 10 to 20 seconds. No need to do it continuously. Not yet sure of the optimum timing.
  6. Essential to troubleshooting inevitable problems, I have implemented a relay operated by the CTI system that will force Emergency Power Off (EPO) of my DCC system. This 'drastic' action will freeze the layout at the time my code detects the anomaly. This is very useful in deciphering the clues of what is not working properly.
I am not saying these things are easy to do, but I'm convinced that to get the kind of smooth reliable running trains I want, these kinds of event management details must be worked out in my design.

Thoughts? Ideas? Solutions?

Joe Daddy his self

copyright Joe Daddy 2008


Copyright © 2019 Joe Daddy's Weblog. All Rights Reserved.
Joomla! is Free Software released under the GNU General Public License.