2021-03-28

ROUTE07:列車の追い越し、追いかけっこ

Route02の改良発展形、列車の追い越し、追いかけっこ

Route02で常に1列車が駅に止まっているのが気に入らなかった。
デジタルを生かして同一線路上の2列車同時走行を試した。
単線駅で先行する列車を後から来た列車が追い越す。
各駅停車を特急が追い抜く感じ。
それを繰り返す。

*状況
外回り線、SLに続いてDLが時計回りに走行中。
両列車とも単線駅に向かっている。
先に到着したSLは本線に進入し停車。
後から来たDLは駅に止まらず待避線を駆け抜ける。
続いてSLが発車。
SLは追い抜いたDLを追いかける。
両列車一周して、
先に到着したDLは待避線に進入し停車。
後から来たSLは駅に止まらず本線を駆け抜ける。
続いてDLが発車。
DLは追い抜いたSLを追いかける。
[以下追いかけっこの繰り返し]

<図解>
使用する列車検知
待避線、先頭:11番 尻:7番(DLの減速や停止に使用)
本線、先頭:2番  尻:6番(SLの減速や停止に使用)
駅入口、16番(使用せず)
使用する分岐器 
20番(駅進入の本線/待避線切替)
11番(使用はするが、切り替えはしない、どっち向いていても良い)


*プログラムを考える
待避線はDLへ、本線はSLへと入線を固定。
列車は時計回りに走行。
分岐器を切り替えるトリガーや条件どうするか
列車が駅に到着した際に、自分が先行か後行かの判断はどうする
先行なら停止し後行列車を待つ、そして後行のために分岐器を切り替える。
後行なら停止せず駅を駆け抜け追い抜く、抜け終わった後に停車中の先行列車を発車させる。
これをどうトリガーや条件にするか?

*route
[S6S2h](条件なし)
画面右側に、route S6S2hの中のunitが表示。
予め作っておいた機関車ごと動作ごとのrouteを入れ子にして用いる。
詳しくは one-unit routeの説明参照。
1番目のunit:S.Sp:M SのSpeedをMiddle(中速)にし1.0秒待て、という内容
2番目のunit:S.Ho:10 SのHornを鳴らし1.0秒待て、という内容
画面下に、routeの名前、起動条件が表示。
Name 名前 S6S2h
Bus0:Contact:6 列車検知 CS2のBus0のデバイス(LinkS88)の6番
Tr. トリガー 機関車が向かってくる絵 列車検知が Off→Onに変化したら

[S2S0T20R](条件あり)
画面右側に、route S2S0T20Rの中のunitが表示。
予め作っておいた機関車ごと動作ごとのrouteを入れ子にして用いる。
詳しくは one-unit routeの説明参照。
1番目のunit:S.Sp:0 SのSpeedを0(停止)にし1.0秒待て、という内容
2番目のunit:TO.20:R  20番TurnoutをRightにし1.0秒待て、という内容
画面下に、routeの名前、起動条件が表示。
Name 名前 S2S0T20R
Bus0:Contact:2 列車検知 CS2のBus0のデバイス(LinkS88)の2番
Tr. トリガー 機関車が向かってくる絵 列車検知が Off→Onに変化したら
この画面だけでは、条件があるのかないのかはわからない、詳細(Ext.)を開く必要がある。
↓ Exit. ボタンをタッチして詳細画面を開く
上半分がトリガー、下半分が条件
条件:       Bus0:Contact:11 CS2のBus0のデバイス(LinkS88)の11番列車検知に列車がいない場合に
トリガー:Bus0:Contact:2 CS2のBus0のデバイス(LinkS88)の2番列車検知に列車が来たら実行
トリガーは、Off→OnやOff→Onへの状態の変化を読み取る。
列車が向かってくるアイコンはOff→Onの変化、列車が出ていくアイコンはOff→Onの変化
条件は、列車がいる、列車がいないなどの状態を読み取る。
線路だけのアイコンが列車がいない状態、列車のアイコンは列車がいる状態

[D11D3S3](条件あり)
画面右側に、route D11D3S3の中のunitが表示。
予め作っておいた機関車ごと動作ごとのrouteを入れ子にして用いる。
詳しくは one-unit routeの説明参照。
1番目のunit:D.Sp:H DのSpeedをHigh(高速)にし6.0秒待て、という内容
DLに続いてSLを発車させるが、追突させないためと分岐器切替の時間(距離)確保のために間隔を開ける必要がある。長くすれば安心だがつまらなくなる、何度か試して、6秒あれば大丈夫な事がわかったので6秒のdelayとした。delayはこういう時に使うのだとわかった。
2番目のunit:S.Sp:H SのSpeedをHigh(高速)にし1.0秒待て、という内容
画面下に、routeの名前、起動条件が表示。
Name 名前 D11D3S3
Bus0:Contact:11 列車検知 CS2のBus0のデバイス(LinkS88)の11番
Tr. トリガー 機関車が向かってくる絵 列車検知が On→Offに変化したら
DLが駅を通過して抜けきったら停車中のSLを発車させるのだが、抜けきったというのはどう判断すれば良いのか?それが、今回初めて使った、Off→Onである。列車検知に列車が来ると、Off→Onになる。長い列車編成が列車検知の上にいる間はOnのままであり、最後尾の車輪が抜けると(=列車が通過しおわると)Offになる。という事で、On→Offをトリガーにすれば抜けた事がわかる。
この画面だけでは、条件があるのかないのかはわからない、詳細(Ext.)を開く必要がある。
↓ Exit. ボタンをタッチして詳細画面を開く
上半分がトリガー、下半分が条件
条件:       Bus0:Contact:2 CS2のBus0のデバイス(LinkS88)の2番列車検知に列車がいる場合に
トリガー:Bus0:Contact:11 CS2のBus0のデバイス(LinkS88)の11番列車検知に列車が来たら実行

[D7D2h](条件なし)
説明は省略

[D11D0T20L](条件あり)
条件(詳細設定)画面

[S2S3D3](条件あり)
条件(詳細設定)画面

*実走
1. 初期状態の確認
11番分岐器はどちらでも可、20番分岐器は左。
2. 手動モードから自動モードに切り替える。
作成した6つのrouteの右端にある[手]のボタンをタッチして[手と機関車]にする。
これで、この列のrouteはそれぞれの条件に応じてトリガーされ起動する。
3. 内側周回路を時計回りでSLと間隔を開けてDLを走らせる。間隔は時間にして6秒以上必要、短いと分岐器切替が間に合わず追突する。

*考えどころ
なかなか大変だったが、動かしてみる本物っぽくてよかった。特急が駅を走り抜けて止まっている各駅停車を抜いていく感じである。また、駅構内に入るとホーンを鳴らし徐行する、駅を抜けると速度を上げるなど細かいところまで気を使ったが雰囲気が出ていた。2列車同時走行は少々怖かったが鉄道模型らしからぬ景色ではある。
実は、ROUTE06を制作中なのであるが、難しいというかややこしくてすごい手間がかかり訳がわからなくなってしまい07の方が先にできてしまった。

0 件のコメント:

コメントを投稿