If you have an area of track where you will be operating trains by hand - for example shunting in a yard - it is great to use a DTM30 to set the points using pushbuttons. On other parts of the railway - for example a main line - it's great to have Traincontroller drive trains automatically, so it controls the points. But what happens where they meet - for example, if Traincontroller drives a train into the yard?
DTM30 interlocks provide a way to arbitrate between locally controlled points and Traincontroller controlled points. When you request to use the area of track locally, Traincontroller will grant that request if it hasn't reserved that track for a train movement; thereafter, it won't try to use that track until you've given back control. At the DTM30 end, point cells assigned to an interlock won't operate from button presses until the interlock has been granted.
How it works
An interlock cell is a special DTM30 cell. It sends a sensor message to LocoNet when its pushbutton is pressed. It then waits for a point address to be set to THROWN if the interlock is granted by Traincontroller. If that doesn't happen, the request times out after about 10 seconds. If the request is granted, the interlock cell LED lights and points assigned to the interlock will then work.
How to Set up Traincontroller
Interlocks are not a feature of Traincontroller: this is a process we have worked out experimentally ourselves. Here's how we have programmed it to control access into Eastleigh depot: this is a goods depot accessed from a main line.
Firstly, you will need to set up a contact indicator for the interlock's sensor message. This will light up red when the sensor is active. Then you'll need a Flagman triggered by that contact indicator. The flagman will also light up red when the sensor is pressed. (In this case they are the "interlock" row shown here). Then add a turnout that isn't part of your railway, with its DCC address set to the address programmed into the DTM30 interlock cell. Finally you'll need to add a block on the road into the yard, if you don't already have one. Ours is too short to allow a train to stop there, so it is set as a critical section.
The interlock's flagman now needs a condition: this is something that would stop it from operating. In this case it is programmed to trigger if Eastleigh approach is NOT occupied, and Eastleigh approach is NOT reserved. This means that the flagman can only become active if Traincontroller is not trying to drive a train through there at the moment.
Next we added Operations to the flagman. These set the "phantom" turnout to THROWN if the flagman is active, and set it to CLOSED if the flagman is not active. (The action now will signal to the DTM30 that the interlock has been set).
Finally we added a condition to the block on the approach road, which only allows the block to be reserved if the phantom turnout is CLOSED. This stops Traincontroller driving a train in if the interlock is active. (There's also a condition in here to stop Traincontroller reserving the block if the depot track bed has been raised - it is on a lift-up panel for access to track below; a microswitch sends a sensor message via a DAC20 input if the panel is raised).
So that's the interlock process; press the DTM30 interlock button, and if the request can be granted the flagman will set to red and activate the phantom turnout. Traincontroller will now hold any incoming traffic at the block before, and wait.
Controlling which tracks can be used
Finally, it's sometimes useful to control which tracks can be used by Traincontroller - in a busy station, to force using certain trains for example. It's easy to do this from a DTM30 too.
In the DTM30, program a cell to be a sensor cell with an LED for the sensor and a pushbutton to change the sensor on/off each time it is pressed. When you press the button, the LED lights and LocoNet gets a "sensor occupied" message. Press it again and the LED goes off; LocoNet gets a "sensor not occupied" message. You will need one LED & pushbutton for each track you want to control; a DTM30 sensor cell can have two sensors, LEDs and pushbuttons.
In Traincontroller, add a contact indicator to a switchboard for each track and set the LocoNet address. Then when the DTM30 LED is lit, the contact indicator will light. Add a flagman for each, triggered by the respective contact indicator. Now the flagman will light when the DTM30 LED is lit. Finally program block operations for the flagman lit and the flagman not lit. When lit, allow entry and exit at the appropriate of the block on your switchboard. When not lit, lock exist and entry at that end of the block.
There are some point numbers and sensors used to signal between Traincontroller and the DTM30 panels. These aren't associated with proper block detectors or points.
Point 901 | DTM30 interlock for Eastleigh. Thrown if the panel has been granted manual control |
Point 911 | DTM30 Interlock at Portsmouth |
Point 912 | DTM30 Interlock at Portsmouth |
Point 913 | DTM30 Interlock at Portsmouth |
Point 921 | DTM30 interlock at Clanfield |
Sensor 161,1 | Sensor ON when the Eastleigh depot flap is in its correct down position |
Sensor 160,1 | Sensor ON when the Eastleigh interlock requests local control |
Sensor 160,5 | ON to request that the oil train from Eastleigh schedule is started |
Sensor 160,6 | ON to allow use of road 1 in Eastleigh depot |
Sensor 160,8 |
ON to allow use of road 2 in Eastleigh depot. |
Sensor 164 1-4 |
Portsmouth DTM30 interlocks |
Sensor 164 5-8 |
Portsmouth DTM30 special functions |
Sensor 163 1-16 |
Portsmouth DTM30 special functions |
Sensor 165 1-4 |
DTM30 interlocks at Clanfield (only sensor 1 used) |
Sensor 165 5-9 |
DTM30 special functions at Clanfield |
The sensors all operate Flagmen: first assign a contact indicator, then create a flagman triggered by that contact indicator. The "phantom" points are operated by standalone turnouts on a switchboard not associated with the "real" railway.
Finally... A DTM30 panel for the South Downs Railway. The main track loop is computer controlled, but human operators have to operate trains at some locations. The DTM30 provides a way to control points with pushbuttons and LEDs, rather than needing to use throttles.
This is a small panel, by some standards: it only uses 10 cells. 7 of those control the points, and the remaining three are for interlocking with Traincontroller. Physically it's constructed in an ABS box that's made to house electronic projects. The DTM30 sits in the base, with its LocoNet connectors protruding through the back. The switches and LEDs are on the top panel. The legend is laser printed into a form of sticky back plastic, giving good quality artwork quickly. Sadly, the act of drilling the holes has done some damage - something I'll need to consider next time!
Cell Programming
The first 7 cells are simple point cells. Cell 8 is an interlock cell, with the pushbutton and LEDs at top right. This controls the ability for a human operator to operate the pushbuttons for the slip, which Traincontroller drives trains through. When powered up it is set to "Computer": in this state the slip pushbuttons down't work. Press the "request" button and the interlock handshakes with Traincontroller to see if the track can be given over for manual operations; if it can, the "manual" LED lights and the slip pushbuttons will now operate.
Cells 9 and 10 generate sensor messages for the "allow access" green LEDs for the two tracks in the oil depot where Traincontroller can deliver a train or take away a train. Press the button once, and the LED lights and the track is available for Traincontroller to use; press it again, the LEDs go out and Traincontroller eon't use that track. Finally one of those cells has a second pushbutton to generate another sensor message, which asks Traincontroller to start the oil train schedule.