Files
JIMRI/help/en/html/tools/WarrantsIntro.shtml
2026-06-17 14:00:51 +02:00

186 lines
8.3 KiB
Plaintext

<!DOCTYPE html>
<html lang="en">
<head>
<meta name="generator" content="HTML Tidy for HTML5 for Apple macOS version 5.8.0">
<title>JMRI: Warrants Introduction</title>
<meta name="author" content="Pete Cressman">
<meta name="author" content="Jerry Grochow">
<meta name="keywords" content="JMRI Warrant Help"><!--#include virtual="/help/en/parts/Style.shtml" -->
</head>
<body>
<!--#include virtual="/help/en/parts/Header.shtml" -->
<div id="mBody">
<!--#include virtual="Sidebar.shtml" -->
<div id="mainContent">
<h1>JMRI: Warrants Introduction</h1>
<p class="noted"><strong>Getting Started:</strong> This page is a brief introduction to
warrants with links to other help pages. Read the more complete <a href=
"../../package/jmri/jmrit/logix/Warrant.shtml">Warrants Help</a>, including the section "Get
Started with Warrants." See also the <a href="../../../../community/clinics/">clinic
presentation</a> by Dick Bronson: <a href=
"http://www.rr-cirkits.com/Clinics/Clinics.html">JMRI 2014: Automatic Train Control Using
Warrants</a> (in two parts and a little out-of-date, but still useful for getting
started).</p>
<p>A Warrant in JMRI is a collection of information sufficient to run an automated train. It
will set the turnouts for a specified route and drive the train over the route. When running
using block occupancy detection and signal configuration, it will make a best effort to
control speed according to signal aspects or by occupancy of other trains or other track
conditions ahead. Trains can also be tracked on the panel as they run on the layout.</p>
<p>A JMRI Warrant is suggestive of what a warrant is used for on a prototype railroad, but
there is no intention to replicate any particular railroad's mode of operation. It is simply
the idea of giving an automated train the trackage rights to move from point A to point B
(and then move it along).</p>
<p>Warrants are issued using the <a href=
"../../package/jmri/jmrit/display/ControlPanelEditor.shtml">Control Panel Editor</a> and the
<a href="../../package/jmri/jmrit/logix/WarrantTable.shtml">The Warrants List</a> which is
available in Control Panel Editor. The Warrants List is only available when the building
blocks for warrants (OBlocks, OPaths, and Portals) have been previously defined. These
elements are created by:</p>
<ul>
<li>entering data directly into the <a href=
"../../package/jmri/jmrit/logix/OBlockEdit.shtml">Occupancy Block Table</a> (under
Tools &rArr; Tables),
</li>
<li>creating them based on Layout Editor <a href="Blocks.shtml">Blocks</a> (select "Import
Blocks as Occupancy Blocks" under <strong>Option</strong> in the Occupancy Block Table
window),
</li>
<li>or using the graphical interface of the <a href=
"../../package/jmri/jmrit/display/CircuitBuilder.shtml">Circuit Builder</a> (also part of
Control Panel Editor).
</li>
</ul>
<p>Note that OBlocks, OPaths, and Portals are stored independently of Blocks used by the
Layout Editor. Sensors used for determining occupancy can be used simultaneously by both
Blocks and OBlocks.</p>
<p>Trains are tracked on the CPE panel as they run on the layout if the layout includes
<a href="../../package/jmri/jmrit/logix/Tracker.shtml">Indicator Track Icons.</a></p>
<h2 id="types">Warrant Types</h2>
<p>There are three types of Warrants available:</p>
<ul>
<li>A <strong>Recorded Script Warrant</strong>, where throttle commands are recorded from a
throttle you use to drive a train over preselected route. The Warrant then replicates all
the commands when played back.</li>
<li>An <strong>NX Warrant</strong> (eNtry/eXit), where throttle commands are generated
automatically to move a train between Blocks chosen by you "on the fly".</li>
<li>A <strong>Fast Reacting</strong> Warrant. This type does not follow the usual Warrant
rules, but reacts to signals when entering their approach block with an immediate speed
change. This type of warrant is better suited to smaller layouts.</li>
</ul>
<h2 id="creating">Creating a Warrant</h2>
<p>A Warrant consists of two parts:</p>
<ul>
<li>The <strong>Route</strong> over which a Train will run</li>
<li>the <strong>Commands</strong> it will receive when running over the route.</li>
</ul>
<p>To define the commands for a Warrant, you drive the train over the route you selected and
the commands you used are recorded for playback later. For an NX Warrant, commands are
generated automatically for the route you have selected.</p>
<h3 id="CreateRoute">Creating the Route</h3>
<p>A Warrant Route is a series of <em>Block Paths</em> (OBlocks, OPaths) linked together so a
train may travel over it. A Warrant Route is created by first choosing an <em>Origin
block</em> (an OBlock), a starting path (OPath) and a portal (Portal) to exit the Originating
block. Then, a <em>Destination block</em> (another OBlock) is chosen and a path (an OPath) on
which to end the route. Optionally, you may also choose a <em>Via</em> Block, that is, an
OBlock the route <strong>must</strong> include and an <em>Avoid</em> Block, that is, any
OBlock the route <strong>must not</strong> include.</p>
<h3 id="record">Recording the Commands</h3>
<p>The second part of a Warrant comprises the throttle commands to control the train as it
traverses the route. These commands are recorded automatically by running a train over the
route in "Learn Mode" or are generated automatically as an "NX Warrant". The command script
contain the elapsed time between commands so that playback will attempt to duplicate this
timing. If, however, a Warrant is run with a different engine or a different consist, or even
the same engine depending on whether its motor is hot or cold, this timing may not be exact.
The command script will synchronize upon entering each detection OBlock by either issuing
additional commands immediately if the train is fast or waiting to issue commands if the
train is slow.</p>
<h2 id="reading">More Warranted Reading</h2>
<ul>
<li>
<a href="../../package/jmri/jmrit/logix/WarrantTable.shtml">The Warrant List</a>: table
from which you can control warrant routes and dispatch trains
</li>
<li>
<a href="../../package/jmri/jmrit/logix/NXWarrant.shtml#prefs">Preferences related to
Warrants</a>
</li>
<li>
<a href="../../package/jmri/jmrit/logix/OBlockTable.shtml">Definitions of OBlocks,
Portals and OPaths</a>
</li>
<li>
<a href="../../package/jmri/jmrit/logix/OBlockEdit.shtml">Creating OBlocks, Portals and
OPaths using tables</a>
</li>
<li>
<a href="../../package/jmri/jmrit/display/CircuitBuilder.shtml">Using the Circuit Builder
Tool</a> for creating OBlocks, Portals and Paths
</li>
<li>
<a href="../../package/jmri/jmrit/logix/CreateEditWarrant.shtml">Creating and Editing
Warrants</a>.
</li>
<li>
<a href="../../package/jmri/jmrit/logix/Tracker.shtml">Using Train Trackers</a> to
display the identity of trains as they are moved by operators from one occupancy block to
another.
</li>
<li>
<a href="../../package/jmri/jmrit/logix/NXWarrant.shtml">About NX Warrants</a> and
creating temporary eNtry/eXit (NX) Warrant.
</li>
<li>
<a href="../../package/jmri/jmrit/logix/SpeedChanges.shtml">How Warrants handle speed
changes</a>
</li>
<li>
<a href="../../../../community/clinics/">Clinic presentation</a> by Dick Bronson:
<a href="http://www.rr-cirkits.com/Clinics/Clinics.html">NMRA 2014 Automatic Train
Control Using Warrants</a> (in two parts)
</li>
</ul>
<!--#include virtual="/help/en/parts/Footer.shtml" -->
</div>
<!-- closes #mainContent-->
</div>
<!-- closes #mBody-->
<script src="/js/help.js"></script>
</body>
</html>