229 lines
13 KiB
Plaintext
229 lines
13 KiB
Plaintext
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta name="generator" content="HTML Tidy for HTML5 for Apple macOS version 5.8.0">
|
|
<!-- Copyright Kevin Dickerson 2011 -->
|
|
|
|
<title>JMRI: Signal Mast Logic introduction</title>
|
|
<meta name="Author" content="Bob Jacobsen, Egbert Broerse">
|
|
<meta name="Date.Modified" content="20140614"><!--#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: Signal Mast Logic</h1>
|
|
|
|
<h2>Introduction to SML</h2>
|
|
|
|
<div class="para">
|
|
JMRI Signal Mast Logic (in short: SML) allows you to build up a set of criteria for a
|
|
Signal Mast as to what Aspect it should be displaying for a specific route through to a
|
|
destination Signal Mast.
|
|
<p>Each Signal Mast Logic is built from a source and destination Signal Mast pair, along
|
|
with a series of Blocks, Turnouts and Sensors between the two Signal Masts and the state
|
|
that they must be in for the source Signal Mast to be released from a "Danger" or "Stop"
|
|
Aspect.</p>
|
|
|
|
<h3>Example 1</h3>
|
|
<img src="images/logic1.png" width="437" height="92" class="floatRight" alt="example 1">
|
|
<p>In this first example, you have a source Signal Mast SM20, and two destination Signal
|
|
Masts: SM22 and SM23.<br>
|
|
The logic behind signaling pair SM20 to SM23 is that Blocks 2 & 3 must be unoccupied, and
|
|
Turnout IT1 must be set to "Closed". Once those criteria are met Signal Mast SM20 will be
|
|
released from "Danger" to "Caution", if Signal Mast SM23 was set to "Caution" then SM20
|
|
would be set to "Proceed" and show a Green Aspect. As soon as Block 2 or 3 becomes Active
|
|
or Turnout 1 is set to Thrown, the Signal Mast SM20 is set back to "Danger".</p>
|
|
|
|
<p>Each Signal Mast pair must be directly reachable from the other, without any other other
|
|
Signal Mast in-between in the same direction.</p>
|
|
|
|
<h3>Example 2</h3>
|
|
<img src="images/logic2.png" width="511" height="93" class="floatRight" alt="exmaple 2">
|
|
<p>In this second example, a Signal Mast Logic from SM20 to SM24 would be invalid as SM23
|
|
is in between the two. You would have to create two separate Signal Mast Logics, one as in
|
|
example 1 for SM20 to SM23, the second for SM23 to SM24.</p>
|
|
|
|
<p>Which Aspect our source Signal Mast displays after being released from "Danger" is
|
|
firstly determined by the Aspect mapping that has been defined in the Signal Mast
|
|
Appearance definition file. If there is only one Aspect that could be displayed, then the
|
|
Signal Mast will be set to that Aspect.<br>
|
|
However if multiple Aspects could potentially be displayed then the logic looks at two
|
|
areas to determine the resulting Aspect to be displayed:</p>
|
|
|
|
<ul>
|
|
<li>Diverging route
|
|
<ul>
|
|
<li>If there are Aspects for a Diverging route and any of the Turnouts on the path
|
|
are set to Thrown then it will use the Aspect for a Diverging route.</li>
|
|
|
|
<li>If none of the Turnouts on the route are set to Thrown, then the Aspect that is
|
|
not designated as a Diverging aspect will be used.</li>
|
|
</ul>
|
|
</li>
|
|
|
|
<li>Block/Signal Speed
|
|
<ul>
|
|
<li>If the Diverging route is not available on the signal Aspects, or it does not
|
|
return a single potential Aspect, then the speed of the Block and speed rating of the
|
|
Aspect are used.<br>
|
|
Each Aspect and Block can be configured with a Speed value. The Signal Mast Logic
|
|
will take the lowest Speed defined on the Blocks in the route and choose the Aspect
|
|
with the highest Speed which is under the routes lowest speed. I.e. if the routes
|
|
lowest Speed is 65 mph, then it will choose the Aspect that has a speed equal or less
|
|
than 65 mph.</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
|
|
<p>In addition to being able to specify the Turnouts, Blocks and Sensors that make up a
|
|
Signal Mast Logic, you can also specify which other Signal Masts must be set to a specific
|
|
Aspect before the source Signal Mast can be released. In general, there should be no need
|
|
to add extra Signal Masts in the Signal Mast Logic as the route between all the different
|
|
source mast to destination mast Logis pair should have unique criteria. However there are
|
|
certain situation such as where two tracks crossover on the same level where a conflicting
|
|
route could be set. Therefore to get around this, the Signal Mast or Masts that are
|
|
protecting the crossover should be part of each others criteria.</p>
|
|
|
|
<h2>Manual and Auto Generated Logic Information</h2>
|
|
|
|
<p>The Signal Mast Logic window holds two areas showing Block and Turnout information: the
|
|
first is user generated, the second is where a tool such as used with the Layout Editor
|
|
(<a href="#autologic">see below</a>) has automatically built up a set of Blocks or Turnouts
|
|
from the panel layout as signaling criteria.</p>
|
|
|
|
<p>Both sets of information are used by JMRI to determine if a Signal Mast can be released
|
|
or not, however the manually created information has a higher priority over the
|
|
automatically generated information thus allowing the user to over-ride what the system has
|
|
determined.</p>
|
|
|
|
<p>The automatically generated information is not saved with the rest of the panel
|
|
information, but the manually generated user information is. If the Layout Editor is being
|
|
used to base the Signal Mast Logic on (<a href="#autologic">see below</a>) then JMRI will
|
|
rediscover this information from the panel each time it is loaded, and if any changes have
|
|
been saved in the meantime they will be discovered. Please note, that this re-generation of
|
|
information is not done on the "fly" when a Layout Editor panel is changed and saved
|
|
without exiting JMRI.</p>
|
|
|
|
<h2>Using the Layout Editor for Signal Mast Logic</h2>
|
|
|
|
<p>By using the Layout Block Editor, it is possible to have the Signal Mast Logic determine
|
|
the signaling pairs, along with the Blocks and Turnouts that make up the criteria. This can
|
|
be done across all the Signal Masts on the Layout Editor or on a source Signal Mast
|
|
basis.</p>
|
|
|
|
<p>It has the advantage that if the Layout Editor panel is changed, JMRI will discover this
|
|
change when the panel is reloaded and use the new Block and Turnout information. Please be
|
|
aware that the re-discover at load process will not discover any new Signal Logic pairs or
|
|
remove invalid Signal Logic pairs, it will simply update the information between existing
|
|
pairs.</p>
|
|
|
|
<h3>Placing Signal Masts</h3>
|
|
|
|
<p>Signal Masts can be placed at Turnouts, anchor points and level crossings, but only
|
|
where there is a boundary between two different layout blocks.</p>
|
|
|
|
<p>To add a Signal Mast using a Layout Editor Panel, right click on the Turnout, level
|
|
crossing or anchor point and if a block boundary exists you will be given the option to
|
|
"Set Signal Mast..."</p>
|
|
|
|
<h3>Example 3</h3>
|
|
<img src="images/popup.png" height="316" width="300" class="floatRight" alt=
|
|
"signal mast context menu">
|
|
<p>You will then be presented with a fresh window that allows you to enter in the name of
|
|
the Signal Mast that will protect a boundary between two blocks.<br>
|
|
For turnouts and crossings, you can only add a Signal Mast for the boundary going into the
|
|
turnout or crossing, it is not possible to add a Signal Mast for the boundary going out
|
|
from the turnout or crossing. E.g. if block A is the section of track attached to the
|
|
Turnout and the Turnout is in block B, you can only add a Signal Mast that faces into block
|
|
A that protects block B; you can not add a Signal Mast that faces into block B to protect
|
|
block A.</p>
|
|
|
|
<p>Using the Panel Editor and not having defined Blocks, the Signal Mast Logic can't be
|
|
automatically discovered as this type of Panel only displays individual icons over a layout
|
|
graphic so you have to manually add the connections as Blocks using the Blocks Tool or add
|
|
Signal Logic Pairs in the Signal Logic Table for every possible connection.<br>
|
|
Manually add Signal Icons to your panel by right-clicking and choosing "Add icon".</p>
|
|
|
|
<h2 id="autologic">Create Signal Mast Logic</h2>
|
|
|
|
<p>Signal Mast Logic can automatically be generated in three different ways:</p>
|
|
|
|
<ul>
|
|
<li>The first method is to build it on a Signal Mast by Signal Mast basis. This can be
|
|
done by selecting "Signal Mast Logic" from the pop up menu for the Signal Mast icon on
|
|
the panel. After click on the "Discover" button, the system will go and find all
|
|
potential destination Signal Masts that are valid from the selected Signal Mast.<br>
|
|
<img src="images/discover.png" width="502" height="209" alt=
|
|
"signal mast pairs list"></li>
|
|
|
|
<li><img src="images/pairs.png" width="308" height="125" class="floatRight" alt=
|
|
"auto disocver pairs"> The second method is from the <strong>Tools > Auto generate
|
|
Signaling Pairs</strong> menu in the Signal Mast Logic Table. This will generate Signal
|
|
Mast Logic based upon all the Signal Masts on the Layout Editor panel. If not yet active,
|
|
it will give you the option to activate Layout Block Routing.<br>
|
|
Please be aware that on large layouts with a large number of signal masts configured,
|
|
this can take some time.</li>
|
|
|
|
<li>It is even easier if you use hardware like <a href=
|
|
"http://www.rr-cirkits.com">RR-Circuits Signalman</a>, and the easiest using
|
|
pre-configured <a href="http://signalist.co.uk">Signalist SC1</a> that support the NMRA
|
|
signal aspect commands. You can skip the Signal Head and Layout Editor steps and go right
|
|
to creating the Signal Mast as a single entry and the hardware handles all of the
|
|
LED/lamp lighting, etc.
|
|
</li>
|
|
</ul>
|
|
|
|
<p>You manually add new Signal Mast Logic pairs by clicking either</p>
|
|
|
|
<ul>
|
|
<li>the "Add..." button at the bottom of the Signal Mast Logic table or</li>
|
|
|
|
<li>the "Add Logic" button at the bottom of the Signal Mast Logic Pairs pane.</li>
|
|
</ul>
|
|
Both will take you to the <a href=
|
|
"../../../package/jmri/jmrit/beantable/AddEditSignalingLogic.shtml">"Add Edit Signal Mast
|
|
Logic" pane</a>.
|
|
<h3>Changing Signal Mast Logic</h3>
|
|
<!-- JMRI groups message -->
|
|
Configuration of an existing Signal Mast Logic can be accessed from three different
|
|
locations:
|
|
<ul>
|
|
<li>In the <a href=
|
|
"../../../package/jmri/jmrit/beantable/SignalMastLogicTable.shtml">Signal Mast Logic
|
|
Table</a> there is an Edit button for each Signal Mast Logic pair.
|
|
</li>
|
|
|
|
<li>In the <a href="../../../package/jmri/jmrit/beantable/SignalMastTable.shtml">Signal
|
|
Mast Table</a>, there is an "Edit Logic" button for each Signal Mast, which opens a pane
|
|
from which you can select one of the Signalling Pairs set for this source Signal Mast.
|
|
</li>
|
|
|
|
<li>In the pop-up menu that appears when you right-click on a Signal Mast Icon on a
|
|
Layout Editor Panel, using the Signal Mast Logic menu item.</li>
|
|
</ul>
|
|
|
|
<h2>Logic to Un-Signaled Areas or Buffer Stops</h2>
|
|
|
|
<p>The Signal Mast Logic works only between a source and destination Signal Mast, so if you
|
|
have a valid route to an End Bumper/Buffer Stop/Dark Area, then there is no specific
|
|
destination Signal Mast. In this situation you would create a "dummy" Signal Mast of type
|
|
Virtual in the Signal Mast Table to act as your destination Signal Mast. It doesn't have to
|
|
represent a signal on the layout or have Signal Heads associated. All that this Virtual
|
|
Signal Mast has to do is display a "Danger" aspect.</p>
|
|
</div>
|
|
<!-- closes para-->
|
|
|
|
<p>Back to the <a href="index.shtml#tools">Signaling main help page</a>.</p>
|
|
<!--#include virtual="/help/en/parts/Footer.shtml" -->
|
|
</div>
|
|
<!-- closes #mainContent-->
|
|
</div>
|
|
<!-- closes #mBody-->
|
|
<script src="/js/help.js"></script>
|
|
</body>
|
|
</html>
|