前々回作成のROUTE02の複線バージョン(複線駅、入れ違い発車、4列車走行)
せっかく複線になのだから、ROUTE02を内回り線と外回り線とで同時に動かした。簡単ではあるが、手間は倍で少々めんどくさい。やってみたら、なかなか派手で楽しかった。
*状況
(DL:ディーゼル機関車の貨物列車、 SL:蒸気機関車の客車列車、 EL:電気機関車の貨物列車、 LT:ディーゼルレイルカー/気動車 と略す)
(複線、右側通行。内回りは時計回り、外回りは反時計回り)
A と B が同時進行。[A] ---- 内回り線、時計回り、DLとSL、ROUTE02そのもの
DLが内回り線の待避線に停車中[繰り返し始まり]SLが内回り線の本線に入線し停車内回り待避線上のDLが発車一周して、DLが追いつき内回り待避線に入線し停車内回り本線上のSLが発車[繰り返し終わり]
[B]---- 外回り線、反時計回り、ELとLT
ELが外回り線の待避線に停車中[繰り返し始まり]LTが外回り線の本線に入線し停車外回り待避線上のELが発車一周して、ELが追いつき外回り待避線に入線し停車外回り本線上のLTが発車[繰り返し終わり]
<図解>
[内回り]
列車検知:11番(待避線西)、7番(待避線東)、16番(駅東手前)2番(本線西)、6番(本線東)今回、16番列車検知は使いません、使わなくても済みました。分岐器:11番(駅西手前)、20番(駅東手前)、
[外回り]
列車検知:13番(待避線西)、3番(待避線東)14番(本線西)、10番(本線東)分岐器:9番(駅西手前)、21番(駅東手前)
*プログラムを考える
追突防止のため、内回り線と外回り線を走るのは各1列車だけにする。したがって、内回り線と外回り線の両方が駅 に停車している。内回り線:待避線はDL、本線はSLと入線を固定。外回り線:退避線はEL、本線はLTと入線を固定。routeの名前は内容が分かる表現にする。
初期値
内回り線
20番分岐器は左(本線)側11番列車検知はOn状態(DLが待避線に停車中)SLが時計回りで駅に向かって走って来る。SLやDLのエンジン音やヘッドライトはお好みで。
外回り線
9番分岐器は右(本線)側3番列車検知はOn状態(ELが待避線に停車中)LTが反時計回りで駅に向かって走って来る。ELやLTのエンジン音やヘッドライトはお好みで。
*実際のroute
内回り線の4つのrouteは、ROUTE02で作成したrouteなので ROUTE02を参照。[S.6:S2h][D.7:Ddh][S.2:SsDgTR][D.11:DsSgTL]以下外回り線の4つは新規に作成した。[L.14:Ldh]
LTが来て、14番がOff→Onしたら、LTを遅くすし、ホーンを鳴らす。
画面右側に、L.14:Sdhの中のunitが表示されている。
予め作っておいた、機関車ごと動作ごとのrouteを入れ子にして用いている。上のunit:L.Sp:M LTのSpeedをMiddleにする、delayは1.0秒という内容の route.下のunit:L.Ho:10 LTのHornを鳴らし(1)て止める(0)、delayは5.0秒という内容 のroute画面下に、routeの名前、起動条件が記されている。Name 名前 L.14:SdhBus0:Contact:14 列車検知 CS2のBus0のデバイス(LinkS88)の14番Tr. トリガー 機関車が向かってくる絵 列車検知が Off→Onに変化
ELが来て、13番がOff→Onしたら、ELを遅くし、ホーンを鳴らす。
画面右側に、E.13:Edhの中のunitが表示されている。予め作っておいた、機関車ごと動作ごとのrouteを入れ子にして用いている。上のunit:E.Sp:M ELのSpeedをMiddleにする、delayは1.0秒という内容の route.下のunit:E.Ho:10 LTのHornを鳴らし(1)て止める(0)、delayは5.0秒という内容 のroute画面下に、routeの名前、起動条件が記されている。Name 名前 E.13:EdhBus0:Contact:13 列車検知 CS2のBus0のデバイス(LinkS88)の13番Tr. トリガー 機関車が向かってくる絵 列車検知が Off→Onに変化
LTが来て、10番がOff→Onしたら、LTを停車、ELを発車、9分岐を左に(次にELが来たら、左側の待避線に入線させるため)
画面右側に、L.10:LsEgTLの中のunitが表示されている。予め作っておいた、機関車ごと動作ごとのrouteを入れ子にして用いている。上のunit:L.Sp:o LTのSpeedを0(=停止)にする、delayは5.0秒という内容の route.中のunit:E.Sp:H ELのSpeedをhighにする、delayは10秒という内容 のroute下のunit:TO.09:L 09番のTurnOutをLeftにする、delayは5.0秒という内容の route.画面下に、routeの名前、起動条件が記されている。Name 名前 L.10:LsEgTLBus0:Contact:10 列車検知 CS2のBus0のデバイス(LinkS88)の10番Tr. トリガー 機関車が向かってくる絵 列車検知が Off→Onに変化
ELが来て、3番がOff→Onしたら、ELを停車、LTを発車、9分岐を左に(次にLTが来たら、右側の本線に入線させるため)
画面右側に、E.3:EsLgTRの中のunitが表示されている。予め作っておいた、機関車ごと動作ごとのrouteを入れ子にして用いている。上のunit:E.Sp:o ELのSpeedを0(=停止)にする、delayは5.0秒という内容の route.中のunit:L.Sp:H LTのSpeedをhighにする、delayは10秒という内容 のroute下のunit:TO.09:R 09番のTurnOutをRightにする、delayは5.0秒という内容の route.画面下に、routeの名前、起動条件が記されている。Name 名前 E.3:EsLgTRBus0:Contact:3 列車検知 CS2のBus0のデバイス(LinkS88)の3番Tr. トリガー 機関車が向かってくる絵 列車検知が Off→Onに変化
内回り線
20番分岐器は左、11番分岐器はどちらでも可。11番列車検知はOn状態(DLが反時計回り向きで停車)。
外回り線
9番分岐器は右、21番分岐器はどちらでも可。6番列車検知はOn状態(ELが時計回り向きで停車)。
作成した8つのrouteの右端にある[手]のボタンをタッチして[手と機関車]にする。これで、この列のrouteはそれぞれの条件に応じてトリガーされ起動する。
3. 列車を走らせる。
内回り線を時計回りでSLを適当な速さで走らせ、駅に向かわせる。
外回り線を反時計回りでLTを適当な速さで走らせ、駅に向かわせる。
後は、追いつきリレー発車を無限に繰り返す。
*今後
routeの名前は要検討
routeの名前は要再検討だ。長い名前はつけられのだが最大10文字までしか表示できない。それ以上長いと途中が省略される。また、10文字なら全部表示できるが、隣の名前とくっついてしまい読みにくい。短くて内容がわかる表記ルールを考える必要がある。具体的な案としては、区切りに用いた小数点(.)やコロン(:)はやめてその分を文字に使うか。複雑な内容を簡単な名前で表現するのは難しい。
routeの配置
今回作成したrouteの左4つのrouteはROUTE02の時に作成したものであある。それらを有効活用している。将来、小さな自動運転プログラムを組合せて複雑な自動運転プログラムを作成する場合に、既存routeの配置が結構効いてく流のでよく配置は考えた方が良いと思う。memory画面のrouteの移動やコピー出来たらそんな心配はないんだけど、出来ないから作る場所は重要。ちなみに、[g-j]画面の1行目のrouteはROUTE01で、2行目がROUTE02とROUTE04で、3行目はROUTE03で用いたものである。実は、ROUTE03の右側空き地にROUTE05のrouteを予定している。
0 件のコメント:
コメントを投稿