aboutsummaryrefslogtreecommitdiff
path: root/assets/interlocking.lyx
diff options
context:
space:
mode:
authororwell96 <orwell@bleipb.de>2018-09-14 21:36:59 +0200
committerorwell96 <orwell@bleipb.de>2018-09-14 21:36:59 +0200
commit2596866b7488762c66547fb53db0d8a5eac972cc (patch)
treea7ab44a6c66c828721f35d4eb7baf66fbdb9910a /assets/interlocking.lyx
parentd837e7e5e9d2d6de7903e91b3efc36e0dd032b92 (diff)
downloadadvtrains-2596866b7488762c66547fb53db0d8a5eac972cc.tar.gz
advtrains-2596866b7488762c66547fb53db0d8a5eac972cc.tar.bz2
advtrains-2596866b7488762c66547fb53db0d8a5eac972cc.zip
Add interlocking guide/manual, silence debug outputs
Diffstat (limited to 'assets/interlocking.lyx')
-rw-r--r--assets/interlocking.lyx1157
1 files changed, 1157 insertions, 0 deletions
diff --git a/assets/interlocking.lyx b/assets/interlocking.lyx
new file mode 100644
index 0000000..9e9e94f
--- /dev/null
+++ b/assets/interlocking.lyx
@@ -0,0 +1,1157 @@
+#LyX 2.2 created this file. For more info see http://www.lyx.org/
+\lyxformat 508
+\begin_document
+\begin_header
+\save_transient_properties true
+\origin unavailable
+\textclass paper
+\use_default_options true
+\maintain_unincluded_children false
+\language english
+\language_package default
+\inputencoding auto
+\fontencoding global
+\font_roman "default" "default"
+\font_sans "default" "default"
+\font_typewriter "default" "default"
+\font_math "auto" "auto"
+\font_default_family default
+\use_non_tex_fonts false
+\font_sc false
+\font_osf false
+\font_sf_scale 100 100
+\font_tt_scale 100 100
+\graphics default
+\default_output_format default
+\output_sync 0
+\bibtex_command default
+\index_command default
+\paperfontsize default
+\spacing single
+\use_hyperref false
+\papersize default
+\use_geometry true
+\use_package amsmath 1
+\use_package amssymb 1
+\use_package cancel 1
+\use_package esint 1
+\use_package mathdots 1
+\use_package mathtools 1
+\use_package mhchem 1
+\use_package stackrel 1
+\use_package stmaryrd 1
+\use_package undertilde 1
+\cite_engine basic
+\cite_engine_type default
+\biblio_style plain
+\use_bibtopic false
+\use_indices false
+\paperorientation portrait
+\suppress_date false
+\justification true
+\use_refstyle 1
+\index Index
+\shortcut idx
+\color #008000
+\end_index
+\leftmargin 1cm
+\topmargin 1cm
+\rightmargin 1cm
+\bottommargin 1cm
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\paragraph_indentation 0bp
+\quotes_language english
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\tracking_changes false
+\output_changes false
+\html_math_output 0
+\html_css_as_file 0
+\html_be_strict false
+\end_header
+
+\begin_body
+
+\begin_layout Title
+Minetest Mod - Advanced Trains [advtrains]
+\end_layout
+
+\begin_layout Title
+Interlocking System Guide
+\end_layout
+
+\begin_layout Section
+Introduction
+\end_layout
+
+\begin_layout Standard
+In real-world railways, a so-called interlocking system is a set of railway
+ signals and trackside equipment.
+ Its purpose is to prevent conflicting train movements which otherwise could
+ result in derailing or colliding trains.
+ If you want more information, just search for
+\begin_inset Quotes eld
+\end_inset
+
+railway interlocking
+\begin_inset Quotes erd
+\end_inset
+
+ on the internet.
+\end_layout
+
+\begin_layout Standard
+Real-world interlocking systems perform this task by setting routes.
+ A route is a path along a track that a train can safely pass.
+ To set a route for a train, the signalman (the operator of a signal box)
+ has to set switches (turnouts) to the correct position and lock them in
+ order to make a signal for a train show
+\begin_inset Quotes eld
+\end_inset
+
+Proceed
+\begin_inset Quotes erd
+\end_inset
+
+.
+ In newer systems, this is done automatically by the interlocking system.
+ A route can not be set if switches are locked to a wrong position by another
+ route or if any portion of the route is occupied by a train.
+\end_layout
+
+\begin_layout Standard
+The interlocking system in this Minetest mod tries to follow real-world
+ interlocking systems as far as applicable.
+ It divides tracks into track sections and implements a route setting mechanism
+ following the same principle.
+\end_layout
+
+\begin_layout Standard
+However, for the sake of simplicity of implementation and usage, not all
+ concepts of real-world interlocking have been taken over.
+ Especially, there is no mechanism for overlap.
+\end_layout
+
+\begin_layout Standard
+If you are looking for a place to learn how real-world interlocking systems
+ work, have a look at
+\begin_inset Quotes eld
+\end_inset
+
+SimSig
+\begin_inset Quotes erd
+\end_inset
+
+.
+ By looking at their simulations, you can obtain experience on how to set
+ up your own interlocking systems in AdvTrains.
+ The SimSig glossary is a good place to look up unknown terms in this document.
+\end_layout
+
+\begin_layout Section
+Setting up track sections
+\end_layout
+
+\begin_layout Standard
+In the real world, a line of track is divided into so-called track sections,
+ or track circuits.
+ Those systems often can not tell where exactly a train is, but only which
+ track sections it occupies.
+ A route can never be set through an occupied track section.
+\end_layout
+
+\begin_layout Standard
+A track section often covers:
+\end_layout
+
+\begin_layout Itemize
+A section on a main running line, between two signals
+\end_layout
+
+\begin_layout Itemize
+A single turnout
+\end_layout
+
+\begin_layout Itemize
+A rail crossing, or a set of turnouts acting as a double/single slip switch
+\end_layout
+
+\begin_layout Itemize
+A siding
+\end_layout
+
+\begin_layout Standard
+You will find some examples on how to interlock certain patterns later.
+\end_layout
+
+\begin_layout Subsection
+Track Circuit Breaks
+\end_layout
+
+\begin_layout Standard
+In this mod, you will not directly configure the locations of track sections.
+ Instead, you designate the borders of each track section using a special
+ node, the Track Circuit Break, abbreviated TCB.
+\end_layout
+
+\begin_layout Standard
+For example, if you want to create a track section for a piece of a main
+ running line, you set up two TCBs at the ends of this track circuit.
+\end_layout
+
+\begin_layout Standard
+Setting up a TCB works as follows:
+\end_layout
+
+\begin_layout Enumerate
+Place a TCB node somewhere near the place where the circuit break is going
+ to be located.
+\end_layout
+
+\begin_layout Enumerate
+Right-click the TCB node
+\end_layout
+
+\begin_layout Enumerate
+Punch the rail which should act as TCB
+\end_layout
+
+\begin_layout Standard
+The result should look like this:
+\end_layout
+
+\begin_layout Standard
+\begin_inset Graphics
+ filename lyx_img/screenshot_20180830_142551.png
+ width 10cm
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Now you have assigned the TCB node to a rail.
+ Right-click the TCB node once again.
+ This will bring up a form which looks as follows:
+\end_layout
+
+\begin_layout Standard
+\begin_inset Graphics
+ filename lyx_img/Bildschirmfoto_2018-08-30_14-26-35.png
+ width 10cm
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+You see that the form is divided in side A and side B.
+ To designate where each side is, a marker is displayed on the rail.
+ You can always make this marker show up by punching the TCB node, and remove
+ it by punching the marker.
+ Both sides are shown as
+\begin_inset Quotes eld
+\end_inset
+
+End of interlocking
+\begin_inset Quotes erd
+\end_inset
+
+.
+ This means that there is no track section set up at this place.
+\end_layout
+
+\begin_layout Standard
+You should repeat this procedure once again a few meters away from the first
+ TCB to create a second TCB on the same track.
+\end_layout
+
+\begin_layout Standard
+\begin_inset Graphics
+ filename lyx_img/Bildschirmfoto_2018-08-30_14-32-48.png
+ width 10cm
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Once you have both bordering TCBs set up, you can now create the actual
+ track section.
+ To do this:
+\end_layout
+
+\begin_layout Enumerate
+Right-click one of the TCBs
+\end_layout
+
+\begin_layout Enumerate
+Locate the correct side (A or B) to create the track section
+\end_layout
+
+\begin_layout Enumerate
+Click
+\begin_inset Quotes eld
+\end_inset
+
+Create interlocked Track Section
+\begin_inset Quotes erd
+\end_inset
+
+ in the formspec on the chosen side.
+\end_layout
+
+\begin_layout Standard
+Now, the text on the formspec has changed.
+ It shows something like this:
+\end_layout
+
+\begin_layout Standard
+\begin_inset Graphics
+ filename lyx_img/Bildschirmfoto_2018-08-30_14-27-25.png
+ width 5cm
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Clicking
+\begin_inset Quotes eld
+\end_inset
+
+Show Track Section
+\begin_inset Quotes erd
+\end_inset
+
+ brings up another formspec:
+\end_layout
+
+\begin_layout Standard
+\begin_inset Graphics
+ filename lyx_img/Bildschirmfoto_2018-08-30_14-28-32.png
+ width 5cm
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+On the top, you see a list of all TCBs that border this track section.
+ In your case, there should be two TCBs listed.
+ If there's only one, head over to
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "subsec:Long-track-sections,"
+
+\end_inset
+
+.
+ You should now select a name for the track section, to identify it later.
+\end_layout
+
+\begin_layout Standard
+The same procedure is applicable when you create a turnout track section,
+ except that you have to set up three or more TCBs.
+\end_layout
+
+\begin_layout Standard
+The AdvTrains interlocking system allows you to add more TCBs after you
+ have created a track section.
+ This works without problems in most cases.
+ For example, you can easily insert a turnout into an already set-up track
+ section and create another TCB behind it, and AdvTrains will automatically
+ detect the existing track section.
+ Problems arise only if you try to insert a TCB in-between a section, in
+ which case both sides of the TCB will end up assigned to the same section.
+ The code currently does not handle this case properly, so try to avoid
+ this situation by all means.
+ As a last resort, you can always dissolve a faulty track section, as described
+ in the next chapter.
+\end_layout
+
+\begin_layout Subsection
+Long track sections, crossings and other edge cases
+\begin_inset CommandInset label
+LatexCommand label
+name "subsec:Long-track-sections,"
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Subsubsection
+Very long track sections
+\end_layout
+
+\begin_layout Standard
+If you try to set up a track section that is longer than 1000 nodes, advtrains
+ won't recognize the TCB at the other end because of a safety limit in the
+ traverser function, which is supposed to prevent deadlocks.
+ This case has happened when the Track Section overview screen only shows
+ one TCB in the list.
+ The procedure for this is as follows:
+\end_layout
+
+\begin_layout Enumerate
+Go to the second TCB (the one that wasn't recognized).
+ It should show
+\begin_inset Quotes eld
+\end_inset
+
+End of Interlocking
+\begin_inset Quotes erd
+\end_inset
+
+ on the relevant side.
+\end_layout
+
+\begin_layout Enumerate
+Click
+\begin_inset Quotes eld
+\end_inset
+
+Create interlocked track section
+\begin_inset Quotes erd
+\end_inset
+
+.
+ The section created will be different from the one that is already present.
+\end_layout
+
+\begin_layout Enumerate
+In the track section overview, click
+\begin_inset Quotes eld
+\end_inset
+
+Join into other section
+\begin_inset Quotes erd
+\end_inset
+
+
+\end_layout
+
+\begin_layout Enumerate
+Go back to the first TCB, bring up the Track Section overview screen of
+ the first track section and click
+\begin_inset Quotes eld
+\end_inset
+
+Join with ???
+\begin_inset Quotes erd
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+The other, missing TCB should now appear in the list.
+ If you accidentally started such a joining procedure, click the
+\begin_inset Quotes eld
+\end_inset
+
+X
+\begin_inset Quotes erd
+\end_inset
+
+ button on the right.
+\end_layout
+
+\begin_layout Subsubsection
+Rail crosses
+\end_layout
+
+\begin_layout Standard
+Since rail crosses are created by laying tracks across each other without
+ logical connection, there's no way for advtrains to know whether rails
+ cross each other.
+\end_layout
+
+\begin_layout Standard
+Rail crossings in interlocking systems are always one single track section,
+ which in most cases has 4 TCBs adjacent.
+\end_layout
+
+\begin_layout Standard
+\begin_inset Graphics
+ filename lyx_img/Bildschirmfoto_2018-08-30_14-51-25.png
+ width 5cm
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+The procedure is quite similar to the one for long sections: First, create
+ two track sections for the branches, and then use the
+\begin_inset Quotes eld
+\end_inset
+
+Join
+\begin_inset Quotes erd
+\end_inset
+
+ function to merge both sections into one.
+\end_layout
+
+\begin_layout Subsubsection
+Deleting and re-adding single TCBs to a section
+\end_layout
+
+\begin_layout Standard
+In some occasions, for example when you remove a siding or a crossover,
+ it can be necessary to unassign a TCB from a track section.
+ There are multiple ways to do this:
+\end_layout
+
+\begin_layout Itemize
+In the TCB form, click the
+\begin_inset Quotes eld
+\end_inset
+
+Remove from section
+\begin_inset Quotes erd
+\end_inset
+
+ button
+\end_layout
+
+\begin_layout Itemize
+In the track section form, first select the TCB in the list and then click
+
+\begin_inset Quotes eld
+\end_inset
+
+Unlink selected TCB
+\begin_inset Quotes erd
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+The result is that the TCB shows
+\begin_inset Quotes eld
+\end_inset
+
+End of Interlocking
+\begin_inset Quotes erd
+\end_inset
+
+ and the section does not list the TCB as an endpoint anymore.
+\end_layout
+
+\begin_layout Standard
+The other case is adding a siding or a crossover, in which case one or more
+ TCBs still show
+\begin_inset Quotes eld
+\end_inset
+
+End of Interlocking
+\begin_inset Quotes erd
+\end_inset
+
+ although they should be part of a section:
+\end_layout
+
+\begin_layout Itemize
+Go to another TCB that is registered in the track section and click
+\begin_inset Quotes eld
+\end_inset
+
+Update near TCBs
+\begin_inset Quotes erd
+\end_inset
+
+
+\end_layout
+
+\begin_layout Itemize
+If that did not work, follow the procedure of creating a long track section
+\end_layout
+
+\begin_layout Subsubsection
+Dissolving sections
+\end_layout
+
+\begin_layout Standard
+If you made a mistake setting up something and you don't see any other way
+ to fix a misconfigured track section, you can always delete it using the
+
+\begin_inset Quotes eld
+\end_inset
+
+Dissolve section
+\begin_inset Quotes erd
+\end_inset
+
+ button.
+ This operation removes the track section and sets all TCBs that previously
+ belonged to the section as
+\begin_inset Quotes eld
+\end_inset
+
+End of Interlocking
+\begin_inset Quotes erd
+\end_inset
+
+.
+ This will always work and lets you start over new with setting up track
+ sections.
+\end_layout
+
+\begin_layout Subsection
+Interlocking patterns
+\end_layout
+
+\begin_layout Standard
+This section shows some examples on how you should set up track sections
+ on certain track configurations.
+\end_layout
+
+\begin_layout Section
+Signals and routes
+\end_layout
+
+\begin_layout Standard
+The purpose of signals is to inform trains about whether they can proceed
+ into the next section safely.
+ Making a section of track safe to pass for a train, turnouts need to be
+ set to the correct position and no other train should be allowed to cross
+ or share parts of the route with this train.
+\end_layout
+
+\begin_layout Subsection
+Assigning Signals to TCBs
+\end_layout
+
+\begin_layout Standard
+Signals in the advtrains interlocking system are positioned - like in real
+ life - at the border of track sections.
+\end_layout
+
+\begin_layout Standard
+When you set up a signal, do the following steps:
+\end_layout
+
+\begin_layout Enumerate
+If not already happened, set up a TCB (you don't need to, but are advised
+ to, configure track sections there)
+\end_layout
+
+\begin_layout Enumerate
+Place the signal a few meters in front of the TCB, so that trains stopping
+ at the signal do never pass the TCB
+\end_layout
+
+\begin_layout Enumerate
+Locate the side of the TCB which points in the direction that trains will
+ proceed past the signal, as shown in the figure below.
+\end_layout
+
+\begin_layout Enumerate
+Right-click the TCB, and click
+\begin_inset Quotes eld
+\end_inset
+
+Assign a signal
+\begin_inset Quotes erd
+\end_inset
+
+ on this side.
+\end_layout
+
+\begin_layout Enumerate
+Punch the signal.
+\end_layout
+
+\begin_layout Standard
+\begin_inset Graphics
+ filename lyx_img/assign_signal.png
+ width 8cm
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+You can assign a signal to each side of a TCB.
+ This is, for example, useful when creating block sections on a bi-directional
+ main running line.
+\end_layout
+
+\begin_layout Subsection
+The concept of routes
+\end_layout
+
+\begin_layout Standard
+A so-called route is a locked path between two signals, which locks all
+ turnouts in the correct position.
+\end_layout
+
+\begin_layout Standard
+Example: Imagine a station with 2 platforms on a single track running line.
+ We are looking at signal A.
+ You probably want trains coming from the right to go into platform 1 or
+ into platform 2, so you need to program 2 routes.
+\end_layout
+
+\begin_layout Standard
+\begin_inset Graphics
+ filename lyx_img/route_ex1.png
+ width 7cm
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+This leads us to the most important aspect of route programming: Routes
+ always start at a signal (A) and end at a signal facing in the
+\series bold
+same direction
+\series default
+ (D and E), not at an opposite-facing signal (B and C).
+ There are only few exceptions, we'll cover this later.
+\end_layout
+
+\begin_layout Standard
+When you set a route to make a train proceed on it, the interlocking system
+ ensures that:
+\end_layout
+
+\begin_layout Itemize
+There are no rail vehicles on the route
+\end_layout
+
+\begin_layout Itemize
+All turnouts are set to the correct position and it is impossible to move
+ them
+\end_layout
+
+\begin_layout Itemize
+No other routes can be set that would in any way conflict with this route
+\end_layout
+
+\begin_layout Standard
+For this to work, you need to specify all track sections the train will
+ pass along, as well as the positions of all turnouts that need to be locked.
+ Those are not only the turnouts that lay directly on the train's route,
+ but also some turnouts on adjacent tracks, the so-called flank protection.
+\end_layout
+
+\begin_layout Standard
+The purpose of flank protection is to prevent runaway trains and/or wagons
+ to pass into a route.
+ This is achieved by setting nearby turnouts to a position that points
+\begin_inset Quotes eld
+\end_inset
+
+away
+\begin_inset Quotes erd
+\end_inset
+
+ from the route.
+ Example:
+\end_layout
+
+\begin_layout Standard
+\begin_inset Graphics
+ filename lyx_img/route_ex2.png
+ width 7cm
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+The upper turnout, of course, needs to be locked in straight (normal) position,
+ while the lower one is not relevant for the route itself.
+ But what if the lower turnout was set to the diverging (reverse) position
+ and the driver of another train approaching signal B fails to see the red
+ light? This train would crash into the first one.
+ To minimise danger, that other train would need to be routed towards signal
+ D.
+\end_layout
+
+\begin_layout Standard
+There are, of course, situations, where both positions of a turnout would
+ conflict with a route equally.
+ In those situations, there's nothing you can do and no flank lock needs
+ to be set.
+\end_layout
+
+\begin_layout Subsection
+Shunt routes
+\end_layout
+
+\begin_layout Standard
+Operating railways is not all about driving trains around.
+ Coupling, decoupling and moving single engines, wagons or groups of wagons
+ across a station, called shunting, also plays an important role.
+\end_layout
+
+\begin_layout Standard
+Remember what we said about routes: There must be no rail vehicles on the
+ route.
+ So what if you have some goods wagons ready on a siding, and want to couple
+ an engine to it? You can not set a regular route into the siding, because
+ it is occupied.
+\end_layout
+
+\begin_layout Standard
+The solution is to program a second route into the siding, but with the
+ difference that it already ends at the rear-facing signal of it, so it
+ doesn't include the siding section itself:
+\end_layout
+
+\begin_layout Standard
+\begin_inset Graphics
+ filename lyx_img/route_ex3.png
+ width 7cm
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+The Sht2 route then needs to show a shunt aspect, which instructs the driver
+ to proceed slowly and watch out for vehicles on the route.
+ To show a
+\begin_inset Quotes eld
+\end_inset
+
+free
+\begin_inset Quotes erd
+\end_inset
+
+ aspect here would be wrong, because that would mean that the track is free
+ until the next main signal, which it is clearly not.
+\end_layout
+
+\begin_layout Standard
+
+\shape italic
+Note that advtrains_interlocking currently does not allow to set individual
+ aspects for routes, this is a feature still to be implemented soon.
+\end_layout
+
+\begin_layout Standard
+Shunt routes like this are, so far, the only exception to the
+\begin_inset Quotes eld
+\end_inset
+
+Routes should end at a signal facing the same direction
+\begin_inset Quotes erd
+\end_inset
+
+ rule.
+\end_layout
+
+\begin_layout Subsection
+Route Release
+\end_layout
+
+\begin_layout Standard
+In early real-life interlocking systems, routes either had to be cancelled
+ by the signalman after the train had passed the route, or there was a single
+ release contact at the end of the route.
+ However, as interlocking systems evolved and the position of trains is
+ now roughly known by the track sections, portions of the route can be freed
+ as soon as the train has left the corresponding section.
+\end_layout
+
+\begin_layout Standard
+AdvTrains has chosen a modern approach to route releasing.
+ Each turnout lock is associated to a track section belonging to the route's
+ path.
+ Once the train leaves this section, all assigned locks are also freed.
+\end_layout
+
+\begin_layout Subsection
+Programming a route
+\end_layout
+
+\begin_layout Standard
+The route programming procedure is quite straightforward if you've read
+ the previous sections and understood how routes should be set.
+\end_layout
+
+\begin_layout Standard
+Routes always start at a signal.
+ You must have assigned the signal to a TCB, as described earlier.
+\end_layout
+
+\begin_layout Standard
+When you right-click the signal, it no longer changes its aspect.
+ Instead, a formspec pops up, showing you an (empty) list of routes with
+ the possibility to set them or to create new routes.
+ Click the
+\begin_inset Quotes eld
+\end_inset
+
+Create new route
+\begin_inset Quotes erd
+\end_inset
+
+ button to start programming a new route.
+\end_layout
+
+\begin_layout Standard
+The form closes, and an arrow is displayed on the TCB.
+ You are now in
+\begin_inset Quotes eld
+\end_inset
+
+Route Programming
+\begin_inset Quotes erd
+\end_inset
+
+ mode, programming the first track section of the route.
+ Now:
+\end_layout
+
+\begin_layout Itemize
+Put any turnouts you need to lock in the correct position (e.g.
+ by right-clicking them).
+ This includes flank protection.
+\end_layout
+
+\begin_layout Itemize
+Punch them.
+ This makes a marker saying
+\begin_inset Quotes eld
+\end_inset
+
+Route Lock Editing
+\begin_inset Quotes erd
+\end_inset
+
+ appear.
+\end_layout
+
+\begin_layout Itemize
+If you punch a turnout again, or punch the marker, you can remove the lock
+ again.
+\end_layout
+
+\begin_layout Itemize
+When you've locked all turnouts in the current section, go to and punch
+ the TCB that is the border to the next track section the train proceeds
+ into.
+\end_layout
+
+\begin_layout Standard
+Once you've done this, the lock markers change to
+\begin_inset Quotes eld
+\end_inset
+
+Route Lock
+\begin_inset Quotes erd
+\end_inset
+
+, telling they can't be changed anymore.
+ Repeat the above procedure until you have punched the final TCB, at which
+ the route should end.
+ As mentioned before, there should be a signal at this place, however this
+ is not enforced.
+ Now, run the chat command
+\family typewriter
+/at_rp_set <name of route>
+\family default
+ to complete programming the route.
+\end_layout
+
+\begin_layout Standard
+A few hints:
+\end_layout
+
+\begin_layout Itemize
+If one turnout should be locked by more than one section, set the lock only
+ in the
+\family typewriter
+\series bold
+last
+\family default
+\series default
+ of those sections.
+ Locking the same turnout in multiple sections of a single route results
+ in undefined behavior!
+\end_layout
+
+\begin_layout Itemize
+If you accidentally punched a TCB, you can run
+\family typewriter
+/at_rp_back
+\family default
+ to undo this and return to the previous section.
+ Due to a bug, you have to re-set all locks of this section.
+\end_layout
+
+\begin_layout Itemize
+If you want to stop programming the entire route without saving it, run
+
+\family typewriter
+/at_rp_discard
+\end_layout
+
+\begin_layout Section
+Interlocking system operation
+\end_layout
+
+\begin_layout Standard
+Setting up the interlocking for a portion of a railway network requires
+ some time, experience and planning, but once done, there's not much to
+ do anymore to make trains run on your, now safer, railway.
+ This section covers some useful practices to route trains across your network.
+\end_layout
+
+\begin_layout Standard
+At the moment, routes can only be set by clicking the signal or via LuaATC,
+ except if you use automatic working.
+ It is planned to control this via the onboard computer and via a
+\begin_inset Quotes eld
+\end_inset
+
+signal box
+\begin_inset Quotes erd
+\end_inset
+
+ view based on the currently broken itrainmap.
+\end_layout
+
+\begin_layout Subsection
+Simple route setting and cancelling
+\end_layout
+
+\begin_layout Standard
+To set a route, simply right-click the signal, select a route and click
+
+\begin_inset Quotes eld
+\end_inset
+
+set route
+\begin_inset Quotes erd
+\end_inset
+
+.
+ If there are no conflicts, the signal turns green and the train is allowed
+ to proceed.
+\end_layout
+
+\begin_layout Standard
+It may be possible that the route can not be set, because one or more other
+ routes conflict with the current one, or a section is blocked.
+ In this case, the signal stays red, and the conflicting item is shown in
+ the formspec.
+ As soon as the conflict is resolved (by cancellation or release of the
+ conflicting route, or the section becoming free), the requested route will
+ be set and the signal turns green.
+\end_layout
+
+\begin_layout Standard
+If a route is either requested or set, it can be cancelled from the signalling
+ formspec.
+ This means that all turnouts and sections are released, and the signal
+ reverts back to red.
+ This of course only works when the train has not passed the signal yet.
+ There is no mechanism for Approach Locking.
+\end_layout
+
+\begin_layout Subsection
+Automatic Working
+\end_layout
+
+\begin_layout Standard
+Block signals on main running lines usually only have a single route to
+ set, the one proceeding along the main line.
+ Their purpose is only to show whether there are trains in the next section.
+ So, it would be convenient if this only route would set itself again after
+ a train passed.
+\end_layout
+
+\begin_layout Standard
+This is what Automatic Working is for.
+ Set a route, click
+\begin_inset Quotes eld
+\end_inset
+
+Enable Automatic Working
+\begin_inset Quotes erd
+\end_inset
+
+, and as soon as a train passes, the route is automatically re-set.
+\end_layout
+
+\begin_layout Standard
+This function is nearly identical to SimSig automatic signals.
+ It can also be useful on a line with high traffic, when there's a low-frequente
+d access to a siding.
+ You'd enable automatic working for the main route and cancel it only when
+ you need a train to go into the siding.
+\end_layout
+
+\begin_layout Section
+Final notes
+\end_layout
+
+\begin_layout Standard
+The interlocking system is mainly finished, though there are still some
+ plans and ideas.
+ They include:
+\end_layout
+
+\begin_layout Itemize
+Setting routes from inside a train (via onboard computer)
+\end_layout
+
+\begin_layout Itemize
+Signalbox panels, as revival of itrainmap
+\end_layout
+
+\begin_layout Itemize
+Individual signal aspects for routes
+\end_layout
+
+\begin_layout Itemize
+Distant signals
+\end_layout
+
+\begin_layout Itemize
+On-Train head-up display for oncoming signals (they have something like
+ this in Czech Republic, I forgot how it's called.)
+\end_layout
+
+\begin_layout Standard
+Apart from this, there's the large oncoming project of a new timetable-based
+ train automation system, but this will take some time to evolve and is
+ out of the scope of this document.
+\end_layout
+
+\begin_layout Standard
+If you have any suggestions, corrections, improvements, criticism or cute
+ kittens and stuff, you can always contact me by various means (Forum PM,
+ E-Mail (orwell@bleipb.de), Linuxworks server chat a.s.o.).
+ Have fun!
+\end_layout
+
+\begin_layout Standard
+- orwell
+\end_layout
+
+\end_body
+\end_document