Warrants
A Warrant is a collection of information sufficient to run an automated train. It can also be used to set signals and turnouts for a specified route of a manually operated train. A JMRI Warrant is suggestive of what a warrant does on a prototype railroad, but there is no intention to replicate any particular railroad's mode of operation.Warrants depend on having an accurate description of the layout in terms of OBlocks, Portals and OPaths. These elememts are created using the Occupancy Block Tables that you will find under the Tools menu in the PanelPro window. Their definitions and how to use them are described in The Occupancy Block Tables.
Creating a Warrant
In order to create a Warrant you must first have created two or more OBlocks. These blocks don't have to be fully defined, but their existence indicates that you are interested in using Warrants. When two or more OBlocks exist the Panel Editor will display a Warrants menu with three menu items. Otherwise, this menu is not displayed. The Warrant menu items are:- Warrant List: - Opens a table of warrants from which you can control warrant routes and dispatch trains. It is not meant to be a dispatchers panel, but its intended use is testing warrants. You are encouraged to develop your own dispatchers panel using the Warrant state variables and actions in Logix. The operations of this table are discussed below.
- Edit Warrant...: - Shows the list of existing warrants. Selecting one will open a Warrant Editing Window. The operations of this frame are discussed in Creating and Editing Warrants.
- Create Warrant: - Opens a blank Warrant Editing Window to create a new warrant. The operations of this frame are discussed in Creating and Editing Warrants.
Functions of a Warrant
Creating Routes
A warrant route is a series of block paths linked together so a train may travel over it. A warrant route is created by first choosing an origin block, a starting path and a portal to exit the orginating block. Then, destination block is chosen and a path on which to end the route. Blocks are chosen either by typing in the block name or dragging it from a displayed OBlock table. A computer algorithm will determine all the intermediate blocks and paths to make the route.The origin block is obviously where a train given this route will start and the starting path within the origin block is the track it is on - e.g. "Departure Track #3". Choosing the portal of the path where the train should exit, determines the direction of the train on the route. From here on, the computer algorithm will find portals, paths and blocks to take the train to the destination block and path - e.g. "Arrival Track #1" in the destination block.
There may be more than one way to get from the origin track to the destination track. The computer presents you with a list of all the routes it finds - some of these may be quite lengthy. You may review and choose the route you want to use from the list. If the list is too lengthy, you may restrict the number of routes found by specifying an intermediate via block and path that must be included in the route. The computer will re-calculate the route with this restriction and present you only with routes through the specified "Via" block and path. Creating and Editing Warrants. has more information about this.
The computer may not find a route from the origin track to the destination track that you believe is there. When this occurs, you may request the computer to display the routes the algorithm has attempted. As you trace the attempted routes you may find that you have forgotten to enter a path or miss-labeled the correct portal to a path. (or, heaven forbid! found a bug.)
Choosing a Train
The Edit/Create Warrant frame has a drop dowm 'combo box' that displays all the trains listed in the Roster. Selecting one will assign a train to the warrant.If you do not have a Roster defined then you may enter a locomotive's address in the DCC address text field and a train responding to this address can be 'taught', the commands it should issue, and later, 'run'. Creating and Editing Warrants. has more information about this.
Learn Mode Throttle
If a train has been assigned, that is, has a valid train Id or valid DCC address in the warrant, then a throttle can aquired by pressing the Start button. This throttle will operate the acquired train and all the throttle commands will be recorded until the Stop button is pressed. Creating and Editing Warrants. has more information about this.Recorded Throttle Commands
The throttle commands recorded in Learn Mode can be edited, however, caution should be taken to only make modest changes since new commands when executed in playback could cause dramatic events. It may be wiser to re-record the commands in a new Learn Mode session if major changes are made. Creating and Editing Warrants. has more information about this.Running Automated Trains
The recorded throttle commands can be played back to run the train. When in Run Mode, additional control of the train can done through three choices: Halt, Resume and Abort. As suggested by the names, these command stop a running automated train, restart it or stop the train and abort the remaining throttle commands.Although there are separate operations to reserve a warrant route (Allocate) and set turnouts and signals (Set Route) these operation do not have to be done to run an automated train. A Run operation can begin without them. The train will seek allocation and set turnouts and signals as it proceeds on the route. When confronted with an occupied block, the train will stop and wait until the block clears. When the next block is clear but the block beyond the next block is occupied, the train will approach at reduced speed. An automated train will attempt to secure allocation of the next two blocks each time it enters a block. Creating and Editing Warrants. has more information about this.
Editing Throttle Commands
The recorded throttle commands execute according to the elapased time between commands. The elapsed time (ET column) may be modified and even the command may be changed.Changing the consist of a train or perhaps even a temperature change between recording and playback, may result in the train not performing a throttle command at the same place on the layout each time. If it is important to have the command happen at a precise control point (e.g. a block boundary portal), then the throttle command can be synchronized to execute at that point.
The run protection discussed in the previous section and synchronizing commands depends on reliable occupancy detection. If the layout is prone to have spurious false detection signals, then automated running will be unsatisfactory - trains may wait indefinitely for phantom trains to release occupancy or run indefinitely by not receiving a synchronizing signal. The train can be run using the elapsed times between commands only and skip the block protection mentioned above.
Using the Warrant List
The Warrant List menu item opens the Warrant Table. Each row is a warrant that has been created. Warrant routes can be reserved, the turnouts and signals set and trains run and controlled using the columns in the table.Columns in the Warrant Table
- Warrant: - The name of the warrant.
- Route: - The route of the warrant is listed in a drop dowm combo box.
- Train Name: - The Train Id, as stated in the Roster.
- DCC Address: - The DCC Address of the locomotive or consist.
- Allocate: - A button that reserves the route for the warrant.
- Deallocate: - A button that removes the reservation for the warrant.
- Set: - A button the sets the turnouts and signals for the warrant route.
- Run: - A button that runs the train over the route according to the automated throttle commands.
- Control/Status: - The status of the warrant is shown. It also has a drop down combo box that
can send the following commands to a running train.
- Halt, Resume and Abort commands to an automated running train.
- Edit: - A button that opens an editing window for the warrant,
- Delete: - A button that deletes the warrant.
Using Warrants in Logix
Several of the operations that can be done from the Warrant List and Warrant Editing frame can be done with Logix Conditionals. You may design and implement a dispatcher's panel using the Warrant state variables and actions found in Logix.Warrant State Variables
- Route is Free: - True when all blocks in the warrant route are not allocated to anyone and are not occipied. False otherwise.
- Route is Set: - True when all blocks in the warrant route are allocated and the turnouts set for this warrant. False otherwise.
- Route is Allocated: - True when all blocks in the warrant route are allocated to this warrant. False otherwise.
- Route is Occupied: - True when none of the blocks in the warrant route, other than the origin block, are occipied. (Assumes the train of this warrant is occupying the origin block). False otherwise.
- Train Running: - True when the train specified in the warrant is running either in Learn Mode or Auto Run Mode. False otherwise.
Warrant Actions
- Allocate: - Allocates the route to this warrant.
- Deallocate: - Deallocates the route of this warrant (only). This will not deallocate the route of a different warrant.
- Set Route: - Sets the signals and turnouts for the route as far along the route that it can until it reaches an occupied block or a block allocated to another warrant.
- Run: - Issue the throttle commands to the train in the warrant. This should only be done when the train occupies the Origin block.
- Set TrainId: - Set the train to be used in the warrant from a trainId in the Roster.