自動停車をするための、もう1つすばらしいスクリプト命令があります。
AutoSpeedCtrl 速度調整距離(mm), 電圧を示す値
現在の位置から指定したmmだけ走行後に指定速度にするという優れものです。
これを使用して自動停車させてみましょう
Stopじゃないと気持ち悪い人のためメソッド名はStopにします。
これを使用して自動停車させてみましょう
Stopじゃないと気持ち悪い人のためメソッド名はStopにします。
//とりあえず即発車
SetVoltage 1.0
Var km/h // 速度
Var mm // 速度調整距離
setf mm, 256.0 // I.MAGIC規格 2倍直線レールの長さ
mul mm, 5.0 // そのレールの5.0倍を速度調整距離とする
Var mm // 速度調整距離
setf mm, 256.0 // I.MAGIC規格 2倍直線レールの長さ
mul mm, 5.0 // そのレールの5.0倍を速度調整距離とする
call this, Stop
BeginFunc Stop
setf km/h, 0.0 // 停車のため0.0km/h
setf km/h, 0.0 // 停車のため0.0km/h
// 最高速度を取得
Var top
GetTopSpeed top
Var top
GetTopSpeed top
// 設定する速度を取得
Var v
mov v, km/h // 変数km/hを変数vに格納する
Var v
mov v, km/h // 変数km/hを変数vに格納する
// 電圧に換算
div v, top
div v, top
//mmミリ走行後に設定速度にする
AutoSpeedCtrl mm, v
EndFunc
AutoSpeedCtrl mm, v
EndFunc
速度調整距離の値を決めるのに、そのつど距離計測ツールで距離を測ってもいいのですが、直線レールの長さの倍数でおおよその見当がつけられる(レールの本数を数えるだけで済む)ので私はこのようにしています。
こんなにすばらしいAutoSpeedCtrlがあるのになぜ自動発車のところで教えてくれなかったのですか?
と思うかもしれないですが、これにはちょっと理由があります。
AutoSpeedCtrlには欠点があって完全に停車している0.0km/hからの加速が行えないのです。
最低でも0.1km/hで走行している状態からの自動速度調整しかできないのです。
と思うかもしれないですが、これにはちょっと理由があります。
AutoSpeedCtrlには欠点があって完全に停車している0.0km/hからの加速が行えないのです。
最低でも0.1km/hで走行している状態からの自動速度調整しかできないのです。
私はこのスクリプト命令が増えたときに自動発車させようとしたものの編成が発車せず、編成が操作不可能になり焦りました。
回避策として徐行発車してからAutoSpeedCtrlを使用するという手もありますがAutoSpeedCtrlは、走行距離を意識して自動停車する場合と走行中に加減速する場合に使用することをお勧めします。
この理由のためStopメソッドの名前を変更してAutoSpeedメソッドにしておきましょう。
スクリプトをまとめなおします。
//とりあえず即発車
SetVoltage 1.0
Var mm // 速度調整距離
setf mm, 256.0 // I.MAGIC規格 2倍直線レールの長さ
mul mm, 5.0 // そのレールの5.0倍を速度調整距離とする
setf mm, 256.0 // I.MAGIC規格 2倍直線レールの長さ
mul mm, 5.0 // そのレールの5.0倍を速度調整距離とする
Var km/h // 速度
setf km/h, 0.0 // 停車のため0.0km/h
setf km/h, 0.0 // 停車のため0.0km/h
call this, AutoSpeed
BeginFunc AutoSpeed
// 最高速度を取得
Var top
GetTopSpeed top
// 最高速度を取得
Var top
GetTopSpeed top
// 設定する速度を取得
Var v
mov v, km/h // 変数km/hを変数vに格納する
Var v
mov v, km/h // 変数km/hを変数vに格納する
// 電圧に換算
div v, top
div v, top
//mmミリ走行後に設定速度にする
AutoSpeedCtrl mm, v
EndFunc
AutoSpeedCtrl mm, v
EndFunc
これが自動閉塞のための基礎となりますので、じっくりとスクリプトを観察してください。
何か書くネタを思いついたら第0章 2-3をやります。
思いつかなかったら第1章に進みたいと思います。
思いつかなかったら第1章に進みたいと思います。