diff options
Diffstat (limited to 'assets/interlocking.lyx')
-rw-r--r-- | assets/interlocking.lyx | 2026 |
1 files changed, 2026 insertions, 0 deletions
diff --git a/assets/interlocking.lyx b/assets/interlocking.lyx new file mode 100644 index 0000000..96318fd --- /dev/null +++ b/assets/interlocking.lyx @@ -0,0 +1,2026 @@ +#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 +Have a look at the following images. + They show you how you can set up sections so that reasonable train moves + are possible. +\end_layout + +\begin_layout Standard +You should settle on a naming scheme for your sections. + This way, you can determine the source of an issue faster +\end_layout + +\begin_layout Section +Signals and routes +\end_layout + +\begin_layout Standard +Signals are appliances that can give instructions to trains. + That can be the permission to proceed, a speed restriction, or other informatio +n. +\end_layout + +\begin_layout Standard +There are 2 types of signals: +\end_layout + +\begin_layout Itemize +Static signals always display the same information to the train. + This can be a speed restriction (or the end of one), a disallowal to proceed + as shunt move or similar things. + In most cases, these are signs. +\end_layout + +\begin_layout Itemize +Dynamic signals are what most people would call a +\begin_inset Quotes eld +\end_inset + +signal +\begin_inset Quotes erd +\end_inset + +. + Its function is to inform trains about whether and at which speed they + can proceed into the next section safely. +\end_layout + +\begin_layout Subsection +Signal Influence Point +\end_layout + +\begin_layout Standard +Every signal is associated to a track on which the instruction should be + followed. + Signals are usually placed right next to the track on the right side. + Human observers do know then that the signal belongs to the track left + of it, however, train safety systems (like the one in advtrains) can not. +\end_layout + +\begin_layout Standard +This is the reason why a so-called +\begin_inset Quotes eld +\end_inset + +influence point +\begin_inset Quotes erd +\end_inset + + needs to be assigned to any signal that should actually give instructions + to trains, should the driver (if even there is one) fail to recognize the + instructions. +\end_layout + +\begin_layout Standard +Depending on the signal and the mod that adds the signal, there are different + ways to configure this. + Signals integrated into advtrains behave as follows: +\end_layout + +\begin_layout Itemize +Static signals and all red-green light signals from core advtrains that + are not assigned to a TCB can be configured by holding the +\begin_inset Quotes eld +\end_inset + +Use +\begin_inset Quotes erd +\end_inset + + key and then right-clicking the signal +\end_layout + +\begin_layout Itemize +All signals that are assigned to a TCB can be configured by first right-clicking + them, then selecting +\begin_inset Quotes eld +\end_inset + +Influence Point +\begin_inset Quotes erd +\end_inset + + in the signalling formspec. +\end_layout + +\begin_layout Standard +The small formspec that opens allows you to set and later view or clear + the Influence Point. + To set the influence point, click the +\begin_inset Quotes eld +\end_inset + +Set +\begin_inset Quotes erd +\end_inset + + button, face towards the signal and punch a rail about 2m in front of the + signal. + A small marker will be shown, indicating success. + To cancel setting an influence point, punch anything other. + (note that then the influence point remains unset, regardless of its previous + state) +\end_layout + +\begin_layout Standard +The advtrains-internal train safety system ensures that the train always + obeys any restrictions imposed by signals, if (and only if) the influence + point is set properly. +\end_layout + +\begin_layout Subsection +Signal Aspects +\end_layout + +\begin_layout Standard +While static signals are mainly used for speed restrictions, the interesting + ones are variable signals. + Of course, you can always control any variable signal by traditional means + (mesecons, digiline, right-click) if the signal allows it, but that misses + the point of this interlocking system. +\end_layout + +\begin_layout Standard +A signal aspect is a piece of information that a signal shows to the train + driver. + It contains information about whether and at what speed the driver may + proceed at the signal. +\end_layout + +\begin_layout Standard +Every signal, both static and dynamic ones, imposes a certain aspect to + trains passing the signal. + For static signals, this is always the same aspect, such as +\begin_inset Quotes eld +\end_inset + +Proceed at speed of 8 +\begin_inset Quotes erd +\end_inset + + or +\begin_inset Quotes eld +\end_inset + +Shunt moves may not pass +\begin_inset Quotes erd +\end_inset + +. + Dynamic signals, however, can display multiple different aspects. + The default for them is always as restrictive as possible, mostly +\begin_inset Quotes eld +\end_inset + +Halt! +\begin_inset Quotes erd +\end_inset + +. +\end_layout + +\begin_layout Standard +You should know that both static and dynamic signals use exactly the same + properties for signal aspects. + There is no difference in the meaning of the aspect definitions. +\end_layout + +\begin_layout Standard +In the following sections, we will talk about main signals. + By this, we mean a variable signal that can display both a +\begin_inset Quotes eld +\end_inset + +Danger +\begin_inset Quotes erd +\end_inset + + aspect (trains are not allowed to proceed) and at least one +\begin_inset Quotes eld +\end_inset + +Proceed +\begin_inset Quotes erd +\end_inset + + aspect (train may proceed as train/shunt move, with optional speed restriction) +, which act as an +\begin_inset Quotes eld +\end_inset + +entry signal +\begin_inset Quotes erd +\end_inset + + for one or multiple routes. +\end_layout + +\begin_layout Subsection +Train moves and Shunt Moves +\end_layout + +\begin_layout Itemize +A +\begin_inset Quotes eld +\end_inset + +Train move +\begin_inset Quotes erd +\end_inset + + is a train that is running, going to run on or coming from a main line + between stations, passing through or stopping at a station. + Train moves can expect that there are no obstacles on the route and they + can proceed at the maximum permitted speed of the line. + This is the regular operation mode for trains. + Shunt signals have no meaning for train moves. +\end_layout + +\begin_layout Itemize +A +\begin_inset Quotes eld +\end_inset + +Shunt move +\begin_inset Quotes erd +\end_inset + + is a train that moves within a station and/or is coupling or decoupling + wagons or engines. + A shunt move may never leave a station except into a siding. + Also, shunt moves may drive at a maximum speed of 6 speed units, because + it is usually not ensured that the path is free of obstacles. + (however, advtrains ensures that every route is free of railway vehicles, + even shunt routes) +\end_layout + +\begin_layout Standard +There are also 2 general types of signals: Main signals and Shunt signals. + While main signals have a meaning for all types of trains, Shunt signals + only have to be followed by shunt moves. + Usually, Shunt signals that are on a train move route are set to a Proceed + aspect as well. +\end_layout + +\begin_layout Standard +When a train reverses, its mode automatically changes to +\begin_inset Quotes eld +\end_inset + +shunt move +\begin_inset Quotes erd +\end_inset + + until it passes a main signal that shows +\begin_inset Quotes eld +\end_inset + +Proceed as train move +\begin_inset Quotes erd +\end_inset + +, which is usually designated by a green light. + From this point on, it can accelerate to maximum permitted speed. +\end_layout + +\begin_layout Standard +Some main signals, like the ones from the Ks signals mod included by default, + can also display +\begin_inset Quotes eld +\end_inset + +Proceed as shunt move +\begin_inset Quotes erd +\end_inset + +, which is designated by 2 white lights along with the red light. + Once a train passes this signal, it becomes a shunt move. +\end_layout + +\begin_layout Subsection +The concept of routes +\end_layout + +\begin_layout Standard +A so-called route is a locked path between two main signals, which locks + all turnouts in the correct position. + Its purpose is to offer a train a path on which it can safely proceed without + interfering with any other train. + A route always incorporates and locks one to multiple track sections, starting + with the one that lies directly behind the +\begin_inset Quotes eld +\end_inset + +entry +\begin_inset Quotes erd +\end_inset + + signal. +\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 +Assigning main signals to TCBs +\end_layout + +\begin_layout Standard +Main signals in the advtrains interlocking system are positioned - like + in real life - at the border of track sections, because routes also start + and end there. + For advtrains to know from which signal which routes can be set, you need + to assign the signal to a TCB. +\end_layout + +\begin_layout Standard +To do this, perform 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 +If you haven't set an influence point for the signal yet, the influence + point formspec automatically opens. +\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 Standard +Only main signals can ever be assigned to TCBs, because static ones can + either not display +\begin_inset Quotes eld +\end_inset + +Danger +\begin_inset Quotes erd +\end_inset + + or do not permit to proceed at all. +\end_layout + +\begin_layout Subsection +Shunt routes +\end_layout + +\begin_layout Standard + +\series bold +The information in this section is subject to future change because of safety + issues! +\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. + See later on for how to set this up. +\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 Standard +Please note that reversing a train outside of stations is not only discouraged, + but also very dangerous, because even real-world interlocking system do + not expect this. + There is a clear, human-sense rule that you should never reverse the driving + direction of a train while on a main line or on a turnout. + Else, you can be considered a terrorist. + (quote from professional!) +\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 main signal. + You must have assigned the signal to a TCB, as described earlier. +\end_layout + +\begin_layout Standard +When you right-click the main 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 with a blue lock symbol 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 +Depending on the situation, you are now offered some possibilities to proceed: +\end_layout + +\begin_layout Itemize +Click the +\begin_inset Quotes eld +\end_inset + +Advance to next section +\begin_inset Quotes erd +\end_inset + + button if your route consists of more sections with turnouts to lock, and + you need to continue programming. + Follow the above steps to set locks for the next section. +\end_layout + +\begin_layout Standard +Once you've clicked the +\begin_inset Quotes eld +\end_inset + +Advance +\begin_inset Quotes erd +\end_inset + + button, the lock markers change to a red lock symbol, telling they can't + be changed anymore. + Repeat the above procedure until you are ready to complete the programming + procedure: +\end_layout + +\begin_layout Itemize +Click the +\begin_inset Quotes eld +\end_inset + +Finish route HERE +\begin_inset Quotes erd +\end_inset + + button when you've set up the locks for the last track section of the route + and punched the final TCB (the one with the next signal). + You will be asked for a route name and your route will be saved. +\end_layout + +\begin_layout Itemize +The +\begin_inset Quotes eld +\end_inset + +Finish route at end of NEXT section +\begin_inset Quotes erd +\end_inset + + button (third button) is an useful quickhand to make the route proceed + one more section. + Using this button is equivalent to first clicking the +\begin_inset Quotes eld +\end_inset + +Advance +\begin_inset Quotes erd +\end_inset + + button, then flying to the end of the next track section and finishing + the route there. + You can not (officially) set turnout locks in the final section using this + method. +\end_layout + +\begin_layout Standard +A few hints: +\end_layout + +\begin_layout Itemize +If you accidentally advanced the route wrongly, you can use the +\begin_inset Quotes eld +\end_inset + +Step back one section +\begin_inset Quotes erd +\end_inset + + button to undo this. +\end_layout + +\begin_layout Itemize +If you want to stop programming the entire route without saving it, use + the +\begin_inset Quotes eld +\end_inset + +Cancel route programming +\begin_inset Quotes erd +\end_inset + + button. +\end_layout + +\begin_layout Itemize +The third button is especially useful for programming simple block sections + on a main running line, since you can stay at the starting signal (punch + starting TCB and select third button). +\end_layout + +\begin_layout Itemize +If a route should end in a dead end, you MUST use the +\begin_inset Quotes eld +\end_inset + +Finish in NEXT section +\begin_inset Quotes erd +\end_inset + + button, because there is no final TCB that you could punch. +\end_layout + +\begin_layout Itemize +The third button does NOT work on sections with more than 2 exits, because + the system won't be able to determine the final TCB of the route then. +\end_layout + +\begin_layout Subsection +Route information screen +\end_layout + +\begin_layout Standard +\begin_inset Graphics + filename lyx_img/Bildschirmfoto_2019-01-15_19-28-09.png + width 10cm + +\end_inset + + +\end_layout + +\begin_layout Standard +This is the screen that appears when you click +\begin_inset Quotes eld +\end_inset + +Edit Route +\begin_inset Quotes erd +\end_inset + +. + It lets you change the route name and delete the route. + Also, it shows a summary of the route and its elements. +\end_layout + +\begin_layout Standard +The route summary lists information per track section on the route, so the + line starting with +\begin_inset Quotes eld +\end_inset + +1 +\begin_inset Quotes erd +\end_inset + + is the first section of the route. +\end_layout + +\begin_layout Standard +The ARS rule list and its purpose is explained later. +\end_layout + +\begin_layout Subsection +Specifying signal aspects +\end_layout + +\begin_layout Standard +By default, newly programmed routes show an aspect that comes closest to + +\begin_inset Quotes eld +\end_inset + +Proceed at maximum speed +\begin_inset Quotes erd +\end_inset + +. + However, it can be desirable to change this behavior, like when the route + passes a diverging turnout, the train should be signalled to drive slower, + or the route is a shunt route and therefore only +\begin_inset Quotes eld +\end_inset + +Shunting allowed +\begin_inset Quotes erd +\end_inset + + should be shown. +\end_layout + +\begin_layout Standard +This is the purpose of the +\begin_inset Quotes eld +\end_inset + +Change Aspect +\begin_inset Quotes erd +\end_inset + + button in the route info screen. +\end_layout + +\begin_layout Standard +Signal aspects in advtrains consist of 4 sections: main (Information for + train moves), dst (Distant signal information, not implemented yet), shunt + (Information for shunt moves) and info (additional information, currently + not in use). +\end_layout + +\begin_layout Itemize +Train may proceed as train move at maximum speed: +\begin_inset Quotes eld +\end_inset + +main: free, speed -1 +\begin_inset Quotes erd +\end_inset + + +\end_layout + +\begin_layout Itemize +Train may proceed as train move at speed of 8: +\begin_inset Quotes eld +\end_inset + +main: free, speed 8 +\begin_inset Quotes erd +\end_inset + + +\end_layout + +\begin_layout Itemize +Train may proceed as shunt move: +\begin_inset Quotes eld +\end_inset + +shunt: free +\begin_inset Quotes erd +\end_inset + + +\end_layout + +\begin_layout Standard +There's a field in the +\begin_inset Quotes eld +\end_inset + +shunt +\begin_inset Quotes erd +\end_inset + + part of signal aspects that is not displayed in the GUI, but is of potential + interest to developers of signal addons: shunt.proceed_as_main. +\end_layout + +\begin_layout Itemize +A train move can always become a shunt move by passing a signal that shows + +\begin_inset Quotes eld +\end_inset + +Halt for train moves, shunting permitted +\begin_inset Quotes erd +\end_inset + + +\end_layout + +\begin_layout Itemize +A shunt move can only pass a signal saying +\begin_inset Quotes eld +\end_inset + +Proceed as train move, shunting not permitted +\begin_inset Quotes erd +\end_inset + + when proceed_as_main is true. +\end_layout + +\begin_layout Standard +The property is used by the Limit Of Shunt sign, where proceed_as_main is + set to false. + Shunt moves have to stop in front of it, while train moves are signalled + +\begin_inset Quotes eld +\end_inset + +Proceed +\begin_inset Quotes erd +\end_inset + +. + Regular main signals that show +\begin_inset Quotes eld +\end_inset + +green +\begin_inset Quotes erd +\end_inset + + have the field set to true, so that all trains can pass it. +\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 either be set by clicking the signal or via LuaATC, + or by using the +\begin_inset Quotes eld +\end_inset + +Remote Routesetting +\begin_inset Quotes erd +\end_inset + + button from the Onboard Computer. + It is planned to control this 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 +Train Safety System +\end_layout + +\begin_layout Standard +The Train Safety System, called +\begin_inset Quotes eld +\end_inset + +LZB +\begin_inset Quotes erd +\end_inset + + in the code (from the german term Linienzugbeeinflussung, although this + is a completely different system), ensures that trains obey any restrictions + imposed by signals when influence points are set. + This way, it is not possible to pass signals at danger or to bypass speed + restrictions. +\end_layout + +\begin_layout Standard +It is possible to overrun red signals, if a route is cancelled while a train + is approaching. + Real interlocking systems use a mechanism called Approach locking for this, + however, as of now, there's no similar system in this mod. + If a red signal is overrun, the train brakes using emergency brake ( +\begin_inset Quotes eld +\end_inset + +BB +\begin_inset Quotes erd +\end_inset + +) and can not be moved any further. + You should then examine the situation and drive the train backwards out + of the section. +\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 Subsection +Automatic Route Setting (ARS) +\end_layout + +\begin_layout Standard +As interlocking systems evolved, the goal always was to offload work from + the human to the system, automating things. + Modern interlocking systems can automatically set routes based on a pre-program +med routing table for each particular train. + Since one outstanding feature of Advtrains is it's high degree of automation, + it has a similar system to automatically set routes for a train depending + on certain parameters. +\end_layout + +\begin_layout Standard +Every train in Advtrains has 2 internal properties that can be set through + the Onboard Computer of every engine in the train, the +\begin_inset Quotes eld +\end_inset + +Line +\begin_inset Quotes erd +\end_inset + + and the +\begin_inset Quotes eld +\end_inset + +Routing Code +\begin_inset Quotes erd +\end_inset + + +\end_layout + +\begin_layout Itemize +The +\begin_inset Quotes eld +\end_inset + +Line +\begin_inset Quotes erd +\end_inset + + property is supposed to distinguish trains of multiple lines that share + a track. +\end_layout + +\begin_layout Itemize +The +\begin_inset Quotes eld +\end_inset + +Routing Code +\begin_inset Quotes erd +\end_inset + + property is supposed to tell the target of a train or which route it should + take to reach the target +\end_layout + +\begin_layout Standard +Examples: +\end_layout + +\begin_layout Standard +\begin_inset Graphics + filename lyx_img/arslin_ex1.png + +\end_inset + + +\end_layout + +\begin_layout Standard +Both lines share the section between Blackbirdshire and Parktown. + To divert them again, they can save their line number in the +\begin_inset Quotes eld +\end_inset + +Line +\begin_inset Quotes erd +\end_inset + + field. +\end_layout + +\begin_layout Standard +\begin_inset Graphics + filename lyx_img/arslin_ex2.png + +\end_inset + + +\end_layout + +\begin_layout Standard +Some trains should go to B, some to C, the direction can be set with a routing + code. +\end_layout + +\begin_layout Standard +One single routing code should not contain spaces. + You can set multiple routing codes by just separating them with spaces + in the Routing Code field. + So, +\begin_inset Quotes eld +\end_inset + +Stn Ori +\begin_inset Quotes erd +\end_inset + + would be matched by ARS rules either containing +\begin_inset Quotes eld +\end_inset + +Stn +\begin_inset Quotes erd +\end_inset + + or +\begin_inset Quotes eld +\end_inset + +Ori +\begin_inset Quotes erd +\end_inset + +. + This does not work for lines. +\end_layout + +\begin_layout Subsubsection +Writing ARS Rules +\end_layout + +\begin_layout Standard +Every route of every signal can be given a set of ARS rules. + A single ARS rule can either match a line or a routing code (combinations, + e.g. + and's, are not yet supported). + The first rule in the first route that matches any of the properties of + the train is selected, and that route is set for the train. +\end_layout + +\begin_layout Standard +\begin_inset Graphics + filename lyx_img/ars_ex1.png + +\end_inset + + +\end_layout + +\begin_layout Standard +You can add an asterisk ( +\begin_inset Quotes eld +\end_inset + +* +\begin_inset Quotes erd +\end_inset + +) to the ARS rules of one route. + That route then becomes the default route. +\end_layout + +\begin_layout Standard +If no explicit ARS rule matches the train, then the default route is chosen + and set. + If there is no default route, nothing happens and the signal remains red. +\end_layout + +\begin_layout Subsubsection +Using ARS +\end_layout + +\begin_layout Standard +In contrast to Automatic working, where the route is re-set immediately + after the train passed, ARS sets the route only when the train approaches + the signal, e.g. + is just about to start braking in front of it. +\end_layout + +\begin_layout Standard +At any place where one of the following things take place, you should use + the ARS system in favor of Automatic Working: +\end_layout + +\begin_layout Itemize +A main line diverts into 2 or more lines: Using ARS, you can direct the + trains along the line where they should go +\end_layout + +\begin_layout Itemize +Two or more main lines join into one: You cannot use automatic working here, + because all routes are tried to be set at the same time and it is a matter + of luck which one +\begin_inset Quotes eld +\end_inset + +wins +\begin_inset Quotes erd +\end_inset + +. + In a bad situation, you have a train coming from A, but it cannot proceed + because Signal B has won the +\begin_inset Quotes eld +\end_inset + +route race +\begin_inset Quotes erd +\end_inset + + into the shared section, even if there's no train coming from B. + Using ARS, by just specifying the +\begin_inset Quotes eld +\end_inset + +default route +\begin_inset Quotes erd +\end_inset + + by a *, the inward route is only set when a train approaches. +\end_layout + +\begin_layout Itemize +Complex intersections, which are probably a combination of the above two +\end_layout + +\begin_layout Itemize +sometimes-used branching tracks on which only certain trains (with certain + routing code or line) should head off, like the entrance to a factory where + only one specific goods train should drive in. +\end_layout + +\begin_layout Standard +In the route overview, you can see some information on the ARS settings: + All routes that have ARS rules are highlighted red, the +\begin_inset Quotes eld +\end_inset + +default route +\begin_inset Quotes erd +\end_inset + + is highlighted green. +\end_layout + +\begin_layout Standard +ARS does not affect signals which already have a route set, and signals + which are operating under +\begin_inset Quotes eld +\end_inset + +Automatic Working +\begin_inset Quotes erd +\end_inset + +. +\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 +Signalbox panels, as revival of itrainmap +\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 |