Enhanced Interlocking Tower

From TrainzOnline
Jump to: navigation, search
Surveyor's Hotkeys
Driver's Hotkeys



Enhanced Interlocking Tower assets


Enhanced Interlocking Tower assets are Interlocking Tower scripted assets using some additional script from a library to offer extra functionalities to the standard interlocking tower. By doing some pre-processing before calling standard interlocking tower processing and doing some post-processing on return, these new assets enable the user to take the best from interlocking towers and to offer some enhanced functionalities by default or on option.

Among these added functionalities you will find :

at the path level :
  • path supports that an exit signal is also an entry signal from another tower
  • path will be activated only if there are no extra consist currently occupying the path. If it is not the case, path activation will be delayed until there is no longer any extra consist on path.
  • path can be cancelled using a specific driver command or using the enhanced interlocking manager rule run time monitor. Cancelling a path can occur at any time for an owning train which is stopped, and for an owning train moving only if there are at least two signals between the train position and the path entry signal. To avoid any derailment risk, paths junctions currently overlapped by a consist will not restore their initial direction.
  • path can use several clear method : clear on cancel is the traditional clear method used with standard IT ; clear_on_drive enables to release junctions and signals when your train has left the junction or signal so that these objects are made available for any waiting other path before the initial path is cleared ; clear_on_last_junction will clear the path when the last junction along the path has been left : this method may be used at terminal station with path having the buffer at the end of the track being the exit signal - though the exit signal will never be reached, the path will be cleared when the last junction will be left.
  • path can optionally check if a track circuit block embedding the exit signal is occupied or not, and will lock the track circuit block name until the path is cleared. It is also possible to request that all track circuit blocks embedding any path objects (except the path entry signal) will be processed in a similar manner. Using exit signal TCB can help a lot to protect terminal or through station platforms.
  • path can optionally choose either to restore path junctions initial direction when a path is cleared or to do not restore path junctions initial direction and keep the current target direction when the path was active.
  • path can optionally be member of an exclusive set name, and will have their activation delayed as long as any other path referencing the same exclusive set name is active. This feature enables to protect easily track crossing without using some invisible junctions or signals.
at the tower level :
  • it is possible to choose if the yellow disc used to reselect a target path is displayed or not.
  • processing on train schedule blocked can be choosen : you may either use the standard IT implementation that will try to cancel and reactivate later unused paths (paths owned but not already entered) which may help activating a path for a train with schedule blocked at an entry signal.You may also avoid this standard processing by disabling the option.
  • since release 47 available in 03/2018 on DLS, you can choose between static and dynamic ownership for path objects ownership. Path entry signals are in both cases always owned by the interlocking tower for all the session duration. With static ownership, all paths objects are also owned by the tower for the session duration. With dynamic ownership, ownership for path objects not being an entry signal is taken only on path activation and is released when the path is released. With this dynamic option, path objects ownership last only for the duration of the path being active (for all objects except path entry signals which are always owned for the session duration).
  • trc compatibility : it is possible to choose at the tower level if crossing conformant to TRC system will be managed by the interlocking tower or by the trc system.
  • tower debug level : this option is mainly for session developers. It enables to have either no logging (for production), or only logging to the system log, or to have both logging and messages on screen.
  • since release 60 available in 02/2019 on DLS, EIT supports PathTrigger object placed on track, that makes possible to adjust (increase or decrease) the distance to the entry signal at which automatic path selection is done for the incoming train.

Enhanced Interlocking Tower : How to use them ?

To use enhanced interlocking tower, you need to drop on your route an enhanced interlocking tower like the enhanced trc3 interlocking tower <kuid2:61392:8101:4> available on dls. Some other content creators will shortly also release some other enhanced interlocking tower asset. In fact any scenery asset can be defined as an enhanced interlocking tower by using the adequate configuration file.

List of available enhanced interlocking tower on DLS (at current date 03/03/2018) :

Enhanced trc3 invisible interlocking tower <kuid2:61392:8101:47> by pguy

ITE SB Nameable 1 <kuid:182010:100397> by peterwhite

ITE SB Nameable 2 <kuid:182010:100403> by peterwhite

ITE SB Nameable 3 <kuid:182010:100410> by peterwhite

ITE SB Nameable 5 <kuid:182010:100401> by peterwhite

ITE SB Nameable 6 <kuid:182010:100407> by peterwhite

ITE SB Nameable 7 <kuid:182010:100402> by peterwhite

