(57)【要約】  列車に搭載される機器の状態を監視する列車監視装置（３０）であって、機器から機器の状態を示す機器状態情報を取得する取得部（３１）と、機器配置定義、車両構成定義、および検知定義雛形を用いて生成されたイベント検知定義と、イベント検知定義を解釈してイベント発生の有無を調べるイベント検知プログラム（３０１）とを有し、機器の状態を監視する際、イベント検知プログラム（３０１）に含まれる第１のプログラムが、イベント検知定義に含まれる中間言語表現を解釈実行し、イベント検知プログラム（３０１）に含まれる第２のプログラムが、イベント検知定義に含まれるイベントの発生の有無を示す値が格納されたメモリに関する領域情報および格納情報を用いて判定する監視部（３２）と、監視部（３２）において機器の異常を検出した場合、当該機器が異常な状態にあることを示す警報を出力する出力部（３３）と、を備える。
2020121490.tif 000002
【特許請求の範囲】
【請求項１】
列車に搭載される機器の状態を監視する列車監視装置であって、
前記機器から機器の状態を示す機器状態情報を取得する取得部と、
前記列車において前記機器の配置が定義された機器配置定義、前記列車の編成が定義された車両構成定義、および前記機器が異常の状態にあることを示す条件が定義された検知定義雛形を用いて生成されたイベント検知定義と、前記イベント検知定義を解釈してイベント発生の有無を調べるイベント検知プログラムとを有し、前記イベント検知プログラムが前記機器状態情報に基づいて前記機器の状態を監視する際、前記イベント検知プログラムに含まれる第１のプログラムが、前記イベント検知定義に含まれる中間言語表現を解釈実行し、前記イベント検知プログラムに含まれる第２のプログラムが、前記イベント検知定義に含まれるイベントの発生の有無を示す値が格納されたメモリに関する領域情報および格納情報を用いてイベントの発生の有無を判定する監視部と、
前記監視部において前記機器の異常を検出した場合、当該機器が異常な状態にあることを示す警報を出力する出力部と、
を備えることを特徴とする列車監視装置。
【請求項２】
前記機器状態情報が前記機器状態情報毎に規定された領域に格納される記憶部、
を備え、
前記監視部は、前記記憶部に格納された前記機器状態情報を参照し、前記機器の状態を監視する、
ことを特徴とする請求項１に記載の列車監視装置。
【請求項３】
列車に搭載される機器の状態を監視する列車監視装置で実行されるイベント検知プログラムにおいて用いられるイベント検知定義を生成する生成装置であって、
前記列車において前記機器の配置が定義された機器配置定義、前記列車の編成が定義された車両構成定義、および前記機器が異常の状態にあることを示す条件が定義された検知定義雛形を取得する取得部と、
前記機器配置定義、前記車両構成定義、および前記検知定義雛形を用いて、前記イベント検知定義を生成する生成部と、
を備え、
前記イベント検知定義には、前記イベント検知プログラムに含まれる第１のプログラムが処理可能な中間言語表現が含まれ、前記イベント検知プログラムに含まれる第２のプログラムが解釈できるイベントの発生の有無を示す値が格納されたメモリの領域情報および格納情報が含まれる、
ことを特徴とする生成装置。
【請求項４】
前記生成部は、前記検知定義雛形において、単項式となる条件については前記メモリの領域情報および格納情報の形式で前記イベント検知定義を生成し、前記メモリの領域情報および格納情報の形式で生成する条件に該当しない条件については前記中間言語表現の形式で生成する、
ことを特徴とする請求項３に記載の生成装置。
【請求項５】
前記生成部は、前記検知定義雛形において、前記機器に対する前記条件が、前記列車、または前記列車を構成する車両の単位で定義されている場合、前記列車または前記車両の単位で定義されている条件については前記中間言語表現の形式で前記イベント検知定義を生成する、
ことを特徴とする請求項３に記載の生成装置。
【請求項６】
列車に搭載される機器の状態を監視する列車監視装置で実行されるイベント検知プログラムにおいて用いられるイベント検知定義を生成する生成装置のイベント検知定義生成方法であって、
取得部が、前記列車において前記機器の配置が定義された機器配置定義、前記列車の編成が定義された車両構成定義、および前記機器が異常の状態にあることを示す条件が定義された検知定義雛形を取得する取得ステップと、
生成部が、前記機器配置定義、前記車両構成定義、および前記検知定義雛形を用いて、前記イベント検知定義を生成する生成ステップと、
を含み、
前記イベント検知定義には、前記イベント検知プログラムに含まれる第１のプログラムが処理可能な中間言語表現が含まれ、前記イベント検知プログラムに含まれる第２のプログラムが解釈できるイベントの発生の有無を示す値が格納されたメモリの領域情報および格納情報が含まれる、
ことを特徴とするイベント検知定義生成方法。
【請求項７】
前記生成ステップにおいて、前記生成部は、前記検知定義雛形において、単項式となる条件については前記メモリの領域情報および格納情報の形式で前記イベント検知定義を生成し、前記メモリの領域情報および格納情報の形式で生成する条件に該当しない条件については前記中間言語表現の形式で生成する、
ことを特徴とする請求項６に記載のイベント検知定義生成方法。
【請求項８】
前記生成ステップにおいて、前記生成部は、前記検知定義雛形において、前記機器に対する前記条件が、前記列車、または前記列車を構成する車両の単位で定義されている場合、前記列車または前記車両の単位で定義されている条件については前記中間言語表現の形式で前記イベント検知定義を生成する、
ことを特徴とする請求項６に記載のイベント検知定義生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、列車に搭載される機器の状態を監視する列車監視装置、生成装置およびイベント検知定義生成方法に関する。
【背景技術】
【０００２】
従来、列車に搭載される各種機器から機器の状態を示す信号を取得し、取得した信号に基づいて機器または動作が異常かどうかを判定する監視装置がある。監視装置は、異常と判定した場合に警報を発する。このような技術が、特許文献１において開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−２０５３３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
監視装置は、多種多様な機器を監視し、また複数の車両にまたがって存在する機器を監視する。列車の高度化に従い、監視対象の機器の種類が増え、また、扱う機能も増加する。このため、監視の際に実行するプログラムが複雑化し、また規模も増大する。結果として、監視装置のメンテナンス性が低下する、という問題があった。【０００５】
本発明は、上記に鑑みてなされたものであって、列車に搭載される機器の状態を監視する列車監視装置のメンテナンス性を向上させることが可能な列車監視装置を得ることを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するために、本発明は、列車に搭載される機器の状態を監視する列車監視装置であって、列車監視装置は、機器から機器の状態を示す機器状態情報を取得する取得部と、列車において機器の配置が定義された機器配置定義、列車の編成が定義された車両構成定義、および機器が異常の状態にあることを示す条件が定義された検知定義雛形を用いて生成されたイベント検知定義と、イベント検知定義を解釈してイベント発生の有無を調べるイベント検知プログラムとを有し、イベント検知プログラムが機器状態情報に基づいて機器の状態を監視する際、イベント検知プログラムに含まれる第１のプログラムが、イベント検知定義に含まれる中間言語表現を解釈実行し、イベント検知プログラムに含まれる第２のプログラムが、イベント検知定義に含まれるイベントの発生の有無を示す値が格納されたメモリに関する領域情報および格納情報を用いてイベントの発生の有無を判定する監視部と、監視部において機器の異常を検出した場合、当該機器が異常な状態にあることを示す警報を出力する出力部と、を備えることを特徴とする。
【発明の効果】
【０００７】
本発明によれば、列車監視装置のメンテナンス性を向上させることができる、という効果を奏する。
【図面の簡単な説明】
【０００８】
【図１】列車に搭載される列車監視装置、機器、表示装置の構成例を示す図
【図２】生成装置の構成例を示すブロック図
【図３】生成装置の取得部が取得する機器配置定義の例を示す図
【図４】生成装置の取得部が取得する車両構成定義の例を示す図
【図５】機器配置定義および車両構成定義から得られる列車の構成例を示す図
【図６】生成装置の取得部が取得する検知定義雛形の例を示す図
【図７】生成装置の生成部が、機器配置定義、車両構成定義、および検知定義雛形を用いて、イベント検知定義を生成する処理の概要を示す図
【図８】生成装置の生成部が、機器配置定義、車両構成定義、および検知定義雛形から得られるイベント検知定義を全て中間言語表現の形式で生成した場合の例を示す図
【図９】生成装置の生成部が、機器配置定義、車両構成定義、および検知定義雛形を用いて生成するイベント検知定義の中間言語表現の例を示す図
【図１０】生成装置の生成部が、機器配置定義、車両構成定義、および検知定義雛形を用いて生成するイベント検知定義の領域格納情報の例を示す図
【図１１】列車監視装置が備える記憶部において機器状態情報を格納する領域の例を示す図
【図１２】生成装置の生成部がイベント検知定義を生成する処理を示すフローチャート
【図１３】生成装置の生成部が個別のイベント検知定義を生成する処理を示すフローチャート
【図１４】列車監視装置の構成例を示すブロック図
【図１５】生成装置が備える処理回路をプロセッサおよびメモリで構成する場合の例を示す図
【発明を実施するための形態】
【０００９】
以下に、本発明の実施の形態に係る列車監視装置、生成装置およびイベント検知定義生成方法を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１０】
実施の形態．
図１は、本発明の実施の形態に係る列車１０に搭載される列車監視装置３０と監視対象の機器２０ａ，２０ｂ，…，２０ｎ、列車監視装置３０による監視結果を表示する表示装置４０の構成例を示す図である。列車１０は、機器２０ａ，２０ｂ，…，２０ｎと、列車監視装置３０と、表示装置４０と、通信ネットワーク５０と、を備える。
【００１１】
列車１０は、列車監視装置３０が機器２０ａ，２０ｂ，…，２０ｎの状態を監視する対象の列車である。列車１０は、複数の車両から構成されていてもよいし、車両が１つの単行の場合を含めてもよい。
【００１２】
機器２０ａ，２０ｂ，…，２０ｎは、列車１０に搭載された機器であり、例えば、ＤＣＵ（Door  Control  Unit）、ＣＵ（Control  Unit）などである。列車１０には、同じ種類の機器が複数搭載されている。なお、機器２０ａ，２０ｂ，…，２０ｎを区別しない場合、機器２０と称することがある。図１の例では、列車１０がｎ個の機器２０を搭載しているが、一例であり、列車１０が搭載する機器２０の数はｎ個に限定されない。
【００１３】
列車監視装置３０は、列車１０に搭載される機器２０の状態を監視する。具体的には、列車監視装置３０は、各機器２０から機器２０の状態を示す機器状態情報を取得し、機器状態情報に基づいて、機器２０の状態を監視する。機器状態情報は、機器２０の種別によって内容が異なる。また、機器状態情報には、機器２０の状態を示す複数の属性に対する情報すなわち属性値が含まれることがある。例えば、機器２０がＤＣＵの場合、機器状態情報には、ドアが開いているかまたは閉じているかを示す情報が含まれ、属性値は「０」または「１」の１ビットの情報で表すことができる。また、機器２０がモーターを含む機器の場合、機器状態情報には、モーターの回転数に基づく情報が含まれる。また、機器２０が発熱する機器である場合、機器状態情報には、機器２０に内蔵または外付けされた温度センサで検出された温度の情報が含まれていてもよい。属性値は、「０」または「１」の１ビットの情報に限定されず、数値、文字列などを表す情報であってもよい。列車監視装置３０は、機器２０の異常を検知した場合、機器２０の異常を示す警報を出力する。
【００１４】
表示装置４０は、列車監視装置３０で検知された機器２０の異常を示す警報などを表示する。なお、列車１０は、表示装置４０に替えて警報を音で出力する装置を備えてもよいし、表示装置４０とともに、警報を音で出力する装置を備えてもよい。
【００１５】
通信ネットワーク５０は、列車１０に設置されたネットワークであり、例えば、ＬＡＮ（Local  Area  Network）である。
【００１６】
列車監視装置３０は、機器２０が異常な状態にあるか否かを判定するための条件が記載されたデータであるイベント検知定義を取り込んで動作するイベント検知プログラムを実行して、機器２０の状態を監視する。
【００１７】
列車監視装置３０で実行されるイベント検知プログラムがデータとして取り込むイベント検知定義を生成する生成装置の構成および動作について説明する。図２は、本実施の形態に係る生成装置１００の構成例を示すブロック図である。生成装置１００は、取得部１０１と、生成部１０２と、を備える。
【００１８】
取得部１０１は、列車１０において機器２０の配置が定義された機器配置定義２０１、列車１０の編成が定義された車両構成定義２０２、および機器２０が異常の状態または警報を出力する必要がある状態にあることを示す条件が定義された検知定義雛形２０３を取得する。
【００１９】
生成部１０２は、機器配置定義２０１、車両構成定義２０２、および検知定義雛形２０３を用いて、列車監視装置３０が列車１０に搭載される機器２０の状態を監視する際に実行するイベント検知定義４０４を生成する。
【００２０】
列車監視装置３０において、イベント検知プログラム３０１は、イベント検知定義４０４をデータとして取り込み動作する。イベント検知プログラム３０１自体には、列車構成や搭載機器の情報、イベント検知の具体的な処理内容は、直接的には埋め込まれておらず、データとしてプログラム外部から読み込んで処理を行う作りとなっている。列車構成の変更や搭載機器の変更がある場合や検知処理に変更がある場合は、イベント検知定義４０４を入れ替えることで対応する。イベント検知定義４０４は生成装置１００が生成する。
【００２１】
生成装置１００が、機器配置定義２０１、車両構成定義２０２、および検知定義雛形２０３を用いて、イベント検知プログラム３０１を生成する処理について説明する。まず、生成装置１００が取得する機器配置定義２０１、車両構成定義２０２、および検知定義雛形２０３について説明する。
【００２２】
図３は、本実施の形態に係る生成装置１００の取得部１０１が取得する機器配置定義２０１の例を示す図である。機器配置定義２０１は、列車１０を構成する車両の種別毎に搭載される機器、および搭載される機器の個数を示すものである。図３に示す機器配置定義２０１の例では、車両種別Ａの車両にはＤＣＵが２個搭載されていることを示している。
【００２３】
図４は、本実施の形態に係る生成装置１００の取得部１０１が取得する車両構成定義２０２の例を示す図である。車両構成定義２０２は、列車１０の編成、すなわち列車１０を構成する車両の並びを示すものである。図４に示す車両構成定義２０２の例では、列車１０が２両編成であって、１号車の車両が車両種別Ａの車両であり、２号車の車両が車両種別Ａの車両であることを示している。
【００２４】
図３に示す機器配置定義２０１および図４に示す車両構成定義２０２から得られる列車１０の構成について説明する。図５は、本実施の形態に係る機器配置定義２０１および車両構成定義２０２から得られる列車１０の構成例を示す図である。図５に示す列車１０の例では、１号車は、車両種別がＡであり、機器２０としてＤＣＵを２個搭載していることを示し、２号車は、車両種別がＡであり、機器２０としてＤＣＵを２個搭載していることを示している。すなわち、図５では、列車１０が、機器２０としてＤＣＵを４個搭載していることを示している。
【００２５】
図６は、本実施の形態に係る生成装置１００の取得部１０１が取得する検知定義雛形２０３の例を示す図である。検知定義雛形２０３は、機器２０に対する監視において機器２０の異常を検知する条件が定義されたものである。図６において、機器種別は、監視対象の機器２０の種別を示す。イベント番号は、機器２０毎のイベントの種別を示す。各イベントは、機器２０の異常を検知するための監視内容すなわち機器２０の事象を示す。フィルタは、イベント番号で示されるイベントの対象を特定するための項目である。ここでは、フィルタの項目として、号車および機器番号が設定されている。号車は、列車１０において監視対象の機器２０が搭載されている号車を示す。機器番号は、監視対象の機器２０を特定する場合に、監視対象の機器２０を識別するために機器２０に付与された番号を示す。条件式は、どのような状態のときに機器が異常であるのかの条件を示す。定義レベルは、イベント番号で示されるイベントの対象を示す。ここでは、イベントの対象が、機器２０、列車１０を構成する車両、または列車１０を表す編成であることを示している。これらの項目の他に、各イベントが正論理か負論理かを表す論理情報の項目を含めてもよい。
【００２６】
図６において、イベント番号１の条件式は、単項式であり、属性値が判定値に対して真または偽を判定することで検知条件が成立する単純な条件式であることを意味している。図６で示される単純条件式１である。単純な条件式は、条件式を展開した際に単項式となる条件式も含める。図６において号車および機器番号に記載された「＊」は該当するもの全てを意味している。また、図６において、イベント番号２および３の条件式は、単純な条件式以外、すなわち単純な条件式では表せない条件式によって成立する複雑な条件式であることを意味している。図６で示される複雑条件式１〜３である。例えば、ＡＮＤ関数、ＩＦ文およびＦＯＲ文などにより構成されている条件式である。
【００２７】
図７は、本実施の形態に係る生成装置１００の生成部１０２が、機器配置定義２０１、車両構成定義２０２、および検知定義雛形２０３を用いて、イベント検知定義４０４を生成する処理の概要を示す図である。生成部１０２は、イベント検知定義４０４を生成するための生成プログラム４０１を実行し、機器配置定義２０１、車両構成定義２０２、および検知定義雛形２０３から得られる内容を分離して、プログラム記述４０２および領域格納情報４０６を生成する。生成部１０２では、コンパイラ、リンカ等のプログラム言語ツール４０３を用いることで、プログラム記述４０２から中間言語表現４０５が生成される。
【００２８】
ここで、列車監視装置３０が実行するイベント検知プログラム３０１には、２つのプログラムが組み込まれている。第１のプログラム３０２は中間言語解釈実行モジュールであり、第２のプログラム３０３は演算モジュールである。中間言語解釈実行モジュールは、中間言語表現４０５をデータとして読み込み、解釈しながら実行するプログラムである。演算モジュールは、領域格納情報４０６に記載されたメモリアドレスやメモリサイズ等の領域情報と４バイト整数や１バイト整数といった格納情報を読み込み、その領域情報や格納情報を用いてメモリ上の値を取得し、その値によりイベントの発生を検知するプログラムである。
【００２９】
ここで、イベント検知定義４０４の内容を全て中間言語表現４０５の形式で生成した場合の例を図８に示す。図８は、本実施の形態に係る生成装置１００の生成部１０２が、機器配置定義２０１、車両構成定義２０２、および検知定義雛形２０３から得られるイベント検知定義４０４を全て中間言語表現４０５の形式で生成した場合の例を示す図である。図８に示すように、ＤＣＵに関するイベント検知判定はイベントチェック関数を実行することで実現される。イベントチェック関数は、検知定義雛形２０３に対応して、７個のイベント関数に展開されている。図８では、イベント番号１に対して４つ、イベント番号２に対して２つ、イベント番号３に対して１つのイベント関数が生成されている。
【００３０】
図８の例に示す中間言語表現４０５の形式のイベント検知定義４０４に対して、イベント番号１のような単純な条件式の場合は、列車監視装置３０が備える監視部を実現するＣＰＵ（Central  Processing  Unit）のネイティブコードを用いて実装した演算モジュールに、配置情報、判定項目データを入力として与えることで実現される。図９は、本実施の形態に係る生成装置１００の生成部１０２が、機器配置定義２０１、車両構成定義２０２、および検知定義雛形２０３を用いて生成するイベント検知定義４０４の中間言語表現４０５の例を示す図である。また、図１０は、本実施の形態に係る生成装置１００の生成部１０２が、機器配置定義２０１、車両構成定義２０２、および検知定義雛形２０３を用いて生成するイベント検知定義４０４の領域格納情報４０６の例を示す図である。生成部１０２は、図９に示すようにイベント番号２，３の部分を中間言語表現４０５として生成し、図１０に示すようにイベント番号１の部分を領域格納情報４０６として生成する。図１０において、機器種別およびイベント番号は、検知定義雛形２０３から得られるものである。図１０は領域格納情報４０６の一例であり、検知定義雛形２０３のイベント番号１の条件式の内容から得られる情報、例えば正論理か負論理かを表す論理情報や条件式などの項目を含めてもよい。ビット位置およびビット幅は、列車監視装置３０が備える記憶部を実現するメモリでの機器状態情報の格納領域の情報を示している。
【００３１】
図１１は、本実施の形態に係る列車監視装置３０が備える記憶部３４において機器状態情報を格納する領域の例を示す図である。列車監視装置３０は、機器２０であるＤＣＵ１−１，１−２，２−１，２−２から通信ネットワーク５０を介して機器状態情報を取得し、記憶部３４の規定された格納領域に格納する。図１１の例では、列車監視装置３０は、ＤＣＵ１−１からの機器状態情報を記憶部３４の機器状態情報格納領域１−１に格納し、ＤＣＵ１−２からの機器状態情報を記憶部３４の機器状態情報格納領域１−２に格納し、ＤＣＵ２−１からの機器状態情報を記憶部３４の機器状態情報格納領域２−１に格納し、ＤＣＵ２−２からの機器状態情報を記憶部３４の機器状態情報格納領域２−２に格納する。ここで、列車監視装置３０は、同種の機器２０の機器状態情報を、記憶部３４に同じ配置で格納する。記憶部３４は、同種の機器２０の同じ属性値を、各機器に対する領域の先頭から同じ位置に格納することになる。これにより、機器２０の属性値に対する判定項目は同種の機器２０で共有でき、図１０の例のように１つの項目定義のみで表現できることになる。
【００３２】
列車監視装置３０が列車１０に搭載された各機器２０の状態を監視する場合、単純な検知条件が大部分を占める。そのため、生成部１０２では、検知定義雛形２０３で定義されるイベント検知のほとんどは、領域格納情報４０６に変換され、複雑な表現のみが中間言語表現４０５に変換される。
【００３３】
イベント検知定義４０４を生成する生成部１０２は、領域情報および格納形情報だけで表現できるイベント検知については、領域格納情報４０６の形式でイベント検知定義４０４を生成する。生成部１０２は、領域情報および格納形情報だけでは処理できないものについては、プログラム記述４０２を生成後、プログラム記述４０２をプログラム言語ツール４０３を用いて、中間言語表現４０５に変換する。
【００３４】
図７に示すように、生成部１０２は、検知定義雛形２０３のイベント番号２，３の部分に対して、プログラム記述４０２を生成し、プログラム言語ツール４０３を用いて中間言語表現４０５の形式に変換する。また、生成部１０２は、検知定義雛形２０３のイベント番号１の部分に対して、図１０に示すような領域格納情報４０６を生成する。
【００３５】
図１２は、本実施の形態に係る生成装置１００の生成部１０２がイベント検知定義４０４を生成する処理を示すフローチャートである。生成部１０２は、取得部１０１を介して、機器配置定義２０１および車両構成定義２０２を取得する（ステップＳ１０１）。また、生成部１０２は、取得部１０１を介して、検知定義雛形２０３を取得する（ステップＳ１０２）。生成部１０２は、検知定義雛形２０３に記載されているイベントについて、個別のイベント検知定義を生成する処理をしていない、すなわち未処理のイベントが存在するか否かを確認する（ステップＳ１０３）。個別のイベント検知定義とは、生成部１０２が、機器配置定義２０１、車両構成定義２０２、および検知定義雛形２０３を用いて、検知定義雛形２０３で定義されている１つのイベントに対して、生成プログラム４０１の生成処理を行って得られたデータである。個別のイベント検知定義から構成されるイベント検知定義４０４は、前述のように中間言語表現４０５の形式、または領域格納情報４０６の形式で生成される。生成部１０２は、未処理のイベントが存在する場合（ステップＳ１０３：Ｙｅｓ）、未処理のイベントを用いて、個別のイベント検知定義を生成する（ステップＳ１０４）。生成部１０２は、ステップＳ１０４の処理後、ステップＳ１０３の処理に戻る。生成部１０２は、未処理のイベントが存在しない場合（ステップＳ１０３：Ｎｏ）、イベント検知定義４０４を生成する処理を終了する。
【００３６】
図１３は、本実施の形態に係る生成装置１００の生成部１０２が個別のイベント検知定義を生成する処理を示すフローチャートである。図１３に示すフローチャートの処理は、図１２に示すフローチャートのステップＳ１０４の処理の詳細を示すものである。生成部１０２は、未処理のイベントの定義レベルが機器であるか否かを確認する（ステップＳ２０１）。生成部１０２は、未処理のイベントの定義レベルが機器の場合（ステップＳ２０１：Ｙｅｓ）、検知定義雛形２０３より取得された未処理のイベントの条件式が単純条件式であるか否か、すなわち単項式であるか否かを確認する（ステップＳ２０２）。生成部１０２は、判定においては、条件式の展開処理も行い、単項式であるか否かを確認してもよい。
【００３７】
生成部１０２は、未処理のイベントの条件式が単純条件式である場合（ステップＳ２０２：Ｙｅｓ）、当該未処理のイベントについて、第２のプログラム３０３で実行される形式、すなわち領域格納情報４０６の形式でイベント検知定義４０４を生成する（ステップＳ２０３）。生成部１０２は、未処理のイベントの条件式が単純条件式でない場合（ステップＳ２０２：Ｎｏ）、当該未処理のイベントについて、第１のプログラム３０２で実行される形式、すなわち中間言語表現４０５の形式でイベント検知定義４０４を生成する（ステップＳ２０４）。このように、生成部１０２は、検知定義雛形２０３において、単項式で成り立つ条件式については領域格納情報４０６の形式でイベント検知定義４０４を生成し、領域格納情報４０６で生成する条件に該当しない条件については中間言語表現４０５の形式でイベント検知定義４０４を生成する。
【００３８】
生成部１０２は、未処理のイベントの定義レベルが機器ではない、すなわち未処理のイベントの定義レベルが車両または編成の場合（ステップＳ２０１：Ｎｏ）、当該未処理のイベントについて、第１のプログラム３０２で実行される形式、すなわち中間言語表現４０５の形式でイベント検知定義４０４を生成する（ステップＳ２０４）。このように、生成部１０２は、検知定義雛形２０３において、機器２０に対する条件が、列車１０、または列車１０を構成する車両の単位で定義されている場合、列車１０または車両の単位で定義されている条件については中間言語表現４０５の形式でイベント検知定義４０４を生成する。
【００３９】
このように、生成部１０２は、検知定義雛形２０３に記載されているイベントについて、イベント毎に中間言語表現４０５の形式でイベント検知定義４０４を生成するか、領域格納情報４０６の形式でイベント検知定義４０４を生成するかを判定する。生成部１０２で生成されるイベント検知定義４０４には、イベント検知プログラム３０１に含まれる第１のプログラム３０２が処理可能な中間言語表現４０５が含まれる。また、生成部１０２で生成されるイベント検知定義４０４には、イベント検知プログラム３０１に含まれる第２のプログラム３０３が解釈できるイベントの発生の有無を示す値が格納されたメモリの領域情報および格納情報である領域格納情報４０６が含まれる。
【００４０】
つぎに、生成部１０２で生成されたイベント検知定義４０４を用いて列車１０に搭載された機器２０の状態を監視する列車監視装置３０の構成について説明する。図１４は、本実施の形態に係る列車監視装置３０の構成例を示すブロック図である。列車監視装置３０は、取得部３１と、監視部３２と、出力部３３と、記憶部３４と、を備える。
【００４１】
取得部３１は、機器２０から機器２０の状態を示す機器状態情報を取得する。取得部３１は、取得した機器状態情報を記憶部３４の規定された領域に格納する。
【００４２】
監視部３２は、イベント検知プログラム３０１がイベント検知定義４０４のデータを取り込んで実行することで実現される。監視部３２は、機器状態情報に基づいて機器２０の状態を監視する。具体的には、監視部３２は、イベント検知定義４０４に含まれる中間言語表現４０５を第１のプログラム３０２によって実行し、イベント検知定義４０４に含まれる領域格納情報４０６を第２のプログラム３０３によって実行する。すなわち、監視部３２は、イベント検知定義４０４と、イベント検知定義４０４を解釈してイベント発生の有無を調べるイベント検知プログラム３０１とを有している。監視部３２では、イベント検知プログラム３０１が機器状態情報に基づいて機器の状態を監視する際、イベント検知プログラム３０１に含まれる第１のプログラム３０２が、イベント検知定義４０４に含まれる中間言語表現４０５を解釈実行する。また、イベント検知プログラム３０１に含まれる第２のプログラム３０３が、イベント検知定義４０４に含まれるイベントの発生の有無を示す値が格納されたメモリに関する領域情報および格納情報である領域格納情報４０６を用いてイベントの発生の有無を判定する。
【００４３】
出力部３３は、監視部３２において機器２０の異常を検出した場合、当該機器２０が異常な状態にあることを示す警報を表示装置４０に出力する。また、出力部３３は、監視部３２での監視結果および警報を図示しない記録装置に出力してもよい。これにより、列車１０は、列車監視装置３０で検出された異常を示す警報、および列車監視装置３０での監視結果の履歴を保持することができる。
【００４４】
記憶部３４は、取得部３１によって、取得された機器状態情報が機器状態情報毎に規定された領域に格納される。これにより、監視部３２は、記憶部３４の規定された領域に格納された機器状態情報を参照することで、機器２０の状態を監視することができる。
【００４５】
つづいて、生成装置１００のハードウェア構成について説明する。生成装置１００において、取得部１０１は、機器配置定義２０１、車両構成定義２０２、および検知定義雛形２０３を受け付け可能な入力インタフェースである。生成部１０２は、処理回路により実現される。処理回路は、メモリに格納されるプログラムを実行するプロセッサおよびメモリであってもよいし、専用のハードウェアであってもよい。
【００４６】
図１５は、本実施の形態に係る生成装置１００が備える処理回路をプロセッサおよびメモリで構成する場合の例を示す図である。処理回路がプロセッサ９１およびメモリ９２で構成される場合、生成装置１００の処理回路の各機能は、ソフトウェア、ファームウェア、またはソフトウェアとファームウェアとの組み合わせにより実現される。ソフトウェアまたはファームウェアはプログラムとして記述され、メモリ９２に格納される。処理回路では、メモリ９２に記憶されたプログラムをプロセッサ９１が読み出して実行することにより、各機能を実現する。すなわち、処理回路は、生成装置１００の処理が結果的に実行されることになるプログラムを格納するためのメモリ９２を備える。また、これらのプログラムは、生成装置１００の手順および方法をコンピュータに実行させるものであるともいえる。
【００４７】
ここで、プロセッサ９１は、ＣＰＵ、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、またはＤＳＰ（Digital  Signal  Processor）などであってもよい。また、メモリ９２には、例えば、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ、ＥＰＲＯＭ（Erasable  Programmable  ＲＯＭ）、ＥＥＰＲＯＭ（登録商標）（Electrically  ＥＰＲＯＭ）などの、不揮発性または揮発性の半導体メモリ、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、またはＤＶＤ（Digital  Versatile  Disc）などが該当する。
【００４８】
なお、イベント検知プログラム３０１はイベント検知定義４０４を読み込むことでイベント検知処理を行うように実現したが、生成プログラム４０１が生成するプログラム記述４０２および領域格納情報４０６自体をイベント検知プログラム３０１の元となるプログラム記述として生成し、その生成された記述を、イベント検知プログラム３０１が動作するＣＰＵのネイティブなコードに変換するようにしてもよい。この場合、検知仕様を変更するにはデータのみを入れ替えるだけで良いという利点は失われるものの、中間言語表現の解釈実行という工程が省略できることで、検知処理の実行性能は向上する。
【００４９】
つぎに、列車監視装置３０のハードウェア構成について説明する。列車監視装置３０において、取得部３１は、機器状態情報を受け付け可能な入力インタフェースである。出力部３３は、警報および監視結果を出力する出力インタフェースである。記憶部３４は、メモリにより実現される。監視部３２は、処理回路により実現される。処理回路は、生成装置１００の場合と同様、図１５に示すようにプロセッサおよびメモリで構成されてもよい。
【００５０】
以上説明したように、本実施の形態によれば、列車監視装置３０は、生成装置１００が機器配置定義２０１、車両構成定義２０２、および検知定義雛形２０３を用いて生成したイベント検知定義４０４を解釈実行する。車両構成、列車構成、イベント検知仕様を変更する場合は、機器配置定義２０１、車両構成定義２０２、および検知定義雛形２０３を変更することで対応する。特定の列車監視装置３０の作成時には、機器配置定義２０１、車両構成定義２０２、および検知定義雛形２０３を用意することで対応する。イベント検知プログラム３０１の変更は伴わないため、作業量が少なくて済む。
【００５１】
また、列車監視装置３０は、機器状態情報に基づいて機器２０の状態を監視する際、イベント検知プログラム３０１に含まれる第１のプログラム３０２により中間言語表現４０５を解釈実行し、イベント検知プログラム３０１に含まれる第２のプログラム３０３により領域格納情報４０６を解釈実行する。
【００５２】
一般的に中間言語表現４０５は、繰り返しや分岐処理等のプログラム記述と整数や実数、文字列等の様々な種類のデータ型を扱えるようにするため、複雑な構造となる。中間言語表現４０５を解釈実行する処理と、領域情報および格納形情報である領域格納情報４０６だけを用いて格納されている整数値を求める処理を比較した場合、中間言語表現４０５は、複雑な処理を表現できる反面、複雑なプログラムとなる。複雑なプログラムの実行では多くの手間がかかることから、監視装置の実行性能が低下する。本実施の形態では、ほとんどのイベント定義は、領域格納情報４０６の形式で表現できる。複雑な処理定義については、中間言語表現４０５を用いるが、大部分の定義は、領域格納情報４０６を用いた形式で扱えるため、単純な処理で実現でき、実行に要する手間がかからない。列車１０の機器配置や車両構成、イベント検知定義が変更された場合、機器２０の状態を監視する列車監視装置３０は、列車監視装置３０に組み込まれるイベント検知プログラム３０１を変更する必要はなく、機器配置定義２０１、車両構成定義２０２、検知定義雛形２０３を変更することで対応することができる。従って、列車監視装置３０は、列車１０の機器配置や車両構成、イベント検知定義の変更に対し、少ない作業量でのメンテナンスが可能となり、結果として、列車監視装置３０のメンテナンス性を向上させることができる。また、大部分の定義を領域格納情報４０６を用いた形式で扱うことにより、処理速度の低下も抑制することができる。
【００５３】
以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
【符号の説明】
【００５４】
１０  列車、２０ａ〜２０ｎ  機器、３０  列車監視装置、３１，１０１  取得部、３２  監視部、３３  出力部、３４  記憶部、４０  表示装置、５０  通信ネットワーク、１００  生成装置、１０２  生成部、２０１  機器配置定義、２０２  車両構成定義、２０３  検知定義雛形、３０１  イベント検知プログラム、３０２  第１のプログラム、３０３  第２のプログラム、４０１  生成プログラム、４０２  プログラム記述、４０３  プログラム言語ツール、４０４  イベント検知定義、４０５  中間言語表現、４０６  領域格納情報。
【図１】
2020121490.tif 000003
【図２】
2020121490.tif 000004
【図３】
2020121490.tif 000005
【図４】
2020121490.tif 000006
【図５】
2020121490.tif 000007
【図６】
2020121490.tif 000008
【図７】
2020121490.tif 000009
【図８】
2020121490.tif 000010
【図９】
2020121490.tif 000011
【図１０】
2020121490.tif 000012
【図１１】
2020121490.tif 000013
【図１２】
2020121490.tif 000014
【図１３】
2020121490.tif 000015
【図１４】
2020121490.tif 000016
【図１５】
2020121490.tif 000017
【国際調査報告】
2020121490.tif 000018
2020121490.tif 000019