Scheduleでの変数の使用

MTS・制御

 わが家の庭園鉄道は、ソフトウェアStellwerk easyとLGB社のMTS(マルチトレインシステム)を使って、コンピュータで制御しています。その時に、Shceduleというプログラムを書きます。

日本国内で、MTSやStellwerk easyを使っている方って、どれくらいいらっしゃるのでしょう? コメントいただけると嬉しいです。

 例えば、番号3番の機関車を速さ6で走らせる場合 L, 3, S, 6 という命令を書きます。

 ポイントなどを全て初期化して、5秒後に機関車(3番)を速さ6でスタートさせる場合は、

A
Z, 50
L, 3, S, 6
となります。

駅に着いたら、機関車をストップさせる場合は、線路にトラックコンタクト(写真赤で囲まれた黒いパーツ)を設置して、トラックコンタクトの通過を検出したら停止の命令を送ります。例えば、トラックコンタクトが512番とすると、

K, 512, B  ←トラックコンタクト512番の通過の検出
L, 3, S, 0

となります。これをずっと繰り返すためには、!とGを使って、Gから!へジャンプさせます。

A
!, START
Z, 50
L, 3, S, 6
K, 512, B
L, 3, S, 0
G, START

実際には、これをテキストファイルで保存して、Stellwerk easyに読み込みます。

ここで、問題になるのは、機関車を複数所有していて、機関車に番号を4,5,6,7など多数割り振っている場合です。機関車の番号は「L, n」の形で指定しますので、5番の機関車に指示するためには、上のScheduleの中の「L, 3」を全て、「L, 5」に書き換えて保存する必要があります。我が家には20輌以上の機関車があるため、これまで、line1-line2-loco3-loco4などと走るコースと機関車名をファイル名にして保存してきましたが、

line1-line2-loco3-loco4
line1-line2-loco6-loco8
line1-line2-loco15-loco18

などとファイルが増えるし、見た目もわかりにくいです。また、信号機を1箇所追加すると、全部のファイルを直さなくてはいけないのでとても面倒です。(テキストエディタの置換コマンドで「L, 3」を」「L, 5」に置換するにしてもです・・・)

Stellwerk easyのマニュアルを見てみると、markerというものがあり、いわゆる変数を使うことができます。数を入れる箱は1番から99番まであります。1番の箱に機関車の番号3を入れるには「D, 1, 3」。1番の箱に入った変数を読み出すには、M1を使います。すると、先ほどのScheduleは

A
D, 1, 3
!, START
Z, 50
L, M1, S, 6
K, 512, B
L, M1, S, 0
G, START

と変わります。このSheduleを動かすとM1のところは、Dを使って1番の箱に書き込んだ3になります。これなら、5番の機関車を走らせるときは、「D, 1, 5」と書き換えれば、「L, M1」の部分は自動的に「L, 5」になりますので変更する必要がありません。10分くらいで全ての線路を巡回するScheduleですと、Lが11個出てきますので、これでずいぶん管理が楽になります。

コメント

タイトルとURLをコピーしました