/
Sections.shtml
296 lines (249 loc) · 14.3 KB
/
Sections.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
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.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">
<title>JMRI: Sections Documentation</title>
<meta http-equiv="Content-Type" content=
"text/html; charset=us-ascii">
<meta name="author" content="Dave Duchamp">
<meta name="keywords" content="JMRI help Sections">
<!--#include virtual="/Style" -->
</head>
<body>
<!--#include virtual="/Header.shtml" -->
<div id="mBody">
<!--#include virtual="Sidebar.shtml" -->
<div id="mainContent">
<h1>JMRI: Sections Documentation</h1>
<p>This document describes the characteristics of Sections. Sections and
Transits provide the foundation for the Dispatcher tool.</p>
<p>Links:</p>
<ul>
<li><a href="../../package/jmri/jmrit/beantable/SectionTable.shtml">Using the Section Table</a></li>
<li><a href="../../package/jmri/jmrit/beantable/SectionAddEdit.shtml">Add/Edit Section</a></li>
<li><a href="Transits.shtml">Transits Documentation</a></li>
<li><a href="../../package/jmri/jmrit/dispatcher/Dispatcher.shtml">Dispatcher Documentation</a></li>
</ul>
<h2>What is a Section?</h2>
<p>A <strong>Section</strong> is a group of one or more connected
<strong>Blocks</strong> that may be allocated to a train traveling in a
given direction. Sections were created to solve the direction
problem that can occur when using Blocks directly. A Section
has only two directions, "forward" or "reverse". Sections can
be traversed by a Train in either direction. Section
direction is independent of the direction set for the
locomotive by a throttle. In addition to solving the
direction problem, Sections offer the user other useful
features.</p>
<!-- image by Egbert Broerse @silverailscolo 2018 -->
<img src="images/DispatcherSection.png" width="842" height="137" alt="sample sections">
<p>Sections can be considered an extension of Blocks. Many
Sections contain only one Block. All Blocks contained in a
multi-Block Section must be different. Blocks are kept in
order--the first block is connected to the second, the second
is connected to the third, etc. That means a Block in a
Section must be connected to the Block before it (if there is
one) and to the Block after it (if there is one), but may not
be connected to any other Block in the Section. A Section may
not contain any reverse loops.</p>
<p>Sections and their associated <strong><a href="Transits.shtml">Transits</a></strong>
are designed to provide support for dispatching, either
manual dispatching (by a dispatcher sitting at a panel), or
automatic dispatching by the computer. Dispatching is the
temporary allocation of Sections for the exclusive use of
a train, either run by an engineer with a throttle, and/or run
automatically by the computer. Support for dispatching is
provided by <a href=
"../../package/jmri/jmrit/dispatcher/Dispatcher.shtml"><strong>Dispatcher</strong></a>,
which also provides for set up and running of trains
automatically.</p>
<p>A Section's <strong>direction</strong> is defined by the sequence in
which Blocks are added to a multi-Block Section. For a single
Block Section the direction is chosen arbitrarily when the
Section is created. A train may run through a Section in
either the <strong>forward</strong> direction (from first block to last
block) or <strong>reverse</strong> direction (from last block to first
block). If a Section has only one Block, the <strong>direction</strong>
of that Section is chosen when setting up its <strong>Entry
Points</strong> (see below).</p>
<p>Therefore, when setting up multi-block sections, you
should choose blocks in the same order across the layout for
sequentially connected sections. That way, the forward and
reverse directions will have consistent meaning for sections
on a relative basis. For example, a loop style layout might declare clockwise
to be forward. A point-to-point layout might define left to right as forward.</p>
<p>A Section has one or more <strong>Entry Points</strong>. An Entry
Point defines a connection from a Block inside the Section to
a Block outside of the Section. Entry Points are set up using
Paths of Blocks in the Section--Paths that represent
connections to Blocks not contained in the Section. Entry
Points are classified in one of two ways:</p>
<ol>
<li>Whether entering the Section at that Entry Point will
result in a train traveling in the "forward"
direction.</li>
<li>Whether entering at that Entry Point will result in a
train traveling in the "reverse" direction.</li>
</ol>
<p>Sections are designed to be allocated to one train at a
time. If a portion of connected track is long enough to
support multiple trains simultaneously traveling in the same
direction, one following the other, that connected track
should be divided into two or more Sections, if the user
wants to run following trains in that area.</p>
<h2>Direction and Stopping Sensors</h2>
<p>Optionally, each Section may have two <em>direction
sensors</em>, one for the Forward direction and one for the
Reverse direction. These are normally internal Sensors,
bearing system names that begin with IS. They automatically
follow the state of their Section. A Section has three
states: <strong>FREE</strong> (not allocated to a train),
<strong>FORWARD</strong> (allocated for travel in the forward
direction), and <strong>REVERSE</strong> (allocated for travel in the
reverse direction. When the state of the Section is
<strong>FREE</strong>, both direction sensors are set <strong>ACTIVE</strong>.
When the state of the Section is <strong>FORWARD</strong>, the forward
direction sensor is <strong>INACTIVE</strong> and the reverse direction
sensor is <strong>ACTIVE</strong>. Similarly, when the state of the
Section is <strong>REVERSE</strong>, the forward direction sensor is
<strong>ACTIVE</strong> and the reverse direction sensor is
<strong>INACTIVE</strong>. These sensors may be used in signal logic to
force signals for travel in the direction opposite to the
allocated direction to <strong>RED</strong> (Stop). Tools are provided in
the Section Table menu to automatically add direction sensors
to signal logic or to automatically remove all direction
sensors from signal logic. Alternatively, if <a href=
"../../package/jmri/jmrit/dispatcher/Dispatcher.shtml"><strong>Dispatcher</strong></a> is
being used, it can add direction sensors to signal logic as
needed.</p>
<p>The direction sensors can also be used with Signal Mast Logic. The
direction sensors are manually added or removed using the Signal Mast Logic
<strong>Sensor</strong> tab. Select the direction sensor that corresponds
to the direction to the destination mast and set the desired state to INACTIVE.
As indicated above, the direction sensors are normally ACTIVE. This forces
signal mast logic to set the mast aspect to Stop. When a transit is activated,
the Forward or Reverse direction sensors for the sections in the transit are set
to INACTIVE. This triggers signal mast logic to update the signal mast aspect.
</p>
<p>Also optionally each Section may have two <em>stopping
sensors</em> that indicate when a train in the Section has
reached the end of the Section by traveling in the forward
direction or in the reverse direction. Stopping sensors
should be physical sensors on the layout, for example
infrared point detectors. For manual dispatching, these
sensors may be displayed on a panel to indicate to the
dispatcher when a train has reached the end of its
allocation. For automatic running, these sensors may be used
to stop a train before it reaches the end of its allocated
Section, and before it overruns a red signal, if signals are
present.</p>
<h2><a name='SignalMast' id="SignalMast">Using Signal Mast
Logic with Sections</a></h2>
<p>If your signaling is based on <a href=
"../../package/jmri/jmrit/beantable/SignalMastLogicTable.shtml">Signal Mast Logic</a>
and the associated logic has been generated using the Layout
Editor, then it is possible to also have Sections
automatically generated based upon that same logic.</p>
<p>The tool to accomplish this can be found in the <strong>Signal Mast
Logic Table</strong> | <strong>Tools</strong> | <strong>Generate Sections</strong>.
Running this will
immediately create Sections that each contain all of the
Blocks between any already-defined Signal Mast Pairs. It will
also set up each "Automatically Generated" Section so that
they include those Blocks in the correct order, with the
direction being set as FORWARD travel, going from the Source
to the Destination Signal Mast. Please note that the Block
details are not saved when the Panel is stored, but are
re-created when the file is loaded.</p>
<p>The tool will also automatically create forward and
reverse direction Sensors and place them in the Section.
However the Signal Mast Logic does not use the direction sensors
and their creation is only there to allow validation of the
Section (or inclusion by the user in unrelated Logix if
desired). If desired, they can be added to the signal mast logic as
described above.</p>
<p>Sections generated with the tool will only have a pair of
Entry Points and simply follow the Path between the two
Signals.</p>
<p>The details of the Optional Direction and Stopping Sensors
are saved when the Panel file is stored.</p>
<p>To use the Sections that have been built this way, you will
next need to set up <a href="Transits.shtml">Transits</a>.
Following that, you will also need to set the <a href=
"../../package/jmri/jmrit/dispatcher/Dispatcher.shtml"><strong>Dispatcher</strong></a>
to use SignalMast Logic via the Dispatcher's <a href=
"../../package/jmri/jmrit/dispatcher/Options.shtml"><strong>Options</strong></a> menu.</p>
<h2>Requirements</h2>
<p>Sections build on JMRI's Blocks and Path structures. So before attempting to
create any Sections, you should have Blocks and Paths fully initialized for your
layout. A Layout Editor panel of your layout with Blocks assigned is required to
create the necessary path information. See
<a href="../../package/jmri/jmrit/display/LayoutEditor.shtml">Layout Editor</a>
for details on creating a Layout Editor panel.</p>
<p>Layout blocking should be carefully planned, to provide
"<em>reasonable</em>" Sections--Sections that make sense for a
Dispatcher to allocate to a certain Train. For right-handed
or left-handed Turnouts switching mainline track, for
example, this usually means including the Turnout in the same
Block as the track entering at the Turnout throat, and
providing separate Blocks for continuing and diverging
tracks. Some users prefer to have a Turnout in a separate
Block, and that works fine also. From a Dispatching
perspective, tracks of mainline Turnouts that branch to
industries do not need to be separately blocked, but blocking
here is acceptable. A layout blocking scheme that works well
for Signals, should work fine for Sections also.</p>
<p>Signals are not required for using Sections, but Sections
will work fine with Signals installed. If Signals are
installed, the direction Sensors included in Sections provide
an easy way to set up simple APB signaling (see <a href=
"#SignalMast">above</a>).</p>
<h2>How to setup Sections</h2>
<h3>Creating and Displaying Sections</h3>
<p>All the Sections that JMRI knows about can be viewed using
the <a href=
"../../package/jmri/jmrit/beantable/SectionTable.shtml">Section
Table</a>. Select <strong>Sections</strong> in the <strong>Tables</strong>
submenu of the <strong>Tools</strong> menu of the main JMRI program
window. Sections can either be created manually from the
Section Table pane, or they can be created automatically if
you also plan to use <a href=
"#SignalMast">
Signal Mast Logic</a>.</p>
<h3>Section Table Controls</h3>
<p>Below the Section Table there's an <a href=
"../../package/jmri/jmrit/beantable/SectionAddEdit.shtml">Add...</a>
button.</p>
<p>The <a href=
"../../package/jmri/jmrit/beantable/SectionTable.shtml#tools">
<strong>Tools</strong></a> menu gives access to:</p>
<ul>
<li>Validate All Sections...</li>
<li>Set Direction Sensors in Logic...</li>
<li>Remove Direction Sensors from Logic...</li>
</ul>
<h3>Creating a new Section</h3>
<p>To Create a new Section, click the "<a href=
"../../package/jmri/jmrit/beantable/SectionAddEdit.shtml">Add..."</a>
button.</p>
<h3>Saving Sections to disk</h3>
<p>Use the <strong>Store</strong> item in the <strong>File</strong> menu of the
Section Table (or the <strong>Store Panels...</strong> item in the
<strong>Panels</strong> menu of the main JMRI window) to save Section
information to disk, allowing to
<a href="../../package/jmri/jmrit/display/PanelMenuHelp.shtml">reload
it</a> next time you run JMRI.
This information (and any modified
signal logic information) is saved with the configuration and
panels in an XML file, along with control panel setup and
similar stuff. To store your panels in the same file
(recommended), select <strong>File>Store>Store Configuration
and Panels To File...</strong> or select <strong>Panels>Store
Panels...</strong> in the main JMRI window.</p>
<!--#include virtual="/Footer.shtml" -->
</div><!-- closes #mainContent-->
</div><!-- closes #mBody-->
</body>
</html>