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

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 &gt; 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>