ITE SB Nameable 8 <kuid:182010:100398> by peterwhite

ITE SB Nameable 9 <kuid:182010:100408> by peterwhite

ITE SB Nameable 10 <kuid:182010:100411> by peterwhite

When you have installed on your route the enhanced interlocking tower you want to use, you only need to edit the object property by clicking on it to open the standard editor window. For enhanced interlocking tower, the editor window includes options that can be selected in the header at the top of the tower object properties window.

Editing enhanced Interlocking tower : options available in the tower editor window


The available options in the header at the tower level are :

  • tower display yellow disc option :
by clicking on the link on the right, you can either choose display yellow disc enabled or disabled
  • tower path requery option :
this option is on how to process AI trains with schedule blocked. It can either be try requery path on schedule blocked or do not requery path on schedule blocked. With requery path option active, when an AI train has its schedule blocked, the enhanced IT will try to release unused paths (paths owned but not entered) to enable some other paths to be activated. The unused paths released are requeued for later activation. This standard processing done in standard IT may help to find a solution to some AI schedule blocked, but may have some side effects as some activated path may be cancelled before being later reactivated. If you do not want this behavior, just change the option to do not requery path on schedule blocked and no processing will be done when an AI train has its schedule blocked.
  • tower dynamic ownership option (available since release 47 march 2018) :
this option is on how the tower will take ownership of all its paths objects (entry signal, exit signal, other signals, junctions, crossings, ...). Entry signals are always owned by the tower for all the session duration whatever the option choosen. With static ownership, it is the same for all paths objects for which ownership will also be taken for all the session duration. With dynamic ownership, path object ownership is taken only on path activation and will be released when the path returns to path not set state. With dynamic ownership, a path object belonging to one or several paths currently not activated is no longer owned by the tower and can be used by other components for manual operation. This may be usefull for sidings where you can have the junctions unlocked available for manual operations when no paths using this junction are active.
  • tower trc compatible mode :
when this option is active, crossings conformant to trc system specification will not be managed by interlocking tower. Trc crossing objects will be skipped with no tower ownership and will remain managed by the trc system. if the option is inactive, interlocking tower will manage all the crossings along its path.
  • tower debug level :
tower debug level option is an option available that help session developper to understand interlocking tower problems. Interlocking tower have an integrated debugging facility by default disabled. By selecting only log debug information or log and print debugging information, you will activate the debugging facility which may help to understand some conflicting or deadlock problems using interlocking tower.

at the bottom of the header area, you will find a link Restore default options that enables to reset all the current enhanced options to the default values defined by the enhanced tower asset content creator.

Editing enhanced Interlocking tower path : options available in the path editor window


The available options in the header at the path level are :

  • Path clear method to use :
you can here select the path clear method to be used between Clear on cancel (when a path is either complete or cancelled) , Clear on drive (following train progress along the path) and Clear after last junction (when the train leaves the last junction along the path). Clear on cancel is the standard IT clear method that can still be selected. Clear on cancel will release path objects locks when the owning train leaves the path object. With clear on drive, the path will still be cleared and cancelled only when the train will leaves the exit signal, but path objects are unlocked as soon as the train has left them and are made available for other conflicting paths to be activated earlier. Clear after last junction will clear and cancel the path as soon as the owning train has left the last junction along the path and will not wait for the train to reach and leave the exit signal. Clear on last junction may be an interesting option for path leading to an and of track with a buffer. You can use the buffer as the exit signal, and though the owning train will never leave the buffer exit signal, the path will be cleared as soon as the train will have left the last junction along the path.
  • Path track circuit blocks mode :
this option can either be no tcb processing , process only tcb for exit signal or process all tcbs along path. With process only tcb for exit signal, before activation, the path will look if its exit signal is embedded in some track circuit block, and if it is the case will check that the track circuit block is not occupied and not locked. If it is not the case, path activation will be delayed until the previous conditions are met. When the exit tcb is unoccupied and unlocked, path will be activated but will also lock the tcb name while the path is active. Doing so enables to guarantee that a path is activated only when a tcb embedding the exit signal is not occupied and locking its name enables to prevent other paths to activate while the initial path is active even if there are no common paths objects between the paths. Exit signal tcb are very usefull for terminal station platforms, for through station platforms and for unique track between two several passing places. As several interlocking tower paths from distinct towers can have their exit signal embedded in the same tcb, this facility also enables to do some interlocking between paths form distinct towers. Using the process all tcbs option along path enables to do the same processing for all the tcbs embedding some path objects and not only for the exit signal tcb.
  • Path clear option for owned junctions :
