(57)【要約】【課題】単一のクロックソースのＣＰＵとＩ／Ｏモジュールを有する二重処理装置であって、安全タイマクロスチェック診断を備え各ＣＰＵに他方のＣＰＵのクロックソースの精度を検証することを可能にする二重処理装置を提供する。【解決手段】診断は、第１のＣＰＵを制御側ＣＰＵとして機能させ、第２のＣＰＵを監視側ＣＰＵとして機能させて動作する。両ＣＰＵは、同期させられて同時に各自の安全機能の１サイクルを開始する。診断の一部として、制御側ＣＰＵは所定の時間後に割り込まれるように設定され、監視側ＣＰＵはその若干後に割り込まれるように設定される。制御側ＣＰＵがＣＰＵのクロックソースによって判断される所定の時間経過後に割り込まれると、制御側ＣＰＵが監視側ＣＰＵに信号を送り、監視側ＣＰＵは感知された時間が期待される範囲にあるかを検証する。【選択図】図１
2008117390.tif 000002
【特許請求の範囲】
【請求項１】
第１の安全ループを実行するクロックソースによって駆動される第１のプロセッサを備える第１の処理装置と、
第２の安全ループを実行するクロックソースによって駆動される第２のプロセッサを備え、前記第１の処理装置から独立した第２の処理装置と、
前記第１および第２のプロセッサ間の通信リンクと、
前記第１および第２の処理装置の双方によって実行され、前記第１および第２の安全ループの開始を同期させる同期ルーチンと、
前記第１および第２の処理装置によって実行可能な診断と、
からなる安全装置において、
一方の処理装置が他方の処理装置のクロックソースの精度を監視する安全装置。
【請求項２】
請求項１に記載の安全装置において、前記第１のプロセッサが第１のクロックソースによって駆動され、前記第２のプロセッサが第２のクロックソースによって駆動される安全装置。
【請求項３】
請求項２に記載の安全装置において、前記第２のプロセッサが前記第１のプロセッサのクロックソースの精度を監視する安全装置。
【請求項４】
請求項３に記載の安全装置において、前記診断は前記クロックソースの精度が許容範囲にあるかどうかを判断する安全装置。
【請求項５】
請求項４に記載の安全装置において、前記診断プログラムが前記第１のプロセッサのクロックソースが正確であると判断した後、前記第１のプロセッサが前記第２のプロセッサのクロックソースの精度を監視する安全装置。
【請求項６】
請求項５に記載の安全装置において、前記診断プログラムは前記第２のプロセッサのクロックソースの精度が許容範囲にあるかどうかを判断する安全装置。
【請求項７】
請求項６に記載の安全装置において、各プロセッサが交互に監視を繰り返す安全装置。
【請求項８】
請求項７に記載の安全装置において、前記プロセッサは各自の安全プログラムのループを完了した後、監視の役割を交替する安全装置。
【請求項９】
第１および第２の処理装置を備える安全装置を操作する方法において、前記処理装置はそれぞれ独立したプロセッサ、メモリおよび単一のクロックソースを含み、
前記第１および第２の各処理装置のメモリは第１および第２の安全プログラムおよび入／出力変数をロード可能であり、前記安全プログラムは外部の被制御装置からの入力を示す入力変数を読み込みかつ外部の被制御装置への出力を示す出力変数を書き込むために繰り返し実行可能であり、
ａ）前記第１および第２のプロセッサを同期させるステップと、
ｂ）前記第１および第２のプロセッサに第１および第２の所定の割り込み時間をロードするステップと、
ｃ）双方の安全プログラムの少なくとも１つのループを実行するステップと、
ｄ）前記第１のプロセッサが感知した前記第１の割り込み時間が経過した後に前記第１のプロセッサに割り込むステップと、
ｅ）前記第２の処理装置に信号を送るステップと、
ｆ）前記第２のプロセッサが測定した前記第１の割り込み時間が、前記第１のプロセッサが測定した前記第１のプロセッサの第１の割り込み時間とほぼ等しいかどうかを判断するステップと、
からなる安全装置を操作する方法。
【請求項１０】
請求項９に記載の方法において、さらに
ｇ）前記第１および第２のプロセッサを再同期させるステップと、
ｈ）前記第１および第２のプロセッサに所定の割り込み時間を再ロードするステップと、
ｉ）双方の安全プログラムの少なくとも１つのループを実行するステップと、
ｊ）前記第２のプロセッサが感知した前記第２の割り込み時間が経過した後に、前記第２のプロセッサに割り込むステップと、
ｋ）前記第１の処理装置に信号を送るステップと、
ｌ）前記第１のプロセッサが測定した前記第２の割り込み時間が、前記第２のプロセッサが測定した前記第２の割り込みに対する時間にほぼ等しいかどうかを判断するステップと、
からなる方法。
【請求項１１】
請求項１０に記載の方法において、さらに
ｍ）安全ループを繰り返し実行しながら各処理装置のクロックソースを監視するステップと、
ｎ）いずれかのクロックソースが不正確であると判断すると安全状態に入るステップと、
からなる方法。
【請求項１２】
第１のクロックソースによって駆動される第１のプロセッサを備える第１の処理装置と、
第１のクロックソースから独立した第２のクロックソースによって駆動される前記第１のプロセッサから独立した第２のプロセッサを備える第２の処理装置と、
前記第１および第２の処理装置で実行される診断と、
からなるＩ／Ｏモジュールにおいて、
前記診断は各クロックソースの精度を認証するＩ／Ｏモジュール。
【請求項１３】
請求項１２に記載のＩ／Ｏモジュールにおいて、前記診断は前記第１のプロセッサに制御側プロセッサとなることを、前記第２のプロセッサに監視側処理装置になることを割り当てるＩ／Ｏモジュール。
【請求項１４】
請求項１３に記載のＩ／Ｏモジュールにおいて、前記プロセッサが同期しているＩ／Ｏモジュール。
【請求項１５】
請求項１４に記載のＩ／Ｏモジュールにおいて、前記制御側プロセッサに割り込みが設定された後、前記監視側プロセッサに割り込みが設定されるＩ／Ｏモジュール。
【請求項１６】
請求項１５に記載のＩ／Ｏモジュールにおいて、前記制御側プロセッサが割り込まれた後、前記制御側プロセッサは前記監視側プロセッサに信号を送るＩ／Ｏモジュール。
【請求項１７】
請求項１６に記載のＩ／Ｏモジュールにおいて、前記監視側プロセッサは、前記制御側プロセッサのクロックソースの精度を検証するＩ／Ｏモジュール。
【請求項１８】
請求項１７に記載のＩ／Ｏモジュールにおいて、前記監視側プロセッサが前記制御側プロセッサのクロックソースの精度が所定の範囲にないと判断すると、前記モジュールが安全状態に入るＩ／Ｏモジュール。
【請求項１９】
請求項１８に記載のＩ／Ｏモジュールにおいて、前記第１および第２のプロセッサが役割を交替し、各安全プログラムの１つのループを再実行するＩ／Ｏモジュール。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
不適用。
【０００２】
連邦支援の研究または開発に関する供述書
不適用。
【０００３】
本発明は、産業プロセスのリアルタイム制御に用いられ、かつ人命と健康の保護を目的とした装置とシステムでの使用に適した産業用「安全制御装置」に関し、特に「安全Ｉ／Ｏモジュール」、即ち安全システムの構成要素に関する。
【背景技術】
【０００４】
「安全制御装置」は産業プロセスの環境で作業する人々の安全性を確保するのに使用される専用コンピュータである。保存された安全制御プログラムの指揮の下、安全制御装置は被管理プロセスの状態を反映する一連の入力を検査し、産業プロセスを制御する一連の出力を変更する。入出力はバイナリー、即ちオンまたはオフでも良いし、またはアナログ、即ち連続する範囲内の値を提供するものであっても良い。入力は産業プロセス用機器に取り付けられた光カーテンまたはセンサから得てもよく、出力は機器上の電力制御リレー、アクチュエータまたはモータに対する信号でもよい。
【０００５】
「安全Ｉ／Ｏモジュール」は分散入出力（「Ｉ／Ｏ」）の形態であり、安全制御装置に接続され監視される。遠隔Ｉ／Ｏを使用する利点の１つに、装置が存在する場所にＩ／Ｏを設置することができる、ということが含まれる。これによりＩ／Ｏおよび装置を維持および故障点検する能力が大幅に向上する。さらに、据え付け時間および配線コストが大幅に削減される。安全Ｉ／Ｏは特にＩ／Ｏ安全反応時間を監視する能力などの付加的な利益をもたらすが、この点については以下にさらに詳しく論じるようにＣＩＰ（Ｃｏｍｍｏｎ  Ｉｎｄｕｓｔｒｉａｌ  Ｐｒｏｔｏｃｏｌ：共通産業プロトコル）安全プロトコルの拡張としても知られている。安全Ｉ／Ｏモジュールが入力または出力を処理している場合、安全Ｉ／Ｏモジュールは、産業上の必要条件を満たさねばならない安全反応時間を提供する。
【０００６】
「安全システム」は、緊急停止ボタン、連動スイッチ、光カーテンおよび他のマシンロックアウトと関連した電子技術と共に安全制御装置を組み込んで、より安全な作業環境を提供するシステムである。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
安全システムの設計で考慮する重要な要素は「安全反応時間」である。安全反応時間は、「安全応答時間」としても知られ、安全システムに対する入力としての安全関連事象からシステムが安全な状態になるまでの時間の量と定義される。言い換えれば、緊急停止ボタンの押下または光カーテンの横切りなど安全性要求の電気的認識から、システム全てのアクチュエータの動作が安全な状態になるまでの時間である。安全な状態はシステム毎に異なり、停止されたモータ、閉止されたバルブまたは電源が断たれた電気部品から多岐にわたる。
【０００８】
安全システムの設計にあたっては、光カーテンのような安全構成要素をできるだけ機械類の近くに配置できる速い安全反応時間を持つことが望ましい。安全システムの安全反応時間は、構成要素（例えば光カーテン）を、機械（例えばプレス機）に対してどれだけ近くに配置できるかに直接影響を与える。適切に設計された安全システムにおいては、オペレータの手が光カーテンを通過して危険な機械部品に接触するまでにかかる時間は、安全制御装置が光カーテンの入力信号を受信、処理して機械類を安全モードに誘導するのに要する時間より大きい。従って、安全反応時間が速ければ速いほど、光カーテンおよび類似の安全装置を機械のそばに備え付けることができる。このことは、設置スペースが限られているとき、または機械の操作に加工対象物の挿入および除去といったオペレータの介入が頻繁に含まれるとき、特に有益となる。
【０００９】
産業用システムの安全反応時間は、構成要素間のデータ伝送速度とともに安全制御装置の処理時間にも依存している。安全反応時間はセンサ反応時間、入力反応時間、安全タスク反応時間、出力反応時間とアクチュエータ反応時間の和である。これらの時間はそれぞれ、Ｉ／Ｏモジュールの種類および特定の安全プログラム内の論理命令などの要因に可変的に依存している。制御装置の安全タスク反応時間とは、制御装置に提示された何らかの入力変更から処理された出力を出力プロデューサが設定するまでの最悪の遅延である。各安全装置は、安全監視タイマを実行して安全タスク反応時間を最大許容時間に制限する。安全タスク反応時間が安全監視タイマを越えると、安全装置はフォールトとなり出力は自動的に安全状態に移行する。
【００１０】
速い安全反応時間を持つことの重要性と併せて、安全システムが反復可能かつ信頼できる安全反応時間を持つことは、それ以上ではないとしても同様に重要である。反復性と信頼性が非常に重要であるのは、安全システムの種々の保護構成要素が安全反応時間を用いて計算した距離に設置されているためである。光カーテンを機械からある一定の計算された「安全な」距離に配置しても、設置後に安全反応時間ドリフトが高くなるだけということは受け入れがたい。仮にそういう事態になった場合、機械が安全な状態に完全に入る前にオペレータが有害な機械と接触する恐れがある。
【００１１】
この点で、安全装置の適切な操作、ひいては正確な安全反応時間を確保するための工業規格が存在する。例えば、国際電気標準会議（ＩＥＣ）は、「電気／電子／プログラム可能電子安全関連システムの機能的安全性」と題する規格６１５０８を作成した。ＩＥＣ６１５０８は安全機能のための安全性能に４段階の安全完全性レベル（ＳＩＬ）を定めている。ＳＩＬの２（ＳＩＬ２）および３（ＳＩＬ３）を有する安全システムは一般に、センサ、最終制御要素および制御システムのプロセッサに冗長性を求めている。
【００１２】
ＳＩＬ３準拠の安全装置は通常、二重の中央演算処理装置を有し、これはプロセッサまたはＣＰＵとしても知られ、独立した安全機能を実行している。安全機能はいくつかの共有の属性を有するが、異なるタスクをも実行する。ＣＰＵは、技術的によく知られているように、標準的監視タイマに頼り、そのクロックソースが一貫して安定したクロックパルスを配信していることを検証する。クロックソースの検証は安全装置が正確な安全反応時間を供給していることを確認するために必要とされる。しかしながら、監視タイマはＣＰＵを駆動する周波数に基づいており、従ってその基になるクロックソースと同じ正確さでしかない。通常、水晶発振器を用いてクロックパルス、即ち周波数を発生して、とりわけＣＰＵを駆動する。これらの発振器は、通常動作では極めて信頼性が高くまた耐久性がある。しかしながら産業環境では、水晶が熱くなったり、押されたり、汚染されたりして、ドリフトして信頼性が低くなることがある。
【００１３】
仮に発振器クロックソースがドリフトして定格速度より遅くなると、これに駆動されるＣＰＵの動作も遅くなる。例えば、通常定格３．０ＧＨｚのＣＰＵが若干遅めのクロックソースを有しているとすれば、２．９９９９９ＧＨｚで動作している可能性がある。システムクロックがクロックパルスを数えて時間を追跡している場合、３．０×１０９パルス後、実際の経過時間は１秒よりも若干長くなるが、システムクロックは正確に１秒経過したと指示するだろう。３．０×１０９個のパルスにちょうど１秒かかったことを確認する独立したクロックソースが無いと、ＣＰＵが通常より遅めに動作しているのか速めに動作しているのか確かめるすべが無い。このことにより起こり得る１つの現実の結果としては、安全反応時間が６．０ミリ秒と設計され宣伝されたが、現実には６．１ミリ秒に近いということがあり得る。独立したクロックソースに制御される監視機能であれば、クロックソースの速度ドリフトを検出でき、安全システムはこれに応じて反応することができる。これらの数字は微小な時間差に見えるが、安全装置および安全システムに対するＳＩＬの要求は極めて厳しい。
【００１４】
従って、デュアルＣＰＵ安全装置の各ＣＰＵは、それ自身の単一クロックソースが規定のパラメータ内で動作していることを検証するための独立したクロックソースを備える必要がある。従来の安全装置は多数の独立クロックソースを備え、従って一次クロックソースの精度を検証する診断を実行する時、これらクロックソースの一つを使用することができる。安全Ｉ／Ｏモジュールのような安全装置を小型化するため、各ＣＰＵに１つだけクロックソースを備えていてもよい。しかしながら、外部に独立したクロックソースが無ければ、装置は各クロックソースの精度を検証するすべが無い。これはより安価な単一クロックソースのＣＰＵにとって問題となり得る。
【００１５】
単一クロックソースのＣＰＵを備えたデュアルＣＰＵ安全装置において、独立してクロックソースを検証できないことに対する１つの可能な解決策は、パートナーのＣＰＵのクロックソースを使用して、一次ＣＰＵのクロックソースの精度をクロスチェックして検証することである。しかしながら、この解決策はパートナー、即ち検証側のＣＰＵのクロックソースが正確であることを保証するすべがない。検証側ＣＰＵのクロックソースがドリフトしている場合、一次ＣＰＵのクロックソースの精度の適切な検証を提供することはできない。換言すれば、クロスチェックが無い場合、一次ＣＰＵのクロックソースをチェックするためだけでなく、パートナーＣＰＵ自身の安全重要機能が定格安全反応時間内に完了したことを検証するためにも、パートナーＣＰＵの不正確なクロックソースが使用されることになる。
【００１６】
現在のところ、独立したクロックソースを用いることなく、二次ＣＰＵ、即ち検証側ＣＰＵのクロックソース自身が正確であることを確認する方法は無い。しかしながら、単一クロックソースのＣＰＵは、もともと独立のクロックソースを持たない。この理由で、２つの単一クロックソースＣＰＵが定期的に役割を交換して互いのクロックソースの精度をチェックするデュアルＣＰＵの安全装置を開発する必要性がある。この問題を解決するための診断により、自身のクロックソースを正確にチェックできない一次および二次ＣＰＵが、相手のクロックソースがそれらによって既にチェックされたものであることが保証された状態で、互いのクロックソースを検証することが可能になる。
【課題を解決するための手段】
【００１７】
本発明は、各ＣＰＵのクロックソースの精度を認証するデュアルＣＰＵ安全装置を提供するものである。診断を通して、第１のＣＰＵは第２のＣＰＵのクロックソースの精度を検証し、次いで第２のＣＰＵが第１のＣＰＵのクロックソースを検証する。いずれかのＣＰＵに障害のあるクロックソースがあると判断されると、安全装置はフォールトとなり被制御プロセスは安全状態に入る。
【００１８】
好適な実施形態において、安全装置は、安全重要機能の第１の安全ループまたはルーチンを実行する第１のクロックソースによって駆動される第１のプロセッサ、即ちＣＰＵを備える第１の処理装置と、安全重要機能の第２の安全ループを実行する第２のクロックソースに駆動される第２のプロセッサを備える第２の独立した処理装置と、第１および第２のプロセッサ間の通信リンクと、同期ルーチンと、診断装置とを含む。同期ルーチンは、第１および第２のプロセッサによって実行され、それぞれの安全ループサイクルの開始を同期させる。診断は第１および第２のプロセッサ双方が実行し、一方のプロセッサが自身の安全タスクの完了を検証する一方、他方のプロセッサが第１のプロセッサのクロックソースの精度を監視する。診断の最初の部分で、第１のプロセッサは安全反応時間内に安全ループの安全重要機能の全てを完了したことを検証し、第２のプロセッサは第１のプロセッサのクロックソースを検証する。安全反応時間が経過した後、即ち第１の処理装置のシステムクロックがタイマ比較レジスタにロードした割り込み値に達していると判断されたとき、第１のプロセッサはその安全重要機能の全てが完了しているかどうかをチェックする。完了していない場合、第１のプロセッサはフォールトとなる。完了していると、第１のプロセッサはランデブー信号を第２のプロセッサに送り、次いで第２のプロセッサは、第１のプロセッサが自身のクロックソースを用いて判断した安全反応時間が設定範囲内にあるかどうかを判断する。このチェックは、第１のプロセッサのクロックソースがクロックパルスを確実に供給しているかどうかを検証するものである。もし確実に供給していない場合、第２のプロセッサはフォールトとなり、安全状態に入る。第２のプロセッサがタイムアウトする前にランデブー信号を受信していない場合、第２のプロセッサもフォールトとなる。
【００１９】
経過時間が範囲内であれば、第１および第２のプロセッサは役割を交換し、第１のプロセッサが第２のプロセッサのクロックソースの精度を監視する。第２の安全ループの１サイクル後、即ち第２のプロセッサのクロックソースにより計算した安全反応時間が経過した後、第２のプロセッサは自身の安全重要機能が完了したかどうかを検証する。完了していない場合、第２のプロセッサはフォールトになる。もし完了している場合、第２のプロセッサはランデブー信号を第１のプロセッサに送り、ついで第１のプロセッサは第２のプロセッサが自身のクロックソースを用いて判断した安全反応時間が設定範囲内にあるかを判断する。２つのプロセッサは、診断が実行されている間、役割交換を続ける。
【発明を実施するための最良の形態】
【００２０】
図１を参照して、産業用制御システム１０を説明する。産業用制御システム１０は以下にさらに詳細に記載するプログラム可能な入／出力（Ｉ／Ｏ）回路を利用する。なお、産業用制御システム１０は、本発明を利用できる産業用制御システムのほんの一例に過ぎず、他のシステムも可能である。
【００２１】
産業用制御システム１０は、複数の入力装置１６の入力状態に基づき複数の出力装置１４の出力状態を制御するプログラム可能な制御システム１２を含む。そのために、プログラム可能な制御システム１２は、出力装置１４を制御する方法を定義する保存された制御プログラムを実行するマイクロプロセッサベースのプロセッサモジュール１７を備える。
【００２２】
プロセッサモジュール１７は、Ｉ／Ｏモジュール１８を介してＩ／Ｏ装置１４および１６と通信する。特にプロセッサモジュール１７は、出力装置１４の所望の出力状態のデジタル表現をＩ／Ｏモジュール１８に送信する。Ｉ／Ｏモジュール１８は、出力装置１４の所望の出力状態のデジタル表現に基づき、所望の方法で出力装置１４を駆動可能な出力制御信号を生成する。同様にプロセッサモジュール１７は、Ｉ／Ｏモジュール１８から入力装置１６の入力状態のデジタル表現を受信する。Ｉ／Ｏモジュール１８は、入力装置１６から受信した入力状態信号に基づき入力装置１６の入力状態のデジタル表現を生成する。
【００２３】
現在の一実施例において、制御安全プロセス４０は、光カーテンの冗長信号４４をＩ／Ｏモジュール１８に送る光カーテン４２と、Ｉ／Ｏモジュール１８から送信される停止信号４８を介して停止し得るプレス機４６とを含む。安全プロセス４０は、光カーテン４２の平面を何かが横切るとプレス機４６を停止するように設計されている。ある物体が光カーテンの平面を横切った後にプレス機４６を停止するＩ／Ｏモジュール１８の反応速度、即ち安全反応時間は、光カーテン４２とプレス機４６間の所要の距離間隔を決定する計算に織り込まれる。
【００２４】
図２を参照すると、Ｉ／Ｏモジュール１８は、技術的に公知のシリアル通信プロトコルを介してパートナー処理装置５０ｂと通信する一次処理装置５０ａを含む。一次処理装置５０ａは、第１のまたは制御側プロセッサ、もしくはＣＰＵ５２ａおよびシステムクロック５３ａを含み、両者は共に単一のクロックソース５４ａによって駆動される。好適な実施形態のシステムクロック５３ａは、１マイクロ秒間隔でインクリメントされる。ＣＰＵ５２ａは、安全重要機能６１ａ、診断コード６２ａおよび安全外機能６３ａからなる実行ファイル６０ａの実行またはファームウェアのイメージ５８ａを保持した内部ＲＯＭ（読み出し専用メモリ）５６ａを備える。ＣＰＵ５２ａは、さらにフラグ６４ａと比較レジスタ６６ａで実行されるタイマ割り込み機能とを含み、比較レジスタ６６ａには設定時間値がロードされる。システムクロック５３ａが比較レジスタ６６ａに保存された値に達すると、ＣＰＵ５２ａは実行イメージ５８ａの実行を中断する。パートナー処理装置５０ｂは、一次処理装置とは独立した形でほぼ同様の構成要素を有する。即ち、プロセッサ５２ｂ、単一のクロックソース５４ｂに駆動されるシステムクロック５３ｂ、ＲＯＭ５６ｂ、ならびに、安全重要機能６１ｂ、診断コード６２ｂおよび安全外機能６３ｂからなる若干異なる実行ファイル６０ｂのファームウェアイメージ５８ｂ、フラグ６４ｂ、同じタイマ割り込み機能を持つ比較レジスタ６６ｂを有する。
【００２５】
図３はプロセスの視覚表示であり、Ｉ／Ｏモジュール１８は、「安全ループ」初期化プロセスを示す開始ブロック１０４、１０８から始まる安全タイマクロスチェック診断１００を実施する。安全ループ初期化プロセスは、ＣＰＵ５２ａ、５２ｂの双方が安全ループに入る前にロードされた割り込みを有することを保証する機能と、２つのＣＰＵ５２ａ、５２ｂを同期させて安全ループを同時に開始する機能の２つの機能を果たす。この同期はランデブーメッセージ１０６および２つの処理装置５０ａ、５０ｂ間の肯定応答メッセージ１１０で示される。
【００２６】
先に述べたとおり、タイマ比較レジスタ６６ａ、６６ｂは、ＣＰＵ５２ａ、５２ｂに割り込みを生成するために使用される。好適な一実施形態において、第１の割り込みはＣＰＵ５２ａにスケジュールされ、ＣＰＵ５２ａは、スケジュールされた先の割り込みが発生してから６ミリ秒を示す値を比較レジスタ６６ａにロードすることにより、制御側ＣＰＵとしての役割を果たす。６ミリ秒の時間は、Ｉ／Ｏモジュール１８の定格安全反応時間を表わす。割り込みはＣＰＵ５２ｂにもスケジュールされ、ＣＰＵ５２ｂは、ＣＰＵ５２ａにロードされた６ミリ秒より若干先の時間に発生する監視側ＣＰＵとしての役割を果たす。余分の時間、即ち０．１ミリ秒はクッションまたは許容範囲として機能し、割り込まれているＣＰＵ５２ａと処理装置５０ｂにランデブーメッセージを送信する処理装置５０ａとの間の若干の遅延のため必要であるだけでなく、処理装置５０ａ、５０ｂ間の若干の時間差を許容するのにも必要である。
【００２７】
割り込みがスケジュールされた後、即ちタイマ比較レジスタ６６ａ、６６ｂがロードされた後、処理装置５０ａ、５０ｂは、第１の安全ループ１２７の実行を基本的に開始している。先に論じたように、第１の安全ループ１２７では、処理装置５０ａは診断１００を実行しつつ制御装置としての役割を果たし、一方パートナー処理装置５０ｂは監視装置としての役割を果たす。ブロック１１２および１１４に示すように、各処理装置５０ａ、５０ｂ内のＣＰＵ５２ａ、５２ｂは、安全重要機能６１ａ、６１ｂおよび安全外機能６３ａ、６３ｂを含む実行ファイル６０ａ、６０ｂを処理する。この実施例においては通常４ミリ秒経過した後に発生する安全機能６１ａを完了した後、内部フラグ６４ａがセットされる。このフラグは、安全重要機能６１ａが制御側ＣＰＵ５２ａによって定格安全反応時間内に完了されたことを示す。その後ＣＰＵ５２ａは、ブロック１１６に示すように、安全外機能６３ａを実行しながらタイマ割り込みを待つ。一方ＣＰＵ５２ｂは、安全重要機能６１ｂの実行を終了し、フラグ６４ｂをセットして、ブロック１２２に示す安全外機能６３ｂの実行を開始しながら処理装置５０ａからのランデブーメッセージ１２０を待つかまたはタイマ割り込みを待つ。
【００２８】
システムクロック５３ａがタイマ比較レジスタ６６ａにロードされたスケジュールされた割り込み時間と一致するとき、即ちクロックソース５４ａからの入力に基づき６ミリ秒経過した後、ＣＰＵ５２ａは実行イメージ５８ａの処理を中断する。あるいは、ＣＰＵ５２ａは、安全反応時間が経過した後で中断するためにタイマ比較レジスタ６６ａをロードする代わりに、繰り返しタイマまたはカウンタにポーリングして時間が経過したことを判定しても良い。しかしながら、これはＣＰＵ５２ａが予期せぬ遅延に遭遇する場合から保護する監視機能を全く持たないので好ましい方法ではない。
【００２９】
割り込み発生後直ちに、ＣＰＵ５２ａは次の６ミリ秒＋クッションが経過した後に新しく発生する割り込みをスケジュールする。クッションが含まれるのは、次の安全ループ１２８の間ＣＰＵ５２ａが監視側装置になるためである。割り込みは、次の所望の割り込み時間を示す値を比較レジスタ６６ａにロードすることによりスケジュールされるが、処理システム５０ａがいかなる予期せぬ遅延からも常に保護されることを保証するために先の割り込みの直後にスケジュールされる。
【００３０】
次にＣＰＵ５２ａはフラグ６４ａがセットされているかどうかをチェックする。フラグ６４ａがセットされていない場合、即ち全ての安全重要機能が完了しているわけではない場合、ハードないし重大フォールトが発生する。処理装置５０ａは安全状態に入り、次いでリセットされる。フラグ６４ａがセットされている場合、ランデブー信号１２０がブロック１１８から処理装置５０ｂへ送信され、比較レジスタ６６ａにロードされた時間値、即ち６ミリ秒の安全反応時間が処理装置５０ａが感知したとおりに経過したことが示される。
【００３１】
ブロック１２２において、処理装置５０ｂはランデブー信号１２０を受信し肯定応答信号１２４を即座に返す。ＣＰＵ５２ｂがランデブー信号１２０を受信する前に割り込まれるような予期せぬ遅延または不正確なクロックが発生した場合には、重大フォールトが発生し、処理装置５０ｂは安全状態に入りリセットされる。そうでない場合には、ランデブーメッセージ１２０を受信した後、ＣＰＵ５２ｂは全ての安全機能６１ｂが完了したことを示すフラグ６４ｂがセットされているかどうかをチェックする。フラグ６４ｂがセットされていない場合、重大フォールトも発生する。フラグ６４ｂがセットされている場合、処理装置５０ｂは、ＣＰＵ５２ａがクロックソース５４ａを用いて判断した安全反応時間の経過が許容範囲またはクッション内にあるかどうかを判断する（決定ブロック１３０）。本質的に、処理装置５０ｂは、処理装置５０ａが６ミリ秒と判断したものと処理装置５０ｂがクロックソース５４ｂを用いて６ミリ秒（＋クッション）と判断したものとを比較することにより、クロックソース５４ａの精度をチェックしている。
【００３２】
処理装置５０ａの安全反応時間が許容範囲にない場合、ブロック１３２に示すように処理装置５０ｂはフォールトとなる。処理装置５０ａの安全反応時間が許容範囲にあれば、処理装置５０ｂはブロック１３４に移行し次の割り込みをスケジュールする。ＣＰＵ５２ｂは次の安全ループ１２８で制御側ＣＰＵとして機能するので、タイマ比較レジスタ６６ｂにロードされた値は現在の時刻から６ミリ秒の値である。
【００３３】
この時点では、一次処理装置５０ａとパートナー処理装置５０ｂの役割は逆転しており、一次処理装置５０ａが監視側処理装置となる一方、パートナー処理装置５０ｂが制御側処理装置になる。このシンメトリー、即ち役割交換は有用である。なぜなら診断１００におけるこの時点では、一次処理装置５０ａのクロックソース５４ａのみが正確であると検証されているからである。役割を交換することにより、診断１００は、双方のＣＰＵ５２ａ、５２ｂが正確に時間を測定する能力だけでなく割り込んでフォールトを発生する能力をも備えることを保証する。
【００３４】
ブロック１２６および１３６に示すように、各処理装置５０ａ、５０ｂのＣＰＵ５２ａ、５２ｂは、安全重要機能６１ａ、６１ｂを含む実効ファイル６０ａ、６０ｂを再び処理する。安全機能６１ａ、６１ｂの完了後、内部フラグ６４ａ、６４ｂがセットされる。その後、ＣＰＵ５２ｂはブロック１３８に示す自身のタイマ割り込みを待ち、ＣＰＵ５２ａは処理装置５０ｂからのランデブーメッセージまたは自身のタイマ割り込みのいずれかを待つ。
【００３５】
システムクロック５３ｂがタイマ比較レジスタ６６ｂにロードされたスケジュールされた割り込み時間値に一致するとき、即ちクロックソース５４ｂからの入力に基づき６ミリ秒経過した後、ＣＰＵ５２ｂは処理を中断する。中断後、ＣＰＵ５２ｂは直ちに新しい割り込み（クッション付き）をスケジュールし、先に論じたように監視の準備をする。次にＣＰＵ５２ａはフラグ６４ａがセットされているかどうかをチェックする。フラグ６４ｂがセットされていない場合、処理装置５０ｂに重大フォールトが発生し、処理装置５０ｂは安全状態に入りリセットされる。フラグ６４ｂがセットされている場合（ブロック１４０）、ランデブー信号が処理装置５０ａに送信され、比較レジスタ６６ｂにロードされた時間、即ち処理装置５０ｂがクロックソース５４ｂを用いて判断した安全反応時間６ミリ秒が経過したことを示す。一方、処理装置５０ａは信号１４２を受信し（ブロック１４４）、即座に肯定応答信号１４６を返信する。処理装置５０ｂは新しい安全ループに入り、安全機能６１ａの処理を開始する（リターンパス１４８から安全ループ１２７として示す）。
【００３６】
万一、ＣＰＵ５２ａがランデブー信号１４２を受信する前に割り込まれた場合（予期せぬ遅延または不正確なクロックの結果である）、重大フォールトが発生し、処理装置５０ａは安全状態に入り次いでリセットされる。ランデブー信号１４２の受信した後、ＣＰＵ５２ａはフラグ６４ａがセットされているかどうかをチェックする。フラグ６４ａがセットされていない場合、重大フォールトもまた発生する。フラグ６４ａがセットされている場合、処理装置５０ａ（決定ブロック１５０）は、ＣＰＵ５２ｂがクロックソース５４ｂを用いて計算した安全反応時間の経過が許容範囲またはクッション内にあるかどうかを判断する。
【００３７】
クロックソース５４ａを用いて判断した安全反応時間が許容範囲にない場合、処理装置５０ａはブロック１５２に示すようにフォールトとなる。安全反応時間が許容範囲にある場合、処理装置５０ａはブロック１５４に移行し次の割り込みをスケジュールする。５２ａは再び制御側ＣＰＵとなるので、タイマ比較レジスタ６６ａにロードされた値は、ブロック１１６において最後の割り込みがＣＰＵ５２ａによってスケジュールされた時間から６ミリ秒となる（これにより、安全ループ１２７と１２８を組み合わせた時間は、確実にちょうど２安全反応時間、即ち１２ミリ秒になる）。次いで処理装置５０ａは新しい安全ループに入り、安全機能６１ａの処理を開始する（リターンパス１５６から安全ループ１２７として示す）。
【００３８】
安全タイマクロスチェック診断１００は所定周波数で繰り返し実行することができ、その間、処理装置５０ａ、５０ｂのＣＰＵ５２ａ、５２ｂは安全ループ内で実効ファイル６０ａ、６０ｂの実施を継続する。本発明はここに含まれる実施形態および説明図に限定されるものではなく、それら実施形態の変形態様を含み、特許請求の範囲に入る実施形態の部分および異なる実施形態の要素の組み合わせを含むことを特に意図するものである。
【図面の簡単な説明】
【００３９】
【図１】制御および認証側ＣＰＵを備え本発明と共に使用するのに適したデュアルＣＰＵ安全装置を含む産業用制御システムである。
【図２】図１の安全装置における制御および認証側プロセッサの電気的模式図である。
【図３】図１のデュアルＣＰＵ安全装置において実行される安全タイマクロスチェック診断のフローチャートである。
【符号の説明】
【００４０】
１０    産業用制御システム
１２    制御システム
１４    出力装置
１６    入力装置
１７    プロセッサモジュール
１８    Ｉ／Ｏモジュール
【図１】
2008117390.tif 000003
【図２】
2008117390.tif 000004
【図３】
2008117390.tif 000005
【外国語明細書】
2008117390.tif 000006
2008117390.tif 000007
2008117390.tif 000008
2008117390.tif 000009
2008117390.tif 000010
2008117390.tif 000011
2008117390.tif 000012
2008117390.tif 000013
2008117390.tif 000014
2008117390.tif 000015
2008117390.tif 000016
2008117390.tif 000017
2008117390.tif 000018
2008117390.tif 000019
2008117390.tif 000020
2008117390.tif 000021
2008117390.tif 000022
2008117390.tif 000023
2008117390.tif 000024
2008117390.tif 000025