Check out the newest Quaker Valley JMRI CTC panel at http://www.quaker-valley.com/CTC/QV_CTCnew.html
The Quaker Valley Railroad has been developing a CTC Panel using the Panel feature in JMRI since 2003. In the summer of 2006, I attended the NMRA Philadelphia Convention and sat in on all of the JMRI clinics. I met some of the key people behind the development and learned a lot, especially about the then newest features of Panel Pro in version 1.7.5. I also gave a clinic describing how I was using JMRI Panel Pro with my NCE system to develop a virtual CTC panel. In 2012, I moved this whole process to a set of three pdf files. This interactive tutorial allows you to see the completed CTC panel editor and layout editor and how the turnouts, sensors, routes, Logix and Simple Signal Logic (SSL) are all included in one place.
My Quaker Valley web site includes the xml file that includes all of the turnouts, sensors, routes, logix and simple signal logic shown here. You can download the tutorial part 3 xml file here. If you set a preference for NCE hardware or NCE simulation, you will be able to load the panel in JMRI versions 3.0 (or newer) and see how the panels work together. The Layout Editor is shown to the right and the Panel Editor is shown on the left. All interaction is via the CTC panel. The toggle switches shown above and below the track diagram on the CTC panel simulate the hardware block detectors. Throwing one of these on instantly lights a block on the track diagram and the correspondiong block on the layout panel.
Turning it off results in a 5 second delay before the block shows unoccupied. This prevents flickering block detection from showing at the panel and confusing the logic as well. When the panel is first loaded, the state of the turnouts and most sensors is unknown. Touch the reset button in the upper right corner just below the track diagram and it sets a route to reset all turnouts and sensors. Notice the code send and receive files are played if you have audio.
I always wanted to develop a CTC panel to use the turnout and signal levers and code buttons just like the real ones. I thought it would require scripting, but the latest versions of JMRI include multi position levers, Simple Signal Logic and Logix to make it all work. Touch left and right of the turnout and signal levers to move them.
The code button at the bottom of each position is momentary and controls both the turnout and signals. You can flip the levers back and forth without setting or changing anything. Only when the code button is pressed does the turnout and signal follow. And because of the way the JMRI routes function can work, they will only follow if the interlocking is unoccupied.
Sweet! No more throwing turnouts under moving trains.
So how does this all work in Panel Pro? I have updated this part of this web page to reflect the latest panel features as it easier now (2013) than it was in 2007. No scripting is required.
Each position has three inputs from the Dispatcher. These are the turnout lever, the signal lever and the code button. There are four block detector inputs from the railroad. On the clinic layout, I used NCE BD20s which detect current in each block. These are connected to a NCE Auxiliary Input Unit (AIU) which is on the NCE cab bus and makes the block occupancy info available to the command station and thus to Panel Pro.
There are two routes for the turnout. One sets it Normal (or Closed) and one sets it Reverse (or Thrown) to follow the turnout lever. Panel Pro allows multiple sensors in the Logix, so I have made sure the block is unoccupied and no signal is set before these changes are made. I simply show the turnout position as driven by Panel Pro in the two lights above the turnout lever. I don't have and don't see the need for feedback from the turnout on the railroad. The first lever in the demo panel above (lever 4) shows a turnout to be set in the Reverse position.
Back in 2007, the signal lever used to require five routes. I now use a Logix for each signal and there are 4 conditionals. The left and right green lights display the signal setting, eastbound or westbound. The center red indicates all signals are set to held. This over rides the SSL calculation in the field and shows a red or stop signal. The fourth conditional allows the dispatcher to reset a set route. I use an overlay icon on the center red which blinks for 15 seconds and then shows red.
So the Laurel Run example shown requires input from 4 block detectors, has one real turnout to throw and has 4 signal heads to set for the railroad. There are the 3 Dispatcher inputs, two internal turnouts for the signal direction and 4 internal signals to display the signal lever and center signal light. On the demo panel I use Logix to create a sensor for the interlocking dependent on adjacent block detectors and turnout position. I use this on my railroad to eliminate the need for about 20 block detectors. My friend Ken McCorry uses an infrared detector at the points in each interlocking to hold this block occupied when a car is over it. In this way, he initially found no need to place resistor wheel sets on any freight cars. I have been experimenting with detection of my caboose fleet and will likely only detect the caboose fleet and not all cars. So I developed virtual detectors at the interlockings as shown on the demo panel above. Using Logix, these go active when the adjacent blocks are occupied and the turnout is in the right position.
With the demo layout successfully behind me, I reworked my Quaker Valley CTC panel to work more like the demo and the real ones I remember from the 1970s. In 2006, I created the new background image, adding levers and code buttons for the existing turnouts and added TOL indicators where block detectors were installed. I later added the signal levers and code buttons. I also added a JMRI clock. It is now a fast clock married to the NCE command station. Early in 2011, I added the last of the mainline block detection and the balance of the signal logic. I even have one real working PRR style position light signal installed on the Conrail main line at Laurel Run. In 2012, I added a touch monitor and split the dual CTC panel into two separate panels on the same screen.
This panel represents the modeled portion of my Quaker Valley line which runs north and south between Buffalo NY, through Costello and ending in Lynnsburg, a town in the hills of Western Pennsylvania between Altoona and Johnstown. The panel below shows Conrail's secondary track between these two towns. I have abbreviated the staging yard tracks on either side of the modeled lines. In reality, the yards at McKeesport and Altoona are two ends of the Westbound staging yard. Johnstown and Harrisburg are the Eastbound staging yard.
Sweet! And Decoder Pro is still freeware. Thank you Bob Jacobsen, Dick Bronson and the JMRI crew!
Learn more about the JMRI project, Decoder Pro and Panel Pro at http://jmri.sourceforge.net/
Learn more about prototype CTC panel and signalling from the folks at CTC parts. They have a great DVD which explains a lot more. http://www.ctcparts.com/video.htm
Updated January 30, 2013
Quaker Valley Software
Return to Quaker