以下において、例示の方法と、ハードウェアで実行されるソフトウェア及び/又はファームウェアを、他の構成要素と共に含んでいる装置と、を説明するが、こうしたシステムは、単に説明を目的とするものであり、制限を課すためのものと考察されるべきではないことに留意されたい。例えば、これらのハードウェア、ソフトウェア、及びファームウェア構成要素の何れか又は全ては、ハードウェアだけ、ソフトウェアだけ、又はハードウェアとソフトウェアの何らかの組み合わせにより具現化することが可能であるものと思慮している。したがって、以下において例示の方法及び装置を説明を行うものの、提示している実例は、当該の方法及び装置を実装する唯一の方法ではない。
現代のプロセス制御システムは、フィールド装置、配線、通信ネットワーク、入力/出力(I/O)取得装置、コントローラ(例えばプロセスコントローラ)、中央プロセッサ、I/Oカードなどを含む多数の関連付けられる構成要素のせいで、本質的には複雑になっている。装置コントローラ、バルブ、バルブアクチュエータ、バルブポジショナ、スイッチ及び送信器(例えば、温度、圧力、流量、及び化学組成のセンサー)又はそれらの組み合わせ、を含む場合のあるフィールド装置は、例えば、バルブの開閉及びプロセスパラメータの測定又は推測などのプロセス制御システム内で機能を果たす。コントローラは、フィールド装置によって作成されたプロセス測定、及び/又はフィールド装置に関連付けられる他の情報、を示す信号(例えば、入力信号)を受信し、 制御ルーチンを実装するためにこの情報を使用し、プロセスの作動を制御するために、バス又は他の通信ラインを通じてフィールド装置に送られる制御信号(例えば、出力信号)を生成する。単一のプロセス制御システムは、1つ又はそれ以上のコントローラを含んでいて、各コントローラは1つ又はそれ以上の制御ルーチンを作動させる場合がある。制御ルーチンは、所定の区間で繰り返される制御ループを備えている。それぞれの区間は、1つの制御ループサイクルである。例えば、制御ルーチンは、100ミリ秒(ms)の持続時間の制御ループを含んでいる場合がある。100ms後に制御ループサイクルを終えると、ルーチンは、次の制御ループサイクルを開始する(即ち、制御ループの工程を繰り返す)。
良好に機能する制御ループを作り出す方法論は、プロセス制御システムのトポロジー及び/又はプロセス制御システムを用いて実装される構成要素の特有の型式及び特徴によって影響を及ぼされる可能性のある試行錯誤であってもよい。更に、制御ループの品質及び/又は応答は、時宜を得て監視フィールド装置によって引き起こされた入力変化を読み込み、制御ループの範囲内で必要な制御計算を行い、対応する制御フィールド装置に対する出力を生成する、制御ループの能力によって影響を及ぼされる場合がある。
幾つかの既知のプロセス制御システムは、入力変化に時宜を得て応答する制御ループに関わる問題を有している。制御ループがフィールド装置からの入力を利用する前に、標準的なプロセス制御システムは、入力信号が、幾つかのハードウェア装置及び/又はそれぞれのハードウェア装置内のソフトウェア層を通って伝わるように設計されている。ハードウェア装置及び/又はソフトウェア層のそれぞれは、幾らかの遅延(例えば、待ち時間)を入力信号の伝送時間に加える。更に、伝送遅延は、ハードウェア装置及び/又はソフトウェア層の増加に伴って増大する。
更に、伝送遅延は、プロセス制御システム内のダイナミックネットワークローディングに起因して及び/又はI/Oソフトウェアモジュールの変動性によって生じる場合がある。ダイナミックネットワークローディング及び/又はソフトウェアの変動性は、制御ループへの入力値を遅延させる及び/又は入力値の伝送に大幅な遅延を生じる可能性がある。これは、古いデータを制御ループに提供するという影響を及ぼし、この影響は、信頼できない又は調整不良の制御ループを引き起こす可能性のある、不適当な補正作用をもたらす場合がある。
更に、伝送遅延は、工場の拡張又は改修のための新しいプロセス制御装備(例えば、フィールド装置)の追加によって生じる場合がある。新しいハードウェアを制御ループに追加すると、プロセス制御システムのダイナミクスは、変化する。同様に、新しい機能及び/又はバグ修正のためのソフトウェア変更は、プロセス制御システムのダイナミクスを変更する場合がある。プロセス制御システムのダイナミクスが変わると、受信した入力のタイミングが、所定のプロセス制御スケジュールからずれるので、制御ループタイミングの意図せぬ変更が生じることになる。
伝送遅延を補償するための標準的な解決方法は、入力信号のオーバーサンプリングを伴っている。例えば、幾つかの制御ループは、I/O取得装置の固定走査測度より2倍から4倍遅い速度で作動するように構成される。しかしながら、I/O取得装置は、最大スループットを有しているので、この方法は、制限的である。その上、フィールド装置は、標準的には、入力信号及び出力信号を利用している消費要素(例えば、フィールド装置、コントローラなど)と何ら関係性が無く、順次的な様式で(例えば、順次アドレスを使用して)サンプリングされる。更に、この方法は、入力信号を、対応する制御動作を計算する制御ループより前に到達させるようにタイミング調整することができない。
本明細書に記載する例示の方法及び装置は、入力信号が、プロセス制御ループ内で使用されるより前に容認可能な予定時間枠の中で受信されるように、入力信号に施す自動調整を提供する。例えば、本明細書に記載する例示の方法及び装置は、温度計(例えば、フィールド装置)からの入力信号が、制御ループが対応する制御動作を計算するより前の、所定の(例えば、予定の)時間枠の中でコントローラによって受信されていないことを確認するのに使用することができる。この予定時間枠は、制御ループが、入力信号を利用する、例えば、100msから200ms前と定義することができる。入力信号が、時宜を得て受信されていないと認識すると、制御ループが対応する制御動作を計算するより前に、入力信号が許容可能な又は望ましい期間(例えば、100msから200ms)の範囲内に確実に受信されるように、例示の方法及び装置を、温度入力信号のタイミングを調整するのに使用することができる。
本明細書に記載する例示の方法及び装置では、コントローラは、制御ループを操作し、所定の時間枠の中で受信されていないフィールド装置からの入力信号を認識する。所定の時間枠は、制御ループが入力信号を利用する予定の時間の前の或る期間に対応する。所定の時間枠は、制御ループの実行速度(例えば、走査速度及び/又はループサイクル)に依存する制御ループの許容範囲(例えば、閾値)であってもよい。幾つかの実例では、制御ループは、1つのループサイクルを実行するための全体時間の10%であるループ走査用の許容範囲を有している場合がある。この実例では、6msの偏差は、100msのループサイクルを有する制御ループ用の10msの許容範囲の中に入り得る。しかしながら、60msの偏差は、10msの許容範囲を超えてしまう。コントローラによって受信される入力信号は、フィールド装置から発生し、フィールド接続箱(FJB)、マーシャリングキャビネット、I/Oカード及び/又はI/Oデータ取得モジュールを通って伝播する。コントローラは、タイミング調整メッセージを、どの時間にどの入力信号をコントローラに転送するのかを指示するI/Oデータ取得モジュールに送信することによって、受信された入力のタイミングを制御する。タイミング調整メッセージの受信に応えて、I/Oデータ取得モジュールは、I/Oデータ取得モジュールが、対応するフィールド装置からの入力信号を要求する時間、及び/又は入力信号をコントローラに転送する時間、を調整する。
図1では、例示のプロセス制御システム100は、バス又はエリア制御ネットワーク(ACN)と一般に呼ばれるローカルエリアネットワーク(LAN)106を通じてコントローラ104に通信可能に連結されているワークステーション102を含んでいる。LAN106は、任意の望ましい通信媒体及びプロトコルを用いて実装することができる。例えば、LAN106は、有線接続又は無線のイーサネット(登録商標)通信プロトコルに基づいていてもよい。しかしながら、任意の他の適切な有線又は無線の通信媒体及びプロトコルを使用することも可能である。ワークステーション102は、1つ又はそれ以上の情報技術アプリケーション、ユーザー対話型アプリケーション、及び/又は通信アプリケーションに関連付けられる作業を実行するように構成することができる。例えば、ワークステーション102は、ワークステーション102とコントローラ104が、任意の望ましい通信媒体(例えば、無線式、有線式など)及びプロトコル(例えば、HTTP、SOAPなど)を用いて他の装置又はシステムと通信できるようにする、プロセス制御関連のアプリケーション及び通信アプリケーションに関連付けられる作業を実行するように構成することができる。
例示のコントローラ104は、1つ又はそれ以上のプロセス制御ルーチンと、及び/又は、例えばワークステーション102又は任意の他のワークステーションを使用してシステムエンジニア又は他のシステムオペレータによって作られ、コントローラ104にダウンロードされ、且つインスタンス化された、1つ又はそれ以上の制御ループとして作動する機能と、を実行するように構成することができる。図示している実例では、ワークステーション102は、制御室108に設置され、コントローラ104は、制御室108から分離されたプロセスコントローラエリア110に設置されている。例示のコントローラ104は、プロセス制御システム100内で生成された入力信号及び出力信号のタイミングを管理するためにI/Oスケジューラ180を含んでいる。
図示している実例では、例示のプロセス制御システム100は、第1のプロセスエリア114内のフィールド装置112aから112cと、第2のプロセスエリア118内のフィールド装置116aから116cと、を含んでいる。コントローラ104とフィールド装置112aから112c及び116aから116cとの間で情報を通信するために、例示のプロセス制御システム100は、複数のフィールド接続箱(FJB)120a、120bと、マーシャリングキャビネット122と、を備えている。それぞれのフィールド接続箱120a、120bは、フィールド装置112aから112c及び116aから116cのそれぞれからの信号を、マーシャリングキャビネット122へ送る。次に、マーシャリングキャビネット122は、フィールド装置112aから112c及び116aから116cから受信した情報を整列させ(例えば、編成する、分類するなど)、フィールド装置情報をコントローラ104のそれぞれのI/Oカード(例えば、I/Oカード132a、132b及び134a、134b)へ送る。図示している実例では、コントローラ104と、フィールド装置112aから112c及び116aから116cと、の間の通信は、双方向的になっているので、マーシャリングキャビネット122は、コントローラ104のI/Oカードから受信した情報を、フィールド接続箱120a、120bを介してそれぞれのフィールド装置112aから112c及び116aから116cに送るのにも使用されている。
フィールド装置112aから112c及び116aから116cは、Fieldbus準拠の弁、アクチュエータ、センサーなどであってもよく、その様な事例では、フィールド装置112aから112c及び116aから116cは、周知のFieldbus通信プロトコルを使用して、デジタルデータバスを介して通信する。無論、他の型式のフィールド装置及び通信プロトコルを代わりに使用することも可能である。例えば、フィールド装置112aから112c及び116aから116cは、代わりに、周知のProfibus、AS−i、及びHART通信プロトコルを使用するデータバスを介して通信する、Profibus、HART、又はAS−i準拠の装置であってもよい。幾つかの実装例では、フィールド装置112aから112c及び116aから116cは、デジタル通信の代わりに、アナログ通信又は離散的通信を使用して情報を通信することができる。更に、通信プロトコルを、異なるデータ型に関連付けられる情報を通信するのに使用することができる。
マーシャリングキャビネット122内のフィールド装置112aから112c及び116aから116cに関連付けられる情報を送るために、マーシャリングキャビネット122は、複数のターミネーションモジュール124aから124c及び126aから126cを備えている。ターミネーションモジュール124aから124cは、第1のプロセスエリア114のフィールド装置112aから112cに関連付けられる情報を整列するように構成されており、ターミネーションモジュール126aから126cは、第2のプロセスエリア118のフィールド装置116aから116cに関連付けられる情報を整列するように構成されている。マーシャリングキャビネット122が無い代替的な実装例では、ターミネーションモジュール124aから124c及び126aから126cは、それぞれのフィールド接続箱120a、120bに組み込まれている。更に他の実装例では、FJB120a、120bは、それぞれのI/Oカード132a、132b及び134a、134bに直接的に通信可能に連結されていてもよい。更に、図1は、多導体ケーブル128a、128bの各導体又は導体対(例えば、バス、ツイストペア通信媒体、2線式通信媒体など)は、それぞれのフィールド装置112aから112c及び116aから116cに一意に関連付けられる情報を通信している、二地点間構成を図示している。
コントローラ104(及び/又はワークステーション102)と、フィールド装置112aから112c及び116aから116cと、の間のI/O通信を制御するために、コントローラ104は、複数のI/Oカード132a、132b及び134a、134bを備えている。図示している実例では、I/Oカード132a、132bは、コントローラ104(及び/又はワークステーション102)と第1のプロセスエリア114のフィールド装置112aから112cとの間のI/O通信を制御するように構成されており、I/Oカード134a、134bは、コントローラ104(及び/又はワークステーション102)と第2のプロセスエリア118のフィールド装置116aから116cとの間のI/O通信を制御するように構成されている。
ターミネーションモジュール124aから124cとI/Oカード132a、132bとの間、及びターミネーションモジュール126aから126cとI/Oカード134a、134bとの間、で通信できるように、ターミネーションモジュール124aから124cは、第1の汎用I/Oバス136aを介してI/Oカード132a、132bに通信可能に連結されており、ターミネーションモジュール126aから126cは、第2の汎用I/Oバス136bを介してI/Oカード134a、134bに通信可能に連結されている。汎用I/Oバス136a、136bのそれぞれは、同じ通信媒体を使用しながら、複数のフィールド装置(例えば、フィールド装置112aから112c及び116aから116c)に対応する情報を通信するように構成されている。例えば、通信媒体は、直列バス、2線式通信媒体(例えば、ツイストペア)、光ファイバー、並列バスなどであってもよく、その通信媒体を通じて、2つ又はそれ以上のフィールド装置に関連付けられる情報を、例えばパケットベースの通信技法、多重化通信技法などを使用して通信することが可能である。
図1の例示のプロセス制御システム100は、フィールド装置112aから112c及び116aから116cから発生する入力信号及び出力信号のタイミングを管理するために、コントローラ104、I/Oスケジューラ180、及び/又はI/Oデータ取得モジュール190を含んでいる。例示のI/Oデータ取得モジュール190は、フィールド装置112aから112c及び116aから116cから発生し、プロセス制御システム100を通って伝播する入力信号を受信する。入力信号は、アナログ入力データ信号、離散的入力データ信号、及び/又はデジタル入力データ信号を含んでいてもよい。幾つかの事例では、ターミネーションモジュール124aから124c及び/又は126aから126c及び/又はI/Oカード132a、132b及び134a、134bは、フィールド装置112aから112c及び116aから116cからの入力信号をデジタル信号型に変換する場合がある。フィールド装置112aから112c及び116aから116cは、構成、装置の型式、及び/又はフィールド装置 が監視しているプロセスの型式、に応じた周期的な間隔で入力信号を生成する。それらの入力信号は、FJB120a、120b、ターミネーションモジュール124aから124c及び126aから126c、並びにI/Oカード132a、132b及びI/Oカード134a、134bを通じて伝播し、最終的にはI/Oデータ取得モジュール190に達する。
幾つかの事例では、コントローラ104は、マスタータイムをフィールド装置112aから112c及び116aから116cに伝達することができる。コントローラ104は、マスタータイム装置(図示せず)からマスタータイムを受信することができる。マスタータイムを受信すると、コントローラ104は、マスタータイムをI/Oデータ取得モジュール190を介してI/Oカード132a、132b及び134a、134bに転送することができる。I/Oカード132a、132b及び134a、134bは、その後、マスタータイムをそれぞれのフィールド装置112aから112c及び116aから116cに転送することができる。フィールド装置112aから112c及び116aから116cは、入力値及び/又は信号に、入力が感知又は検出された時間のタイムスタンプを付与するのにマスタータイムを使用することができる。フィールド装置が、入力値にタイムスタンプを付与しない実例では、フィールド装置から入力値を受信するI/Oカードが、入力信号にタイムスタンプを付与する場合がある。マスタータイムの送信における伝播待ち時間を最小化及び/又は削除するために、コントローラ104は、マスタータイムをプロセス制御システム100内での低活動期間の間に送信してもよい。或いは、コントローラ104は、既知の伝播遅延を補償するために時間調整メッセージを送信してもよい。
フィールド装置112aから112c及び116aから116cから入力信号を受信すると、I/Oデータ取得モジュール190は、或る時期に、どの信号をコントローラ104に転送するべきかを決定する。或いは、I/Oデータ取得モジュール190は、コントローラ104から要求を受け取った際に入力信号をコントローラ104に転送してもよい。I/Oデータ取得モジュール190が、入力信号を転送する時期は、1つ又はそれ以上のタイミングメッセージ(及び/又はタイミング調整メッセージ)を介して、コントローラ104及び/又はI/Oスケジューラ180によって通信される。I/Oデータ取得モジュール190は、タイミングメッセージの中に含まれるタイミング情報を保存し、このタイミング情報に基づいて入力信号を転送する。更に、タイミング調整メッセージは、I/Oデータ取得モジュール190に、フィールド装置112aからの入力信号を要求するタイミングを修正させることができる。例えば、タイミング情報は、フィールド装置112aからの第1の入力信号は、第1の予定時間枠の間に転送されるべきであり、フィールド装置112bからの第2の入力信号は、第2の予定時間枠の間に転送されるべきであり、フィールド装置112cからの第3の入力信号は、第3の予定時間枠の間に転送されるべきであると、指示することができる。フィールド装置112aが、異なる時期に複数の第1の入力信号を送信することのある実例では、I/Oデータ取得モジュール190は、最近に受信した(即ち、最近の)第1の入力信号をI/Oスケジューラ180に転送する。
幾つかの実例では、I/Oデータ取得モジュール190は、様々な量の入力信号、出力信号、メッセージ、及び他の型のトラフィックを受信することができる。それぞれの予定時間枠の中で、コントローラ104に転送するべき入力信号を管理することで、I/Oデータ取得モジュール190は、プロセス制御システム100内のネットワーク混雑を減らしている。更に、I/Oスケジューラ180が、入力信号は、予定時間枠の中でコントローラ104によって受信されていない、と判定する場合には、I/Oスケジューラ180及び/又はコントローラ104は、タイミング調整メッセージをI/Oデータ取得モジュール190に送信する。このメッセージは、I/Oデータ取得モジュール190が、入力信号をコントローラ104へ転送するべき新しい周期的な時期を示す。更に、タイミング調整メッセージは、I/Oデータ取得モジュール190に、対応するフィールド装置112aからの入力信号を要求するタイミングを修正させることが可能である。
入力信号の受信に加えて、図1の例示のI/Oデータ取得モジュール190は、コントローラ104から発生する出力信号を受信している。この出力信号は、フィールド装置112aから112c及び116aから116cが、プロセス制御システム100内でプロセスを補正するための制御情報を含んでいる。I/Oデータ取得モジュール190は、出力信号を受信すると、出力信号をそれぞれのフィールド装置112aから112c及び116aから116cへ転送することができ、且つ/又は優先度に基づいて出力信号を転送することができる。例えば、I/Oデータ取得モジュール190は、出力信号を受信すると、優先度の高い出力信号をそれぞれのフィールド装置112aから112c及び116aから116cへ転送し、優先度の低い出力信号(例えば、制御ループに関連付けられていない出力信号)をプロセス制御システム100内のネットワーク活動がより低い期間にだけ転送することができる。
例示のコントローラ104は、I/Oデータ取得モジュール190から入力信号を受信し、コントローラ104内で作動している1つ又はそれ以上の制御ループを通してそれらの入力信号を処理している。コントローラ104内の制御ループは、1つ又はそれ以上の制御動作を計算する必要に応じて、制御ループ内の特定の時期に或る入力信号を利用している。それぞれの予定時間枠が、制御ループがそれぞれの入力信号を処理するべき期間に対応しており、1つ又はそれ以上のそれぞれの予定時間枠の中で、制御ループが入力信号を受け取るように、I/Oスケジューラ180及び/又はコントローラ104は、入力信号のタイミングを管理している。コントローラ104が、それぞれの予定時間枠から外れて入力信号を受信する場合には、I/Oスケジューラ180及び/又はコントローラ104は、入力信号の受信と、予定時間枠の範囲内の或る時間との時間差を計算する。
例えば、I/Oスケジューラ180は、コントローラ104が、第1の入力信号を受信した時間と、予定時間枠の始点、中間、及び/又は終点時の間の差を計算してもよい。或いは、I/Oスケジューラ180は、コントローラ104が、第1の入力信号を受信した時間と、予定時間枠の中の任意の他の時間と、の間の差を計算してもよい。I/Oスケジューラ180及び/又はコントローラ104は、その後、入力信号に関連付けられるその後の入力信号が、コントローラ104に転送される時期を調整するために、タイミング調整メッセージをI/Oデータ取得モジュール190に送信する。更に、タイミング調整メッセージは、I/Oデータ取得モジュール190にフィールド装置からの入力信号を要求するタイミングを修正させることが可能である。
入力信号を使用して、図1の例示のコントローラ104は、1つ又はそれ以上の制御動作を計算し、出力信号を生成する。コントローラ104は、出力信号をI/Oデータ取得モジュール190に転送する。出力信号は、その後、計算された制御動作を実行するべき対応するフィールド装置112aから112c及び116aから116cへ転送される。
フィールド装置が、プロセス制御システム100に追加される場合では、コントローラ104は、新しいフィールド装置を組み込むために、制御ループを更新する。これは、プロセス制御技術者が、制御ループを更新し、且つ/又は別の制御ループをコントローラ104に追加する工程を含む場合がある。新しいフィールド装置の追加を受けて、I/Oスケジューラ180及び/又はコントローラ104は、制御ループの変化に対応するために入力信号を受信する予定時間枠のタイミングを更新する。I/Oスケジューラ180及び/又はコントローラ104は、その後、新しいタイミング要件と共に、1つ又はそれ以上のタイミング調整メッセージをI/Oデータ取得モジュール190に送る。この入力信号タイミングの自動更新のおかげで、制御ループは、別のフィールド装置を追加したにもかかわらず効率的に作動し続ける。更に、入力信号タイミングの更新は、プロセス制御技術者による何らかの介入及び/又はワークステーション102によって操作される外部最適化ルーチンが無くても生じる。同様に、I/Oスケジューラ180及び/又はコントローラ104は、フィールド装置が、プロセス制御システム100から取り除かれる場合でも、入力信号のタイミングを調整することができる。
更に、図1の例示のコントローラ104は、大幅なタイミングオーバーシュート又はタイミングアンダーシュートが発生するトポロジーのために、必要に応じて、プロセス制御技術者及び/又はオペレータが、ワークステーション102を介して、入力信号タイミング補正にフィルターを掛けるべくI/Oスケジューラ180を調整することができるようにする機能性を含んでいる。入力信号のタイミングオーバーシュート及び/又はアンダーシュートは、プロセス制御システム100内部及び/又は過負荷状態のプロセス制御ネットワークからのノイズに起因する場合がある。
更に、コントローラ104及び/又はI/Oスケジューラ180は、フィールド装置112aから112c及び116aから116cと、コントローラ104と、の間の通信経路の品質を判定することができる。通信経路の品質は、入力信号がフィールド装置からコントローラ104まで伝播するのに必要な時間、入力信号内部のデータの正確さ、入力信号内部のノイズ、及び/又はプロセス制御技術者によって判定される任意の他の基準に基づいて判定することができる。
図2は、制御ループ202を操作するコントローラ104を含んでいる、図1の例示のプロセス制御システム100を示している。図2の中のプロセス構成要素は、2組のフィードバックループを含んでいる。第1のフィードバックループは、フィールド装置112aと112bを含んでいる。第2のフィードバックループは、フィールド装置116aと116bを含んでいる。
図2の実例では、フィールド装置112aは、プロセス制御システムのパイプを通る流量を制御する弁であり、フィールド装置112bは、パイプ内の流体圧力を測定するセンサーである。弁112aは、任意の型のプロセス制御弁を含んでいてもよく、112bは、例えば、圧電抵抗ホイートストーンブリッジ微小電気機械応力感知式圧力センサーを含む任意の型の圧力センサーを含んでいてもよい。センサー112bは、パイプ内の流体の圧力値を含む入力信号をI/Oカード132aへ送信する。幾つかの実例では、センサー112bは、I/Oデータ取得モジュール190からの要求に応じて入力信号を送信する場合がある。入力信号は、コントローラ104によって受信され、制御ループ202を介して処理される。制御ループ202は、その後、弁112a用の制御動作を計算するのに入力信号を使用する。コントローラ104は、出力信号を介して制御動作を弁112aへ伝送する。弁112aは、出力信号を受信し、出力信号の値に基づいてその位置を変更する。
プロセス制御システム100は、LAN106を介してコントローラ104と通信可能に連結されているワークステーション102を含んでいる。コントローラ104は、I/Oデータ取得モジュール190と通信可能に連結されている。I/Oデータ取得モジュール190は、それぞれの通信経路250、254を介して、I/Oカード132a、134aと通信可能に連結されている。I/Oカード132b、134b及びI/Oデータ取得モジュール190までのそれぞれの通信経路は、図2では示していない。更に、の実例では、I/Oデータ取得モジュール190は、他の通信経路を介して他のI/Oカードと通信可能に連結されている場合がある。I/Oカード132aは、フィールド装置112a及び112b(例えば、プロセス制御装置)と通信可能に連結されている。同様に、I/Oカード134aは、フィールド装置116a(例えば、弁)及び116b(例えば、センサー)と通信可能に連結されている。
図2の例示のコントローラ104は、制御ループ202とI/Oスケジューラ180とを含んでいる。他の実例では、コントローラ104は、I/Oデータ取得モジュール190を含んでいる場合がある。更に、I/Oデータ取得モジュール190は、コントローラ104の内部で、ハードウェアとして及び/又は機械によるアクセス可能な媒体に記憶されたプロセス実行可能命令として実装される場合がある。更に他の実例では、I/Oデータ取得モジュール190は、I/Oカード132a及び132bの内部で実装される場合がある。
I/Oスケジューラ180及び/又はコントローラ104は、センサー112b及び116bから発生する入力信号のタイミングを管理している。I/Oスケジューラ180は、制御ループ202の各予定時間枠の間、入力信号を制御ループ202へ転送する。例えば、制御ループ202は、コントローラ104が、センサー112bから発生する入力信号を受信するべき予定時間枠と、コントローラ104が、センサー116bから発生する入力信号を受信するべき予定時間枠と、を含んでいる。これらの予定時間枠は、制御ループ202がそれぞれの入力信号を利用且つ/又は処理するより前に、制御ループ202は、それぞれセンサー112b及び116bからそれぞれの入力信号を受信するように予め定義される。
例示の制御ループ202は、入力信号プロセッサ又は機能ブロック(AI)210、比例積分微分制御動作計算機又は機能ブロック(PID)212、及び出力信号生成要素又は機能ブロック(AO)214を含んでいる。制御ループ202内部の制御アルゴリズム及び/又はルーチンは、AI210から入力信号を受信し、PID212を使用して入力信号を処理し、AO214を介して出力信号を生成する。単一の制御ループサイクルは、複数のルーチン及び/又は制御アルゴリズムを含んでいてもよい。他の実例では、制御ループ202は、他の型のAI、PID及び/又はAOを含んでいてもよい。更に、他の実例は、AI210、PID212、及び/又はAO214のそれぞれを複数個含んでいてもよい。
AI210は、I/Oスケジューラ180から入力信号を受信し、PID212の内部で処理する入力信号を構成する。I/Oスケジューラ180は、入力信号毎の予定時間枠の間に、入力信号をAI210へ転送する。入力信号が、制御ループ202によって処理するために必要とされる予定時間枠の始点前に、入力信号がI/Oスケジューラ180によって受信される場合の実例では、I/Oスケジューラ180は、予定時間枠まで入力信号の転送を延期する。I/Oスケジューラ180が、予定時間枠の終点までに入力信号を受信していない他の場合では、AI210は、同じフィールド装置から以前に送信された入力信号を利用する場合がある。更に、I/Oスケジューラ180が、それぞれの予定時間枠の間に入力信号を受信しない時には、I/Oスケジューラ180及び/又はコントローラ104は、入力信号が受信された時期と、それぞれの予定時間枠(例えば、予定時間枠の始点又は中間)と、の間の時差を計算する。I/Oスケジューラ180及び/又はコントローラ104は、その後、I/Oスケジューラ180が、入力信号を適切な予定時間枠(即ち、信号が、例えば制御ループ202を実行する時にコントローラ104によって処理用に必要とされる時間より前の期間)の間に受け取るように、同じフィールド装置からの後に続く入力信号のタイミングを調整するために、タイミング調整メッセージをI/Oデータ取得モジュール190へ送信する。他の実例では、I/Oスケジューラ180及び/又はコントローラ104は、受信された入力信号のタイミングにおけるオーバーシュートを回避するべく、同じフィールド装置からのその後の入力信号のタイミングを徐々に調整するために1つ又はそれ以上のタイミング調整メッセージをI/Oデータ取得モジュール190へ送信する場合がある。
図2の実装例では、センサー112bは、5ms毎に高圧入力信号を伝送している。幾つかの実例では、I/Oデータ取得モジュール190は、5msの繰り返しサイクルで入力値に関してセンサー112bをポーリングする場合がある。センサー112bは、第1の高圧入力信号を生成し、第1の高圧信号をI/Oデータ取得モジュール190へ伝送する。5ミリ秒後に、センサー112bは、第2の高圧入力信号を生成し、その5ms後に、センサー112bは、第3の高圧入力信号を生成する、等々。I/Oデータ取得モジュール190は、第1の高圧入力信号を受信し、信号をI/Oスケジューラ180へ転送する時間を決定する。この実例では、制御ループ202は、100msの固定サイクルで作動している。制御ループサイクルに入って20ms後に、制御ループ202は、高圧信号を利用して制御動作を計算する。而して、制御スケジュールは、例えば、高圧入力信号は、制御ループサイクルに入って16ms後に始まり制御ループサイクルに入って20ms後に終わる予定時間枠の間に到達しなければならないことを示すことができる。したがって、I/Oデータ取得モジュール190は、制御ループサイクルに入って16msから20msまでの4msの予定時間枠の間に最近の高圧信号を制御ループ202へ転送する。
最近の高圧信号を受信すると、制御ループ202は、弁112a用の制御動作を計算する。例えば、高圧入力信号は、1805barの圧力値を示す場合がある。PID212は、その後、この値を画定された閾値1700barと比較することができる。閾値を上回る105barの差があるので、次に、PID212は、パイプの圧力が1700barを下回るまで下げるように弁112aを開くための制御動作を計算する。この計算された制御動作は、AO214によって生成された出力信号の内部に提供され、弁112aへ転送される。出力信号を受信すると、弁112aは開き、パイプ内部の圧力を下げる。
I/Oスケジューラ180が、4msの予定時間枠(例えば、制御ループサイクルに入って10ms後)の前に最近の高圧信号を受信する場合には、I/Oスケジューラ180は、信号を制御ループ202へ転送する。更に、I/Oスケジューラ180及び/又はコントローラ104は、高圧入力信号を受信した時間と予定時間枠(例えば、6msから10msまでの間の任意の時間)との時差を計算し、後に続く1つ又はそれ以上の高圧信号の取得を6msから10msだけ修正するように、タイミング調整メッセージをI/Oデータ取得モジュール190へ送信することができる。タイミング調整メッセージは、更に、I/Oデータ取得モジュール190が、センサー112bからの高圧信号を要求するための遅延時間を示すことが可能である。
I/Oスケジューラ180が、予定時間枠の8ms後(例えば、制御ループサイクルに入って28ms後)に、I/Oデータ取得モジュール190から第1の高圧信号を受信する場合には、制御ループ202は、代わりに、制御ループサイクルに入って20ms後より前で、直近に受信した高圧入力信号を処理する。更に、I/Oスケジューラ180及び/又はコントローラ104は、高圧入力信号が受信された時間と、予定時間枠(例えば、8msから12msの間の任意の時期)と、の間の時差を計算し、後に続く1つ又はそれ以上の高圧信号が、8msから12ms早く送信又は転送されるように、タイミング調整メッセージをI/Oデータ取得モジュール190へ送信する。
更に又は或いは、I/Oスケジューラ180及び/又はコントローラ104は、
複数の高圧信号が、それぞれの予定時間枠の後で受信されたことを判定するために、最近に判定された時差と、以前の高圧信号に対して以前判定された時差と、を使用して平均時差を計算することができる。その後、I/Oスケジューラ180及び/又はコントローラ104は、後に続く高圧入力信号を漸進的に補正するために、I/Oデータ取得モジュール190に1つ又はそれ以上のタイミング調整メッセージを送ることができる。入力信号タイミングを補正すると、I/Oデータ取得モジュール190は、その後、適切な予定時間枠の間に、第2の高圧入力信号をI/Oスケジューラ180へ転送することができる。
更に、図2の実例では、センサー116bは、I/Oデータ取得モジュール190から要求を受けると、15ms毎に低圧入力信号を伝送している。制御ループ202は、制御ループサイクルに入って40ms後に低圧入力信号を利用することによって、制御動作を計算することができる。同様に、コントローラ104が、制御ループ202を実行しているコントローラ104による処理に入力信号を必要する所定の予定時間枠の中で、確実に信号を受信するように、I/Oスケジューラ180は、低圧入力信号を管理する。或いは、コントローラ104が、予定時間枠の間にI/Oスケジューラ180からの低圧入力信号を要求する場合もある。
図3は、図2の例示の制御ループ202のタイミング図300である。例示のタイミング図300は、制御ループ202内での、第1のフィールド装置(例えば、図1及び図2のフィールド装置112b)からの第1の入力信号及び第2のフィールド装置(例えば、図1及び図2のフィールド装置116b)からの第2の入力信号用のタイミング要件を示している。タイミング要件は、制御スケジュールによって指示される及び/又はプロセス制御技術者によって設定されることができる。タイミング図300は、タイミング軸302を含んでいる。例示のタイミング軸302は、ナノ秒、マイクロ秒、ミリ秒、秒及び/又は分で制御ループ用のタイミングを示すことができる。例示のタイミング図300は、第1の制御ループサイクル304と第2の制御ループサイクル306を示している。第1の制御ループサイクル304は、1つ又はそれ以上の更なる別の制御ループサイクルが先行していてもよい。
第1の制御ループサイクル304は、第1のサイクル時間310に始まり、第2のサイクル時間312に終わる。第2の制御ループサイクル306は、第2のサイクル時間312に始まり、第3のサイクル時間314に終わる。第2のサイクル時間312と第1のサイクル時間310の間の時差は、第3のサイクル時間314と第2のサイクル時間312の間の時差に等しい。即ち、第1の制御ループサイクル304と第2の制御ループサイクル306の時間の期間は、同じである。第1の制御ループ304内で処理されるルーチン、制御アルゴリズム、及び/又は制御動作は、第2の制御ループ306内でも同様に処理される。更に、第1の制御ループ304内で処理されるルーチン、制御アルゴリズム、及び/又は制御動作のタイミングは、第2の制御ループ306内でのタイミングと類似している。
図3の例示のタイミング図300は、図2の制御ループ202が、第1の入力信号を利用する時間に対応する第1の時間320を含んでいる。タイミング図300は、第1の予定時間枠330を更に含んでいる。第1の予定時間枠330は、制御ループ202が第1の入力信号を受信するために、特定された、所定の、又は予定の期間である。I/Oスケジューラ180は、第1の入力信号が、予定時間枠330の間に制御ループ202によって受信されるように、必要に応じて第1の入力信号のタイミングを調整する。幾つかの実例では、I/Oスケジューラ180は、コントローラ104から要求を受けると、第1の入力信号を制御ループ202へ転送する場合がある。第1の入力信号は、第1の予定時間枠330の中の任意の時間(例えば、第3の時間)に、制御ループ202によって受信されることが可能である。この実例では、第1の予定時間枠330は、第1の時間320で終わり、プロセス制御技術者によって指示された及び/又は図1及び図2のコントローラ104内のタイミング基準によって設定された期間を有している。第1の予定時間枠330の始点は、第4の時間に対応している。他の実例では、第1の予定時間枠330は、第1の時間320よりいくらか前の時間に終わる場合もある。
例示のタイミング図300は、図2の制御ループ202が、第1の入力信号を使用し、制御動作を用いて計算された第1の出力信号を生成する第2の時間322を含んでいる。第2の予定時間枠332は、制御ループ202が、その間に第1の出力信号を伝送する予定時間枠を示している。第2の予定時間枠332の期間及び始点は、プロセス制御技術者によって指示され、且つ/又はコントローラ104内のタイミング基準によって設定されることができる。或いは、第2の時間322は、第1の時間320と実質的に同じ時間になる場合がある。この代替的な実例では、第2の予定時間枠332は、第1の時間330より後になる場合もある。
他の実例では、タイミング図300は、対応する予定時間枠を含む他の入力信号を含んでいる場合がある。更に、制御ループが、相対的に同じ時間に異なる入力信号を利用する場合には、コントローラ104は、I/Oスケジューラ180に同時に入力信号を転送するように要求することができる。或いは、制御ループが、相対的に異なる時間に異なる入力信号を利用する場合には、コントローラ104は、I/Oスケジューラ180に、指示された時間に入力信号を転送するように要求することができる。
第1の制御ループサイクル304と第2の制御ループサイクル306のタイミングは、類似しているので、第1の制御ループサイクル304の時間320、及び322、並びに/又は予定時間枠330、及び322の関係又はタイミングは、第2の制御ループサイクル306と類似している。時間320、322及び/又は予定時間枠330、332のタイミングは、更なる別の制御ループサイクル(図示せず)に関しても同様である。
図4Aは、図2の例示の制御ループ202のタイミング図400である。例示のタイミング図400は、対応する予定時間枠422aから422dから平均偏差時間を計算するために使用することができる入力信号430から436を示している。入力信号430から436は、同じフィールド装置(例えば、センサー112b)から発生している。タイミング図400は、タイミング軸401、第1の制御ループサイクル402、第2の制御ループサイクル404、第3の制御ループサイクル406、及び第4の制御ループサイクル408を含んでいる。タイミング図400は、第1のサイクル時間410、第2のサイクル時間412、第3のサイクル時間414、第4のサイクル時間416、及び第5のサイクル時間418を更に含んでいる。明瞭にするために、関連付けられた出力信号は、表示されていない。更に、例示のタイミング図400は、更なる別の制御ループサイクル及び対応するサイクル時間(図示せず)を含んでいてもよい。
例示のタイミング図400は、図2の制御ループ202が、第1の入力信号430を利用する時間に対応する第1の時間420を含んでいる。タイミング図400は、制御ループ202が、第1の入力信号430を受け取るように特定された、所定の及び/又は予定された期間である、予定時間枠422aを含んでいる。第1の時間420と予定時間枠422aは、それぞれの制御ループサイクル404から408内で、実質的に同じタイミングで繰り返される。第1の制御ループサイクル402の間に第1の入力信号430を示しているタイミング図400に加えて、第2の制御ループサイクル404の間に第2の入力信号432が受信され、第3の制御ループサイクル406の間に第3の入力信号434が受信され、第4の制御ループサイクル408の間に第4の入力信号436が受信される。
第1の制御ループサイクル402の間、第1の入力信号430は、予定時間枠422aの間に受信される。しかしながら、第2、第3、及び第4の入力信号432、434及び436は、それぞれの制御ループサイクル404から408の間では、予定時間枠422bから422dの間には受信されない。具体的には、第2の入力信号432は、予定時間枠422bより僅かに後で受信され、第3の入力信号は、第3の制御ループサイクル406の終点の少し前に受信され、第4の入力信号436は、第4の制御ループサイクル408のほぼ真ん中で受信される。
図1及び図2の例示のコントローラ104及び/又はI/Oスケジューラ180は、入力信号430から436が受信された時と、それぞれの予定時間枠422aから422dと、の間の時差を平均化することができる。平均時間が、入力信号430から436は、それぞれの予定時間枠422aから422dの間に受信されていないことを示す場合には、コントローラ104及び/又はI/Oスケジューラ180は、後に続く入力信号が、予定時間枠422aから422dの間に受信されるように、タイミングを調整することができる。しかしながら、平均時間が、入力信号430から436は、それぞれの予定時間枠422aから422dの間に受信されていることを示す場合には、コントローラ104及び/又はI/Oスケジューラ180は、後に続く入力信号のタイミングを調整しなくてもよい。入力信号430から436が受信された時間の平均をとることによって、コントローラ104及び/又はI/Oスケジューラ180は、入力信号を受信する時間が、予定時間枠から外れて受信した1つ又は2つの入力信号だけに基づいて過度に調整されないことを確実にしている。幾つかの実例では、コントローラ104及び/又はI/Oスケジューラ180は、フィールド装置から受信した入力信号の全てを平均する場合があり、或いは、直近に受信した入力信号(例えば、直近の10個の入力信号)の移動平均を算出する場合もある。
しかしながら、幾つかの実例では、プロセス制御技術者は、予定時間枠から外れる入力信号を1つ検出すると、後に続く入力信号を調整させることを望む場合がある。例えば、コントローラ104及び/又はI/Oスケジューラ180は、第2の入力信号432が、第2の制御ループサイクル404内で予定時間枠422bの間に受信されなかったことを検出すると、入力信号434及び436用の入力タイミングを調整することがある。
図4Bは、例示の入力信号480から488を含む図2の制御ループ202のタイミング図450である。例示のタイミング図450は、図1及び図2のコントローラ104及び/又はI/Oスケジューラ180が、後に続く入力信号は、指示される予定時間枠422eから422hの中でコントローラ104によって受信されるように、信号タイミングを調整し得る方法を示している。タイミング図450は、1つのフィールド装置から発生する入力信号480から488(例えば、図1及び図2のフィールド装置112bからの高圧入力信号)を示している。更に、タイミング図450は、入力信号480から488が、コントローラ104内で制御ループ202によって受信される際の入力信号480から488のタイミングを示している。他の実例では、タイミング図450は、同じフィールド装置(例えば、温度入力信号、湿度入力信号など)からの他の型の入力信号、及び/又は複数の他のフィールド装置からの入力信号を含んでいる場合がある。
図4Bの例示のタイミング図450は、タイミング軸401と、第1の時間420と、図4Aの予定時間枠422aから422dと類似している予定時間枠422eから422hと、を含んでいる。更に、図4Bのタイミング図450は、図4Aの制御ループサイクル402から408より後の或る時間になることもある制御ループサイクル452から458を含んでいる。更に、タイミング図450は、それぞれの制御ループサイクル452から458と関連付けられるサイクル時間460から468を含んでいる。出力信号は、明瞭にするために、また出力信号のタイミングは、対応する入力信号が受信される時間の影響を受けないので、図示していない。
図4Aのタイミング図400から、例示のコントローラ104及び/又はI/Oスケジューラ180は、入力信号430から436は、予定時間枠422eから422hから外れた平均偏差時間に受信されることを計算する。図4Bの例示のタイミング図450は、時間470に、タイミング調整メッセージが、I/Oスケジューラ180からI/Oデータ取得モジュール190へ伝送されることを示している。タイミング調整メッセージを受信することで、I/Oデータ取得モジュール190は、フィールド装置から後に続く入力信号を要求する、又は代替的に、後に続く入力信号をコントローラ104へ転送する、タイミングを調整する。
例示のタイミング図450は、I/Oデータ取得モジュール190が、後に続く入力信号480から488のタイミングを漸進的に調整することを示している。例えば、制御ループサイクル454の間に受信される入力信号482及び制御ループサイクル488の間に受信される入力信号484と比較すると、入力信号480は、制御ループサイクル452の間では第1の時間420から更に離れた時間で受信されている。制御ループサイクル458までに、I/Oデータ取得モジュール190は、タイミングの調整を完了しているので、入力信号488は、予定時間枠422hの間にコントローラ104によって受信されようになっている。他の実例では、入力信号が、それぞれの予定時間枠の中で受信されるように入力信号を調整するのに、より多い又はより少ない制御ループサイクルを必要とする場合がある。タイミングスケジュールを漸進的に調整することで、I/Oデータ取得モジュール190は、入力タイミング(例えば、入力信号480から488、及び/又
はこれに続く入力信号)が、予定時間枠を行き過ぎないことを確実にする。
更に、例示のタイミング図450は、時間470に送信されるタイミング調整メッセージを示している。他の実例では、入力信号が予定時間枠422eから422hの中で受信されるまでは、タイミング調整メッセージは、各制御ループサイクル452から458毎にI/Oデータ取得モジュール190へ送信される場合がある。他の実装例では、コントローラ104及び/又はI/Oスケジューラ180が、タイミング調整メッセージは、I/Oデータ取得モジュール190へ送信されるべきであると判定すると、I/Oデータ取得モジュール190は、その次の入力信号が、予定時間枠の間にコントローラ104によって受信されるように、後に続く入力信号のタイミングを調整する。この方法では、I/Oデータ取得モジュール190は、タイミングを漸進的に調整しなくても、次の予定時間枠の間に受信されるように入力信号のタイミングを調整することができる。而して、例えば、I/Oデータ取得モジュール190は、予定時間枠422eの間にコントローラ104によって受信されるように、入力信号480のタイミングを調整することができる。
図5は、第2のフィールド装置をプロセス制御システムへ追加したことに対応する入力信号タイミング調整を示している、制御ループ用のタイミング図500である。タイミング図500は、図3のタイミング軸302と類似するタイミング軸502を含んでいる。更に、例示のタイミング図500は、第1の制御ループサイクル504と、第2の制御ループサイクル506と、第3の制御ループサイクル508と、を含んでいる。制御ループサイクル504から508は、同じ予定時間枠を有している。第1の制御ループサイクル504は、第1のタイムサイクル510で始まり、第2のタイムサイクル512で終わる。第2の制御ループサイクル506は、第2のタイムサイクル512で始まり、第3のタイムサイクル514で終わる。第3の制御ループサイクル506は、第3のタイムサイクル514で始まり、第4のタイムサイクル516で終わる。
第1の制御ループサイクル504は、適切にタイミングが合った、制御ループ用のルーチン及び/又は制御アルゴリズムを示している。第1の制御ループサイクル504の間に、制御ループは、制御ループが、第1のフィールド装置から発生する第1の入力信号530用の制御動作を処理及び/又は計算する時に対応している、第1の時間520を含んでいる。第1の入力信号530は、第1の予定時間枠522aの間にコントローラ104によって受信される。それに続いて、コントローラ104が、第1の入力信号530を利用して制御動作を計算した後で、コントローラ104は、第1の時間520の間及び/又は後の或る時間に出力信号を生成することができる。明瞭にするために、また出力信号は、入力信号のタイミングの影響を受けないので、出力信号は、図5では図示していない。更に、第1の時間520及び予定時間枠522aは、各制御ループサイクル506、508内で実質的に同じタイミングで繰り返される。
第2の制御ループサイクル506は、第2のフィールド装置がプロセス制御システムへ追加されたことを示している。コントローラ104は、新しく追加された第2のフィールド装置から発生する第2の入力信号540を受信する。この実例では、第2のフィールド装置は、かなり直近に制御ループに加えられたので、図1及び図2のI/Oスケジューラ180は、第2のフィールド装置から発生する第2の入力信号540用のタイミングをまだ調整していない。
第2の入力信号540は、第2の制御ループサイクル506の間では、予定時間枠522bから外れて受信される。タイミング図500は、第1のフィールド装置と関連付けられていて、且つ第2の制御ループサイクル506の予定時間枠522bの間に受信される、第1の入力信号532は、第2のフィールド装置の追加の影響を受けなかったことを示している。しかしながら、他の実例では、第1の入力信号532は、第2のフィールド装置の追加の影響を受ける場合もあり、予定時間枠522bより前又は後でコントローラ104によって受信される場合もある。
更に、例示のタイミング図500は、予定時間枠522bを、第1及び第2の入力信号532及び540が、コントローラ104によって受信されるべき時期として示している。第1及び第2の入力信号用の共通の予定時間枠522aから522cは、ルーチンの1つの期間の間(例えば、特定の部分を実行する間)に、全ての対応するフィールド装置からの入力信号にアクセスする及び/又はこれを読み込むルーチンを含むことが可能な、コントローラ104の成果である。しかしながら、他の実例では、コントローラ104は、異なる入力信号を受信するために他の予定時間枠を含んでいる場合もある。その様な他の実装例では、第2の予定時間枠は、図5の第2の入力信号540が、受信されなければならない時間を特定する第2の制御ループサイクル内に含まれる場合がある。
図5の第2の制御ループサイクル506の間に、I/Oスケジューラ180は、第2の入力信号540が、予定時間枠522bより後で受信されたことを判定する。I/Oスケジューラ180は、第2の制御ループサイクル506の予定時間枠522bと、第2の入力信号540が受信された時間と、の間の時差を計算する。I/Oスケジューラ180及び/又はコントローラ104は、コントローラ104が、第2の入力信号540を受信した時間と、予定時間枠522bの始点、中間、及び/又は終点と、の間の差を計算することができる。或いは、I/Oスケジューラ180及び/又はコントローラ104は、コントローラ104が、第2の入力信号540を受信した時間と、予定時間枠522bの中の任意の時間と、の間の差を計算する場合もある。I/Oスケジューラ180及び/又はコントローラ104は、その後、計算された時差を含む、タイミング調整メッセージを図1及び図2のI/Oデータ取得モジュール190へ伝送する。タイミング調整メッセージを受け取ると、I/Oデータ取得モジュール190は、第1のフィールド装置から発生する入力信号を転送及び/又は要求するI/Oデータ取得モジュール190のタイミングを調整する。
例示のタイミング図500は、コントローラ104及び/又はI/Oスケジューラ180が、第2の入力信号540が、予定時間枠522bの間に受信されなかったことを検出すると、タイミング調整メッセージを送信することを示している。しかしながら、他の実例では、コントローラ104及び/又はI/Oスケジューラ180は、平均時間偏差が、それぞれの予定時間枠522から外れているか否かを判定するために、第2のフィールド装置からの後に続く入力信号に対する時差をコンパイルする場合がある。平均偏差時間が、予定時間枠522から外れている場合には、コントローラ104及び/又はI/Oスケジューラ180は、タイミング調整メッセージをI/Oデータ取得モジュール190へ伝送することができる。
図5の実例では、I/Oデータ取得モジュール190は、第3の制御ループサイクル508の始点より前に、第2のフィールド装置から発生する入力信号用のタイミングを調整している。他の実例では、I/Oデータ取得モジュール190は、後に続く制御ループサイクルに亘って、第2のフィールド装置からの後に続く入力信号のタイミングを漸進的に調整することができる。第3のループサイクル508の間では、コントローラ104は、予定時間枠522cの間に、第1のフィールド装置から発生する入力信号534を受信する。更に、コントローラ104は、予定時間枠522cの間に第2のフィールド装置から発生する入力信号542を受信する。第2のフィールド装置の追加の後、I/Oスケジューラ180が、第2のフィールド装置からの入力信号のタイミングを調整した結果として、制御ループは、再び、第2のフィールド装置の追加の1つの制御サイクル内で適切にタイミングが調整される。他の実例では、I/Oスケジューラ180は、第2のフィールド装置を追加した後に続く2つ又はそれ以上の制御ループまでは、入力信号を適切に調整していない場合もある。
図6は、図1及び図2の制御ループ202とプロセス制御システム100用のメッセージ流れ図600である。例示のメッセージ流れ図600は、プロセス制御システム100内を通って伝播する、入力信号604、608、タイミング調整メッセージ606、612、及び出力信号610を示している。メッセージ流れ図600は、図1及び図2のコントローラ104、スケジューラ180、I/Oデータ取得モジュール190、I/Oカード132a、及びフィールド装置112a、112bを含んでいる。更に、メッセージ流れ図600は、システムクロック601を含んでいる。例示のシステムクロック601は、ワークステーション102及び/又はコントローラ104内に含まれていてもよい。
図6の例示のメッセージ流れ図600は、時間の経過で続いて下っている。メッセージ流れ図600は、幾つかの信号とメッセージを含んではいるものの、メッセージ流れ図600は、プロセス制御システム100内で起こり得る全ての信号及び/又はメッセージを示しているわけではない。他の実例では、コントローラ104、I/Oスケジューラ180、I/Oデータ取得モジュール190、及び/又はI/Oカード132aは、確認メッセージ、覚醒メッセージ、認識メッセージ、スリープメッセージ、状況メッセージ、及び/又はプロセス制御システム及び/又はネットワーク内で一般的に伝送される任意の他の型のメッセージ、を伝送し得る。
例示のメッセージ流れ図600は、現在の時刻メッセージ602を伝送するシステムクロック601から始まる。この現在の時刻メッセージ602は、マスタータイム及び/又はマスタータイムの更新を含むことができる。この現在の時刻メッセージ602は、コントローラ104、I/Oデータ取得モジュール190、及びI/Oカード132aによって受信される。他の実例では、フィールド装置112a、112bが、現在の時刻メッセージ602を受信する場合がある。現在の時刻メッセージ602を受信した結果、コントローラ104、I/Oデータ取得モジュール190、及びI/Oカード132aは、各装置が、特定された予定時間枠の間に入力信号を転送及び/又は受信できるようにする、同じタイミングスキームで作動する。更に、現在の時刻メッセージ602は、コントローラ104、I/Oデータ取得モジュール190、及びI/Oカード132aが、入力信号にタイムスタンプを付与するために及び/又は入力信号をタイムスタンプを用いて処理するために同期することを可能にする。
現在の時刻メッセージ602を受信すると、I/Oスケジューラ180は、最初のタイミングメッセージ606をI/Oデータ取得モジュール190へ伝送する。最初のタイミングメッセージ606は、I/Oデータ取得モジュール190が、フィールド装置112bからのタイムスタンプ付き入力信号608をコントローラ104へ転送する時期を含んでいる。他の実例では、最初のタイミングメッセージは、他のフィールド装置から発生する入力信号用の時間を含んでいる場合がある。I/Oスケジューラ180は、制御スケジュールを利用すること及び/又はコントローラ104内で動作する制御ループの中のルーチン及び/又は制御アルゴリズムを監視することによって、タイムスタンプ付き入力信号608用のタイミングを決定する。最初のタイミングメッセージ606を受信すると、I/Oデータ取得モジュール190は、特定された予定時間枠の間にフィールド装置112bから発生したタイムスタンプ付き入力信号604の転送を開始する。
フィールド装置112bは、コントローラ104(図示せず)から要求を受けると、周期的な入力信号604をプロセス制御システム100を介してI/Oカード132aへ伝送する。フィールド装置112bは、制御ループのタイミングに依存しない入力信号604を送信する。入力信号604のタイミングは、プロセス制御技術者によって指示されてもよく、フィールド装置112bの中へ設計されてもよく、且つ/又はプロセス制御システム100を設定する構成ルーチンによって決定されてもよい。入力信号604を受信すると、I/Oカード132aは、入力信号604をI/Oデータ取得モジュール190へ転送する。I/Oカード132aは、I/Oカード132aが、フィールド装置112bからの入力信号604を受信する予定時間枠とは異なる予定時間枠に、入力信号604をI/Oデータ取得モジュール190へ転送する。予定時間枠の差は、他のフィールド装置からの入力信号を受信すること、並びに/又は出力信号610をフィールド装置112a及び/若しくは他のフィールド装置へ伝送する、I/Oカード132a内の処理利用性による結果と言える。
第1の入力信号604を受信すると、I/Oデータ取得モジュール190は、入力信号604にタイムスタンプ690を付与し、タイムスタンプ付き入力信号608をコントローラ104へ伝送する。図6の実例では、I/Oデータ取得モジュール190は、特定された予定時間枠の間にコントローラ104へ転送される入力信号604にだけタイムスタンプ690を付与している。I/Oデータ取得モジュール190が、予定時間枠より前に複数の入力信号604を受信した場合には、I/Oデータ取得モジュール190は、直近に受信した入力信号604を選択する。I/Oデータ取得モジュール190は、他のそれより前に受信した入力信号を無視及び/又は削除する。他の実例では、I/Oカード132a及び/又はフィールド装置112bは、入力信号604が、I/Oデータ取得モジュール190へ送信される前に、入力信号604にタイムスタンプを付与する場合もある。
タイムスタンプ付き入力信号608を受信すると、I/Oスケジューラ180は、タイムスタンプ付き入力信号608が、制御ループがタイムスタンプ付き入力信号608を利用及び/又は処理する前の時間に対応する制御ループ(ブロック692)の予定時間枠の間に受信されたか否かを、判定する。予定時間枠692は、タイムスタンプ付き入力信号608を受信する制御ループの特定された閾値及び/又は許容値である場合がある。図6の実例では、I/Oスケジューラ180は、タイムスタンプ付き入力信号608を制御ループの予定時間枠の中で受信する(ブロック692)。更に、制御ループは、タイムスタンプ付き入力信号608を処理し(ブロック692)、出力信号610を生成する。出力信号610は、その後、コントローラ104からI/Oデータ取得モジュール190へ伝送され、I/Oデータ取得モジュール190は、出力信号610をI/Oカード132aへ転送し、次にI/Oカード132aは、出力信号610をフィールド装置112aへ転送する。出力信号610は、出力信号610が受信されると直ちにI/Oデータ取得モジュール190とI/Oカード132aによって転送されるように示している。しかしながら、幾つかの実例では、出力信号が、受信され、出力信号610は、I/Oデータ取得モジュール190及び/又はI/Oカード132aによって転送された時からしばらくした時点の場合もある。
I/Oスケジューラ180が、タイムスタンプ付き入力信号608を受信する第2の事例では、I/Oスケジューラは、制御ループの予定時間枠(例えば、ブロック692)より前にタイムスタンプ付き入力信号608を受信したことを(楕円650において)判定する。タイムスタンプ付き入力信号608が早く到着したことで、I/Oスケジューラ180は、(ブロック692において)タイムスタンプ付き入力信号608の受信と予定時間枠の間の時差を計算し、タイミング調整メッセージ612をI/Oデータ取得モジュール190へ送信する。タイミング調整メッセージ612を受信すると、I/Oデータ取得モジュール190は、後に続くタイムスタンプ付き入力信号608を伝送するタイミングを調整する。更に、タイミング調整メッセージ612を受信すると、I/Oデータ取得モジュール190は、後に続く入力信号604をフィールド装置112bから要求するタイミングを調整する。I/Oデータ取得モジュール190が、I/Oカード132aの中に含まれている実例では、タイミング調整メッセージ612は、I/Oスケジューラ180からI/Oカード132aへ送信される。
或いは、I/Oスケジューラ180及び/又はコントローラ104は、受信した信号608の平均時間が、常に予定時間枠692から外れているか否かを判定するためにタイムスタンプ付き入力信号608を受信し続ける。I/Oスケジューラ180及び/又はコントローラ104が、タイムスタンプ付き入力信号608の平均は、予定時間枠692から外れていることを判定した場合、I/Oスケジューラ180及び/又はコントローラ104は、後に続くタイムスタンプ付き入力信号608のタイミングを調整するために、漸進的なタイミング調整メッセージをI/Oデータ取得モジュール190へ転送することができる。例示のメッセージ流れ図600では、I/Oデータ取得モジュール190は、制御ループがタイムスタンプ付き入力信号608を利用するより前に、それぞれの予定時間枠の間に最近の2つのタイムスタンプ付き入力信号608を受信している(例えば、最近の2つのブロック692)と、結論付けている。
図7は、図1及び図2の例示のコントローラ104の詳細なブロック図である。図7の例示のコントローラ104は、I/Oデータ取得モジュール190を含んでいない。しかしながら、他の実装例では、コントローラ104は、別の機能ブロックとして及び/又は1つ又はそれ以上の機能ブロック702及び708の中に含まれる機能ブロックとしてI/Oデータ取得モジュール190を含んでいてもよい。追加的に又は代替的に、例示のコントローラ104は、図1のプロセス制御システム100内の他のコントローラと通信する機能ブロックを含んでいてもよい。
図1のI/Oデータ取得モジュール190及び/又はI/Oカードから入力を受信するために、図7の例示のコントローラ104は、入力信号レシーバ702(例えば、1つのレシーバ)を含んでいる。入力信号レシーバ702は、I/Oスケジューラ180によって処理されるデジタル情報を受信する。デジタル信号は、I/Oデータ取得モジュール190及び/又はI/Oカード132a、132b及び134a、134bから転送される情報を含んでいてもよい。幾つかの実例では、入力信号レシーバ702は、I/Oスケジューラ180からの要求に基づいて、I/Oデータ取得モジュール190からの入力信号を要求してもよい。
例示の入力信号レシーバ702は、更に、受信した入力信号にタイムスタンプを付与し、I/Oスケジューラ180へ転送されるデジタル情報を含むタイムスタンプを含んでいる。タイムスタンプは、コントローラ104が入力信号を受信した時間を示している。更に、幾つかの実装例では、入力信号レシーバ702は、入力信号をI/Oスケジューラ180用の待ち行列に入れる場合がある。入力信号レシーバ702は、I/Oスケジューラ180が、入力信号を処理することができる時間及び/又はプロセス制御技術者によって画定された特定の予定時間枠まで入力信号を待ち行列に入れることができる。
図7の実例では、入力信号レシーバ702は、通信パス734を介してI/Oデータ取得モジュール190と通信可能に連結されている。例示の通信パス734は、イーサネット(登録商標)、ユニバーサルシリアルバス(USB)、IEEE 1394などを含む任意のプロトコルを使用して作動し得る。或いは、通信パス734は、I/Oデータ取得モジュール190と無線で通信可能に連結されてもよく、無線通信媒体(例えば、無線イーサネット(登録商標)、IEEE‐802.11、Wi−Fi(登録商標)、Bluetooth(登録商標)など)を使用して実装することができる。
I/Oスケジューラ180用のマスタータイムを管理するために、図7の例示のコントローラ104は、システムクロックマネージャ704を含んでいる。例示のシステムクロックマネージャ704は、図1のプロセス制御システム100用のマスタータイムの更新を受信する。マスタータイムは、ワークステーション102によって管理及び/又は設定することができるプロセス制御システム100内の全ての構成要素用の共通の時間である。他の実例では、例示のシステムクロックマネージャ704は、プロセス制御システム100用のマスタータイムを管理及び/又は設定する場合もある。
マスタータイムは、制御ループ(例えば、図2の制御ループ202)に関連付けられていることもあるプロセス制御システム100内の構成要素用の共通の時間である。同じマスタータイムに従って作動するプロセス制御システム100内に構成要素を有することによって、I/Oスケジューラ180は、それぞれの構成要素間のクロックの差を補償する必要無く入力信号のタイミングを管理することができる。更に、プロセス制御システム100全体用に、又は、代替的に、コントローラ104及び通信可能に連結されたフィールド装置用に共通のクロックを有することによって、フィールド装置によって生成されたタイムスタンプの付与されたデータは、タイミングエラー無しで又はクロックの差を補償せずに、I/Oスケジューラ180によって処理することができる。例えば、フィールド装置112aが、コントローラ104とは異なるマスタークロックを使用している場合には、フィールド装置112aによってタイムスタンプが付与されたあらゆるデータは、I/Oスケジューラ180によって分析される時には異なる基準時間を有するであろう。このクロック差は、入力信号がフィールド装置112aからコントローラ104へ伝搬する計算された時間を歪め、而して通信パスの認識される品質を歪める可能性がある。
図7の例示のシステムクロックマネージャ704は、ワークステーション102からLAN106を介してマスタークロックタイムの更新を受信している。システムクロックマネージャ704は、ハードウェア、ファームウェア、機械による読み込み及びアクセス可能な媒体及び/又はシステムクロックを作動するための任意の他の型の構成要素によって制御されるクロックを包むことができる。幾つかの実例では、システムクロックマネージャ704は、マスタークロックタイムを管理し、更新を送信し、及び/又はマスタータイムをマスタークロックメッセージを介して図1のプロセス制御システム100内の構成要素へ伝送することができる。更に、システムクロックマネージャ704は、I/Oスケジューラ180にマスタータイムを提供する。
例示のシステムクロックマネージャ704は、通信パス732を介してマスタータイムを伝送、且つ/又はマスタータイムを更新することができる。通信パス732は、図1の汎用I/Oバス136a、136b、及び/又は多導体ケーブル128a、128bを介して、I/Oデータ取得モジュール190、I/Oカード132a、132b及び134a、134b、マーシャリングキャビネット122、FJB120a、120b及び/又はフィールド装置112aから112c及び116aから116cに連結することができる。更に、I/Oデータ取得モジュール190にコントローラ104のマスタータイムの更新を提供することによって、I/Oデータ取得モジュール190は、各入力信号に割り付けられる制御ループの予定時間枠の中で入力信号をコントローラ104へ伝送することができる。
システムクロックマネージャ704は、マスタークロックタイムを伝送すること、及び/又はI/Oスケジューラ180からの命令に基づいて定期的な間隔でマスタークロックタイムを更新すること、ができる。マスタークロックの更新は、ナショナルタイミングプロトコル(the National Timing Protocol)及び/又は電気電子技術者協会1588−2002の時計の同期に関する規格を含む確立された規格に基づいていてもよい。例えば、I/Oスケジューラ180は、幾つかのフィールド装置からの入力信号は、常に延着していることを判定することができる。結果的に、I/Oスケジューラ180は、マスタークロックを新たにするために、メッセージをシステムクロックマネージャ704へ送信することができる。メッセージを受信すると、システムクロックマネージャ704は、マスタークロックメッセージ及び/又は更新メッセージをプロセス制御システム100内の構成要素へ伝送する。
入力信号のタイミングを管理するために、図7の例示のコントローラ104は、I/Oスケジューラ180(例えば、1つのスケジューラ)を含んでいる。例示のI/Oスケジューラ180は、フィールド装置112aから112c及び116aから116c(例えば、プロセス制御装置)から発生する入力信号が、制御ループプロセッサ706の制御ループ作動用の予定時間枠の間に受信されるか否かを判定する。何れかの信号が、予定時間枠から外れて受信される場合、例示のI/Oスケジューラ180は、入力信号が予定時間枠の中で受信されるために必要なタイミング調整を決定する。更に、入力信号用の調整時間を決定すると、I/Oスケジューラ180は、影響を受ける入力信号に関連付けられる後に続く入力信号を転送及び/又は要求するタイミングを調整するために、タイミング調整メッセージをI/Oデータ取得モジュール190へ送信する。タイミング調整メッセージは、タイミング調整メッセージを伝達する何らかのアナログ信号、離散的信号又はデジタル信号を含んでいてもよい。
予定時間枠及び/又は制御ループのタイミングは、スケジュールデータベース722の中に保存される制御スケジュールの中で特定することができる。I/Oスケジューラ180は、制御スケジュールの更新のために定期的にスケジュールデータベース722にアクセスすることができる。更に、I/Oスケジューラ180は、制御スケジュールを制御ループプロセッサ706へ伝送することで、制御ループプロセッサ706は、制御スケジュールに従って制御ループルーチンを構成することができるようになる。他の実装例では、制御ループ及び/又はルーチンが、プロセス制御技術者によって制御ループプロセッサ706に設定される場合がある。この事例では、I/Oスケジューラ180は、制御ループから制御スケジュールをコンパイルし、制御スケジュールをスケジュールデータベース722に保存することができる。例示のI/Oスケジューラ180は、ワークステーション102によって又はプロセス制御技術者によって制御ループに対して行われた何らかの後に続く変更のために制御スケジュールを調整する。制御スケジュールは、制御ループ内の制御動作のタイミング(例えば、入力信号内の情報を利用する)と、それぞれの制御動作用の入力信号を受信する期間と、各制御動作のために出力が生成される時間と、を含んでいる。
I/Oスケジューラ180用の制御スケジュールを保存するために、例示のコントローラ104は、スケジュールデータベース722を含んでいる。図7の例示のスケジュールデータベース722は、EEPROM、RAM、ROM及び/又は任意の他の型のメモリによって実装することができる。制御スケジュールの保存に加えて、スケジュールデータベース722は、I/Oスケジューラ108が、プロセス制御システム100内の待ち時間を指示するための閾値を保存することができる。
プロセス制御技術者は、通信パス740を介して新しい制御スケジュールを修正する及び/又はスケジュールデータベース722に追加することができる。通信パス740は、LAN106を含んでいてもよい。例示の通信パス740は、イーサネット(登録商標)、ユニバーサルシリアルバス(USB)、IEEE 1394などによって実装されてもよい。或いは、通信パス740は、ワークステーション102及び/又は任意の他のワークステーションと無線で通信可能に連結されてもよく、無線通信媒体(例えば、無線イーサネット(登録商標)、IEEE−802.11、Wi−Fi(登録商標)、Bluetooth(登録商標)など)を利用して実装することができる。
図7の例示のI/Oスケジューラ180は、入力信号が、制御動作用の予定時間枠の中で受信されたか否かを判定するために、制御ループプロセッサ706内の制御ループの各サイクルの進行を監視している。例えば、制御ループプロセッサ706が、第1の制御動作の計算を含む制御ループを作動させる場合には、I/Oスケジューラ180は、現在時刻が、制御ループプロセッサ706が計算を実行するべき時間に接近する時を追跡する。I/Oスケジューラ180は、次に、第1の制御動作の前に予定時間枠を認識するために制御スケジュールにアクセスし、第1の制御動作に対応する入力信号が、受信されたか否かを判定する。入力信号が、この予定時間枠より前に受信された場合には、I/Oスケジューラ180は、入力信号が受信された時間と予定時間枠の間の時差を計算する。I/Oスケジューラ180は、次に、計算した時差に基づく時間調整に関する情報を含むメッセージ(例えば、タイミング調整メッセージ)を生成し、このメッセージをI/Oデータ取得モジュール190へ伝送する。更に、I/Oスケジューラ180は、入力信号を制御ループプロセッサ706へ転送する。
入力信号が、予定時間枠の間にコントローラ104によって受信されなかった場合には、I/Oスケジューラ180は、入力信号が受信されるまで待機し、入力信号が受信された時間と、予定時間枠と、の間の時差を計算する。I/Oスケジューラ180は、次に、計算した時差を盛り込んだタイミング調整メッセージを生成し、タイミング調整メッセージをI/Oデータ取得モジュール190へ伝送する。I/Oスケジューラ180は、I/Oデータ取得モジュール190へ転送するために、タイミングメッセージを信号調整プロセッサ708へ伝送する。
追加的に又は代替的には、I/Oスケジューラ180が、入力信号は、予定時間枠から外れて受信されると判定する場合の実例では、I/Oスケジューラ180は、それぞれの予定時間枠と比較して、前の及び/又は後に続く入力信号に基付く平均偏差時間を決定することができる。この平均偏差時間は、共通のフィールド装置から発生する入力信号のタイミングが、予定時間枠から常に外れているか否かを判定するのに使用することができる。例えば、それぞれの予定時間枠より後の遅れた時間にI/Oスケジューラ180によって漸次受信されるセンサーから発生する入力信号は、センサーからの入力信号が、予定時間枠から逸脱していることを判定するために平均化される場合がある。平均偏差時間が、予定時間枠から外れている場合には、I/Oスケジューラ180は、後に続く入力信号をそれぞれの予定時間枠の中に漸進的に入るようにするために、1つ又はそれ以上のタイミング調整メッセージをI/Oデータ取得モジュール190へ伝送することができる。
I/Oスケジューラ180が、制御動作用の予定時間枠より前に、同じ型のプロセス制御情報を含んでいる同じフィールド装置から2つの異なる時間に2つの入力信号を受信する場合の実例では、I/Oスケジューラ180は、遅く到着するほうの入力信号を処理する。更に、図7の例示のI/Oスケジューラ180は、フィールド装置が、プロセス制御システム100へ加えられる又はプロセス制御システム100から取り除かれる場合の実例では、制御スケジュールを調整している。例えば、フィールド装置が加えられる時には、制御ループは、新しく加えられたフィールド装置からのデータを処理するように調整される。I/Oスケジューラ180は、プロセス制御技術者からの命令に基づいて新しいフィールド装置用に制御スケジュールを調整することができる。幾つかの事例では、技術者は、制御ループを調整及び/又は修正する必要無く、新しく加えられたフィールド装置に関連付けられる入力信号を加えることができる。しかしながら、制御ループが、修正しなければ新しい入力信号に対応することができない、幾つかの他の実例では、新しい入力信号が、制御ループの中に組み込まれるように、制御ループスケジュールは、技術者及び/又はI/Oスケジューラ180によって調整することができる。調整は、入力信号が、転送及び/又は要求される時のタイミングを修正する工程及び/又は入力信号を受信する予定時間枠の期間を増大させる工程を含んでいる場合がある。制御ループを更新した結果、制御動作が計算される時、及び/又は出力信号が生成される時には、I/Oスケジューラ180は、信号入力用の新しいタイミング要件を用いて制御スケジュールを更新する。更に、I/Oスケジューラ180は、新しく加えられたフィールド装置からの入力信号を転送及び/又は要求するための新しいタイミング要件を含む、タイミング調整メッセージを、I/Oデータ取得モジュール190へ送信する。
他の実例では、プロセス制御技術者は、新しいフィールド装置を加えることで制御スケジュール及び/又は制御ループを更新する場合がある。更新された制御スケジュールを受信すると、I/Oスケジューラ180は、更新された入力信号タイミング要件と共に、調整メッセージをI/Oデータ取得モジュール190へ伝送する。
I/Oスケジューラ180から発生するタイミング調整メッセージを伝送するために、図7の例示のコントローラ104は、信号調整プロセッサ708を含んでいる。例示の信号調整プロセッサ708は、I/Oデータ取得モジュール190及び/又はI/Oカード132a、132b及び134a、134bへのタイミング調整メッセージの伝送を管理している。I/Oデータ取得モジュール190が、応答していない場合には、信号調整プロセッサ708は、タイミング調整メッセージを伝送し続けてもよく、及び/又はI/Oデータ取得モジュール190が、再びメッセージを受信することが可能になるまでタイミング調整メッセージの伝送を遅延させてもよい。
I/Oスケジューラ180からタイミングメッセージを受信すると、信号調整プロセッサ708は、メッセージを、通信パス730を介したI/Oデータ取得モジュール190への伝送用の書式に変換することができる。例示の通信パス730は、イーサネット(登録商標)、ユニバーサルシリアルバス(USB)、IEEE 1394などによって実装されてもよい。或いは、通信パス730は、I/Oデータ取得モジュール190及び/又はI/Oカード132a、132b及び134a、134bと無線で通信可能に連結されてもよく、無線通信媒体(例えば、無線イーサネット(登録商標)、IEEE−802.11、Wi−Fi(登録商標)、Bluetooth(登録商標)など)を利用して実装することができる。
例示のI/Oスケジューラ180は、制御ループプロセッサ706への入力信号の転送を管理している。I/Oスケジューラ180が、制御動作用の予定時間枠より前及び/又は予定時間枠内に入力信号を受信する場合の実例では、I/Oスケジューラ180は、予定時間枠の間に入力信号を制御ループプロセッサ706へ転送する。追加的に又は代替的には、I/Oスケジューラ180は、予定時間枠に制御ループプロセッサ706から要求を受けると、入力信号を制御ループプロセッサ706へ供給する場合がある。I/Oスケジューラ180が、制御動作用の予定時間枠より後で入力信号を受信する他の場合では、I/Oスケジューラ180は、次の制御ループサイクルの間に再び予定時間枠になるまで、入力信号を保留する場合がある。
I/Oスケジューラ180が、同じフィールド装置から次の類似の入力信号を受信する場合には、I/Oスケジューラ180は、先行する入力信号を削除及び/又は無視し、次の入力信号を予定時間枠の間に制御ループプロセッサ706へ転送することができる。制御ループプロセッサ706への入力信号の転送を、それぞれの入力信号に対応する制御動作の予定時間枠の間だけに制限することによって、I/Oスケジューラ180は、制御ループプロセッサ706の効率を維持する。この効率によって、制御ループプロセッサ706は、他の制御動作を計算すべき時期の間には、入力信号を管理する必要がないことが確実になる。更に、I/Oスケジューラ180が、入力信号は、予定時間枠から外れて受信されると判定した場合には、I/Oスケジューラ180は、次の制御ループサイクルより前に入力信号のタイミングを補正することができる。
I/Oスケジューラ180は、ノイズが多く、且つ/又は過負荷なプロセス制御システム100のせいで大幅なオーバーシュート又はアンダーシュートが実現していないトポロジーを必要に応じて補正するように特定することで、プロセス制御オペレータが、入力信号のタイミングの補正を調整することができるようにしている。プロセス制御オペレータは、接続部740とスケジュールデータベース722を介してI/Oスケジューラ180にアクセスすることができる。
図7の例示のI/Oスケジューラ180は、更に、フィールド装置112aから112c及び116aから116cの何れか1つと、コントローラ104と、の間の通信パスの品質を判定することができる。I/Oスケジューラ180は、入力信号が、発生したフィールド装置からコントローラ104まで伝播する時間を計算することによって、通信パスの品質を判定することができる。例えば、I/Oスケジューラ180は、伝播時間を判定するために入力信号内のタイムスタンプ付きの情報を分析する場合がある。タイムスタンプ付きの情報は、入力信号がフィールド装置によって生成及び/又は伝送された時間、入力信号がI/Oカードによって転送された時間、入力信号がI/Oデータ取得モジュール190によって転送された時間、及び/又は入力信号が入力信号レシーバ702によって受信された時間、を含んでいる場合がある。
I/Oスケジューラ180は、それぞれのプロセス制御構成要素の間の伝播時間を計算し、所定の閾値と比較する。閾値は、各伝播パス又はステップ(例えば、多導体ケーブル128aを介してFJB120aからターミネーションモジュール124aまで)用に、又は、代替的に、通信パス全体(例えば、フィールド装置112aからコントローラ104まで)用に、画定することができる。計算した伝播時間が、閾値を超える場合には、I/Oスケジューラ180は、通信パスの一部分及び/又は全部に関する問題が存在することを示す診断メッセージを生成することができる。診断メッセージは、プロセス制御システム100の一部分に入力信号の伝播に時間遅延及び/又は待ち時間が存在することを示すことができる。I/Oスケジューラ180は、診断メッセージを診断生成要素712へ伝送する。
タイムスタンプ付きの情報が、各プロセス制御構成要素(例えば、I/Oカード132a、I/Oデータ取得モジュール190など)からのタイムスタンプを含んでいる場合には、I/Oスケジューラ180は、診断メッセージで、通信パスの一部分に問題があることを示す場合がある。更に、I/Oスケジューラ180は、タイミングメッセージをI/Oデータ取得モジュール190へ送信することによって、時間遅延の影響を受ける入力信号のタイミングを調整することができる。このタイミングメッセージは、同じ通信パスに沿って伝播する入力信号が、制御ループの対応する予定時間枠の中で、コントローラ104によって時宜を得て受信されることを確実にする。入力信号伝播の待ち時間が、制御ループの期間を超える幾つかの事例では、プロセス制御技術者は、入力信号が、制御ループサイクル毎に少なくとも1回はコントローラ104に達するように制御スケジュールを調整することによって、制御ループを減速することができる。
診断メッセージを図1のワークステーション102へ伝送するために、図7の例示のコントローラ104は、診断生成要素712を含んでいる。例示の診断生成要素712は、診断メッセージの伝送を管理している。I/Oスケジューラ180から診断メッセージを受信すると、診断生成要素712は、メッセージを、通信パス742を利用したワークステーション102への伝送用の書式に変換する。通信パス742は、LAN106を含んでいてもよい。例示の通信パス742は、イーサネット(登録商標)、ユニバーサルシリアルバス(USB)、IEEE 1394などによって実装されてもよい。或いは、通信パス742は、ワークステーション102及び/又は任意の他のワークステーションと無線で通信可能に連結されてもよく、無線通信媒体(例えば、無線イーサネット(登録商標)、IEEE−802.11、Wi−Fi(登録商標)、Bluetooth(登録商標)など)を利用して実装することができる。
更に、受信側ワークステーション102が、応答していない場合には、診断生成要素712は、診断メッセージを伝送し続けてもよく、且つ/又はワークステーション102が、再びメッセージを受信することが可能になるまで診断メッセージの伝送を遅延させてもよい。更に、プロセス制御技術者及び/又はオペレータは、メッセージを、診断生成要素712へ送信することによって、入力信号の伝播における待ち時間を特定するための閾値を修正することができる。それらのメッセージを受信すると、診断生成要素712は、メッセージをI/Oスケジューラ180へ転送する。診断メッセージは、プロセス制御システム100(例えば、通信パス)のどの部分が、入力信号の伝播について待ち時間を誘発しているのかを示すことができ、且つ/又はかつて問題のあった通信パスが待ち時間の問題を有していず、通信パスに関連付けられる診断警告は、解除することが可能であることを示すことができる。
ルーチン及び/又は制御ループ(例えば、図2の制御ループ202)を含むプロセス制御アルゴリズムを作動させるために、図7の例示のコントローラ104は、制御ループプロセッサ706を含んでいる。例示の制御ループプロセッサは、図1のプロセス制御システム100を監視及び/又は管理する所定の期間を経て制御ループを作動させる。図7の例示の制御ループプロセッサ706は、マイクロプロセッサ、マイクロコントローラ、特定用途向け集積回路(ASIC)、デジタル信号プロセッサなどを利用して実装することができる。
制御ループプロセッサ706は、フィールド装置から発生する入力信号を受信し、入力信号を処理し、制御動作を計算し、制御動作に対応する出力信号を生成する。制御アルゴリズム、ルーチン及び/又は制御ループは、制御スケジュールによって特定することが可能である。更に、制御アルゴリズム、ルーチン及び/又は制御ループに対する修正は、ワークステーション102を介して、及び/又はコントローラ104への直接アクセスを通じてプロセス制御技術者によって行うことができる。
制御ループプロセッサ706は、I/Oスケジューラ180から入力信号を受信する。I/Oスケジューラ180は、制御ループが入力信号を使用して制御動作を計算するより前に、予定時間枠の間に、入力信号を制御ループプロセッサ706へ送信する。追加的に又は代替的に、I/Oスケジューラ180は、制御ループプロセッサ706からの要求を受けると入力信号を制御ループプロセッサ706へ送信する場合がある。入力信号を受信すると、制御ループプロセッサ706は、それらの信号を制御ループの適切な部分(例えば、図2のAI210内の制御変数)へ読み込むことによって入力信号を処理する。制御ループは、次に、制御動作の計算の間に入力信号内のデータを利用し、制御動作に対応する出力信号を生成する。出力信号を生成すると、制御ループプロセッサ706は、出力信号を出力信号送信機710へ伝送する。
出力信号を対応するフィールド装置へ伝送するために、図7の例示のコントローラ104は、出力信号送信機710を含んでいる。フィールド装置は、所定の基準内で1つ又はそれ以上のプロセスを続行するために、プロセス制御システム100に対して補正動作を実行するのに出力信号を利用する。例示の出力信号送信機710は、出力信号の、I/Oデータ取得モジュール190及び/又はI/Oカード132a、132b及び134a、134bへの伝送を管理している。制御ループプロセッサ706から出力信号を受信すると、出力信号送信機710は、出力信号を、通信パス738を介したI/Oデータ取得モジュール190への伝送用の書式に変換する。例示の通信パス738は、イーサネット(登録商標)、ユニバーサルシリアルバス(USB)、IEEE 1394などによって実装されてもよい。或いは、通信パス738は、I/Oデータ取得モジュール190及び/又は任意のフィールド装置(例えば、無線フィールド装置116c)と無線で通信可能に連結されてもよく、無線通信媒体(例えば、無線イーサネット(登録商標)、IEEE−802.11、Wi−Fi(登録商標)、Bluetooth(登録商標)など)を利用して実装することができる。
出力信号を伝送する前に、出力信号送信機710は、出力信号を伝送するための順番を決定するために低い優先度の信号データベース720にアクセスすることができる。例えば、出力信号送信機710が、制御ループプロセッサ706から数多くの出力信号を受信する場合では、出力信号送信機710は、どの出力信号が、対応するフィールド装置へ伝送されるのか優先順位を決めることができる。例えば、出力送信機710が、多数の出力信号を受信する場合には、出力信号送信機710は、制御ループに関連付けられる出力信号は、最初に送信され、制御ループに関連付けられない出力信号は、後で送信されることを決定するために、低い優先度の信号データベース720にアクセスする場合がある。
更に、幾つかの実例では、I/Oスケジューラ180は、判定用のどの入力が、予定時間枠の中で受信されたのかを判定するために、低い優先度のデータベース720にアクセスする場合がある。優先度が低いと判定される入力信号は、より高い優先度の入力信号の後で、I/Oスケジューラ180によって検査される。低い優先度の入力信号は、ディスプレイの中に含まれる監視入力及び/又は制御動作に関連付けられない入力を含んでいてもよく、優先度の高いものは、それらのうちの少なくとも1つを含んでいる。更に、高い優先度の入力は、制御動作に関連付けられるフィールド装置からの入力を含んでいる。更に、低い優先度の出力信号は、比較的に長期間の間に生成される出力信号を含んでいる場合がある。
例示の低い優先度の信号データベース720は、EEPROM、RAM、ROM及び/又は任意の他の型のメモリによって実装することができる。それぞれの出力信号の優先度順位は、制御ループの設定された期間によって推察されてもよく、及び/又は通信パス736を利用してプロセス制御技術者によって設定されてもよい。例示の通信パス736は、イーサネット(登録商標)、ユニバーサルシリアルバス(USB)、IEEE 1394などによって実装されてもよい。或いは、通信パス736は、ワークステーション102と無線で通信可能に連結されてもよく、無線通信媒体(例えば、無線イーサネット(登録商標)、IEEE−802.11、Wi−Fi(登録商標)、Bluetooth(登録商標)など)を使用して実装することができる。
コントローラ104を実装する例示の方法を図7で示しているが、図7で図解しているインターフェース、データ構造、要素、プロセス及び/又は装置の1つ又はそれ以上は、結合、分割、再配置、省略、削除されてもよく、且つ/又は任意の他の方法で実装されてもよい。例えば、図7に図解している例示の入力信号レシーバ702、例示のシステムクロックマネージャ704、例示の制御ループプロセッサ706、例示の信号調整プロセッサ708、例示の出力信号送信機710、例示の診断生成要素712、例示のI/Oスケジューラ180、例示のスケジュールデータベース722、及び/又は例示の低い優先度の信号データベース720は、独立して及び/又は任意の組み合わせによる使用、例えば、1つ又はそれ以上の計算装置及び/又は計算プラットフォーム(例えば、図10の例示の処理プラットフォーム1010)によって実行される、機械によるアクセス可能又は読み込み可能な命令などで実装されてもよい。
更に、例示の入力信号レシーバ702、例示のシステムクロックマネージャ704、例示の制御ループプロセッサ706、例示の信号調整プロセッサ708、例示の出力信号送信機710、例示の診断生成要素712、例示のI/Oスケジューラ180、例示のスケジュールデータベース722、例示の低い優先度の信号データベース720及び/又はより概括的には、コントローラ104は、ハードウェア、ソフトウェア、ファームウェア、及び/又はハードウェア、ソフトウェア、ファームウェアの任意の組み合わせによって実装されてもよい。而して、例えば、例示の入力信号レシーバ702、例示のシステムクロックマネージャ704、例示の制御ループプロセッサ706、例示の信号調整プロセッサ708、例示の出力信号送信機710、例示の診断生成要素712、例示のI/Oスケジューラ180、例示のスケジュールデータベース722、例示の低い優先度の信号データベース720及び/又はより概括的には、コントローラ104のいずれかは、1つ又はそれ以上の回路、1つ又は複数のプログラム可能プロセッサ、1つ又は複数の特定用途向け集積回路(ASIC)、1つ又は複数のプログラム可能論理装置(PLD)、及び/又は1つ又は複数のフィールドでプログラム可能論理装置(FPLD)などによって実装することができる。
図8A、図8B及び図9は、図1、図2及び/又は図7の例示のコントローラ104、図1、図2及び/又は図7の例示のI/Oスケジューラ180、図1及び/又は図2の例示のI/Oデータ取得モジュール190、及び/又は図1及び/又は図2の例示のプロセス制御システム100を実装するために実施することができる例示の方法のフローチャートである。図8A、図8B及び図9の例示の方法は、プロセッサ、コントローラ、及び/又は任意の他の適切な処理装置によって実施することができる。例えば、図8A、図8B及び図9の例示の方法は、フラッシュメモリ、CD、DVD、フロッピィディスク、ROM、RAM、プログラム可能ROM(PROM)、電子式プログラム可能ROM(EPROM)、電子式消去可能PROM(EEPROM)、光学記憶ディスク、光学記憶装置、磁気記憶ディスク、磁気記憶装置、及び/又はプログラムコード及び/又は方法又はデータ構造の形態をした命令を担持する又は保存するのに使用することができる任意の他の媒体などの、任意の有形のコンピュータ読み込み可能媒体に記憶される符号化された命令に具現化することができ、それらの命令は、プロセッサ、汎用又は特殊用途コンピュータ、又はプロセッサを備える他の機械(例えば、図10に関連して下文で検討する例示のプロセッサプラットフォーム1010)によってアクセスすることが可能である。上記の組み合わせも、コンピュータ読み込み可能媒体の範囲に含まれる。方法は、例えば、プロセッサ、汎用コンピュータ、特殊用途コンピュータ又は特殊用途処理機械に、1つ又はそれ以上の特定の方法を実装させる命令及び/又はデータを備える。或いは、図8A、図8B及び図9の例示の方法の幾つか又は全ては、1つ又は複数のASIC、1つ又は複数のPLD、1つ又は複数のFPLD、個別論理、ハードウェア、ファームウェアなどの任意の1つ又は複数の組み合わせを利用して実装してもよい。更に、図8A、図8B及び図9の例示の方法の幾つか又は全ては、代わりに、手動で又は前述の技法の何れかの任意の組み合わせ、例えばファームウェア、ソフトウェア、個別論理及び/又はハードウェアの何らかの組み合わせで実装してもよい。更に、図8A、図8B及び図9の例示の作業を実装する数多くの他の方法を用いてもよい。例えば、ブロックの実行の順番は、変更してもよく、且つ/又は記載する1つ又はそれ以上のブロックを、変更、削除、細分化又は結合してもよい。更に、図8A、図8B及び図9の例示の方法の何れか又は全ては、例えば、個別の処理スレッド、プロセッサ、装置、個別論理、回路などによって、順次に又は並行して実行されてもよい。
図8A及び図8Bの例示の方法800は、入力信号が、規定の予定時間枠の中でコントローラ104によって受信されるように入力信号を構成するための入力信号検証及び/又は調整プロセスを提供している。例示の方法800は、1つのプロセス制御装置(例えば、フィールド装置)から発生する入力信号用のタイミング調整を計算するプロセスを提供している。しかしながら、例示の方法800は、複数のプロセス制御装置から発生する入力信号用のタイミング調整を計算する他の例示の方法800と並行して作動する場合がある。更に、例示の方法800は、それぞれのプロセス制御装置毎に異なるブロックで異なる時間に存在する場合がある。
例示の方法800は、図8Aで開始し、ここで、図1の例示のコントローラ104が、制御ループを開始する(ブロック804)。制御ループは、制御アルゴリズム及び/又はコントローラ104内で作動するルーチンの中に含まれていてもよい。次に、コントローラ104は、初期タイミングメッセージをI/O取得モジュール190へ送信する(ブロック806)。初期タイミングメッセージは、I/O取得モジュール190が、入力信号をコントローラ104へ転送する時間を含んでいる。タイミングメッセージは、制御ループの制御スケジュールに基づいていてもよい。その後しばらくして、I/O取得モジュール190は、第1の入力信号をプロセス制御装置(例えば、フィールド装置112aから112c及び116aから116c)から受信する(ブロック808)。第1の入力信号を受信すると、I/O取得モジュール190は、受信信号にタイムスタンプを付与する(ブロック810)。その後、タイミングメッセージの時間に対応する予定時間枠の間、I/O取得モジュール190は、第1の入力信号をコントローラ104へ転送する(ブロック812)。
I/Oスケジューラ180及び/又はコントローラ104は、第1の入力信号をI/O取得モジュール190から受信し、第1の入力信号が、予定時間枠の中で受信されたか否かを計算する(即ち、入力信号の遅延を計算する)(ブロック814)。第1の入力信号が、制御ループが、第1の入力信号を利用する所定の時間に対応する予定時間枠の中でコントローラ104によって受信された場合には(ブロック816)、コントローラ104内部の図7の制御ループプロセッサ706は、制御ループ内の第1の入力信号を処理し、第1の入力信号を用いて制御動作を計算する(ブロック818)。次に、制御ループプロセッサ706は、計算された制御動作を含む出力信号を生成する(ブロック820)。コントローラ104は、その後、プロセス制御システム100の一部分を制御するために出力信号を第2のプロセス制御装置へ伝送する(ブロック822)。図8Aの例示の方法800は、その後、I/Oデータ取得モジュール190が、プロセス制御装置から別の入力信号を受信すると、ループバックする(ブロック808)。
しかしながら、I/Oスケジューラ180及び/又はコントローラ104が、第1の入力信号は、制御ループが第1の入力信号を利用する時間に対応する予定時間枠から外れてコントローラ104によって受信された、と判定する場合には(ブロック816)、I/Oスケジューラ180及び/又はコントローラ104は、第1の入力信号は、予定時間枠の始点より前にコントローラ104によって受信されたか否かを判定する(ブロック824)。第1の入力信号が、予定時間枠より前に受信された場合には、例示の方法800は、図8Bへ続き、ここで、I/Oスケジューラ180及び/又はコントローラ104は、第1の入力信号を制御ループプロセッサ706へ転送し、制御ループプロセッサ706が、第1の入力信号を利用して制御動作を処理及び計算する(ブロック826)。制御ループプロセッサ706は、その後、制御動作から出力信号を生成し(ブロック828)、出力信号を第2のプロセス制御装置へ伝送する(ブロック830)。
図8Bの例示の方法800は、ここで、I/Oスケジューラ180及び/又はコントローラ104は、第1の入力信号が、予定時間枠の始点より前にコントローラ104によって受信されたことを示す診断メッセージを生成する(ブロック838)。I/Oスケジューラ180及び/又はコントローラ104は、その後、コントローラ104が、第1の入力信号を受信した時間と、予定時間枠と、の間の差を計算する(ブロック840)。I/Oスケジューラ180及び/又はコントローラ104は、コントローラ104が、第1の入力信号を受信した時間と、予定時間枠の始点、中間及び/又は、終点の間と、の差を計算する場合もある。或いは、I/Oスケジューラ180及び/又はコントローラ104は、コントローラ104が、第1の入力信号を受信した時間と、予定時間枠の中の任意の時間と、の間の差を計算する場合もある。
幾つかの実装例では、I/Oスケジューラ180及び/又はコントローラ104は、入力信号が処理のために制御ループプロセッサへ送信される(ブロック826)と、時差を計算する(ブロック840)。更に他の実装例では、I/Oスケジューラ180及び/又はコントローラ104は、入力信号が処理のために制御ループプロセッサへ送信される(ブロック826)より前に時差を計算する(ブロック840)場合がある。時差は、第1の入力信号が、受信された時間と、予定時間枠の中の任意の時間と、の間の差と一致する場合がある。I/Oスケジューラ180及び/又はコントローラ104は、時差を含んだ時間調整メッセージを生成し(ブロック840)、タイミング調整メッセージをI/Oデータ取得モジュール190へ伝送する(ブロック842)。タイミング調整メッセージは、I/Oデータ取得モジュール190が、第1の入力信号と同じデータの時間を記録する同じプロセス制御装置から発生する類似の入力信号を転送及び/又は要求する新しい時間を含んでいる。
他の実装例では、I/Oスケジューラ180及び/又はコントローラ104は、複数の受信した入力信号の予定時間枠からの平均時間偏差に基づいて時差を計算する場合がある(ブロック840)。次に、平均時間偏差が、予定時間枠から外れている場合には、例示のコントローラ104及び/又はI/Oデータ取得モジュールは、タイミング調整メッセージをI/Oデータ取得モジュール190へ伝送することができる(ブロック842)。平均時間偏差は、フィールド装置から受信される全ての入力信号に基づいていてもよく、或いは、時間偏差は、フィールド装置から最近受信した複数の入力信号に基づいていてもよい。
タイミング調整メッセージを受信すると、I/Oデータ取得モジュール190は、第1の入力信号に関連付けられる入力用のタイミングスケジュールを更新する(ブロック844)。而して、第1の入力信号と同じ型の情報を含んでいる、同じプロセス制御装置からの何らかの後の入力信号は、対応する予定時間枠と一致する時間に、I/O取得モジュール190によってコントローラ104へ転送される。更に、I/O取得モジュール190は、タイミングスケジュールに基づいて、第1の入力信号と同じ型の情報を含んでいる、同じプロセス制御装置からの任意の後の入力信号を要求することができる。I/Oデータ取得モジュール190が、プロセス制御装置から第2の入力信号を受信すると、その後、図8Bの例示の方法800は、図8Aにループバックする(ブロック808)。
しかしながら、第1の入力信号が、予定時間枠より後に受信された場合には、例示の方法800は、図8Bへ続き、ここで、制御ループプロセッサ706は、第1の入力信号より前に受信した以前の入力信号を利用して制御動作を処理及び計算する(ブロック832)。第1の入力信号は、制御動作の計算の後でコントローラ104によって受信されたので、制御ループは、利用可能な入力信号、即ち以前の入力信号を利用することしかできない。制御ループプロセッサ706は、その後、制御動作から出力信号を生成し(ブロック834)、出力信号を第2のプロセス制御装置へ伝送する(ブロック836)。
図8Bの例示の方法800は続き、ここで、I/Oスケジューラ180及び/又はコントローラ104は、第1の入力信号が、予定時間枠の始点より後にコントローラ104によって受信されたことを示す診断メッセージを生成する(ブロック838)。I/Oスケジューラ180及び/又はコントローラ104は、次に、コントローラ104が、第1の入力信号を受信した時間と、予定時間枠と、の間の差を計算する(ブロック840)。時差は、予定時間枠の中の任意の時間から第1の入力信号が受信された時までの差と一致する場合がある。I/Oスケジューラ180及び/又はコントローラ104は、時差を含んだ時間調整メッセージを生成し(ブロック840)、タイミング調整メッセージをI/Oデータ取得モジュール190へ伝送する(ブロック842)。タイミング調整メッセージは、I/Oデータ取得モジュール190が、第1の入力信号と同じデータの時間を記録している、同じプロセス制御装置から発生する類似の入力信号を転送するための新しい時間を含む。更に、I/O取得モジュール190は、タイミングスケジュールに基づいて、第1の入力信号と同じ型の情報を含んでいる、同じプロセス制御装置からの後の入力信号を要求する場合がある。
タイミング調整メッセージを受信すると、I/Oデータ取得モジュール190は、第1の入力信号に関連付けられる入力用のタイミングスケジュールを更新する(ブロック844)。而して、第1の入力信号と同じ型の情報を含んでいる、同じプロセス制御装置からの何らかの後の入力信号は、対応する予定時間枠と一致する時間に、I/O取得モジュール190によってコントローラ104へ転送される。更に、I/O取得モジュール190は、タイミングスケジュールに基づいて、第1の入力信号と同じ型の情報を含んでいる、同じプロセス制御装置からの後の入力信号を要求することができる。その後、I/Oデータ取得モジュール190が、プロセス制御装置から第2の入力信号を受信すると、図8Bの例示の方法800は、図8Aにループバックする(ブロック808)。
図9の例示の方法900は、新しいプロセス制御装置(例えば、フィールド装置)がプロセス制御システム100に追加された時の入力信号検証及び/又は調整プロセスを提供している。例示の方法900は、複数のプロセス制御装置から発生する入力信号用のタイミング調整を計算する他の例示の方法900と並行して作動する場合がある。更に、例示の方法900は、それぞれのプロセス制御装置毎に異なるブロックで異なる時間に存在する場合がある。
例示の方法900は、図9では、プロセス制御装置が、プロセス制御システムに追加され、制御ループが、新しく追加されたプロセス制御装置からの入力を利用する制御動作を用いて更新されること(ブロック906)で始まる。次に、I/Oスケジューラ180及び/又はコントローラ104は、新しく追加されたフィールド装置を含むフィールド装置から受信される入力信号が、それぞれの予定時間枠の中で受信されたか否かを判定する(ブロック908)。I/Oスケジューラ180及び/又はコントローラ104は、I/Oスケジューラ180が、入力信号を受信する時に、各入力信号が、対応する予定時間枠の間に受信されたか否かを判定する。それぞれの予定時間枠の間に受信されたことが判定された(ブロック908)入力信号に関しては、I/Oスケジューラ180及び/又はコントローラ104は、入力信号を制御ループプロセッサ706へ転送する。制御ループプロセッサ706は、その後、制御ループ内の入力信号を処理し、対応する制御動作を計算する(ブロック910)。制御動作から、制御ループプロセッサ706は、出力信号を生成し(ブロック912)、出力信号を対応するプロセス制御装置へ伝送する(ブロック916)。図9の例示の方法900は、その後、新しく追加されたフィールド装置を含むフィールド装置から受信される入力信号が、それぞれの予定時間枠の中で受信されたか否かを判定するためにループバックする(ブロック908)。
しかしながら、それぞれの予定時間枠から外れて受信される(ブロック908)各入力信号に関しては、I/Oスケジューラ180及び/又はコントローラ104は、入力信号を制御ループプロセッサ706へ転送する。入力信号が、その予定時間枠より前に受信される場合では、制御ループプロセッサ706は、入力信号を制御ループ内で処理し、対応する制御動作を計算する(ブロック918)。入力信号が、その予定時間枠より後に受信される場合では、制御ループプロセッサ706は、制御ループ内で前に受信した入力信号を処理し、対応する制御動作を計算する(ブロック918)。制御ループプロセッサ706は、その後、制御動作から出力信号を生成し(ブロック920)、出力信号を対応するプロセス制御装置へ伝送する(ブロック922)。
図9の例示の方法900は、それに続いて、ここで、I/Oスケジューラ180及び/又はコントローラ104が、入力信号は、対応する予定時間枠の中でコントローラ104によって受信されなかったことを示す診断メッセージを生成する(ブロック924)。I/Oスケジューラ180及び/又はコントローラ104は、その後、コントローラ104が、入力信号を受信した時間と、対応する予定時間枠と、の間の時差を計算する(ブロック926)。I/Oスケジューラ180及び/又はコントローラ104は、コントローラ104が、第1の入力信号を受信した時間と、予定時間枠の始点、中間及び/又は、終点と、の間の差を計算する場合もある。或いは、I/Oスケジューラ180及び/又はコントローラ104は、コントローラ104が、第1の入力信号を受信した時間と、予定時間枠の中の任意の時間と、の間の差を計算する場合もある。幾つかの実装例では、I/Oスケジューラ180及び/又はコントローラ104は、入力信号が、処理のために制御ループプロセッサへ送信される(ブロック918)と、時差を計算する(ブロック926)。更に他の実装例では、I/Oスケジューラ180及び/又はコントローラ104は、入力信号が処理のために制御ループプロセッサへ送信される(ブロック918)より前に時差を計算する(ブロック926)場合がある。追加的に又は代替的に、I/Oスケジューラ180及び/又はコントローラ104は、時差を計算する(ブロック926)と、診断メッセージを生成する(ブロック924)場合がある。
他の実装例では、I/Oスケジューラ180及び/又はコントローラ104は、第1及び/又は第2のプロセス制御装置からの複数の受信した入力信号の予定時間枠からの平均時間偏差に基づいて時差を計算する場合がある(ブロック926)。その後、平均時間偏差が、予定時間枠から外れている場合には、例示のコントローラ104及び/又はI/Oデータ取得モジュールは、タイミング調整メッセージをI/Oデータ取得モジュール190へ伝送することができる(ブロック928)。平均時間偏差は、フィールド装置から受信される全ての入力信号に基づいていてもよく、或いは、時間偏差は、フィールド装置から最近受信した複数の入力信号に基づいていてもよい。
I/Oスケジューラ180及び/又はコントローラ104は、その後、時間調整メッセージを生成する(ブロック928)。時間調整メッセージは、最近の入力信号と同じ型の情報を含んでいる、同じプロセス制御装置から発生する後に続く入力信号が、対応する予定時間枠の中で受信されるようなタイミングデータを含んでいる。I/Oスケジューラ180及び/又はコントローラ104は、その後、タイミング調整メッセージをI/Oデータ取得モジュール190へ送信する(ブロック930)。I/Oデータ取得モジュール190は、時間調整メッセージを受信し、時機を外れた入力信号を発生したプロセス制御装置に関連付けられる入力信号を転送するためのタイミングを調整する(ブロック932)。例示の方法900は、その後、新しく追加されたフィールド装置を含むフィールド装置から受信された入力信号が、それぞれの予定時間枠の中で受信されたか否かを判定するためにループバックする(ブロック908)。
図10は、本明細書に記載する例示の方法及び装置を実装するのに使用することができる例示のプロセッサシステム1010のブロック図である。例えば、例示のプロセッサシステム1010に類似した又は同一のプロセッサシステムは、図1及び/又は図2のワークステーション102、コントローラ104、I/Oデータ取得モジュール190、及び/又はI/Oスケジューラ180を実装するのに使用してもよい。例示のプロセッサシステム1010は、複数の周辺機器、インターフェース、チップ、メモリなどを含むものとして下文に記載されているが、それらの要素の1つ又はそれ以上は、ワークステーション102、コントローラ104、I/Oデータ取得モジュール190、及び/又はI/Oスケジューラ180の1つ又はそれ以上を実装するのに使用される他の例示のプロセッサシステムから削除されてもよい。
図10に示しているように、プロセッサシステム1010は、相互接続バス1014と連結されるプロセッサ1012を含んでいる。プロセッサ1012は、レジスタセット又はレジスタ空間1016を含んでおり、このレジスタセット又はレジスタ空間は、図10では全体がオンチップになっているものが図示されているが、これは、代替的に、完全に又は部分的にオフチップで設置すること、及び/又は専用の電気接続を介して及び/又は相互接続バス1014を介してプロセッサ1012と直接的に連結すること、が可能である。プロセッサ1012は、任意の適切なプロセッサ、処理ユニット、又はマイクロプロセッサであってもよい。図10では示していないが、システム1010は、マルチプロセッサシステムであってもよく、而して、プロセッサ1012と同一の又は類似した、且つ相互接続バス1014と通信可能に連結される、1つ又はそれ以上の追加のプロセッサを含んでいてもよい。
図10のプロセッサ1012は、メモリコントローラ1020と周辺機器の入力/出力コントローラ1022とを含むチップセット1018と連結されている。周知の通り、チップセットは、標準的には、I/O及びメモリ管理機能の他に、チップセット1018と連結される1つ又はそれ以上のプロセッサによってアクセス可能な又は使用される複数の汎用及び/又は特殊目的のレジスタ、タイマーなどを更に提供する。メモリコントローラ1020は、プロセッサ1012(又は、複数のプロセッサが存在する場合には複数のプロセッサ)が、システムメモリ1024及び大容量記憶メモリ1025にアクセスできるようにさせる機能を遂行している。
システムメモリ1024は、任意の所望の型の揮発性及び/又は不揮発性メモリ、例えば、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)、フラッシュメモリ、読み出し専用メモリ(ROM)などを含んでいてもよい。大容量記憶メモリ1025は、任意の所望の型の大容量記憶装置を含んでいてもよい。例えば、例示のプロセッサシステム1010が、ワークステーション102(図1)を実装するのに使用される場合には、大容量記憶メモリ1025は、ハードディスクドライブ、光学ドライブ、テープ記憶装置などを含んでいてもよい。或いは、例示のプロセッサシステム1010が、コントローラ104、I/Oデータ取得モジュール190、及び/又はI/Oスケジューラ180を実装するのに使用される場合には、大容量記憶メモリ1025は、固体メモリ(例えば、フラッシュメモリ、RAMメモリなど)、磁気メモリ(例えば、ハードディスク)、又はコントローラ104、I/Oデータ取得モジュール190、及び/又はI/Oスケジューラ180の大容量記憶に適する任意の他のメモリを含んでいてもよい。
周辺機器のI/Oコントローラ1022は、プロセッサ1012が、周辺機器のI/Oバス1032を介して周辺機器の入力/出力(I/O)装置1026、1028及びネットワークインターフェース1030と通信できるようにさせる機能を実行している。I/O装置1026、及び1028は、例えば、キーボード、ディスプレイ(例えば、液晶ディスプレイ(LCD)、陰極線管(CRT)ディスプレイなど)、ナビゲーション装置(例えば、マウス、トラックボール、容量性タッチパッド、ジョイスティックなど)などの任意の所望の型のI/O装置であってもよい。ネットワークインターフェース1030は、プロセッサシステム1010が、別のプロセッサシステムと通信できるようにさせる、例えば、イーサネット(登録商標)装置、非同期転送モード(ATM)装置、802.11装置、DSLモデム、ケーブルモデム、セルラーモデムなどであってもよい。
メモリコントローラ1020とI/Oコントローラ1022は、図10では、チップセット1018内部の別々の機能ブロックで図示されているが、それらのブロックによって実行される機能は、一つの半導体回路内で統合されていてもよく、又は2つ又はそれ以上の別々の集積回路を使用して実装されてもよい。
上記の例示の方法及び/又はシステムの少なくとも幾つかは、コンピュータプロセッサで作動する1つ又はそれ以上のソフトウェア及び/又はファームウェアプログラムによって実装されている。しかしながら、本明細書に記載する例示の方法及び/又は装置の幾つか又は全てを、全体的に又は部分的に実装するために、特定用途向け集積回路、プログラム可能論理アレイ及び他のハードウェア装置を含むがこれらに限定するわけではない、専用のハードウェアによる実装を構築することが同様に可能である。更に、本明細書に記載する例示の方法及び/又はシステムを実装するために、分散処理又は構成要素/オブジェクト分散処理、並列処置、又は仮想マシン処理を含むがこれらに限定するわけではない、代替的なソフトウェアによる実装も、同様に構築することが可能である。
更に、本明細書に記載する例示のソフトウェア及び/又はファームウェアによる実装は、例えば、磁気媒体(例えば、磁気ディスク又はテープ)、光学ディスクなどの磁気光学又は光学媒体、又はメモリカード又は1つ又はそれ以上の読み取り専用(非揮発性)メモリ、ランダムアクセスメモリ、又は他の書き換え可能(揮発性)メモリを内蔵する他のパッケージなどの固体媒体、のような有形の記憶媒体に記憶されることに留意されたい。従って、本明細書に記載する例示のソフトウェア及び/又はファームウェアは、上述の媒体又はそれらの後継記憶媒体のような有形記憶媒体に記憶することができる。上記の明細書が、特定の規格及びプロトコルを参照して例示の構成要素及び機能を説明している点において、本発明の範囲は、その様な規格及びプロトコルに限定されるものではないことを理解されたい。例として、インターネット及び他のパケット交換型ネットワーク伝送(例えば、伝送制御プロトコル(TCP)/インターネットプロトコル(IP)、ユーザーデータグラムプロトコル(UDP)/IP、ハイパーテキストマークアップ言語(HTML)、ハイパーテキスト転送プロトコル(HTTP))のそれぞれの規格は、当該技術の現下の状況における実例を示している。その様な規格は、同じ汎用機能性を有するより高速又はより高効率な等価物に、周期的に取って替わられる。従って、同じ機能を有する代替規格及びプロトコルは、本発明によって想定される等価物であり、添付の特許請求の範囲の領域の中に含まれるものと意図されている。
更に、本特許は、例示の方法と、ハードウェア上で実行されるソフトウェア又はファームウェアを含んでいる装置と、を開示するが、当該のシステムは、単に説明を目的とするものであり、制限を課すためのものと考察されるべきではないことに留意されたい。例えば、これらのハードウェア及びソフトウェアの構成要素の何れか又は全ては、ハードウェアだけ、ソフトウェアだけ、ファームウェアだけ、又はハードウェア、ファームウェア及び/又はソフトウェアの何らかの組み合わせ、に具現化することが可能であるものと思慮している。この様な次第で、上述の明細書において、例示の方法、システム、及び機械によるアクセス可能な媒体についての説明を行ったものの、これらの実例は、当該のシステム、方法、及び機械によるアクセス可能な媒体を実装する唯一の方法ではない。従って、或る例示の方法、システム、及び機械によるアクセス可能な媒体が本明細書に記載されていても、本特許の対象となる範囲は、これらに限定されるものではない。それどころか、本特許は、文言上或いは均等論に基づき、添付の特許請求の範囲の中に公平に含まれる方法、システム、及び機械によるアクセス可能な媒体、の全てを対象とするものである。