【第三章】自動センサー制御のテクニック
第23回 閉塞
VRMNXで自動運転をやる上では恐らく最高難易度なのが閉塞です。・・・と思っていたのですが、いつの間にか「共通ステータスが0以外で自動停止&自動出発」というコマンドが使い物になっていたので単純な閉塞なら楽にいけるかもしれません。
トミックスセット1のレールとTCS3灯式自動信号機を使います。なおこのサンプルレイアウトはおいちゃん用にVRM5で作ったものをNX用に変換したものです。
上のレイアウトが「共通ステータスが0以外で自動停止&自動出発」を使うオートマチック仕様、下のレイアウトが「センサーループ方式」を使うマニュアル仕様になります。文字と色分けで示してありますが1つのレイアウトは4つの閉塞区間で構成されています。その中の第1閉塞区間の自動センサーを見ます。
①で第1閉塞区間を閉じます。
1)時間:0ms、種類:システム、CMD:共通ステータスに値をセット、Param:1,1
2)時間:0ms、種類:信号機、部品:(部品名を指定)、CMD:信号機#0を停止表示
②で第1閉塞区間を開きます。
1)時間:0ms、種類:システム、CMD:共通ステータスに0をセット、Param:1
2)時間:0ms、種類:信号機、部品:(部品名を指定)、CMD:信号機#0を進行表示
③で第2閉塞区間の状況を見て自動停止&自動出発します。
1)時間:0ms、種類:検出した編成、CMD:蓄積されている命令をクリア
2)時間:0ms、種類:検出した編成、CMD:共通ステータスが0以外で自動停止&自動出発、Param:2
共通ステータスに0が入っていれば進入OK、1が入っていれば進入NGという訳です。ただこれだけだと出発してもノロノロ運転になるので加速用のセンサーも所々に配置しています。以前はこの加速用のセンサーを配置すると動作しなかったりしていたのですが、今は直っているようです。また③の1)で蓄積されている命令をクリアしています。確実に2)を実行させたい時には余計な命令が蓄積していると上手くいかないことがあるのでこのコマンドを使っておきましょう。
予定外で上手くいっていたのでマニュアル方式である「センサーループ方式」は、多数のセンサーを使うため説明しても訳が分からなくなるだけですから、細かくセンサーの中身を説明するということはせず概念だけ説明します。
一旦停車してしまうと再出発が難しいということは前回の機回しでも学びました。それと同じで停車した編成をまた出発用センサーに教えてやる必要があります。今度は直接ではなく間接的に伝達する形です。ここに表示されているセンサー内は全て「検出した編成」のコマンドを使用しています。これにより最終的に出発用センサーに編成を教えています。やっていることは停車したら2つのループ用センサーを呼び出し順にそれぞれから出発用センサーを呼び出して、前方の閉塞がオープンになるのを待っているのです。
アイマジック社が提供するオートマチック仕様がどの程度まで使えるのかは未知数ですが、複線の単純な一方通行では十分使えそうです。ただ単線で両方向に列車が走る場合には対応しきれない可能性があります。その時はセンサーループ方式を使うことになるかもしれませんが、センサーを大量に使うので正直言ってゴチャゴチャするし面倒臭いです(^_^;) センサーがスッキリする分Pythonスクリプトを使う方が良い気がしますが決して簡単な訳でもない(参考記事)ので、ロジックに対しあまり自信がない場合には手を出さない方がぶっちゃけ無難です(^_^;)
このテストレイアウトのダウンロードはコチラからどうぞ