(57)【特許請求の範囲】
【請求項１】
列車の各車両にそれぞれ搭載されて制御プログラムにしたがって動作し、車両間伝送路により相互に通信可能に接続されるとともに、車両内伝送路により自車両に搭載された機器群とそれぞれ通信可能に接続され、前記自車両に搭載された機器群に対してそれらの動作に必要な出力データを演算処理する出力情報演算処理部を有し、前記出力情報演算処理部により演算処理された前記出力データを編集した送信データを各機器にそれぞれ送信する列車情報管理装置における演算処理が実装仕様に対応して実際に実装されているか否かを検証する列車情報管理装置の検証装置であって、
前記出力情報演算処理部に相当する出力情報演算処理関数が定義され、この出力情報演算処理関数の出力として前記出力データが与えられるとともに、前記出力データがその出力対象の機器の名称を含む変数名の変数に代入される形で当該変数に関連付けて記載された前記制御プログラムのソースコード、及び前記実装仕様により規定され前記出力データの出力対象となる実装機器の名称が記載された実装機器データを記憶する記憶部と、
前記実装機器データを参照し、前記実装機器データに記載された前記実装機器の名称が前記ソースコード内に記載されているか否かを検索し、当該実装機器の名称を含む変数が見つかった場合には、当該実装機器に対する演算処理が実装されていると判断し、見つからなかった場合には、当該実装機器に対する演算処理が実装されていないと判断する検索処理部と、
を備えることを特徴とする列車情報管理装置の検証装置。
【請求項２】
前記出力データは、前記ソースコード内で、前記機器の名称及び当該機器に関連した演算処理を識別する表示部分を含む変数名の変数に代入される形で当該変数に関連付けられて記載されており、
前記実装機器データでは、前記実装機器の名称及び当該実装機器に関連した実装演算処理を識別する表示が記載されており、
前記検索処理部は、前記実装機器データを参照し、前記実装機器データに記載された前記実装機器の名称及び前記実装演算処理を識別する表示を含む変数名の変数が前記ソースコード内に記載されているか否かを検索し、当該変数が見つかった場合には、当該実装機器に対する当該実装演算処理が実装されていると判断し、見つからなかった場合には、当該実装機器に対する当該実装演算処理が実装されていないと判断することを特徴とする請求項１に記載の列車情報管理装置の検証装置。
【請求項３】
前記送信データは、前記出力データを予め規定された配列順序で行列の形式で配列する伝送フォーマットにしたがって出力対象の機器へ送信され、
前記変数名における前記演算処理を識別する表示部分は、前記伝送フォーマットの前記行列における位置で表されており、
前記実装機器データに記載された前記実装演算処理を識別する表示は、前記伝送フォーマットの前記行列における位置で表されていることを特徴とする請求項２に記載の列車情報管理装置の検証装置。
【請求項４】
前記出力情報演算処理関数の関数名には、前記出力データの出力対象である機器の名称及び演算処理の名称が含まれており、
前記実装機器データには前記出力情報演算処理関数の実装関数名が記載されており、
前記実装関数名は、実装機器の名称及び実装演算処理の名称からなり、
前記検索処理部は、前記実装機器データを参照し、前記実装機器データに記載された前記実装関数名の出力情報演算処理関数が前記ソースコード内に記載されているか否かを検索し、当該関数が見つかった場合には、当該実装関数名に含まれる前記実装機器の名称及び前記実装演算処理の名称から当該実装機器に対する当該実装演算処理が実装されていると判断し、見つからなかった場合には、当該実装機器に対する当該実装演算処理が実装されていないと判断することを特徴とする請求項１〜３のいずれか１項に記載の列車情報管理装置の検証装置。
【請求項５】
列車の各車両にそれぞれ搭載されて制御プログラムにしたがって動作し、車両間伝送路により相互に通信可能に接続されるとともに、車両内伝送路により自車両に搭載された機器群とそれぞれ通信可能に接続され、前記自車両に搭載された機器群に対してそれらの動作に必要な出力データを演算処理する出力情報演算処理部を有し、前記出力情報演算処理部により演算処理された前記出力データを編集した送信データを各機器にそれぞれ送信する列車情報管理装置における演算処理が実装仕様に対応して実際に実装されているか否かを検証する列車情報管理装置の検証装置で使用される列車情報管理装置の検証方法であって、
前記出力情報演算処理部に相当する出力情報演算処理関数が定義され、この出力情報演算処理関数の出力として前記出力データが与えられるとともに、前記出力データがその出力対象の機器の名称を含む変数名の変数に代入される形で当該変数に関連付けて記載された前記制御プログラムのソースコード、及び前記実装仕様により規定され前記出力データの出力対象となる実装機器の名称が記載された実装機器データを記憶する記憶部から、前記検証装置の検索処理部が前記ソースコード及び前記実装機器データを読み出すステップと、
前記検索処理部が、前記実装機器データを参照し、前記実装機器データに記載された前記実装機器の名称が前記ソースコード内に記載されているか否かを検索し、当該実装機器の名称を含む変数が見つかった場合には、当該実装機器に対する演算処理が実装されていると判断し、見つからなかった場合には、当該実装機器に対する演算処理が実装されていないと判断するステップと、
を含むことを特徴とする列車情報管理装置の検証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、列車情報管理装置の検証装置及び検証方法に関するものである。
【背景技術】
【０００２】
列車情報管理装置は、列車の各車両に搭載された機器の状態データを収集し管理するとともに、その動作を個別に制御することができる。
【０００３】
列車情報管理装置は、一般に中央装置及び端末装置で構成される。ここで、中央装置は、例えば列車の先頭車両及び後尾車両に搭載され、端末装置はその他の中間車両にそれぞれ搭載され、中央装置と端末装置は車両間にわたって配設された基幹伝送路により互いに接続されている。そして、中央装置と端末装置は、それぞれ自装置が搭載された車両内の機器の状態データを収集し管理するとともに、基幹伝送路を介した車両間通信により、収集した状態データを互いに送受信して共有している。例えば、特許文献１には、列車の先頭車両にモニタ中央装置が搭載され、他の車両にモニタ端末装置が搭載された構成例が記載されている。
【０００４】
列車情報管理装置は、制御プログラムにしたがって動作し、各種の演算処理を実行して、その処理結果である出力情報をそれを必要とする機器に送信している。すなわち、列車情報管理装置には、機器の動作に必要な出力情報を演算処理する機能が実装されている。そして、どのような機器にどのような出力情報を出力するのかは、実装仕様として定められている。また、実際の運用においては、実装仕様は段階的に更新されるケースが多く、例えば、営業当初から実装する機能、将来実装する機能、及び将来実装する可能性のある機能などのように分類し、実装内容を変更することが一般的である。
【０００５】
このように、列車情報管理装置では、その出力情報についての実装仕様は変更され得るものであることから、どのような機器についてどのような出力情報処理が実装されているのかを確認し、その時点での実装仕様と相違のないことを確認することは運用上重要である。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００３−１３７０９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来の列車情報管理装置では、実装仕様に対応した出力情報処理が実際に実装されているのか否かを短時間で確実に判断することが困難であった。
【０００８】
この発明は、上記に鑑みてなされたもので、実装仕様に対応した出力情報処理が実際に実装されているのか否かを短時間で確実に判断することが可能な列車情報管理装置の検証装置及び検証方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するために、本発明に係る列車情報管理装置の検証装置は、列車の各車両にそれぞれ搭載されて制御プログラムにしたがって動作し、車両間伝送路により相互に通信可能に接続されるとともに、車両内伝送路により自車両に搭載された機器群とそれぞれ通信可能に接続され、前記自車両に搭載された機器群に対してそれらの動作に必要な出力データを演算処理する出力情報演算処理部を有し、前記出力情報演算処理部により演算処理された前記出力データを編集した送信データを各機器にそれぞれ送信する列車情報管理装置における演算処理が実装仕様に対応して実際に実装されているか否かを検証する列車情報管理装置の検証装置であって、前記出力情報演算処理部に相当する出力情報演算処理関数が定義され、この出力情報演算処理関数の出力として前記出力データが与えられるとともに、前記出力データがその出力対象の機器の名称を含む変数名の変数に代入される形で当該変数に関連付けて記載された前記制御プログラムのソースコード、及び前記実装仕様により規定され前記出力データの出力対象となる実装機器の名称が記載された実装機器データを記憶する記憶部と、前記実装機器データを参照し、前記実装機器データに記載された前記実装機器の名称が前記ソースコード内に記載されているか否かを検索し、当該実装機器の名称を含む変数が見つかった場合には、当該実装機器に対する演算処理が実装されていると判断し、見つからなかった場合には、当該実装機器に対する演算処理が実装されていないと判断する検索処理部と、を備えることを特徴とする。
【発明の効果】
【００１０】
この発明によれば、実装仕様に対応した演算処理が実際に列車情報管理装置に実装されているのか否かを短時間で確実に判断することができる、という効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施の形態における列車情報管理装置が搭載された列車の編成の一例を示す図である。
【図２】図２は、中央装置と機器との間のデータ送受信処理を示したシーケンス図である。
【図３】図３は、端末装置と機器との間のデータ送受信処理を示したシーケンス図である。
【図４】図４は、中央装置の内部構成の一例を示す図である。
【図５】図５は、端末装置の内部構成の一例を示す図である。
【図６】図６は、状態データ要求信号に含まれる送信データの伝送フォーマットの一例を示す図である。
【図７】図７は、中央装置の制御処理部の機能構成の一例を示した図である。
【図８】図８は、出力情報演算処理部の演算処理の概要を説明するための図である。
【図９】図９は、実施の形態における制御プログラムのソースコードの記載内容の一例を示す図である。
【図１０】図１０は、機器に送信する状態データ要求信号に含まれる送信データの一例を示す図である。
【図１１】図１１は、実施の形態に係る列車情報管理装置の検証装置の構成の一例を示す図である。
【図１２】図１２は、実装機器データの一例を示す図である。
【図１３】図１３は、「営業当初から実装する（出力する）情報」を伝送フォーマットに即して表した図である。
【発明を実施するための形態】
【００１２】
以下に、本発明に係る列車情報管理装置の検証装置及び検証方法の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１３】
実施の形態．
図１は、本実施の形態における列車情報管理装置が搭載された列車の編成の一例を示す図である。図１では、列車の編成は例えば６台の車両からなり、具体的には、車両ＴＣ１，Ｍ２−１，Ｍ１−１，Ｍ２−２，Ｍ１−２，ＴＣ２で構成される。
【００１４】
編成の両端の車両である車両ＴＣ１，ＴＣ２には、それぞれ、列車情報管理装置の中央装置（以下、単に「中央装置」という。）１が搭載されている。中間車両である車両Ｍ２−１，Ｍ１−１，Ｍ２−２，Ｍ１−２には、それぞれ、列車情報管理装置の端末装置（以下、単に「端末装置」という。）２−１，２−２，２−３，２−４が搭載されている。本実施の形態の列車情報管理装置は、中央装置１及び端末装置２−１〜２−４で構成される。列車の走行時には、車両ＴＣ１，ＴＣ２のうちの一方が先頭車両となり、他方が後尾車両となる。以下では、例えば車両ＴＣ１を先頭車両として説明する。中央装置１及び端末装置２−１〜２−４は、車両間にわたって配設された基幹伝送路（車両間伝送路）４を介して互いに通信可能に接続されている。
【００１５】
車両ＴＣ１は、中央装置１と、中央装置１に支線伝送路（車両内伝送路）５を介してそれぞれ接続された機器Ａ〜Ｃと、を備える。支線伝送路５は、車両内に配設された通信路である。機器Ａ〜Ｃは、例えば、空調装置、ブレーキ装置等である。中央装置１は、機器Ａ〜Ｃをそれぞれ制御するための制御情報等の出力情報（出力データ）を送信するとともに、機器Ａ〜Ｃからそれぞれ機器情報（状態データ）を取得している。
【００１６】
車両Ｍ２−１は、端末装置２−１と、端末装置２−１に支線伝送路５を介してそれぞれ接続された機器Ｄ〜Ｆと、を備える。機器Ｄ〜Ｆは、例えば、空調装置、ブレーキ装置、推進装置、モータ等である。端末装置２−１は、機器Ｄ〜Ｆをそれぞれ制御するための制御情報等の出力情報（出力データ）を送信するとともに、機器Ｄ〜Ｆからそれぞれ機器情報（状態データ）を取得している。
【００１７】
車両Ｍ１−１は、端末装置２−２と、端末装置２−２に支線伝送路５を介してそれぞれ接続された機器Ｄ，Ｅ，Ｇと、を備える。機器Ｄ，Ｅ，Ｇは、例えば、空調装置、モータ等である。端末装置２−２は、機器Ｄ，Ｅ，Ｇをそれぞれ制御するための制御情報等の出力情報（出力データ）を送信するとともに、機器Ｄ，Ｅ，Ｇからそれぞれ機器情報（状態データ）を取得している。
【００１８】
車両ＴＣ２は、車両ＴＣ１と同様の構成である。車両Ｍ２−２は、車両Ｍ２−１と同様の構成であり、端末装置２−３は端末装置２−１と同様の機能を有する。車両Ｍ１−２は、車両Ｍ１−１と同様の構成であり、端末装置２−４は端末装置２−２と同様の機能を有する。
【００１９】
なお、以下では、単に端末装置２と記載した場合には、端末装置２−１〜２−４を総称して表すものとする。
【００２０】
図２は、中央装置１と機器Ａとの間のデータ送受信処理を示したシーケンス図である。図２に示すように、中央装置１は、自車両内の機器Ａに対して、例えば一定周期Ｔ１で状態データ要求信号ＳＤＲを送信する。ここで、状態データ要求信号ＳＤＲは、機器Ａに対する制御情報等の出力情報（出力データ）を含む信号であり、この出力情報にしたがって機器Ａが動作した後のその状態データ（機器情報）を機器Ａに対して返信するよう要求するものである。機器Ａは、中央装置１からの状態データ要求信号ＳＤＲを受信すると、状態データ要求信号ＳＤＲに含まれる出力情報にしたがって動作するとともに、そのときの状態データを状態データ信号ＳＤとして中央装置１に返信する。つまり、状態データ信号ＳＤは、状態データ要求信号ＳＤＲに対する応答信号である。中央装置１は、状態データ要求信号ＳＤＲの送信処理とこれに応答した状態データ信号ＳＤの受信処理を、一定周期Ｔ１で繰り返し行っている。なお、機器Ｂ，Ｃ等についても同様である。周期Ｔ１は、例えば機器の種類ごとに異なる値に設定することができる。
【００２１】
図３は、端末装置２と機器Ｄとの間のデータ送受信処理を示したシーケンス図である。図３についても、図２と同様である。すなわち、端末装置２は、自車両内の機器Ｄに対して、例えば一定周期Ｔ１で状態データ要求信号ＳＤＲを送信する。機器Ｄは、端末装置２からの状態データ要求信号ＳＤＲを受信すると、状態データ要求信号ＳＤＲに含まれる出力情報にしたがって動作するとともに、そのときの状態データを状態データ信号ＳＤとして端末装置２に返信する。端末装置２は、状態データ要求信号ＳＤＲの送信処理と状態データ信号ＳＤの受信処理を、一定周期Ｔ１で繰り返し行っている。なお、機器Ｅ，Ｆ，Ｇ等についても同様である。周期Ｔ１は、例えば機器の種類ごとに異なる値に設定することができる。
【００２２】
中央装置１は、自車両内の機器について収集した状態データを基幹伝送路４を介して端末装置２及び他の中央装置１に送信することができる。また、端末装置２は、自車両内の機器について収集した状態データを基幹伝送路４を介して他の端末装置２及び中央装置１に送信することができる。このようにして、中央装置１と端末装置２は列車内の機器に関する状態データを互いに共有することができる。
【００２３】
図４は、中央装置１の内部構成の一例を示す図である。図５は、端末装置２の内部構成の一例を示す図である。
【００２４】
まず、中央装置１の構成について説明する。図４に示すように、中央装置１は、制御処理部６と、制御処理部６に接続された記憶部９と、制御処理部６に接続され基幹伝送路４を介してデータの送受信を行うことが可能な送受信部８と、制御処理部６に接続され支線伝送路５を介してデータの送受信を行うことが可能な送受信部７と、を備えている。記憶部９には、制御プログラム１０、状態データ１１、及び出力データ１２等が記憶されている。
【００２５】
制御処理部６は、機器に出力する制御情報等の出力情報を個別に演算処理し、これらの出力情報を出力データ１２として記憶部９に一時的に保存し、機器ごとに送信すべき出力データ１２を選択して個別に状態データ要求信号ＳＤＲを生成し、送受信部７を介して状態データ要求信号ＳＤＲを各機器へ送信する。また、制御処理部６は、送受信部７を介して各機器から返信された状態データ信号ＳＤを受信し、状態データ信号ＳＤに含まれる状態データ１１を記憶部９に保存する。また、制御処理部６は、自車両内で収集した状態データ１１を、送受信部８を介して端末装置２及び他の中央装置１へ送信するとともに、端末装置２及び他の中央装置１からも他の車両で収集された状態データを受信し、これらの状態データを記憶部９に保存する。制御処理部６は、ＣＰＵ等のハードウェアからなり、その制御動作を規定する制御プログラム１０にしたがって動作する。すなわち、中央装置１は、インストールされた制御プログラム１０にしたがって動作をする。
【００２６】
次に、端末装置２の構成について説明する。端末装置２の構成も中央装置１と同様である。すなわち、図５に示すように、端末装置２は、制御処理部１５と、制御処理部１５に接続された記憶部１８と、制御処理部１５に接続され基幹伝送路４を介してデータの送受信を行うことが可能な送受信部１７と、制御処理部１５に接続され支線伝送路５を介してデータの送受信を行うことが可能な送受信部１６と、を備えている。記憶部１８には、制御プログラム１９、状態データ２０、及び出力データ２１等が記憶されている。
【００２７】
制御処理部１５は、機器に出力する制御情報等の出力情報を個別に演算処理し、これらの出力情報を出力データ２１として記憶部１８に一時的に保存し、機器ごとに送信すべき出力データ２１を選択して個別に状態データ要求信号ＳＤＲを生成し、送受信部１６を介して状態データ要求信号ＳＤＲを各機器へ送信する。また、制御処理部１５は、送受信部１６を介して各機器から返信された状態データ信号ＳＤを受信し、状態データ信号ＳＤに含まれる状態データ２０を記憶部１８に保存する。また、制御処理部１５は、自車両内で収集した状態データ２０を、送受信部１７を介して他の端末装置２及び中央装置１へ送信するとともに、他の端末装置２及び中央装置１からも他の車両で収集された状態データを受信し、これらの状態データを記憶部１８に保存する。制御処理部１５は、ＣＰＵ等のハードウェアからなり、その制御動作を規定する制御プログラム１９にしたがって動作する。すなわち、端末装置２は、インストールされた制御プログラム１９にしたがって動作をする。なお、端末装置２を制御する制御プログラム１９と中央装置１を制御する制御プログラム１０とは、その機能の違いに応じて内容も異なる。
【００２８】
図６は、状態データ要求信号ＳＤＲに含まれる送信データの伝送フォーマットの一例を示す図である。図６（ａ）では、ある機器へ送信する制御情報等の出力データを予め規定された配列順序で行列形式に配列する伝送フォーマットを示している。図示例では、テキストナンバー（Ｎｏ．）を行としビットナンバー（Ｎｏ．）を列として、出力データは編集されて行列形式で管理されている。具体的には、（Ｔｉ，Ｄｊ）には１ビットの数値が付与される。ここで、ｉは０〜ｍのうちの任意の整数であり、ｊは０〜ｎのうちの任意の整数であって、ｍ、ｎは予め設定されている。例えば、（Ｔ０，Ｄ０）〜（Ｔ０，Ｄ５）には力行ノッチ情報に関する出力データが付与され、（Ｔ１，Ｄ４）〜（Ｔ１，Ｄ８）にはブレーキノッチ情報に関する出力データが付与され、（Ｔ２，Ｄ６）には空調装置の温度制御情報に関する出力データが付与されるというように、どの出力データを行列のどの位置に付与（記載）するのかが予め決められている。この伝送フォーマットは各機器共通である。また、図６（ｂ）では、実際に状態データ要求信号ＳＤＲを送信する際に、送信先の機器のアドレス等を含むヘッダ領域につづいて、テキストＴ１〜Ｔｍの順序で、各テキスト行のビット情報が伝送されることを示している。
【００２９】
図７は、中央装置１の制御処理部６の機能構成の一例を示した図である。図７に示すように、制御処理部６は、機器に出力する制御情報等の出力情報を演算処理して出力する出力情報演算処理部３０と、この出力情報演算処理部３０の出力する出力データ（出力情報）をもとに状態データ要求信号を生成する状態データ要求信号生成部３１とを備えている。なお、端末装置２の制御処理部１５の機能構成も制御処理部６と同様である。
【００３０】
図８は、出力情報演算処理部３０の演算処理の概要を説明するための図である。図８（ａ）に示すように、出力情報演算処理部３０は、状態データ等の入力データに基づき、出力情報の内容に応じた演算処理を行い、その演算結果を出力データ（出力情報）として出力する。例えば出力情報が力行ノッチ情報の場合は、出力情報演算処理部３０は、力行ノッチ情報の演算に必要な入力データに基づき、力行ノッチ情報を生成するための所定の演算処理を行い、その演算処理結果である力行ノッチ情報を出力データとして出力する。また、例えば出力情報がブレーキノッチ情報の場合は、出力情報演算処理部３０は、ブレーキノッチ情報の演算に必要な入力データに基づき、ブレーキノッチ情報を生成するための所定の演算処理を行い、その演算処理結果であるブレーキノッチ情報を出力データとして出力する。
【００３１】
図８（ｂ）は、出力情報演算処理部３０による処理を制御プログラム１０のソースコード内での表現形式を用いて表したものである。すなわち、出力情報演算処理部３０は、制御プログラム１０においてその機能が定義され、具体的には出力情報演算処理関数Ｆｕｎｃ_ｓｋでその機能が定義され実現される。ここで、ｋ＝１，・・・，Ｎ（Ｎは任意の自然数）は異なる出力情報を区別するための指数であり、換言すれば、出力情報演算処理部３０はＮ個の異なる出力情報を演算処理することができる。したがって、ソースコード内で使用される出力情報演算処理関数は、Ｆｕｎｃ_ｓ１，Ｆｕｎｃ_ｓ２，・・・，Ｆｕｎｃ_ｓＮのＮ個である。例えば、Ｆｕｎｃ_ｓ１は力行ノッチ情報を演算処理する関数、Ｆｕｎｃ_ｓ２はブレーキノッチ情報を演算処理する関数等である。また、入力データはｘｉｎ_ｓｋ、出力データはｘｏｕｔ_ｓｋで表されている。
【００３２】
図９は、本実施の形態における制御プログラム１０のソースコードの記載内容の一例を示す図である。図９において、『／＊  演算処理ｓ１  ＊／』はコメント文であり、これ以下の命令文により、出力情報演算処理関数Ｆｕｎｃ_ｓ１による演算処理を実行することを示している。『ｘｏｕｔ_ｓ１＝Ｆｕｎｃ_ｓ１（ｘｉｎ_ｓ１）』は、上記のように、入力データｘｉｎ_ｓ１に基づいて所定の演算処理を行い、その結果をｘｏｕｔ_ｓ１に代入することを示している。『ｋｉｋｉＡ_Ｔ０_Ｄ１＝ｘｏｕｔ_ｓ１』は、Ｆｕｎｃ_ｓ１による演算結果を変数ｋｉｋｉＡ_Ｔ０_Ｄ１に代入することを示し、また、『ｋｉｋｉＢ_Ｔ０_Ｄ１＝ｘｏｕｔ_ｓ１』は、Ｆｕｎｃ_ｓ１による演算結果を変数ｋｉｋｉＢ_Ｔ０_Ｄ１にも代入することを示している。
【００３３】
ここで、変数ｋｉｋｉＡ_Ｔ０_Ｄ１について詳細に説明する。この変数は、変数名に「ｋｉｋｉＡ」の部分と「Ｔ０_Ｄ１」の部分を含んでおり、前者は中央装置１と同じ車両に搭載された「機器Ａ」の名称を表すものとする。すなわち、変数ｋｉｋｉＡ_Ｔ０_Ｄ１の変数名には、出力データの出力対象である「機器Ａ」の名称が含まれている。ここで、機器Ａの名称は機器Ａを他の機器と識別することができるものであればどのような名称でもよい。また、「Ｔ０_Ｄ１」は、図６で説明した伝送フォーマットの行列の（Ｔ０，Ｄ１）の位置を表すものである。そして、変数ｋｉｋｉＡ_Ｔ０_Ｄ１は、機器名称部分「ｋｉｋｉＡ」により、この変数に代入された出力データが「機器Ａ」に送信されるものであることを表すとともに、「Ｔ０_Ｄ１」の部分により、伝送フォーマットの行列の（Ｔ０，Ｄ１）の位置にそのデータ値が記載されて送信されるものであることを表している。なお、機器Ａへの送信データでは、どの出力情報を伝送フォーマットにおける行列のどの位置に対応させるのかという対応関係が予め決められている。この対応関係から、行列の位置がわかると、その位置に付与される出力情報の内容も判別することができる。すなわち、「Ｔ０_Ｄ１」の部分は、機器Ａに送信する出力データがどのようなものであるか（例えば、力行ノッチ情報である等）を表している。つまり、変数ｋｉｋｉＡ_Ｔ０_Ｄ１は、この変数に関連付けられた演算処理結果（ｘ_ｏｕｔ_ｓ１のデータ値）が機器Ａに送信されるものであることを表すとともに、出力情報の内容又はこの出力情報に対応する演算処理の内容も同時に表している。
【００３４】
変数ｋｉｋｉＢ_Ｔ０_Ｄ１についても同様であり、「ｋｉｋｉＢ」は中央装置１と同じ車両に搭載された「機器Ｂ」の名称を表し、この変数に代入された出力データが機器Ｂに送信されるものであることを表している。さらに、当該変数における「Ｔ０_Ｄ１」の部分は出力データが伝送フォーマットの行列の（Ｔ０，Ｄ１）の位置に記載されて送信されるものであることを表すとともに、出力情報の内容又は演算処理の内容も同時に表している。
【００３５】
このように、制御プログラム１０のソースコードでは、出力情報演算処理関数Ｆｕｎｃ_ｓ１の演算処理結果を必要とする機器が機器Ａ，Ｂである場合において、機器Ａ，Ｂには同じ出力データｘｏｕｔ_ｓ１を出力するにもかかわらず、当該出力データを機器Ａの名称を含む変数ｋｉｋｉＡ_Ｔ０_Ｄ１に代入し、また、当該出力データを機器Ｂの名称を含む変数ｋｉｋｉＢ_Ｔ０_Ｄ１に代入するようにしている。機器Ａ、Ｂ以外に出力情報演算処理関数Ｆｕｎｃ_ｓ１の演算処理結果を必要とする機器が存在する場合にも上記と同様の処理を行う。
【００３６】
次に、『／＊  演算処理ｓ２  ＊／』はコメント文であり、これ以下の命令文により、出力情報演算処理関数Ｆｕｎｃ_ｓ２による演算処理を実行することを示している。『ｘｏｕｔ_ｓ２＝Ｆｕｎｃ_ｓ２（ｘｉｎ_ｓ２）』は、入力データｘｉｎ_ｓ２に基づいて所定の演算処理を行い、その結果をｘｏｕｔ_ｓ２に代入することを示している。『ｋｉｋｉＡ_Ｔ１_Ｄ２＝ｘｏｕｔ_ｓ２』は、Ｆｕｎｃ_ｓ２による演算結果を変数ｋｉｋｉＡ_Ｔ１_Ｄ２に代入することを示し、また、『ｋｉｋｉＢ_Ｔ１_Ｄ２＝ｘｏｕｔ_ｓ２』は、Ｆｕｎｃ_ｓ２による演算結果を変数ｋｉｋｉＢ_Ｔ１_Ｄ２に代入することを示し、さらに、『ｋｉｋｉＣ_Ｔ１_Ｄ２＝ｘｏｕｔ_ｓ２』は、Ｆｕｎｃ_ｓ２による演算結果を変数ｋｉｋｉＣ_Ｔ１_Ｄ２に代入することを示している。
【００３７】
ここで、変数ｋｉｋｉＡ_Ｔ１_Ｄ２は、「ｋｉｋｉＡ」を名称の一部に含んでいるので、上記と同様に、この変数に代入された出力データが機器Ａに送信されるものであることを表している。また、当該変数における「Ｔ１_Ｄ２」の部分は出力データが伝送フォーマットの行列の（Ｔ１，Ｄ２）の位置に記載されて送信されるものであることを表すとともに、出力情報の内容又は演算処理の内容も同時に表している。変数ｋｉｋｉＢ_Ｔ１_Ｄ２、変数ｋｉｋｉＣ_Ｔ１_Ｄ２についてもそれぞれ同様であり、前者は機器Ｂに送信される出力データを表し、後者は機器Ｃに送信される出力データを表している。
【００３８】
その他の出力情報演算処理関数Ｆｕｎｃ_ｓ３〜Ｆｕｎｃ_ｓＮについても同様であるので説明は省略する。また、『／＊  各機器へ送信するＳＤＲ生成処理  ＊／』は、このコメント以下の命令文により、機器Ａ〜Ｃのそれぞれに対する状態データ要求信号ＳＤＲの生成処理が記載されていることを示しているが、具体的な記載は省略している。例えば機器Ａを例にしてその処理の概要を述べれば次の通りである。すなわち、状態データ要求信号生成部３１は、機器Ａに送信すべき出力データを編集又は集約し、図６（ａ）の伝送フォーマットにしたがって送信データを作成するが、この処理はソースコード内では、「ｋｉｋｉＡ」の名称を含む変数を参照して行うこととなる。例えば変数ｋｉｋｉＡ_Ｔ０_Ｄ１を参照し、この変数に代入された出力データを伝送フォーマットの行列の（Ｔ０，Ｄ１）の位置に記載する処理を行う。
【００３９】
このような処理を図示例で示したものが、図１０である。図１０は、機器Ａに送信する状態データ要求信号ＳＤＲに含まれる送信データの一例を示す図である。図１０に示すように、この送信データは図６で説明した伝送フォーマットにしたがっている。また、ヘッダ領域には、機器Ａの送信先アドレスが記載されている。図１０では、ソースコード中の変数ｋｉｋｉＡ_Ｔ０_Ｄ１に代入され又は関連付けられた出力データが行列の（Ｔ０，Ｄ１）の位置に記載されることを矢印で示している。なお、行列の（Ｔ０，Ｄ１）の位置に記載されるデータは、変数ｋｉｋｉＡ_Ｔ０_Ｄ１に関連付けられた出力データそのもの（数値）であり、変数ｋｉｋｉＡ_Ｔ０_Ｄ１の変数名に関する情報は送信データには何ら反映されない。つまり、ソースコード内で機器名称を含む変数名を用いることは、送信データの内容そのものには影響しない。同様に、図１０では、ソースコード中の変数ｋｉｋｉＡ_Ｔｍに代入され又は関連付けられた出力データが行列のＴｍ行の全体に記載されることを矢印で示している。
【００４０】
以上のように、本実施の形態では、制御プログラム１０のソースコードにおいて、出力情報演算処理部３０に相当した出力情報演算処理関数Ｆｕｎｃ_ｓｋの出力として与えられる出力データを、その出力データが出力される機器の名称（例えば「ｋｉｋｉＡ」）及びその出力情報の内容又は演算処理の内容を表す表示部分（例えば「Ｔ０_Ｄ１」）を含む変数名の変数に代入する形で関連付けをしている。ここで、機器の名称は機器ごとに互いに異なるものとする。また、出力情報の内容又は演算処理の内容を表す表示部分は、例えば上記のように行列形式で表すことにより、内容が違えば名称も異なることとなる。したがって、出力データと関連付けられた変数名は、出力対象の機器及び演算処理の内容が異なれば必ず異なることとなる。よって、制御プログラム１０のソースコードの記載を参照し、出力データに関連付けられた変数名に含まれる機器名称及び当該機器に関連した演算処理を識別する表示部分（すなわち、前記出力情報の内容又は演算処理の内容を識別する表示部分）を検索等することにより、どのような機器を対象としたどのような出力演算処理が実装されているのかを容易に判別することができる。なお、上記演算処理を識別する表示部分は、上記伝送フォーマットの行列における位置を表す表示に限定されず、演算処理の内容を表す表示又は識別する表示である限りは、任意のものを用いることができる。また、上記説明は制御プログラム１０について行ったが、制御プログラム１９についても同様である。
【００４１】
図１１は、本実施の形態に係る列車情報管理装置の検証装置の構成の一例を示す図である。図１１に示すように、本実施の形態に係る検証装置５０は、入力部５１、検索処理部５２、出力部５３、表示部５４、及び記憶部５５を備えて構成される。
【００４２】
入力部５１は、データの入力に利用される。列車情報管理装置（中央装置１及び端末装置２）の制御プログラム５６は入力部５１を介して入力され、記憶部５５に保存される。ここで制御プログラム５６は、図４の制御プログラム１０又は図５の制御プログラム１９を表している。なお、記憶部５５に保存されている制御プログラム５６はソースコードである。また、記憶部５５には、出力データの出力対象である実装機器の名称及び当該実装機器と関連した演算処理を識別する表示についてのデータを例えばテキスト形式で記載した実装機器データ５７が保存されている。すなわち、実装機器データ５７は、検証時において、どのような機器が実装され及び実装機器に対して出力される出力データを得るためにどのような演算処理が実装されているかについての情報を提供する実装検証用のデータである。
【００４３】
検索処理部５２は、記憶部５５に保存された実装機器データ５７を参照し、実装機器データ５７に記載された実装機器の名称が、記憶部５５に保存された制御プログラム５６に記載されているか否かを調べることにより、当該実装機器に対する演算処理が実装されているか否かを検証する。具体的には、検索処理部５２は、実装機器の名称を含む変数をソースコード内で検索し、当該実装機器の名称を含む変数が見つかった場合には、当該実装機器に対する演算処理が実装されていると判断し、見つからなかった場合には、当該実装機器に対する演算処理が実装されていないと判断することができる。検索処理部５２は、検索結果を出力部５３に出力する。
【００４４】
出力部５３は、検索結果、すなわち、実装機器及び実装演算処理が実際に実装されているか否かの判定結果を出力する。出力部５３は、表示部５４に判定結果を表示させ、実装漏れなどがあればこれを表示する。
【００４５】
検証装置５０は、例えば、上記検証機能を実現するプログラムにしたがって動作するコンピュータにより実現することができる。検索処理部５２は、ＣＰＵ等のハードウェアにより実現される。なお、このような検証装置５０の機能を列車情報管理装置にて実現することも可能である。例えば中央装置１内で、記憶部９に制御プログラム（ソース）５６及び実装機器データ５７を保存し、制御処理部６が実装機器データ５７を参照して制御プログラム（ソース）５６を検索するようにすればよい。
【００４６】
次に、検証装置５０の動作について図１１及び図１２等を参照して説明する。図１２は、実装機器データ５７の一例を示す図である。
【００４７】
まず、検証装置５０には、検証時において最新のソースコードである制御プログラム（ソース）５６が入力部５１を介して入力され、記憶部５５に保存される。また、検証時において実装されるべき実装機器の名称及び当該実装機器に関連した実装演算処理を識別する表示を記載した実装機器データ５７が入力部５１を介して入力され、記憶部５５に保存される。
【００４８】
ここで、実装機器データ５７の具体例は図１２の通りである。図１２では、例えば、「ｋｉｋｉＡ」及びこれに関連して「Ｔ０_Ｄ１」、「Ｔ１_Ｄ２」等が記載されている。これは、機器Ａの名称（「ｋｉｋｉＡ」）と、機器Ａに関連した演算処理を識別する表示であって送信データの伝送フォーマットの行列における位置を表す表示「Ｔ０_Ｄ１」、「Ｔ１_Ｄ２」等である。なお、機器Ｂ（「ｋｉｋｉＢ」）、機器Ｃ（「ｋｉｋｉＣ」）についても同様である。
【００４９】
次に、検索処理部５２は、記憶部５５から実装機器データ５７及び制御プログラム５６を読み出し、実装機器データ５７を参照し、実装機器データ５７内に記載された実装機器の名称を検索ワードとして、制御プログラム５６について当該検索ワードの検索を実行する。具体的には、検索処理部５２は、制御プログラム５６の中に例えば「ｋｉｋｉＡ」を名称の一部に含む変数が存在するか否かを検索し、当該機器が実際に実装されているか否かの検証を行う。「ｋｉｋｉＡ」を名称の一部に含む変数が見つかった場合には、機器Ａに対する演算処理が実際に実装されていると判断できる。「ｋｉｋｉＡ」を名称の一部に含む変数が存在する場合には、さらに当該変数に「Ｔ０_Ｄ１」又は「Ｔ０_Ｄ２」等の名称が含まれているか否かを検索することにより、機器Ａに関連した実装演算処理が実際に実装されているか否かを検証する。このように、検索ワードが検索して見つかれば実装されており、見つからなければ実装されていないと判断する。なお、「ｋｉｋｉＡ_Ｔ０_Ｄ１」等を含む変数が存在するかどうかを順次検索する方法でもよい。検索処理部５２は、このような検索処理を実装機器データ５７に記載されているすべての機器について行う。
【００５０】
検索処理部５２は、上記検索結果を出力部５３に出力する。出力部５３は、検索結果を
表示部５４に表示させる。
【００５１】
以上説明したように、本実施の形態では、列車情報管理装置の制御プログラムのソースコードにおいて、出力情報演算処理部３０と対応した出力情報演算処理関数Ｆｕｎｃ_ｓｋの出力として与えられる出力データを、その出力データが出力される機器の名称（例えば「ｋｉｋｉＡ」）及びその出力情報の内容又は演算処理の内容を表す表示（例えば「Ｔ０_Ｄ１」）を含む変数名の変数に代入する形で関連付けをしている。
【００５２】
これにより、本実施の形態に係る検証装置５０は、制御プログラムのソースコードにおいて機器の名称等を検索することにより、どの機器が実際に実装され及びどの機器に対してどのような演算処理が実装されているのかを容易に判断することができる。すなわち、本実施の形態によれば、実装仕様に対応した出力情報処理が実際に実装されているのか否かをそのすべての処理について短時間で確実に判断することができる。
【００５３】
また、本発明によれば、実装仕様に対応した出力情報処理が実際に実装されているのか否かをそのすべての処理について短時間で確実に判断することを容易とする列車情報管理装置の制御プログラム及びその制御プログラムのインストールされた列車情報管理装置を提供することができる。
【００５４】
なお、本実施の形態では、出力情報演算処理部３０に相当する出力情報演算処理関数Ｆｕｎｃ_ｓｋの出力データに機器名称等を含む変数を関連付けるようにしたが、その他、出力情報演算処理関数の関数名に機器名称を含むようにすることもできる。例えば、図９において、『／＊  演算処理ｓ１  ＊／』以下の３行の命令を、次のように記載することもできる。
ｋｉｋｉＡ_Ｔ０_Ｄ１＝Ｆｕｎｃ_ｓ１_ｋｉｋｉＡ（ｘｉｎ_ｓ１）；
ｋｉｋｉＢ_Ｔ０_Ｄ１＝Ｆｕｎｃ_ｓ１_ｋｉｋｉＢ（ｘｉｎ_ｓ１）；
ここで、『Ｆｕｎｃ_ｓ１_ｋｉｋｉＡ』は、『Ｆｕｎｃ_ｓ１』と同じ演算処理を行う関数であるが、その演算結果を機器Ａに送信することを明示するために、その関数名に「ｋｉｋｉＡ」を含めるようにしている。こうすることで、『Ｆｕｎｃ_ｓ１_ｋｉｋｉＡ』には、機器Ａの名称部分『ｋｉｋｉＡ』と、関数固有の名称部分『Ｆｕｎｃ_ｓ１』とを含むこととなる。また、関数固有の名称部分『Ｆｕｎｃ_ｓ１』を例えば演算処理の名称（例えば、「力行演算処理」等）とすることで、機器の名称に演算処理の名称を対応させることができる。また、実装機器データ５７内に、図１２に記載した内容に加えて、出力情報演算処理関数の実装関数名を記載する。実装関数名は、実装機器の名称及び実装演算処理の名称からなる。そして、検索処理部５２により、実装機器データ５７に記載された実装関数名を検索ワードとして、制御プログラムのソースコードについて当該検索ワードの検索を実行する。実装関数名の関数が見つかった場合は、当該実装関数名に含まれる実装機器の名称及び実装演算処理の名称から当該実装機器に対する当該実装演算処理が実装されていると判断することができる。実装関数名の関数が見つからなった場合は、当該実装機器に対する当該実装演算処理が実装されていないと判断することができる。以上は、『Ｆｕｎｃ_ｓ１_ｋｉｋｉＢ』等についても同様である。
【００５５】
なお、実際の運用においては、実装仕様は段階的に更新され、営業当初に実装した機能は順次更新されるのが一般的である。ここで、図１３は、「営業当初から実装する（出力する）情報」を前述の伝送フォーマットに即して表した図であり、記載は省略しているが例えば行Ｔ０にどのような情報を付与すべきかなどの実装仕様に関する情報が表とともに与えられているものとする。そこで、例えば図１３のような「営業当初から実装する（出力する）情報」を予め記憶部５５に保存しておき、検索処理部５２が制御プログラム（ソース）５６について上記検索を行った後、その検索結果を「営業当初から実装する（出力する）情報」と自動的に比較するようにすることができる。具体的には、検索処理部５２は、検索の結果、「機器Ａ」について例えば行Ｔ０にどのような情報が付与されているのかを制御プログラム（ソース）５６内の変数名から認識することができるので、その情報をもとに、図１３に対応する表（および実装仕様に関する情報）を実際に作成し、これを「営業当初から実装する（出力する）情報」と直接対比することにより、検索結果を具体的に検証することができる。すなわち、不一致が発生したものについては、不要な処理もしくは不足した処理として、営業当初に予定された実装を過不足なく満たしているか否かを容易にかつ具体的に判断することができる。同様にして、段階的に更新された「実装する（出力する）情報」を記憶部５５に保存し、これを検索結果と比較することで、各段階で実装仕様を満たすかどうかを容易に判断することができる。
【産業上の利用可能性】
【００５６】
本発明は、列車情報管理装置の検証装置及び検証方法として有用である。
【符号の説明】
【００５７】
１  中央装置
２，２−１〜２−４  端末装置
４  基幹伝送路
５  支線伝送路
６，１５  制御処理部
７，８，１６，１７  送受信部
９，１８  記憶部
１０，１９  制御プログラム
１１，２０  状態データ
１２，２１  出力データ
３０  出力情報演算処理部
３１  状態データ要求信号生成部
５０  検証装置
５１  入力部
５２  検索処理部
５３  出力部
５４  表示部
５５  記憶部
５６  制御プログラム（ソース）
５７  実装機器データ
【図１】
0005622688.tif 000002
【図２】
0005622688.tif 000003
【図３】
0005622688.tif 000004
【図４】
0005622688.tif 000005
【図５】
0005622688.tif 000006
【図６】
0005622688.tif 000007
【図７】
0005622688.tif 000008
【図８】
0005622688.tif 000009
【図９】
0005622688.tif 000010
【図１０】
0005622688.tif 000011
【図１１】
0005622688.tif 000012
【図１２】
0005622688.tif 000013
【図１３】
0005622688.tif 000014