(57)【要約】【課題】  鉄道の保安装置の制御端末として利用するための安全性を確保しつつ、コストを低減することが可能な二重系制御システムを提供する。【解決手段】  同一の処理プログラムを実装したコンピュータを２台接続して二重系制御システム１を構成する。また、Ａ系及びＢ系のコンピュータの制御出力の論理積を制御対象とする機器に出力する。また、Ａ系及びＢ系間で互いにデータを送受信し、各系において自系の保持するデータと他系から伝送されたデータとを照合するとともに、各系において自系のコンピュータの処理が円滑に実行されているか否かを監視する。照合及び監視の結果、自系または他系に異常が検出された場合は処理を停止し、制御対象とする機器への出力を安全側とする。【選択図】図１
2011198205.tif 000002
【特許請求の範囲】
【請求項１】
外部装置からデータを受信し、受信したデータを基に所定の処理プログラムに従って制御対象とする機器の制御情報を生成し、出力するコンピュータをＡ系及びＢ系にそれぞれ備えた二重系制御システムであって、
前記Ａ系のコンピュータと、前記Ｂ系のコンピュータとを互いに通信接続する接続手段と、
前記Ａ系にて生成された制御情報と前記Ｂ系にて生成された制御情報との論理積を前記制御対象とする機器に対して出力する論理積出力手段と、
前記接続手段を介して、前記Ａ系及び前記Ｂ系間で互いにデータを送受信し、各系において自系の保持するデータと他系から伝送されたデータとを照合する照合手段と、
各系において自系のコンピュータの処理が円滑に実行されているか否かを監視する監視手段と、
前記照合手段による照合の結果、前記Ａ系及びＢ系のデータが不一致の場合、または前記監視手段による監視の結果、いずれかの系において処理が円滑に実行されていないと判断された場合に、処理を停止し、前記制御対象とする機器への出力を安全側とする処理停止手段と、
を備えることを特徴とする二重系制御システム。
【請求項２】
前記照合手段は、
自系のコンピュータが前記外部装置から受信したデータと、他系のコンピュータが前記外部装置から受信したデータとを照合する第１照合手段と、
自系のコンピュータにおいて実行される前記処理プログラムによる処理結果と他系のコンピュータにおいて実行される前記処理プログラムによる処理結果とを照合する第２照合手段と、
自系の制御出力と自系に対して制御対象とする機器から入力された表示状態とを照合する第３照合手段と、
自系の制御出力と他系に対して制御対象とする機器から入力された表示状態とを照合する第４照合手段と、
他系の表示状態と自系の表示状態とを照合する第５照合手段と、
のうち、少なくともいずれか一つを含むことを特徴とする請求項１に記載の二重系制御システム。
【請求項３】
前記監視手段は、
コンピュータに備えられるハードウエアタイマを用いて自系コンピュータの作動状態を監視する第１監視手段と、
前記ハードウエアタイマの作動状態をソフトウエアにて監視する第２監視手段と、を備えることを特徴とする請求項１に記載の二重系制御システム。
【請求項４】
前記Ａ系コンピュータと前記Ｂ系コンピュータとで、異なるオペレーティングシステムを塔載することを特徴とする請求項１に記載の二重系制御システム。
【請求項５】
外部または他系から受信したデータの誤りを判定するデータ誤り判定手段と、
前記データ誤り判定手段によりデータの誤りがあると判定された場合に、データの再送を送信元に要求する再送要求手段と、
を更に備えることを特徴とする請求項１に記載の二重系制御システム。
【請求項６】
前記処理プログラムが予め定められた順序どおりに実行されているか否かを判定する実行順序診断手段を更に備え、
前記実行順序診断手段により前記処理プログラムの実行順序が誤っている場合は、前記処理停止手段によって、当該コンピュータにおける処理を停止し、前記制御対象とする機器への出力を安全側とすることを特徴とする請求項１に記載の二重系制御システム。
【請求項７】
前記処理プログラムにて使用するメモリエリアについて、異常があるか否かを判定するメモリ診断を実行するメモリ診断手段を更に備え、
メモリ診断手段によって前記メモリエリアに異常を検知した場合は、前記処理停止手段によって、当該コンピュータにおける処理を停止し、前記制御対象とする機器への出力を安全側とすることを特徴とする請求項１に記載の二重系制御システム。
【請求項８】
各系のコンピュータにて前記外部装置から受信したデータをそれぞれリカバリ情報として記録するリカバリ情報記録手段と、
前記処理停止手段による処理停止後、正常な系は異常が発生した系に対してリカバリを要求するリカバリ要求手段と、
リカバリ要求を受けた前記異常が発生した系は、正常な系に記録されている前記リカバリ情報を取得し、取得したリカバリ情報に基づいて自系のコンピュータをリカバリ処理するリカバリ処理実行手段と、
を備えることを特徴とする請求項１に記載の二重制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、鉄道の保安装置制御端末として利用可能な二重系制御システムに関する。
【背景技術】
【０００２】
従来より、鉄道の保安装置制御端末においてはハードウエア及びソフトウエアを専用に開発し、高い安全性を確保していた。また、例えばプロセッサ及びその周辺を二重系として構成し、互いの系の動作を照合することにより誤動作の発生を防止していた。例えば、特許文献１には、プロセッサ、メモリ、リカバリメモリ、バスライン、デジタル入出力部、及び入出力部を二重系とし、各系に同一のソフトウエアを実装して、照合回路にて両系のデータをバスレベルで比較照合し、照合結果が一致する場合にのみ正常に稼動させ、照合結果が不一致のときは、プロセッサを停止させて誤動作を防ぐことが記載されている。
また、実装されるソフトウエア自体にバグがある場合は上述の照合回路にて不一致が検出されないため、特許文献２のように、プロセッサシステムの稼動状態を所定の判断基準を用いて診断する診断装置をプロセッサシステム外部に設けることが提案されている。
しかし、上述のような専用のハードウエア及びソフトウエアは、その開発及び導入に高額のコストが必要であった。また、装置に搭載される部品の製造が終了するなど保全のための部品管理が容易ではなかった。
【０００３】
一方、近年コンピュータの発達により、高性能なパーソナルコンピュータやオペレーションシステム（ＯＳ）が開発されており、各種装置の動作制御にパーソナルコンピュータを利用する例が知られている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平５−１８９３２５号公報
【特許文献２】特開２００４−８６７９５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、汎用のパーソナルコンピュータは複数の処理の輻輳によるメモリ不足や多数の割り込み処理による応答待ち等の諸要因により、意図しない動作をしたり、動作停止が起こることが懸念され、鉄道の保安装置の制御端末として利用することは長い間見送られていた。しかし汎用製品を導入する場合の問題点を洗い出し、これを解決できれば、安全性を確保しつつ、より低コストに鉄道の保安装置の制御端末を提供できるはずである。
【０００６】
本発明は、鉄道の保安装置の制御端末として利用するための安全性を確保しつつ、コストを低減することが可能な二重系制御システムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
前述した目的を達成するために第１の発明は、外部装置からデータを受信し、受信したデータを基に所定の処理プログラムに従って制御対象とする機器の制御情報を生成し、出力するコンピュータをＡ系及びＢ系にそれぞれ備えた二重系制御システムであって、前記Ａ系のコンピュータと、前記Ｂ系のコンピュータとを互いに通信接続する接続手段と、前記Ａ系にて生成された制御情報と前記Ｂ系にて生成された制御情報との論理積を前記制御対象とする機器に対して出力する論理積出力手段と、前記接続手段を介して、前記Ａ系及び前記Ｂ系間で互いにデータを送受信し、各系において自系の保持するデータと他系から伝送されたデータとを照合する照合手段と、各系において自系のコンピュータの処理が円滑に実行されているか否かを監視する監視手段と、前記照合手段による照合の結果、前記Ａ系及びＢ系のデータが不一致の場合、または前記監視手段による監視の結果、いずれかの系において処理が円滑に実行されていないと判断された場合に、処理を停止し、前記制御対象とする機器への出力を安全側とする処理停止手段と、を備えることを特徴とする二重系制御システムである。
【０００８】
この二重系制御システムによれば、同一の処理プログラムを実装したコンピュータを２台接続して二重系制御システムを構成する。また、Ａ系及びＢ系のコンピュータの制御出力の論理積を制御対象とする機器に出力する。また、接続手段を介して、Ａ系及びＢ系間で互いにデータを送受信し、各系において自系の保持するデータと他系から伝送されたデータとを照合するとともに、各系において自系のコンピュータの処理が円滑に実行されているか否かを監視し、照合の結果、Ａ系及びＢ系のデータが不一致の場合、または監視の結果、いずれかの系において処理が円滑に実行されていないと判断された場合に、処理を停止し、制御対象とする機器への出力を安全側とする。
従って、当該二重形制御システムをセルフチェックすることが可能となり、コンピュータを制御端末として利用する場合の安全性を確保できる。その結果、専用のハードウエア及びソフトウエアによらなくとも、汎用のコンピュータにて鉄道の保安装置の制御端末のような高い安全性が必要とされる装置を構成できるようになり、また汎用製品の導入による低コスト化が可能となる。
【０００９】
また、前記照合手段は、自系のコンピュータが前記外部装置から受信したデータと、他系のコンピュータが前記外部装置から受信したデータとを照合する第１照合手段と、自系のコンピュータにおいて実行される前記処理プログラムによる処理結果と他系のコンピュータにおいて実行される前記処理プログラムによる処理結果とを照合する第２照合手段と、自系の制御出力と自系に対して制御対象とする機器から入力された表示状態とを照合する第３照合手段と、自系の制御出力と他系に対して制御対象とする機器から入力された表示状態とを照合する第４照合手段と、他系の表示状態と自系の表示状態とを照合する第５照合手段と、のうち、少なくともいずれか一つを含むことが望ましい。
第１照合手段によれば外部装置から受信したデータの伝送エラーをチェックでき、第２照合手段によれば自系と他系においてそれぞれ実行される同一の処理プログラムの処理結果について整合性をチェックでき、第３照合手段によれば自系の出力した制御情報と自系に入力された機器の制御状態とを照合することによりインタフェース故障をチェックでき、第４照合手段によれば自系の出力した制御情報と他系に入力された機器の制御状態とを照合することによりインタフェース故障をチェックでき、第５照合手段によれば、自系と他系における表示状態を互いに確認して、インタフェース故障をチェックできる。
【００１０】
また、前記監視手段は、コンピュータに備えられるハードウエアタイマを用いて自系コンピュータの作動状態を監視する第１監視手段と、前記ハードウエアタイマの作動状態をソフトウエアにて監視する第２監視手段と、を備えることが望ましい。
これにより、各コンピュータの動作停止や応答待ち等の異常を確実に検出できる。
【００１１】
また、前記Ａ系コンピュータと前記Ｂ系コンピュータとで、異なるオペレーティングシステムを塔載することが望ましい。
これにより、オペレーティングシステムのバグによる同時誤りを検出でき、更に安全性を向上できる。
【００１２】
また、外部または他系から受信したデータの誤りを判定するデータ誤り判定手段と、前記データ誤り判定手段によりデータの誤りがあると判定された場合に、データの再送を送信元に要求する再送要求手段と、を更に備えることが望ましい。
これにより、データの伝送故障を検知でき、また再送要求を円滑に行なえるようになる。
【００１３】
また、前記処理プログラムが予め定められた順序どおりに実行されているか否かを判定する実行順序診断手段を更に備え、前記実行順序診断手段により前記処理プログラムの実行順序が誤っている場合は、前記処理停止手段によって、当該コンピュータにおける処理を停止し、前記制御対象とする機器への出力を安全側とすることが望ましい。
これにより、各コンピュータにて実行される処理プログラムが予想外の順序で処理を行っていないか確認できる。
【００１４】
また、前記処理プログラムにて使用するメモリエリアについて、異常があるか否かを判定するメモリ診断を実行するメモリ診断手段を更に備え、メモリ診断手段によって前記メモリエリアに異常を検知した場合は、前記処理停止手段によって、当該コンピュータにおける処理を停止し、前記制御対象とする機器への出力を安全側とすることが望ましい。
これにより、定められているメモリエリアを超越するような意図しない動作に繋がる恐れのある事象を検出できる。
【００１５】
また、各系のコンピュータにて前記外部装置から受信したデータをそれぞれリカバリ情報として記録するリカバリ情報記録手段と、前記処理停止手段による処理停止後、正常な系は異常が発生した系に対してリカバリを要求するリカバリ要求手段と、リカバリ要求を受けた前記異常が発生した系は、正常な系に記録されている前記リカバリ情報を取得し、取得したリカバリ情報に基づいて自系のコンピュータをリカバリ処理するリカバリ処理実行手段と、を備えることが望ましい。
これにより、異常検出による処理停止後、安全なリカバリを行なうことで、円滑な再立ち上げを行なって、制御システムの停止による支障を低減することが可能となる。
【発明の効果】
【００１６】
本発明の二重系制御システムによれば、鉄道の保安装置の制御端末としての安全性を確保しつつ、コストを低減することが可能となる。
【図面の簡単な説明】
【００１７】
【図１】本発明に係る二重系制御システム１の装置構成を示すブロック図
【図２】二重系制御システム１に使用されるコンピュータＰＣ＿Ａ，ＰＣ＿Ｂの内部構成を示すブロック図
【図３】二重系制御システム１の各コンピュータＰＣ＿Ａ，ＰＣ＿Ｂにて実行される自己診断処理の流れを説明するフローチャート
【図４】照合処理の詳細な流れを説明するフローチャート
【図５】二重系制御システム１の各コンピュータＰＣ＿Ａ，ＰＣ＿Ｂにて実行される自己診断処理のウォッチドッグタイマによる監視処理の流れを説明するフローチャート
【図６】ウォッチドッグタイマによる監視処理を監視するソフトカウンタによる監視処理の流れを説明するフローチャート
【図７】二重系制御システム１にて検出される異常状態の一覧
【図８】二重系制御システム１を各種鉄道保安装置の制御端末に利用した鉄道保安制御システム１００の全体図
【発明を実施するための形態】
【００１８】
以下、図面に基づいて本発明の好適な実施形態について詳細に説明する。
【００１９】
まず、図１及び図２を参照して、本発明に係る二重系制御システム１の構成について説明する。
図１は二重系制御システム１の装置構成を示すブロック図、図２は二重系制御システム１に使用されるコンピュータＰＣ＿Ａ，ＰＣ＿Ｂの内部構成を示すブロック図である。
本実施の形態では、一例として鉄道の転てつ機４の制御端末として、本発明に係る二重系制御システム１を利用する例を説明する。
【００２０】
図１に示すように、本発明の二重系制御システム１は、２台のコンピュータＰＣ＿Ａ，ＰＣ＿Ｂが通信回線２によって接続されて構成される。各コンピュータＰＣ＿Ａ，ＰＣ＿Ｂには、それぞれ車上装置９との通信を行うための通信部１８Ａ，１８Ｂが設けられる。以下、コンピュータＰＣ＿Ａ及び通信部１８Ａを備えて構成される系をＡ系、コンピュータＰＣ＿Ｂ及び通信部１８Ｂを備えて構成される系をＢ系と呼ぶ。
Ａ系及びＢ系のコンピュータＰＣ＿Ａ，ＰＣ＿Ｂは、ともに汎用のパーソナルコンピュータが使用される。
通信回線２は２台のコンピュータＰＣ＿Ａ，ＰＣ＿Ｂを通信接続する回線であり、例えばＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等により構成される。コンピュータＰＣ＿Ａ，ＰＣ＿Ｂ間の通信は確実に行なわれる必要があるため有線接続されることが望ましいが、無線で接続してもよい。
【００２１】
また、図１に示すように、Ａ系及びＢ系のコンピュータＰＣ＿Ａ，ＰＣ＿Ｂの出力（ＯＵＴ＿Ａ１とＯＵＴ＿Ｂ１、ＯＵＴ＿Ａ２とＯＵＴ＿Ｂ２）は、論理積演算回路７に入力され、論理積が演算され、演算結果が制御対象となる機器（例えば、転てつ機４）に出力される。すなわち、両系で一致する出力（制御情報）のみが制御対象となる機器に出力される。
図１に示す論理積演算回路７では、ＰＣ＿Ａからの出力ＯＵＴ＿Ａ１とＰＣ＿Ｂからの出力ＯＵＴ＿Ｂ１との論理積が演算され、ＰＣ＿Ａからの出力ＯＵＴ＿Ａ２とＰＣ＿Ｂからの出力ＯＵＴ＿Ｂ２との論理積が演算される。また、後述するウォッチドッグタイマ（ＷＤＴ＿Ａ、ＷＤＴ＿Ｂ）からの出力も、上述の出力ＯＵＴ＿Ａ１とＯＵＴ＿Ｂ１、ＯＵＴ＿Ａ２とＯＵＴ＿Ｂ２との論理積が演算される。これにより、Ａ系及びＢ系からの制御情報の出力タイミングの同期が取られるとともに、処理結果の一致が検査される。
【００２２】
図１において、ＯＵＴ＿Ａ１，ＯＵＴ＿Ａ２はＰＣ＿Ａから出力される制御情報で、それぞれ、例えば転てつ機４の定位側、反位側を表す。また、ＯＵＴ＿Ｂ１，ＯＵＴ＿Ｂ２はＰＣ＿Ｂから出力される制御情報で、それぞれ、例えば転てつ機４の定位側、反位側を表す。転てつ機４では常時開通している方向を定位という。
ＯＵＴ＿Ｎは、ＯＵＴ＿Ａ１とＯＵＴ＿Ｂ１との論理積とした結果、転てつ機４を定位側へ制御する信号であり、ＯＮで制御となるものである。ＯＵＴ＿Ｒは、ＯＵＴ＿Ａ２とＯＵＴ＿Ｂ２との論理積とした結果、転てつ機４を反位側へ制御する信号であり、ＯＮで制御となるものである。ただし、ＯＵＴ＿ＮとＯＵＴ＿Ｒとが両方ともＯＮとなる場合は異常とする。
ＮＫＲ，ＲＫＲは、転てつ機４の制御状態を表す表示情報であり、ＮＫＲが定位側、ＲＫＲが反位側である。転てつ機４の表示情報ＮＫＲ，ＲＫＲは、ＰＣ＿Ａ及びＰＣ＿Ｂに入力される。
ＷＤＴ＿ＡはＰＣ＿Ａのウォッチドックタイマの出力であり、正常リレー８Ａに接続される。ＷＤＴ＿ＢはＰＣ＿Ｂのウォッチドックタイマの出力であり、正常リレー８Ｂに接続される。
正常リレー８Ａ，８Ｂはウォッチドックタイマの出力により作動し、異常が発生した場合はウォッチドックタイマの出力が停止して落下する。これにより、接点１０Ａ，１０Ｂを接続または開放のいずれかの状態に作動させる。接点１０Ａ，１０Ｂは異常が発生した場合、開放される。
【００２３】
図２に示すように、Ａ系及びＢ系のコンピュータＰＣ＿Ａ，ＰＣ＿Ｂは、それぞれＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１２、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１３、入力部１４、表示部１５、記憶装置１６、他系との通信部１７、車上装置との通信部１８、周辺機器Ｉ／Ｆ部１９等がバス２０を介して接続されて構成される。
【００２４】
ＣＰＵ１１は、ＲＯＭ１２、記憶装置１６、記録媒体等に格納される処理プログラムをＲＡＭ１３上のワークメモリ領域に呼び出して実行し、バス２０を介して接続された各部を駆動制御する。本実施の形態において、ＣＰＵ１１は鉄道の保安装置（例えば、転てつ機４）の制御に関する処理プログラムの実行中、図３に示す自己診断処理を実行する。自己診断処理については後述する。
【００２５】
ＲＯＭ１２は、コンピュータのブートプログラム、ＢＩＯＳ等の基本的なプログラム、データ等を恒久的に保持する。ＲＡＭ１３は、ロードしたプログラムやデータを一時的に保持するとともに、ＣＰＵ１１が各種処理を行うために使用するワークエリアを備える。
【００２６】
記憶装置１６は、ＨＤＤ（ハードディスクドライブ）等であり、コンピュータのＯＳ（オペレーティングシステム）や各種アプリケーションプログラム、プログラム実行に必要なデータ等が格納されている。アプリケーションプログラムには、制御対象とする機器（例えば、転てつ機４）の制御に関する処理プログラム、図３〜図４に示す自己診断処理プログラム（照合処理を含む）、図５〜図６に示す作動状態監視プログラム等を含む。これらのプログラムに含まれる各プログラムコードは、ＣＰＵ１１により必要に応じて読み出されてＲＡＭ１３に展開され、ＣＰＵ１１にて実行される。記憶装置１６は、更に、フロッピー（登録商標）ディスク、ＣＤ、ＤＶＤ、メモリカード等の各種記録メディアを駆動するドライブ装置や入出力装置を含むものとしてもよく、記録メディア内のデータの入出力を行う。
【００２７】
なお、上述のアプリケーションプログラムのうち、制御対象とする機器（例えば、転てつ機４）の制御に関する処理プログラム、自己診断処理プログラム、作動状態監視プログラムに関しては、各系で同一のプログラムが塔載される。これは、同一の処理を各系で実行し、照合することでそれらの整合性を確認し、処理の異常を検知するためである。
また、オペレーティングシステムについては、各系で同一としてもよいし、異なるものとしてもよい。各系で異なるオペレーティングシステムを塔載する場合には、オペレーティングシステムのバグによる同時誤りを防止することができる。
【００２８】
入力部１４は、例えば、キーボード、マウス等のポインティング・デバイス、テンキー等の入力装置であり、入力されたデータをＣＰＵ１１へ出力する。
表示部１５は、例えば液晶パネル、ＣＲＴモニタ等のディスプレイ装置と、ディスプレイ装置と連携して表示処理を実行するための論理回路で構成され、ＣＰＵ１１の制御により入力された表示情報をディスプレイ装置上に表示させる。
【００２９】
他系との通信部１７は、通信制御装置、通信ポート等を有し、自系と他系と（Ａ系及びＢ系）のデータ送受信を媒介する通信インタフェースである。
車上装置９との通信部１８は、通信制御装置、通信ポート等を有し、車上制御装置９とのデータ送受信を媒介する通信インタフェースである。
周辺機器Ｉ／Ｆ部１９は、周辺機器とのインタフェースである。例えば、制御対象とする機器（例えば、転てつ機４）とのインタフェースを含む。
【００３０】
次に、本発明の二重系制御システム１の自己診断について説明する。
本発明の二重系制御システム１では、当該二重系制御システム１自体の故障の検出を積極的に行い、誤った制御出力を防止するようにしている。
誤った制御出力の要因としては、以下のものが考えられる。
すなわち、誤った制御出力の要因は、大別すると（１）ソフトウエアによる誤りと、（２）ハードウエアによる誤りとなる。ソフトウエアによる誤りには、（１−１）メモリデータの誤り、（１−２）オペレーティングシステムのバグ、（１−３）アプリケーションのバグ、（１−４）アプリケーションのプログラム入力ミス、（１−５）アプリケーションのプログラム設計ミス等が含まれる。また、ハードウエアによる誤りには、（２−１）インタフェースの故障、（２−２）ＣＰＵの故障、（２−３）メモリ故障、（２−４）コンピュータの設計不良、（２−５）配線故障、（２−６）外来ノイズによる誤り等が含まれる。
【００３１】
本発明の二重系制御システム１では、上述の要因を鑑みて異常な制御出力を防ぐとともに、処理プログラム実行中に自己診断を行うことにより故障の検出を行う。
【００３２】
具体的には、まず、二重系制御システム１は、コンピュータを２台備えた二重系構成としている。また、Ａ系とＢ系の各系から出力される制御情報（制御出力）の論理積演算回路７を備え、両系で不一致となる制御出力を破棄するようにしている。このような構成により、同一の被制御情報に対する処理結果を二重に生成して、Ａ系とＢ系とで異なる処理結果を得た場合には、制御出力を行わず、安全側となる。
【００３３】
また、Ａ系とＢ系とで、保持するデータを互いに送受信し、ソフトウエアによる照合を行う。これにより、いずれかの系に異常があることを互いに検知できる。照合処理では、例えば、（１）自系のコンピュータが車上装置９から受信したデータ（被制御情報）と、他系のコンピュータが車上装置９から受信したデータ（被制御情報）との不一致（被制御情報不一致）、（２）自系及び他系のコンピュータにおける処理プログラムによる処理結果の不一致（制御出力の不一致）、（３）自系の制御出力と自系に対して制御対象とする機器から入力された表示状態との不一致（系内ループバック不一致）、（４）自系の制御出力と他系に対して制御対象とする機器から入力された表示状態との不一致（系間ループバック不一致）、（５）他系の表示状態と自系の表示状態との不一致（系間表示不一致）を検出する。
【００３４】
また、各系のコンピュータＰＣ＿Ａ，ＰＣ＿Ｂのハードウエアタイマカウンタをウォッチドッグタイマとして使用し、コンピュータの作動状態を監視するとともに、ウォッチドッグタイマの作動状態を更にソフトウエアカウンタにて監視する。これにより、いずれかの系のコンピュータの動作が異常に遅れたり、停止していることを互いに検知できる。
【００３５】
また、上述の照合または監視の結果、いずれか一方の系のコンピュータにおける異常を他方の系のコンピュータにて検出した場合には、正常な系が異常となった系に対して再立ち上げの処理を指示する。各系では、正常な状態では常に被制御情報をリカバリ情報として記録しており、一方に異常が発生して再立ち上げを指示した場合には、互いの系にて保持しているリカバリ情報を照合することにより、異常が発生した時点を検出する。また、正常な系は異常な系に対して異常が発生した時点またはその周辺の時点でのリカバリ情報を送信する。異常が発生した系は、正常な系からリカバリ情報を受信して、リカバリ処理を開始する。リカバリ処理を開始する際、異常が発生した時点までの履歴を正常系と照合し、正常系において新たな被制御情報の受信が行われていないことを照査した上で安全な処理復旧を行う。
【００３６】
また、各系のコンピュータＰＣ＿Ａ，ＰＣ＿Ｂは、搭載されている処理プログラムをシングルスレッドと呼ばれる逐次的な処理で実行するものとする。そして、当該処理プログラムが予め定められた順序どおりに実行されているか否かを判定する実行順序診断を、例えば処理プログラムの各モジュールの冒頭で行うことが望ましい。いずれかの系で実行順序が誤っていると診断された場合は、異常と見做し、処理を停止する。
また、更に、処理プログラムにて使用するＲＡＭ１３のメモリエリア（プログラム領域）を、例えば検査符号等を用いて検査することが望ましい。いずれかの系でメモリが故障していると診断された場合は異常と見做し、処理を停止する。
【００３７】
二重系制御システム１では、上述の照合、監視、実行順序診断、及びメモリ診断のうちいずれか一つを実行するようにしてもよいし、これらの一部または全部を適宜組み合わせて実行するようにしてもよい。
【００３８】
次に図３〜図７を参照して、本発明の二重系制御システム１における処理の流れを説明する。
二重系制御システム１の各系のコンピュータＰＣ＿Ａ，ＰＣ＿Ｂは、それぞれ図３の処理プログラム実行時の自己診断処理、図４の照合処理、図５及び図６の監視処理を行なう。
まず、図３を参照して、全体の流れを説明する。
なお、図３の処理を実行するに際し、二重系制御システム１には、図１に示すように、車上装置９から定期的または非定期的に被制御情報が送信されているものとする。各時点で送信される各被制御情報には、それぞれ識別情報が付与されている。識別情報としては、例えば車上装置９が発行するシリアル番号等が採用される。二重系制御システム１の各系のコンピュータＰＣ＿Ａ，ＰＣ＿Ｂに送信され、各コンピュータＰＣ＿Ａ，ＰＣ＿ＢのＣＰＵ１１によってそれぞれ同一の処理が施される。すなわち、二重系制御システム１では、各系のコンピュータＰＣ＿Ａ，ＰＣ＿Ｂにて受信した同一の被制御情報に基づいて、同一の処理プログラムがそれぞれ実行され、例えば転てつ機４等の制御対象とする機器についての制御情報（ＯＵＴ＿Ａ１，ＯＵＴ＿Ａ２、ＯＵＴ＿Ｂ１，ＯＵＴ＿Ｂ２）が生成される。各系からの制御出力（制御情報）は、論理積演算回路７に入力され、論理積の演算結果が転てつ機４に対して出力される。
【００３９】
また、前提として、コンピュータＰＣ＿Ａ，ＰＣ＿ＢのＣＰＵ１１は、電源を投入した時点からアプリケーション（処理プログラム）の動作開始までの間に、オペレーティングシステムの立ち上げ等を行うため処理時間を有する。この間については、以下説明する自己診断処理を実行することができない。そのため、まず、コンピュータは電源投入によりオペレーティングシステムの初期化処理実行後、コンピュータＰＣ＿Ａ，ＰＣ＿Ｂを処理装置として初期化するため初期化アプリケーションを起動する。この時点では、まだ正常リレー８Ａ，８Ｂ及び制御出力は制御なし側とする。次に、コンピュータの作動状況を検出できるようにするために、ＣＰＵ１１は周期の設定を行う。例えば、本実施の形態の処理プログラムはシングルスレッドの処理を行うこととしているので、その処理プログラムの動作周期を基本周期とする。基本周期は例えば１００ｍｓ程度であるが、これに限定されるものではなくどのような値としてもよい。また、ＣＰＵ１１は、ウォッチドッグタイマをセットし、作動を開始する。以降は、何らかの異常により上述の周期または所定周期数内に処理プログラムから正常な出力を得られない場合は、正常リレー８Ａ，８Ｂを落下させ、安全側の処理を行うものとする。
【００４０】
定周期動作が開始されると、ＰＣ＿Ａ，ＰＣ＿Ｂは、それぞれ他系に対して自系の保持するデータを送信する。また、他系から送信されるデータを受信し、保持する。他系と自系とのデータの送受信は通信回線２を介して行なわれる。
【００４１】
図３の処理において、まず、コンピュータＰＣ＿Ａ，ＰＣ＿Ｂはそれぞれ、車上装置９から被制御情報を受信する（ステップＳ１０１）。
コンピュータＰＣ＿Ａ，ＰＣ＿Ｂは、それぞれ車上装置９から被制御情報（車上装置９からの制御要求）を受信し、ＲＡＭ１３に保持する。この時点では、自系が受信した「つもり」の状態にすぎない。
コンピュータＰＣ＿Ａ，ＰＣ＿Ｂは、受信した被制御情報に対して伝送故障のチェックを行った後、ＲＡＭ１３のメモリエリアに登録する。伝送故障のチェックは、例えば、データ長チェック、フレームチェックシーケンス、ヘッダのシグネチャチェック、前回受信データの識別番号が異なるかのチェック（初回受信情報は除く）等を含む。これらのチェックの結果、データに損失や故障がなければ、その情報を採用し、データの損失や故障があれば破棄する。なお、最後にデータを採用してから伝送断許容時間（データ伝送が滞る時間として許容できる時間範囲）連続して新たな採用がない場合は、伝送故障と判定する。
【００４２】
コンピュータＰＣ＿Ａ，ＰＣ＿Ｂは、他系からデータを受信する（ステップＳ１０２）。他系から受信するデータには、他系被制御情報、他系処理結果情報、他系診断結果情報等が含まれる。
コンピュータＰＣ＿Ａ，ＰＣ＿Ｂは、受信したデータに対して伝送故障のチェックを行った後、ＲＡＭ１３のメモリエリアに登録する。伝送故障のチェックは、ステップＳ１０１と同様に、例えば、データ長チェック、フレームチェックシーケンス、ヘッダのシグネチャチェック、前回受信データの識別番号が異なるかのチェック（初回受信情報は除く）等を含む。これらのチェックの結果、データに損失や故障がなければ、その情報を採用し、データの損失や故障があれば破棄する。なお、最後にデータを採用してから伝送断許容時間（例えば、３周期程度）連続して新たな採用がない場合は伝送故障と判定する。
【００４３】
コンピュータＰＣ＿Ａ，ＰＣ＿Ｂは、自系データと他系データとを照合する（ステップＳ１０３）。ステップＳ１０３では、ＲＡＭ１３に保持されている自系で採用した被制御情報（自系被制御情報）と他系から伝送された被制御情報（他系被制御情報）とを照合する。
【００４４】
照合処理の詳細な流れを図４に示す。
図４に示すように、照合処理において、各コンピュータＰＣ＿Ａ，ＰＣ＿ＢのＣＰＵ１１は、ＲＡＭ１３から最新の自系被制御情報と他系被制御情報とを読み出し（ステップＳ２０１）、比較照合する（ステップＳ２０２）。自系被制御情報と他系被制御情報とが一致する場合は（ステップＳ２０３；Ｙｅｓ）、更に、他系における当該被制御情報についての診断結果情報を取得して、他系の診断でも「一致」と判定されていれば（ステップＳ２０４；Ｙｅｓ）、次のステップへ進む。他系の診断結果が「不一致」であれば（ステップＳ２０４；Ｎｏ）、ステップＳ２０１へ戻り、再度自系被制御情報と他系被制御情報とを照合する。
自系被制御情報と他系被制御情報とが一致しない場合は（ステップＳ２０３；Ｎｏ）、他系へ照合対象となっている情報の再送要求を送信する（ステップＳ２０６；Ｎｏ→ステップＳ２０７）。そして、ステップＳ２０１〜ステップＳ２０３を繰り返し、最新の他系被制御情報と被制御情報とを比較する。既定回数（Ｎ回；Ｎは正整数）繰り返しても一致しない場合は（ステップＳ２０６；Ｙｅｓ）、自系のコンピュータを再立ち上げし、再立ち上げ後は、リカバリ処理を実行する（ステップＳ２０８）。
【００４５】
ステップＳ１０３の照合処理によって自系被制御情報と他系被制御情報との整合性が確認できると、各ＰＣ＿Ａ，ＰＣ＿Ｂは、ここではじめて被制御情報を確定し、ＲＡＭ１３の被制御情報を更新する（ステップＳ１０４）。
【００４６】
被制御情報が確定すると、各ＰＣ＿Ａ，ＰＣ＿Ｂは被制御情報を基に処理プログラムを実行して制御情報を生成し、生成した制御情報を処理結果としてＲＡＭ１３に保持する。この処理プログラムは、被制御情報にて要求される処理であり、例えば、転てつ機４の制御出力を生成する処理とする。すなわち、ステップＳ１０４で確定した被制御情報に基づいて転てつ機４の制御情報が生成される。
この時点では自系が転てつ機４を制御「したい」状態にすぎない。
【００４７】
また、各ＰＣ＿Ａ，ＰＣ＿ＢはＲＡＭ１３に保持されている自系の処理結果（自系制御情報）と他系から伝送された処理結果（他系制御情報）とを照合する（ステップＳ１０６）。ステップＳ１０６の照合処理も図４に示す照合処理と同様である。
【００４８】
すなわち、ステップＳ１０６の照合処理において、各コンピュータＰＣ＿Ａ，ＰＣ＿ＢのＣＰＵ１１は、ＲＡＭ１３から最新の自系処理結果と他系処理結果とを読み出し（ステップＳ２０１）、比較照合する（ステップＳ２０２）。自系処理結果と他系処理結果とが一致する場合は（ステップＳ２０３；Ｙｅｓ）、更に、他系における当該処理結果についての診断結果情報を取得して、他系の診断でも「一致」と判定されていれば（ステップＳ２０４；Ｙｅｓ）、次のステップへ進む。他系の診断結果が「不一致」であれば（ステップＳ２０４；Ｎｏ）、ステップＳ２０１へ戻り、再度自系処理結果と他系処理結果とを照合する。
自系処理結果と他系処理結果とが一致しない場合は（ステップＳ２０３；Ｎｏ）、他系へ照合対象となっている情報の再送要求を送信する（ステップＳ２０６；Ｎｏ→ステップＳ２０７）。そして、ステップＳ２０１〜ステップＳ２０３を繰り返し、最新の他系処理結果と自系処理結果とを比較する。既定回数（Ｎ回；Ｎは正整数）繰り返しても一致しない場合は（ステップＳ２０６；Ｙｅｓ）、自系のコンピュータを再立ち上げし、再立ち上げ後は、リカバリ処理を実行する（ステップＳ２０８）。繰り返しの既定回数は例えば３回とするが、これに限定されるものではない。
【００４９】
ステップＳ１０６の照合処理によって自系処理結果と他系被処理結果との整合性が確認できると、各ＰＣ＿Ａ，ＰＣ＿Ｂは、ここではじめて処理結果（転てつ機４の制御出力）を確定し、ＲＡＭ１３の処理結果情報を更新する（ステップＳ１０７）。
【００５０】
各ＰＣ＿Ａ，ＰＣ＿Ｂは、転てつ機４から制御状態を示す表示情報（以下、表示状態という）ＮＫＲ、ＲＫＲの入力を受け付けている。また、他系に転てつ機４から入力された表示状態ＮＫＲ、ＲＫＲを取得している。各ＰＣ＿Ａ，ＰＣ＿ＢのＣＰＵ１１は、自系の制御出力と転てつ機４から入力された表示状態との照合（系内ループバック不一致）や、自系の制御出力と他系に対して転てつ機４から入力された表示状態との照合（系間ループバック不一致）を行う（ステップＳ１０８）。ステップＳ１０８の照合処理も図４に示す照合処理と同様である。
【００５１】
各ＰＣ＿Ａ，ＰＣ＿Ｂは、上述の照合処理に加え、例えば、実行順序診断、メモリ診断、系間表示診断等のその他の診断処理を適宜実行する。
なお、実行順序診断は、各モジュールの冒頭で行なわれるものとし、ステップＳ１０８の後に行なわれるものではないが「その他の診断」として追記する。
【００５２】
実行順序診断は、想定外の順序で処理プリグラムの各モジュールが実行されていないかをチェックするためのものである。実行順序診断では、各モジュールをコールする親処理からモジュール毎にユニークな「呼出識別値」を引数として渡す。コールされたモジュールは渡された呼出識別値が自モジュールのものであるか否かをチェックする。呼出識別値が不一致であれば、故障と判断する。
【００５３】
メモリ診断は、自プログラムのプロセスメモリ（．ｅｘｅ及び読み込まれたｄｌｌ）を診断する。自ｅｘｅを含むロードされた全てのｄｌｌのコードセグメント領域の例えばＳＨＡ２５６メッセージダイジェストを演算し、他系診断情報内の同一情報と比較を行なう。
【００５４】
系間表示診断では、自系と他系のコンピュータＰＣ＿Ａ，ＰＣ＿Ｂにおける表示情報の照合を行う。表示情報には、転てつ機４から入力された制御状態が含まれる。
【００５５】
「その他の診断」の結果、故障を検知した場合は、そのコンピュータの処理を停止して無力化し、制御出力を安全側とする。
【００５６】
次に、ハードウエア及びソフトウエアの作動の監視について説明する。
図３、図４に示す自己診断処理を実行中、各コンピュータＰＣ＿Ａ，ＰＣ＿Ｂは、ウォッチドッグタイマによる監視（図５）、ソフトカウンタによる監視（図６）を行い、正常に各コンピュータＰＣ＿Ａ，ＰＣ＿Ｂが作動しているかを監視している。
【００５７】
図５に示すように、コンピュータＰＣ＿Ａ及びＰＣ＿Ｂはハードウエアタイマカウンタをウォッチドッグタイマとして利用する。所定周期毎（例えば、上述の基本周期；１００ｍｓ等）にカウントアップしている（ステップＳ３０１）。そして所定周期内に各処理から正常な出力が得られた場合は（ステップＳ３０２；Ｙｅｓ）、カウンタをリセットし（ステップＳ３０３）、出力されたデータをＲＡＭ１３の所定のメモリエリアへ登録する（ステップＳ３０４）。例えば、ステップＳ１０１の伝送チェックやステップＳ１０６の照合処理では、３周期（Ｎ周期）をカウンタの上限値としている。所定周期内に正常出力が得られない場合は（ステップＳ３０２；Ｎｏ）、異常とみなして、正常リレー８Ａ，８Ｂを落下させ（ステップＳ３０５）、処理結果の出力を遮断して安全側の処理を行う。例えば、コンピュータＰＣ＿ＡまたはＰＣ＿Ｂが応答待ち及び強制終了の動作を行なった場合は、このウォッチドッグタイマによる監視によりリレー８Ａ，８Ｂが落下され、安全側の処理が行われる。
【００５８】
また、図６に示すように、ソフトウエアカウンタを用いてウォッチドッグタイマの出力を監視し、ウォッチドッグタイマの動作不良を検知することが望ましい。
コンピュータＰＣ＿Ａ及びＰＣ＿Ｂは、ソフトウエアカウンタを所定期間毎にカウントアップしている（ステップＳ４０１）。ＣＰＵ１１は、ソフトウエアのカウンタが次にカウントアップするまでの期間にウォッチドッグタイマがカウントアップしたか否かを判定し（ステップＳ４０２）、ウォッチドッグタイマのカウントアップが検出されない場合は（ステップＳ４０２；Ｎｏ）、ウォッチドッグタイマの異常を検出する。異常の場合は、リレー８Ａ，８Ｂを落下させ、処理結果の出力を遮断して安全側の処理を行う。
【００５９】
以上説明した自己診断処理（照合処理、その他診断を含む）、ウォッチドッグタイマ等による監視処理の結果、本発明の二重系制御システム１では、図７に示すような異常を検出することが可能となる。
すなわち、ウォッチドッグタイマ、及び図３のステップＳ１０１とステップＳ１０２とにおけるデータチェックにより「他系情報伝送故障」、「被制御情報伝送故障」が検出される。
また、ステップＳ１０３の照合処理により、「被制御情報不一致」が検出される。また、ステップＳ１０６の照合処理により、「処理結果不一致」が検出される。
また、ウォッチドッグタイマ、及び図３のステップＳ１０８により「系間ループバック不一致」、「系内ループバック不一致」が検出される。
また、ステップＳ１０９のその他診断内の実行順序診断により、「実行順序異常」が検出される。また、ステップＳ１０９のその他診断内のメモリ診断により、「メモリ異常」が検出される。
また、図３のステップＳ１０９のその他診断内の系間表示診断により「系間表示不一致」が検出される。
転てつ機４等へ処理結果を出力したが、制御処理完了の表示情報を得られない場合には、「制御不能」とされる。
【００６０】
以上説明したように、本実施の形態の二重系制御システム１は、車上装置９から被制御情報を受信し、受信した被制御情報を基に所定の処理プログラムに従って制御対象とする機器（例えば、転てつ機４）の制御情報を生成し、出力するコンピュータをＡ系及びＢ系にそれぞれ備え、Ａ系コンピュータＰＣ＿Ａと、Ｂ系のコンピュータＰＣ＿Ｂとを互いにＬＡＮ等の通信回線２により通信接続する。そして、Ａ系コンピュータＰＣ＿Ａにて生成された制御情報とＢ系コンピュータＰＣ＿Ｂにて生成された制御情報との論理積を論理積演算回路７にて演算し、制御対象とする機器に対して出力する。また、通信回線２を介してＡ系コンピュータＰＣ＿Ａ及びＢ系コンピュータＰＣ＿Ｂ間で互いにデータを送受信し、各系において自系データと他系データとを照合する。また、各系において自系コンピュータの処理が円滑に実行されているか否かを監視する。照合の結果、Ａ系及びＢ系のコンピュータが保持または出力するデータが不一致の場合、または監視の結果、いずれかの系において処理が円滑に実行されていないと判断された場合は、処理を停止し、当該制御システム１を無力化し、制御対象とする機器への出力を安全側とする。
【００６１】
このように、本実施の形態の二重系制御システム１では、自系及び他系のデータや処理結果に対してソフトウエアにてセルフチェックを実施し、ＲＡＭ及びＲＯＭ等のメモリ内のデータを積極的に比較照合する。また、定期的に正常な出力が行われているか等の監視を行って、コンピュータの作動の異常を積極的に検出する。また、各系からの出力は論理積が演算されるため、両系のデータが一致しない場合には、転てつ機４に対して制御出力が行われず、破棄される。
その結果、ソフトウエアのバグやハードウエアの故障を検知でき、故障の場合には、装置を無力化して安全側の処理を行える。従って、専用のハードウエア及びソフトウエアによらなくとも、汎用のコンピュータにて鉄道の保安装置の制御端末のような高い安全性が必要とされる装置を構成できるようになる。また、その場合にも充分な安全性が確保できる。また、汎用製品の導入による低コスト化が可能となる。
【００６２】
なお、上述の実施の形態では、転てつ機４の制御端末として本発明の二重系制御システム１を適用する例を示したが、これに限定されるものではなく、他の保安装置の制御端末として利用してもよい。例えば、図８に示す鉄道の保安装置の制御システム１００には、転てつ機４の遠隔制御端末１０１の他に、閉塞管理装置１０２や踏切５の遠隔制御端末１０３等も含まれるが、閉そく管理装置１０２や踏切５の遠隔制御端末１０３等にも本発明の二重系制御システム１を適用できる。
【００６３】
以上、添付図面を参照しながら、本発明に係る二重系制御システムの好適な実施形態について説明したが、本発明は係る例に限定されない。当業者であれば、本願で開示した技術的思想の範疇内において、各種の変更例又は修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【符号の説明】
【００６４】
１・・・・・・二重系制御システム
ＰＣ＿Ａ・・・Ａ系コンピュータ
ＰＣ＿Ｂ・・・Ｂ系コンピュータ
２・・・・・・通信回線
７・・・・・・論理積演算回路
８Ａ，８Ｂ・・正常リレー
９・・・・・・車上装置
１０Ａ，１０Ｂ・・接点
１８Ａ・・・・車上装置とのＡ系の通信部
１８Ｂ・・・・車上装置とのＢ系の通信部
３・・・・・・列車
４・・・・・・転てつ機
５・・・・・・踏切
６・・・・・・線路
１００・・・・鉄道保安制御システム
１０１・・・・転てつ機の遠隔制御端末（二重系制御システム１を適用）
１０２・・・・閉塞管理装置（二重系制御システム１を適用）
１０３・・・・踏切の遠隔制御端末（二重系制御システム１を適用）
【図１】
2011198205.tif 000003
【図２】
2011198205.tif 000004
【図３】
2011198205.tif 000005
【図４】
2011198205.tif 000006
【図５】
2011198205.tif 000007
【図６】
2011198205.tif 000008
【図７】
2011198205.tif 000009
【図８】
2011198205.tif 000010