その他のコンポーネントの中でも、ハードウェア上で実行されるソフトウェアおよび/またはファームウェアを含む例示的な方法および装置について以下に記載されるが、これらの例は単に例示的なものに過ぎず、限定的なものとしてみなすべきではないことを留意されたい。たとえば、ハードウェア、ソフトウェアおよびファームウェアコンポーネントのうちいずれかまたは全てを、ハードウェアでのみ、ソフトウェアでのみ、あるいはハードウェアおよびソフトウェアの任意の組合せで実施し得ることが企図される。したがって、例示的な方法および装置について以下に記載されるが、提供された例は、このような方法および装置を実施するための唯一の方法ではないことが、当業者には容易に理解できよう。たとえば、プロセス制御システムを検査することに関連して、例示的な方法および装置が記載されるが、例示的な方法および装置は、より一般的に応用可能であり、これらの方法および装置を、任意の自動化システム、バッチ処理システム、製造システム、工業制御システム、安全計装システムなどを検査および/または検証するために実施することができる。
典型的には、プロセス制御システムの設計者は、制御ストラテジ、ルーチン、アルゴリズムおよび/またはアプリケーションを実装して、プロセス制御システムを動作させる。次いで、プロセス制御検査の設計者は、その制御ストラテジ、アルゴリズム、ルーチンおよび/またはアプリケーションに少なくとも部分的に基づいて、プロセス制御システムを検査するための検査手順を生成することができる。したがって、検査設計者は、検査手順を生成し、システム設計者は、制御ルーチンを実施し、その結果、プロセス制御システムは、1つまたは複数の対応する検査手順から独立するシステムおよび/またはルーチンを含むことが多い。この独立性の結果、プロセス制御システムおよび/またはルーチンに対して、対応する検査手順に反映することができない修正がもたらされ、これにより、検査手順によって適切に検証されないまたは検証できない修正がもたらされる。しかしながら、プロセス制御システムは、一般的には、設計されたようにまたは特定されるように、ルーチンが実行していることを検証するために、周期的な検査を必要とするルーチンを実施する。したがって、ストラテジ、ルーチンおよび/またはアプリケーションのその他の検証された部分または検証可能な部分よりも高い確率で、未検証の修正が問題および/または誤動作を経験し得る可能性が存在する。
さらに、プロセス制御ルーチンおよび対応する検査手順は、互いに独立していることが多いので、一般には、検査手順は、プロセス制御ルーチンが保留されている間に、プロセス制御オペレータによって実行される。上述のように、プロセス制御システムおよび/またはルーチンを検証するために、オペレータは、プロセス制御システム内のいくつかのフィールドデバイスに手動で入力を提供し、プロセス制御システム内のその他の対応するフィールドデバイスの出力を記録することができる。しかしながら、このマニュアル検証プロセスは、オペレータが同時に1つの検査しか実行できない(すなわち、順次)ので、時間がかかる場合がある。さらに、検証プロセスは、可能でないまたは実施可能でないプロセス制御システムのシャットダウンを必要とすることがあり、および/または、その結果、生産性が損なわれる場合がある。
さらに、任意のプロセス制御オペレータは、1つまたは複数のプロセス制御ルーチンを検証しようと試みることができる。しかしながら、いくつかの場合では、そのオペレータは、検証を行うための適切な訓練を受けることができない。適切な訓練を受けていないオペレータは、検査を不適切に実行する場合があり、および/または、検査の結果を不正確に記録し、その結果、ルーチンおよび/またはプロセス制御フィールドデバイスの検証が済んでいない場合がある。時間が経過するにつれて、未検証のルーチンまたはフィールドデバイスは、誤動作を訂正するために、製品品質やプロセス品質の低下および/またはプロセスの停止につながる予防可能な誤動作を経験することがある。
本明細書に記載される例示的な方法および装置は、プロセス制御ルーチンおよび/またはプロセス制御システムのオペレーションを、対応する検査手順と組み合わせて、そのルーチンおよび/またはプロセス制御システムの検査の管理を最適化する。より具体的には、本明細書に記載される例示的な方法および装置は、プロセス制御ストラテジ、ルーチン、アルゴリズムおよび/またはアプリケーションから、またはそれらに基づいて、検査手順(たとえば、検査アプリケーション)を発生させることができる。いくつかの例では、検査タイプに基づいて、検査データベースのその他の検査に、検査アプリケーション内の検査を組み合わせる、および/または、追加することができる。
次いで、例示的な方法および装置は、ストラテジ、ルーチン、アルゴリズムおよび/またはアプリケーションを監視して、検査アプリケーション内の1つまたは複数の検査と実質的に同様のイベントが起こるかどうかを判定することができる。1つまたは複数の検査と実質的に同様のイベントが起こる場合、例示的な方法および装置は、そのイベントが適切に軽減されたかどうかを判定する。そのイベントがプロセス制御システムによって適切に軽減された場合、次いで、例示的な方法および装置は、1つまたは複数の検査が検証されたことを示すことによって、検査アプリケーションを更新することができる。検査がプロセス制御システムのルーチンまたは通常のオペレーションの最中に効率的に検証済みなので、検査アプリケーションを自動的に更新することによって、例示的な方法および装置は、どの検査が検証する必要が無いのかを文書化することによって、検査時間を最適化する。
例示的な方法および装置は、イベント(たとえば、プロセス制御ルーチンの一部分の実行)と関連付けられるパラメータ、機能および/またはフィールドデバイスを、1つまたは複数の検査内で特定されるパラメータ、機能および/またはフィールドデバイスと比較することによって、そのイベントが1つまたは複数の検査と実質的に同様であることを判定することができる。たとえば、プロセス制御ルーチンは、センサからのパラメータを含むことができ、このパラメータは処理機能の一部であるセンサによって測定された入力に対応する。検査アプリケーションは、センサの入力範囲全体(たとえば、0.5バールから35バール)を検証する検査を含むことができる。センサの入力範囲を分割することによって、この検査を、センサに対する低い入力範囲(たとえば、0.5バールから10バール)に関する検査と、センサに対する高い入力範囲(たとえば、10バールから35バール)に関する検査とに分けることができる。プロセス制御ルーチンの実行中に、センサは、センサの低い範囲内の入力(たとえば、2バール)を受信することができる。このような入力を受信すると、例示的な方法および装置は、このイベントを、低い範囲のセンサ検査とマッチングすることができる。次いで、例示的な方法および装置が、センサの低い範囲に基づいて、プロセス制御ルーチン内のイベント(たとえば、センサによって測定された入力の増加)の適切な軽減があったと判定する場合、低い範囲のセンサ検査を更新して、検査の完了を反映させることができる。また、例示的な方法および装置は、低い範囲のセンサ検査に関する次回検証日を示すことができ、この次回検証日は、検査のタイプに基づく時間増分(たとえば、完了日から6ヶ月)に基づくことができる。
プロセス制御イベント、プロセス制御問題および/またはプロセス制御ルーチンの一部分の実行の適切な軽減は、イベントおよび/または問題を修正するための特定される応答を含むことができる。たとえば、対応するセンサを用いる上述のルーチンは、低い範囲のセンサ入力の関数である量だけポンプスピードを上昇させるための指示を含むことができる。センサが、センサの低い範囲に対応する入力を受信すると、例示的な方法および装置は、ルーチンが、検知された入力の関数である量だけポンプスピードを上昇させるかどうかを判定することができる。ルーチンがポンプスピードを適切に上昇させたと例示的な方法および装置が判定する場合、本方法および装置は、イベントが適切に軽減されたことを示し、低い範囲のセンサ検査の検証を記録することができる。
さらに、例示的な方法および装置が検査アプリケーションを対応するプロセス制御ルーチンと組み合わせるので、修正の実施時に、ルーチンに対して行われた変更および修正を検査アプリケーション内に反映させることができる。それに加えて、例示的な方法および装置は、検査アプリケーションを監視して、1つまたは複数の検査が、特定の日付によって検証するために特定されるかどうかを判定することができる。いくつかの例において、検査アプリケーション内の1つまたは複数の検査が、ある特定の日付によって検証されなければならない場合、例示的な方法および装置は、検査計画を発生させて、検証プロセスを通じてオペレータをガイドすることができる。例示的な方法および装置は、検証手順に関連する任意のプロセス制御を受信し、検査計画に関する検査証明の一部としてこのデータを使用することができる。
それに加えて、例示的な方法および装置は、オペレータが所与の検査計画を実行するために適切に訓練されると判定することができる。たとえば、オペレータは、検査計画を実行するためにプロセス制御システムにログインすることができる。例示的な方法および装置は、データベースを訓練記録と相互参照するためにオペレータによって提供された識別値を使用して、オペレータが訓練計画を実行できる(たとえば、訓練計画を実行するための許可を有する、あるいは、資格を有する)かどうかを判定することができる。オペレータが適切な資格をもたない場合、例示的な方法および装置は、オペレータに、オペレータが検査計画を実行する前に完了することができる訓練に対する一覧および/または基準を提供することができる。したがって、例示的な方法および装置を、オペレータ訓練を構築するために、ならびに/あるいは、予め必要な訓練クラスおよび/またはエクササイズに基づく訓練レベルを構成するために、プロセス制御環境で使用することができる。さらに、検査計画を完了するオペレータの身分証明の記録をとることによって、例示的な方法および装置は、検査計画を実行したオペレータの身分証明に基づいて、任意の将来のイベントおよび/または問題を問題解決するために使用することができる文書化システムを提供することができる。
図1は、例示的なプロセス制御システム100を示すブロック図であり、例示的な検査アプリケーションマネージャ101を含む。検査アプリケーションマネージャ101は、検査手順をプロセス制御ルーチンに関連付ける。図1の例において、検査アプリケーションマネージャ101は、プロセス制御ルーチン102から検査アプリケーション103を発生させる。プロセス制御ルーチン102は、ワークステーション105(たとえば、アプリケーションステーション、オペレータステーションなど)内に表示することができるビジュアルオブジェクトダイアグラム104を含む。ワークステーション105は、ローカルエリアネットワーク(LAN)108(たとえば、アプリケーション制御ネットワーク(ACN))を介して、プロセス制御コントローラ106に通信可能に結合される。この例では、検査アプリケーションマネージャ101およびプロセス制御ルーチン102は、ワークステーション105内で実施される。それに代わってまたはそれに加えて、検査アプリケーションマネージャ101および/またはプロセス制御ルーチン102を、コントローラ106内で実施して、プロセス制御ルーチンまたはアプリケーションを管理し、検査し、および/または、動作させることができる。
ワークステーション105は、1つまたは複数の情報技術アプリケーション、ユーザ対話型アプリケーションおよび/または通信アプリケーションと関連付けられるオペレーションを実行するように構成することができる。たとえば、ワークステーション105は、プロセス制御に関連するアプリケーションと関連付けられるオペレーションを実行するように、また、ワークステーション105およびコントローラ106が、任意の所望の通信媒体(たとえば、無線、有線など)およびプロトコル(たとえば、ハイパーテキスト転送プロトコル(HTTP)、シンプルオブジェクトアクセスプロトコル(SOAP)など)を使用して、その他のデバイスまたはシステムと通信できるようにする通信アプリケーションと関連付けられるオペレーションを実行するように構成することができる。また、ワークステーション105は、グラフィカルインターフェースを介して、またはグラフィカルインターフェース内で、プロセス制御ルーチン102のパラメータおよび/または機能からプロセス制御プロセスを生成、管理、検査および/または修正するように構成することができる。ワークステーション105は、任意の好適なコンピュータシステムまたはプロセッシングシステム(たとえば、図10のプロセッサシステムP10)を使用して実施することができる。たとえば、シングルプロセッサパーソナルコンピュータ、シングルプロセッサワークステーションまたはマルチプロセッサワークステーションなどを使用して、ワークステーション105を実装することができる。
ワークステーション105をコントローラ106に結合するLAN108は、任意の所望の通信媒体およびプロトコルを使用して実施することができる。たとえば、LAN108は、有線または無線イーサネット(登録商標)通信スキームに基づいていてもよい。しかしながら、任意のその他の好適な通信媒体およびプロトコルを使用することができる。さらに、LANが1つだけ図示されているが、ワークステーション105内の2つ以上のLANおよび適当な通信ハードウェアを使用して、ワークステーション105とそれに対応する同様のワークステーション(図示せず)との間に冗長な通信経路を提供してもよい。
図1の例示的なプロセス制御システム100において、例示的なワークステーション105は、プロセス制御オペレータが、コントローラ106によって処理されたプロセス制御データを閲覧、修正および/または検査できるようにする。コントローラ106は、システムエンジニアまたはその他のシステム担当者によってワークステーション105または任意のその他のワークステーションを使用して発生され、かつ、コントローラ106にダウンロードされインスタンス化された1つまたは複数のプロセス制御ルーチンを実行することができる。コントローラ106は、たとえば、Emerson Process Managementの一企業である、Fisher−Rosemount Systems, Inc.社により販売されるDeltaV(商標)コントローラとすることができる。しかしながら、任意のその他のコントローラを代わりに使用してもよい。さらに、図1には、コントローラが1つだけ示されているが、任意の所望のタイプのコントローラを追加して、または複数のタイプのコントローラを組み合わせて、LAN108に結合することができる。
コントローラ106は、デジタルデータバス114、および出入力(I/O)デバイス116を介して、フィールドデバイス110a〜b、およびポンプ112を含む、複数のプロセス制御デバイスに結合される。プロセス制御ルーチンの実行中に、コントローラ106は、フィールドデバイス110a〜bおよびポンプ112と、情報(たとえば、コマンド、構成情報、測定情報、ステータス情報など)を交換することができる。この情報は、プロセス制御ルーチン機能内のパラメータを含むことができる。たとえば、コントローラ106は、プロセス制御ルーチンを備えることができ、このプロセス制御ルーチンは、コントローラ106によって実行されると、コントローラ106にコマンドをフィールドデバイス110a〜bおよびポンプ112へ送信させ、これにより、フィールドデバイス110a〜bおよびポンプ112に特定されたオペレーション(たとえば、測定の実行、バルブの開閉、有効化/無効化など)を実行させ、ならびに/あるいは、デジタルデータバス114を介して情報(たとえば、測定データ)をコントローラ106へ通信させる。次いで、ワークステーション105は、コントローラ106を介してその情報にアクセスすることができる。
図1の図示された例では、プロセス制御ルーチン102は、ワークステーション105において、ポンプ112を制御、および/またはポンプ112とインターフェースするために、プロパティおよび構成情報を定義するように構成される。ポンプ112は、プロセス制御ルーチン102を介して制御することができ、このプロセス制御ルーチン102は、コントローラ106内で実施、および/またはコントローラ106により実行することができる。それに加えて、プロセス制御ルーチン102は、フィールドデバイス110a〜bを制御、および/またはフィールドデバイス110a〜bとインターフェースするために、プロパティおよび制御情報を定義する。フィールドデバイス110a〜bは、任意の1つまたは複数のタイプのセンサまたは測定デバイス、アクチュエータなどを含む任意のタイプの1つまたは複数のプロセス制御デバイスとすることができる。それに加えて、フィールドデバイス110a〜bは、たとえば、タンク、バット、ミキサ、ボイラ、ヒーターなどのようなプロセス制御設備を含むことができる。
図1の図示された例では、フィールドデバイス110a〜bおよび112は、フィールドバスに適合するデバイスであり、よく知られるFoundation(商標)Fieldbusプロトコルを使用してデジタルデータバス114を介して通信するように構成される。Foundation(商標)Fieldbusプロトコルによると、デジタルデータバス114は、測定デバイスおよび制御デバイス(たとえば、デバイス110a〜bおよび112)に通信可能に結合されるように構成されたデジタルで双方向のマルチドロップ通信バスである。図示された例では、I/Oデバイス116は、コントローラ106ならびにデバイス110a〜bおよび112を、Fieldbusプロトコルまたはその他のタイプの通信プロトコル(たとえば、Profibusプロトコル、HARTプロトコルなど)を使用することができるその他のフィールドデバイスに通信可能に結合できるようにするI/Oサブシステムインターフェースを用いて実施される。たとえば、I/Oデバイス116は、Fieldbusプロトコルと1つまたは複数のその他の通信プロトコルとの間で変換を行う1つまたは複数のゲートウェイを含むことができる。(I/Oデバイス116と同様または同一の)追加のI/Oデバイスを、コントローラ106に結合して、フィールドデバイスの追加のグループが、コントローラ106と通信できるようにすることができる。
プロセス制御ルーチン102は、I/Oデバイス116を介して、フィールドデバイス110a〜bおよび112を管理および/または動作させるための命令のセットを含むことができる。プロセス制御ルーチン102は、プロセス監視アプリケーション、警告管理アプリケーション、プロセストレンディングおよび/または履歴アプリケーション、バッチ処理および/またはキャンペーン管理アプリケーション、統計アプリケーション、ストリーミングビデオアプリケーション、高度制御アプリケーションなどを含むことができる。コントローラ106は、プロセス制御ルーチンを制御および/または管理するためのプロセス制御ルーチン102を含むことができる。ワークステーション105のオペレータは、プロセス制御ルーチン102および/またはプロセス制御ルーチン102と関連付けられるデータを修正および/または閲覧することができる。たとえば、ワークステーション105を使用するオペレータは、ビジュアルオブジェクトダイアグラム104を介して、プロセス制御ルーチン102および/またはデータを修正し、かつ/あるいは、プロセス制御ルーチン102および/またはデータにアクセスすることができる。
ビジュアルオブジェクトダイアグラム104は、プロセス制御ルーチン102(たとえば、プロセス制御ストラテジ、論理、アルゴリズム、アプリケーションなど)を表し、かつ/またはそれらを備える相互接続された複数の機能ブロックを含む。1つまたは複数のプロセス制御機能および/またはアプリケーションを実施するように、各機能ブロックを定義することができる。たとえば、機能ブロックは、プロセス制御システムから入力を受信し、プロセス制御システムに対する出力を発生させ、プロセス制御入力に基づくパラメータ値および/またはその他のパラメータ値を計算し、入力および/またはパラメータを監視し、入力および/またはパラメータ値を保存し、かつ/あるいは、制御アクションを計算することができる。
ビジュアルオブジェクトダイアグラム104は、プロセス制御ルーチン102のグラフィカル表現である。機能ブロックと関連付けられる機能は、ワークステーション105および/またはコントローラ106によって、プロセス制御ルーチン102の一部として実施することができる。したがって、ユーザが、プロセス制御データにアクセスし、ならびに/あるいは、1つまたは複数の機能ブロックを修正するときに、ワークステーション105および/またはコントローラ106は、ビジュアルオブジェクトダイアグラム104とプロセス制御ルーチン102との間の修正を調整する。その他の実施形態では、ワークステーション105は、修正されたビジュアルオブジェクトダイアグラム(たとえば、ビジュアルオブジェクトダイアグラム104)を修正されたプロセス制御ルーチン102にコンパイルし、修正されたプロセス制御ルーチン102をコントローラ106に保存することができる。
ビジュアルオブジェクトダイアグラム104内の機能ブロックは、1次機能ブロックがその他の1次機能ブロックおよび/または2次機能ブロックに結合されている階層構造として構成することができる。さらに、2次機能ブロックのそれぞれをサブレベルの機能ブロックに結合し、サブレベルの機能ブロックのそれぞれをより下位の機能ブロックなどに結合することができる。
一般には、図1の例示的な検査アプリケーションマネージャ101は、プロセス制御ルーチン102にアクセスして検査アプリケーション103を発生させ、検査アプリケーション103内の検査に対応することができるイベントについてプロセス制御ルーチン102を監視する。検査アプリケーションマネージャ101は、ワークステーション105内のプロセス制御ルーチン102にアクセスすることができ、あるいは、プロセス制御ルーチン102がコントローラ106内で実施され、検査アプリケーションマネージャ101がワークステーション105内で実施される場合には、LAN108を介して、プロセス制御ルーチン102にアクセスすることができる。
プロセス制御ルーチン102が生成されると、検査アプリケーションマネージャ101は、対応する検査アプリケーション103を発生させることができる。その他の例では、検査アプリケーションマネージャ101は、プロセス制御オペレータまたはその他の担当者からの命令に応答して、検査アプリケーション103を発生させることができる。例示的な検査アプリケーションマネージャ101は、ビジュアルオブジェクトダイアグラム104にアクセスすること、ならびに、機能ブロックの編成に基づく個別の検査、機能ブロックと関連付けられるパラメータ、パラメータの限度、および/または機能ブロックの機能(たとえば、機能タイプ)を構築することによって、検査アプリケーション103を発生させることができる。
たとえば、ビジュアルオブジェクトダイアグラム104は、フィールドデバイス110aからパラメータ値を受信し、そのパラメータ値が、しきい値(たとえば、最大値、最小値、限度値など)を超える、しきい値を下回る、および/あるいはしきい値から逸脱しているかどうかを判定し、そのパラメータ値がしきい値から逸脱している場合には、命令を別の機能ブロックへ送信して、その逸脱(たとえば、しきい値から逸脱しているパラメータ値から生じるプロセス制御問題)を訂正する機能ブロックを含むことができる。パラメータ値は、プロセス制御システム100の環境コンポーネントを測定するフィールドデバイス110aからの出力と関連付けることができる。この場合には、例示的な検査アプリケーションマネージャ101は、機能ブロック内のパラメータのしきい値に基づいて検査を発生させることができる。さらに、検査アプリケーションマネージャ101は、フィールドデバイス110aの入力測定範囲、フィールドデバイス110aの出力範囲および/またはフィールドデバイス110aからの出力に基づいて命令を発生させる機能ブロック内の機能に基づいて、検査を発生させることができる。具体的には、フィールドデバイス110aの特定された入力測定範囲が0.5バールから35バールである場合、検査アプリケーションマネージャ101は、フィールドデバイス110aが、0.5バールから35バールの入力を正確に測定できることを検証するための検査を発生させることができる。
例示的な検査アプリケーション103は、プロセス制御システム100内のフィールドデバイス110a〜b、ポンプ112、I/Oデバイス116,および/またはコントローラ106のオペレーション能力を検証するための一連の検査を含む検査手順および/または検査計画とすることができる。また、検査アプリケーション103は、プロセス制御ルーチン102内の機能、アルゴリズム、プロセスおよび/または計算が特定された基準内で動作することを検証するための検査を含むことができる。検査アプリケーション103内の各検査は、プロセス制御システム100の実際に起こり得るイベントおよび/または問題に、より具体的に対応することができるサブ検査を含むことができる。たとえば、フィールドデバイス110aの0.5バールから35バールの入力範囲を検証する検査を、より低い入力範囲(たとえば、0.5バールから2バール)を検証する検査と、より高い入力範囲(たとえば、33バールから35バール)を検証する検査とに、さらに分割することができる。このようにして、フィールドデバイス110aが比較的低い入力値(たとえば、1バール)を受信したときに、検査の一部分を検証することができ、フィールドデバイス110aが比較的高い入力値(たとえば、34バール)を受信したときに、検査のその他の部分を別途検証することができる。
さらに、例示的な検査アプリケーション103を、データベースに保存し、一連の個別の検査として整理することができる。各検査は、検査完了時間(たとえば、年、月、日、時間、分および/または秒)に対応するデータフィールドおよび/または検査の証明を保存するためのデータフィールドを含むことができる。検査の証明は、プロセス制御ルーチン102を検証するために使用されるプロセス制御データおよび/またはプロセス制御システム100内のコンポーネント(たとえば、フィールドデバイス110a〜b)を検証するために使用されるプロセス制御データを含むことができる。たとえば、フィールドデバイス110aは、低い入力範囲検査を検証するために検査アプリケーションマネージャ101が使用する0.6バールの値を測定することができる。この0.6バールの値を、検査の証明としてデータフィールド内に保存することができる。それに加えて、0.6バールの値の測定のタイムスタンプおよび/またはフィールドデバイス110aの識別値(たとえば、PT101)を、検査データフィールドの証明に含めることができる。
さらに、プロセス制御ルーチン102が修正される例では、例示的な検査アプリケーションマネージャ101は、修正されたプロセス制御ルーチン102を検出し、それにしたがって検査アプリケーション103を自動的に更新する。検査アプリケーションマネージャ101は、プロセス制御ルーチン102に対する修正を周期的にチェックすることができ、あるいは代替的には、検査アプリケーションマネージャ101は、プロセス制御ルーチン102から、またはワークステーション105内の任意の関連付けられたコンポーネントから、プロセス制御ルーチン102を修正したことを示すメッセージを受信することができる。プロセス制御ルーチン102を修正する際に検査アプリケーション103を自動的に更新することによって、例示的な検査アプリケーションマネージャ101により、ルーチン102に対して完全で効果的な検査適用範囲が確実に存在することになる。
オペレーション時に、例示的な検査アプリケーションマネージャ101は、イベント、問題および/または検査アプリケーション103内の検査と実質的に同様であり得るプロセス制御ルーチン102の一部分の実行に関するプロセス制御ルーチン102のオペレーションを監視する。いくつかの例では、検査アプリケーションマネージャ101は、イベントおよび/または問題に関して、コントローラ106とフィールドデバイス110a〜bの間の通信を監視することができる。それに代わってまたはそれに加えて、検査アプリケーションマネージャ101は、コントローラ106および/またはワークステーション105内のルーチン102を監視することができる。プロセス制御ルーチン102を監視することによって、検査アプリケーションマネージャ101は、プロセス制御システム100の通常のオペレーションを使用して、検査アプリケーション103内の検査のうち1つまたは複数の完了を検証できることを判定することができる。プロセス制御システム100の通常のオペレーション中に検査を検証することにより、特定された検証時間中にオペレータがプロセス制御ルーチン102の未検証の部分に対応する検査のみを確実に実行することによって、総検査時間つまり検査時間全体を短縮することができる。
例示的な検査アプリケーションマネージャ101は、パラメータ、フィールドデバイス、機能ならびに/あるいはイベント、問題および/またはプロセス制御ルーチン102の一部分の実行と関連付けられる機能ブロックを、検査内に含まれ、かつ、検査を発生させるために使用することができた情報と相互参照することによって、イベント、問題および/またはプロセス制御ルーチン102の一部分の実行が、検査アプリケーション103内の検査と実質的に同様であるかどうかを判定することができる。たとえば、フィールドデバイス110aの入力範囲を検証するための検査は、フィールドデバイス(たとえば、PT101)110aの識別子、フィールドデバイス110aの入力と関連付けられるパラメータに対する識別子および/またはリンク、フィールドデバイス110aの入力に対応するプロセス制御ルーチン102内のロケーション、ならびに/あるいはフィールドデバイス110aの入力と関連付けられるパラメータを受信する機能ブロックの識別子を含むことができる。検査アプリケーションマネージャ101は、ルーチン102がこれらの識別子のいずれかからデータを受信するときのインスタンスについて、プロセス制御ルーチン102を監視することができる。次いで、検査アプリケーションマネージャ101は、受信されたデータが、対応する検査の限度内であるかどうかを判定することができる。たとえば、フィールドデバイス110aへの10バールの入力は、0.5バールから2バールのより低い入力範囲の検査を検証するためには十分でない場合がある。
イベント、問題および/またはプロセス制御ルーチン102の一部分の実行が、検査アプリケーション103内の検査と実質的に同様であると判定されると、例示的な検査アプリケーションマネージャ101は、問題および/またはイベントの適切な軽減が起こったかどうかを判定することができる。適切な軽減は、イベントおよび/または問題を訂正するための特定の解決策を含む。各検査は、適切な軽減に関する特定された条件を含むことができ、あるいは代替的には、検査アプリケーションマネージャ101は、プロセス制御ルーチン102が、問題の発生および存在を示すことを停止し、ならびに/あるいは、問題と関連付けられるエラーフラグを選択しなくなる、またはデアサートするかどうかに基づいて、適切な軽減が起こったかどうかを判定することができる。検査アプリケーションマネージャ101が、問題に対して適切な軽減が起こったと判定する場合、検査アプリケーションマネージャ101は、次いで、対応する検査が完了したことを示すことによって、検査アプリケーションを更新することができる。指示は、検査の証明、検査が行われたときのタイムスタンプ、起こった軽減および/または問題と関連付けられるフィールドデバイスを含むことができる。また、検査アプリケーションマネージャ101は、完了されるべき次の検査に関する新たな時間を決定することができる。たとえば、検査アプリケーションマネージャ101は、検査が6ヶ月毎に行われるべきであると決定することができる。したがって、検査が、2009年5月13日に完了する場合、検査アプリケーションマネージャ101は、次回検査時間を2009年11月13日と決定することができる。
また、例示的な検査アプリケーションマネージャ101は、検査アプリケーション103内の検査の完了を監視し、完了時間が近づいているおよび/または経過した任意の検査(たとえば、特定されたまたは所定の期間内に完了していない任意の検査)を完了させるようにオペレータに命令を送ることができる。代替的には、検査アプリケーションマネージャ101は、特定された検証時間にオペレータが行うべき検査の検査計画または検査手順を発生させることができる。検査アプリケーションマネージャ101は、プロセス制御システム100の通常のオペレーション中にどの検査が既に完了しているかに基づいて、検査計画に含まれるべき検査をフィルタリングすることができる。
図1の例示的な検査アプリケーションマネージャ101は、検査シーケンスを介しておよび/または個々のステップを介してオペレータに検査を完了させるように指示することによって、検査計画の完了を管理することができる。それに加えて、検査アプリケーションマネージャ101は、検査結果および/または検査証明をオペレータにプロンプトし、ならびに/あるいは、検査を行うオペレータと関連付けられる身分証明を記録することができる。さらに、検査アプリケーションマネージャ101は、これらの方法で検証されるように特定される検査に基づいて、オペレータが、検査偏差を入力し、および/または、検査結果を手動で報告できるようにすることができる。また、検査アプリケーションマネージャ101は、検査計画をフィルタリングすることによって、検査計画のどの検査の実行が任意選択または必須であるか示すことができる。それに加えて、検査アプリケーションマネージャ101は、検査計画で実行されるべき検査の優先順位を示すことができ、既に完了した検査には、より低い優先順位を割り当てられる。それに加えて、検査アプリケーションマネージャ101は、実行された検査と関連付けられるプロセス制御データを受信することができ、そのデータを対応する検査証明データフィールドにポピュレートすることができる。さらに、検査アプリケーションマネージャ101は、既に完了した検査内でオペレータによって行われた検査からの結果または検査証明を組み合わせて、検査アプリケーション103内に完全な検査記録を形成することができる。また、検査アプリケーションマネージャ101は、新しい検証時間(たとえば、検査を行う新しい時間周期)で、各検査を更新することができる。
また、例示的な検査アプリケーションマネージャ101は、検査計画および/または手順を実行するためのオペレータの特権も管理する。たとえば、検査アプリケーションマネージャ101は、検査計画を提供する前に、オペレータに識別値をプロンプトすることができる。次いで、検査アプリケーションマネージャ101は、データベースにアクセスして、オペレータがプロセス制御検査を行う権限をもつかどうかを判定することができる。データベースは、オペレータに関する訓練記録を含むことができ、この訓練記録は、たとえば、オペレータの訓練レベル、オペレータが完了した訓練クラス、オペレータに関連付けられる権限を与えられた検査、オペレータに対して権限を与えられたプロセス制御エリア、次の訓練レベルおよび/またはエリアに到達するために前提となる訓練などを含むことができる。それに加えて、検査アプリケーションマネージャ101は、オペレータが実施する権限をもつ検査に基づいて、検査計画の検査をフィルタリングすることができる。したがって、このようにして、検査アプリケーションマネージャ101は、プロセス制御検査手順にアクセス可能なプロセス制御オペレータ訓練記録を組み込むためのフレームワークを提供する。
例示的なプロセス制御システム100は以下にさらに詳細に説明される例示的な方法および装置をその中で有利に使用することができる1つのタイプのシステムを示すために提供される。しかしながら、本明細書に記載される例示的な方法および装置は、所望であれば、図1に示される例示的なプロセス制御システム100および/またはプロセス制御アクティビティ、自動化アクティビティ、工業アクティビティ、企業管理アクティビティ、通信アクティビティ、安全アクティビティなどに関連して使用されるシステムに比べて、より複雑な、またはより複雑でないその他のシステムで有利に使用することができる。
図2は、図1の例示的な検査アプリケーションマネージャ101の機能図である。例示的な検査アプリケーションマネージャ101は、検査計画にアクセスすることにより、検査アプリケーションを発生させ、プロセス制御ルーチンを監視し、完了した検査により検査アプリケーションを更新し、オペレータによる検査の完了を管理し、および/またはオペレータ訓練を組み込むための機能ブロックを含む。例示的な検査アプリケーションマネージャ101が、複数のプロセスを実施するように構成された複数の機能ブロックを含む一方で、検査アプリケーションマネージャ101は、複数の機能ブロックを組み合わせる、または追加の複数の機能ブロックを含むことができる。いくつかの例では、検査アプリケーションマネージャ101を単一のプロセス制御システム(たとえば、プロセス制御システム100)と関連付けることができるが、他の例では、検査アプリケーションマネージャ101は、複数のプロセス制御システムの検査を管理することができる。
プロセス制御ルーチンから検査アプリケーションを発生させるために、図2の例示的な検査アプリケーションマネージャ101は、検査アプリケーションジェネレータ202を含む。例示的な検査アプリケーションジェネレータ202は、通信経路204を介してプロセス制御ルーチンにアクセスして、検査アプリケーションを発生させることができる。通信経路204は、1つまたは複数のプロセス制御ルーチンに通信可能に結合される任意のタイプの有線および/または無線の通信経路を含むことができる。
例示的な検査アプリケーションジェネレータ202は、ルーチンを生成すると、そのルーチンから検査アプリケーションを生成することができる。他の例では、検査アプリケーションジェネレータ202は、プロセス制御オペレータからの命令に応答して、検査アプリケーションを発生させることができる。検査アプリケーションジェネレータ202は、ルーチン内のパラメータに基づいて検査限度を決定することによって、ルーチンから検査アプリケーションを発生させることができる。さらに、検査アプリケーションジェネレータ202は、ルーチンと関連付けられるビジュアルオブジェクトダイアグラム内の機能ブロックの順番、機能および/またはタイプに基づいて、ならびに/あるいはルーチンに含まれるアルゴリズムもしくはプロセスの順番および/またはタイプによって、検査アプリケーション内の検査に順番を付けるおよび/または検査アプリケーション内の検査を順番に並べることができる。
さらに、例示的な検査アプリケーションジェネレータ202は、機能ブロック内で定義された関数、方程式、計算および/またはアルゴリズムを使用して、対応する検査に関する限度を定義することができる。たとえば、検査アプリケーションジェネレータ202は、アルゴリズム内の特定された値に基づいて検査に関する限度を判定することができ、そのアルゴリズムには、その特定された値に基づいてある特定のイベントをトリガすることができる。また、検査アプリケーションジェネレータ202は、検査全体が、特定の時間周期内の1つまたは複数のイベントおよび/または問題によって完了および/または検証することができない場合には、検査内にサブ検査を生成することができる。プロセス制御システム設計者による定義、および/または、検査アプリケーションを発生させるために検査アプリケーションジェネレータ202が使用するアルゴリズムによる特定により、これらの場合を定義することができる。
それに加えて、検査アプリケーションジェネレータ202は、ルーチン内のロケーションと相互参照することができる検査アプリケーション内の各検査内に識別子を含むことができる。次いで、検査アプリケーションマネージャ101は(検査アプリケーションコンペアラ206を介して)、ルーチン内のロケーションとの各検査の相互参照を使用して、ルーチンによって処理された問題またはイベントが、1つまたは複数の検査と実質的に同様かどうかを判定することができる。
例示的な検査アプリケーションジェネレータ202は、検査アプリケーションを生成すると、その検査アプリケーションを検査データベース208に保存することができる。検査データベース208は、電気的に消去可能なプログラム可能なリードオンリーメモリ(EEPROM)、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)および/または任意のその他のタイプのメモリによって実施することができる。それに加えて、検査アプリケーションは、ワークステーション(たとえば、ワークステーション105)を通じて、検査データベース208に通信可能に結合される通信経路210を介して、オペレータによってアクセスされることができる。通信経路210は、任意のタイプの有線および/または無線の通信経路を含むことができる。
例示的な検査データベース208は、検査アプリケーションと、たとえば検査証明データ、検査が完了した日付、検査を完了したオペレータの身分証明、次回検査の完了日または検証日などを含む関連付けられる情報とを格納することができる。さらに、検査データベース208は、異なるバージョンの検査アプリケーションを保存することができ、各バージョンは、異なるバージョンのルーチンに対応することができる。それに加えて、検査データベース208内に保存された検査アプリケーション内の検査のそれぞれは、検査の配列として整理することができる。その他の例では、対応する検査アプリケーションによってグループ化される個別の検査として、検査アプリケーション内の各検査を保存することができる。また、検査データベース208は、任意の完了していない検査を完了させることによってオペレータをガイドするために発生させることができるそれぞれ対応する検査アプリケーションと関連付けられる検査計画および/または手順を保存することができる。さらに、検査アプリケーションジェネレータ202は、検査データベース208内の他の検査にアクセスし、検査タイプに基づいて、検査アプリケーション内の検査に他の検査を組み合わせる、および/または、追加することができる。
対応するプロセス制御ルーチンへの修正に基づいて検査アプリケーションを修正するために、図2の例示的な検査アプリケーションマネージャ101は、検査アプリケーションモディファイア212を含むことができる。例示的な検査アプリケーションモディファイア212は、プロセス制御ルーチンが修正済みであることを示す表示を受信し、検査データベース208内の対応する検査アプリケーションにアクセスし、および/または、修正されたプロセス制御ルーチンに基づいて検査アプリケーションを修正する。それに加えて、検査アプリケーションモディファイア212は、修正された検査アプリケーションを、未修正の検査アプリケーションとは異なるバーションとして保存することができる。例示的な検査アプリケーションモディファイア212は、コントローラおよび/またはワークステーションに通信可能に結合することができる通信経路214を介して、修正されたプロセス制御ルーチンの表示を受信することができる。通信経路214は、任意の有線および/または無線の通信経路によって実施することができる。
代替的な例では、例示的な検査アプリケーションモディファイア212は、修正に関するプロセス制御ルーチンを監視することができる。1つまたは複数の修正が検出されると、検査アプリケーションモディファイア212は、対応する検査アプリケーションにアクセスし、適当な変更を実施することができる。検査アプリケーションモディファイア212は、検査アプリケーションジェネレータ202が、機能ブロック、パラメータおよび/または任意のその他のルーチン情報を利用して、検査アプリケーションを構築するのと同じ方法で、検査アプリケーションを修正することができる。
さらに、検査アプリケーションモディファイア212が、検査が完了したという命令および/または表示を検査アプリケーションコンペアラ206から受信すると、検査アプリケーションモディファイア212は、検査データベース208の検査アプリケーション内の検査にアクセスし、検査が正常に実施されたことを示すように検査を更新することができる。検査アプリケーションモディファイア212は、検査の証明、いつ検査が完了したかに関するタイムスタンプ、検査を完了させたオペレータの識別値、検査の次の実行時間および/または検査が完了したことを示す任意のその他の情報と関連付けられる1つまたは複数の検査データフィールドに保存することによって、検査を更新することができる。
プロセス制御アプリケーションを監視するために、図2の例示的な検査アプリケーションマネージャ101は、ルーチンモニタ216を含む。例示的なルーチンモニタ216は、イベント、問題および/またはプロセス制御ルーチンの一部分の実行を含むことができるプロセス制御ルーチンのオペレーションを監視する。いくつかの例では、ルーチンモニタ216は、通信経路218を介して、コントローラ106とフィールドデバイス110a〜bと間の通信を監視することができる。それに代わってまたはそれに加えて、ルーチンモニタ216は、コントローラ106および/またはワークステーション105内の1つまたは複数のルーチンを、通信経路218を介して監視することができる。通信経路218は、任意のタイプの有線および/または有線の通信経路を含むことができる。
例示的なルーチンモニタ216は、任意のイベントおよび/または問題に関して特定のルーチンを監視し、次いで、それらのイベントおよび/または問題の表示を検査アプリケーションコンペアラ206へ転送することができる。代替的に、ルーチンモニタ216は、継続的にまたは周期的に処理アクティビティに関する1つまたは複数のルーチンを監視し、検出された全ての処理アクティビティを検査アプリケーションコンペアラ206へ転送することができる。さらに、ルーチンモニタ216に、検査アプリケーション内の検査と実質的に同様とすることができるイベントを含み得るプロセス制御ルーチンの一部分を監視するように命令することができる。それに加えて、ルーチンモニタ216は、ある特定の機能ブロック、パラメータおよび/または対応する検査アプリケーション内で識別または使用することができるルーチンの一部分のインスタンスについて、プロセス制御ルーチンを監視することができる。いくつかの例では、ルーチンモニタ216は、プロセス制御ルーチンを動作させながらプロセス制御ルーチンを監視することができる。他の例では、ルーチンモニタ216は、プロセス制御ルーチンの実行履歴を審査することができる。
問題、イベントおよび/またはプロセス制御ルーチンの一部分の実行が検出されると、例示的なルーチンモニタ216は、その問題、イベントおよび/またはプロセス制御ルーチンの一部分の実行と関連付けられる情報またはデータを検査アプリケーションコンペアラ206へ転送する。いくつかの例では、ルーチンモニタ216は、イベント、問題および/またはプロセス制御ルーチンの一部分の実行と関連付けられる情報またはデータを含む命令を、検査アプリケーションコンペアラ206へ転送することができる。
イベント、問題および/またはプロセス制御ルーチンの一部分の実行が、1つまたは複数の検査と実質的に同様であるかどうかを判定するために、図2の例示的な検査アプリケーションマネージャ101は、検査アプリケーションコンペアラ206を含むことができる。例示的な検査アプリケーションコンペアラ206は、イベント、問題および/またはプロセス制御ルーチンの一部分の実行に関連付けられるパラメータ、フィールドデバイス、機能および/または機能ブロックを、1つまたは複数の検査内に含まれる情報と相互参照することによって、その問題、イベントおよび/またはプロセス制御ルーチンの一部分の実行が、1つまたは複数の検査と実質的に同様であると判定することができる。
たとえば、検査アプリケーションコンペアラ206は、パラメータ値が2.4であるOUT_01として識別されるパラメータを含むルーチンモニタ216から、イベントと関連付けられる情報を受信することができる。検査アプリケーションコンペアラ206は、OUT_01パラメータをOUT_01パラメータを含む検査と相互参照することができる。検査アプリケーションコンペアラ206は、次いで、そのパラメータ値を使用して、値2.4を含む検査内のサブ検査を決定することができる。他の例では、検査アプリケーションコンペアラ206は、検査に関する限度を設定するために使用される同じ機能と相互参照することができる機能を、ルーチンモニタ216から受信することができる。代替的に、検査アプリケーションコンペアラ206は、プロセス制御ルーチン内のロケーションを参照することができる各検査において識別子を使用して、イベントおよび/または問題が検査に対応しているかどうかを判定することができる。
イベント、問題および/またはプロセス制御ルーチンの一部分の実行が、検査アプリケーション内の検査と実質的に同様であることが判定されると、例示的な検査アプリケーションコンペアラ206は、その問題、イベントおよび/またはプロセス制御ルーチンの一部分の実行の適切な軽減が起こったかどうかを判定することができる。検査アプリケーションコンペアラ206は、特定された適切な軽減動作を含む検査内のデータフィールドにアクセスすることによって、検査に対する適切な軽減を決定することができる。代替的に、検査アプリケーションコンペアラ206は、それぞれのタイプのイベント、問題および/またはプロセス制御ルーチンの一部分に対する適切な軽減の一覧を含むデータベースにアクセスすることができる。さらに、検査アプリケーションコンペアラ206は、エラーフラグがリセットされたかどうかを判定するためにルーチンを監視することによって、ならびに/あるいは、イベントおよび/または問題の表示がもはやアクティブではないもしくは存在しないかどうかを判定することによって、適切な軽減が実行されたことを判定することができる。検査アプリケーションコンペアラ206が、適切な軽減が起こらなかったと判定する場合、検査アプリケーションコンペアラ206は、適切な軽減が起こったことを示す情報を用いて、検査を更新しない。
検査アプリケーションコンペアラ206が問題、イベントおよび/またはプロセス制御ルーチンのオペレーションの一部分に対して適切な軽減が起こったと判定する場合、検査アプリケーションコンペアラ206は、次いで、検査アプリケーションモディファイア212へ表示を送信して、対応する検査が効果的に完了したことを示すことにより、検査アプリケーションを更新することができる。その表示として、検査の証明データ、いつ検査が起こったかに関するタイムスタンプ、起こった軽減、および/または問題もしくはイベントと関連付けられるフィールドデバイスが挙げられる。また、検査アプリケーションコンペアラ206は、完了されるべき検査に関する新たな時間(たとえば、時間間隔)を決定し、この新たな検査時間を検査アプリケーションモディファイア212へ転送することができる。代替的に、検査アプリケーションコンペアラ206は、検査の完了の表示を保存するために、検査データベース208にアクセスすることができる。
また、例示的な検査アプリケーションコンペアラ206は、検査実行ベリファイア220からプロセス制御データを受信し、そのデータが適切な軽減および/または検査の証明と関連付けられているかどうかを判定することができる。また、検査アプリケーションコンペアラ206は、そのデータとともに含まれ得るパラメータ識別子、フィールドデバイス識別子および/または機能識別子に基づいて、このデータと関連付けることができるのはどの検査かを判定することができる。オペレータが1つまたは複数の検査を実行することができる例では、検査アプリケーションコンペアラ206は、実行された検査と関連付けられるプロセス制御データを受信し、どの検査がそのデータと関連付けられているかを判定し、そのデータとともに検査証明および/または適切な軽減データフィールドをポピュレートすることができる。
さらに、検査アプリケーションコンペアラ206は、検査アプリケーションを周期的に審査して、期限切れ、および/または期限切れになりそうな実行時間を有するいずれかの検査があるかどうかを判定することができる。1つまたは複数の検査が検出されると、検査アプリケーションコンペアラ206は、検査計画、検査手順および/またはオペレータに対する作業命令を発生させて、期限の時刻の前にまたは期限の時刻までに、これらの検査を実行することができる。代替的には、検査アプリケーションコンペアラ206は、特定された時間間隔内に実行されるべき検査について、検査計画および/または検査手順を周期的に発生させることができる。
例示的な検査アプリケーションコンペアラ206は、どの検査が実行されるべきかを判定することによって、検査計画を発生させることができる。検査アプリケーションコンペアラ206は、検査を行うべきオペレータの身分証明に基づいて、検査をフィルタリングすることができる。それに加えて、検査アプリケーションコンペアラ206は、オペレータが入力した検査に関する証明データおよび/または偏差検査データを受信し、これらのデータを対応する検査の適当なデータフィールドで組み合わせることができる。さらに、検査が不合格に終わった場合には、検査アプリケーションコンペアラ206は、対応する検査に対する不合格の記録を検査アプリケーションに保存することができ、および/または、プロセス制御担当者に対する不合格の表示を発生させて、その誤動作を修復することができる。
例示的な検査アプリケーションコンペアラ206は、自動検証機能および/または自己較正機能を含むことができるフィールドデバイス(たとえばフィールドデバイス110a〜b)によって、1つまたは複数の検査を自動的に行うことを決定することができる。これらの例では、検査アプリケーションコンペアラ206は、自己検査を行うための命令をこれらのフィールドデバイスへ送信することができる。検査アプリケーションコンペアラ206は次いで、フィールドデバイスから検査実行ベリファイア220を介して結果を受信し、その結果が検査に合格すること示すかどうかを判定し、対応する検査の適当なデータフィールドに検査結果を記録することができる。
検査計画および/または検査手順の完了を管理するために、図2の例示的な検査アプリケーションマネージャ101は、検査アプリケーションプロセッサ224を含む。例示的な検査アプリケーションプロセッサ224は、検査計画を検査アプリケーションコンペアラ206から受信し、検査計画内に含まれる検査を実行するようにオペレータにプロンプトすることができる。検査アプリケーションプロセッサ224は、ワークステーション(たとえば、図1のワークステーション105)に通信可能に結合される通信経路226を介して、オペレータと通信することができる。通信経路226は、任意のタイプの有線および/または無線の通信経路を含むことができる。
また、検査アプリケーションプロセッサ224は、オペレータに割り当てられた識別値についてオペレータにプロンプトすることができる。オペレータの識別値を受信すると、検査アプリケーションプロセッサ224は、この識別値を検査アプリケーションコンペアラ206へ転送して、オペレータが検査計画のうちいくつかおよび/または全てを実行する権限をもつかどうかを判定することができる。識別値を受信すると、検査アプリケーションコンペアラ206は、オペレータ訓練記録を含む訓練データベース228にアクセスして、オペレータに関する訓練レベルのおよび/または許可を決定することができる。訓練データベース228は、各オペレータに関する訓練記録を含むことができる。訓練記録はそれぞれ、たとえば、オペレータの訓練レベル、オペレータが完了した訓練クラス、オペレータが権限をもつ検査、オペレータが権限をもつプロセス制御領域、次の訓練レベルおよび/または領域を到達するために前提となる訓練などを含むことができる。
訓練データベース228は、EEPROM、RAM、ROMおよび/または任意のその他のタイプのメモリによって実施することができる。さらに、訓練データベース228内の記録は、ワークステーションに通信可能に結合される任意のタイプの有線および/または無線の通信経路とすることができる通信経路230を介して、権限をもつプロセス制御担当者によって更新することができる。
訓練記録内のデータに基づいて、検査アプリケーションコンペアラ206は、オペレータが実行する権限をもつ検査計画内の検査をフィルタリングすることができ、および/または、オペレータがいずれの検査を実施する権限も有さない場合には、オペレータから検査計画を取り下げることができる。オペレータが実行する権限をもつ検査が判定されると、検査アプリケーションコンペアラ206は、検査を通じてオペレータをガイドするために、検査アプリケーションプロセッサ224に検査計画を転送する。この検査計画は、どの検査がオペレータによって省略され得るか、どの検査がオペレータによって手動で実行され得るか、その検査がオペレータによってシュミレーションされ得るか、どの検査がオペレータによる実行の偏差を有し得るか、および/または検査の実行順序に関する表示を含むことができる。これらの表示は、対応するルーチンに基づいて検査アプリケーションジェネレータ202によって発生し、および/または、プロセス制御システム検査エンジニアによって通信経路210を介して各検査に対して入力することができる。
検査アプリケーションプロセッサ224は、検査計画を受信すると、検査を通じてオペレータをガイドすることができる。いくつかの検査に関しては、検査アプリケーションプロセッサ224は、プロセス制御データを入力して、ルーチン内の検査機能への検査入力および/またはフィールドデバイスの出力をシュミレーションするように、オペレータに命令することができる。検査アプリケーションプロセッサ224は、この入力されたプロセス制御データを検査コンペアラ206に転送して、検査の証明として検査と関連付けられるデータフィールドに保存することができる。さらに、検査アプリケーションプロセッサ224は、オペレータによって測定されるべき、および/または、オペレータによって記録されるべきプロセス制御データを要求することができる。検査アプリケーションプロセッサ224は、このプロセス制御データを受信すると、検査の証明として検査と関連付けられるデータフィールドに保存するために、この受信されたプロセス制御データを検査コンペアラ206に転送することができる。たとえば、図1のフィールドデバイス110aの入力範囲を検査するために、検査アプリケーションプロセッサ224は、フィールドデバイス110aの検知要素に印加されるべき既知の圧力を含む検査を実行するように、オペレータにプロンプトすることができる。検査アプリケーションプロセッサ224は、特定された圧力をオペレータに示し、フィールドデバイス110aに印加された圧力の値を入力するようにオペレータにプロンプトし、かつ/または、フィールドデバイス110aによって報告された検知された圧力値を入力するようにオペレータにプロンプトすることができる。代替的には、検査実行ベリファイア220は、フィールドデバイス110aの検知された圧力値を受信し、その値を検査アプリケーションコンペアラ206に転送して、検査の証明としてフィールドデバイス110aに印加された圧力と組み合わせることができる。
例示的な検査アプリケーションプロセッサ224は、オペレータが、ルーチン内の機能ブロックのオペレーションを検証するためにプロセス制御入力および/または出力をシミュレーションできるようにする機能を含むことができる。それに加えて、シミュレーションされた入力を使用して、フィールドデバイスのオペレーションを検証することができる。検査アプリケーションプロセッサ224は、シミュレーションされた値を通信経路226を通じて、コントローラ106を介してフィールドデバイスへ、かつ/または、ワークステーション105を介してルーチンへ送信することができる。
さらに、例示的な検査アプリケーションプロセッサ224は、オペレータによって入力されるデータにタイムスタンプを与えて、検査が完了する時間を記録することができる。検査アプリケーションプロセッサ224は次いで、検査アプリケーションコンペアラ206へ転送された検査証明データ内のタイムスタンプを含むことができる。それに加えて、検査アプリケーションプロセッサ224は、自己検査(たとえば、自動検査)命令を、検査アプリケーションコンペアラ206から対応するフィールドデバイスに転送することができる。また、いくつかの例では、検査アプリケーションプロセッサ224は、検査計画を完了するための権限をもつオペレータに対して完了されるべき訓練またはタスクの一覧を、オペレータに提供することができる。
実行された検査と関連付けられるプロセス制御データを受信するために、図2の例示的な検査アプリケーションマネージャ101は検査実行ベリファイア220を含む。例示的な検査実行ベリファイア220は、任意のタイプの有線および/または無線の通信経路を含むことができる通信経路222を介して、ルーチンおよび/または図1のLAN108を監視することによって、プロセス制御データを受信することができる。代替的には、プロセス制御ルーチン、ワークステーション(たとえば、ワークステーション105)および/またはコントローラ106は、プロセス制御データを検査実行ベリファイア220へ送信することができる。
例示的な検査実行ベリファイア220は、フィールドデバイスによって送信されたパラメータおよび/またはルーチンによって実行された機能を、そのパラメータおよび/または機能と関連付けられる識別子により決定することによって、プロセス制御データについて監視することができる。たとえば、検査実行ベリファイア220は、ルーチン内で検出するためのパラメータ識別子の一覧を含むことができる。一覧にされたパラメータのうち1つをルーチンが受信するときはいつでも、検査実行ベリファイア220は、データ内に含まれるパラメータの識別値を使用して、そのパラメータに関連付けられるデータを検出することができる。それに加えて、検査実行ベリファイア220は、軽減アクションと関連付けられるルーチンの一部分を監視することによって、ルーチンが問題の適切な軽減を実行したかどうかを判定することができる。
例示的な検査実行ベリファイア220は、プロセス制御システムの一部分を自動的に検証するために使用することができる検査と関連付けられるプロセス制御データを受信することができる。代替的には、検査実行ベリファイア220は、検査アプリケーションプロセッサ224を介して、オペレータにより実行された検査と関連付けられるプロセス制御データを受信することができる。検査実行ベリファイア220は、プロセス制御データを受信すると、そのプロセス制御データを検査アプリケーションコンペアラ206へ転送する。
検査アプリケーションマネージャ101を実施する例示的な方法が図2に示されるが、図2に示されるインターフェース、データ構造、要素、プロセスおよび/またはデバイスのうち1つまたは複数は、任意のその他の方法で組合せ、分割、再配置、省略、除去および/または実施することができる。たとえば、図2に示される例示的な検査アプリケーションジェネレータ202、例示的な検査アプリケーションコンペアラ206、例示的な検査アプリケーションモディファイア212、例示的なルーチンモニタ216、例示的な検査アプリケーションプロセッサ224および/または例示的な検査実行ベリファイア220は、たとえば、1つまたは複数のコンピューティングデバイスおよび/またはコンピューティングプラットフォーム(たとえば図10の例示的な処理プラットフォームP10)によって実行される機械アクセス可能な命令または機械読取可能な命令を使用して、別々におよび/または任意の組合せで実施することができる。
さらに、例示的な検査アプリケーションジェネレータ202、例示的な検査アプリケーションコンペアラ206、例示的な検査アプリケーションモディファイア212、例示的なルーチンモニタ216、例示的な検査アプリケーションプロセッサ224、例示的な検査実行ベリファイア220および/またはより一般的には検査アプリケーションマネージャ101は、ハードウェア、ソフトウェア、ファームウェアならびに/あるいはハードウェア、ソフトウェアおよび/またはファームウェアの任意の組合せによって実施することができる。たとえば、例示的な検査アプリケーションジェネレータ202、例示的な検査アプリケーションコンペアラ206、例示的な検査アプリケーションモディファイア212、例示的なルーチンモニタ216、例示的な検査アプリケーションプロセッサ224、例示的な検査実行ベリファイア220および/またはより一般的には検査アプリケーションマネージャ101のいずれかは、1つまたは複数の回路、プログラム可能なプロセッサ、特定用途向け集積回路(ASIC)、プログラマブル論理デバイス(PLD)および/またはフィールドプログラマブル論理デバイス(FPLD)などによって実施することができる。
図3は、図1のプロセス制御ルーチン102および対応する検査アプリケーション103のビジュアルオブジェクトダイアグラム104を示す。簡潔にするために、例示的なビジュアルオブジェクトダイアグラム104は、機能ブロック302〜308を示す。しかしながら、他の例では、ビジュアルオブジェクトダイアグラム104は、追加のリンクによって一緒に結合される追加の機能ブロックを含むことができる。たとえば、典型的なプロセス制御システムは、リンクによって一緒に結合される数十個の相互接続された機能ブロックを含むことができる。
例示的な機能ブロック302〜308を一緒に結合して、警告付きの比例/積分/微分(PID)フィードバックループを実施する。機能ブロック302は、入力値およびフィードバック値に基づいて出力を計算するためのPID制御アルゴリズムおよび/またはルーチンを含むことができる。機能ブロック302内では、出力値はOUTパラメータに対応し、入力値はINパラメータに対応し、フィードバック値はBKCAL_INパラメータに対応する。機能ブロック302のINパラメータは、リンク310を介して、機能ブロック306のOUTパラメータに通信可能に結合される。
例示的な機能ブロック306は、1つまたは複数のフィールドデバイスからプロセス制御データ値を受信し、受信されたデータをPID1機能ブロック302に関するパラメータ化された値に変換することができる。FT−101機能ブロック306は次いで、OUTパラメータを介して、その値をPID1機能ブロック302のINパラメータへ送信する。PID1機能ブロックは、出力値を計算すると、OUTパラメータを介する出力値を、リンク312介して、機能ブロック304内のCAS_INパラメータに出力する。例示的な機能ブロック304は、その出力値を使用して、受信された出力値に基づいて、制御アクションおよび/または較正値を計算することができる。FY−101機能ブロック304は次いで、OUTパラメータを通してこの制御アクションを、リンク316を介して、ALARM1機能ブロック308内のINパラメータに送信することができる。それに加えて、FY−101機能ブロック304は、BKCAL_OUTパラメータを通した較正値を、リンク314を介して、PID1機能ブロック302内のBKCAL_INパラメータに送信することができる。
ビジュアルオブジェクトダイアグラム104および/または対応するプロセス制御ルーチン102から、図2の検査アプリケーションジェネレータ202を介して、対応する検査アプリケーション103を発生させることができる。図3の例示的な検査アプリケーション103は、機能ブロック302〜308およびそれと関連付けられるパラメータに対応する例示的な検査および/または機能ブロック302〜308およびそれと関連付けられるパラメータから発生させることができる例示的な検査を示す。たとえば、TEST 01は、FT−101機能ブロックによって受信されたOUTパラメータおよび/または、FT−101機能ブロックから発生したOUTパラメータの限度を検査することができる。図3に示されるように、TEST 01は、次の検証時間(たとえば、日付)である12/22/09を含み、これはこの日までに検査を完了しなければならないことを示す。プロセス制御ルーチン102のオペレーションを通じて、検査がこの時までに完了していない場合、検査アプリケーションマネージャ101は、検査を完了するようにオペレータにプロンプトする。別の例では、PID1機能ブロック302によって実行された機能から、TEST 04検査を発生させることができる。検査されるべき機能は、OUTパラメータを発生させるために、PID1機能ブロック302内のBKCAL_INとINパラメータとの組合せを含むことができる。さらに別の例では、TEST 10検査を発生させて、INパラメータを介してALARM1機能ブロック308へ警告するオペレーションを検査することができる。この検査は、INパラメータを介して警告を有効にするために適当な値を送信することによって、警告が有効化されるかどうかを判定することができる。いくつかの例では、検査アプリケーションマネージャ101は、警告の有効化をトリガするイベントをシミュレーションすることによって、TEST 10を実行することができる。
例示的な検査アプリケーション103は、検査識別子、検査名および次の検証(たとえば、完了)時間に関するフィールドを含む。図3の例では、検査は検査識別子によって、順番を付けらる。しかしながら、他の例では、検査は次の検証時間および/または検査名によって、順番を付けることができる。代替的には、検査は、検査シーケンスによって順番を付けることができる。さらに、他の例では、検査アプリケーションは、検査証明データ、検査を完了させたオペレータのオペレータ身分証明、検査が最後に完了した時間などに関する追加のフィールドを含むことができる。それに加えて、TEST 05およびTEST 07を完了させる時間の期限切れが近づいていることを示すために、10/30/09という時間(たとえば、日付)が次回検証日フィールド内でイタリック体にされる。
検査アプリケーション103は、個々の検査(たとえば、TEST 01〜TEST 10)のマネージャおよび/またはプロセッサとして実施することができる。たとえば、検査アプリケーション103は、完了または検証時間が期限切れになりそうないずれかの検査があるかどうかを判定することができる。それに加えて、検査アプリケーション103は、各検査に関する検査証明データを含む検査完了データの保存および/または整理を管理することができる。その他の例では、検査アプリケーション103は、検査アプリケーション103と関連付けられる検査を一覧にする表および/または図表を含むことができる。
図3の例示的な検査アプリケーション103は10個の検査(たとえば、TEST 01〜TEST10)を含むが、検査アプリケーション103は、ビジュアルオブジェクトダイアグラム104および/またはプロセス制御ルーチン102に対応することができる追加の検査を含んでもよい。たとえば、検査アプリケーション103は、図1のフィールドデバイス110a〜bおよび/またはポンプ112のオペレーションを検証するための検査を含むことができる。さらに、ビジュアルオブジェクトダイアグラム104が追加の機能ブロックを含む例では、例示的な検査アプリケーション103は、追加の機能ブロックに対応する追加の検査を含むことができる。
図4は、図3の例示的な検査アプリケーション103および例示的な検査TEST 01に関する検査説明テーブル402を示す。この例示的な検査説明テーブル402は検査アプリケーション103内に含むことができる。たとえば、TEST 01は、検査説明テーブル402へのリンクを含むことができる。例示的な検査説明テーブル402は、検査識別(たとえば、TEST ID)、検査限度(たとえば、TEST)、各検査に対する軽減(たとえば、MITIGATION)および次回検証または完了日/時間(たとえば、NEXT VERIFY DATE)に対するフィールドを含む。それに加えて、検査説明テーブルは、軽減値、検査証明および/またはルーチン内の検査の対応するロケーションに関する追加のデータフィールドを含む。
たとえば、ルーチンフィールド内の検査のロケーションは、実質的に検査と同様であるルーチン内のロケーションを特定する値を含む。代替的には、ルーチンフィールド内の検査のロケーションは、ルーチン102内の機能および/またはパラメータを参照するパラメータ値および/または機能識別値を含むことができる。さらに、検査説明テーブル402は、オペレータが手動で検査を動作させることができるかどうかを示すフィールド、検査が任意選択であってもよいかを示すフィールド、検査が偏差を有することがあるかどうかを示すフィールド、および/または検査と関連付けられる検出された不合格のタイプを示すフィールドを含むことができる。
例示的な検査説明テーブル402は、TEST 01のサブ検査を含む。たとえば、TEST 01は、図3のFT101機能ブロック306のOUTパラメータの限度を検査することができる。OUTパラメータおよびTEST 01の限度は、21.7から25.2の範囲とすることができる。しかしながら、図1のプロセス制御システム100のオペレーション中に一度には、限度の片側だけが検査できる。したがって、TEST 01を、範囲の上限を検査するTEST 01Hと、範囲の下限を検査するTEST 01Lとに再分割する。
OUTパラメータが25.2の限度値から逸脱する場合には、TEST 01H検査を完了ように判定することができ、検査アプリケーションマネージャ101は、適切な軽減が起こったと判定する。この場合、適切な軽減は、問題インジケータ(たとえば、INDICATOR 02)を送信するまたは発生させることと、OUTパラメータの値を60秒以内に25.2の限度値より小さくすることとを含む。同様に、OUTパラメータが21.7限度値未満になる場合には、TEST 01L検査を完了するように判定することができ、検査アプリケーションマネージャ101は、適切な軽減が起こったと判定する。この場合、適切な軽減は、問題インジケータ(たとえば、INDICATOR 04)を送信するまたは発生させることと、OUTパラメータの値を60秒以内に21.7の限度値より大きくすることとを含む。それに加えて、TEST 01は、コントローラ106とOUTパラメータを発生させることができる対応するフィールドデバイスとの間の通信を検査することができる通信検査(たとえば、TEST 01N)を含む。
NEXT VERIFY DATEフィールドは、各サブ検査が独立して実行され、完了時間が異なることを示す。しかしながら、検査アプリケーション103内のTEST 01検査の完了時間は、最も近い日付(たとえば、12/22/09)を反映することができる。検査限度に加えて、TESTフィールドは、機能変数、検査期間、検査条件および/または任意のその他の検査定義機能を含むことができる。たとえば、TEST 04検査に関するTESTフィールドは、対応する検査限度を有するPID1 FUNCTION 1の定義を含むことができる。検査アプリケーションマネージャ101は、TEST 01検査をルーチン102と相互参照するために識別子(たとえば、FT−101および/またはOUT)を使用して、イベント、問題および/またはルーチン102のオペレーションの一部分が、TEST 01H,TEST 01Lおよび/またはTEST 01Nの検査と実質的に同様であるかどうかを判定することができる。
オペレータが検査を実行すべき例では、検査計画を発生させるために、検査アプリケーションマネージャ101が検査説明テーブルを使用することができる。たとえば、TESTフィールド内の情報は、検査計画の期間を定義することができ、MITIGATIONフィールド内の情報は、検査により示された問題が軽減または訂正されるかどうかを判定するために、オペレータが観察および/または記録すべきイベントを定義することができる。さらに、サブ検査(たとえば、TEST 01H、TEST 01Lおよび/またはTEST 01N)のそれぞれを、その他の検査説明テーブルに表示することができるサブ検査へとさらに再分割することができる。
図5は、図4の例示的な検査TEST 01Lの例示的な検証履歴テーブル502を示す。図4の検査説明テーブル402および/または検査アプリケーション103とともに、例示的な検証履歴テーブル502を含むことができる。検証履歴テーブル502は、単一の検査(たとえば、TEST 01L)に関する検査完了履歴を示す。その他の検査は、それぞれ対応する検証履歴テーブルを含むことができる。
例示的な検証履歴テーブル502は、検査が完了した時間/日付(たとえば、TEST DATE)、検査のバージョン(たとえば、TEST VERSION)、検査タイプ(たとえば、TEST TYPE)、適切な軽減が起こる時間(たとえば、MITIGATION TIME)、検査を実施したオペレータ(たとえば、OPERATOR)および次回検証または完了日(NEXT VERIFY DATE)に関するデータフィールドを含む。それに加えて、検証履歴テーブル502は、検査証明データ、軽減データおよび/または任意のその他の検査完了データに関するデータフィールドを含むことができる。
TEST VERSIONフィールドは、検査バージョンおよび/または検査アプリケーション103のバージョンを示す。たとえば、検査バージョンVER.2.0Aは、図4の21.7から25.2の検査限度範囲に対応することができ、一方、検査バージョンVER.1.5Aは、22.4から28.3の前述の検査限度範囲に対応することができる。TEST TYPEフィールドは、実行された検査のタイプの一覧を含む。たとえば、MANUAL検査は、オペレータにより実行される検査に対応することができ、IN PROCESS検査は、プロセス制御システムおよび/またはルーチンのオペレーション中に実行された検査に対応することができ、AUTOMATIC検査は、プロセス制御システムを停止または保留している間検査アプリケーションマネージャ101により実行された検査に対応することができ、ならびに/あるいは、SIMULATION検査は、検査を実行するためにプロセス制御データではなくシミュレーションされた検査値を使用した検査に対応することができる。いくつかの例では、複数の検査タイプを実行することができる。
さらに、MITIGATION TIMEフィールドは、適切な軽減が起こる時間を含むことができる。OPERATORフィールドは、検査を行ったオペレータの識別値を示す。IN PROCESSで検査が完了し得る例では、オペレータは、検査と実質的に同様であったイベントおよび/または問題中にプロセス制御システムを監督していたオペレータに対応することができる。検証履歴テーブル502内のNEXT VERIFY DATEフィールドは、TEST DATEフィールド内の対応する日付に基づいて、計画された次回検査完了時間を示す。たとえば、TEST 01Lを6ヶ月毎に完了するように特定することができる。したがって、検査完了日である5/15/08は、次回検査完了時間/日付である11/15/08を有することができる。検証履歴テーブル502の2行目は、満了日である11/15/08にMANUAL検査が完了したことを示す。4行目には、IN PROCESS検査が、期限日である11/15/09より前である8/14/09に完了したことを示される。したがって、プロセス制御システムのオペレーション中(たとえば、IN PROCESS)に検査が起こったので、オペレータは検査を実行する必要がなく、検査を再実行する必要は2/14/10まで無い。
図6は、図1のプロセス制御システム100および/またはプロセス制御ルーチン102に関する例示的なオペレータ訓練記録602を示す。検査アプリケーションマネージャ101がこの例示的なオペレータ訓練記録602を使用して、オペレータが検査計画内の1つまたは複数の検査を実行する権限をもつかどうかを判定することができる。それに加えて、オペレータ訓練記録602を使用して、プロセス制御タスクを用いてオペレータ訓練を維持、管理および/または調整することができる。例示的なオペレータ訓練記録602は、オペレータ識別子(たとえば、OPERATOR ID)、オペレータの訓練レベル(たとえば、TRAINING LEVEL)、オペレータが訓練をその日までに再完了しなければならない日付(たとえば、RECERTIFICATION DATE)、オペレータが検査を行う権限をもつことができ、かつ/または動作させることができるプロセス制御領域(たとえば、AUTHORIZED PROCESS CONTROL AREAS)ならびに完了していない訓練クラス(たとえば、ASSIGNED TRAINING NOT COMPLETED)に関するデータフィールドを含む。それに加えて、オペレータ訓練記録602は、たとえば、オペレータの職位、オペレータの部門レベル、以前完了した訓練、および/またはオペレータ訓練情報を含むことができる任意のその他のフィールドなどの、他のフィールドを含むことができる。
検査アプリケーションマネージャ101が、オペレータが少なくとも1つの検査を完了させて、期限切れ時間/日付までに検査が確実に完了しなければならないと判定する例では、検査アプリケーションマネージャ101は、検査計画を生成し、識別値についてオペレータにプロンプトし、識別値が検査計画内の検査を実行することが求められるTRAINING LEVELおよび/またはAUTHORIZED PROCESS CONTROL AREASに対応するかどうかを判定することができる。たとえば、検査アプリケーションマネージャ101は、図3のPID1ルーチンに関する検査計画を発生させることができる。オペレータGKL01が検査計画を実行しようと試みる場合、検査アプリケーションマネージャ101は、PID1ルーチンがAUTHORIZED PROCESS CONTROL AREAS内に含まれていると判定する。代替的には、検査アプリケーションマネージャ101は、検査計画内の検査のタイプに基づいて、検査計画がLEVEL 4に対応すると判定することができる。したがって、オペレータ訓練記録602内の個々のオペレータ訓練記録に基づいて、訓練レベルがLEVEL 4の以上のオペレータ(たとえば、オペレータGKL01、EM02および/またはMN04)は、検査計画を実行することができる。検査アプリケーションマネージャ101は、検査計画内の検査の複雑度に基づいて検査計画に関する訓練レベルを判定し、検査計画と関連付けられるプロセス制御領域を判定し、かつ/または、検査アプリケーションマネージャ101にプロセス制御担当者によって訓練レベルを割り当てることができる。
それに加えて、オペレータ訓練記録602を使用して、次にレベルの高い訓練レベルまで引き上げるためにオペレータが完了しなければならない訓練をオペレータに示し、かつ/または、別の権限を与えられたプロセス制御領域をオペレータの記録に加えるように示すことができる。たとえば、オペレータEM02は、訓練クラスまたは手順であるPDM202、PDM203、およびMEMS432を完了することによって、LEVEL 5訓練レベルまで移動することができる
図7、図8、図9Aおよび図9Bは、図1および/または図2の例示的な検査アプリケーションマネージャ101、例示的な検査アプリケーションジェネレータ202、例示的な検査アプリケーションコンペアラ206、例示的な検査アプリケーションモディファイア212、例示的なルーチンモニタ216、例示的な検査アプリケーションプロセッサ224および/または例示的な検査実行ベリファイア220を実施するために実行することができる例示的な方法のフローチャートである。図7、図8、図9Aおよび/または図9Bの例示的な方法は、プロセッサ、コントローラおよび/または任意のその他の好適な処理デバイスによって実行することができる。たとえば、図7、図8、図9Aおよび/または図9Bの例示的な方法は、フラッシュメモリ、CD、DVD、フロッピー(登録商標)ディスク、ROM、RAM、プログラム可能なプログラムROM(PROM)、電気的にプログラム可能なROM(EPROM)、電気的に消去可能なプログラム可能なPROM(EEPROM)、光学ストレージディスク、光学ストレージデバイス、磁気ストレージディスク、磁気ストレージデバイス、ならびに/あるいは、方法もしくはデータ構造の形態でプログラムコードおよび/または命令を担持または保存するために使用でき、プロセッサ、汎用コンピュータもしくは専用コンピューまたはプロセッサを有するその他の機械によってアクセスすることができる任意のその他の媒体(たとえば、図10に関して以下に論じられる例示的なプロセッサプラットフォームP10)などの任意の有形のコンピュータ読取可能媒体上に保存された符号化された命令において実施することできる。また、上記媒体の組合せは、コンピュータ読取可能な媒体の範囲に含まれる。
方法は、たとえば、プロセッサ、汎用コンピュータ、専用コンピュータまたは専用処理機械に、1つまたは複数の特定の方法を実施させる命令および/またはデータを含む。代替的には、図7、図8、図9Aおよび/または図9Bの例示的な方法のうちいくつかまたは全ては、1つまたは複数のASIC、1つまたは複数のPLD、1つまたは複数のFPLD、離散論理、ハードウェア、ファームウェアなどの任意の1つまたは複数の組合せを使用して実施することができる。
また、図7、図8、図9Aおよび/または図9Bの例示的な方法のうちいくつかまたは全ては、かわりに、手動オペレーションを使用して、または、前述の技法うちいずれかの任意の組合せ、たとえば、ファームウェア、ソフトウェア、離散論理および/またはハードウェアの任意の組合せとして実施することもできる。さらに、図7、図8、図9Aおよび/または図9Bの例示的なオペレーションを実施する多数のその他の方法を使用してもよい。たとえば、ブロックの実行順序を変更することができ、かつ/あるいは、上述のブロックのうち1つまたは複数を、変更し、除去し、再分割しまたは組み合わせることができる。それに加えて、図7、図8、図9Aおよび/または図9Bの例示的な方法のいずれかまたは全てを、たとえば、別々の処理スレッド、プロセッサ、デバイス、離散論理、回路などによって、順番におよび/または平行して実行することができる。
図7の例示的な方法700は、プロセス制御システムのオペレーション中に起こり得る問題および/またはイベントの適切な軽減に基づいて、検査アプリケーションを更新する。それぞれ対応するルーチンと関連付けられる複数の検査アプリケーションを更新するために、複数の例示的な方法700を平行してまたは順番に実行することができる。それに加えて、複数のルーチンが単一のプロセス制御システムを制御することができる例では、例示的な方法700をルーチン毎に実施することができ、あるいは代替的には、単一の例示的な方法700をプロセス制御システムに対して実施することができる。
図7の例示的な方法700は、プロセス制御ルーチンの選択を受信することによって開始する(ブロック702)。オペレータがその選択をすることができ、かつ/または、プロセス制御ルーチンが生成されるとその選択をすることができる。次に、例示的な方法700は、選択されたプロセス制御ルーチンから検査アプリケーションを発生させ(ブロック704)、その検査アプリケーションを図2の検査データベース208へ保存する(ブロック706)。例示的な方法700は次いで、選択されたプロセス制御ルーチンを監視する(ブロック708)。いくつかの例では、検査アプリケーションが生成されてからルーチンが監視されるまで、しばらく時間がかかる場合がある。たとえば、プロセス制御システムが認定されるまで、または操作可能になるまで、ルーチンを監視することができない。
例示的な方法700は、プロセス制御ルーチンのオペレーションの一部分が検査アプリケーション内の1つまたは複数の検査と実質的に同様かどうかを判定するステップに続く(ブロック710)。例示的な方法700はまた、イベントおよび/または問題が検査アプリケーション内の検査と実質的に同様かどうかを判定してもよい。ルーチンのオペレーションの一部分が少なくとも1つの検査と実質的に同様でない場合、例示的な方法700は、プロセス制御ルーチンを監視するステップに続く(ブロック708)。しかしながら、ルーチンのオペレーションの一部分が少なくとも1つの検査と実質的に同様である場合、例示的な方法700は、ルーチンのオペレーションの一部分の適切な軽減が存在するかどうかを判定する(ブロック712)。適切な軽減は、プロセス制御ルーチンによって実施される1つまたは複数のアクションを含んで、少なくとも1つの検査を1つまたは複数の特定されたしきい値内とすることができる。さらに、ルーチンのオペレーションの一部分が少なくとも1つの検査と実質的に同様である場合であっても、例示的な方法700は、その他の検査と実質的に同様であり得るルーチン、イベント、および/または問題のその他の部分(図示せず)に関して、プロセス制御ルーチンをなおも監視し続けることができる(ブロック708)。
例示的な方法700が、適切な軽減がプロセス制御システムおよび/またはルーチン内で起こらなかったと判定する場合には、例示的な方法700は、検査アプリケーションを更新せず(ブロック716)、プロセス制御ルーチンを監視し続ける(ブロック708)。しかしながら、例示的な方法700が、適切な軽減がプロセス制御システムおよび/またはルーチン内で起こったと判定する場合には、例示的な方法700は、オペレータが軽減を実行する権限をもつどうかを判定する(ブロック714)。
ルーチンおよび/またはプロセス制御システムがオペレータの補助なしに適切な軽減を自動的に実行する例では、例示的な方法700は、検査の完了と関連付けられる情報(たとえば、検査証明情報)を用いて検査アプリケーションを更新するステップに続く(ブロック718)。同じように、オペレータが軽減を実行する権限をもつ場合に、例示的な方法は、検査アプリケーションを更新する(ブロック718)。しかしながら、例示的な方法700がオペレータが軽減を実行する権限をもたなかったと判定する例では、例示的な方法700は、検査アプリケーションを更新せず(ブロック716)、プロセス制御ルーチンを監視し続ける(ブロック708)。代替的には、オペレータが軽減を実行する権限をもたなかった例では、例示的な方法700は、軽減を実行する権限をもつオペレータに、他の権限をもたないオペレータの作業を検証するようにプロンプトすることができる。例示的な方法700は、図2の訓練データベース228内の対応するオペレータ訓練記録にアクセスすることによって、オペレータがイベントおよび/または問題の軽減を実行する権限をもつかどうかを判定することができる。
例示的な方法700は、検査アプリケーションが更新されたあとに、新しい時間(たとえば、検査が実行されるべき時間間隔)を決定するステップに続く(ブロック720)。たとえば、検査が6ヶ月毎に実行されるべき場合には、例示的な方法700は、その新しい時間を、現在の日付から6ヶ月経過した日付および/または時間に設定することができる。例示的な方法700は次いで、検査に関するその新しい時間を保存し(ブロック722)、プロセス制御ルーチンを監視し続ける(ブロック708)。例示的な方法700は、オペレータにより終了させることができ、かつ/あるいは、プロセス制御ルーチンおよび/またはプロセス制御システムが停止するときに終了させることができる。
図8の例示的な方法710は、図7のプロセス制御ルーチンのオペレーションの一部分が検査アプリケーション内の少なくとも1つの検査と実質的に同様であるかどうかを判定する。例示的な方法710は、図7のブロック710の実行中の例示的な方法700の詳細なプロセスを示す。図8の例示的な方法710は、プロセス制御ルーチンのオペレーション中に、パラメータ、アルゴリズム、関数および/または計算が限度内から逸脱し、かつ/またはプロセス制御システム内の誤検出をトリガしたことを示す表示を受信することによって開始される(ブロック802)。他の例では、例示的な方法710は、ルーチンと関連付けられる任意のアクティビティの表示を受信することができる。
例示的な方法710は次いで、検査データベース208内の検査アプリケーションにアクセスする(ブロック804)。次に、例示的な方法710は、1つまたは複数の検査内に含まれるパラメータ、アルゴリズム、関数および/または計算が検査アプリケーションの一部であるかどうかを判定する(ブロック806)。例示的な方法710は、パラメータ、アルゴリズム、関数および/または計算と関連付けられる任意の識別子を検査内の期間、変数および/または範囲と相互参照することによって、パラメータ、アルゴリズム、関数および/または計算が1つまたは複数の検査内に含まれるかどうかを判定することができる。代替的には、例示的な方法710は、検査のうち1つまたは複数が、ルーチン内のロケーションに対する参照を含み、パラメータ、アルゴリズム、関数および/または計算と整合するかどうかを判定することができる。
例示的な方法710が、少なくとも1つの検査がパラメータ、アルゴリズム、関数および/または計算と整合すると判定できない場合、例示的な方法710は、プロセス制御ルーチンを監視し続ける(図7のブロック708)。しかしながら、例示的な方法700が、少なくとも1つの検査が、パラメータ、アルゴリズム、関数および/または計算と対応すると判定する場合には、例示的な方法は、1つまたは複数の検査のうちどれが、限度内から逸脱した、または不良をトリガしたパラメータ、アルゴリズム、関数および/または計算に対応するかを判定する(ブロック808)。
例示的な方法710は次いで、逸脱した限度および/または検出された不良が、対応する1つまたは複数の検査の1つまたは複数の限度に整合するかどうか、および/またはその限度を超えるかどうかを判定する(ブロック810)。たとえば、例示的な方法710は、フィールドデバイスが、プロセス機能の限度である5バールから逸脱した4バールの入力を受信したと判定することができる。しかしながら検査が0.5バールから2バールまでの入力について有効である場合、4バールのパラメータ値は検査限度から逸脱せず、例示的な方法710は、完了したときに検査を更新しない。別の例では、フィールドデバイスが、プロセス制御ルーチン機能の限度である5バールから逸脱する2バールの入力を受信する場合、例示的な方法710は、パラメータ値も検査限度値である2.5バールから逸脱するので、検査がイベントと実質的に同様であることを示す。限度または不合格が、1つまたは複数の対応する検査の1つまたは複数の限度と整合した、あるいはそれらの限度から逸脱したと判定されると、例示的な方法710は、プロセス制御ルーチンのオペレーションの一部分が、検査アプリケーション内の少なくとも1つの検査と実質的に同様であることを示すステップに続く(ブロック812)。次いで、例示的な方法710は終了する。
図9Aおよび図9Bの例示的な方法900は、プロセス制御オペレータによる検査の完了を管理する。複数の例示的な方法900を平行してまたは順番に実施して、それぞれ対応するルーチンと関連付けられる複数の検査アプリケーションを更新することができる。それに加えて、複数のルーチンが単一のプロセス制御システムを制御することができる例では、例示的な方法900をルーチン毎に実施することができ、あるいは代替的には、単一の例示的な方法800をプロセス制御システムに対して実行することができる。さらに、検査アプリケーション内の検査を実行するオペレータ毎に、例示的な方法900を実行することができる。
図9Aの例示的な方法900は、プロセス制御ルーチンの選択を受信することによって開始される(ブロック902)。プロセス制御ルーチンは、検査完了時間が期限切れした、および/または検査完了時間が期限切れしそうなあらゆるの検査を実行するためにオペレータにより選択される。例示的な方法900は次いで、選択されたプロセス制御ルーチンから検査アプリケーションを発生し(ブロック904)、少なくとも1つの検査を検査アプリケーション内で実行すべきかどうかを判定することができる(ブロック906)。例示的な方法900は、いずれかの検査の検証時間および/または実行時間が近づいているか、または期限切れになっているかどうかを判定することによって、少なくとも1つの検査を実行すべきかどうかを判定することができる。オペレータによって実行されるべき検査がないと例示的な方法900が判定する場合、例示的な方法900は終了する。
しかしながら、例示的な方法900が、少なくとも1つの検査がオペレータにより実行されるべきであると判定する場合、例示的な方法900は、検査計画、検査手順および/または作業命令を発生させる(ブロック908)。次に、例示的な方法900は、身分証明についてオペレータにプロンプトする(ブロック910)。例示的な方法900は次いで、オペレータと関連付けられる身分証明を受信し、オペレータが検査計画を動作させるおよび/または実行する権限をもつかどうかを判定することができる(ブロック912)。例示的な方法900は、オペレータの訓練記録にアクセスすることによって、オペレータが権限をもつかどうかを判定することができる。オペレータが検査計画を実行する権限をもたない場合、例示的な方法900は、検査計画を実行する権限をもつオペレータを配置するように、その権限をもたないオペレータにプロンプトし(ブロック914)、次いで、身分証明についてその権限をもつオペレータにプロンプトすることができる(ブロック910)。代替的には、例示的な方法900は、検査計画をフィルタリングし、オペレータが、オペレータが実行する権限を持つ計画内の検査を実行できるようにすることができる。
オペレータが検査計画を実行する権限をもつ場合には(ブロック912)、例示的な方法900が検査計画を実行するようにオペレータにプロンプトするステップに続く(ブロック916)。いくつかの例では、例示的な方法900は、確実にオペレータが検査の定義されたシーケンスに従うように、および/または、確実にオペレータが各検査を正しく実行するように、検査計画の実行を管理することができる。それに加えて、例示的な方法900は、検査証明データについてオペレータにプロンプトすることができる。
次に、図9Bの例示的な方法900は、オペレータによって実行された検査に対応して、プロセス制御システムからデータを受信するステップにより継続する(ブロック918)。受信されたデータを、ルーチンのオペレーション中に検出し、オペレータが入力し、ならびに/あるいは、プロセス制御システム内のフィールドデバイスおよび/またはコントローラにより直接提供することができる。例示的な方法900は次いで、受信されたデータが、検査計画内の少なくとも1つの検査の適切な軽減に対応するかどうか判定する(ブロック920)。
例示的な方法900は、受信されたデータおよび/または受信されたデータに関連付けられる識別子を、検査のそれぞれと関連付けられる適切な軽減フィールドと相互参照することによって、受信されたデータが適切な軽減に対応するかどうかを判定することができる。そのデータが適切な軽減に対応しない場合、例示的な方法900は、プロセス制御システムからデータを受信し続けることができる(ブロック918)。それに加えて、データが適切な軽減に対応する場合であっても、例示的な方法900は、プロセス制御システムからデータを受信し続けることができる(ブロック918)。さらに、データが適切な軽減に対応する場合、例示的な方法は、どの1つまたは複数の検査がデータに対応するかを判定し、検査計画を更新して1つまたは複数の対応する検査が完了したこと(たとえば、プロセス制御ルーチンの一部分が検証されること)を示す(ブロック922)。この表示は、検査証明情報、検査が完了した時間、検査を実行したオペレータの識別値、適切な軽減の結果などを含むことができる。
図9Bの例示的な方法900は、検査計画が、オペレータによりまだ実行されていないいずれかの追加検査があるかどうかを判定するステップに続く(ブロック924)。追加検査がある場合、例示的な方法900は、プロセス制御システムからデータを受信するステップに続く(ブロック918)。しかしながら、実行されるべき追加検査がない場合には、例示的な方法900は、完了した1つまたは複数の検査と関連付けられる情報を用いて検査アプリケーションを更新する(ブロック926)。例示的な方法900は次いで、完了した検査のそれぞれに関する新たな検査完了日を判定する(ブロック928)。例示的な方法は次いで、それぞれの検査に関する新たな検査完了日を検査アプリケーションに保存し(ブロック930)、例示的な方法900が終了する。
図10は、本明細書に記載される例示的な方法および装置を実施するために使用することができる例示的なプロセッサシステムP10のブロック図である。たとえば、例示的なプロセッサシステムP10と同様または同一のプロセッサシステムを使用して、図1および/または図2の例示的な検査アプリケーションマネージャ101、例示的な検査アプリケーションジェネレータ202、例示的な検査アプリケーションコンペアラ206、例示的な検査アプリケーションモディファイア212、例示的な検査アプリケーションプロセッサ224および/または例示的な検査実行ベリファイア220を実施することができる。複数の周辺機器、インターフェース、チップ、メモリなどを含むものとして例示的なプロセッサシステムP10が以下に記載されるが、それらの要素のうち1つまたは複数は、例示的な検査アプリケーションマネージャ101、例示的な検査アプリケーションジェネレータ202、例示的な検査アプリケーションコンペアラ206、例示的な検査アプリケーションモディファイア212、例示的な検査アプリケーションプロセッサ224および/または例示的な検査実行ベリファイア220のうち1つまたは複数を実施するために使用されるその他の例示的なプロセッサシステムから省略することができる。
図10に示されるように、プロセッサシステムP10は、相互接続バスP14に結合されるプロセッサP12を含む。プロセッサP12は、レジスタセットまたはレジスタスペースP16を含み、このレジスタスペースP16は、全体的にオンチップとして図10に示されるが、代替的には、全体的にまたは部分的にオフチップで配置され、かつ、専用の電気接続を介して、および/または相互接続バスP14を介して、プロセッサP12に直接結合される。プロセッサP12は、任意の好適なプロセッサ、処理ユニットまたはマイクロプロセッサとすることができる。図10には示されていないが、システムP10は、マルチプロセッサシステムとすることができ、したがって、プロセッサP12と同一または同様であり、相互接続バスP14に通信可能に結合される1つまたは複数の追加のプロセッサを含むことができる。
図10のプロセッサP12は、メモリコントローラP20および周辺入出力(I/O)コントローラP22を含むチップセットP18に結合される。よく知られるように、チップセットは、典型的には、I/O機能およびメモリ管理機能ならびに複数の汎用および/または特殊用途レジスタ、タイマーなどを提供し、チップセットP18に結合された1つまたは複数のプロセッサによってアクセスでき、または使用される。メモリコントローラP20は、プロセッサP12(または複数のプロセッサが存在する場合には複数のプロセッサ)が、システムメモリP24および大容量ストレージメモリP25にアクセスできるようにする機能を実行する。
システムメモリP24は、たとえば、静的ランダムアクセスメモリ(SRAM)、動的ランダムアクセスメモリ(DRAM)、フラッシュメモリ、リードオンリーメモリ(ROM)などのような任意の所望のタイプの揮発性メモリおよび/または不揮発性メモリを含むことができる。大容量ストレージメモリP25は、任意の所望のタイプの大容量ストレージデバイスを含むことができる。たとえば、例示的なプロセッサシステムP10を使用して検査アプリケーションマネージャ101を実施する場合(図2)、大容量ストレージメモリP25は、ハードディスクドライブ、光学ドライブ、テープストレージデバイスなどを含むことができる。代替的には、例示的なプロセッサシステムP10を使用して検査データベース208および/または訓練データベース228を実施する場合、大容量ストレージメモリP25は、ソリッドステートメモリ(たとえば、フラッシュメモリ、RAMメモリなど)、磁気メモリ(たとえば、ハードドライブ)、または検査データベース208および/または訓練データベース228内の大容量ストレージに好適な任意のその他のメモリを含むことができる。
周辺I/OコントローラP22は、プロセッサP12が、周辺入出力(I/O)デバイスP26およびP28ならびにネットワークインターフェースP30と周辺I/OバスP32を介して通信できるようにする機能を実行する。I/OデバイスP26およびP28は、たとえば、キーボード、ディスプレイ(たとえば、液晶ディスプレイ(LCD)、陰極線管(CRT)ディスプレイなど)、ナビゲーションデバイス(たとえば、マウス、トラックボール、静電式タッチパッド、ジョイスティックなど)などのような任意の所望のタイプのI/Oデバイスとすることができる。ネットワークインターフェースP30は、たとえば、プロセッサシステムP10が別のプロセッサシステムと通信できるようにするイーサネット(登録商標)デバイス、非同期転送モード(ATM)デバイス、802.11デバイス、DSLモデム、ケーブルモデム、セルラ式モデムなどとすることができる。
メモリコントローラP20およびI/OコントローラP22が、チップセットP18内の別個の機能ブロックとして図10に記載されるが、これらのブロックによって実行される機能は、単一の半導体回路内に集積したり、2つ以上の別個の集積回路を使用して実装したりすることができる。
上述された例示的な方法および/または装置のうち少なくともいくつかは、コンピュータプロセッサ上で動作する1つまたは複数のソフトウェアおよび/またはファームウェアプログラムによって実施される。しかしながら、特定用途向け集積回路、プログラム可能な論理アレイおよびその他のハードウェアデバイスを含むが、これらには限定されない専用のハードウェア実施形態は、同様に、本明細書に記載された例示的な方法および/または装置のうちいくつかまたは全てを、全体的にまたは部分的に実装するように構築することができる。さらに、分散処理またはコンポーネント/オブジェクト分散処理、並行処理あるいは仮想機械処理を含むことができるが、これらには限定されない代替的なソフトウェア実施形態も、本明細書に記載された例示的な方法および/またはシステムを実装するように構築することができる。
また、本明細書に記載された例示的なソフトウェアおよび/またはファームウェア実施形態は、磁気媒体(たとえば、磁気ディスクまたはテープ)、光学ディスクなどの光磁気媒体または光学媒体、あるいは、メモリカードまたは1つもしくは複数のリードオンリー(不揮発性)メモリ、ランダムアクセスメモリもしくはその他の書き換え可能(揮発性)メモリを収容するその他のパッケージなどのソリッドステート媒体のような有形の保存媒体に保存されることを留意されたい。したがって、本明細書に記載された例示的なソフトウェアおよび/またはファームウェアは、上述のような有形なストレージ媒体または後継のストレージ媒体に保存できる。上記明細書が、特定の標準およびプロトコルを参照して例示的なコンポーネントおよび機能について記載する限り、本特許の範囲は、このような標準およびプロトコルに限定されるものではないことが理解されよう。たとえば、インターネットおよびその他のパケット交換ネットワーク送信(たとえば、送信制御プロトコル(TCP)/インターネットプロトコル(IP)、ユーザデータグラムプロトコル(UDP)/IP、ハイパーテキストマークアップ言語(HTML)、ハイパーテキスト転送プロトコル(HTTP))に関する標準はそれぞれ、現在の技術水準の例を代表するものである。このような標準は、同じ全体的な機能を有するより高速またはより効率的な均等物によって、周期的に取って代わられる。したがって、同じ機能を有する代替の標準およびプロトコルは、本特許によって企図され、添付の特許請求の範囲に含まれるように意図される均等物である。
それに加えて、本特許は、ハードウェア上で実行されるソフトウェアまたはファームウェアを含む例示的な方法および装置を開示するが、このようなシステムは単に例示的なものに過ぎず、限定としてみなされるべきではないことに留意されたい。たとえば、これらのハードウェアコンポーネントおよびソフトウェアコンポーネントのいずれかまたは全ては、ハードウェアでのみ、ソフトウェアでのみ、ファームウェアでのみ、あるいは、ハードウェア、ファームウェアおよび/またはソフトウェアの何らかの組合せで実施され得ることが企図される。このように、上記明細書は、例示的な方法、システムおよび機械アクセス可能媒体について記載したが、これらの例は、このようなシステム、方法および機械アクセス可能な媒体を実施する唯一の方法というわけではない。したがって、ある特定の例示的な方法、システムおよび機械アクセス可能媒体を本明細書に記載してきたが、本特許の及ぶ範囲はそれらに限定されるものではない。反対に、本特許は、文言上、あるいは均等論の下のいずれかで、明らかに添付の特許請求の範囲となる全ての方法、システム、機械アクセス可能媒体を網羅する。