(57)【要約】【課題】複数の処理装置で同一の処理を実行し、結果を照合することで誤動作を検知しデータの送信を停止する制御装置において、照合を行ったデータと送信されたデータが異なったものであることを検出することが可能な制御装置を提供する。【解決手段】第１の処理装置が出力した処理結果と、第２の処理装置の処理結果に基づいて生成されたチェックコードを連結して出力するチェックコード連結回路を設ける。【選択図】図１
2014164561.tif 000002
【特許請求の範囲】
【請求項１】
第１の処理装置と第２の処理装置とを含む複数の処理装置を有し、
前記複数の処理装置で同一の処理を実行し処理結果を照合することで誤動作を検知し、
誤動作の検知時には、前記処理結果及び前記処理結果から生成されたチェックコードから構成されるデータの送信を停止し、
前記第１の処理装置が出力した処理結果と、前記第２の処理装置の処理結果から生成されたチェックコードとを連結したデータを生成して送信するチェックコード連結回路を備える
ことを特徴とする制御装置。
【請求項２】
請求項１記載の制御装置において、
前記チェックコード連結回路は、
１つ以上のチェックコードを格納するチェックコード記憶回路を有し、前記第１の処理装置の処理結果を含む出力の予め定められた位置へ、チェックコード記憶回路に格納されたチェックコードを連結する
ことを特徴とする制御装置。
【請求項３】
請求項１記載の制御装置において、
前記チェックコード連結回路は、
１つ以上のチェックコードと前記チェックコードの連結位置を示す情報を格納する記憶回路を有し、前記記憶回路に格納された連結位置を示す情報に基づきチェックコードの連結を行う
ことを特徴とする制御装置。
【請求項４】
請求項１記載の制御装置において、
前記第１の処理装置の処理結果を含む出力に、前記処理結果から生成されるチェックコードとは一致しない誤ったチェックコードが付加され、
前記チェックコード連結回路は、前記誤ったチェックコードを前記第２の処理装置の処理結果に基づいて生成されたチェックコードに置き換える
ことを特徴とする制御装置。
【請求項５】
請求項１記載の制御装置において、
前記制御装置は、
３つ以上の処理装置相互で処理結果を照合し、処理結果が一致した２つの処理装置の組み合わせの内、
一方の処理装置での処理結果と、他方の処理装置での処理結果に基づいて生成したチェックコードとを前記チェックコード連結回路で連結する
ことを特徴とする制御装置。
【請求項６】
制御装置と前記制御装置に接続された１つ以上の制御端末を含む制御システムであって、
前記制御装置は、
第１の処理装置と第２の処理装置とを含む複数の処理装置を有し、
前記複数の処理装置で同一の処理を実行し処理結果を照合することで誤動作を検知し、
誤動作の検知時には、処理結果及びチェックコードから構成されるデータの送信を停止し、
前記第１の処理装置が出力した処理結果と、前記第２の処理装置の処理結果に基づいて生成されたチェックコードとを連結して前記データを生成して送信するチェックコード連結回路を備え、前記制御端末は前記制御装置の出力した前記データを受信し、前記データのチェックコードで、前記データの前記第１の処理装置の処理結果の誤り検出または誤り訂正を実行する
ことを特徴とする制御システム。
【請求項７】
請求項６記載の制御システムにおいて、
前記チェックコード連結回路は、
１つ以上のチェックコードを格納するチェックコード記憶回路を有し、前記第１の処理装置の処理結果を含む出力の予め定められた位置にチェックコード記憶回路に格納されたチェックコードを連結する
ことを特徴とする制御システム。
【請求項８】
請求項６記載の制御システムにおいて、
前記チェックコード連結回路は、
１つ以上のチェックコードと前記チェックコードの連結位置を示す情報を格納する記憶回路を有し、前記記憶回路に格納された連結位置を示す情報に基づきチェックコードの連結を行う
ことを特徴とする制御システム。
【請求項９】
請求項６記載の制御システムにおいて、
前記第１の処理装置の処理結果を含む出力に、前記処理結果から生成されるチェックコードとは一致しない誤ったチェックコードが付加され、
前記チェックコード連結回路は、前記誤ったチェックコードを前記第２の処理装置の処理結果に基づいて生成されたチェックコードに置き換える
ことを特徴とする制御システム。
【請求項１０】
請求項６記載の制御システムにおいて、
前記制御装置は、
３つ以上の処理装置相互で処理結果を照合し、処理結果が一致した２つの処理装置の組み合わせの内、
一方の処理装置での処理結果と、他方の処理装置での処理結果に基づいて生成したチェックコードとを前記チェックコード連結回路で連結する
ことを特徴とする制御システム。
【請求項１１】
データ生成方法であって、
同一の処理を実行して得られた第１の処理結果と第２の処理結果を含む処理結果を相互に照合することで誤動作を検知し、誤動作の検知時には、処理結果及びチェックコードから構成されるデータの送信を停止し、
前記第１の処理結果と、前記第２の処理結果に基づいて生成されたチェックコードとを連結したデータを生成して送信する
ことを特徴とするデータ生成方法。
【請求項１２】
請求項１１記載のデータ生成方法であって、
３つ以上の処理結果を相互に照合し一致した２つの処理結果の組み合わせで、一方の処理結果と、他方の処理結果に基づいて生成されたチェックコードとを連結する
ことを特徴とするデータ生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置、制御システム及びデータ生成方法に関する。
【背景技術】
【０００２】
本技術分野の背景技術として、鉄道システムでのフェイルセイフ性を確保するために３重系の装置構成となっているものや単系または２重系の制御装置に関する特開平１０−３４０１０２号公報（特許文献１）がある。この特許文献１では、段落番号０００８に、３台の制御装置から構成される３重系の制御装置と、シリアル通信の相手装置にデータを送信するときに、３重系の制御装置がそれぞれ準備したデータを互いに他系の制御装置に送信するための照合回線と、照合回線を介して他系の制御装置から受け取ったデータと自系のデータを照合する照合部と、３重系の制御装置の各々に設けられ自系の制御装置の故障検出を行う故障検出部と、照合部からの照合結果および故障検出部からの信号に基づいて相手装置にデータを送信する制御装置を選択する送信権選択部とを備えた装置が開示されている。
【０００３】
また、特許文献１では段落番号０００９に、送信すべきデータを他の２台の制御装置に送信し、自系では送信すべきデータと他の２台の制御装置から受け取ったデータを比較し、自系のデータと他系からのデートとが一致し、また、他系においても他系のデータと自系のデータとが一致し、自系の装置が故障でないときに自系の制御装置からデータを送信することが開示されている。
【０００４】
また、本技術分野の別の背景技術として、特開２００５−１０２０３７号公報（特許文献２）がある。この特許文献２の段落番号００４６から段落番号００５２に、「図５は、本発明によるパケット通信装置１がＴＣＰ／ＩＰ通信パケットをイーサネット（登録商標）パケットでカプセル化し送信／受信するパケットの構成の一例を示す図である。（途中略）カプセル化の際に、ＴＣＰ（ＵＤＰ）およびＩＰでは、パケットが正しいかどうかを判定するために、チェックサム演算を使用する。このチェックサム演算の対象範囲は、図５に示すように、ＴＣＰパケットの場合はＴＣＰヘッダおよびＴＣＰデータからなるＴＣＰパケット全体であり、ＵＤＰおよびＩＰの場合はヘッダのみである。送信元は、カプセル化の際にチェックサムを演算し、チェックサム情報として各ヘッダに付加する。受信側は、チェックサム情報を含めて対象範囲のチェックサムを演算し、その結果が０ならば正常、それ以外ならばエラーと判定する」と記載され、通信装置におけるチェック方法が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１０−３４０１０２号公報
【特許文献２】特開２００５−１０２０３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１には、複数の処理装置の処理結果を照合し、処理結果が正しいことを確認してからデータを送信することで、装置の故障による誤ったデータの送信を防止する制御装置が記載されている。しかし、特許文献１の制御装置では、照合を行ったデータと送信されたデータが異なったものであったとしても、それを検出することができない。
【０００７】
特許文献２には、送信側でデータにチェックサムを付加し、受信側でチェックサムを確認することにより、送信データの誤りを検出する装置が記載されている。しかし、特許文献２の装置では、送信側でデータにチェックサムを付加する時点で既に送信データが誤ったものであった場合は、誤りを検出することができない。
【０００８】
本発明の目的は、複数の処理装置で同一の処理を実行し、処理結果を照合することで誤動作を検知しデータの送信を停止する制御装置において、照合を行ったデータと送信されたデータが異なったものであることを検出することが可能な制御装置を提供することにある。
【課題を解決するための手段】
【０００９】
上記課題を解決するため、本発明の制御装置は、第１の処理装置が出力した処理結果と、第２の処理装置の処理結果に基づいて生成されたチェックコードを連結して出力するチェックコード連結回路を有する。
【発明の効果】
【００１０】
第１の処理装置が出力した処理結果が照合を行ったデータと異なったものであった場合、第２の処理装置の処理結果に基づいて生成されたチェックコードとの間で整合性が取れなくなる。そこで、送信されたデータを受信した装置で処理結果とチェックコードの整合性を確認することにより、照合を行ったデータと送信されたデータが異なったものであることの検出を可能とできる。また、上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【００１１】
【図１】図１は、本発明を適用した実施例１の制御システムの構成図である。
【図２】図２は、図１の制御システムのＲＡＭ１１２のデータ配置と処理装置１０１の処理フローの例である。
【図３】図３は、図１の制御システムのチェックコード連結回路１３１の構成の第１の例を示す図である。
【図４】図４は、図３のチェックコード連結回路のチェックコード記憶回路３０１のデータ配置の例である。
【図５】図５は、図３のチェックコード連結回路の動作の第１の例を示す図である。
【図６】図６は、図３のチェックコード連結回路の動作の第２の例を示す図である。
【図７】図７は、図３のチェックコード連結回路の動作の第３の例を示す図である。
【図８】図８は、図１の制御システムのチェックコード連結回路１３１の構成の第２の例を示す図である。
【図９】図９は、図８のチェックコード連結回路のチェックコード記憶回路８０１のデータ配置の例である。
【図１０】図１０は、図８のチェックコード連結回路の動作の例を示す図である。
【図１１】図１１は、本発明を適用した実施例２の制御システムの構成図である。
【図１２】図１２は、本発明を適用した実施例３の制御システムの構成図である。
【図１３】図１３は、図１２の制御システムのスイッチ制御回路１２４３の動作の例を示す図である。
【発明を実施するための形態】
【００１２】
以下、実施例を図面を用いて説明する。
【００１３】
また、「プログラム」を主語として処理を説明する場合がある。そのプログラムは、プロセッサ、例えば、ＭＰ（Micro Processor）やＣＰＵ（Central Processing Unit）によって実行されるもので、定められた処理をするものである。なお、適宜に記憶資源（例えば、メモリ）及び通信インタフェース装置（例えば、通信ポート）を用いながら行うため、処理の主語がプロセッサとされてもよい。プロセッサは、ＣＰＵの他に専用ハードウェアを有していても良い。コンピュータプログラムは、プログラムソースから各コンピュータにインストールされても良い。プログラムソースは、例えば、プログラム配布サーバ又は記憶メディアなどで提供されるものであっても良い。
【００１４】
また、各要素、例えば、コントローラは番号などで識別可能であるが、識別可能な情報であれば、名前など他種の識別情報が用いられても良い。本発明の図及び説明において同一部分には同一符号を付与しているが、本発明が本実施例に制限されることは無く、本発明の思想に合致するあらゆる応用例が本発明の技術的範囲に含まれる。また、特に限定しない限り、各構成要素は複数でも単数でも構わない。
【実施例１】
【００１５】
図１は、本発明を適用した制御システムの構成図の第１の例である。
【００１６】
本実施例の制御システム１００は、第１の処理装置１０１、第２の処理装置１０２、チェックコード連結回路１３１、送信停止スイッチ１３２、スイッチ制御回路１３５、制御端末１３３、機器１３４を有する。
【００１７】
第１の処理装置１０１は、ＣＰＵ１１１、ＲＡＭ（Random Access Memory）１１２、ＲＯＭ（Read  Only  Memory）１１３、送信回路１１４、受信回路１１５、照合回路１１６を有する。これら構成要素は、内部バス１１７で相互に接続される。
【００１８】
第２の処理装置１０２は、ＣＰＵ１２１、ＲＡＭ１２２、ＲＯＭ１２３、インタフェース回路１２４、受信回路１２５、照合回路１２６を有する。これら構成要素は、内部バス１２７で相互に接続される。
【００１９】
受信回路１１５は、通信路１４５を介して制御端末１３３からデータを受け取り、バス１１７を介してＲＡＭ１１２に書き込む。
【００２０】
ＣＰＵ１１１はＲＯＭ１１３に格納されたプログラムに従い、以下の処理を実行する。ＣＰＵ１１１はまず、受信回路１１５がＲＡＭ１１２に書き込んだデータをバス１１７を介して読み出し、予め定められた制御処理を行った後、処理結果をバス１１７を介してＲＡＭ１１２に書き込む。
【００２１】
ＣＰＵ１１１は、また、照合回路１１６がＲＡＭ１１２に書き込んだ照合結果を、バス１１７を介して受け取る。照合結果が一致を示している場合は、ＣＰＵ１１１はＲＡＭ１１２に書き込んだ処理結果から、予め定められた形式の送信データを生成し、ＲＡＭ１１２に書き込む。照合結果が不一致を示している場合は、ＣＰＵ１１１は処理を停止する。
【００２２】
照合回路１１６は、ＲＡＭ１１２からＣＰＵ１１１の処理結果を読み出し、伝送路１５０を介して照合回路１２６に送信する。照合回路１１６は、また、伝送路１５０を介して照合回路１２６から第２の処理装置１０２のＣＰＵ１２１の処理結果を受け取り、ＲＡＭ１１２から読み出したＣＰＵ１１１の処理結果と照合する。照合処理が終了すると、照合回路１１６は照合結果を、バス１１７を介してＲＡＭ１１２に書き込むとともに、伝送路１４７を介してスイッチ制御回路１３５に送信する。
【００２３】
送信回路１１４は、ＣＰＵ１１１がＲＡＭ１１２に書き込んだ送信データを、バス１１７を介して読み出し、伝送路１４１を介してチェックコード連結回路１３１に送信する。
【００２４】
受信回路１２５、照合回路１２６の動作はそれぞれ、受信回路１１５、照合回路１１６の動作と同様である。
【００２５】
なお、本実施例では照合回路１１６、１２６で照合処理を行う例を示したが、ＲＯＭ１１３、１２３に格納されたプログラムに従いＣＰＵ１１１、１２１が照合処理を行う方法も考えられる。
【００２６】
ＣＰＵ１２１の動作もＣＰＵ１１１の動作とほぼ同じであるが、ＣＰＵ１２１は送信データをＲＡＭ１２２に書き込む代わりに、ＲＡＭ１２２に書き込んだ処理結果から生成されたチェックコードをＲＡＭ１２２に書き込む。なお、チェックコードとしては、前述のチェックサムの他にパリティコード、ＣＲＣ（Cyclic Redundancy Check,  巡回冗長検査）などの誤り検出符号があり、ＥＣＣ（Error Correcting Code）などの誤り訂正符号を用いてもよい。
【００２７】
インタフェース回路１２４は、ＣＰＵ１２１がＲＡＭ１２２に書き込んだチェックコードを、バス１２７を介して読み出し、伝送路１４９を介してチェックコード連結回路１３１に送信する。
【００２８】
チェックコード連結回路１３１は、伝送路１４１を介して送信回路１１４から受け取った送信データと、伝送路１４９を介してインタフェース回路１２４から受け取ったチェックコードを連結し、伝送路１４２を介して送信停止スイッチ１３２に出力する。
【００２９】
スイッチ制御回路１３５は、伝送路１４７を介して照合回路１１６から受け取った照合結果と、伝送路１４８を介して照合回路１２６から受け取った照合結果に基づき、送信停止スイッチ１３２の制御信号を信号線１５１に出力する。
【００３０】
送信停止スイッチ１３２は、照合回路１１６と照合回路１２６の両方の照合結果が一致であった場合のみＯＮに制御され、いずれか一方、または両方が不一致であった場合はＯＦＦに制御される。また、送信停止スイッチ１３２は、信号線１５１から受け取った制御信号に応じて内部スイッチのＯＮ／ＯＦＦを制御する。内部スイッチがＯＮの場合、送信停止スイッチ１３２は、伝送路１４２から受け取った送信データがそのまま伝送路１４３に出力される。内部スイッチがＯＦＦの場合、送信停止スイッチ１３２は、伝送路１４３には何も出力せず、伝送路１４３はアイドル状態となる。
【００３１】
制御端末１３３は、伝送路１４３から受け取ったデータのデータ本体とチェックコードの整合性をチェックし、受け取ったデータが正しいかどうかを確認する。整合性が取れなかった場合は、制御端末１３３は、機器１３４を安全に停止させるための制御信号を信号線１４４に出力する。整合性が取れた場合は、制御端末１３３は、受け取ったデータに予め定められた処理を行い、機器１３４の制御信号を生成して信号線１４４に出力する。また、制御端末１３３は、信号線１４６を介して機器１３４の状態を示す信号を取り込み、予め定められた処理を行った後、伝送路１４５に送信する。なお、機器１３４の例としては、鉄道車両、自動車、飛行機などの移動車両や建設機械、移動車両の運行を制御する運行システム、石油精製や発電などの各種プラント、通信装置などがあるが、これに限定されるものではない。
【００３２】
また、本実施例では制御端末を１つしか示していないが、複数の制御端末を有することも可能である。その場合、必要に応じて伝送路１４３、１４５に中継回路を設けてもよい。
【００３３】
図２は、図１の制御システムのＲＡＭ１１２のデータ配置と処理装置１０１の処理フローの例である。左側がＲＡＭ１１２のデータ配置を示し、右側が処理装置１０１の処理フローを示す。
【００３４】
（１）の受信は、受信回路１１５が通信路１４５を介して受け取ったデータをＲＡＭ１１２に書き込む処理である。
【００３５】
（２）の制御処理は、ＣＰＵ１１１が受信データをＲＡＭ１１２から読み出し、予め定められた制御処理を行った後、処理結果をＲＡＭ１１２に書き込む処理である。
【００３６】
（３）のデータ交換、照合は、照合回路１１６が照合回路１２６と処理結果を交換し、照合を行う処理である。
【００３７】
（４）のヘッダ、チェックコード付加は、ＣＰＵ１１１が予め定められた形式で送信データを生成し、ＲＡＭ１１２に書き込む処理である。ここでは、送信元、送信先、データサイズの情報を含むヘッダ、及び、ヘッダまたはデータに対するチェックコードを計算して付加する例を示した。なお、ヘッダやチェックコードは、処理結果全体に対して１つ付加する場合もあるが、処理結果のサイズが大きい場合は複数に分割して、分割したそれぞれに対して別々にヘッダやチェックコードを付加してもよい。
【００３８】
（５）の送信は、送信回路１１４がＲＡＭ１１２から送信データを読み出し、伝送路１４１に送信する処理である。
【００３９】
図３は、図１の制御システム１００のチェックコード連結回路１３１の構成の第１の例を示す図である。
【００４０】
本実施例のチェックコード連結回路１３１は、チェックコード記憶回路３０１、チェックコード連結位置検出回路３０２、選択回路３０３を有する。
【００４１】
チェックコード記憶回路３０１は、伝送路１４９から処理装置１０２で生成されたチェックコードを受け取り、内部の記憶素子に格納する。チェックコード記憶回路３０１は、また、信号線３１１を介してチェックコード連結位置検出回路３０２から受け取った読み出しアドレスに対応する記憶素子に格納されたチェックコードを、信号線３１２を介して選択回路３０３に出力する。
【００４２】
チェックコード連結位置検出回路３０２は、伝送路１４１から送信データを受け取り、送信データの先頭から現在受け取っているデータまでのデータ数を計数する。チェックコード連結位置検出回路３０２は、また、計数したデータ数に従い、選択回路３０３の制御信号を信号線３１３に出力する。
【００４３】
チェックコード連結位置検出回路３０２は、また、伝送路１４１から受け取った送信データ数（送信パケット数）を計数し、チェックコード記憶回路３０１の読み出しアドレスとして信号線３１１に出力する。この読み出しアドレスにより、受け取っている送信データに対する正しいチェックコードをチェックコード記憶回路３０１から読み出して選択回路３０３に送ることができる。
【００４４】
選択回路３０３は、計数したデータ数が予め定められた数値と等しい場合に信号線３１２のチェックコードを選択し、それ以外では伝送路１４１から受け取った送信データを選択する様に制御される。つまり、チェックコードを挿入する位置ないし置換する位置と判断した場合は、伝送路１４２にチェックコード記憶回路８０１からのチェックコードを出力し、それ以外の位置ではヘッダないし処理結果を出力し、送信停止スイッチ１３２に送る。
【００４５】
選択回路３０３は、また、信号線３１３を介してチェックコード連結位置検出回路３０２から受け取った制御信号に従い、伝送路１４１から受け取った送信データか信号線３１２から受け取ったチェックコードのいずれかを選択し、伝送路１４２に出力する。
【００４６】
図４は、図３のチェックコード連結回路１３１のチェックコード記憶回路３０１のデータ配置の例である。
【００４７】
チェックコード記憶回路３０１は、第２の処理装置１０２で生成された複数のチェックコードを格納する記憶素子を有する。図４では、チェックコード２−１からチェックコード２−３とそれ以外のチェックコードを格納する例を示している。
【００４８】
図５は、図３のチェックコード連結回路１３１の動作の第１の例を示す図である。
【００４９】
伝送路１４１から受け取る送信データにはチェックコードは含まれておらず、送信データはヘッダと処理結果で構成されている。そこで、チェックコード連結回路１３１が、ヘッダと処理結果の間にチェックコード記憶回路３０１に格納されたチェックコード（処理装置１０２で生成されたチェックコード）を挿入して出力する。
【００５０】
具体的には、伝送路１４１からの受信データであるヘッダ１−１と処理結果１−１の間に、チェックコード記憶回路３０１から受信したチェックコード２−１を挿入し、伝送路１４２への送信データを生成する。なお、ヘッダのサイズは全ての送信データで同一であり、チェックコードの挿入位置までの先頭からのデータ数も全ての送信データで同一である。処理結果の手前にチェックコードを挿入することにより、処理結果のサイズに変動がある場合でもチェックコードの挿入位置を一定にすることが可能となる。
【００５１】
別の例として、送信データの末尾からチェックコードまでのデータ数を一定とする方法もある。この場合、処理結果の後ろにチェックコードを挿入する方法でも、挿入位置を一定にすることが可能である。以上のように、第１の処理装置が出力した処理結果に、第２の処理装置の処理結果に基づいて生成されたチェックコードを付加し、制御端末などの受信装置側で処理結果とチェックコードの整合性を確認する。これにより、処理装置間で照合を行った処理結果と、処理装置から送信された処理結果が異なったものであることを検出することが可能となる。
【００５２】
図６は、図３のチェックコード連結回路１３１の動作の第２の例を示す図である。
【００５３】
伝送路１４１から受け取る送信データにもチェックコードが含まれており、このチェックコードをチェックコード記憶回路３０１に格納されたチェックコードに置き換えて出力する。具体的には、伝送路１４１から受信データのチェックコード１−１を、チェックコード記憶回路３０１から受信したチェックコード２−１で置き換えて伝送路１４２への送信データを生成する。
【００５４】
チェックコードの位置に関しては図５と同様、処理結果の後に配置し、送信データの末尾からチェックコードまでのデータ数を一定とする方法も考えられる。
【００５５】
図６の例では、図５での利点に加え第１の処理装置１０１が送信するデータにチェックコードを含ませることができるため、ＣＰＵ１１１で実行する送信データ作成プログラムを従来の処理装置から流用できるという利点がある。
【００５６】
図７は、図３のチェックコード連結回路１３１の動作の第３の例を示す図である。
【００５７】
伝送路１４１から受け取る送信データはチェックコードの位置に不正コード（処理結果から生成されるチェックコードと一致しないコード）が格納されており、この不正コードをチェックコード記憶回路３０１に格納されたチェックコードに置き換えて出力する。具体的には、伝送路１４１からの受信データであるヘッダ１−１と処理結果１−１の間の不正コード−１を、チェックコード記憶回路３０１から受信したチェックコード２−１で置き換えて伝送路１４２への送信データを生成する。
【００５８】
図７の例では、チェックコード連結回路１３１が誤動作してチェックコードの置き換えが行われなかった場合に、ヘッダや処理結果と不正コードの間で整合性が取れないため、制御端末１３３による整合性チェックにより、チェックコード連結回路１３１が誤動作したことを検出することが可能であるという更なる利点がある。
【００５９】
図８は、図１の制御システム１００のチェックコード連結回路１３１の構成の第２の例を示す図である。
【００６０】
本実施例のチェックコード連結回路１３１は、チェックコード記憶回路８０１、チェックコード連結位置検出回路８０２、選択回路８０３を有する。
【００６１】
チェックコード記憶回路８０１は、伝送路１４９からチェックコード、及びチェックコードを連結する場所に関する情報を受け取り、内部の記憶素子に格納する。また、チェックコード記憶回路８０１は、信号線３１１を介してチェックコード連結位置検出回路８０２から受け取った読み出しアドレスに対応する記憶素子に格納されたチェックコードを、信号線３１２を介して選択回路３０３に出力する。そして、チェックコード記憶回路８０１は、チェックコードを連結する場所に関する情報を、信号線８１１を介してチェックコード連結位置検出回路８０２に出力する。
【００６２】
チェックコード連結位置検出回路８０２は、伝送路１４１から送信データを受け取り、送信データの先頭から現在受け取っているデータまでのデータ数を計数する。また、チェックコード連結位置検出回路８０２は、計数したデータ数と信号線８１１を介してチェックコード記憶回路８０１から受け取ったチェックコードを連結する場所に関する情報に従い、選択回路３０３の制御信号を信号線３１３に出力する。チェックコード連結位置検出回路８０２は、また、チェックコードを連結した回数を計数し、チェックコード記憶回路８０１の読み出しアドレスとして信号線３１１に出力する。
【００６３】
選択回路３０３は、計数したデータ数が信号線８１１から受け取った位置と等しい場合に信号線３１２のチェックコードを選択し、それ以外では伝送路１４１から受け取った送信データを選択する様に制御される。
【００６４】
また、選択回路３０３は、信号線３１３を介してチェックコード連結位置検出回路８０２から受け取った制御信号に従い、伝送路１４１から受け取った送信データか信号線３１２から受け取ったチェックコードのいずれかを選択し、伝送路１４２に出力する。
【００６５】
図９は、図８のチェックコード連結回路のチェックコード記憶回路８０１のデータ配置の例である。
【００６６】
チェックコード記憶回路８０１には、チェックコード（Ｃ２−？）、及び、チェックコードを連結する場所に関する情報（Ｐ−？、Ａ−？）が格納される。Ｐ−？はパケット番号で、何個目の送信データにチェックコード（Ｃ２−？）を連結するかを示す数値であり、Ａ−？は置換アドレスで、送信データの先頭からチェックコードを連結する位置までのデータ数を示す数値である。
【００６７】
図１０は、図８のチェックコード連結回路１３１の動作の例を示す図である。
【００６８】
最初の送信データはチェックコードを置換する場所が１箇所しかなく、チェックコード記憶回路８０１に格納されたＡ−１で指定された場所にあるデータがチェックコード記憶回路８０１に格納されたＣ２−１に置き換えられる。この図には記載していないが、チェックコード記憶回路８０１のＰ−１には１個目の送信データであることを示す数値が格納されている。
【００６９】
２番目の送信データはチェックコードを置換する場所が２箇所あり、チェックコード記憶回路８０１に格納されたＡ−２、Ａ−３で指定された場所にあるデータがチェックコード記憶回路８０１に格納されたＣ２−２、Ｃ２−３に置き換えられる。Ｃ２−２はヘッダに対するチェックコードであり、Ｃ２−３は処理結果に対するチェックコードである。この図には記載していないが、チェックコード記憶回路８０１のＰ−２、Ｐ−３には２番目の送信データであることを示す数値が格納されている。
【００７０】
図９及び図１０の例では、送信データ毎に連結するチェックコードの数や連結位置が異なっていても、チェックコードの連結を行うことが可能である、という利点がある。更に、ヘッダと処理結果それぞれにチェックコードを付加することで、エラー発生箇所を直ぐに特定できるという効果もある。
【実施例２】
【００７１】
図１１は、本発明を適用した実施例２の制御システムの構成図である。
【００７２】
本実施例の制御システム１１００は、第１の処理装置１１０１、第２の処理装置１１０２、チェックコード連結回路１３１、送信停止スイッチ１３２、制御端末１３３、機器１３４を有する。
【００７３】
第１の処理装置１１０１は、ＣＰＵ１１１、ＲＡＭ１１２、ＲＯＭ１１３、送信回路１１４、受信回路１１５、転送制御回路１１１６を有する。
【００７４】
第２の処理装置１１０２は、ＣＰＵ１２１、ＲＡＭ１２２、ＲＯＭ１２３、インタフェース回路１２４、受信回路１２５、照合回路１１２６を有する。
【００７５】
本実施例の図１１の制御システム１１００と図１の制御システム１００の相違は、照合回路を第２の処理装置１１０２にのみ設けた点である。また、図１１で図１と同じ符号を付加した回路の動作は、図１と同じである。
【００７６】
転送制御回路１１１６は、ＲＡＭ１１２に格納されたＣＰＵ１１１の処理結果を、伝送路１１５０を介して照合回路１１２６に送信する。転送制御回路１１１６は、また、照合回路１１２６から伝送路１１５０を介して照合結果を受け取り、バス１１７を介してＲＡＭ１１２に書き込む。
【００７７】
照合回路１１２６は、伝送路１１５０を介して転送制御回路１１１６からＣＰＵ１１１の処理結果を受け取るとともに、ＲＡＭ１２２からＣＰＵ１２１の処理結果を読み出し、両者を照合する。照合回路１１２６は、照合処理が終了すると照合結果を、バス１２７を介してＲＡＭ１２２に書き込むとともに、伝送路１１５０を介して転送制御回路１１１６に送信する。照合回路１１２６は、また、伝送路１１４８を介して送信停止スイッチ１３２の制御信号を出力する。送信停止スイッチ１３２は、照合結果が一致の時にＯＮ、不一致の時にＯＦＦに制御される。
【００７８】
実施例２では、実施例１と同様な効果に加え、図１のスイッチ制御回路１３５が不要となるため、図１に比べて制御システムの簡略化が図られるという利点がある。
【実施例３】
【００７９】
図１２は、本発明を適用した実施例３の制御システムの構成図である。
【００８０】
本実施例の制御システム１２００は、第１の処理装置１２０１、第２の処理装置１２０２、第３の処理装置１２０３、送信停止スイッチ１２４１、１２４２、スイッチ制御回路１２４３、選択回路１２４４、チェックコード連結回路１２４５、制御端末１２４６、機器１２４７を有する。
【００８１】
第１の処理装置１２０１は、ＣＰＵ１２１１、ＲＡＭ１２１２、ＲＯＭ１２１３、送信回路１２１４、受信回路１２１５、照合回路１２１６を有する。これら構成要素は、内部バス１２１７で相互に接続される。
【００８２】
第２の処理装置１２０２は、ＣＰＵ１２２１、ＲＡＭ１２２２、ＲＯＭ１２２３、インタフェース回路１２２４、送信回路１２２５、受信回路１２２６、照合回路１２２７を有する。これら構成要素は、内部バス１２２８で相互に接続される。
【００８３】
第３の処理装置１２０３は、ＣＰＵ１２３１、ＲＡＭ１２３２、ＲＯＭ１２３３、インタフェース回路１２３４、受信回路１２３５、照合回路１２３６を有する。これら構成要素は、内部バス１２３７で相互に接続される。
【００８４】
本実施例は、３重多数決の構成となっており、第１の処理装置１２０１、第２の処理装置１２０２、第３の処理装置１２０３のいずれか１つに誤動作が発生し処理結果が不正となった場合でも、残りの２つで正しいデータの送信を継続することが可能である。
【００８５】
受信回路１２１５、受信回路１２２６、受信回路１２３５の動作は、図１の受信回路１１５の動作と同様である。
【００８６】
ＣＰＵ１２１１の動作は、図１のＣＰＵ１１１とほぼ同じであるが、照合結果の判定の際は、ＣＰＵ１２２１、ＣＰＵ１２３１のいずれかの処理結果がＣＰＵ１２１１の処理結果と一致した場合に送信データの生成処理を行い、両方の処理結果がＣＰＵ１２１１との処理結果と不一致の場合は処理を停止する。
【００８７】
ＣＰＵ１２２１の動作は、ＣＰＵ１２１１とほぼ同じであるが、それに加えて、チェックコード連結回路１２４５に送信するチェックコードをＲＡＭ１２２２に書き込む。
【００８８】
ＣＰＵ１２３１の動作は、ＣＰＵ１２２１の動作とほぼ同じであるが、送信データの生成処理は行わない。
【００８９】
照合回路１２１６、照合回路１２２７、照合回路１２３６の動作は、図１の照合回路１１６、照合回路１２６と同様であるが、３者の間で伝送路１２５１、１２５２、１２５３を介してデータの交換を行い、３つの照合結果を生成するところが異なる。
【００９０】
送信回路１２１４、送信回路１２２５の動作は、図１の送信回路１１４と同様である。
【００９１】
インタフェース回路１２２４、インタフェース回路１２３４の動作は、図１のインタフェース回路１２４と同様である。
【００９２】
スイッチ制御回路１２４３は、伝送路１２５６、１２５７、１２５８を介して照合回路１２１６、１２２７、１２３６から照合結果を受け取り、信号線１２５９、１２６０、１２６１を介して、送信停止スイッチ１２４１、１２４２、選択回路１２４４の制御信号を出力する。送信停止スイッチ１２４１、１２４２、選択回路１２４４の制御方法に関しては後述する。
【００９３】
送信停止スイッチ１２４１、１２４２の動作は、図１の送信停止スイッチ１３２と同様である。
【００９４】
チェックコード連結回路１２４５、制御端末１２４６の動作はそれぞれ、図１のチェックコード連結回路１３１、制御端末１３３と同様である。
【００９５】
図１３は、図１２の制御システムのスイッチ制御回路１２４３の動作の例を示す図である。
【００９６】
ＣＰＵ１２１１とＣＰＵ１２２１の処理結果が一致（“ｙｅｓ”）している場合は、ＣＰＵ１２１１とＣＰＵ１２２１の処理結果が正しいと判断される。そのため、スイッチ制御回路１２４３は、送信停止スイッチ１２４１をＯＮ、送信停止スイッチ１２４２をＯＦＦとして、第１の処理装置１２０１の処理結果を送信データとしてチェックコード連結回路１２４５に出力するよう制御する。また、スイッチ制御回路１２４３は、選択回路１２４４を第２の処理装置１２０２のインタフェース回路１２２４の出力であるチェックコードを選択する様に制御する。
【００９７】
ＣＰＵ１２１１とＣＰＵ１２２１の処理結果が不一致（“ｎｏ”）で、ＣＰＵ１２１１とＣＰＵ１２３１の処理結果が一致（“ｙｅｓ”）している場合は、ＣＰＵ１２２１の処理結果が不正であり、ＣＰＵ１２１１とＣＰＵ１２３１の処理結果が正しいと判断される。そのため、スイッチ制御回路１２４３は、送信停止スイッチ１２４１をＯＮ、送信停止スイッチ１２４２をＯＦＦとして、第１の処理装置１２０１の処理結果を送信データとしてチェックコード連結回路１２４５に出力するよう制御する。また、選択回路１２４４を、第３の処理装置１２０３のインタフェース回路１２３４の出力であるチェックコードを選択する様に制御する。
【００９８】
ＣＰＵ１２１１とＣＰＵ１２２１の処理結果が不一致（“ｎｏ”）、かつ、ＣＰＵ１２１１とＣＰＵ１２３１の処理結果が不一致（“ｎｏ”）で、ＣＰＵ１２２１とＣＰＵ１２３１の処理結果が一致（“ｙｅｓ”）している場合は、ＣＰＵ１２１１の処理結果が不正であり、ＣＰＵ１２２１とＣＰＵ１２３１の処理結果が正しいと判断される。そのため、スイッチ制御回路１２４３は、送信停止スイッチ１２４１をＯＦＦ、送信停止スイッチ１２４２をＯＮをとして、第２の処理装置１２０２の処理結果を送信データとしてチェックコード連結回路１２４５に出力するよう制御する。また、スイッチ制御回路１２４３は、選択回路１２４４を、第３の処理装置１２０３のインタフェース回路１２３４の出力であるチェックコードを選択する様に制御する。
【００９９】
ＣＰＵ１２１１とＣＰＵ１２２１の処理結果が不一致（“ｎｏ”）、かつ、ＣＰＵ１２１１とＣＰＵ１２３１の処理結果が不一致（“ｎｏ”）、かつ、ＣＰＵ１２２１とＣＰＵ１２３１の処理結果が不一致（“ｎｏ”）の場合は、どのＣＰＵの処理結果が正しいか不明である。そのため、スイッチ制御回路１２４３は、送信停止スイッチ１２４１をＯＦＦ、送信停止スイッチ１２４２をＯＦＦをとして、データの送信を遮断する。この場合、選択回路１２４４の出力は意味を持たないため、選択回路１２４４の制御信号はいずれを出力しても良い。
【０１００】
以上の動作により、第１の処理装置１２０１、第２の処理装置１２０２、第３の処理装置１２０３のうちいずれか１つが誤動作し処理結果が不正となった場合でも、残りの２つのうちの１つの処理装置の処理結果と、別の処理装置のチェックコードを連結して送信することが可能となり、制御端末１２４６で受け取ったデータが正しいかどうかを確認することが可能となる。
【０１０１】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。
また、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【０１０２】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。
【０１０３】
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Solid State Drive）等の記録装置、または、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に置いてもよい。
【０１０４】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【０１０５】
１００  制御システム
１０１  第１の処理装置
１０２  第２の処理装置
１１６、１２６  照合回路
１３２  送信停止スイッチ
１３５  スイッチ制御回路
１３１  チェックコード連結回路
１３３  制御端末
３０１  チェックコード記憶回路
３０２  チェックコード連結位置検出回路
８０１  チェックコード記憶回路
８０２  チェックコード連結位置検出回路
１１００  制御システム
１１０１  第１の処理装置
１１０２  第２の処理装置
１１２６  照合回路
１２００  制御システム
１２０１  第１の処理装置
１２０２  第２の処理装置
１２０３  第３の処理装置
１２１６、１２２７、１２３６  照合回路
１２４１、１２４２  送信停止スイッチ
１２４３  スイッチ制御回路
１２４５  チェックコード連結回路
１２４６  制御端末
【図１】
2014164561.tif 000003
【図２】
2014164561.tif 000004
【図３】
2014164561.tif 000005
【図４】
2014164561.tif 000006
【図５】
2014164561.tif 000007
【図６】
2014164561.tif 000008
【図７】
2014164561.tif 000009
【図８】
2014164561.tif 000010
【図９】
2014164561.tif 000011
【図１０】
2014164561.tif 000012
【図１１】
2014164561.tif 000013
【図１２】
2014164561.tif 000014
【図１３】
2014164561.tif 000015