(57)【要約】【課題】高負荷状態であっても所定の演算周期内に必要な処理を終了させることができ、即時応答性が求められるアプリケーションへの適用を可能とする。【解決手段】各フィールド機器１〜５は、演算周期毎に負荷率を算出し、上位装置７は、例えば、フィールド機器１から所定の演算周期における処理負荷状態に基づく分散処理要求を受信すると、フィールド機器２〜５に対して分散処理の受け入れ可否を問い合わせ、当該問い合わせ時の演算周期における自身の処理負荷状態に基づき受け入れ可と応答したフィールド機器２〜４に対して演算負荷を割り当て、このフィールド機器２〜４から得られる演算結果を第１のフィールド機器１へ送信する。そして、フィールド機器１は、上位装置７から受信した演算結果を所定の演算周期に組み込む。【選択図】図１
2015207202.tif 000002
【特許請求の範囲】
【請求項１】
演算を行う演算部、および演算周期毎に前記演算部の処理負荷を計算する負荷監視部を有する第１と第２のフィールド機器と、
前記第１と第２のフィールド機器とはフィールドバス経由で接続され、前記第１のフィールド機器から所定の演算周期における処理負荷状態に基づく分散処理要求を受信すると、前記第２のフィールド機器に対して前記分散処理要求の受け入れ可否を問い合わせ、当該問い合わせ時の前記演算周期における自身の処理負荷状態に基づき受け入れ可と応答した前記第２のフィールド機器に対して演算負荷を割り当て、前記第２のフィールド機器から得られる演算結果を前記第１のフィールド機器へ送信する上位装置と、を備え、
前記第１のフィールド機器は、
前記上位装置から受信した前記演算結果を前記所定の演算周期に組み込むことを特徴とする分散処理システム。
【請求項２】
前記上位装置は、
前記第１のフィールド機器から前記分散処理要求を受信すると、前記第１のフィールド機器から前記分散処理要求に必要な、演算子、変数、および前記所定の演算周期である第１の演算周期とを含む演算ブロック情報を取得し、前記演算ブロック情報を、前記第１の演算周期より前の第２の演算周期で、前記受け入れ可と応答した前記第２のフィールド機器へ送信し、
前記第２のフィールド機器は、
前記第２の演算周期で受信した前記演算ブロック情報に基づく演算を前記第１の演算周期で実行することを特徴とする請求項１記載の分散処理システム。
【請求項３】
前記第２のフィールド機器は、
前記上位装置から前記分散処理要求を受信すると、前記第１の演算周期における前記処理負荷を再計算し、閾値と比較することにより前記受け入れ可否を応答することを特徴とする請求項１または２に記載の分散処理システム。
【請求項４】
前記上位装置は、
前記受け入れ可と応答した前記第２のフィールド機器が複数ある場合、前記第２の演算周期で前記第２のフィールド機器のそれぞれに演算を割り当て、前記第１の演算周期にて前記第２のフィールド機器のそれぞれから受信した演算結果を統合して前記第１のフィールド機器へ送信することを特徴とする請求項２または３に記載の分散処理システム。
【請求項５】
第１、第２のフィールド機器と、前記第１、第２のフィールド機器とはフィールドバス経由で接続される上位装置とからなる分散処理システムの前記フィールド機器における演算の分散処理方法であって、
前記上位装置が、前記第１のフィールド機器から所定の演算周期における処理負荷状態に基づく分散処理要求を受信すると、前記第２のフィールド機器に対して前記分散処理要求の受け入れ可否を問い合わせるステップと、
当該問い合わせ時の演算周期における自身の処理負荷状態に基づき受け入れ可と応答した前記第２のフィールド機器に対して演算負荷を割り当て、前記第２のフィールド機器から得られる演算結果を前記第１のフィールド機器へ送信するステップと、
前記第１のフィールド機器が、前記上位装置から受信した前記演算結果を前記所定の演算周期に組み込むステップと、を含むことを特徴とするフィールド機器における演算の分散処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散処理システム、およびフィールド機器における演算分散処理方法に関する。
【背景技術】
【０００２】
化学プラントなどのプロセス制御システムにおいて、圧力伝送器、温度伝送器、流量計およびバルブポジショナなどのフィールド機器に対する設定、調整などの制御を行うＤＣＳ（Ｄｉｓｔｒｉｂｕｔｅｄ  Ｃｏｎｔｒｏｌ  Ｓｙｓｔｅｍ）等の上位装置が知られている。上位装置は、例えば、フィールドバスを介してフィールド機器に接続され、デジタル通信を行う。
【０００３】
図９に、上記したフィールド機器が高負荷時の演算サイクルが示されている。図９に示すように、高負荷状態では、フィールド機器の演算周期＃１に処理＃１〜＃３が収まりきらない事態が発生することがある。この場合、通常は、処理しきれなかった分（処理＃３のＡ）を次の演算周期＃２で処理することになる。しかしながら、本来、演算周期＃１で必要であった処理＃３の演算値が演算周期＃２で算出されるため、即応答性が求められるアプリケーションでは使用できないケースが存在する。
【０００４】
例えば、特許文献１に、ロードバランサ等の専用のハードウエアを用意することなく、ネットワーク上の計算機に自律的に負荷分散を行わせて処理要求に対して速やかに応答し、適正な負荷分散が図れる計算機および分散処理システムが提案されている。しかしながら、特許文献１に開示された技術は、演算周期毎の負荷を考慮するものではないため、高負荷状態になる前に事前に処理を平準化することができず、したがって、即応答性を求められるアプリケーションへの適用は困難である。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−１３３６６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明は上記した課題を解決するためになされたものであり、高負荷状態であっても所定の演算周期内に必要な処理を終了させることができ、即時応答性が求められるアプリケーションへの適用が可能な、分散処理システム、およびフィールド機器における演算負荷分散方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記した課題を解決するために本発明の分散処理システムは、演算を行う演算部、および演算周期毎に前記演算部の処理負荷を計算する負荷監視部を有する第１と第２のフィールド機器と、前記第１と第２のフィールド機器とはフィールドバス経由で接続され、前記第１のフィールド機器から所定の演算周期における処理負荷状態に基づく分散処理要求を受信すると、前記第２のフィールド機器に対して前記分散処理要求の受け入れ可否を問い合わせ、当該問い合わせ時の前記演算周期における自身の処理負荷状態に基づき受け入れ可と応答した前記第２のフィールド機器に対して演算負荷を割り当て、前記第２のフィールド機器から得られる演算結果を前記第１のフィールド機器へ送信する上位装置と、を備え、前記第１のフィールド機器は、前記上位装置から受信した前記演算結果を前記所定の演算周期に組み込むことを特徴とする。
【０００８】
本発明において、前記上位装置は、前記第１のフィールド機器から前記分散処理要求を受信すると、前記第１のフィールド機器から前記分散処理に必要な、演算子、変数、および前記所定の演算周期である第１の演算周期とを含む演算ブロック情報を取得し、前記演算ブロック情報を、前記第１の演算周期より前の第２の演算周期で、前記受け入れ可と応答した前記第２のフィールド機器へ送信し、前記第２のフィールド機器は、前記第２の演算周期で受信した前記演算ブロック情報に基づく演算を前記第２の演算周期に続く第３の周期で実行することを特徴とする。
【０００９】
本発明において、前記第２のフィールド機器は、前記上位装置から前記分散処理要求を受信すると、前記第１の演算周期における前記処理負荷を再計算し、閾値と比較することにより前記受け入れ可否を応答することを特徴とする。
【００１０】
本発明において、前記上位装置は、前記受け入れ可と応答した前記第２のフィールド機器が複数ある場合、前記第２の演算周期で前記第２のフィールド機器のそれぞれに演算を割り当て、前記第１の演算周期で前記第２のフィールド機器のそれぞれから受信した演算結果を統合して前記第１のフィールド機器へ送信することを特徴とする。
【００１１】
本発明は、第１、第２のフィールド機器と、前記第１、第２のフィールド機器とはフィールドバス経由で接続される上位装置とからなる分散処理システムの前記フィールド機器における演算負荷分散方法であって、前記上位装置が、前記第１のフィールド機器から所定の演算周期における処理負荷状態に基づく分散処理要求を受信すると、前記第２のフィールド機器に対して前記分散処理要求の受け入れ可否を問い合わせるステップと、当該問い合わせ時の演算周期における自身の処理負荷状態に基づき受け入れ可と応答した前記第２のフィールド機器に対して演算負荷を割り当て、前記第２のフィールド機器から得られる演算結果を前記第１のフィールド機器へ送信するステップと、前記第１のフィールド機器が、前記上位装置から受信した前記演算結果を前記所定の演算周期に組み込むステップと、を含むことを特徴とする。
【発明の効果】
【００１２】
本発明によれば、高負荷状態であっても所定の演算周期内に必要な処理を終了させ、即時応答性が求められるアプリケーションへの適用が可能な、分散処理システム、およびフィールド機器における演算負荷分散方法を提供することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施の形態に係る分散処理システムのシステム構成、およびその概略動作シーケンスを示す図である。
【図２】本発明の実施の形態に係る分散処理システムの詳細な動作シーケンスを示す図である。
【図３】本発明の実施の形態に係る分散処理システムの演算周期毎の各フィールド機器の負荷率を示す図である。
【図４】図１のフィールド機器の内部構成を示すブロック図である。
【図５】図１の上位装置の内部構成を示すブロック図である。
【図６】図１のフィールド機器（分散処理要求元）の動作を示すフローチャートである。
【図７】図１の上位装置の動作を示すフローチャートである。
【図８】図１のフィールド機器（分散処理受け入れ先）の動作を示すフローチャートである。
【図９】プロセス制御システムにおけるフィールド機器が高負荷時の演算サイクルを示す図である。
【発明を実施するための形態】
【００１４】
（実施形態の構成）
以下、添付図面を参照して、本発明を実施するための形態（以下、「実施形態」という。）について詳細に説明する。なお、実施形態の説明の全体を通して同じ要素には同じ番号を付している。
【００１５】
図１によれば、分散処理システム１０は、複数のフィールド機器１〜５と、フィールド機器１〜５とは、フィールドバス６を介して接続されるＤＣＳ等の上位装置７とにより構成される。なお、フィールドバス６は、工業計器専用の通信規格（Ｂｒａｉｎ，ＨＡＲＴ，Ｆｉｅｌｄｂｕｓ，Ｐｒｏｆｉｂｕｓ等）に準拠したフィールド通信を行う。
【００１６】
図１を用いて本実施形態に係る分散処理システム１０の概略動作シーケンスを説明すれば以下のようになる。まず、フィールド機器１は、フィールドバス６経由で上位装置７に対し、例えば、図９の処理＃３の分散処理要求を送信する（ステップＳ１）。分散処理要求を受信した上位装置７は、分散処理要求を送信したフィールド機器１以外のフィールド機器２〜５のそれぞれに対し、処理＃３の負荷を割り当てた分散処理要求を送信する（ステップＳ２）。
【００１７】
上位装置７から分散処理要求を受信したフィールド機器２〜５のそれぞれは、上位装置７を経由して分散処理要求のあったフィールド機器１から演算ブロック情報を得（ステップＳ３）、処理＃３のうち割り当てられた負荷を実行し、それぞれ結果を上位装置７へ送信する。各フィールド機器２〜５から演算結果を受信した上位装置は、演算結果を統合し、分散処理要求のあったフィールド機器１へ送信する（ステップＳ４）。最後に、上位装置７から処理＃３の演算結果を受信したフィールド機器１は、処理＃３の演算結果を演算周期＃１に組み込んで終了する。
【００１８】
図２に詳細な動作シーケンス図が示されている。図２では、縦の時間軸方向に演算周期Ｎ＋０〜Ｎ＋３が示されており、横軸に示すフィールド機器１〜５、および上位装置７のそれぞれの動作が示されている。また、図３（ａ）〜（ｄ）には、各演算周期Ｎ＋０〜Ｎ＋３におけるそれぞれのフィールド機器１５の負荷率が示されている。以下、図２，図３を参照して本実施形態に係る分散処理システム１０の動作シーケンスについて説明する。
【００１９】
本実施形態に係る分散処理システム１０において、各フィールド機器１〜５は、演算周期（Ｎ＋０〜Ｎ＋３）毎の負荷率を自らが算出する機能を有している。詳細は後述する。
【００２０】
図３（ａ）に示すように、演算周期Ｎ＋０において、フィールド機器１のＮ＋３における負荷率は１００％を超えているため（図中、ハッチング表記）、フィールド機器１が上位装置７に対して処理＃３の分散処理要求を送信する（ステップＳ１０）。この分散処理要求を受信した上位装置７は、フィールド機器１以外のフィールド機器２〜５に対し、処理＃３の分散処理の受け入れ要求を送信する（ステップＳ１１）。
【００２１】
演算周期Ｎ＋１において、受け入れ要求を受信した各フィールド機器２〜５は、それぞれ、分散処理を受け入れた場合の演算周期Ｎ＋２における負荷率を再計算する。このとき、フィールド機器５は、再計算の結果の負荷率が９０％（図３（ｂ）に下線表記）になるため、その分散処理の受け入れを拒否し、その他のフィールド機器２〜４は分散処理要求を受け入れる受け入れ可応答を行う（ステップＳ１２）。なお、受け入れ可応答を行ったフィールド機器２〜４は、上位装置７に対しその時点における各演算周期の負荷率についても送信する。
【００２２】
フィールド機器２〜５から分散処理要求の受け入れ可否応答を受信した上位装置７は、分散処理要求元であるフィールド機器１に対し、処理＃３の分散処理に必要な演算ブロック情報の送信を要求する（ステップＳ１３）。ここで、演算ブロック情報とは、分散処理に必要な、演算子、変数、および処理タイミングを示す演算周期（Ｎ＋３）を含む情報である。上位装置７から演算ブロック情報の取得要求を受信したフィールド機器１は、上位装置７に対し、処理＃３の分散処理に必要な演算ブロック情報を送信する（ステップＳ１４）。
【００２３】
続いて、演算周期Ｎ＋２において、演算ブロック情報を受信した上位装置７は、分散処理の受け入れが可能であると返信したフィールド機器２〜４に対し、その演算ブロック情報に、分散負荷情報を付加して送信する（ステップＳ１５）。ここで、分散負荷情報とは、上位装置７が、各フィールド機器２〜４から先に受信した演算周期の負荷率に基づきそれぞれに割当てた、処理＃３のための負荷情報である。そして、演算ブロック情報ならびに分散負荷情報を受信した各フィールド機器２〜４は、演算周期Ｎ＋２の中で処理＃３の分散処理（演算）を実行する。
【００２４】
演算周期Ｎ＋３において、演算周期Ｎ＋２で分散処理が終了した各フィールド機器２〜４は、上位装置７に対して演算結果を送信する（ステップＳ１６）。そして、分散処理結果を受信した上位装置７は、演算の結果を統合して分散処理要求があったフィールド機器１に送信する（ステップＳ１７）。上位装置７から処理＃３の分散処理結果を受信したフィールド機器１は、演算周期Ｎ＋３にその結果を組み込んで分散処理要求を終了する。図３（ａ）〜（ｄ）に示す演算周期毎の負荷率に示すように、フィールド機器１は、処理＃３の負荷をフィールド機器２〜４に分散したため、負荷率が１１０％から８０％に推移していることが理解できる。
【００２５】
図４にフィールド機器１の内部構成が、図５に上位装置７の内部構成がそれぞれブロック図で示されている。
【００２６】
図４を参照してフィールド機器１の内部構成を説明する。図４に示すように、フィールド機器１は、通信部１１と、演算処理部１２と、記憶部１３とにより構成される。なお、フィールド機器２〜５もフィールド機器１と同様の構成を有するため重複を回避する意味で説明を省略する。
【００２７】
通信部１１は、フィールド通信の仕様に準拠した手順で上位装置７と通信を行う。記憶部１３には、例えば、ＲＯＭ，ＲＡＭ等の半導体メモリ、あるいはハードディスクや光ディスク等の大容量メモリが実装され、演算処理部１２が実行するプログラム、あるいはそのプログラム実行過程で生成される各種データが記憶される。
【００２８】
演算処理部１２は、上位装置７から分散処理の受け入れ要求を受信すると、演算ブロック情報に含まれる演算周期Ｎ＋３（第１の演算周期）における処理負荷を再計算し、閾値と比較することにより受け入れ可否を応答する。また、演算処理部１２は、演算周期Ｎ＋２（第２の演算周期）で受信した演算ブロック情報に基づく演算を演算周期Ｎ＋２（第２の演算周期）で実行する。また、演算処理部１２は、他のフィールド機器２〜５から上位装置７経由で受信した分散処理要求に基づく演算結果を、演算周期Ｎ＋３（所定の演算周期）に組み込む機能を実行する。
【００２９】
このため、演算処理部１２は、演算部１２１と、負荷監視部１２２と、要求および演算ブロック情報生成部１２３と、受け入れ可否判定部１２４とを含み構成される。
【００３０】
演算部１２１は、四則演算を行う他に、他のフィールド機器２〜５から上位装置７経由で受信した分散処理要求に基づく演算結果を、演算周期Ｎ＋３（所定の演算周期）に組み込む操作も行う。負荷監視部１２２は、演算周期Ｎ＋０〜Ｎ＋３までの負荷率を計算する。負荷率は、例えば、各フィールド機器１〜５に内蔵される演算処理部１２（ＣＰＵ）内での処理をフォアグランド処理とバックグランド処理とに分け、バックグランド処理が実行されている期間内でカウンタを定期的にインクリメントし、演算周期毎にこのカウンタの値を参照することにより評価しパーセンテージで表現するものとする。この場合、カウンタの値が小さいほど高負荷であることを意味する。
【００３１】
要求および演算ブロック情報生成部１２３は、負荷率が閾値を超えた場合に分散処理要求を生成し、また、その分散処理に必要な演算ブロック情報を生成する。受け入れ可否判定部１２４は、上位装置７から分散処理の受け入れ要求を受信したときに、負荷監視部１２２から受け入れた場合の負荷率を得て、閾値と比較することにより受け入れが可能か否かを判定する。
【００３２】
次に、図５を参照して上位装置７の内部構成を説明する。上位装置７は、通信部７１と、演算処理部７２と、記憶部７３と、を含み構成される。
【００３３】
通信部７１は、フィールド通信の仕様に準拠した手順でフィールド機器１〜５とフィールド通信を行う。記憶部７３には、例えば、ＲＯＭ，ＲＡＭ等の半導体メモリ、あるいはハードディスクや光ディスク等の大容量メモリが実装され、演算処理部７２が実行するプログラム、あるいはそのプログラム実行過程で生成される各種データが記憶される。
【００３４】
演算処理部７２は、フィールド機器１（第１のフィールド機器）から所定の演算周期における処理負荷状態に基づく分散処理要求を受信すると、フィールド機器１を除くフィールド機器２〜５（第２のフィールド機器）に対して分散処理要求の受け入れ可否を問い合わせ、当該問い合わせ時の演算周期における自身の処理負荷状態に基づき受け入れ可と応答したフィールド機器２〜５のいずれかに対して演算負荷を割り当て、このフィールド機器２〜５のいずれからか得られる演算結果を分散処理要求のあったフィールド機器１へ送信する。
【００３５】
このため、演算処理部７２は、分散処理管理部７２０と、処理負荷割当て部７２１と、演算結果統合部７２２と、を含み構成される。
【００３６】
分散処理管理部７２０は、フィールド機器１から分散処理要求を受信すると、フィールド機器１から前記分散処理に必要な演算ブロック情報を取得し、この演算ブロック情報を、演算周期Ｎ＋３（第１の演算周期）より前の演算周期Ｎ＋２（第２の演算周期）で、受け入れ可と応答したフィールド機器２〜５のいずれかへ送信する。処理負荷割り当て部７２１は、受け入れ可と応答したフィールド機器が複数ある場合、演算周期Ｎ＋２でフィールド機器２〜４のそれぞれに演算負荷を割り当てる。演算結果統合部７２２は、演算周期Ｎ＋３で、フィールド機器２〜４のそれぞれから受信した演算結果を統合して、通信部７１経由で分散処理要求のあったフィールド機器１へ送信する。
【００３７】
（実施形態の動作）
以下、図６〜図８のフローチャートを参照しながら分散処理要求を送信するフィールド機器１、分散処理の管理を行う上位装置７、および分散処理要求を受け入れたフィールド機器２〜４の動作を詳細に説明する。
【００３８】
まず、図６のフローチャートを参照して分散処理要求を送信するフィールド機器１の動作から説明する。フィールド機器１は、負荷監視部１２２が、演算周期Ｔの到来毎に（ステップＳ１０１）、演算部１２１を用いて負荷率を計算している（ステップＳ１０２）。負荷率が閾値を超えると（ステップＳ１０３“ＹＥＳ”）、負荷監視部１２２は、要求および演算ブロック情報生成部１２３を起動して分散処理要求を生成させ、通信部１１を経由して上位装置７へ送信する（ステップＳ１０４）。
【００３９】
続いて、上位装置７から演算ブロック情報の送信要求を受信すると（ステップＳ１０５“ＹＥＳ”）、要求および演算ブロック情報生成部１２３は、分散処理に必要な、演算子（関数）、変数（パラメータ）、および負荷率が閾値を超える演算周期Ｎ＋３（演算タイミング）とを含む演算ブロック情報を生成し、通信部１１経由で上位装置７へ送信する（ステップＳ１０６）。
【００４０】
そして、分散処理要求の受け入れ先であるフィールド機器２〜４から上位装置７を介して分散処理結果（演算結果）を受信すると（ステップＳ１０７“ＹＥＳ”）、演算部１２１は、その演算結果を演算周期Ｎ＋３に組み込む処理を行ない一連の処理を終了する（ステップＳ１０８）。
【００４１】
なお、図６のフローチャートにおいて、ステップＳ１０１で演算周期に到達していなければ（ステップＳ１０１“ＮＯ”）、ステップＳ１０１の処理をループし、ステップＳ１０５で負荷率が閾値未満であれば（ステップＳ１０３“ＮＯ”）、処理を終了し、ステップＳ１０７で上位装置７から演算結果を受信できなければ（ステップＳ１０７“ＮＯ”）、ステップＳ１０７をループして分散処理要求を受け入れた他のフィールド機器２〜４による分散処理結果の送信を待つ。
【００４２】
次に、図７のフローチャートを参照して上位装置７の動作について説明する。上位装置７は、フィールド機器１から分散処理要求を受信すると（ステップＳ２０１“ＹＥＳ”）、分散処理要求を送信したフィールド機器１を除くフィールド機器２〜５に対して分散処理要求の受け入れ要求を送信する（ステップＳ２０２）。そして、各フィールド機器２〜５からの受け入れ可否応答の受信を待つ（ステップＳ２０３）。
【００４３】
そして、受け入れ可否応答があれば、そのフィールド機器２〜４に分散処理に必要な演算ブロック情報を送信するため、分散処理要求元であるフィールド機器１に対し、演算ブロック情報の送信要求を行う（ステップＳ２０４）。フィールド機器１から演算ブロック情報を受信すると（ステップＳ２０５）、分散処理の受け入れを許可したフィールド機器２〜４に対し、その演算ブロック情報の送信を行う（ステップＳ２０６）。このとき、処理負荷割当て部７２１が、受け入れ可と応答したフィールド機器２〜４に対し、演算周期Ｎ＋３におけるそれぞれの負荷率に応じて処理＃３の負荷を細分して割り当てる。
【００４４】
それぞれに負荷が割り当てられたフィールド機器２〜４から各演算結果が送信され、それを受信すると（ステップＳ２０７“ＹＥＳ”）、演算結果統合部７２２が各演算結果を統合して、分散処理要求元であるフィールド機器１へ送信して一連の処理を終了する（ステップＳ２０８）。
【００４５】
なお、図７のフローチャートにおいて、ステップＳ２０１で分散処理要求を受信していなければ（ステップＳ２０１“ＮＯ”）、ステップＳ２０１の処理をループして分散処理要求の受信を待ち、ステップＳ２０５で演算ブロック情報が未受信であれば（ステップＳ２０５“ＮＯ”）、分散処理要求元のフィールド機器１からの演算ブロック情報の送信を待ち、ステップＳ２０７で分散処理に基づく演算結果が未受信であれば（ステップＳ２０７“ＮＯ”）、ステップＳ２０７をループして分散処理要求を受け入れた他のフィールド機器２〜４からの分散処理結果の送信を待つ。
【００４６】
最後に、図８のフローチャートを参照して、分散処理要求を受け入れたフィールド機器２〜４の動作について説明する。フィールド機器２〜４では、負荷監視部１２２が、演算周期Ｔの到来毎に（ステップＳ３０１）、演算部１２１を用いて負荷率を計算している（ステップＳ３０２）。ここで、上位装置７から分散処理の受け入れ要求を受信すると（ステップＳ３０３“ＹＥＳ”）、上位装置７に演算ブロック情報の取得要求を送信する（ステップＳ３０４）。
【００４７】
上位装置７から演算ブロック情報と割り当てられた処理＃３の負荷割当て情報とを受信すると（ステップＳ３０５“ＹＥＳ）”、負荷監視部１２２は、演算部１２１を用い、割り当てられた負荷に基づく負荷率を再計算して受け入れ可否判定部１２４に引き渡す（ステップＳ３０６）。受け入れ可否判定部１２４は、再計算の結果得られる負荷率と閾値と比較することにより分散処理要求の受け入れ可否を判定する（ステップＳ３０７）。
【００４８】
ここで、受け入れ可であれば（ステップＳ３０７“ＹＥＳ”）、演算部１２１を起動して演算部１２１に演算ブロック情報に基づく演算を実行させ（ステップＳ３０８）、受け入れ不可であれば、通信部１１を介して上位装置７に受け入れ拒否応答を行う（ステップＳ３０９）。演算部１２１で行なわれる演算ブロック情報にしたがう処理＃３の一部演算結果は、通信部１１経由で上位装置７に送信される（ステップＳ３１０）。
【００４９】
なお、図８のフローチャートにおいて、ステップＳ３０１で演算周期に到達していなければ（ステップＳ３０１“ＮＯ”）、ステップＳ３０１の処理をループして演算周期の到達を待ち、ステップＳ３０３で、分散処理要求の受信が無ければ一連の処理を終了し、ステップＳ３０５で演算ブロックおよび負荷割り当て情報が未受信であれば（ステップＳ３０５“ＮＯ”）、上位装置７からの演算ブロックおよび負荷割当て情報の送信を待つ。
【００５０】
（実施形態の効果）
以上説明のように本実施形態に係る分散処理システム１０によれば、各フィールド機器１〜５は、演算周期毎に負荷率を算出しており、上位装置７は、例えば、フィールド機器１から所定の演算周期における処理負荷状態に基づく分散処理要求を受信すると、フィールド機器２〜５に対して分散処理の受け入れ可否を問い合わせ、当該問い合わせ時の演算周期における自身の処理負荷状態に基づき受け入れ可と応答したフィールド機器２〜４に対して演算負荷を割り当て、このフィールド機器２〜４から得られる演算結果を第１のフィールド機器１へ送信する。したがって、フィールド機器１は、上位装置７から受信した演算結果を所定の演算周期に組み込むことができる。したがって、高負荷状態であっても所定の演算周期内に必要な処理を終了させることができる。
【００５１】
このように、各フィールド機器１〜５は、上位装置７による仲介の下、演算周期毎の負荷を考慮して高負荷状態になる前に事前に処理を平滑化するができ、したがって、ある演算周期で必要であった処理が、続く演算周期で処理される事態を回避でき、このため、即応答性を求められるアプリケーションへの適用が可能になる。
【００５２】
なお、本実施形態に係る分散処理システム１０は、フィールド機器１〜５の診断用途に使用して顕著な効果が得られる。診断は、演算周期より長い定周期で実行されるが、その処理が膨大であり、高負荷状態になることは明らかである。このような場合、フィールド機器１〜５は、診断のための演算をいつ実行すべきかを把握しているため、事前の負荷率の演算を必要とせず、上位装置７に対して分散処理を要求することができる。これにより、診断結果をリアルタイムにユーザに通知することができる。
【００５３】
なお、本実施形態に係るフィールド機器における演算負荷分散方法は、例えば、図１に示すように、第１（フィールド機器１）、第２のフィールド機器（フィールド機器２〜５）と、第１、第２のフィールド機器とはフィールドバス６経由で接続される上位装置７とからなる分散処理システム１０に適用される。そして、例えば、図２に示すように、上位装置７が、第１のフィールド機器から所定の演算周期における処理負荷状態に基づく分散処理要求を受信すると、第２のフィールド機器に対して分散処理要求の受け入れ可否を問い合わせるステップ（Ｓ１０，Ｓ１１）と、当該問い合わせ時の演算周期における自身の処理負荷状態に基づき受け入れ可と応答した第２のフィールド機器に対して演算負荷を割り当て、第２のフィールド機器から得られる演算結果を第１のフィールド機器へ送信するステップ（Ｓ１２〜Ｓ１６）と、第１のフィールド機器が、上位装置から受信した演算結果を所定の演算周期に組み込むステップ（Ｓ１６）と、を実行する。
【００５４】
本実施形態に係るフィールド機器における演算負荷分散方法によれば、各フィールド機器１〜５は、上位装置７による仲介の下で、演算周期毎の負荷を考慮して高負荷状態になる前に事前に処理を平滑化するができ、このため、ある演算周期で必要であった処理が、続く演算周期で処理される事態を回避でき、したがって、即応答性を求められるアプリケーションへの適用が可能になる。
【００５５】
以上、実施形態を用いて本発明を説明したが、本発明の技術的範囲は上記実施形態に記載の範囲には限定されないことは言うまでもない。上記実施形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。またその様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【符号の説明】
【００５６】
１〜５…フィールド機器、６…フィールドバス、７…上位装置、１０…分散処理システム、１１…通信部、１２…演算処理部、１３…記憶部、１２１…演算部、１２２…負荷監視部、１２３…要求及び演算ブロック情報生成部、１２４…受け入れ可否判定部、７１…通信部、７２…演算処理部、７３…記憶部、７２０…分散処理管理部、７２１…処理負荷割当て部、７２２…演算結果統合部
【図１】
2015207202.tif 000003
【図２】
2015207202.tif 000004
【図３】
2015207202.tif 000005
【図４】
2015207202.tif 000006
【図５】
2015207202.tif 000007
【図６】
2015207202.tif 000008
【図７】
2015207202.tif 000009
【図８】
2015207202.tif 000010
【図９】
2015207202.tif 000011