this option enable to either restore the junction initial direction (default used by standard it) or to do not restore junctions initial direction when a path is cleared. This option is available mainly for prototypical behavior as sometimes it is not very prototypical to have a junction having its initial direction restored because a path has been cleared followed by rechanging the direction due to another path being activated. With this option you avoid successive inadequate direction changes for junctions.
  • Exclusive sets membership :
exclusive sets membership is an option that has been designed to help protect a crossing of tracks without the need to add some invisible junctions using these junctions as external object reference. When you add an exclusive set name in this field, the path will only be activated if no other paths in any tower with also the same exclusive set name is active. Paths sharing the same exclusive set name cannot be simultaneously active and this works inside the same tower as inside any tower on your route. To protect a crossing of track, you need only to give a unique name to this crossing of track and reference this name as an exclusive set name in all your paths using this crossing of tracks. It is much more easy to use than using invisible junctions with external references in paths.
You can enter in this field either only one name or several names separated by a comma. Exclusive set name A will be displayed in the field as A. Exclusive set names A , B will be displayed as an exclusive set names list [A,B]. What is important is that you can enter either one name or several names separated by commas. When several names have been listed, the path belongs to all the exclusive set names and will check that no paths active are referencing any of these names before activating the path. This feature is very usefull to protect crossing tracks, and also slips and double-slips.

At the bottom of the header, you have also two links available : the restore default options link will restore all the default values for the enhanced options for the current path. The make current path options default options will change the default options in the current tower to be the current path options. Using these options link, it is quite easy to retrieve some path options and to propagate them to some other paths.

And now below a few tips on how to use some of the enhanced options
TIP001 - How to protect paths using crossing, slips, double slips
How to ajust the default distance for automatic path selection

By default, automatic path selection is called when an incoming train approaches an entry signal at about 0.5 mile. But since version 60 available from DLS in 02/2019, you can adjust (increase or decrease) this default distance by using specific path trigger object ( <kuid2:61392:8121:1> ). When you place a path trigger object, automatic path selection will be called when the incoming train reaches the last path trigger object before the entry signal (the train needs to have the track already set in the correct direction to go to the entry signal). If the path trigger is reached before the standard 0.5 mile distance, automatic path selection will be done with an increased distance from the entry signal. If when the train arrives at the standard distance, the system find there is a path trigger between the train and the entry signal, automatic path selection will be delayed until the train reaches the path trigger, and automatic path selection will be done at a reduced distance from the entry signal. Path trigger works only with EIT and not at all with standard ITs.

How to activate easily a path for a train using ITSetPath family driver commands

An easy method to activate a path for a train is to use one of the three driver commands ITSetPath (<kuid:61392:8111>) , ITSetPathAndWaitNotRed (<kuid:61392:8112>) or ITSetPathAndWaitActive ( <kuid:61392:8113>). These three driver commands enable the user to choose the interlocking tower and the path to request for the current driver when the driver command is executed. ITSetPath will only request the path activation and will immediately terminates, giving control to the next driver command in the train schedule. ITSetPathAndWaitNotRed will also request the path activation, but will wait until the path has been activated and the entry signal is not red before terminating and giving control to the next command. ITSetPathAndWaitActive will request the path activation and will wait for the path being active but will terminates giving control to the next command even if entry signal is still red. This last command may be usefull to set a path to drive and couple to another consist just after the entry signal.

Creating your own enhanced Interlocking tower asset : What are the modifications needed in your asset config.txt file

Like for standard interlocking tower, any scenery asset can be transformed in an enhanced interlocking tower asset by making a few modifications to the config file.

You will find below as an example, taken from the config.txt file for the enhanced trc3 invisible interlocking tower, all the lines you need to have in your own asset config.txt so that your asset becomes an enhanced interlocking tower. Other lines like your asset kuid number, description, username, ... should remain unchanged.

List of lines needing to be present for a scenery asset to become an enhanced interlocking tower asset (in SP2 or later) :

