両方向信号における進路開通条件の追加 - teamhimeh/simutrans GitHub Wiki

この機能はまだ草案段階です。

概要

主に単線区間におけるデッドロック発生を抑止しながら利便性を向上させるため、両方向信号の進路開通に条件を追加する。 片方向信号に変更はない。

背景と目的

現行Simutrans OTRPでは通常信号、プレシグナル、三現示信号、多閉塞信号、振分信号の5種類が存在するが、現状の挙動では単線区間における続行運転や1線スルー化といったニーズに信号システムだけで応えることは困難である。 本変更では、既存の使い勝手を変えることなく、主に単線区間において信号システムのみでデッドロックを抑制しながら続行運転や1線スルー化を可能にすることを目的とする。

詳細

予約方向

両方向信号では、進路が予約された場合に予約方向を持つようになる。予約方向は、その閉塞がどの方向から予約されたかを表す方向である。 例えば、単線であるA駅とB駅間に両方向信号(1)(2)が置かれた場合を考える。

A駅------(1)------(2)------B駅

ここで、------は閉塞が予約されていない線路、>>>>>><<<<<<は、その方向を向いた編成によって閉塞が予約された線路を表す。

例えば、A駅からB駅まで向かう列車がA駅を出発した直後に信号機(1)まで閉塞を予約した状態は以下のようになる。

A駅>>>>>>(1)------(2)------B駅

このとき、信号機(1)の予約方向は>(右方向)である。予約方向は、その信号機までの閉塞が予約されたときに設定され、その信号機のマスの閉塞予約が解除された時に空になる。たとえば、先の例から列車が進み、列車の最後尾が信号機(1)を過ぎて信号機(1)(2)の間にいる場合

A駅------(1)>>>>>>(2)------B駅

は、信号機(1)の予約方向は空、信号機(2)の予約方向は>となる。

進路開通条件

両方向信号機の進路開通条件に以下を追加する。

  • 次の停車駅、もしくは次の片方向信号機までの経路上に、自編成の進行方向と合致しない予約方向を持つ信号機が存在しない。

信号機のもとの進路開通条件も同時に適用する。たとえば、プレシグナルであれば再帰的に予約される全ての区間が開通しない限り進路を開通しない。 進路を開通させる時に閉塞を予約させる区間は、信号機のもとの性質に従う。例えば、普通信号であれば1閉塞だけ予約するし、3現示信号であれば予約できる区間を再帰的に予約する。

例1

A駅------(1)>>>>>(2)------B駅

普通信号機(1), (2)が置かれていて、(1)-(2)間が>方向で予約されている時、信号機の予約方向は

  • (1) ... 無
  • (2) ... >

A駅から信号機(1)までは予約可能である。実際に予約すると、閉塞の予約状況は以下のようになる。

A駅>>>>>>(1)>>>>>(2)------B駅

例2

A駅------(1)------(2)<<<<<<B駅

普通信号機(1), (2)が置かれていて、(2)-B駅間が<方向で予約されている時、信号機の予約方向は

  • (1) ... 空
  • (2) ... <

このとき、A駅から信号機(1)までは予約できない。なぜなら、予約しようとしている方向>と信号機(2)の予約方向<は一致しないからである。

例3

A駅------(1)>>>>>(2)------B駅

(1)はプレシグナル, (2)は普通信号機とする。このとき、駅から信号機(1)までは予約できない。なぜなら、(1)はプレシグナルはプレシグナルであり、A駅-(1)間の進路の開通には(1)-(2)間の開通も必要だからである。

例4

              ┌---(3)>>>>>>B駅
A駅------(1)------(2)------B'駅

(1)は両方向普通信号機、(2)(3)は片方向普通信号機とする。このとき、A駅から信号機(1)までは予約可能である。A駅->(1)->(3)->B駅 のうち、信号の予約方向は(1)についてのみ検査される。

ケーススタディ

続行運転

A駅------(1)>>>>>(2)------B駅

普通信号機(1),(2)が置かれていて、(1)-(2)間が>方向で予約されている時、A駅から信号機(1)までは予約可能である。A駅から信号機(1)までが予約され、先行列車がいなくなった状態

A駅>>>>>>(1)------(2)------B駅

において、B駅->(2)は予約することができない。なぜならば(1)の予約方向が>だからである。したがって、デッドロックは防がれる。

1線スルー

              ┌---B駅---┐
A駅------(1)------B駅------(2)------C駅

A駅とC駅は優等列車の停車駅、B駅が通過駅であるとする。このとき、

  • 信号機(1),(2)を両方向の振り分け信号機とする
  • 各駅停車のB駅の停車座標は、上下方向ともに副本線を指定する

ことによって、信号システムだけで優等列車の待避と各駅停車どうしの列車交換を両立させることができる。

列車交換は、先着列車が副本線に停車し、あとから来る列車が信号機(2)によって本線に停車することで成立する。

              ┌>>>>>>┐
A駅------(1)------------(2)<<<<<<C駅

このとき、A駅->(1)を優等列車が進路を予約しようとしても、(2)の予約方向が<であるため予約できないのでデッドロックは回避される。

デッドロックするかもしれないケース

                      ┌>>B駅>>>┐
A駅------(1)-----(2)---<<B駅<<<---(3)-----(4)-----C駅

B駅の上下線に列車が停車中に、A駅側、C駅側双方から同時に各駅停車がそれぞれ信号機(1),(4)に予約を行うと、この状態ではすべての信号機の予約方向が空なので予約できてしまう。B駅に停車中の列車は進路がなくなるので、デッドロックが発生する。