(57)【特許請求の範囲】
【請求項１】
マスタクロックと、
前記マスタクロックに通信可能に結合され、第一のカウンタと前記マスタクロックに時間同期される第二のクロックとを有する第一のデバイスと、
前記第一のデバイスに通信可能に結合され、イベントバッファと第二のカウンタとを有する第二のデバイスと
を備えており、
前記第二のデバイスが、イベントを検出すると、前記イベントバッファ内に前記イベントの指標を格納すると共に、前記イベントの前記検出時間における前記第二のカウンタの数値を、イベントカウンタ数値として前記イベントバッファ内に格納するようにプログラムされ、さらに、イベントメッセージを前記第一のデバイスに送信するようにプログラムされている第二のプロセッサを備え、前記イベントメッセージが、前記イベントの前記指標および前記イベントの前記イベントカウンタ数値の指標を有しており、
前記第一のデバイスが、前記第一のカウンタ、前記第二のクロック、および前記イベントメッセージ内の前記イベントカウンタ数値の前記指標を利用して、前記イベントの前記検出に絶対時間を割り当てるようにプログラムされる第一のプロセッサを有してなるイベントシーケンス検出システム。
【請求項２】
前記第一のデバイスに通信可能に結合されたデータベースをさらに有し、
前記第一のデバイスの前記プロセッサがさらなるイベントメッセージを前記データベースに送信するようにプログラムされ、前記さらなるイベントメッセージが、前記イベントの前記指標および前記イベントに割り当てられる前記絶対時間を有する請求項１記載の前記イベントシーケンス検出システム。
【請求項３】
前記データベースが、前記さらなるイベントメッセージの受信に応答する応答メッセージを送信するようにプログラムされるさらなるプロセッサを有する請求項２記載の前記イベントシーケンス検出システム。
【請求項４】
前記データベースが前記さらなるイベントメッセージを受信したという応答を前記第二のデバイスが受信するまで、前記第二のデバイスの前記プロセッサは、イベントバッファ内の前記イベント指標および前記イベントカウンタ数値を保持するようにさらにプログラムされる請求項３記載の前記イベントシーケンス検出システム。
【請求項５】
前記第二のデバイスの前記プロセッサが、前記イベントバッファ内で前記検出されたイベントの追加のイベント情報を格納し、前記検出されたイベントの前記追加のイベント情報を、前記イベントメッセージの一部として送信するようにプログラムされる請求項１記載のイベントシーケンス検出システム。
【請求項６】
前記第二のデバイスの前記第二のプロセッサが、前記格納されたイベントカウンタ数値を、前記イベントメッセージ内の前記イベントカウンタ数値の前記指標として送信するようにプログラムされ、さらに、特定のインスタンスの前記第二のカウンタの数値を、前記イベントメッセージの一部として、前記第一のデバイスに送信するようにプログラムされており、
前記第一のプロセッサが、前記特定のインスタンスの前記第一のカウンタの数値を格納し、前記特定のインスタンスの前記第一のカウンタの数値、前記特定のインスタンスの前記第二のカウンタの数値、および前記イベントカウンタ数値を利用し、前記絶対時間を前記イベントの検出に割り当てるようにプログラムされる請求項１記載のイベントシーケンス検出システム。
【請求項７】
前記特定のインスタンスが、前記第二のデバイスが前記イベントメッセージを前記第一のデバイスに送信する開始のインスタンスである請求項６記載のイベントシーケンス検出システム。
【請求項８】
前記第一のデバイスの前記プロセッサが、第二のカウンタ数値差を、前記特定のインスタンスの前記第二のカウンタの数値と前記イベントカウンタの数値との間の差として求め、該第二のカウンタ数値差を、前記第一のカウンタ及び前記第二のカウンタに関連するスケーリングされた数値差に変換し、前記スケーリングされた数値差と前記特定のインスタンスの前記第一のカウンタの数値との間の差を求めることにより、前記イベントの第一のイベントカウンタ数値を決定し、前記イベントの検出に関連する絶対時間を、前記第二のクロックに基づく、前記イベントの前記第一カウンタ数値に関連する絶対時間として割り当てるようにプログラムされる請求項６記載のイベントシーケンス検出システム。
【請求項９】
前記第二のデバイスの前記プロセッサが、第二のカウンタ数値差を、特定のインスタンスの前記第二のカウンタ数値と前記イベントの前記イベントカウンタの数値との間の差として判断し、前記第二のカウンタの数値差を、前記イベントカウンタの数値の前記指標として送信するようにプログラムされており、
前記第一のデバイスの前記プロセッサが、前記第二のクロック、前記特定のインスタンスの前記第一のカウンタの数値、および前記第二のカウンタ数値差を基にして前記イベントの検出の前記絶対時間を割り当てるようにプログラムされる請求項１記載のイベントシーケンス検出システム。
【請求項１０】
前記第一のデバイスの前記プロセッサが、前記第二のカウンタの数値差から、スケーリングされた第一のカウンタ数値差を生成するようにプログラムされる請求項９記載のイベントシーケンス検出システム。
【請求項１１】
前記特定のインスタンスが、前記第二のデバイスが前記イベントメッセージを前記第一のデバイスに送信する開始時間である請求項９記載のイベントシーケンス検出システム。
【請求項１２】
前記第一のデバイスの前記プロセッサが、前記第二のカウンタ数値差を、スケーリングされた数値差に変換し、前記スケーリングされた数値差と前記特定のインスタンスの前記第一のカウンタの数値との間の差を求めることにより、第一イベントカウンタ数値を決定し、前記イベントの検出に関連する前記絶対時間を、前記第二のクロックに基づいく前記イベントの前記第一のイベントカウンタ数値に関連する絶対時間として割り当てるようにプログラムされる請求項９記載のイベントシーケンス検出システム。
【請求項１３】
前記マスタクロックが衛星利用測位システム（GPS）受信機を有する請求項１記載のイベントシーケンス検出システム。
【請求項１４】
データベースと、
マスタクロックと、
前記マスタクロックに通信可能に結合されて、それぞれが第一のカウンタおよび前記マスタクロックに時間同期された第二のクロックを有する一または複数の第一のデバイスと
前記第一のデバイスの一つにそれぞれが通信可能に結合された複数の第二のデバイスとを備えており、
前記第二のデバイスがそれぞれ、イベントバッファ、第二のカウンタ、および第二のプロセッサを有し、そのプロセッサは、イベントを検出すると、前記イベントバッファ内に該イベントの指標を格納し、該イベントの検出時間の前記第二のカウンタの数値を、前記イベントバッファ内に、イベントカウンタ数値として格納するようにプログラムされ、さらに、イベントメッセージを前記第一のデバイスの関連する一つに送信するようにプログラムされ、該イベントメッセージが、前記イベントの指標および前記イベントの前記イベントカウンタ数値の指標を有しており、
前記第一のデバイスの少なくとも一つが、さらに、前記第一のカウンタ、前記第二のクロック、および前記イベントメッセージ内の前記イベントカウンタ数値の前記指標を利用して、前記イベントの検出に絶対時間を割り当てるようにプログラムされる第一のプロセッサを有してなるイベントシーケンス検出システム。
【請求項１５】
前記第一のデバイスの前記少なくとも一つの前記プロセッサが、前記イベントの前記指標および前記イベントの検出に割り当てられた前記絶対時間を有するさらなるイベントメッセージを、前記データベースに送信するようにプログラムされる請求項１４記載のイベントシーケンス検出システム。
【請求項１６】
前記データベースが、前記さらなるイベントメッセージをの受信に応答する応答メッセージを送信するようにプログラムされたさらなるプロセッサを有する請求項１５記載のイベントシーケンス検出システム。
【請求項１７】
前記データベースが前記格納されたイベント指標およびイベントカウンタ数値に関連するさらなるイベントメッセージを受信したという応答を前記第二のデバイスが受信するまで、前記第二のデバイスのそれぞれの前記プロセッサが、前記イベントバッファ内に関連するイベント指標およびイベントカウンタ数値を保持するようにプログラムされる請求項１６記載のイベントシーケンス検出システム。
【請求項１８】
前記第二のデバイスのそれぞれの前記プロセッサが、前記関連イベントバッファ内に検出されたイベントの追加のイベント情報を格納し、前記検出されたイベントの前記追加のイベント情報を、前記イベントメッセージの一部として送信するようにプログラムされる請求項１４記載のイベントシーケンス検出システム。
【請求項１９】
前記第二のデバイスのそれぞれの前記プロセッサが、関連するイベントカウンタ数値を、前記イベントメッセージ内の前記イベントカウンタの指標として送信するようにプログラムされ、特定のインスタンスの前記第二のカウンタの数値を、前記第一のデバイスに関連する一つに、前記イベントメッセージの一部として送信するようにプログラムされており、
前記第一のデバイスの前記関連する一つの前記プロセッサが、前記特定のインスタンスの前記第一のカウンタの数値を格納し、前記特定のインスタンスの前記第一のカウンタの数値、前記特定のインスタンスの前記第二のカウンタの数値、前記イベントカウンタの数値、および前記第二のクロックを利用し、前記イベントの前記検出に前記絶対時間を割り当てるようにプログラムされる請求項１４記載のイベントシーケンス検出システム。
【請求項２０】
前記第一のデバイスが制御装置であり、前記第二のデバイスが入力／出力デバイスである請求項１４記載のイベントシーケンス検出システム。
【請求項２１】
前記第二のデバイスのそれぞれの前記プロセッサが、数値差を、前記イベントカウンタ数値の一つと特定のインスタンスの前記第二のカウンタの数値との間の差として計算し、前記数値差を、前記イベントメッセージ内の前記イベントカウンタ数値の前記指標として送信するようにプログラムされており、
前記第一のデバイスの前記関連する一つの前記プロセッサが、特定のインスタンスの前記第一のカウンタの数値を格納し、前記特定のインスタンスの前記第一のカウンタの数値、前記数値差、および前記第二のクロックを利用して、前記イベントの検出に前記絶対時間を割り当てるようにプログラムされる請求項１４記載のイベントシーケンス検出システム。
【請求項２２】
データベース、マスタクロック、前記マスタクロックと通信可能に結合されると共に第一のプロセッサ、第一のメモリ、第一のカウンタ、および前記マスタクロックと時間同期された第二のクロックを有する第一のデバイス、ならびに前記第一のデバイスと通信可能に結合されると共に第二のプロセッサ、第二のメモリ、イベントバッファ、および第二のカウンタを有する第二のデバイスを有するプロセス制御システム内で利用するイベントシーケンスを検出するコンピュータ読み取り可能な指令を格納するように構成されたコンピュータ読み取り可能な媒体であって、該コンピュータ読み取り可能な指令は、
前記第一のメモリ内に格納され、前記第一のプロセッサ上で実行されるように構成される第一のルーチンと、
前記第二のメモリで格納され、前記第二のプロセッサ上で実行されるように構成される第二のルーチンとを有しており、
前記第二のプロセッサは、前記第二のデバイスによってイベントを検出すると、前記イベントバッファ内に前記イベントの指標を格納し、前記イベントの前記検出時間における前記イベントバッファ内のイベントカウンタ数値として、前記第二のカウンタの数値を格納し、イベントメッセージを前記第一のデバイスにさらに送信し、該イベントメッセージは前記イベントの前記指標および前記イベントの前記イベントカウンタ数値の指標を有し、
前記第一のルーチンが前記第一のカウンタ、前記第二のクロック、および前記イベントカウンタの前記指標を利用して、絶対時間を前記イベントの前記検出に割り当てるように構成されてなる、媒体。
【請求項２３】
前記第一のルーチンが、前記イベントの前記指標および前記イベントに割り当てられた前記絶対時間を有するイベントメッセージをさらに前記データベースに送信するように構成される請求項２２記載のコンピュータ読み取り可能な媒体。
【請求項２４】
前記データベースは、第三のプロセッサおよび第三のメモリを備えており、前記第三のメモリに格納され、前記第三のプロセッサ上で実行され、前記さらなるイベントメッセージの前記受信に応答する応答メッセージを送信するように構成されている第三のルーチンをさらに有する請求項２３記載のコンピュータ読み取り可能な媒体。
【請求項２５】
前記第二のルーチンが、前記イベントカウンタ数値を、前記イベントカウンタ数値の前記指標として送信すると共に、特定のインスタンスの前記第二のカウンタの数値を、前記イベントメッセージの一部として第一のデバイスに送信するように構成されており、
前記第一のルーチンが、前記特定のインスタンスの前記第一のカウンタの数値を格納すると共に、前記特定のインスタンスの前記第一のカウンタの数値、前記特定のインスタンスの前記第二のカウンタの数値、前記イベントカウンタ数値、および前記第二のクロックを利用して、前記イベントの前記検出に前記絶対時間を割り当てるように構成される請求項２２記載のコンピュータ読み取り可能な媒体。
【請求項２６】
前記第二のルーチンが、数値差を、前記カウンタ数値と特定のインスタンスの前記第二のカウンタの数値との間の差として決定すると共に、前記数値差を、前記イベントカウンタ数値の前記指標として送信するように構成されており、
前記第一のルーチンが前記特定のインスタンスの前記第一のカウンタの数値を格納すると共に、前記特定のインスタンスの第一のカウンタの数値、前記数値差、および前記第二ののクロックを利用して、前記イベントの前記検出に前記絶対時間を割り当てるように構成される請求項２２記載のコンピュータ読み取り可能な媒体。
【請求項２７】
データベース、マスタクロック、前記マスタクロックと通信可能に結合される共に第一のプロセッサ、第一のメモリ、第一のカウンタ、および第二のクロックを有する第一のデバイス、ならびに前記第一のデバイスと通信可能に結合される共に第二のプロセッサ、第二のメモリ、イベントバッファおよび第二のカウンタを有する第二のデバイスを有するプロセス制御システム内のイベントを検出する方法であって、
前記第二のクロックを前記マスタクロックに時間同期させるステップと、
前記イベントバッファ内にイベントの指標と格納すると共に、前記イベントを検出すると、前記第二のカウンタの数値を、前記イベントバッファ内にイベントカウンタ数値として格納するステップと、
前記イベントの前記指標と前記イベントカウンタ数値の指標を有する、前記第二のデバイスからのイベントメッセージを前記第一のデバイスに送信するステップと、
前記第一のカウンタ、第二のクロック、および前記イベントカウンタ数値の前記指標を利用して、前記イベントの前記検出に絶対時間を割り当てるステップと
を有してなるイベントを検出する方法。
【請求項２８】
前記イベントの指標および前記イベントに割り当てる前記絶対時間を含むさらなるイベントメッセージを前記データベースに送信するステップをさらに有する請求項２７記載のイベントを検出する方法。
【請求項２９】
前記データベースによる前記さらなるイベントメッセージの前記受信に応答する応答メッセージを前記第二のデバイスに送信するステップをさらに有する請求項２８記載のイベントを検出する方法。
【請求項３０】
前記データベースが前記さらなるイベントメッセージを受信したということを指す応答メッセージを前記第二のデバイスが受信するまで、前記イベントバッファ内に前記イベント指標および前記イベントカウンタ数値を保持するステップをさらに有する請求項２９記載のイベントを検出する方法。
【請求項３１】
前記イベントバッファ内に前記検出されたイベントの追加のイベント情報を格納し、前記検出されたイベントの前記追加のイベント情報を、前記イベントメッセージの一部として送信するステップをさらに有する請求項２７記載のイベントを検出する方法。
【請求項３２】
特定のインスタンスの前記第一のカウンタの数値および前記第二のカウンタの数値を格納するステップをさらに有しており、
前記イベントの前記検出に絶対時間を割り当てるのに、前記第一のカウンタ、前記第二のクロック、および前記イベントカウンタ数値の前記指標を利用するステップが、前記イベントの前記検出の前記絶対時間を、前記特定のインスタンスの前記第一のカウンタの数値から前記特定のインスタンスの前記第二カウンタ数値と前記イベントカウンタ数値との間の差として定義されるカウンタ数値を引いた数値に関連するとして前記第二のクロックによって定義される時間として決定するステップを有し、この差が前記イベントカウンタの時間基準から、前記第一のカウンタの時間基準にスケーリングされる請求項２７記載のイベントを検出する方法。
【請求項３３】
イベントメッセージを送信するステップが、前記イベントカウンタ数値および特定のインスタンスの前記第二のカウンタの数値を、前記イベントメッセージの一部として送信するステップを有する請求項３２記載のイベントを検出する方法。
【請求項３４】
前記特定のインスタンスが、前記イベントメッセージを前記第二のデバイスから前記第一のデバイスに送信する開始時間である請求項３２記載のイベントを検出する方法。
【請求項３５】
イベントメッセージを送信するステップが、前記イベントカウンタ数値と前記特定のインスタンスの前記第二のカウンタの数値との間の差を、前記イベントメッセージの一部として送信するステップを含む請求項３２記載のイベントを検出する方法。
【請求項３６】
前記第二のカウンタの測定値差を、前記第一のカウンタの時間基準および前記第二のカウンタの時間基準に基づいて第一のカウンタの測定値差にスケーリングし、前記特定のインスタンスの第一のカウンタ値と前記第一のカウンタの前記測定値差との間の差を計算して前記イベントの前記検出に関連する第一のイベントカウンタ数値を定義することが必要な場合、前記イベントの前記検出に割り当てられた絶対時間を決定するステップが、前記イベントカウンタ数値と前記特定のインスタンスの前記第二のカウンタの数値との間の差を、前記第二のカウンタの測定値差として計算するステップを含む請求項３２記載のイベントを検出する方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は一般的にプロセス制御システムに関するものであり、より詳細にはプロセス制御システム内に発生する検出可能なイベントシーケンスの検出、格納、および報告に関するものである。
【０００２】
【従来の技術及び発明が解決しようとする課題】
プロセス制御システムは、例えば、化学プロセス、石油プロセス、またはその他のプロセス内で利用されており、通常、一または複数のプロセス制御装置を備え、それらはアナログバス、デジタルバス、またはアナログ／デジタルを組み合わせたバスを介して、少なくとも一つのホストワークステーションまたはオペレータワークステーション、および、一または複数のフィールドデバイスと通信可能に結合されている。それらのフィールドデバイスは、例えば、バルブ、バルブポジショナ、スイッチ、およびトランスミッタ（例えば、温度センサ、圧力センサ、および流速センサ）であっても良く、バルブの開閉およびプロセスパラメータの測定のようなプロセスプラント内の機能を実行する。プロセス制御装置は、フィールドデバイスにより行なわれるプロセス測定および／またはそのフィールドデバイスに属するその他の情報を指す信号を受信し、この情報を利用して制御ルーチンを実施し、それから制御信号を発生し、その信号をバス上でフィールドデバイスに送信しプロセスの操作を制御する。フィールドデバイスおよび制御装置からの情報は、通常、オペレータワークステーションにより実行される一または複数のアプリケーションが利用可能であり、オペレータがプロセスに関する任意の所望の機能を実行するのを可能にしており、それらは、例えば、プロセスの現在の状態を見ることや、プロセス操作を修正すること等である。
【０００３】
過去においては、従来技術のフィールドデバイスが利用され、アナログバスまたはアナログ回線を介して、アナログ（例えば、４〜２０milliamp）信号をプロセス制御装置へおよびプロセス制御装置から送信および受信していた。これらの４〜２０milliamp信号は事実上制限されており、デバイスにより行なわれる測定の表示または、そのデバイスの操作制御に必要なそのデバイスが発生する制御信号の表示に限られていた。しかしながら、この約１０年において、マイクロプロセッサおよびメモリを有するスマートフィールドデバイスがプロセス制御産業において普及してきた。プロセス内において主機能を実行することに加えて、スマートフィールドデバイスはそのデバイスに属するデータを格納し、その制御装置および／またはその他のデバイスとデジタルまたはデジタルとアナログとを組み合わせた形式で通信し、自己校正、識別、および診断等のような第二のタスクを実行する。HART（登録商標）プロトコル、PROFIBUS（登録商標）プロトコル、WORLDFIP（登録商標）プロトコル、Device~Net（登録商標）プロトコル、およびCANプロトコルのような多くの標準型および開放型スマートデバイス通信プロトコルが開発されてきており、異なる製造業者により作られたスマートフィールドデバイスが同じプロセス制御ネットワーク内で一緒に利用されることを可能にしている。
【０００４】
さらに、プロセス制御産業内においてプロセス制御機能を非集中型にしようとする動きが現れてきている。例えば、Fieldbus Foundationにより普及された全デジタル型２線式バスプロトコルはFOUNDATION（商標）Fieldbus（以下「Fieldbus」）プロトコルとして知られており、異なるフィールドデバイス内に位置する機能ブロックを利用し、以前集中型制御装置内で実行されていた制御操作を実行する。特に、各Fieldbusフィールドデバイスは一または複数のブロックを有し実行することが可能であり、そのそれぞれはその他の機能ブロックから入力を受信しおよび／またはその他の機能ブロックに出力を提供し（同じデバイス内かまたは異なるデバイス内のどちらかで）、幾つかのプロセス制御操作を実行する。それらは、例えば、プロセスパラメータの測定または検出、デバイスの制御、または比例微分積分（PID）制御ルーチンを実施するような制御操作の実行である。一つのプロセス制御システム内の異なる機能ブロックはお互いに通信するように構成されており（例えば、バス上で）、一または複数のプロセス制御ループを形成し、その個々の操作はそのプロセス全体に亘って広がっており、従って非集中型である。
【０００５】
さらに、多くのプロセスプラントにおいては、ある安全スイッチまたは閉鎖バルブの位置に関連する信号、あるセンサにより検出されるオーバフローまたはアンダーフローを指す信号、重要な発電または制御デバイスの操作に関連する信号、故障検出デバイスからの信号、またはプラント内のデバイスに関連するその他のバイナリ式オンオフ信号のような重要なイベントに関連する信号が監視されており、これらの信号の変化を検出しそれによりプロセスプラント内の「イベント」を検出している。これらの監視されているイベントが発生する時間は記録されてイベントシーケンスデータベース内に格納され、例えば故障またはその他の重要な操作状況が発生したあとのシステムデバッグに利用される。
【０００６】
イベントシーケンス（SOE）データベースを利用することは有益であり、それは、一つのイベントの発生、例えばデバイスまたは通信チャネルの故障がその他のイベントを発生させ得るだろうし、そしてそれはさらにその他のイベントの発生を引き起こし、例えば、次から次へと、最終的にはプロセス制御プラントの完全な、そうでなければ部分的な停止状態に導き得る。その問題を解決する試みにおいては、故障の最終的な原因を突き止めるために、保守オペレータまたは制御オペレータは、SOEデータベース内に格納されたイベントシーケンス記録を見て、どのイベントがどの順番で発生したかを判断し、システム内の故障を誘発する原因を突き止め得る。
【０００７】
イベントシーケンス報告を利用することは、一つのイベントシーケンスSOE入力／出力（I/O）検出カードを介して、デバイスに接続されるただ一つのノードを有するシステム内または単一の制御装置を有するシステム内において一般的であり且つそれほど複雑なことではない。というのは、全ての監視されたイベント情報は同じSOEカードおよび制御装置を通るからである。しかしながら、単一の制御装置が複数のSOEカードに結合されているプロセス制御システムにおいて、または異なるノードで複数の制御装置を有し一または複数のSOEカードを介してそのそれぞれが一または複数のデバイスに接続されているシステムにおいては、イベントシーケンス報告はより複雑である。というのは、その制御装置およびその異なるSOEカードのそれぞれが時間同期せねばならず,  そうすることによりプラントの異なる部分で起きている異なるイベントの順番を正確に記録するからである。もし、その制御装置またはSOEカードが時間同期していなければ、イベントシーケンス記録内の時間情報は多分不正確であり、そのイベントを不適切な順番に順番付ける結果となり得る。さらに、ノードの故障というような一つの重要なイベントの結果を引き起こす複数のイベントは、通常、例えば、相互間が１０ミリセカンド内というように非常に速く発生するため、イベントシーケンス報告の時間感度を５ミリセカンドオーダにまで増加させて、監視する異なるイベントが発生する実際のオーダを検出できることが望ましい。一般的に言えば、この時間感度は各SOEカードにおける高精度または同期されたクロックなしで達成するのは非常に難しかった。不幸にも、各SOEカード内に精度が良く安定なクロックを設置することは法外に高価になり得り、システム内の複数のクロックを精密に時間同期し、イベントがSOEカードで検出された場合に、これらのイベントをタイムスタンプすることは非常に難しい。
【０００８】
【課題を解決するための手段】
プロセス制御ネットワークにおいて利用されるイベントシーケンス検出システムおよび方法は、SOEカードを利用し、イベントの指標およびこれらのイベントがプロセス制御ネットワーク内で起きた時間を自動的に検出し格納する。イベントシーケンス報告システムは安定なマスタ時間ソースを有し、それは例えば衛星利用測位システム（GPS）受信装置のようなものであり、各制御装置内および各ワークステーション内等のような、そのシステムの各ノード内のクロックを周期的に時間同期するのに利用される。クオーツカウンタのような自走カウンタは、イベントシーケンス記録内に格納されるイベントを検出するのに利用される各制御装置内および各SOEカード内に位置している。これらの自走カウンタは、SOEカードまたは制御装置が最初にイベントを検出するときに、カウンタ数値で各イベントをマークするのに利用される。そのイベントおよび検出されたイベントに関連するカウンタ数値の指標は、対応する制御装置に送信され（もし必要ならば）、その制御装置はクロック、カウンタ、およびそのイベントに割り当てられたSOEカウンタ数値の指標を利用して、そのイベントがSOEカードで検出された実際のまたは確実な時間を突き止める。イベントおよびそのイベントの時間はそれからイベントシーケンス報告データベースに送信され、そこでこの情報は格納されてシステムワイドイベントシーケンス記録を形成する。そのイベントシーケンスデータベース内においてイベントが受信されると、制御装置およびSOEカードに通知され、そのSOEカードがそのイベントをメモリから消去することを可能にしている。SOEカード内での簡単なカウンタの利用および制御装置内でのクロックの利用は、システムの費用および複雑さを減少し、一方、依然と高時間感度または時間弁別式のネットワークワイドなイベントシーケンス報告システムを可能にしている。
【０００９】
本発明の一つの態様においては、イベントシーケンス検出システムは、マスタクロックと、第一のデバイスと、第二のデバイスとを備えている。第一のデバイスはマスタクロックに通信可能に結合されており、第一のカウンタと、マスタクロックに時間同期される第二のクロックとを備えている。第二のデバイスは第一のデバイスと通信可能に結合されており、イベントバッファと、第二のカウンタとを備えている。第二のデバイスは、また、イベントを検出すると、イベントバッファ内にそのイベントの指標を格納すると共に、そのイベントの検出時間における第二のカウンタの数値を、イベントカウンタ数値としてイベントバッファ内に格納するようにプログラムされたプロセッサを備えている。第二のデバイスのプロセッサは、さらに、イベントメッセージを第一のデバイスに送信するようにプログラムされており、そのイベントメッセージは格納されたイベントの指標と共に、そのイベントのイベントカウンタ数値の指標を有している。さらにまた、第一のデバイスは、イベントメッセージ内の、第一のカウンタ、第二のクロック、およびイベントカウンタ数値の指標を利用し、イベントの検出に確実な時間を割り当てるようにプログラムされているプロセッサを備えている。もし所望ならば、第一のデバイスは、イベントの指標およびそのイベントの確実な時間を含むさらなるイベントメッセージをイベントシーケンスデータベースに送信しても良く、そのデータベースはプロセス制御システムの異なるノードで検出されるイベントを格納する。
【００１０】
【発明の実施の形態】
図１を参照すると、プロセス制御システム10は、バス16を介して複数の制御装置14に接続される、一または複数のホストワークステーション、コンピュータ、またはユーザインターフェイス12（それらはどのような種類のパーソナルコンピュータまたはワークステーションなどであっても構わない）を備えている。バス16は、例えばイーサネット（登録商標）のような、どのような所望のもしくは適切な通信プロトコルを利用しても良く、またはその代わりに無線ネットワークおよび非バス式ネットワーク等のような所望のその他のどのような通信ネットワークに置き換えられても構わない。制御装置14は、例えばフィッシャーローズマウントシステム社により販売されているDelta V（商標）でも良く、従来の入力／出力（I/O）カード40〜45を介して、フィールドデバイス20〜37に接続されている。必要ではないが、もし所望ならば各制御装置14は主制御装置14Aおよび余分なまたはバックアップ制御装置14Bを備えても良い。図１で例示されているシステムにおいては、制御装置14は、標準または公知のDelta Vバックプレーンを介して、I/Oカード40〜45に接続されており、そのそれぞれは一または複数のフィールドデバイスに公知の通信リンクを介して公知の通信プロトコルを利用して接続されており、そのプロトコルとは、例えば、４〜２０ｍｉｌｌｉａｍｐプロトコル、HARTプロトコル、Fieldbusもしくはその他のスマートデバイスプロトコル、または現在公知かもしくは将来開発されるかのどちらかの所望のその他の任意のプロトコルである。図１の例示のプロセス制御ネットワーク10においては、I/Oカード40, 44は、HART通信プロトコルを用いて、フィールドデバイス20〜22および33〜34にそれぞれ接続されており、一方、I/Oカード41, 43, 44は、Fieldbusプロトコルバスを用いて、フィールドデバイス23〜26, 30〜32, および35〜37にそれぞれ接続されている。図示する目的で、I/Oデバイス42は、４〜２０ｍＡ回線を介して、フィールドデバイス27〜29に接続されている。
【００１１】
公知のように、各主制御装置14Aはそこに格納されるかまたはそうでなければそれと関連付けされるプロセス制御ルーチンを実施または管理し、フィールドデバイス20〜37およびコンピュータ12と通信し、プロセスまたはプロセスの一部分を任意の所望の方法で制御する。フィールドデバイス20〜37はセンサ、バルブ、トランスミッタ、およびポジショナ等のどのような種類のデバイスであっても良く、一方、I/Oカード40〜45は任意の所望の通信または制御装置プロトコルに適合するどのような種類のI/Oデバイスであっても良い。勿論、フィールドデバイス20〜37は、HARTプロトコルおよびFieldbusプロトコル以外の、所望のその他どのような標準またはプロトコルにも適合することができ、現在利用できる任意の標準プロトコルもしくは自社独自のプロトコル、または将来開発される任意のそのようなプロトコルを含んでいる。
【００１２】
さらにまた、SOEカード50, 51, 52は、例えばバックプレーンを介して、制御装置14に結合されており、この例においては、バイナリ入力、例えば、高または低（オンまたはオフ）入力を、プロセス制御ネットワーク10内の異なるデバイスから受信する。例えば、あるスイッチの出力もしくは位置指標、バルブの出力もしくは位置指標、バイナリレベルの出力もしくは位置指標、圧力もしくはその他の種類のセンサの出力もしくは位置指標、および故障検出ユニット等の出力または位置指標等は、SOEカード50, 51, 52のそれぞれのチャネルまたは入力と結合されても良い。検出されるイベントはフィールドデバイス20〜37からの信号または所望であれば制御装置14に接続されるその他のデバイスからの信号であっても良い。さらに、どのような所望のイベントであっても検出することができ、検出されたイベントはバイナリ信号により報告されるものに限らない。一般的に言えば、SOEカード50, 51, 52は入力信号の変化をそのチャネルで検出し、これらの変化の指標を、それらのカード50, 51, 52のメモリ内にまたはバッファ内に格納する。
【００１３】
イベントシーケンス（SOE）データベースまたはサーバ60はプロセス制御システム10に接続され、図１に例示されている実施例においては、バス16に接続される。SOEデータベース60は、イベント情報を制御装置14、および、もし所望ならば、バス16に接続されているその他のノード、例えばユーザインターフェイスまたはコンピュータ12から受信する。加えて、例えば、GPS受信装置を含み得るマスタ時間ソースまたはマスタクロック66は、また、プロセス制御システム10内で特にバス16に接続される。マスタクロック66は単一の安定した時間ソースを提供し、それは、プロセス制御システム10内のイベントを報告する各ノードにおける第二のクロックを更新するのに周期的に用いられ、もし所望ならば、制御装置14内のクロック、ユーザインターフェイス12内のクロック、およびSOEデータベース60内のクロックを含む。上記のように、マスタクロック66は衛星から時間信号を受信すると共にその時間によって内部クロックを更新するGPS受信装置を備えることができ得る。しかしながら、マスタクロック66は所望のその他どのような時間ソースであっても良く、例えば、プロセス制御システム10の局所的なクロック、その他の通信ネットワークを介して原子クロックソースにより更新されるクロック、プロセス制御システム10内のプロセッサまたはその他のコンピュータに関連するクロック等である。また、SOEデータベース60およびマスタクロック66は、プロセス制御システム10の別のワークステーションまたはノード内にあるように図示されているが、これらのユニットの片方または両方が、ユーザインターフェイスおよびデータヒストリアン等のような他の目的にも用いられるワークステーションまたはコンピュータ内に位置しても構わない。さらにまた、これらの構成部品は、その他の通信回線または通信構造を介して、プロセス制御システム10に接続されても良く、バス16を介して、制御装置14に直接接続する必要はない。
【００１４】
図２を参照すると、図１のプロセス制御ネットワーク10の部分のブロックダイアグラム図がさらに詳しく図示されている。図２に図示されているように、マスタクロック66は、現在のシステムワイド時間を格納するクロック100、およびクロック100を正確な時間で更新するGPS受信ハードウエア102を備えている。周期的に、例えば、プロセス制御システム10をはじめて稼動させるときは３０秒毎で、そのシステム10が稼動した後はより少ない周期で、マスタクロック66は、例えばシステムの正確な時間を指すUDPメッセージを、制御装置14を含む各ノードに提供する。SOEデータベース60およびユーザインターフェイス12のようなその他のノードにおける、制御装置14およびコンピュータ内の標準ネットワーク時間プロトコル（NTP）ソフトウエアは、ネットワークバス16を介して、クロック信号がノードに到着するのに掛かる時間量を判断するための手順を実施し、このソフトウエアを利用して正確な同期時間を推定する。このソフトウエアは、それから、各ノードにおける第二のクロックを更新する。勿論、各ノードのクロックをマスタクロック66に同期させるその他どのような方法を代わりに用いても構わない。
【００１５】
上記のように、各制御装置14（もし所望ならば、システム内のその他のノードもまた）は、マスタクロック66およびNTPソフトウエアにより更新されるクロック104を備えている。各制御装置14はまた自走カウンタ106を備えており、それは、例えば、１６ビットまたは3２ビットカウンタであっても良く、クロックチック毎に例えば約１０ミリ秒の速度で数を数える。これはカウンタ106の時間基準準として参照される。カウンタ106は例えば水晶カウンタのような適切などのようなカウンタであっても良い。事実、多くの場合、カウンタ106は制御装置14内の標準処理装置またはCPUと共に提供される典型的なカウンタであり得る。さらにまた、SOEカード50, 51, 52のそれぞれが自走カウンタ（SOEカード50, 51, 52のカウンタ108, 110が図２に図示されている）を備えている。カウンタ108, 110は、例えば、８ミリ秒カウンタであり、また、これらのカウンタは公知または標準SOEカードに標準的に関連しているCPUと共に提供されるカウンタであり得、そうでなければ所望のその他どのようなカウンタであっても良い。さらにまた、SOEカード50, 51のそれぞれはイベントバッファ（バッファ114および116が図２に図示されている）を有し、それは監視されるデバイス内で発生する検出されたイベントを格納する。さらにまた、制御装置14はプロセッサおよびメモリ122を備え、SOEカード50, 51のそれぞれは別のプロセッサおよびメモリ123を備えている。動作の間、カウンタ106, 108, 110 は制御装置14およびSOEカード50, 51内で自走（そしてもし所望ならば独立して）する。NTPまたはその他の時間同期ソフトウエアが制御装置14内で用いられ、カウンタ106の特定の数値をクロック104で定義される絶対時間に関連付けする。もし所望ならば、しかしながら、制御装置14内のカウンタ106はクロック104に対し周期的に比較されても良く、その結果、カウンタ106内の個々のカウンタチック間の時間が実際に測定され、この技術がカウンタ106の数値をクロック104により定義される絶対時間と関連付けされ得る。勿論、カウンタ106の数値をクロック104が定義する絶対時間と関連付けするその他の任意の方法を利用してもまた良い。
【００１６】
説明のために、SOEデバイス50の操作を図２の制御装置14Aに関連して解説するが、同様の原理がその他のSOE検出カードおよび制御装置の操作に適応されることは理解するべきである。SOEカード50が、イベントをこのカードにより監視されているチャネルの一つの状態変化または数値変化、即ち、カード50への入力の一つに変化を検出することにより検出すると、そのSOEカード50はそのイベントの指標をイベントバッファ114内に格納する。この機能性はメモリに格納されたルーチンによって実現され、そのカード50のプロセッサ123上で実行される。そのイベントの指標には、例えばチャンネルの識別のようなイベント識別、そのイベントに関連する信号数値（即ち、高から低または低から高に変化するチャンネルこと）、およびそのイベントが検出された時間におけるカウンタ108の数値を含まれている。例示のイベントバッファ114が図３に図示されており、検出されたイベントのイベント識別がそのバッファの左側の列に格納され、チャネルが変化していく信号数値または状態は中央の列に格納され、そのイベントが検出されたときのカウンタ108の数値は右側の列に格納される。勿論、イベント識別は所望の任意の方法で格納されても良く、そのイベント識別は所望の任意の形式を有しても構わなく、例えば、それは、チャンネル番号の指標、そのチャンネルまたはそのチャンネルを駆動するデバイスに関連するタグまたは名前等である。
【００１７】
イベントが検出されると、これらのイベントに付随する情報およびこれらのイベントが検出されるときのカウンタ数値がバッファ114内に格納される。周期的に、例えば、バッファ114があるレベルに達するとき、特定の時間間隔のあと、または制御装置14Aが、バックプレーンを介して、SOEカード50に制御装置14Aにメッセージを送信する機会を与えるときはいつでも、SOEカード50はイベントメッセージを制御装置14Aに送信し、そのメッセージはバッファ114内に格納されるイベントデータの幾らかまたは全てを含んでいる（そのイベント識別、そのイベント信号状態または数値、および時間または各イベントに格納されるカウンタ数値より判定される経過カウンタ数値を含んでいる）。SOEカード50は、所与のイベントメッセージで、一つのイベントに付随するイベントデータおよびその関連するカウンタ数値を送信し得るが、SOEカード50は、代わりに、８または１６組のイベントデータのように、二組またはそれ以上の組の連結したイベントデータを有するイベントメッセージを送信し得る。さらにまた、システム10内の各制御装置14は別々に作動し、それ故に、それらのイベントの絶対時間に沿って別々のイベントをイベントシーケンスデータベース60に異なる時間に送信することができ、たとえイベントが異なる制御装置からのものであろうと、広範囲な時間に亘って発生していようと、そのイベントシーケンスデータベース60はその別々のイベントをそれらが対応する絶対時間に沿って発生時間順に並べることができる。
【００１８】
好ましくは、制御装置14からのイベントメッセージを受信しそのイベントデータをSOEデータベース60内に格納すると、そのSOEデータベース60のメモリ内に格納されプロセッサ30上で実行されるルーチンはそのイベント（または、複数のイベント）の受信を通知信号を制御装置14に返信することで通知し、それから、その制御装置14は通知信号をそのイベントを検出したその特定のSOEデバイスに送信する。そして、好ましい実施例においては、その通知信号を受信すると、そのSOEデバイスは通知されたイベント（または、複数のイベント）をそのバッファから消去し、さらなるイベントがその中に格納されることを可能にする。この方法により、もし制御装置がSOEデバイスをポーリングしイベント情報をそのSOEデバイスから受信したあとに、しかしその制御装置がそのイベント情報を解読しそのSOEデータベースに送信するまえに故障した場合、または、もしそのイベントメッセージの通信が破損するかもしくは紛失した場合でも、そのイベント情報はまだそのSOEデバイス内に格納されており、例えばバックアップ制御装置で後に検索し得る。そのバックアップ制御装置またはその他のデバイスはまだシステム10内で時間同期されているので（それ自体のクロックおよびカウンタを有しているので）、このバックアップ制御装置またはその他のデバイスは、まだ、そのイベントがそのSOEデバイス内で発生した絶対時間を、上述された技術を利用して演算することが可能である。
【００１９】
本文で記述されているイベントシーケンス報告システムを用いると、単一マスタクロックソースを利用して、そのシステムの各ノードにおける単一クロックを同期することが可能であり、および、各ノードにおける異なるデバイス内の非同期の自走カウンタを用いてもなお各ノードにおける異なるデバイス内で検出されたイベントに関連する絶対時間を判定することが可能である。
【００２０】
その他のデバイス内のイベントを検出することに加えて、SOEカード50, 51, 52、または、制御装置14でさえも検出されるイベントに関連するあるイベントを検出することが可能である。例えば、カード50のようなSOEカードは、チャネルを監視し、例えばそのSOEデバイスへの不完全な接続または回線の短絡等に多分起因してチャネル上の信号の状態が何度も変化するのを検出し得る。勿論、別々のイベントがそのチャネル数値が変化するたびに検出される。もしある特定期間に亘ってチャネルの変化数がしきい値に達するとそのSOEデバイス50はそのチャネルのチャタ制御モードになりそのチャネル上で検出されるイベントの報告を停止し得る。これ行なう場合は、しかしながら、SOEデバイス50はそのチャネルのチャタ制御モードの入ることを指して、イベントをそのイベントバッファ114内に格納し得る（カウンタ108の対応する数値に沿って）。同様に、もしチャネルのチャタが停止またはしきい値より小さくなれば、SOEカード50はそのチャタ制御モードをから出てその時に対応するイベントメッセージをイベントバッファ114内に掲載する。勿論、これらのチャタ制御イベントはその他の検出されたイベントと同様の方法でSOEデータベース60に報告される。
【００２１】
同様に、その他のイベント、例えば、イベントバッファオーバフロー、制御装置の時間同期停止（それはNTPソフトウエアにより判定され得る）、カウンタ不良、またはSOEデータベース60内に格納されるイベントの検出もしくは報告に関連する所望のもしくは適切なその他どのようなイベントでも検出されると共にイベントとして報告され得る。さらにまた、もし所望ならば、SOEデータベース60内に格納されるイベントは、例えばヒストリアン内に格納される他のイベントと同様に、制御装置14によって報告され得るが、それらはSOEイベントであることを指す追加のフィールドを有するということが異なる。さらにまた、もし所望ならば、同じメモリをSOEイベントおよび通常のイベントに用いることが可能である。
【００２２】
もし速度が１０マイクロ秒および８マイクロ秒であるカウンタが制御装置14およびSOEカード50, 51, 52にそれぞれ用いられ、クロックおよび同期ソフトウエアが５ミリ秒の感度であれば、本文で記述されるシステムは少なくとも５ミリ秒の時間弁別性能を有するシステムワイドなSOEデータベースを提供することが可能である。しかしながら、より高い感度をも達成し得る。
【００２３】
いずれにしても、本SOEシステムを用いると、各SOEデバイス内に設けられる安いまたは費用のかからないカウンタ（通常、SOE報告システムにおいて最多数のデバイスである）、各ノードにおける単一クロック、および単一システムワイドなマスタクロックが高精度であると共に柔軟性のあるSOEシステムを提供することが可能であり、同期されたクロックを各制御装置および各SOEデバイスにおいて必要としない。
【００２４】
本文において記述されるイベントシーケンス報告システムは、好ましくは、ソフトウエア上で実施されるが、それはハードウエアまたはファームウエア等で実施されても良く、プロセス制御システム10に関連するその他どのようなプロセッサにより実施されても構わない。従って、本文で記述されたルーチンは標準多目的CPU内で実施されても良く、または、所望ならば特別に設計されたハードウエアもしくはファームウエア上で実施されても構わない。ソフトウエア上で実施された場合、そのソフトウエアルーチンはコンピュータ読み取り可能な任意のメモリ内に格納されても良く、それらは例えば磁気ディスク、レーザディスク、またはコンピュータもしくはプロセッサ等のRAMもしくはROM内の他の格納媒体内に格納されても良い。同様に、このソフトウエアはユーザまたはプロセス制御システムに公知または所望の任意の方法を介して搬送されても良く、それらは、例えば、コンピュータ読み取り可能なディスクもしくは他の移送可能なコンピュータ格納機構であり、または電話回線もしくはインターネット等の通信チャネルである（それらは移送可能な格納媒体を介してそのようなソフトウエアを提供することと同じかまたは取替え可能であると見られている）。
【００２５】
従って、本発明は特定の例を引用して説明されてきたが、それらは例示のみを意図したものであり、本発明を制限するものではなく、当業者にとって、変更、追加、または削除を、本発明の精神および範疇から逸脱することなく、開示された実施例に行ない得ることは自明のことである。
【図面の簡単な説明】
【図１】  例示のプロセス制御ネットワークのブロックダイアグラム図であり、そこではイベントシーケンス報告システムおよび方法が利用できる。
【図２】  図１のプロセス制御ネットワークの一部分のブロックダイアグラム図であり、イベントシーケンスデータベース、制御装置、および複数のSOEカードをさらに詳しく図示している。
【図３】  図２のSOEカードの一つにおけるイベント記録のダイアグラム図である。
【図４】  図２の制御装置にSOEの一つにより送信されたイベントメッセージのダイアグラム図である。
【符号の説明】
10  プロセス制御システム
12  コンピュータまたはユーザインターフェイス
14  制御装置
16  バス
20〜37  フィールドデバイス
40〜45  入力／出力（I/O）カード
50〜52  イベントシーケンス（SOE）カード
60  イベントシーケンス（SOE）データベース
66  マスタクロック
100, 104  クロック
102  GPS受信ハードウエア
106, 108, 110  自走カウンタ
114, 116  バッファ
122  メモリ
123  プロセッサ
【図１】
0004459509.tif 000002
【図２】
0004459509.tif 000003
【図３】
0004459509.tif 000004
【図４】
0004459509.tif 000005