区間閉塞のために 第0章 2-2 自動停車その2の方法

自動停車をするための、もう1つすばらしいスクリプト命令があります。
 
AutoSpeedCtrl 速度調整距離(mm), 電圧を示す値
 
現在の位置から指定したmmだけ走行後に指定速度にするという優れものです。
これを使用して自動停車させてみましょう
Stopじゃないと気持ち悪い人のためメソッド名はStopにします。
 
//とりあえず即発車 
SetVoltage 1.0
 
Var km/h // 速度
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
 
    // 最高速度を取得
    Var top
    GetTopSpeed top
 
    // 設定する速度を取得
    Var  v
    mov  v, km/h // 変数km/hを変数vに格納する
 
    // 電圧に換算
    div v, top
 
    //mmミリ走行後に設定速度にする
    AutoSpeedCtrl mm, v
EndFunc
 
速度調整距離の値を決めるのに、そのつど距離計測ツールで距離を測ってもいいのですが、直線レールの長さの倍数でおおよその見当がつけられる(レールの本数を数えるだけで済む)ので私はこのようにしています。
 
こんなにすばらしいAutoSpeedCtrlがあるのになぜ自動発車のところで教えてくれなかったのですか?
と思うかもしれないですが、これにはちょっと理由があります。
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倍を速度調整距離とする
Var  km/h // 速度
setf
km/h, 0.0 // 停車のため0.0km/h
 
call this, AutoSpeed
 
BeginFunc AutoSpeed
   
// 最高速度を取得
    Var top
    GetTopSpeed top
 
    // 設定する速度を取得
    Var  v
    mov  v, km/h // 変数km/hを変数vに格納する
 
    // 電圧に換算
    div v, top
 
    //mmミリ走行後に設定速度にする
    AutoSpeedCtrl mm, v
EndFunc
 
これが自動閉塞のための基礎となりますので、じっくりとスクリプトを観察してください。
 
何か書くネタを思いついたら第0章 2-3をやります。
思いつかなかったら第1章に進みたいと思います。
カテゴリー: VRM Script   パーマリンク

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携済み