新浜線Unicorn式C-ATS化パッチを制作した際、NNN式に動作を極力近づけようと色々試しました。
この試行錯誤の末に得られたものを眠らせるのは勿体ないので、ここに残しておこうと思います。
見落としやミス等もあると思いますが、Unicorn式C-ATSでの路線制作になれば幸いです。
なお、このページは「BVEで路線データを作るための知識が一通り揃っていること」を前提に書いています。
※1号型ATSの仕様は記述していません。
信号現示リスト
0-7を使用します。
0...R 停止
1...YY 警戒
2...Y 注意
3...YG 減速
4...YGF 抑速
5...YGF 抑速消灯(アニメーションまでは出来ないので、点滅を再現するには他列車構文の応用が必要)
6...G 進行
7...GG 高速進行 現状Unicorn式で使用できる車両が無い
BVEでは、補助表示に「信号 120km/h」と表示するための構文があります(Section.SetSpeedLimit)。しかしこの構文、1つのシナリオにつき1回しか使用できません。
そのため、路線モードの都営と京成/京急を同じシナリオで使用する場合、減速信号の補助表示で問題が発生します。
新浜線Unicorn化パッチではこの仕様に引っ掛かり、都営C-ATS区間で「信号 55km/h」、2段目の「55」を表示できない上、減速信号照査を実装できませんでした。
※NNN2式はATSモード/路線別で細かい設定が可能なため、この問題は発生しません。
ATSモード
Beacon.PutのType20番で設定します。
Section...0でも1でも動作可能。
SendData...1桁で設定します。
0...1号型ATS
1...C-ATS
例
Beacon.Put(20, 0, 1); //ATSモード設定(C-ATS)
[解説]
基本的に距離程0mで1回記述すればokです。駅ジャンプしても問題なく動作します。
路線、種別
Beacon.PutのType21番で設定します。
Section...0でも1でも動作可能。
SendData...路線番号と種別番号を合わせた3桁で定義します。
・路線番号(1桁)
0...京急
1...都営
2...京成
3...新京成
4...北総、成田スカイアクセス
・種別番号(2桁) 現在公開されているUnicorn式C-ATS車のpanel設定に合わせているため、公式端子台の番号とは異なります。
0...設定無し
1...普通
2...エアポート急行
3...特急
4...Wing(kotetsu様制作の新京成車では設定無しと同じ表示になります)
5...通勤快特(だと思います。)
6...快特
7...エアポート快特
8...回送(kotetsu様制作の新京成車では設定無しと同じ表示になります)
例
Beacon.Put(21, 0, 006); //路線、種別設定(京急 快特)
[解説]
・路線設定を変更するタイミングで記述すればokです。駅ジャンプ対策で各駅に記述する必要ありません。
・変数を使うとSendDataが分かりやすくなります。路線設定は必ず3桁で定義してください。(都営...100、京成...200、新京成...300、北総/成田スカイアクセス...400)
以下は記述例です。
$KQ=000; //路線設定 京急
$RapidLtedExp=6; //種別設定 快特
Beaccon.Put(21,0,$KQ+$RapidLtedExp);
A照査、P照査
Beacon.PutのType10番で設定します。
Section...1固定(中継信号機実装時と理由はおおよそ同じ)
SendData...次の閉そくまでの距離を設定します。
A照査...10000+次閉そくまでの距離[m](4桁)
P照査...次閉そくまでの距離[m](4桁)
例
Beacon.Put(10, 1, 10150); //A照査用
Beacon.Put(10, 1, 0150); //P照査用
[解説]
・同じBeaconで設定される両者、違いは配置する場所です。
A照査...出発信号機用
P照査...閉塞信号機用
・B点で減速パターンを生成すること、京成/京急ではB点(京成はA点にも)標識が立っていることから、専用のmapファイルを1つ用意し、includeで閉塞の度に呼んであげると楽です。
速度照査コード
NNN2式同様、信号コードが設定されています。これ以降の照査で使用するため、中途半端なタイミングですがここでリストを書いておきます。
0...解除
3...15km/h
4...20km/h
5...25km/h
6...30km/h
7...35km/h
8...40km/h
9...45km/h
10...50km/h
11...55km/h
12...60km/h
13...65km/h
14...70km/h
15...75km/h
16...80km/h
17...85km/h
18...90km/h
19...95km/h
20...100km/h
21...105km/h
22...110km/h
23...115km/h
24...120km/h
26...130km/h
これを変数化すると分かりやすくなります。これを書き換える感じで1つmapファイルを用意しておくのがオススメです。
C照査
Beacon.PutのType12番で設定します。
Section...0固定(だと思う)
SendData...速度照査コード(2桁)+パターン落下までの距離[m](4桁)を設定。
例
Beacon.Put(12, 0, 090500); //C照査 500mで45km/hまで落下するパターンを生成
[解説]
・曲線手前に設置するパターン照査です。上記コードの場合、曲線開始地点の500m手前に設定すると良いです。信号コードは1つ上でリストを記載しています。
・パターン速度超過は何もなし(京成)、ATSモニター中段の表示速度+4km/h(京急)です。
※京成の場合は後述のL照査を合わせるとそれっぽくなります。
・速度超過時、京急はEBで停車するまで減速します(HomeキーのATS復帰でEB解除可能)。
・変数を使うと、速度照査コードが分かりやすくなります。
以下は記述例です。
$Limit45=09; //速度照査コード 45km/h
Beaccon.Put(12, 0, ($Limit45*10000)+500);
※Limit45の値を10000倍することで、変数使用無しのコードと同じ結果を得られます。
L照査
Beacon.PutのType13番で設定します。
Section...0固定(だと思う)
SendData...速度照査コード(2桁)を設定。
例
Beacon.Put(13, 0, 09); //L照査(45km/h)
Beacon.Put(13, 0, 0); //L照査(解除)
[解説]
・曲線に対する速度照査です。分岐器もL照査ですが、こちらは「TL照査」と呼ばれます。
※TL照査もL照査で実装できます。
・パターン速度超過は一律+4km/h。
・速度超過時、EBで制限速度まで減速します。
・変数を使うと、速度照査コードが分かりやすくなります。
以下は記述例です。
$Limit45=09; //速度照査コード 45km/h
Beaccon.Put(12 ,0, $Limit45);
F照査
Beacon.PutのType14番で設定します。 訂正があります。
Section...0固定(だと思う)
SendData...速度照査コード(2桁)を設定。
[解説]
・最高速度、信号速度に対する速度照査です。フラット照査と呼ばれ、一定の速度を照査します。
・再検証の結果、使用することが出来ませんでした。情報提供ありがとうございます。
※この仕様が大きく影響したため、新浜線Unicorn化パッチでは多くのF照査をL照査で代用しました。
停車パターン
Beacon.PutのType15番で設定します。
Section...0固定(だと思う)
SendData...過走限界までの距離を設定。
例
Beacon.Put(15, 0, 600); //600m先の地点までに停車できるようなパターンを生成
[解説]
・駅誤通過防護パターンです。詳細な動作は、こちらの「京急における踏切防護システム」をご覧ください。
・C照査、L照査と違い、パターン接近時はベルが3回鳴動します。(C,Lのベル鳴動は2回)
・公式端子台には「京急のみ」という記述がありますが、他の路線で動作するかは不明です。(C照査も京急のみと記述がありましたが、京成C区間でも動いているので…)
停車駅予報ブザー(全モード)
停車駅予報チャイムとモニタ点滅(京成のみ)
Beacon.PutのType1番で設定します。
Section...1固定(だと思う)
SendData...値によって動作が変わります。
1...停車駅予報チャイムとモニタ点滅(京成C、都営C区間)、停車駅予報ブザー鳴動(京成C、都営C以外の区間)
2...停車駅予報ブザーの鳴動(京成C区間のみ)
例
Beacon.Put(1, 1, 1); //京成、都営C区間では停車駅予報チャイムとモニタ点滅。他区間では停車駅予報ブザーの鳴動
Beacon.Put(1, 1, 2); //停車駅予報ブザーの鳴動(京成C区間のみ)。
[解説]
実はUnicorn式C-ATSでもブザーを鳴らせます。公式端子台には「誤通過防止」としか書かれていないため、Unicorn式C-ATSを使用している路線データの解析により割り出しました。
ちなみに、一部車両は京急C区間でブザーが鳴りません。この事象の原因はこちらの「6.既知の不具合」に記載しております。
種別表示の点滅(京急)
Beacon.PutのType24番で設定します。
Section...1固定(だと思う)
SendData...開扉から点滅開始までの時間を設定(単位:ミリ秒)。
例
Beacon.Put(24, 1, 1000); //開扉から1秒で点滅開始
[解説]
公式端子台ではグレー塗りされていますが、ちゃんと使用可能です。発車後に点滅は自動で解除されます。
停車駅の数だけ記述する必要があり、停止位置誤差範囲の手前に置けば確実に動作します。
駅ジャンプ時、稀に点滅しない場合がありますが、この原因は特定できていません。
→停車駅のみに設置している場合、内部処理の都合で点滅しないことが仕様であるという情報をいただきました。ありがとうございます。
ホームドア連動
Beacon.PutのType22番で設定します。
Section...1固定(だと思う)
SendData...1か0(恐らくフラグの設定)。
設定例
Beacon.Put(22, 1, 1); //連動を許可
Beacon.Put(22,1,0); //ホームドア連動を解除
[解説]
公式端子台に載っていない隠し仕様と思われます。
対応する信号が停止信号で、駅に停車中(=扉が開いている)の状態で動作します。22番で停止位置を挟まないと動作しないため、実用例は以下のような構文になります。
995; //停止位置後方限界
Beacon.Put(22,1,1);
1000; //停止位置
Station['KK16'].Put(-1,-0.7,0.7);
1100; //停止位置前方 オーバー対策で距離を長めに設定
Beacon.Put(22,1,0);
参考資料
・Unicorn式公式端子台
・Mirai.S様 城東急行電鉄
・TONITHI5300様 武城電鉄・三勢鉄道
・なないろクロシェット様 京急・都営浅草・京成線
更新履歴
2023年1月30日 公開
2023年8月21日 ホームドア連動を追加
2023年11月25日 一部更新