近年、インダストリアルオートメーションにおけるプロセス制御システムとして、フィードバック制御ループを構成する流量計や温度計などのセンサ、アクチュエータ、コントローラを含むフィールド機器をネットワークで接続し、フィールドネットワークシステムとして構築することが提案されている。
従来のフィールドネットワークシステムに関連する先行技術文献としては次のようなものがある。
ところで、近年のフィールド機器を接続するネットワークとしては、一般にフィールドバスが使われつつある。フィールドバスでは、フィールド機器間で通信する各種制御信号は所定の遅延時間以内に確実に通信先に到達することが必要とされている。そこで、フィールドバスでは、ネットワークを伝達する制御信号の通信時間を個別にスケジュールすることにより、所定の時間を確保している。
図9は、従来のフィールドネットワークシステムの一例を示す構成ブロック図である。図9において、フィールド機器1〜3およびコンフィギュレータ4はプラントに設置されていて、フィールドバスFF−H1などのネットワークNW100を介して相互に接続されている。
フィールド機器1〜3は、データを伝送する通信機能や、AI(アナログ信号入力)、AO(アナログ信号入出力)、PID演算(比例、積分、微分演算)などのフィールド機器固有の機能ブロックを実行する機能を有している。コンフィギュレータ4は、フィールド機器1〜3の動作スケジュールを設定するスケジュール設定機能と、これらスケジュール情報を伝送する通信機能を有している。
データ通信DF100はコンフィギュレータ4がフィールド機器1にスケジュール情報を送信する流れを示し、データ通信DF101はコンフィギュレータ4がフィールド機器2にスケジュール情報を送信する流れを示し、データ通信DF102はコンフィギュレータ4がフィールド機器3にスケジュール情報を送信する流れを示し、データ通信DF103はフィールド機器1が機能ブロックの出力データをフィールド機器2に送信する流れを示し、データ通信DF104はフィールド機器2が機能ブロックの出力データをフィールド機器3に送信する流れを示している。
ここで、フィールド機器1は機能ブロックAI、フィールド機器2は機能ブロックPID、フィールド機器3は機能ブロックAOをそれぞれあらかじめ定められたスケジュールに基づいて実行するものであって、フィールド機器1〜3はたとえば図10のようにフィードバック制御ループを構成する。
図10において、フィールド機器1は機能ブロックAIの出力(たとえば測定値などのアナログデータなど)をフィールド機器2の機能ブロックPIDに伝送し、フィールド機器2は機能ブロックPIDの出力(たとえばAIの出力があらかじめ定められた目標値に収束するように演算した演算結果)をフィールド機器3の機能ブロックAOに伝送し、フィールド機器3は機能ブロックAOの出力をフィールド機器2の機能ブロックPIDに伝送する。フィールド機器2は、フィールド機器1および3の出力データに基づいて、あらかじめ定められた目標値に収束するようにPID演算を行う。
図11は図9に示すフィールドネットワークシステムの動作フロー図、図12は動作スケジュールの説明図である。
まず、図11のステップS101において、コンフィギュレータ4は、フィールド機器1〜3の機能ブロックの動作スケジュールを設定するための「動作スケジュール情報」を生成し、この動作スケジュール情報をたとえば図9のデータ通信DF100〜102の流れに示すようにフィールド機器1〜3に送信する。
ステップS102において、フィールド機器1〜3はコンフィギュレータ4から受信した動作スケジュール情報を解析して記憶し、機能ブロックAI、PID、AOの動作スケジュールをそれぞれ設定する。
図12において、横軸は時間軸を示している。フィールド機器1の機能ブロックAIの実行時間は「T1〜T2」、フィールド機器2の機能ブロックPIDの実行時間は「T3〜T4」、フィールド機器3の機能ブロックAOの実行時間は「T5〜T6」として設定される。
フィールド機器1からフィールド機器2へデータを伝送する期間は「T2〜T3」、フィールド機器2からフィールド機器3へデータを伝送する期間は「T4〜T5」、フィールド機器3からフィールド機器2へデータを伝送する期間は「T6〜T7」として、コンフィギュレータ4によって設定される。
ステップS103において、フィールド機器1はコンフィギュレータ4によって設定された実行時間「T1〜T2」内で機能ブロックAIを実行し、図9のデータ通信DF103の流れに示すように「T2〜T3」内で機能ブロックAIの出力データをフィールド機器2に送信する。
ステップS104において、フィールド機器2はコンフィギュレータ4によって設定された実行時間「T3〜T4」内で、フィールド機器1から受信した機能ブロックAIの出力データに基づいて機能ブロックPIDを実行してPID演算を行う。
ステップS105において、フィールド機器2は図9のデータ通信DF104の流れに示すように「T4〜T5」内でPID演算の演算結果データをフィールド機器3に送信する。
ステップS106において、フィールド機器3はコンフィギュレータ4によって設定された実行時間「T5〜T6」内で機能ブロックAOを実行し、機能ブロックAOの出力データを実行時間「T6〜T7」内でフィールド機器2に送信する。
このように、各フィールド機器1〜3が動作スケジュールに従って各機能ブロックの動作を実行することにより、フィールド機器2はフィールド機器1からの機能ブロックAIの出力があらかじめ設定されている目標値に収束するようにPID演算を行い、このPID演算結果に基づいてフィールド機器3を制御するので、プラントを最適に運転できるとともに、制御ループを計画通りに動作させることができる。
ところで、上述のようなフィールドネットワークとして、現在最も普及しているIPネットワークを用いることも検討されている。
ところが、IPネットワークは、各機器間の通信時間はあらかじめ確保されているわけではなく、ネットワークの空き待ちや再送が発生する可能性があり、常に不規則な伝播遅延が発生するおそれがある。
また、IPネットワークは、各機器が共通のネットワークを共用してパケットを交換することを目的とするものであって、規格上遅延に対する保証はない。
また、IPネットワークを用いたフィールドネットワークでは、ネットワークや中継機器の負荷が高くなると伝播遅延が発生するなど通信時間が変化しやすく、フィールド機器1からのAI出力がフィールド機器2にスケジュール通りに到達しない場合がある。
そこで、フィールド機器2がフィールド機器1からの出力を永遠に待ち続けて制御ループが動作しなくなることを避けるため、フィールド機器1からのAIの出力データが所定の時間内にフィールド機器2に到達しなければ、フィールド機器2は過去のデータを基にPID演算を行うことが考えられる。
図1は、本発明に係るIPネットワークを用いたフィールドネットワークシステムの一実施例を示す構成ブロック図である。図1において、フィールド機器11〜13はIPを用いてパケットを伝送する通信機能、「AI」、「AO」、「PID」などのフィールド機器固有の機能ブロックを実行する機能を有している。
図2は図1のフィールド機器11の具体例を示す構成ブロック図であり、通信部111は演算制御部112に接続され、演算制御部112は記憶部113に接続されている。通信部111は主にフィールド機器12および13との間で通信を行う。演算制御部112は各部の動作を制御するものであり、たとえばCPU(Central Processing Unit)が用いられる。記憶部113はOS(Operating System)やフィールド機器として動作させるためのプログラム、図示しないコンフィギュレータなどによって設定された機能ブロックを実行するための動作スケジュール情報、各種情報などを格納する。なお、フィールド機器12および13もフィールド機器11と同様に構成されている。
図3は図2の演算制御部112の機能ブロック例図である。パケット送受部1121は主にフィールド機器12および13からのパケットなどの送受信を行う。スケジュール管理部1122は、パケット送受部1121が受信したパケットに含まれている設定情報に基づいて、所定の設定時間経過後もしくは許容所要時間内などの要求時間に応じて機能ブロックの出力を送信できるかどうかを判定し、設定時間内に機能ブロックの出力を送信できないと判定した場合はスケジュール情報格納部1125に格納されている動作スケジュールを調整する。
スケジュール実行部1123は、スケジュール情報に基づいて機能ブロック実行部1124に機能ブロックの処理を実行させる。機能ブロック実行部1124は、機能ブロック(たとえば機能ブロックAI)を実行する。スケジュール情報格納部1125は、あらかじめ設定された機能ブロックを実行する動作スケジュール情報や設定情報を格納する。データ格納部1126は、主にフィールド機器12、13から受信した各機能ブロックの出力データや機能ブロック実行部1124の出力データを格納する。
定義情報格納部1127は、能力定義ファイル1128と通信定義ファイル1129を格納している。能力定義ファイル1128には、機能ブロック実行部1124が機能ブロックを実行するのに必要とする処理時間などの処理能力に関する「処理能力情報」などが格納されている。通信定義ファイル1129には、自機と通信を行うフィールド機器のIPアドレスなどの「ネットワーク情報」などが格納されている。
図4はフィールドネットワークシステムのパケット通信の流れを示す説明図である。パケット通信DF201はフィールド機器12がフィールド機器11に所定の設定時間経過後もしくは許容所要時間内などの要求時間に応じて送信するように依頼するための「設定情報」を含むパケット(以下、設定パケットという)を送信する流れを示し、パケット通信DF200はフィールド機器11がフィールド機器12にACK(Acknowledge)/NACK(Negative Acknowledgement)パケットを送信する流れを示している。
パケット通信DF202はフィールド機器12がフィールド機器13に設定パケットを送信する流れを示し、パケット通信DF203はフィールド機器13がフィールド機器12にACK/NACKパケットを送信する流れを示している。
図5は図1に示すフィールドネットワークシステムの動作説明図、図6は動作スケジュールの説明図である。
図5のシーケンスSQ201において、フィールド機器12の演算制御部は記憶部に記憶されているOSなどを起動し、OS上でプログラムを読み出して実行しフィールド機器12全体を制御するとともに、所定の設定時間(たとえば図6の「TT100」)経過後に機能ブロックの出力データの送信を要求する設定パケットを生成し、あらかじめ記憶しているネットワーク情報に基づき通信部を制御してフィールド機器11に送信する。
フィールド機器12は、たとえば図4のパケット通信DF201の流れに示すように設定パケットをフィールド機器11に送信する。
なお、フィールド機器12はフィールド機器11およびフィールド機器12間の通信時間やネットワークの負荷、中継機器の負荷、通信品質などの各情報を考慮して許容所要時間(たとえば所要時間「TT100」)を設定し、設定パケットを生成し、通信部を制御してフィールド機器11に送信するものであってもよい。
また、フィールド機器12の演算制御部が記憶部に格納されたプログラムを読み出し実行して各部を制御する動作については、他のフィールド機器についても同様であるので以下省略する。
ところで、図6(A)の動作スケジュールの説明図では、フィールド機器11の機能ブロックAIの実行時間は「T1〜T2」、フィールド機器12の機能ブロックPIDの実行時間は「T3〜T4」、フィールド機器13の機能ブロックAOの実行時間は「T5〜T6」として設定されていることが示されている。
シーケンスSQ202において、フィールド機器11の演算制御部112のスケジュール管理部1122は、受信した設定パケットに基づいて、設定パケットに設定された設定時間(たとえば図6の「TT100」)経過後に機能ブロックAIの出力データを取得し送信できるかどうか判定する。
スケジュール管理部1122が設定時間経過後に機能ブロックAIの出力データを送信できると判定する場合は、シーケンスSQ203においてフィールド機器11の演算制御部112のパケット送受部1121はフィールド機器12にACKパケットを送信する。
具体的には、スケジュール管理部1122は、定義情報格納部1127の能力定義ファイル1128に格納されている機能ブロックAIを実行するのに必要とする「処理時間(たとえば「P(AI)」)」と設定時間「TT100」とを比較する。
そしてスケジュール管理部1122は、処理時間「P(AI)」が設定時間「TT100」よりも短い場合は設定時間「TT100」後に機能ブロックAIの出力データを送信できるものと判定し、シーケンスSQ203においてフィールド機器11の演算制御部112のパケット送受部1121はフィールド機器12にACKパケットを送信する。
このとき、フィールド機器11のスケジュール管理部1122は、設定時間(たとえば「TT100」)経過後に機能ブロックAIの出力データの送信を指示するスケジュール情報をスケジュール情報格納部1125に記憶する。
また、フィールド機器11の機能ブロック実行部1124は、定められたスケジュールに基づいて機能ブロックAIの処理を実行し、得られた出力データをデータ格納部1126に記憶する。
シーケンスSQ204において、フィールド機器11は設定時間(たとえば図6の「TT100」)経過後に機能ブロックAIの出力データを含むパケットを生成し、フィールド機器12に送信する。
具体的には、フィールド機器11の演算制御部112のスケジュール実行部1123はスケジュール情報格納部1125に記憶されているスケジュール情報に基づいて、設定時間「TT100」経過後にパケット送受部1121を制御して機能ブロックAIの出力データを含むパケットを生成し、フィールド機器12に送信する。
このように、フィールド機器12は設定時間どおりにフィールド機器11から機能ブロックAIの出力データを受信できるので、最新のデータを用いて機能ブロックPIDの処理を実行できる。
シーケンスSQ205において、フィールド機器12はフィールド機器11からの出力データに基づいて機能ブロックPIDの処理を実行してPID演算を行い、得られた出力データをデータ格納部に記憶する。
具体的には、フィールド機器12のスケジュール実行部は、あらかじめ設定されたスケジュールに基づいて機能ブロック実行部を制御し、機能ブロックAIの出力データを基に機能ブロックPIDの処理を実行してPID演算結果データをデータ格納部に記憶する。
シーケンスSQ206において、フィールド機器12は、機能ブロックPIDの処理を実行して得られたPID演算結果を含むパケットをフィールド機器13に送信するとともに、機能ブロックAOの処理を完了するための許容所要時間を設定した設定パケットをフィールド機器13に送信する。
具体的には、フィールド機器12のスケジュール実行部は、パケット送受部を制御してデータ格納部に記憶されたPID演算結果を含むパケットを生成し、通信部を制御してこのパケットをフィールド機器13に送信する。また、フィールド機器12のスケジュール実行部は、パケット送受部を制御して許容所要時間(たとえば所要時間「TT200」)を設定した設定パケットを生成し、通信部を制御してフィールド機器13に送信する。
なお、フィールド機器12はフィールド機器11およびフィールド機器12間の通信時間やネットワークの負荷、中継機器の負荷、通信品質などの各情報を考慮して許容所要時間(たとえば所要時間「TT200」)を設定し、設定パケットを生成し、通信部を制御してフィールド機器13に送信するものであってもよい。また、フィールド機器12は、出力データを所定の設定時間経過後に送信するように要求する設定パケットをフィールド機器13に送信するものであってもよい。
シーケンスSQ207において、フィールド機器13の演算制御部のスケジュール管理部は受信した設定パケットに基づいて、許容所要時間内に機能ブロックAOの処理を完了できるかどうか判定する。許容所要時間内(たとえば「TT200」)に機能ブロックAOの処理を完了できると判定する場合は、シーケンスSQ208においてフィールド機器13の演算制御部のパケット送受部はフィールド機器12にACKパケットを送信する。
このとき、フィールド機器13のスケジュール管理部は、許容所要時間内に機能ブロックAOの処理を完了しフィールド機器13に出力データの送信を指示するスケジュール情報をスケジュール情報格納部に記憶する。
また、フィールド機器13の演算制御部の機能ブロック実行部は、定められたスケジュールに基づいて機能ブロックAOの処理を実行し、得られたデータをデータ格納部に記憶する。
シーケンスSQ209において、フィールド機器13は許容所要時間内に機能ブロックAOの出力データを含むパケットをフィールド機器12に送信する。
具体的には、フィールド機器13のスケジュール実行部はスケジュール情報格納部のスケジュール情報に基づき、所要時間「TT200」内に機能ブロックAOの処理を終えパケット送受部を制御して機能ブロックAOの出力データを含むパケットを生成し、このパケットをフィールド機器12に送信する。
このように、フィールド機器12はフィールド機器13から許容所要時間内に機能ブロックAOの出力データを受信できるので、最新のデータを用いて機能ブロックPIDの処理を実行することができる。
一方、シーケンスSQ202において、フィールド機器11のスケジュール管理部1122は、設定時間経過後に機能ブロックAIの出力データを送信できない、言い換えればフィールド機器12に出力データが届かないと判定する場合、シーケンスSQ203においてフィールド機器11のパケット送受部1121はフィールド機器12にNACKパケットを送信する(言い換えれば送信不可能である旨を通知する)とともに、機能ブロックAIの処理にかかる時間(以下、処理時間という(たとえば「P(AI)」))などの「処理時間情報」を送信する。
フィールド機器12は、フィールド機器11からNACKパケットを受信した場合、設定時間(たとえば図6の「TT100」)経過後にフィールド機器11からの出力データが到達しないことを検知する。そして、フィールド機器12は、図6(B)の動作スケジュールのようにスケジュールを変更するとともに、フィールド機器11からの「処理時間情報」に基づいて設定情報の設定時間を機能ブロックAIの出力データを受信できるような時間(たとえば図6の「TT101」)に再設定し、シーケンスSQ201に戻る。
他方、シーケンスSQ207において、フィールド機器13のスケジュール管理部が、許容所要時間内に機能ブロックAOの処理を完了できないと判定する場合、シーケンスSQ208においてフィールド機器13のパケット送受部はフィールド機器12にNACKパケットを送信する(言い換えれば送信不可能である旨を通知する)とともに、機能ブロックAOの処理時間(たとえば処理時間「P(AO)」)などの「処理時間情報」を送信する。
フィールド機器12は、フィールド機器13からNACKパケットを受信した場合、許容所要時間(たとえば所要時間「TT200」)内にフィールド機器11からの出力データが到達しないことを検知する。そして、フィールド機器12はフィールド機器11からのNACKパケットおよび「処理時間情報」に基づき、動作スケジュールを変更するとともに、設定情報の許容所要間を機能ブロックAOの出力データを受信できるような時間(たとえば所要時間「TT201」)に再設定し、シーケンスSQ206に戻る。
これらのように、フィールド機器12はスケジュールを変更するとともに設定情報を再設定して送信することにより、フィールド機器11もしくは13から設定時間どおりに機能ブロックAIやAOの出力データを受信できるので、最新のデータを用いて機能ブロックPIDの処理を実行することができる。
すなわち、各フィールド機器は、他のフィールド機器からの設定情報に基づき、設定情報に設定された要求時間どおりに各機能ブロックの出力データを送信できるかどうかを判定し、要求時間どおりに各機能ブロックの出力データを送信できない場合は他のフィールド機器にNACKパケットおよび処理時間情報を送信し、他のフィールド機器からNACKパケットを受信した場合はNACKパケットおよび処理時間情報に基づき動作スケジュールを変更するとともに設定情報を各機能ブロックの出力データを受信できるように再設定して再送信することにより、常に最新のデータを用いて動作することができる。
なお、上記実施例では、フィールド機器11の機能ブロックAIがフィールド機器機12の機能ブロックPIDに出力データを送信する制御ループを示しているが、他のフィールド機器の機能ブロックの出力データに基づいて機能ブロックの処理を行うような各フィールド機器によって構成される制御ループに適用されるものであってもよい。
図7はフィールドネットワークのその他の例を示す構成ブロック図である。たとえば図7に示すように、フィールド機器11が他のフィールド機器(以下、フィールド機器X)における機能ブロックAI(以下、機能ブロックAI(2)という)の出力データに基づいて機能ブロックAIの処理を行うような場合にも適用できる。
この場合、フィールド機器11は、フィールド機器12から受信した設定情報の設定時間「TT100」に基づき、機能ブロックAI(2)の出力データを設定時間「TT500」経過後に送信を要求するような設定パケットをフィールド機器Xに送信する。このとき、設定時間「TT500」は、フィールド機器11の機能ブロックAIの処理にかかる時間「P(AI)」だけ差し引いた時間「TT100―P(AI)」以下となる。
なお、フィールド機器11および12は、各フィールド機器間の通信時間やネットワークの負荷、中継機器の負荷、通信品質などの各情報を考慮して要求時間を設定して設定パケットを送信する場合は、この設定時間「TT500」は、フィールド機器11の機能ブロックAIの処理にかかる時間「P(AI)」とフィールド機器11とフィールド機器X間の通信時間(たとえば「TC100」)とを差し引いた時間「TT100−P(AI)―TC100」以下となるものであってもよい。
そして、フィールド機器Xは、設定情報に基づいて設定情報に設定されている設定時間「TT500」経過後に機能ブロックAI(2)の出力データを送信できるかどうか判定し、設定時間経過後に機能ブロックAI(2)の出力データを送信できると判定する場合はACKパケットをフィールド機器12に送信する。
また、フィールド機器Xは、設定時間経過後に機能ブロックAI(2)の出力データを送信できないと判定することにより、NACKパケットを送信する(もしくは送信不可能の旨を通知する)とともに機能ブロックAI(2)の処理時間「P(AI2)」を含む処理時間情報をフィールド機器12に送信する。
このように、各フィールド機器が他のフィールド機器における機能ブロックの出力データに基づいて機能ブロックの処理を行う制御ループにおいても、各フィールド機器は、他のフィールド機器からの設定情報に基づいて要求時間どおりに各機能ブロックの出力データを送信できるかどうかを判定し、要求時間どおりに各機能ブロックの出力データを送信できない場合は他のフィールド機器にNACKパケットおよび処理時間情報を送信し、他のフィールド機器からNACKパケットを受信した場合はNACKパケットおよび処理時間情報に基づき動作スケジュールを変更するとともに設定情報を各機能ブロックの出力データを受信できるように再設定して再送信することにより、常に最新のデータを用いて動作でき、最適状態でプラントなどの被制御対象の運転を行うことができる。
また、上記実施例では、フィールド機器11〜13が制御ループを構成しているが、複数のフィールド機器が複数の制御ループを構成しているものであってもよい。
また、PID制御を実施するフィールド機器12が、設定時間もしくは許容所要時間などの要求時間を設定して設定パケットをフィールド機器11もしくは13に送信するとしているが、特にこれに限定するものではなく、PID制御を実施するフィールド機器12はフィールド機器間の通信時間やネットワークの負荷、中継機器の負荷、通信品質などの各情報も考慮して設定時間後もしくは許容所要時間内などの要求時間を設定して設定パケットを送信するものであってもよい。
また、上記実施例では、フィールド機器11もしくは13は、あらかじめ能力定義ファイルに格納されている機能ブロックAIもしくはAOの「処理時間」と設定パケットに含まれる設定時間もしくは許容所要時間などの要求時間とを比較して、設定時間後もしくは許容所要時間内に機能ブロックの処理を実行できるかどうかを判定するとしているが、各フィールド機器は、ネットワークの負荷、中継機器の負荷、通信品質などの各情報も考慮して設定時間後もしくは許容所要時間内などの要求時間どおりに機能ブロックの処理を実行できるかどうかを判定するものであってもよい。
また、上記実施例では、フィールド機器12が所定の設定時間後もしくは許容所要時間内などの要求時間にデータの送信を要求する設定パケットをフィールド機器11もしくは13に送信しているが、特にこれに限定するものではなく、フィールド機器12は所定の設定時間もしくは許容所要時間を「0(時間)」と設定した「初期化メッセージ」を送信し、フィールド機器11もしくは13からNACKパケットを送信する(もしくは送信不可能の旨を通知する)とともに機能ブロックAIもしくはAOの処理時間情報を受信することにより、フィールド機器11もしくは13の機能ブロックAIもしくはAOの処理に必要な処理時間を把握するものであってもよい。
このため、フィールド機器12は、許容所要時間もしくは設定時間を「0(時間)」と設定して初期化メッセージを送信することにより、処理時間情報に基づき各フィールド機器の初期の動作スケジュールを作成することができる。
また、上記実施例では、機能ブロックPIDの処理を行うフィールド機器12が設定情報をフィールド機器11もしくは13に送信すると示しているが、制御ループの最後の処理を行うフィールド機器が「設定情報」を制御ループにおける前段階の処理を行うフィールド機器に送信し、各フィールド機器が順に一段階前の処理を行うフィールド機器に設定情報を送信することによって、制御ループを構成する各フィールド機器の動作スケジュールの調整を行うようにしてもよい。
この場合、各フィールド機器は、順に一段階前の処理を行うフィールド機器に設定パケットを送信するので、各フィールド機器のスケジュール調整を単純に行うことができる。
また、上記実施例では、フィールド機器11もしくは13は設定情報に基づいて機能ブロックAIもしくはAOの処理を行い、その出力データをフィールド機器12に送信する構成を示しているが、特にこれに限定するものではなく、制御ループの最後の処理を行うフィールド機器がループが完了した旨を通知する「完了メッセージ」を送信し、この完了メッセージを受信する「完了メッセージ受信機」を設置するものであってもよい。
また、完了メッセージ受信機は、複数の制御ループの最後の処理を行うフィールド機器からそれぞれ完了メッセージを受信するものであってもよい。図8は完了メッセージ受信機を設置したフィールドネットワークシステムの構成ブロック図である。
図8において、フィールド機器11〜13は制御ループ1を構成し、フィールド機器14〜16は制御ループ2を構成している。完了メッセージ受信機17はフィールド機器12および16に接続されている。
フィールド機器12は制御ループ1の最後の処理を行い、フィールド機器16は制御ループ2の最後の処理を行う。完了メッセージ受信機17はあらかじめ各フィールド機器のスケジュール情報を記憶し、完了メッセージに基づいて制御ループの処理の完了を把握し動作スケジュールが守られているかどうかを判定する。
完了メッセージを設置したフィールドネットワークシステムの動作を説明する。なお、各フィールド機器における制御ループの処理およびスケジュール調整の動作は上述したものと同じであるので説明を省略する。
フィールド機器12および16は、制御ループ1および2の処理が完了した時点で、完了した旨を通知する「完了メッセージ」を完了メッセージ受信機に送信する。たとえば、各フィールド機器が上述のように設定情報に基づき機能ブロックの処理を行って制御ループの処理が一巡することにより、制御ループの最後の処理を行うフィールド機器が完了メッセージ受信機に送信する。
そして、完了メッセージ受信機は、受信した完了メッセージおよびあらかじめ記憶している各フィールド機器のスケジュール情報に基づいて、制御ループの処理の完了を把握するとともに、各フィールド機器の動作スケジュールが守られているか否かを判定する。
完了メッセージ受信機は、各フィールド機器の動作スケジュールが守られていないと判定すると、制御ループの最後の処理を行うフィールド機器にスケジュール調整を依頼するリクエストデータを送信する。
この場合、制御ループの最後の処理を行うフィールド機器は、リクエストデータを受信して「設定情報」を制御ループにおける一段階前の処理を行うフィールド機器に送信し、各フィールド機器が順に一段階前の処理を行うフィールド機器に設定情報を送信することにより制御ループを構成する全フィールド機器の動作スケジュールを調整する。
また、完了メッセージ受信機は、各フィールド機器の動作スケジュールが守られていないと判断したとき毎回スケジュール調整のためのリクエストデータを送信してもよいが、毎回行う必要はなく、動作スケジュールが守られずに制御処理に問題が発生するときにのみ調整するものでもよい。
この結果、完了メッセージ受信機は各制御ループからの完了メッセージに基づき各フィールド機器の動作スケジュールを調整することにより、各フィールド機器がスケジュール調整を主導する必要がなくなり、単純な機能のみの実装ですむという効果がある。
また、上記実施例では、フィールドネットワークシステムがインダストリアルオートメーションにおけるプラントの運転を支援する例を説明したが、たとえばファクトリーオートメーションにおける浄水場の制御システムや、ビルの空調・照明システム、FFHSE(登録商標)に展開し、これらの被制御対象の運転を支援するものであっても構わない。
たとえば、ビルオートメーションシステムにおいては、制御ループを構成するフィールド機器が設置されるネットワークが複雑である場合、ネットワークの負荷や中継機器の負荷状態などによって通信時間が変化しやすく、データの伝播遅延が発生することがある。
このようなシステムにも本発明を適用することにより、各フィールド機器は、他のフィールド機器からの設定情報に基づき、設定情報に設定された要求時間どおりに各機能ブロックの出力データを送信できない場合は他のフィールド機器にNACKパケットおよび処理時間情報を送信し、他のフィールド機器からNACKパケットを受信した場合はNACKパケットおよび処理時間情報に基づき動作スケジュールを変更するとともに設定情報を各機能ブロックの出力データを受信できるように再設定して再送信することにより、常に最新のデータを用いて動作でき、最適状態で被制御対象の運転を行うことができる。