-
Notifications
You must be signed in to change notification settings - Fork 331
/
SimpleSignalExample.shtml
461 lines (393 loc) · 20.4 KB
/
SimpleSignalExample.shtml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
<meta name="generator" content=
"HTML Tidy for Mac OS X (vers 31 October 2006 - Apple Inc. build 15.17), see www.w3.org">
<!-- Copyright Bob Jacobsen 2008 -->
<title>JMRI: Simple Signal Logic Example</title>
<meta name="author" content="Bob Jacobsen, Egbert Broerse">
<meta name="Date.Modified" content="20151107">
<!-- Style -->
<meta http-equiv="Content-Type" content=
"text/html; charset=us-ascii">
<link rel="stylesheet" type="text/css" href="/css/default.css"
media="screen">
<link rel="stylesheet" type="text/css" href="/css/print.css"
media="print">
<link rel="icon" href="/images/jmri.ico" type="image/png">
<link rel="home" title="Home" href="/">
<!-- /Style -->
</head>
<body>
<!--#include virtual="/Header" -->
<div id="mBody">
<!--#include virtual="Sidebar" -->
<div id="mainContent">
<!-- Page Body -->
<h1>JMRI: Simple Signal Logic Example</h1>
<p class="important">Don't use the Simple Signal Logic (SSL)
Tool when you have already built Signal Masts and the more
advanced Signal Mast Logic in the same Panel/Configuration
file.</p>
<p>This page provides an example of using the JMRI <a href=
"../../../package/jmri/jmrit/blockboss/BlockBossFrame.shtml">Simple
Signal Logic</a> (in short: SSL) to control Signals Heads
connected to a Digitrax SE8C board. This also works for other
types of <i>single head</i> hardware signals, including LEDs
connected to stationary decoders, C/MRI systems, etc.<br>
Please try our <a href="#example1">ready-to-use example</a>
as a starter for <a href="#setup">setting up your own
SSL</a>.</p>
<p>Modeling railroad signaling on a layout can be done in
many different ways, ranging from "stoplights" to complete
emulation of a particular prototype's signaling rule book.
For more information on the various possibilities, please see
the <a href="index.shtml">JMRI Signaling help page</a>.
<a id="example1" name="example1"></a></p>
<h2>Predefined example</h2>
<p>A predefined SSL example is provided in the JMRI
installation (see the <a href=
"http://jmri.org/download">download page</a> for information
on downloading). To use this example:</p>
<ul>
<li>Start the PanelPro program, and select "Preferences..."
from the Edit menu (from the PanelPro menu on OS X). On the
pane that opens, click Connections at left and then select
"Digitrax" as the System Manufacturer and "LocoNet
Simulator" as the System Connection. Click the <b>Save</b>
button at the bottom left of the Preferences pane and quit
PanelPro. This will let you use the example (which uses
LocoNet addresses for Signal Heads, Turnouts and Sensors)
even when your computer is not connected to a layout of any
kind.</li>
<li>Restart the PanelPro program.</li>
<li>From the "Panels" menu, select "Open Panels..." and
navigate to the file "SE8cSignalExample.xml" in the
<a href="../../../../../xml/layout/">JMRI/xml/layout/</a>
directory. Note that you may have to look around for this
file; it's in the same place that you installed the
program.<a href="images/StartPanel.png"><img src=
"images/StartPanel.png" align="right" width="317" height=
"173" hspace="0" vspace="2" alt=
"Demo screen at startup"></a></li>
<li>You should now see a simple schematic Panel for a
layout consisting of a loop of track and one passing siding
(like the non-functioning image to the right; click to
enlarge).
<p>Because there's no connection to a real layout, the
status of the Sensors and Turnouts isn't initially known.
Our example shows this by displaying the Sensor icons as
Red, and the Turnout icons as [?] meaning "not connected
either way". Since the Simple Signal Logic isn't sure yet
whether Blocks are occupied nor how Turnouts are set, it
shows a "Red" Appearance on all Signal Heads.</p>
<p>You can click on your Panel icons to change the
occupancy and turnout status, or use another tool (e.g.
the Turnout Table) to do that.</p>
<p>Click on each of the Turnout icons to set them
"Closed". Click on the Sensor icons to set them
"Unoccupied", which is shown as a grey circle ("Occupied"
would be indicated by a yellow circle).</p>
</li>
<li>The display should now look like the image to the
right. <a href="images/SensorsCleared.png"><img src=
"images/SensorsCleared.png" align="right" width="317"
height="173" hspace="0" vspace="2" alt=
"Demo screen in clear state"></a> Both signals on the
passing siding are Red, as the Turnouts are thrown against
them. All the signals on the mainline show a Green
Appearance.
<p>If you "hover" the cursor over an item on your Panel,
a tooltip will pop up with information about the item.
For example, a Turnout might pop up "Turnout 1 (LT1)".
LT1 is the "System Name" for that Turnout. In this case,
it means "LocoNet Turnout with address 1". "Turnout 1" is
the "User Name", which can be anything you want it to be
as long as it is unique on your Panel. You can edit these
from the "Turnout Table" accessed from the Tools >
Tables > Turnouts menu.<br>
Signal Heads and Sensors are identified using similar
names (see the <a href=
"../../doc/Technical/Names.shtml">JMRI help page on
System Names and Naming</a>).</p>
</li>
<li>You can now click on the Sensor icons to learn how the
Signals react to the presence of a train. For example, the
image to the right shows a train entering the passing
siding from the left side. It's about to encounter a Yellow
signal upon entering the siding, which tells it to be
prepared to stop for a Red signal at the far end of the
siding.<br>
<a href="images/SensorTuroutsSet.png"><img src=
"images/SensorTuroutsSet.png" align="right" width="317"
height="173" hspace="0" vspace="2" alt=
"Demo screen with two trains"></a> Note that the rear of
this train is protected by a Red signal, which in turn is
protected by a Yellow signal in the preceding Block.
Another train is just leaving onto the main going to the
right.</li>
<li>If you're interested in how the program would
communicate with a real Digitrax SE8c signaling board, you
can open the "Monitor LocoNet" tool from the LocoNet
menu.<br>
In the pane that opens, you will see that clicking on a
Turnout icon sends a LocoNet message to move that
Turnout. Clicking on a Sensor icon sends a message as if
a BDL16 sensor channel had seen a change in occupancy. If
either of those messages results in a change to the
signals, the program will send messages to the
corresponding SE8c channels to change their output to
match. For example, when the train in the previous image
enters the block on the right side (Block 1), the
messages are:
<pre>
<!-- Updated for panel included in JMRI 4.1.3 -->
Sensor LS1 (Block 1) is Hi. (BDL16 #1, DS1; DS54/64/SE8c #1, AuxA/A1/DS01)
Requesting Switch at LT285 () to Thrown (output On).
Requesting Switch at LT291 () to Thrown (output On).
Requesting Switch at LT282 () to Thrown (output On).
</pre>These three switch messages set Signal Heads 4C, 5B and 4A to
Red, Red and Yellow respectively.
</li>
<li>To learn how signals are configured in SSL, open the
"Simple Signal Logic" item in the Tools menu.<a href=
"../../../images/SslExample.png"><img src=
"../../../images/SslExample.png" align="right"
width="452" height="287" hspace="0" vspace="0" alt=
"Simple Signal Logic Window"></a> In the pane that opens,
enter a Signal (Head) Name, e.g. "Section 5A", in the top
text field and hit the Return key. You should get
something like the image to the right (click to enlarge).
"Section 5A" is the name of the Signal (Head) protecting
Turnout "LT2", the right-hand entrance to the passing
siding.
<ul>
<li>It is defined here as an "On Facing-Point Turnout"
signal.</li>
<li>It protects Sensor "LS7" by turning Red when the
Sensor detects a train in the Block monitored by
LS7.</li>
<li>It watches the status of Turnout "LT2".<br>
To Protect Signal: When Turnout LT2 is "Closed", signal
"Section 5A" will be Yellow when Signal Head LH261,
located on the mainline between the turnouts, is
Red.<br>
And Protect Signal: When Turnout LT2 is "Thrown",
signal "Section 5A" will be Yellow when Signal Head
LH263 at the entrance to the passing siding is
Red.</li>
<li>The "With Flashing Yellow" checkbox isn't selected
in our example, but if it was, signal "Section 5A"
would protect a Yellow signal further on by displaying
a Flashing Yellow.</li>
<li>If you check the "Distant Signal" box, the Signal
Head you're controlling here is programmed to show the
same or a more restrictive Appearance as the next
signal, instead of possibly one faster. Instead of
showing Yellow before a Red, it will show a Red.</li>
</ul>You can change any of these settings and click
"Apply" at the bottom of the pane to put them into
effect, then click on the example Panel to see how the
new settings work.
</li>
</ul><a name="setup" id="setup"></a>
<h2>Setting up your own example</h2>The complete set of steps
involved in creating this example are:
<ol>
<li>Launch and configure the PanelPro application. Restart
it to have your preferences take effect.<br>
For more information on launching and configuring PanelPro,
please see the <a href=
"../../apps/PanelPro/PanelPro.shtml">PanelPro help
page</a>.</li>
<li>Tell the program about your Sensors:
<ul>
<li>From the Tools menu, open the "Tables" >
"Sensors" tool.</li>
<li>If you have a Digitrax DCC system with your
occupancy detectors connected to LocoNet, just power
the track Off and On using either a DT-series throttle
or the "Power Control..." pane from the Tools menu.
PanelPro will capture all sensor addresses from the
resulting LocoNet traffic.</li>
<li>For layouts with a different System Connection, use
the "Add..." button at the bottom of the Sensor Table
to create the needed sensors.</li>
</ul>
</li>
<li>Save your work by selecting "Save Panels..." from the
"Panels" menu, typing a filename, and hitting "Save
Panels". (You might want to do this often!)</li>
<li>Tell the program about your computer-driven Turnouts:
<ul>
<li>From the Tools menu, open the "Tables" >
"Turnouts" tool.</li>
<li>If you have a Digitrax DCC system, just throw or
close each Turnout from a throttle. PanelPro will
capture the Turnout addresses from the resulting
LocoNet traffic.</li>
<li>You can also use the "Add..." button on the Turnout
Table to open a pane to enter new Turnouts.</li>
<li>The "Turnout Control..." pane, found in the Tools menu,
also creates a new Turnout entry for every turnout
address you operate.</li>
</ul>
</li>
<li>If you have Signal Heads connected to "turnout-type"
outputs, tell the program about those Turnout addresses too
(SE8C users skip this step).
<a name="definesignals" id="definesignals"></a></li>
<li>
Tell PanelPro
how your Signal Heads are addressed:<a href=
"../../../package/jmri/jmrit/beantable/images/SigHeadTable.png"><img src="../../../package/jmri/jmrit/beantable/images/SigHeadTable.png"
align="right" width="299" height="118" hspace="0" vspace=
"0" alt="Signal Head Table Figure"></a>
<ul>
<li>From the PanelPro <b>Tools</b> menu, open the <b>Tables
> Signals > Signal Heads</b> tool.</li>
<li>Click the "<a href=
"../../../package/jmri/jmrit/beantable/SignalAddEdit.shtml">Add...</a>"
button at the left bottom of the table to pop a pane.
At the top are several choices for your type of Signal
Head driver:
<dl>
<dt>Triple Output</dt>
<dd>A Signal Head Connection Type with
red/yellow/green lights that are driven by three
separate outputs. The outputs are driven by JMRI
turnout logic, and appear in the Turnout Table.<br>
To configure one of these, enter the name you want
to give it (typically something like "IH2"), and
the address numbers of the three outputs that drive
the lamps (like "258" etc.).</dd>
<dt>Double Output</dt>
<dd>A Signal Head Connection Type with lights that
are driven by two output connections. The two
outputs drive red and green lights separately;
PanelPro will turn them both On to make yellow. The
outputs are driven by JMRI turnout logic, and
appear in the Turnout Table.<br>
To configure one of these, enter the name you want
to give it (typically something like "IH2"), and
the address numbers of the two outputs that drive
the lamps (like "258" etc.).</dd>
<dt>SE8c 4 Aspect</dt>
<dd>This Connection Type is for Signal Heads driven
by a Digitrax SE8c decoder.<br>
Enter the lower of the two Turnout addresses that
this Signal Head responds to. For example, if it's
the first Signal Head on your first SE8c board, you
can control it by setting Turnouts 257 and 258 with
your throttle. Enter "257" in the Turnout Number
box on the pane.<br>
Note: The SE8c board should be configured so that
the "4th aspect" is "Dark"; JMRI will handle any
flashing that's needed.</dd>
<dt>And many more...</dt>
<dd>Other signal driver options are "DCC Signal
Decoder" and "Acela", among many others (you may
have to scroll up or down to see them all).<br>
See the <a href="SignalHeads.shtml">Signal Heads
help page</a> for more information an each.</dd>
</dl>Once you've set the options, click "OK". You can
use this pane repeatedly to enter as many Signal
Heads as you have.
</li>
</ul>
</li>
<li>Configure your signaling logic using the Simple Signal
Logic (SSL) Tool.<br>
Open the "Simple Signal Logic" tool from the "Tools"
menu. You should get a pane with a number of fields:
<a href="../../../images/SslExample.png"><img src=
"../../../images/SslExample.png" align="right"
width="452" height="287" hspace="2" vspace="0" alt=
"Simple Signal Logic Window"></a>
<ul>
<li>In the top box, enter the name of the Signal Head
you want to configure.</li>
<li>The radio buttons below that select one of four
possible uses for this signal:
<ul>
<li>"On Single Block" - this signal protects one
end of a straight through block, with no signaled
turnouts</li>
<li>"Main Leg of (trailing-point) Turnout" - this
signal is along the main route through a turnout,
which is defined as the direction taken by trains
when the turnout is "Closed". It's protecting the
frog of the turnout so that trains will stop before
running through a turnout set against them.</li>
<li>"Diverging Leg of (trailing-point) Turnout" -
this signal is along the diverging route through a
turnout, which is defined as the direction taken by
trains when the turnout is set to "Thrown". It's
protecting the frog of the turnout so that trains
will stop before running through a turnout set
against them.</li>
<li>"On Facing-Point Turnout" - this signal is
protecting the points-end of a turnout. Depending
on whether the Turnout you watch is "Thrown" or
"Closed", the train will take one of two different
routes, and the Signal will protect different next
Blocks, which you fill in next.</li>
</ul>
</li>
<li>If you want the Signal Head to go Red when a Sensor
shows Occupied (sensor active), enter the Sensor Name
in the next box.</li>
<li>If this signal is protecting travel in the trailing
point direction through a turnout, you can have the
Signal Head show Red if the turnout is thrown against
the train. To do this, enter the Turnout Name to be
monitored in the 3rd box, and select whether the Signal
Head should be Red when the Turnout is either Thrown or
Closed.</li>
<li>If you want multi-block logic, e.g. Absolute Block
Signaling "Light", enter the name of the following
Signal Head in the last box. When that Signal Head
shows Red, the one you're now configuring will be set
to Yellow to warn the engineer that the train must be
able to stop at the next signal.<br>
<br>
If you'd like to give an additional warning, check the
"With Flashing Yellow" checkbox. In that case, the
signal before a Red will show Yellow, and the signal
before that Yellow will show a Flashing Yellow.<br>
<i>We suggest you use the newer <a href=
"AspectSignaling.shtml">Aspect Based Signaling</a>
instead of SSL for any more complex setup.</i></li>
<li>Once you've set the options, click "Apply". You can
use this form repeatedly to enter as many as you'd
like, each with it's own unique name of course.</li>
</ul>
</li>
<li>Once you save your work by selecting "Store
Configuration and Panels To File..." from the File menu,
you're done!</li>
</ol>
<p>Now try out your Simple Signal Logic by operating your
layout.<br>
Although it's a lot less fun than actually running the
layout, you can also test your Simple Signal Logic by
changing Turnout and Sensor states on the computer itself.
Just click on the status information in one of the Tables to
change it. For example, if Turnout "LT23" is showing "Thrown"
in the Turnout Table, click on that word to change it to
"Closed". The signal icon will update to the new
Appearance.</p>
<p>You can create a small Control Panel to do this
graphically. For more info on how to do that, see the
<a href="../../apps/PanelPro/Panels.shtml">Panels help
page</a>.</p>
<p>Back to <a href=
"../../../package/jmri/jmrit/blockboss/BlockBossFrame.shtml">Simple
Signal Logic help page</a>.</p>
<p>Located at en\html\tools\signaling\ </p>
<!--#include virtual="/Footer" -->
</div>
</div>
</body>
</html>