(57)【要約】  本発明は、出力データおよびテストデータを含むデータパケットを形成するための処理システムにおいて入力データを処理するときのエラーを検知する方法に関する。上記テストデータは、上記出力データの正当性を確認するために形成される。上記入力データに基づき上記出力データを決定する第１処理ステップと、上記入力データに基づき上記テストデータを決定する第２処理ステップとは、立て続けに実行される。第２処理ステップでは、第３処理ステップにて、上記入力データに基づき中間出力データを決定し、第４処理ステップにて、上記決定された中間出力データからテストデータを決定する。上記第１処理ステップおよび上記第３処理ステップは、異なる方法で同じ関数を実行する。上記テストデータによって上記出力データの正当性が確認できない場合、上記処理システムにおいてエラーを検知する。【特許請求の範囲】
【請求項１】
出力データと該出力データの正当性を確認するために形成されるテストデータ項目とを含むデータパケットを形成するための処理システム（１）において入力データを処理するときのエラー検知方法であって、
上記入力データに基づいて上記出力データを確定する第１処理ステップと、
上記入力データに基づいて上記テストデータ項目を確定する第２処理ステップとを順次実行し、
上記第２処理ステップでは、
第３処理ステップにて、上記入力データに基づいて中間出力データを確定し、
第４処理ステップにて、上記確定した中間出力データからテストデータ項目を決定し、
上記第１処理ステップおよび上記第３処理ステップは、異なるルートで同一の関数を実行し、
上記出力データの正当性が上記テストデータ項目によって確認できなかった場合に、当該処理システムにおけるエラーを検知するエラー検知方法。
【請求項２】
確定した上記テストデータ項目は上記出力データのチェックサムである、請求項１に記載のエラー検知方法。
【請求項３】
上記中間出力データが確定した後すぐに上記テストデータ項目を決定し、上記テストデータ項目が決定した後すぐに上記中間出力データを破棄する、請求項１または２に記載のエラー検知方法。
【請求項４】
上記第１処理ステップは、上記第３処理ステップとは逆のロジックで実行される、請求項１から３のいずれか１項に記載のエラー検知方法。
【請求項５】
上記出力データおよび上記テストデータ項目から形成された上記データパケットが送信された後に、上記データパケットの正当性をチェックするために、上記テストデータ項目が上記第２処理ステップにおける出力データより確定できるか否かを判定するチェックを行う、請求項１から４のいずれか１項に記載のエラー検知方法。
【請求項６】
請求項１から５のいずれか１項に記載のエラー検知方法をマイクロプロセッサに実行させるためのコンピュータプログラム製品。
【請求項７】
出力データと該出力データの正当性を確認するためのテストデータ項目とを含むデータパケットを形成するために入力データを処理するときのエラーを検知する処理システム（１）であって、
上記処理システムは、
上記入力データに基づいて上記出力データを確定する第１処理ステップと、上記入力データに基づいて上記テストデータ項目決定する第２処理ステップとを順次実行すること、および、上記出力データの正当性が上記テストデータ項目によって確認できなかった場合に、当該処理システムにおけるエラーを検知することを行う処理手段（２）と、
上記第１処理ステップおよび上記第２処理ステップの各ステップを、上記処理手段に実行させるために記憶するメモリ（３）とを有し、
上記テストデータ項目決定する第２処理ステップは、上記入力データに基づいて中間出力データを確定する第３処理ステップと、確定した上記中間出力データからテストデータ項目を決定する第４処理ステップとを含み、
上記第１処理ステップおよび上記第３処理ステップは、異なるルートで同一の関数を実行する、処理システム。
【請求項８】
上記テストデータ項目および上記出力データから形成された上記データパケットを送信する送信手段（４）を有する、請求項７に記載の処理システム（１）。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データパケット形成処理システムにおけるデータ処理中のエラーを検知するための方法、および、当該方法を実行するシステムに関するものである。
【背景技術】
【０００２】
安全性に関わるデータ（sicherheitsrelevanten Daten）を処理するシステムにおいては、データは２またはそれ以上のチャネルを用いて処理されることが多い。つまり、データは、異なるルートで、複数回にわたって別々に処理される。このように、多重チャネル（Mehrkanaligkeit）とは、通常、同じ処理方法を異なる処理手段にて２回またはそれ以上の回数実行し、それにより得られた結果を互いに比較することにより実現する。ここでは、すべてのルートで同じ結果が得られた場合は、個々の処理方法で得られた結果は、正しく計算されたものであるという確率が非常に高いということが前提になっている。このとき、ハードウェアにおいてシステム上で自然に発生するエラーは無視されている。検知された２つのエラーが、同じ位置でのエラーであるために同じ結果を正確に返すことなどまず考えられないからである。よって、このような場合だけ、エラーが検知されずに残る。
【０００３】
しかしながら、上記処理方法の全ステップを直列的に順次実行するような処理システム（例えば、単一マイクロプロセッサなど）に入れ替えた場合、多重チャネルは、単一プロセッサが複数回にわたってデータを順次処理していくことにより実現される。したがって、データは連続して複数回にわたって処理される。データの多重処理は、とりわけさまざまな方法で実現される。例えば計算アルゴリズムが、さまざまな単一ステップを順番に実行していき、データが正しく処理された場合に、全く同一の結果に到達することが挙げられる。
【０００４】
上述のようなやり方で結果を得た場合、各結果が等価なものであるか確認するためのチェックが行われる。ここで、単一マイクロプロセッサで処理された場合のひとつの問題点は、マイクロプロセッサにエラーがある場合にせよ、処理システムにエラーがある場合にせよ、多重チャネル処理による不等な結果が、さらに起こったエラーの結果であるのに正しい結果であると解釈されて、次の処理へと渡されてしまうということを検出することができないという点である。この問題点を解決するのは難しい。なぜなら、上記方法のステップのうち、突き止められたデータの正確さを確定するための、得られた結果の比較を必要とするステップは、２、３ステップしかないからである。しかし、多重チャネルを単一マイクロプロセッサにて実現する場合、マイクロプロセッサにて方法のステップを実行している間に発生したエラーは、不等な結果として正しく検知されず、たとえマイクロプロセッサにエラーが発生していたとしても、データの処理が継続されてしまう。
【０００５】
制御技術（Steuerungstechnik）としては、PROFISAFEなどの基準が、データ転送用に用いられる。例えば、上記基準は、利用データに対して、特定のプロトコルおよび特定のフォーマットを規定する。これにより、転送データを、データの改ざん・破棄などの伝送接続上のあらゆるタイプのエラーから守ることができる。データには、共通データフレームアドレス、チェックサム、および、ライフサイクルカウンタ（Lebenszykluszaeler）などが付与される。
【０００６】
多重チャネルが単一マイクロプロセッサ（例えば、単一の情報処理装置）にて実現されるシステムにおいては、エラーが検知された場合に、マイクロプロセッサが確実に正確ではないデータを伝送しないようにするとは限らない。しかしながら、安全性に関わる領域では、“単一エラー安全策（Einfehlersicherheit）”が必要である。該単一エラー安全策では、単一エラーが発生した場合に、処理を完全に停止したり、あるいは、データの生成および供給を停止したりする。
【０００７】
NIKOLAIZIK, Juerden; NKOLOV, Boris; WARLITZ, Joachim;著、「Fehlertolerante Mikrocomputersysteme（フォールトトレラントコンピュータシステム）」（ベルリン、Technik出版、１９９０年発行、ISBN：3-341-00959-4）の２３〜６７ページには、フォールトトレラントマイクロコンピュータシステムが開示されている。上記フォールトトレラントマイクロコンピュータシステムは、２つの異なるプログラムで立て続けにデータを処理し、各結果をエラーを見つけるために比較して、エラー検知を実現する中央演算処理装置（CPU）を備えている。
【０００８】
本発明の目的は、データを処理してデータパケット形式にする際のエラー検知方法を提供することにある。本発明のエラー検知方法は、処理方法の各処理ステップが順次直列で実行されるような処理システムにおける処理を実行するための、単一エラー安全策を提供する。また、本発明の目的は、発生したエラーを正確に検知することが可能な、データパケット形成処理のための処理システムを提供することにある。
【非特許文献１】NIKOLAIZIK, Juerden; NKOLOV, Boris; WARLITZ, Joachim;著  「Fehlertolerante Mikrocomputersysteme（フォールトトレラントコンピュータシステム）」Technik出版  １９９０年
【発明の開示】
【０００９】
上記目的は、請求項１に記載の方法、請求項６に記載のコンピュータプログラム製品、および、請求項７に記載の制御システムによって達成される。
【００１０】
本発明のさらに有利な改良点は、各独立項において特定されている。
【００１１】
本発明の第１の特徴は、出力データおよびテストデータ項目を含むデータパケットを形成するための処理システムにおける、データ処理時のエラー検知方法を実現する点である。上記処理システムは、処理方法の各ステップを順次直列的に実行する。上記テストデータ項目とは、出力データの正当性を確かめるために形成されたものである。上記エラー検知方法は、以下に示す各ステップを含んでいる。第１処理ステップでは、出力データが入力データに基づいて確定する。第２処理ステップでは、テストデータ項目が上記入力データに基づいて確定する。上記第１および第２処理ステップは、上記処理システムにて立て続けに実行される。なお、上記第１および第２処理ステップは、それぞれ、上記出力データおよび上記テストデータ項目を生成するために、もう一方のステップに移行する。これにより、上記テストデータ項目を用いて上記出力データを確認することが可能となる。上記出力データの正当性が上記テストデータ項目によって確認できなかった場合には、上記処理システムにおいてエラーが検知される。
【００１２】
本発明の方法が有する有利な点は、上記処理システムにおいて、上記テストデータ項目および出力データが、他方のデータとは独立して確認される点にある。これにより、存在するかも知れないエラーを見つけるために、出力データが２回またはそれ以上同じ方法で確認されることを防ぐ。単一の処理システムにおいて上記出力データを確認するために何回も同じ処理ステップを実行してしまうと、上記処理システムに存在するエラーを検知することは通常不可能である。なぜなら、エラーは、同様のやり方で、同じ処理ステップにおける否定の効果をもたらすからである。２つの異なる、すなわち、上記第１および第２処理ステップは、一方から得られた値から異なる値を算出するのに用いられる。各値とは、つまり、上記出力データおよびテストデータ項目のことである。これにより、上記処理システムのエラーが原因で、上記第１処理ステップにて確認された上記出力データと、上記第２処理ステップにて確認された上記テストデータ項目とが、互いに整合性がとれない（すなわち、テストデータ項目によって、出力データの正当性を確認することができない）という結果を招いたと結論付けることができる。
【００１３】
上記出力データを確認するテストデータ項目は、チェックサムであることが好ましい。
【００１４】
第３処理ステップでは、上記第２処理ステップにてテストデータ項目を確認するのに適している第１確認中間出力データを確定する。第４処理ステップでは、確認中間出力データを用いて、テストデータ項目を確認する。このように、上記第３処理ステップおよび上記第１処理ステップでは、上記出力データまたは中間出力データは、異なるルートで確認される。特に、上記第１処理ステップは、上記第３処理ステップとは逆のロジックを用いて実行される。これにより、上記第１および第３処理ステップが、同様の処理ステップとならないようにすることができる。つまり、両方の処理ステップにてエラーが発生した場合には、異なる出力データが生成されることになる。したがって、第４処理ステップでは、上記中間出力データに基づいて確定されたテストデータ項目では、上記出力データの正当性を確認することができない。これにより、エラーの検知を正確に行うことができる。
【００１５】
一実施形態では、上記テストデータ項目は、上記中間出力データが確定した後すぐに確定するのが好ましい。また、テストデータ項目が確定した後に、中間出力データは破棄されることが好ましい。これにより、上記中間出力データは、テストデータ項目とともに上記処理システムのメモリに残ったままにならないで済む。例えば、中間出力データおよびテストデータ項目から形成されたデータパケットが誤って伝送されるのを防ぐことができる。上記処理システムにおいて、中間出力データが利用できない、あるいは、少ししか利用できないようにすることで、上記処理システムにおけるエラーが理由で中間出力データが出力データとして伝送されることが、めったに起こらない、ほとんど起こり得ないようにすることができる。
【００１６】
本発明のある実施形態では、データパケットは、出力データおよびテストデータ項目から形成されてもよい。そして、上記データパケットが転送された後に、上記データパケットの正当性をチェックするために、上記テストデータ項目が、上記出力データの正当性を確認した否かを判断するチェックが行われてもよい。
【００１７】
本発明の他の特徴は、データパケットを形成するためのデータを処理する際のエラー検知のための処理システムを実現する点である。上記処理システムは、入力データに基づいて出力データを確定する第１処理ステップ、および、入力データに基づいてテストデータ項目を確定する第２処理ステップの各処理ステップを順次実行する処理手段を有する。さらに、上記処理手段が、上記第１および第２処理ステップを実行する際に用いる、上記第１および第２処理ステップの各ステップの情報を記憶した記録媒体を提供する。上記第１および第２処理ステップは、上記処理システムにおいて立て続けに実行される。そして、生成された出力データおよびテストデータ項目は、入力データが同一であるため、互いに整合性がとれている。つまり、上記出力データの正当性は、上記テストデータ項目によって確認される。また、上記テストデータ項目によって、上記出力データが確認できなかったときに、エラーを検知するためのエラー確認手段を備えている。
【００１８】
本発明の他の実施形態では、上記テストデータ項目および上記出力データを接続してデータパケットを形成し、上記データパケットを、ネットワークを介して送信する送信手段を備えている。
【００１９】
本発明の好ましい実施の形態については、添付の図面を参照しながら、以下にさらに詳しく説明する。
【発明を実施するための最良の形態】
【００２０】
図１は、マイクロプロセッサ２およびメモリ３を備えた制御システム１を示すブロック図である。メモリ３は、プログラムデータおよび使用データを格納するためのものである。マイクロプロセッサ２は、メモリ３に記憶されている使用データを処理する各処理ステップを実行するためのプログラムデータを用いることができる。例えば、マイクロプロセッサ２は、上記処理方法の各処理ステップを順次実行するスタンダードのマイクロプロセッサである。
【００２１】
制御システム１は、機器５と接続されている。機器５は、ＰＲＯＦＩＢＵＳ４を介して、制御システム１によって制御される。ＰＲＯＦＩＢＵＳ４は、データパケット（制御データおよびテストデータを含む）を伝送するものである。上記制御データは、マイクロプロセッサ２で実行される第１処理ステップの結果である。テストデータとは、第２処理ステップにて、マイクロプロセッサ２において確認されるデータのことであり、受信部、つまり機器５における制御データの正当性をチェックするために利用される。言い換えれば、上記テストデータおよび上記制御データは、互いに整合性がとれなければならない。通常上記テストデータは、例えば、チェックサムなどの上記制御データから容易に確認される。
【００２２】
図２は、本発明の処理方法の好ましい実施形態を示すフローチャートである。入力データが供給されると（ステップＳ１）、まず第１処理ステップにて、上記入力データに基づいて、出力データが確定する（ステップＳ２）。次に、上記入力データから中間出力データを確定するための第３処理ステップが実行される（ステップＳ３）。上記第１および第３処理ステップは、原則、同一の関数を実行する。出力データは、便宜上、異なるルートによって取得される。例えば、上記出力データを取得するために、上記第１処理ステップでは正のロジックを用いて、上記第３処理ステップでは負のロジックを用いる。
【００２３】
上記第１処理ステップにて取得された上記出力データと、上記第３処理ステップにて取得された上記中間出力データとは、上記制御システムが正しく稼動していれば、全く同一になる。ある処理ステップが、誤って実行された場合に、上記第１または第３処理ステップにおいてエラーが発生した場合は、上記第１処理ステップおよび第３処理ステップのそれぞれから得られた出力データは異なるものになる。ステップＳ４では、中間出力データから、中間出力データ向けのチェックサムが計算される。上記第１および第３処理ステップ、および、チェックサムの計算が正しく実行されると、ステップＳ４で確定したチェックサムは、ステップＳ２にて確定した出力データ用のチェックサムと対応する。
【００２４】
上記中間出力データおよびチェックサムが、共通のデータパケットとして、あるいは、メモリ３においてもう一方との関連性が定義されて利用されることを防ぐために、さらに、制御システム１によって誤って送信されることを防ぐために、ステップＳ３が実行された後に、中間出力データは、メモリ３ではなく、メモリ３とは別に設けられた、マイクロプロセッサのレジスタにあるバッファ、あるいは、キャッシュメモリなどに記憶しておくことが好ましい。そして、ステップＳ４のおけるチェックサムの確認の後に、中間出力データがメモリ２に残らないように破棄することが好ましい。これにより、メモリ３には、第３処理ステップにて確定した中間出力データのチェックサムだけが記憶され、中間出力データ自体は残らないようにすることができる。
【００２５】
上記第１処理ステップは、別のルートによって、上記出力データにたどり着くので、上記出力データおよびチェックサムは、処理が正しく行われた場合のみ、互いに一致する。つまり、上記各処理ステップが正しく実行された場合にのみ、上記チェックサムは上記出力データの正当性を確認する。
【００２６】
上記チェックサムおよび上記出力データは、ステップＳ５にて、データパケットを形成すべく互いに接続される。そして、ステップＳ６にて、ＰＲＯＦＩＢＵＳ４を介して、操作されている機器５に送信される。ステップＳ７にて、機器５は、上記チェックサムが上記出力データに一致しているか否かを確認する。つまり、上記チェックサムが上記出力データの正当性を確認したか否かを確認する。もし、確認できた場合、処理はステップＳ１に戻る。
【００２７】
エラーが検知された場合、機器５は、ＰＲＯＦＩＢＵＳ４を介してエラーを制御システム１に転送する。これにより制御システム１は、自動的に電源を切るか、または、処理を停止する。あるいは、機器５が、誤ったデータパケットが到着したのに応じて、さらなるデータパケットを制御システム１から受信するのを阻止し、自装置をシャットダウンするようにしてもよい。
【００２８】
上記チェックサムが上記出力データを確認したか否かを判断するためのチェックは、マイクロプロセッサ２を用いて制御システム１にて実行されることが好ましい。これにより、制御システム１は、エラーが発生した場合に、ステップＳ８にて自装置をシャットダウンすることができる。
【００２９】
インターフェースとしては、制御システム１は、外部からは保護されているプロトコルを使用する。例えば、PROFISAFEなどである。PROFISAFEは、ＰＲＯＦＩＢＵＳ４を操作するのに利用することができる。このように、データは、保護されたさまざまな仕組みを用いて、パケット化してフレームにされる。制御データの正当性は、PROFISAFEプロトコルのフレーム最終チェックによって確実になる。チェックが正常に終われば、データパケットは、解放されて送信される。エラーが発生した場合には、制御システム１は停止する。制御システム１のエラーが正しくない結果を導出した上に、その送信を阻止することができなかった場合に、データの受信部、つまり、機器５が、保護されたフレームを用いてチェックするときに上記エラーを検知し、それにしたがって応答するようにしてもよい。例えば、制御システム１による誤ったデータパケットがさらに送信されるのを阻止するなどすればよい。
【００３０】
第１および第３処理ステップは、逆のロジックを用いて実行されることが好ましい。これにより、同一の各処理ステップが、誤った同じ出力データを出力することを防止することができる。また、上記第１および第３処理ステップにて、全く異なる方法で同一の関数を実行することが可能となる。これにより、全く異なる方法で同一の関数を実施するのに利用可能な数学的新形態を用いることができる。
【００３１】
また、テストデータ項目を計算することも可能である。テストデータ項目としては、例えば、あらかじめ行われる中間出力データの確認なしに入力データから直接得られるチェックサムなどが挙げられる。これにより、制御システムにおいて、中間出力データを一切利用せずに済む。したがって、例えば、中間出力データが誤って上記テストデータ項目に接続され、ＰＲＯＦＩＢＵＳ４によってデータパケットとして誤って送信されることなどがなくなる。
【００３２】
上記構成は、とりわけ、上記第１処理ステップの各ステップと同一のステップの数をできるだけ少なく（特に、ゼロと）なるような、異なるステップからなる新しい処理ステップを形成するために、上記テストデータの計算を、上記第１処理ステップの関数に接続させる場合に可能である。
【図面の簡単な説明】
【００３３】
【図１】本発明の方法を実現する、PROFIBUSを介して機器を制御する制御システムを示すブロック図である。
【図２】本発明の方法の好ましい実施形態を示すフローチャートである。
【図１】
2007532992.tif 000002
【図２】
2007532992.tif 000003
【手続補正書】
【提出日】平成18年2月17日(2006.2.17)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
出力データと該出力データの正当性を確認するために形成されるテストデータ項目とを含むデータパケットを形成するための処理システム（１）において入力データを処理するときのエラー検知方法であって、
上記入力データに基づいて上記出力データを確定する第１処理ステップと、
上記入力データに基づいて上記テストデータ項目を確定する第２処理ステップとを順次実行し、
上記第２処理ステップでは、
第３処理ステップにて、上記入力データに基づいて中間出力データを確定し、
第４処理ステップにて、上記確定した中間出力データからテストデータ項目を決定し、
上記第１処理ステップおよび上記第３処理ステップは、異なるルートで同一の関数を実行し、
上記出力データおよび上記テストデータ項目は、互いにデータパケットに接続され、
上記出力データの正当性が上記テストデータ項目によって確認できなかった場合に、当該処理システムにおけるエラーを検知し、
上記第４処理ステップにて上記テストデータ項目が決定した後、上記中間出力データを破棄することを特徴とするエラー検知方法。
【請求項２】
確定した上記テストデータ項目は上記出力データのチェックサムであることを特徴とする請求項１に記載のエラー検知方法。
【請求項３】
上記第１処理ステップは、上記第３処理ステップとは逆のロジックで実行されることを特徴とする請求項１または２に記載のエラー検知方法。
【請求項４】
上記出力データおよび上記テストデータ項目から形成された上記データパケットが送信された後に、上記データパケットの正当性をチェックするために、上記テストデータ項目が上記第２処理ステップにおける出力データより確定できるか否かを判定するチェックを行うことを特徴とする請求項１から３のいずれか１項に記載のエラー検知方法。
【請求項５】
請求項１から４のいずれか１項に記載のエラー検知方法をマイクロプロセッサに実行させるためのコンピュータプログラム製品。
【請求項６】
出力データと該出力データの正当性を確認するためのテストデータ項目とを含むデータパケットを形成するために入力データを処理するときのエラーを検知する処理システム（１）であって、
上記処理システムは、
上記入力データに基づいて上記出力データを確定する第１処理ステップと、上記入力データに基づいて上記テストデータ項目決定する第２処理ステップとを順次実行する処理手段（２）と、
上記第１処理ステップおよび上記第２処理ステップの各ステップを記憶するメモリ（３）とを有し、
上記テストデータ項目決定する第２処理ステップは、上記入力データに基づいて中間出力データを確定する第３処理ステップと、確定した上記中間出力データからテストデータ項目を決定する第４処理ステップとを含み、
上記第１処理ステップおよび上記第３処理ステップは、異なるルートで同一の関数を実行し、
上記出力データおよび上記テストデータ項目から形成されたデータパケットの受信手段（５）は、上記出力データの正当性が上記テストデータ項目によって確認できなかった場合に、上記処理システム（１）におけるエラーを検知し、
上記処理手段（２）は、上記第４処理ステップにて上記テストデータ項目が決定した後、上記中間出力データを破棄することを特徴とする処理システム。
【請求項７】
上記受信手段（５）は、上記テストデータ項目および上記出力データから形成された上記データパケットを送信する送信手段（４）を備えていることを特徴とする請求項６に記載の処理システム（１）。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データパケット形成処理システムにおけるデータ処理中のエラーを検知するための方法、および、当該方法を実行するシステムに関するものである。
【背景技術】
【０００２】
安全性に関わるデータ（sicherheitsrelevanten Daten）を処理するシステムにおいては、データは２またはそれ以上のチャネルを用いて処理されることが多い。つまり、データは、異なるルートで、複数回にわたって別々に処理される。このように、多重チャネル（Mehrkanaligkeit）とは、通常、同じ処理方法を異なる処理手段にて２回またはそれ以上の回数実行し、それにより得られた結果を互いに比較することにより実現する。ここでは、すべてのルートで同じ結果が得られた場合は、個々の処理方法で得られた結果は、正しく計算されたものであるという確率が非常に高いということが前提になっている。このとき、ハードウェアにおいてシステム上で自然に発生するエラーは無視されている。検知された２つのエラーが、同じ位置でのエラーであるために同じ結果を正確に返すことなどまず考えられないからである。よって、このような場合だけ、エラーが検知されずに残る。
【０００３】
しかしながら、上記処理方法の全ステップを直列的に順次実行するような処理システム（例えば、単一マイクロプロセッサなど）に入れ替えた場合、多重チャネルは、単一プロセッサが複数回にわたってデータを順次処理していくことにより実現される。したがって、データは連続して複数回にわたって処理される。データの多重処理は、とりわけさまざまな方法で実現される。例えば計算アルゴリズムが、さまざまな単一ステップを順番に実行していき、データが正しく処理された場合に、全く同一の結果に到達することが挙げられる。
【０００４】
上述のようなやり方で結果を得た場合、各結果が等価なものであるか確認するためのチェックが行われる。ここで、単一マイクロプロセッサで処理された場合のひとつの問題点は、マイクロプロセッサにエラーがある場合にせよ、処理システムにエラーがある場合にせよ、多重チャネル処理による不等な結果が、さらに起こったエラーの結果であるのに正しい結果であると解釈されて、次の処理へと渡されてしまうということを検出することができないという点である。この問題点を解決するのは難しい。なぜなら、上記方法のステップのうち、突き止められたデータの正確さを確定するための、得られた結果の比較を必要とするステップは、２、３ステップしかないからである。しかし、多重チャネルを単一マイクロプロセッサにて実現する場合、マイクロプロセッサにて方法のステップを実行している間に発生したエラーは、不等な結果として正しく検知されず、たとえマイクロプロセッサにエラーが発生していたとしても、データの処理が継続されてしまう。
【０００５】
制御技術（Steuerungstechnik）としては、PROFISAFEなどの基準が、データ転送用に用いられる。例えば、上記基準は、利用データに対して、特定のプロトコルおよび特定のフォーマットを規定する。これにより、転送データを、データの改ざん・破棄などの伝送接続上のあらゆるタイプのエラーから守ることができる。データには、共通データフレームアドレス、チェックサム、および、ライフサイクルカウンタ（Lebenszykluszaeler）などが付与される。
【０００６】
多重チャネルが単一マイクロプロセッサ（例えば、単一の情報処理装置）にて実現されるシステムにおいては、エラーが検知された場合に、マイクロプロセッサが確実に正確ではないデータを伝送しないようにするとは限らない。しかしながら、安全性に関わる領域では、“単一エラー安全策（Einfehlersicherheit）”が必要である。該単一エラー安全策では、単一エラーが発生した場合に、処理を完全に停止したり、あるいは、データの生成および供給を停止したりする。
【０００７】
NIKOLAIZIK, Juerden; NKOLOV, Boris; WARLITZ, Joachim;著、「Fehlertolerante Mikrocomputersysteme（フォールトトレラントコンピュータシステム）」（ベルリン、Technik出版、１９９０年発行、ISBN：3-341-00959-4）の２３〜６７ページには、フォールトトレラントマイクロコンピュータシステムが開示されている。上記フォールトトレラントマイクロコンピュータシステムは、２つの異なるプログラムで立て続けにデータを処理し、各結果をエラーを見つけるために比較して、エラー検知を実現する中央演算処理装置（CPU）を備えている。
【０００８】
ＥＰ  ０  ７４４  ６９３  Ａ１には、請求項１または７の前置き部分の特徴を有する方法および処理システムが開示されている。ここでは、出力データおよびチェックサムは、２つの別々のプログラムチャネルを用いて計算されており、上記出力データおよび上記チェックサムは、互いに組み合わされる。これにより、データの受信側においてエラーを検知することが可能となる。
【０００９】
ＥＰ  ０  ２８７  ３０２  Ａ２には、さらなるフェールセーフ方法が開示されている。ここでは、チェックサムおよび出力データは、２つのコンピュータを用いて並列処理にて計算され、エラーを確認するために、上記出力データおよび上記チェックサムは、互いに組み合わされる。
【００１０】
ＤＥ  １９５  ３２  ６３９  Ａ１には、第１のコンピュータによって計算された出力データと、第２のコンピュータによって計算されたチェックサムとを含むデータパケットを単一チャネルで送信することが開示されている。
【００１１】
本発明の目的は、データを処理してデータパケット形式にする際のエラー検知方法を提供することにある。本発明のエラー検知方法は、処理方法の各処理ステップが順次直列で実行されるような処理システムにおける処理を実行するための、単一エラー安全策を提供する。また、本発明の目的は、発生したエラーを正確に検知することが可能な、データパケット形成処理のための処理システムを提供することにある。
【非特許文献１】NIKOLAIZIK, Juerden; NKOLOV, Boris; WARLITZ, Joachim;著  「Fehlertolerante Mikrocomputersysteme（フォールトトレラントコンピュータシステム）」Technik出版  １９９０年
【特許文献１】ＥＰ  ０  ７４４  ６９３  Ａ１（１９９６年１１月２７日公開）
【特許文献２】ＥＰ  ０  ２８７  ３０２  Ａ２（１９８８年１０月１９日公開）
【特許文献３】ＤＥ  １９５  ３２  ６３９  Ａ１（１９９７年２月２７日公開）
【発明の開示】
【００１２】
上記目的は、請求項１に記載の方法、請求項５に記載のコンピュータプログラム製品、および、請求項６に記載の制御システムによって達成される。
【００１３】
本発明のさらに有利な改良点は、各独立項において特定されている。
【００１４】
本発明の第１の特徴は、出力データおよびテストデータ項目を含むデータパケットを形成するための処理システムにおける、データ処理時のエラー検知方法を実現する点である。上記処理システムは、処理方法の各ステップを順次直列的に実行する。上記テストデータ項目とは、出力データの正当性を確かめるために形成されたものである。上記エラー検知方法は、以下に示す各ステップを含んでいる。第１処理ステップでは、出力データが入力データに基づいて確定する。第２処理ステップでは、テストデータ項目が上記入力データに基づいて確定する。上記第１および第２処理ステップは、上記処理システムにて立て続けに実行される。なお、上記第１および第２処理ステップは、それぞれ、上記出力データおよび上記テストデータ項目を生成するために、もう一方のステップに移行する。これにより、上記テストデータ項目を用いて上記出力データを確認することが可能となる。上記出力データの正当性が上記テストデータ項目によって確認できなかった場合には、上記処理システムにおいてエラーが検知される。
【００１５】
本発明の方法が有する有利な点は、上記処理システムにおいて、上記テストデータ項目および出力データが、他方のデータとは独立して確認される点にある。これにより、存在するかも知れないエラーを見つけるために、出力データが２回またはそれ以上同じ方法で確認されることを防ぐ。単一の処理システムにおいて上記出力データを確認するために何回も同じ処理ステップを実行してしまうと、上記処理システムに存在するエラーを検知することは通常不可能である。なぜなら、エラーは、同様のやり方で、同じ処理ステップにおける否定の効果をもたらすからである。２つの異なる、すなわち、上記第１および第２処理ステップは、一方から得られた値から異なる値を算出するのに用いられる。各値とは、つまり、上記出力データおよびテストデータ項目のことである。これにより、上記処理システムのエラーが原因で、上記第１処理ステップにて確認された上記出力データと、上記第２処理ステップにて確認された上記テストデータ項目とが、互いに整合性がとれない（すなわち、テストデータ項目によって、出力データの正当性を確認することができない）という結果を招いたと結論付けることができる。
【００１６】
上記出力データを確認するテストデータ項目は、チェックサムであることが好ましい。
【００１７】
第３処理ステップでは、上記第２処理ステップにてテストデータ項目を確認するのに適している第１確認中間出力データを確定する。第４処理ステップでは、確認中間出力データを用いて、テストデータ項目を確認する。このように、上記第３処理ステップおよび上記第１処理ステップでは、上記出力データまたは中間出力データは、異なるルートで確認される。特に、上記第１処理ステップは、上記第３処理ステップとは逆のロジックを用いて実行される。これにより、上記第１および第３処理ステップが、同様の処理ステップとならないようにすることができる。つまり、両方の処理ステップにてエラーが発生した場合には、異なる出力データが生成されることになる。したがって、第４処理ステップでは、上記中間出力データに基づいて確定されたテストデータ項目では、上記出力データの正当性を確認することができない。これにより、エラーの検知を正確に行うことができる。
【００１８】
一実施形態では、上記テストデータ項目は、上記中間出力データが確定した後すぐに確定するのが好ましい。また、テストデータ項目が確定した後に、中間出力データは破棄されることが好ましい。これにより、上記中間出力データは、テストデータ項目とともに上記処理システムのメモリに残ったままにならないで済む。例えば、中間出力データおよびテストデータ項目から形成されたデータパケットが誤って伝送されるのを防ぐことができる。上記処理システムにおいて、中間出力データが利用できない、あるいは、少ししか利用できないようにすることで、上記処理システムにおけるエラーが理由で中間出力データが出力データとして伝送されることが、めったに起こらない、ほとんど起こり得ないようにすることができる。
【００１９】
本発明のある実施形態では、データパケットは、出力データおよびテストデータ項目から形成されてもよい。そして、上記データパケットが転送された後に、上記データパケットの正当性をチェックするために、上記テストデータ項目が、上記出力データの正当性を確認した否かを判断するチェックが行われてもよい。
【００２０】
本発明の他の特徴は、データパケットを形成するためのデータを処理する際のエラー検知のための処理システムを実現する点である。上記処理システムは、入力データに基づいて出力データを確定する第１処理ステップ、および、入力データに基づいてテストデータ項目を確定する第２処理ステップの各処理ステップを順次実行する処理手段を有する。さらに、上記処理手段が、上記第１および第２処理ステップを実行する際に用いる、上記第１および第２処理ステップの各ステップの情報を記憶した記録媒体を提供する。上記第１および第２処理ステップは、上記処理システムにおいて立て続けに実行される。そして、生成された出力データおよびテストデータ項目は、入力データが同一であるため、互いに整合性がとれている。つまり、上記出力データの正当性は、上記テストデータ項目によって確認される。また、上記テストデータ項目によって、上記出力データが確認できなかったときに、エラーを検知するためのエラー確認手段を備えている。
【００２１】
本発明の他の実施形態では、上記テストデータ項目および上記出力データを接続してデータパケットを形成し、上記データパケットを、ネットワークを介して送信する送信手段を備えている。
【００２２】
本発明の好ましい実施の形態については、添付の図面を参照しながら、以下にさらに詳しく説明する。
【発明を実施するための最良の形態】
【００２３】
図１は、マイクロプロセッサ２およびメモリ３を備えた制御システム１を示すブロック図である。メモリ３は、プログラムデータおよび使用データを格納するためのものである。マイクロプロセッサ２は、メモリ３に記憶されている使用データを処理する各処理ステップを実行するためのプログラムデータを用いることができる。例えば、マイクロプロセッサ２は、上記処理方法の各処理ステップを順次実行するスタンダードのマイクロプロセッサである。
【００２４】
制御システム１は、機器５と接続されている。機器５は、ＰＲＯＦＩＢＵＳ４を介して、制御システム１によって制御される。ＰＲＯＦＩＢＵＳ４は、データパケット（制御データおよびテストデータを含む）を伝送するものである。上記制御データは、マイクロプロセッサ２で実行される第１処理ステップの結果である。テストデータとは、第２処理ステップにて、マイクロプロセッサ２において確認されるデータのことであり、受信部、つまり機器５における制御データの正当性をチェックするために利用される。言い換えれば、上記テストデータおよび上記制御データは、互いに整合性がとれなければならない。通常上記テストデータは、例えば、チェックサムなどの上記制御データから容易に確認される。
【００２５】
図２は、本発明の処理方法の好ましい実施形態を示すフローチャートである。入力データが供給されると（ステップＳ１）、まず第１処理ステップにて、上記入力データに基づいて、出力データが確定する（ステップＳ２）。次に、上記入力データから中間出力データを確定するための第３処理ステップが実行される（ステップＳ３）。上記第１および第３処理ステップは、原則、同一の関数を実行する。出力データは、便宜上、異なるルートによって取得される。例えば、上記出力データを取得するために、上記第１処理ステップでは正のロジックを用いて、上記第３処理ステップでは負のロジックを用いる。
【００２６】
上記第１処理ステップにて取得された上記出力データと、上記第３処理ステップにて取得された上記中間出力データとは、上記制御システムが正しく稼動していれば、全く同一になる。ある処理ステップが、誤って実行された場合に、上記第１または第３処理ステップにおいてエラーが発生した場合は、上記第１処理ステップおよび第３処理ステップのそれぞれから得られた出力データは異なるものになる。ステップＳ４では、中間出力データから、中間出力データ向けのチェックサムが計算される。上記第１および第３処理ステップ、および、チェックサムの計算が正しく実行されると、ステップＳ４で確定したチェックサムは、ステップＳ２にて確定した出力データ用のチェックサムと対応する。
【００２７】
上記中間出力データおよびチェックサムが、共通のデータパケットとして、あるいは、メモリ３においてもう一方との関連性が定義されて利用されることを防ぐために、さらに、制御システム１によって誤って送信されることを防ぐために、ステップＳ３が実行された後に、中間出力データは、メモリ３ではなく、メモリ３とは別に設けられた、マイクロプロセッサのレジスタにあるバッファ、あるいは、キャッシュメモリなどに記憶しておくことが好ましい。そして、ステップＳ４のおけるチェックサムの確認の後に、中間出力データがメモリ３に残らないように破棄することが好ましい。これにより、メモリ３には、第３処理ステップにて確定した中間出力データのチェックサムだけが記憶され、中間出力データ自体は残らないようにすることができる。
【００２８】
上記第１処理ステップは、別のルートによって、上記出力データにたどり着くので、上記出力データおよびチェックサムは、処理が正しく行われた場合のみ、互いに一致する。つまり、上記各処理ステップが正しく実行された場合にのみ、上記チェックサムは上記出力データの正当性を確認する。
【００２９】
上記チェックサムおよび上記出力データは、ステップＳ５にて、データパケットを形成すべく互いに接続される。そして、ステップＳ６にて、ＰＲＯＦＩＢＵＳ４を介して、操作されている機器５に送信される。ステップＳ７にて、機器５は、上記チェックサムが上記出力データに一致しているか否かを確認する。つまり、上記チェックサムが上記出力データの正当性を確認したか否かを確認する。もし、確認できた場合、処理はステップＳ１に戻る。
【００３０】
エラーが検知された場合、機器５は、ＰＲＯＦＩＢＵＳ４を介してエラーを制御システム１に転送する。これにより制御システム１は、自動的に電源を切るか、または、処理を停止する。あるいは、機器５が、誤ったデータパケットが到着したのに応じて、さらなるデータパケットを制御システム１から受信するのを阻止し、自装置をシャットダウンするようにしてもよい。
【００３１】
上記チェックサムが上記出力データを確認したか否かを判断するためのチェックは、マイクロプロセッサ２を用いて制御システム１にて実行されることが好ましい。これにより、制御システム１は、エラーが発生した場合に、ステップＳ８にて自装置をシャットダウンすることができる。
【００３２】
インターフェースとしては、制御システム１は、外部からは保護されているプロトコルを使用する。例えば、PROFISAFEなどである。PROFISAFEは、ＰＲＯＦＩＢＵＳ４を操作するのに利用することができる。このように、データは、保護されたさまざまな仕組みを用いて、パケット化してフレームにされる。制御データの正当性は、PROFISAFEプロトコルのフレーム最終チェックによって確実になる。チェックが正常に終われば、データパケットは、解放されて送信される。エラーが発生した場合には、制御システム１は停止する。制御システム１のエラーが正しくない結果を導出した上に、その送信を阻止することができなかった場合に、データの受信部、つまり、機器５が、保護されたフレームを用いてチェックするときに上記エラーを検知し、それにしたがって応答するようにしてもよい。例えば、制御システム１による誤ったデータパケットがさらに送信されるのを阻止するなどすればよい。
【００３３】
第１および第３処理ステップは、逆のロジックを用いて実行されることが好ましい。これにより、同一の各処理ステップが、誤った同じ出力データを出力することを防止することができる。また、上記第１および第３処理ステップにて、全く異なる方法で同一の関数を実行することが可能となる。これにより、全く異なる方法で同一の関数を実施するのに利用可能な数学的新形態を用いることができる。
【００３４】
また、テストデータ項目を計算することも可能である。テストデータ項目としては、例えば、あらかじめ行われる中間出力データの確認なしに入力データから直接得られるチェックサムなどが挙げられる。これにより、制御システムにおいて、中間出力データを一切利用せずに済む。したがって、例えば、中間出力データが誤って上記テストデータ項目に接続され、ＰＲＯＦＩＢＵＳ４によってデータパケットとして誤って送信されることなどがなくなる。
【００３５】
上記構成は、とりわけ、上記第１処理ステップの各ステップと同一のステップの数をできるだけ少なく（特に、ゼロと）なるような、異なるステップからなる新しい処理ステップを形成するために、上記テストデータの計算を、上記第１処理ステップの関数に接続させる場合に可能である。
【図面の簡単な説明】
【００３６】
【図１】本発明の方法を実現する、PROFIBUSを介して機器を制御する制御システムを示すブロック図である。
【図２】本発明の方法の好ましい実施形態を示すフローチャートである。
【国際調査報告】
2007532992.tif 000004
2007532992.tif 000005
2007532992.tif 000006
2007532992.tif 000007