User:Vitus/Train Stopper

From #openttdcoop wiki

< User:Vitus
Revision as of 15:30, 11 August 2010 by Vitus (Talk | contribs) (Yet another train stopper)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

On-demand train stopper

Train stoppers can generally be used in every case where we need exactly same starting conditions for all incoming trains. Such starting conditions can be either full speed (use cyclotron in this case) or zero speed, i.e. stopped train. While cyclotron is great tool, because (unlike train stopper) it keeps train's momentum, it has few major drawbacks - namely huge space requirements (the more with large TLs) and high percentage of missed join opportunities (can be improved by using cyclotron for two or more trains). On the other hand, on-demand train stopper is quite compact and percentage of missed opportunities is low (happens only while the train is slowing down). However, train stopper needs at least two additional trains to work (one for delay and at least one for NOT gate) and the NOT gate might require fast(er) train(s) to work without large delays.

On-demand train stopper must be able to handle two different situations:

  • Train approaching at full speed
  • Queue of trains


Relevant savegame: File:Train stopper.sav (r20279)

Description

General description
  1. Entry priority - makes sure the delay triggers soon enough; connected to NOT gate; used to stop trains approaching at full speed
  2. NOT gate - stops (train in) delay unless there's train approaching to train stopper; used to stop trains approaching at full speed
  3. Delay stopper - prevents delay from triggering again while the train is still waiting for join opportunity; also used to handle train queues
  4. Delay - delays the green signal state to make sure train stops completly (by modifying input - generally high-speed priority)


Mechanism

Fig. 1

Approaching train triggered entry priority, trains in NOT gate stop, delayer gets green signal and train (in delay) is released.


Fig. 2

Train in delay modifies state of input (high-speed priority in this case) and approaching train is forced to stop (note the red entry presignal which stops incoming train). Delay stopper is also triggered, preventing train in delay to start another circle (note the red entry presignal in delay).

Once the joining train is gone, NOT gate starts working again, keeping train in delay stopped.


Fig. 3

This is example of handling train queues. NOT gate produces only green signal in this case (there's at least one train in entry priority), so delay stopper handles both triggering priority and stopping train in delay. In the picture above, joining train just left train stopper. NOT gate is green and there's no train in delay stopper, thus train in delay gets green signal and is released. While the second train slows down, delay stopper becomes blocked again, which in turn stops train in delay.

Powered by MediaWiki