本文へ移動

Stormworks用鉄道システム(高原のな まとめ)

NS-TPB v2 (Train Parallel Bus v2) 2.0.0-alpha10~ (draft)

関連情報

⚠️現在下書きです

概要

高原のなが、動力分散型の旅客列車用に使用する通信規格である。

R-BUSの拡張機能として開発を開始したため、R-BUSと通信の互換性はあるが、R-BUS規格に準拠しているかどうかは各車両で検証しなければならない(現状のNona実装はN15の制御が規格違反である)。 NS-TPB v1 との互換性をなるべく確保したが、一部挙動が変わった点がある。

(ちょっと複雑すぎるので、実装難易度を下げた互換モードを提供しようかと思っています)

制御信号情報(マイコン間での解釈)

前提条件

たとえば「A-B-C」のような編成を組んだ時、NS-TPBマイコンは各車両間の連結器を介して「A→B」「A←B」「B→C」「B←C」の通信をする。

車両の間に立って、前から後ろに行く信号と後ろから前に行く信号それぞれ別個に解釈する。たとえば「A→B」のとき、Aが送信側・Bが受信側となる。

なお、使用しない機能はパススルーする。

用語・特殊実装

全般的な用語

定義
A側信号の送信側から受信側を見たときに左側
B側信号の送信側から受信側を見たときに右側
制御権条件自車が制御権を持つときのみ出力できる信号に○がついています。持たない時は必ずパススルーします。

後出し優先排他・自己保持制御

自車から送信する際は、送信ラッチを起動。

他車から新しい値を受け取ったら、送信ラッチをオフ。さらに反対側送信メモリをリセットする。

他車から0を受け取っている間はメモリを更新しない。

(現状のNona実装マイコンはメモリを使用していないため、修正予定)

オフパルス制御

オフパルス(複数回の瞬間的な立ち下がり信号)によってOn出力中の車両をOffにする制御。

なお、オフパルスでオフした場合はオフパルスを再生成するかパススルーするように気を付ける(全車両に確実に配信する)。

信号リスト

チャンネル制御権条件内容備考
N1ブレーキ0以上1以下
TPBでは1を受信したとき最大レベルのブレーキが動作することを求める(1以外の値に対する挙動は自由)。
N2進行方向信号の送信側に進む際に1、信号の受信側に進む際に-1を与える。中立位置では0。
N3スロットル0以上1以下
N4速度0以上の実数
R-BUS v1.1で示した指針で設計
N5 - N14使用しない領域処理を加えずパススルーする
N15派生システム番号
マイコン入出力支援
1909または0のとき、チャンネル16以降の機能を有効化する
N16車両数
マイコン入出力支援
信号の送信側にいる車両数がわかる
車両1両ごとに+1する実装で実現
N17ドア特殊扱い(A)0は全扉の開閉。その他の値は各々で定める。
後出し優先排他・自己保持制御
N18ドア特殊扱い(B)上に同じ
N191号車側設定1号車の側から-1が送られてくる。制御権側からの信号優先
N20チャイム・メロディ種別後出し優先排他・自己保持制御
N21故障情報後出し優先排他・自己保持制御
定期的な再送出を推奨
N22表示器1 設定後出し優先排他・自己保持制御
N23表示器2 設定後出し優先排他・自己保持制御
N24表示器3 設定後出し優先排他・自己保持制御
N25表示器4 設定後出し優先排他・自己保持制御
N26追加制御用領域 1制御権車両のみ書き込み
N27追加制御用領域 2制御権車両のみ書き込み
N28追加制御用領域 3制御権車両のみ書き込み
N29追加制御用領域 4制御権車両のみ書き込み
N30(予約)
N31(予約)
N32(予約)
チャンネル制御権条件内容備考
B1車両起動(互換領域)R-BUSとの互換領域
B2制御権先出し優先の排他制御(なお、強制乗っ取りに対して脆弱な実装を推奨)。言い換えると、他者からB2信号を受けない場合に発信することができ、発信中はN1-N15, B1-B15(及びN26-N29)も発信できる。
B3 - B15使用しない領域処理を加えずパススルーする
B16ドア開(A-S)ドア状態ラッチのセットを行う
B17ドア閉(A-R)ドア状態ラッチのリセットを行う
ただし、セットが来ている間は閉じない
B18ドア開状況(A)開いているドアがある場合はOn
和を送信
B19ドア開(B-S)ドア状態ラッチのセットを行う
B20ドア閉(B-R)ドア状態ラッチのリセットを行う
ただし、セットが来ている間は閉じない
B21ドア開状況(B)開いているドアがある場合はOn
和を送信
B22客室照明
B23客室ヒーター
B24パンタグラフ上昇オフパルス制御
B25乗務員ブザー
B26非常通報・故障
B27非常ブレーキ請求Onの間、制御権所有の車両が自動でN1を1に設定するよう実装する。
また、編成分離を検出した際にOnにすることを推奨。
B28チャイム・メロディ類起動
B29チャイム・メロディ類終了
B30エンジン起動オフパルス制御
B31走行用バッテリーオフパルス制御
B32(予約)

設計の概要

NS-TPB / R-BUSの情報の渡し方

NS-TPBでは、信号がループして状態が固定されないように、次の信号の流れを原則としている。

  • 前から来た信号に、自車状態の情報を加えて、後ろに渡す
  • 後ろから来た信号に、自車状態の情報を加えて、前に渡す

前から来た情報を前に返したり、後ろから来た情報を後ろに返さないようにしてループを防ぎ、円滑な制御を実現する。

NS-TPBの特徴

車両数カウンタを利用した編成分離時の自動ブレーキ実装を推奨している。R-BUSの仕様策定段階で外された機能である「貫通ブレーキの要件を満たさない」部分を緩和している。

v1系からの変更点

扉の開閉について

常時リセットを流すことによってOn/Offのみで扉の開閉が可能になるように変更した(v2唯一の破壊的変更)。

「扉が開かないことは仕方がない」という方針による変更である。

R-BUS規格への適合対策

制御権が通っているときは制御権車が0または1909のときだけ起動する(制御権が通っていないときは1909を通してもよいようである)。

標準実装を定義しない

高原のなによる実装はNona実装と呼ぶこととなった。実装例であり、これを必ず使う必要はない。

TPB に関して今後の検討内容

無線通信規格の検討

Nona実装において、OpマイコンでセットしてSvマイコンで書き込まずに取り出すデータを無線化するシステムは考慮に入れても良いと考えている。