LRoutes extend the capabilities of Routes. Lights and Signal Heads are included in the collection of Turnouts and/or Sensors whose states may be set all at once and used for control of the LRoute. As with Routes, when an LRoute is triggered a sound may be played, or a script may be run. LRoutes are capable of performing all of the tasks that Routes can do. For further discussion and examples consult the main Route documentation.
Whereas a Route may be controlled by up to three sensors and/or by a control turnout, an LRoute may use any number or combination of Sensors, Turnouts, Lights, and/or Signal Heads to control the "route".
LRoutes are implemented as a group of Conditionals in a Logix. This provides another extension of capabilities in that, this Logix may be edited in the Logix Editor where Conditionals can be edited or created to preform other tasks. When a LRoute is created, or when it is read from a configuration file, the LRoute is 'activated'; it is set up to monitor automatically any changes in state of its control entities. When these entities change in the user-specified way, the LRoute is 'set' ('triggered') and the actions selected by the user are taken - And if specified, a sound is played or a script is run.
The LRoute Table contains an 'Enabled' column. For an LRoute to be triggered by its control entities, it must be "enabled". That is, its check box in the 'Enabled' column must be checked. This check box enables/disables the Logix implementing the LRoute.
First make sure the Tables for Sensors, Turnouts, Lights and/or SignalHeads contain all the entities involved in the LRoutes to be defined. Next select LRoute Table from the Tools menu. If you add or change any entities with the LRoutes table window open, you will have to close and reopen it for the list of entities seen by LRoutes to be refreshed.
Click the Add... button at the bottom of the pane to bring up the Add LRoute pane.
Enter a system name, such as 'RTX100'. Any short name can be used provided it is different from the system name of other LRoutes.
By convention, system names usually start with "RTX" for an LRoute.
Enter a user name. Any string of characters that is different from the user name of other LRoutes will be accepted, but it's wise to use a string that describes the intended use of the LRoute.
Select the entities to be included for actions to be taken in the LRoute from the list by clicking on the checkbox in the Include column. For each included item, use the combo box in the Set Action column to select the action that should be taken for the entity. For example, an included turnout is to be 'Set Closed', 'Set Thrown' or 'Toggle'd and an included sensor is to be 'Set Active', 'Set Inactive' or 'Toggle'd when the LRoute is 'Set' - similarly for lights. An included SignalHead can be set to any one of its 'appearances'. Don't worry if everything isn't perfect. It's easy to edit this information later.
Note that the 'Actions (output)' Tab allows you to display 'All' the entities or just the 'Included' ones. This is only for your convenience in checking that all desired entities have been included; it does not affect entered information.
Next select the tab labeled Triggers/Controls (input). This also displays a table with all the Sensors, Turnouts, Lights and/or SignalHeads that the user has defined in their respective tables.
Select the entities to be included to control (i.e. trigger) the LRoute from the list by clicking on the checkbox in the Include column. For each included item, use the combo box in the Trigger State column to select the state that should be taken to trigger the entity. For example, an included turnout may be set to trigger 'On Closed', 'On Thrown' or On Change'. It will prevent triggering when thrown if 'Veto When Thrown' is selected or prevent triggering when closed if 'Veto When Closed' is selected. The selections are similar for an included Sensor or Light. An included SignalHead has the choices for "On" for each of its appearances and choices for "Veto When" for each appearance.
Next select the tab labeled Alignment/Locks/etc..
If you want the LRoute to play a sound when it triggers, enter the file name of a sound file in the text box following 'Play sound file'. Clicking Set will bring up a file selection dialog to help locate the file. Once the file is located, clicking on its name in the dialog will copy it, complete with path, into the text box.
Similarly if you want a script to be run when the LRoute triggers, enter its file name into the text box labeled 'Run Script'. The Set button can be used as above to assist in entering script file information.
Checking the check box Set Locks will lock the turnouts included from the 'Actions (output)' tab when the entities from the 'Triggers/Controls (input)' trigger. When these entities are no longer determine a trigger state, the above turnouts are unlocked. For more information on turnout locks, see Turnout Lock feature .
The table on the 'Alignment/Locks/etc.' tab lists all the sensors defined in the Sensor Table. A sensor (or sensors) may be chosen to go active when the actions of the entities included from the 'Actions (output)' tab are completed. You may choose to indicate 'alignment' of the Sensors, Turnouts, Lights, and/or SignalHeads in separate groups or for all them together. If the group actions are completed in by means other than the LRoute trigger, the sensor will still indicate 'alignment'.
Finally, select the tab labeled LRoute Basics to return to the first tab.
Click the Create button at the bottom of the pane. If everything is fine, a message stating "New LRoute added ... " will be displayed in the notes box near the bottom of the tab. If there is trouble with anything, an error message will be displayed in the notes box; you should correct the error and click Add LRoute again.
To abort adding the LRoute, press the Cancel button.
NOTE: If you have edited the Logix created for a particular existing LRoute, or have edited any of the entities used by an LRoute without closing and reopening the LRoute table window, you will get an error message when you go to edit that LRoute. This can be avoided by closing and reopening the LRoute table window before attempting any edits.
To delete the LRoute, press the Delete LRoute button.
LRoutes are kept in your layout configuration, along with turnouts, sensors, signal heads, lights, control panel setup etc. To store this information on disk, see Loading and Storing Your Work. Note that the enabled/disabled state of each LRoute is not saved in the configuration file. When LRoutes are loaded from a configuration file, they are all enabled.
For example, by default when any one of the included sensors goes to the active state, the LRoute will be set. This could be used to set a LRoute when a block became occupied, or when a button was pushed.
Each control Sensor has a "mode" associated with it, which can be:
Similar to the control sensors discussed above, a control turnout has a "mode" associated with it, which can be:
Likewise, Light controls have "modes" which can be:
The SignalHead control "modes" differ somewhat from the above. They are:
Note that there is an implied "and/or" here. All of the 'veto' sensors, the 'veto' turnouts, 'veto' lights and 'veto' signals must be in their non-veto state and at least one of the triggering entities must experience the appropriate change for the LRoute to be set. A single 'veto' turnout, 'veto' sensor, 'veto' light or 'veto' signal appearance will prevent the LRoute from being triggered. The logical expression defined by the LRoute is that the "non-veto entities are OR'ed together as a clause and the "veto" entities are AND'ed together as a clause. The two clauses are then joined by an AND operator.
In Routes, the 'veto' entities are passive. That is, although the 'veto' state prevents the Route from triggering, when the 'veto' state is left, it does not trigger the Route. On the other hand, generally a Logix Conditional has all its state variable trigger actions when they change. The radio buttons on the 'LRoute Basics' tab Route Logix Type give either option. If you want the LRoute to perform in this passive manner as a Route does, press the Old button. If you want the LRoute to trigger its actions when all the 'veto's are removed, press the New button.