2015/10/03 開設

2016/06/26 更新


はじめに

ページ執筆者 ≠ ATS-SW/P2プラグイン制作者」です。プラグインが完全に正常動作することを保障するものではありませんのでご注意下さい。

 

ATS-SW/P2プラグイン(以下swp2プラグイン)は、Bve4時代に付属編成氏によって作成されたATSプラグインで、主にJR西日本車両の車両アドオンに搭載されています。

しかし、作者のHPは既に閉鎖され、Webアーカイブ上でしか存在しません。swp2プラグインはBve Trainsim 5となった現在でも対応する車両データが開発され続けていますが、路線側の地上子の設置方法は知る人ぞ知るものとなっている現状です。

そのような状況を打開し、swp2プラグイン対応車両が最低限走れるような路線データの書き方を説明するための場を設け、路線データ作者様への支援をしようという思いから設けたのがこのページであります。


記述例(ATS-P)

■閉塞信号機(5閉塞先までの現示を読み取る)の例

 

$Beacon = (信号機の距離程);

$Beacon - 30; //地上子の距離程

     Beacon.Put(5,1,0); //即時停止地上子(第1引数=5 絶対信号機(場内,出発)は4にする)

     Beacon.Put(3,1,1); //パターン更新地上子(第1引数=3) 1閉塞先を読み取る

     Beacon.Put(3,2,2); //2閉塞先 このように第2,3引数は同じ数字を指定

     Beacon.Put(3,3,3); //3閉塞先

     Beacon.Put(3,4,4); //4閉塞先

     Beacon.Put(3,5,9); //5閉塞先 最後のみ第3引数は9を指定

     Structure[structureKey].Put0(trackKey, tilt, span);  //地上子のストラクチャ

 

$Beacon - 85;

     Beacon.Put(3,1,1); //同様に指定間隔毎にパターン更新地上子設置

     Beacon.Put(3,2,2);

     Beacon.Put(3,3,3);

     Beacon.Put(3,4,4);

     Beacon.Put(3,5,9);

     Structure[structureKey].Put0(trackKey, tilt, span);

 

$Beacon - 180;

     Beacon.Put(3,1,1);

     Beacon.Put(3,2,2);

     Beacon.Put(3,3,3);

     Beacon.Put(3,4,4);

     Beacon.Put(3,5,9);

     Structure[structureKey].Put0(trackKey, tilt, span);

 

$Beacon - 600;

     Beacon.Put(3,1,1);

     Beacon.Put(3,2,2);

     Beacon.Put(3,3,3);

     Beacon.Put(3,4,4);

     Beacon.Put(3,5,9);

     Structure[structureKey].Put0(trackKey, tilt, span);


構文解説

swp2プラグインは、Beacon.Putの配置方法が非常に独特であるため、他プラグインのような置き方ではまずブレーキ動作してまともに運転できません。

直後の信号機の他、数閉塞先の信号機の現示を同時に読み込ませないといけない仕様であるからです。そして読み込み先(Section.Begin文の場所)の信号機が停止信号の場合にのみ、停止パターンを生成します。

上記は例として5閉塞先まで読み込ませる置き方です。

第2,3引数に何閉塞先を読むかを指定しますが、最後だけ第3引数を9にします。

 

地上子の位置は、

閉塞信号機は600m,180m,85m,30m手前、

絶対信号機は600m,280m,180m,130m,85m,50m,30m手前で良いかと思われます。

ただし、地上子を配置すべき位置が手前の信号機より更に手前になってしまう場合は、その地上子を省略します。例えば距離1000mと1500m地点に閉塞信号機があるとき、1500mの信号機に付属する地上子のうち、600m手前の物は1000m地点の信号機より手前(900m地点)になってしまうので、地上子を省略します。

 

これでひとまずswp2対応車両でATS-Pが動かせるようになると思われます。


ブレーキ動作対策

以上のことを守って地上子を設置したにも拘らず、ブレーキ動作することがあります。その原因としては主に2つが考えられます。

 

1.パターン更新地上子で読み込み対象とする閉塞の数(上記の例では5閉塞先)が少なすぎる

2.パターン更新地上子で読み込み対象とする閉塞が存在しない

 

以下に対処法を書きます。

 

1の対策方法

 

これは、読み込み対象となる閉塞のうち、一番奥の閉塞(上記の例では5閉塞先)の信号機を、現示に関係なく停止信号扱いにして停止パターンを生成する仕様のためであり、高速運転を行う路線で、閉塞間隔が短い路線では、この停止パターンに引っかかりブレーキ動作しやすくなります。

そのような場合、読み取る閉塞数を最大9閉塞まで拡張することで回避できます。以下のように書き換えてください。

 

Beacon.Put(3,1,1);

Beacon.Put(3,2,2);

Beacon.Put(3,3,3);

Beacon.Put(3,4,4);

Beacon.Put(3,5,5);

Beacon.Put(3,6,6);

Beacon.Put(3,7,7);

Beacon.Put(3,8,8);

Beacon.Put(3,9,9);

 

これにより9閉塞先が停止信号扱いになり、停止パターンの生成箇所がより遠方になるためブレーキ動作を回避しやすくなります。

 

2の対策方法

 

読み取るべき閉塞がそもそも存在していないとブレーキ動作で非常ブレーキが作動します。終着駅手前などで発生しやすい症状で、例えば上記の設置例では、5閉塞先まで読み取りますが、その奥に閉塞(Section.Begin)が4つしか設置されてない場合はブレーキ動作します。これを回避するには、

 

・終着駅の手前で、読み取る地上子の数を少なくする

・終着駅の停止位置の奥方にダミーの閉塞(Section.Begin)を複数設置する(おすすめ)

 

の対策方法があります。

後者の方法では次のようにダミーの閉塞を置いてやればOKです。

 

*****; //適当な距離程 終着駅の停止位置よりいくらか奥方で

     Section.Begin(0);

distance+1;

     Section.Begin(0);

distance+1;

     Section.Begin(0);

distance+1; 

     Section.Begin(0);

distance+1; 

     Section.Begin(0);

distance+1; 

     Section.Begin(0);

distance+1; 

     Section.Begin(0);

distance+1; 

     Section.Begin(0);

distance+1; 

     Section.Begin(0);


地上子構文セット ダウンロード

…ここまでいろいろと書きましたが、すぐに使いたいという方向けに、include文を利用した構文セットを用意しました。

詳しい使用方法は付属のReadMe.txtに記述しています。


出典

・ATS-SW/P2プラグイン作者のブログ(Webアーカイブ)

 https://web.archive.org/web/20080915124320/http://ec207.tea-nifty.com/blog/