123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746 |
- \batchmode
- \makeatletter
- \def\input@path{{/home/moritz/Home/Projekte/Minetest/minetest/mods/advtrains/assets/}}
- \makeatother
- \documentclass[english]{paper}
- \usepackage[T1]{fontenc}
- \usepackage[latin9]{inputenc}
- \usepackage{geometry}
- \geometry{verbose,tmargin=1cm,bmargin=1cm,lmargin=1cm,rmargin=1cm}
- \setlength{\parindent}{0bp}
- \usepackage{graphicx}
- \usepackage{babel}
- \begin{document}
- \title{Minetest Mod - Advanced Trains {[}advtrains{]}}
- \title{Interlocking System Guide}
- \maketitle
- \section{Introduction}
- 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
- ``railway interlocking'' on the internet.
- 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 ``Proceed''. 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.
- 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.
- 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.
- If you are looking for a place to learn how real-world interlocking
- systems work, have a look at ``SimSig''. 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.
- \section{Setting up track sections}
- 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.
- A track section often covers:
- \begin{itemize}
- \item A section on a main running line, between two signals
- \item A single turnout
- \item A rail crossing, or a set of turnouts acting as a double/single slip
- switch
- \item A siding
- \end{itemize}
- You will find some examples on how to interlock certain patterns later.
- \subsection{Track Circuit Breaks}
- 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.
- 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.
- Setting up a TCB works as follows:
- \begin{enumerate}
- \item Place a TCB node somewhere near the place where the circuit break
- is going to be located.
- \item Right-click the TCB node
- \item Punch the rail which should act as TCB
- \end{enumerate}
- The result should look like this:
- \includegraphics[width=10cm]{0_home_moritz_Home_Projekte_Minetest_minetest_m___s_assets_lyx_img_screenshot_20180830_142551.png}
- 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:
- \includegraphics[width=10cm]{1_home_moritz_Home_Projekte_Minetest_minetest_m____lyx_img_Bildschirmfoto_2018-08-30_14-26-35.png}
- 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 ``End of interlocking''.
- This means that there is no track section set up at this place.
- You should repeat this procedure once again a few meters away from
- the first TCB to create a second TCB on the same track.
- \includegraphics[width=10cm]{2_home_moritz_Home_Projekte_Minetest_minetest_m____lyx_img_Bildschirmfoto_2018-08-30_14-32-48.png}
- Once you have both bordering TCBs set up, you can now create the actual
- track section. To do this:
- \begin{enumerate}
- \item Right-click one of the TCBs
- \item Locate the correct side (A or B) to create the track section
- \item Click ``Create interlocked Track Section'' in the formspec on the
- chosen side.
- \end{enumerate}
- Now, the text on the formspec has changed. It shows something like
- this:
- \includegraphics[width=5cm]{3_home_moritz_Home_Projekte_Minetest_minetest_m____lyx_img_Bildschirmfoto_2018-08-30_14-27-25.png}
- Clicking ``Show Track Section'' brings up another formspec:
- \includegraphics[width=5cm]{4_home_moritz_Home_Projekte_Minetest_minetest_m____lyx_img_Bildschirmfoto_2018-08-30_14-28-32.png}
- 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 \ref{subsec:Long-track-sections,}. You should now select
- a name for the track section, to identify it later.
- The same procedure is applicable when you create a turnout track section,
- except that you have to set up three or more TCBs.
- 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.
- \subsection{Long track sections, crossings and other edge cases\label{subsec:Long-track-sections,}}
- \subsubsection{Very long track sections}
- 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:
- \begin{enumerate}
- \item Go to the second TCB (the one that wasn't recognized). It should show
- ``End of Interlocking'' on the relevant side.
- \item Click ``Create interlocked track section''. The section created
- will be different from the one that is already present.
- \item In the track section overview, click ``Join into other section''
- \item Go back to the first TCB, bring up the Track Section overview screen
- of the first track section and click ``Join with ???''
- \end{enumerate}
- The other, missing TCB should now appear in the list. If you accidentally
- started such a joining procedure, click the ``X'' button on the
- right.
- \subsubsection{Rail crosses}
- 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.
- Rail crossings in interlocking systems are always one single track
- section, which in most cases has 4 TCBs adjacent.
- \includegraphics[width=5cm]{5_home_moritz_Home_Projekte_Minetest_minetest_m____lyx_img_Bildschirmfoto_2018-08-30_14-51-25.png}
- The procedure is quite similar to the one for long sections: First,
- create two track sections for the branches, and then use the ``Join''
- function to merge both sections into one.
- \subsubsection{Deleting and re-adding single TCBs to a section}
- 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:
- \begin{itemize}
- \item In the TCB form, click the ``Remove from section'' button
- \item In the track section form, first select the TCB in the list and then
- click ``Unlink selected TCB''
- \end{itemize}
- The result is that the TCB shows ``End of Interlocking'' and the
- section does not list the TCB as an endpoint anymore.
- The other case is adding a siding or a crossover, in which case one
- or more TCBs still show ``End of Interlocking'' although they should
- be part of a section:
- \begin{itemize}
- \item Go to another TCB that is registered in the track section and click
- ``Update near TCBs''
- \item If that did not work, follow the procedure of creating a long track
- section
- \end{itemize}
- \subsubsection{Dissolving sections}
- 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 ``Dissolve section'' button. This operation removes the
- track section and sets all TCBs that previously belonged to the section
- as ``End of Interlocking''. This will always work and lets you start
- over new with setting up track sections.
- \subsection{Interlocking patterns}
- Have a look at the following images. They show you how you can set
- up sections so that reasonable train moves are possible.
- You should settle on a naming scheme for your sections. This way,
- you can determine the source of an issue faster
- \section{Signals and routes}
- Signals are appliances that can give instructions to trains. That
- can be the permission to proceed, a speed restriction, or other information.
- There are 2 types of signals:
- \begin{itemize}
- \item 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.
- \item Dynamic signals are what most people would call a ``signal''. Its
- function is to inform trains about whether and at which speed they
- can proceed into the next section safely.
- \end{itemize}
- \subsection{Signal Influence Point}
- 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.
- This is the reason why a so-called ``influence point'' 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.
- 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:
- \begin{itemize}
- \item Static signals and all red-green light signals from core advtrains
- that are not assigned to a TCB can be configured by holding the ``Use''
- key and then right-clicking the signal
- \item All signals that are assigned to a TCB can be configured by first
- right-clicking them, then selecting ``Influence Point'' in the signalling
- formspec.
- \end{itemize}
- The small formspec that opens allows you to set and later view or
- clear the Influence Point. To set the influence point, click the ``Set''
- 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)
- 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.
- \subsection{Signal Aspects}
- 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.
- 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.
- 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 ``Proceed at speed of 8'' or ``Shunt moves
- may not pass''. Dynamic signals, however, can display multiple different
- aspects. The default for them is always as restrictive as possible,
- mostly ``Halt!''.
- 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.
- In the following sections, we will talk about main signals. By this,
- we mean a variable signal that can display both a ``Danger'' aspect
- (trains are not allowed to proceed) and at least one ``Proceed''
- aspect (train may proceed as train/shunt move, with optional speed
- restriction), which act as an ``entry signal'' for one or multiple
- routes.
- \subsection{Train moves and Shunt Moves}
- \begin{itemize}
- \item A ``Train move'' 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.
- \item A ``Shunt move'' 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{itemize}
- 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.
- When a train reverses, its mode automatically changes to ``shunt
- move'' until it passes a main signal that shows ``Proceed as train
- move'', which is usually designated by a green light. From this point
- on, it can accelerate to maximum permitted speed.
- Some main signals, like the ones from the Ks signals mod included
- by default, can also display ``Proceed as shunt move'', which is
- designated by 2 white lights along with the red light. Once a train
- passes this signal, it becomes a shunt move.
- \subsection{The concept of routes}
- 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 ``entry'' signal.
- 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.
- \includegraphics[width=7cm]{6_home_moritz_Home_Projekte_Minetest_minetest_mods_advtrains_assets_lyx_img_route_ex1.png}
- 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 \textbf{same
- direction} (D and E), not at an opposite-facing signal (B and C).
- There are only few exceptions, we'll cover this later.
- When you set a route to make a train proceed on it, the interlocking
- system ensures that:
- \begin{itemize}
- \item There are no rail vehicles on the route
- \item All turnouts are set to the correct position and it is impossible
- to move them
- \item No other routes can be set that would in any way conflict with this
- route
- \end{itemize}
- 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.
- 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 ``away'' from the route. Example:
- \includegraphics[width=7cm]{7_home_moritz_Home_Projekte_Minetest_minetest_mods_advtrains_assets_lyx_img_route_ex2.png}
- 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.
- 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.
- \subsection{Assigning main signals to TCBs}
- 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.
- To do this, perform the following steps:
- \begin{enumerate}
- \item If not already happened, set up a TCB (you don't need to, but are
- advised to, configure track sections there)
- \item Place the signal a few meters in front of the TCB, so that trains
- stopping at the signal do never pass the TCB
- \item Locate the side of the TCB which points in the direction that trains
- will proceed past the signal, as shown in the figure below.
- \item Right-click the TCB, and click ``Assign a signal'' on this side.
- \item Punch the signal.
- \end{enumerate}
- \includegraphics[width=8cm]{8_home_moritz_Home_Projekte_Minetest_minetest_mods_advtrains_assets_lyx_img_assign_signal.png}
- If you haven't set an influence point for the signal yet, the influence
- point formspec automatically opens.
- 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.
- Only main signals can ever be assigned to TCBs, because static ones
- can either not display ``Danger'' or do not permit to proceed at
- all.
- \subsection{Shunt routes}
- \textbf{The information in this section is subject to future change
- because of safety issues!}
- 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.
- 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.
- 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:
- \includegraphics[width=7cm]{9_home_moritz_Home_Projekte_Minetest_minetest_mods_advtrains_assets_lyx_img_route_ex3.png}
- 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.
- Shunt routes like this are, so far, the only exception to the ``Routes
- should end at a signal facing the same direction'' rule.
- \subsection{Route Release}
- 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.
- 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.
- 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!)
- \subsection{Programming a route}
- The route programming procedure is quite straightforward if you've
- read the previous sections and understood how routes should be set.
- Routes always start at a main signal. You must have assigned the signal
- to a TCB, as described earlier.
- 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
- ``Create new route'' button to start programming a new route.
- The form closes, and an arrow is displayed on the TCB. You are now
- in ``Route Programming'' mode, programming the first track section
- of the route. Now:
- \begin{itemize}
- \item Put any turnouts you need to lock in the correct position (e.g. by
- right-clicking them). This includes flank protection.
- \item Punch them. This makes a marker with a blue lock symbol appear.
- \item If you punch a turnout again, or punch the marker, you can remove
- the lock again.
- \item 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{itemize}
- Depending on the situation, you are now offered some possibilities
- to proceed:
- \begin{itemize}
- \item Click the ``Advance to next section'' 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{itemize}
- Once you've clicked the ``Advance'' 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:
- \begin{itemize}
- \item Click the ``Finish route HERE'' 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.
- \item The ``Finish route at end of NEXT section'' button (third button)
- is an useful quickhand to make the route proceed one more section.
- Using this button is equivalent to first clicking the ``Advance''
- 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{itemize}
- A few hints:
- \begin{itemize}
- \item If you accidentally advanced the route wrongly, you can use the ``Step
- back one section'' button to undo this.
- \item If you want to stop programming the entire route without saving it,
- use the ``Cancel route programming'' button.
- \item 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).
- \item If a route should end in a dead end, you MUST use the ``Finish in
- NEXT section'' button, because there is no final TCB that you could
- punch.
- \item 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{itemize}
- \subsection{Route information screen}
- \includegraphics[width=10cm]{10_home_moritz_Home_Projekte_Minetest_minetest_____lyx_img_Bildschirmfoto_2019-01-15_19-28-09.png}
- This is the screen that appears when you click ``Edit Route''. It
- lets you change the route name and delete the route. Also, it shows
- a summary of the route and its elements.
- The route summary lists information per track section on the route,
- so the line starting with ``1'' is the first section of the route.
- The ARS rule list and its purpose is explained later.
- \subsection{Specifying signal aspects}
- By default, newly programmed routes show an aspect that comes closest
- to ``Proceed at maximum speed''. 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 ``Shunting allowed'' should be shown.
- This is the purpose of the ``Change Aspect'' button in the route
- info screen.
- 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).
- \begin{itemize}
- \item Train may proceed as train move at maximum speed: ``main: free, speed
- -1''
- \item Train may proceed as train move at speed of 8: ``main: free, speed
- 8''
- \item Train may proceed as shunt move: ``shunt: free''
- \end{itemize}
- There's a field in the ``shunt'' 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.
- \begin{itemize}
- \item A train move can always become a shunt move by passing a signal that
- shows ``Halt for train moves, shunting permitted''
- \item A shunt move can only pass a signal saying ``Proceed as train move,
- shunting not permitted'' when proceed\_as\_main is true.
- \end{itemize}
- 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 ``Proceed''. Regular main signals that show
- ``green'' have the field set to true, so that all trains can pass
- it.
- \section{Interlocking system operation}
- 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.
- At the moment, routes can either be set by clicking the signal or
- via LuaATC, or by using the ``Remote Routesetting'' button from
- the Onboard Computer. It is planned to control this via a ``signal
- box'' view based on the currently broken itrainmap.
- \subsection{Train Safety System}
- The Train Safety System, called ``LZB'' 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.
- 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 (``BB'') and can not be moved any further. You should
- then examine the situation and drive the train backwards out of the
- section.
- \subsection{Simple route setting and cancelling}
- To set a route, simply right-click the signal, select a route and
- click ``set route''. If there are no conflicts, the signal turns
- green and the train is allowed to proceed.
- 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.
- 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.
- \subsection{Automatic Working}
- 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.
- This is what Automatic Working is for. Set a route, click ``Enable
- Automatic Working'', and as soon as a train passes, the route is
- automatically re-set.
- 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-frequented
- 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.
- \subsection{Automatic Route Setting (ARS)}
- 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-programmed 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.
- Every train in Advtrains has 2 internal properties that can be set
- through the Onboard Computer of every engine in the train, the ``Line''
- and the ``Routing Code''
- \begin{itemize}
- \item The ``Line'' property is supposed to distinguish trains of multiple
- lines that share a track.
- \item The ``Routing Code'' property is supposed to tell the target of
- a train or which route it should take to reach the target
- \end{itemize}
- Examples:
- \includegraphics{11_home_moritz_Home_Projekte_Minetest_minetest_mods_advtrains_assets_lyx_img_arslin_ex1.png}
- Both lines share the section between Blackbirdshire and Parktown.
- To divert them again, they can save their line number in the ``Line''
- field.
- \includegraphics{12_home_moritz_Home_Projekte_Minetest_minetest_mods_advtrains_assets_lyx_img_arslin_ex2.png}
- Some trains should go to B, some to C, the direction can be set with
- a routing code.
- 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, ``Stn Ori'' would be matched by ARS rules either containing
- ``Stn'' or ``Ori''. This does not work for lines.
- \subsubsection{Writing ARS Rules}
- 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.
- \includegraphics{13_home_moritz_Home_Projekte_Minetest_minetest_mods_advtrains_assets_lyx_img_ars_ex1.png}
- You can add an asterisk (``{*}'') to the ARS rules of one route.
- That route then becomes the default route.
- 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.
- \subsubsection{Using ARS}
- 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.
- At any place where one of the following things take place, you should
- use the ARS system in favor of Automatic Working:
- \begin{itemize}
- \item A main line diverts into 2 or more lines: Using ARS, you can direct
- the trains along the line where they should go
- \item 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 ``wins''. In a bad situation, you
- have a train coming from A, but it cannot proceed because Signal B
- has won the ``route race'' into the shared section, even if there's
- no train coming from B. Using ARS, by just specifying the ``default
- route'' by a {*}, the inward route is only set when a train approaches.
- \item Complex intersections, which are probably a combination of the above
- two
- \item 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{itemize}
- In the route overview, you can see some information on the ARS settings:
- All routes that have ARS rules are highlighted red, the ``default
- route'' is highlighted green.
- ARS does not affect signals which already have a route set, and signals
- which are operating under ``Automatic Working''.
- \section{Final notes}
- The interlocking system is mainly finished, though there are still
- some plans and ideas. They include:
- \begin{itemize}
- \item Signalbox panels, as revival of itrainmap
- \item Distant signals
- \item On-Train head-up display for oncoming signals (they have something
- like this in Czech Republic, I forgot how it's called.)
- \end{itemize}
- 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.
- 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!
- - orwell
- \end{document}
|