trainz-build                            4.5
kind                                    "interlocking-tower"
script                                  "dummyinterlockingtower.gs"
class                                   "DummyInterlockingTower"
category-class                          "IT"

    assetid                             "enhancedinterlockingtower"
      displayyellowdisc                 0
      pathrequeryonscheduledblocked     1
      trcsupport                        1
      debuglevel                        0
      clearmethod                       1
      checktcb                          1
      resetjunctions                    1
      edityellowdisc                    2
      editpathrequery                   2
      edittrcsupport                    2
      editdebuglevel                    2
      editclearmethod                   2
      editchecktcb                      2
      editresetjunctions                2
      editexclusivesets                 2
      cunselect                         "bbf5bb"
      cselect                           "f5bbbb"
      clink                             "ffffff"
      cnrm                              "c0c0c0"
      cwhite                            "ffffff"
      calert                            "ff0000"

  commondata                            <kuid:61392:4050>
  esvlib                                <kuid:61392:4052>
  eitlib                                <kuid:61392:8190>
  trcitlib                              <kuid:61392:8191>

  sessvar                               <kuid:-3:10197>
  sessvars                              <kuid:-3:10197>
  commondata                            <kuid2:61392:4050:51>
  esvlib                                <kuid2:61392:4052:4>
  eitlib                                <kuid2:61392:8190:47>
  trcitlib                              <kuid:61392:8191>
  0                                     <kuid:61392:4050>
  1                                     <kuid:61392:8190>
  2                                     <kuid:61392:4052>

Just only a few comments on some of these mandatory lines in config.txt file :

The trainz-build tag needs to be at least 4.5 for any interlocking tower in SP2 or later. The kind tag should always be "interlocking-tower". The script and class should be "dummyinterlockingtower.gs" and "DummyinterlockingTower" and should respect the case for the class tag. And the category-class tag should be "IT". These tags are mandatory and should not be changed.

In the extensions part, default values for enhanced options are defined and may be changed if you wish to change the default values in your enhanced interlocking tower asset.

displayyellowdisctag is 0 for yellow disc disabled or 1 for yellow disc enabled.

pathrequeryonscheduleblocked should be 0 to disable requery and 1 to enable requery when an ai train has its schedule blocked.

trcsupport should be 1 to support trc system and 0 if not.

debug level should be 0 for no debugging, 1 for log only debugging message and 2 for log and print debugging messages

clear method should be 1 to clear on cancel, 2 for clear on drive, and 101 for clear after last junction. Other values may lead to unexpected results.

checktcb should be 0 for no tcb processing, 1 for process only exit tcb, 2 for process all tcbs along path.

reset junctions should be 0 to avoid reseting junctions direction when a path is cleared and 1 to reset junctions when a path is cleared.

and that's all for default values settings. The following tags will define if an enhanced option is not visible (0), displayed only (1), or displayed and editable (2). the tags edityellowdisc, editpathrequery, edittrcsupport, editdebuglevel, editclearmethod, editchecktcb, editresetjunctions, editexclusivesets can be set to one of these values (0, 1, 2) to make the enhanced option not visible, displayed in read-only mode, or displayed and editable. By configuring these extensions tags, an enhanced interlocking tower content creator can choose the default values for an option, and decide if it can be viewed or not, and if the end user can change the default values. For example, if trcsupport is set to 1 and edittrcsupport is set to 0, the tower will have the trc support option enabled, but not displayed and so not updatable by the end user. Using these tags the asset content creator can enforce any of the enhanced options value.

the other tags cunselect, cselect, clink, cnrm, cwhite, calert defines the colors to be used in the interface. You should not normally alter these values, but if you don't like the colors scheme used, you may alter these values to change the colors used in the interface. The string values defined for each tag are only the RGB hexadecimal values for the color to be used for this category of information.

and the last containers script-include-table and kuid-table should be left unchanged for the enhanced interlocking tower to work correctly.

Enhanced Interlocking Tower Manager Rule : How to monitor at run time your towers, paths and trains

Enhanced Interlocking Tower Manager Rule is a session rule that is released with the Enhanced Interlocking Tower package. Under Surveyor it enables editing of your towers and paths from a centralized interface, and under Driver it provides a run time monitor to display current available information on your towers, paths and trains using or waiting for any path.

The rule is available on DLS under the KUID <kuid2:61392:8130:47>. The rule works with both standard interlocking towers and enhanced interlocking towers.

To get more details on what this rule can display, just click on the following link to the Enhanced Interlocking Tower Manager Rule dedicated page.:

That is currently all for Enhanced Interlocking Tower assets wiki documentation. I hope you will enjoy these new assets to help you using more versatile and powerfull interlocking tower. And if you need more details or have unanswered questions, do not hesitate to post in the forums or to send me a private message. Regards. Pierre GUY (61392)

See Also

Personal tools