(57)【特許請求の範囲】
【請求項１】
制御対象を制御する制御装置において実行されるフロー型プログラムの動作をモニタリング装置によりモニタリングする制御モニタリングシステムであって、
前記モニタリング装置は、
前記フロー型プログラムに対して実行サイクルのカウントを行うカウンタブロックを埋め込むカウンタ生成手段と、
前記カウンタブロックが埋め込まれた前記フロー型プログラムを前記制御装置に対して送信して、当該フロー型プログラムのモニタリングを要求するモニタリング要求手段と、
前記制御装置から送信される、前記フロー型プログラムのサイクル実行回数と、前記カウンタブロックにおける最新実行サイクル値と、を含むカウント情報を受信する結果受信手段と、
前記結果受信手段により受信された情報に基づいてモニタリング結果を出力する出力手段と、
を備え、
前記制御装置は、
前記モニタリング装置から送信された前記カウンタブロックが埋め込まれた前記フロー型プログラムを実行するフロー実行手段と、
前記フロー実行手段による前記フロー型プログラムを実行する度に、実行結果に対応した前記フロー型プログラムのサイクル実行回数と、前記フロー型プログラムに埋め込まれた前記カウンタブロックにおける最新実行サイクル値と、を含むカウント情報を取得する結果取得手段と、
前記結果取得手段により取得された前記カウント情報を前記モニタリング装置に対して送信する結果送信手段と、
を備える制御モニタリングシステム。
【請求項２】
制御対象を制御する制御装置において実行されるフロー型プログラムの動作をモニタリング装置によりモニタリングする制御モニタリングシステムであって、
前記モニタリング装置は、
前記フロー型プログラムを前記制御装置に対して、当該フロー型プログラムのモニタリングを要求するモニタリング要求手段と、
前記制御装置から送信される、前記フロー型プログラムのサイクル実行回数と、前記フロー型プログラムに埋め込まれて実行サイクルのカウントを行うカウンタブロックにおける最新実行サイクル値と、を含むカウント情報を受信する結果受信手段と、
前記結果受信手段により受信された情報に基づいてモニタリング結果を出力する出力手段と、
を備え、
前記制御装置は、
前記モニタリング装置からモニタリングを要求された前記フロー型プログラムに対して前記カウンタブロックを埋め込むカウンタ生成手段と、
前記カウンタブロックが埋め込まれた前記フロー型プログラムを実行するフロー実行手段と、
前記フロー実行手段による前記フロー型プログラムを実行する度に、実行結果に対応した前記フロー型プログラムのサイクル実行回数と、前記フロー型プログラムに埋め込まれた前記カウンタブロックにおける最新実行サイクル値と、を含むカウント情報を取得する結果取得手段と、
前記結果取得手段により取得された前記カウント情報を前記モニタリング装置に対して送信する結果送信手段と、
を備える制御モニタリングシステム。
【請求項３】
前記カウンタ生成手段は、前記フロー型プログラムにおいて、分岐する経路がある場合に、分岐後の経路上に前記カウンタブロックを埋め込む請求項１又は２に記載の制御モニタリングシステム。
【請求項４】
前記カウンタ生成手段は、前記フロー型プログラムにおいて、始点と終点との間に設けられたブロックの前後に前記カウンタブロックを埋め込む請求項１又は２に記載の制御モニタリングシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御モニタリングシステムに関する。
【背景技術】
【０００２】
従来から、制御対象からデータを収集しながら制御対象を監視すると共に、収集したデータ等に基づいて制御対象を制御する制御装置を備える制御システムがプラント等で用いられていることが知られている。制御システムに含まれる制御装置は、予め作成された制御ロジックを用いて各種の制御を行う（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−１３２５０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、制御装置における制御の状況をモニタリングしようとした場合、制御ロジックに含まれる特定の線番の値をモニタリングすることが一般的であった。しかしながら、制御ロジックの実行に係るフロー中に分岐が含まれる場合、特定の線番の値をモニタリングしたとしても、その値が制御ロジックの最新実行サイクルの値とは限らないことが考えらえる。このように、制御装置における制御状況のモニタリングには改良の余地があった。
【０００５】
本発明は上記を鑑みてなされたものであり、制御装置による制御のモニタリングをより好適に行うことができる制御モニタリングシステムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本発明の一形態に係る制御モニタリングシステムは、制御対象を制御する制御装置において実行されるフロー型プログラムの動作をモニタリング装置によりモニタリングする制御モニタリングシステムであって、前記モニタリング装置は、前記フロー型プログラムに対して実行サイクルのカウントを行うカウンタブロックを埋め込むカウンタ生成手段と、前記カウンタブロックが埋め込まれた前記フロー型プログラムを前記制御装置に対して送信して、当該フロー型プログラムのモニタリングを要求するモニタリング要求手段と、前記制御装置から送信される、前記フロー型プログラムのサイクル実行回数と、前記カウンタブロックにおける最新実行サイクル値と、を含むカウント情報を受信する結果受信手段と、前記結果受信手段により受信された情報に基づいてモニタリング結果を出力する出力手段と、を備え、前記制御装置は、前記モニタリング装置から送信された前記カウンタブロックが埋め込まれた前記フロー型プログラムを実行するフロー実行手段と、前記フロー実行手段による前記フロー型プログラムの実行結果に対応した前記カウント情報を取得する結果取得手段と、前記結果取得手段により取得された前記カウント情報を前記モニタリング装置に対して送信する結果送信手段と、を備えることを特徴とする。
【０００７】
上記の制御モニタリングシステムによれば、モニタリング装置のカウンタ生成手段においてフロー型プログラムに対してカウンタブロックを埋め込み、制御装置のフロー実行手段においてフロー型プログラムを実行する際に、結果取得手段において、処理全体の実行回数を示すサイクル実行回数と、各カウンタブロックを実行した最新サイクルを特定する値とを取得する。その後、これらの情報がカウント情報としてモニタリング装置に対して送信されて、出力手段において出力される。したがって、制御装置による制御に係るフロー型プログラムにおける処理の実行をより好適にモニタリングすることが可能となる。
【０００８】
また、本発明の他の一形態に係る制御モニタリングシステムは、制御対象を制御する制御装置において実行されるフロー型プログラムの動作をモニタリング装置によりモニタリングする制御モニタリングシステムであって、前記モニタリング装置は、前記フロー型プログラムを前記制御装置に対して、当該フロー型プログラムのモニタリングを要求するモニタリング要求手段と、前記制御装置から送信される、前記フロー型プログラムのサイクル実行回数と、前記フロー型プログラムに埋め込まれて実行サイクルのカウントを行うカウンタブロックにおける最新実行サイクル値と、を含むカウント情報を受信する結果受信手段と、前記結果受信手段により受信された情報に基づいてモニタリング結果を出力する出力手段と、を備え、前記制御装置は、前記モニタリング装置からモニタリングを要求された前記フロー型プログラムに対して前記カウンタブロックを埋め込むカウンタ生成手段と、前記カウンタブロックが埋め込まれた前記フロー型プログラムを実行するフロー実行手段と、前記フロー実行手段による前記フロー型プログラムの実行結果に対応した前記カウント情報を取得する結果取得手段と、前記結果取得手段により取得された前記カウント情報を前記モニタリング装置に対して送信する結果送信手段と、を備えることを特徴とする。
【０００９】
上記の制御モニタリングシステムによれば、制御装置のカウンタ生成手段においてフロー型プログラムに対してカウンタブロックを埋め込み、フロー型プログラムを実行する際に、結果取得手段において、処理全体の実行回数を示すサイクル実行回数と、各カウンタブロックを実行した最新サイクルを特定する値とを取得する。その後、これらの情報がカウント情報としてモニタリング装置に対して送信されて、出力手段において出力される。したがって、制御装置による制御に係るフロー型プログラムにおける処理の実行をより好適にモニタリングすることが可能となる。
【００１０】
また、上記の制御モニタリングシステムにおいて、前記カウンタ生成手段は、前記フロー型プログラムにおいて、分岐する経路がある場合に、分岐後の経路上に前記カウンタブロックを埋め込む態様とすることができる。
【００１１】
上記のように、分岐後の経路上にそれぞれカウンタブロックを設けている場合、最新サイクルにおける分岐後の経路の確認ができるため、モニタリングを好適に行うことができる。
【００１２】
また、上記の制御モニタリングシステムにおいて、前記カウンタ生成手段は、前記フロー型プログラムにおいて、始点と終点との間に設けられたブロックの前後に前記カウンタブロックを埋め込む態様とすることができる。
【００１３】
上記のように、ブロックの前後にカウンタブロックを埋め込む構成とする場合、フロー型プログラムにおける処理の流れをより詳細まで確認することができる。
【発明の効果】
【００１４】
本発明によれば、制御装置による制御のモニタリングをより好適に行うことができる制御モニタリングシステムが提供される。
【図面の簡単な説明】
【００１５】
【図１】図１は、本発明の一実施形態に係る制御モニタリングシステムの概略構成図である。
【図２】図２は、フローＤＢにて保持されるフローシートの例を示す図である。
【図３】図３は、カウンタ生成部によるカウンタ埋め込み後のフローシートの例を示す図である。
【図４】図４は、図３のフローシートに対応したテーブルの例を示す図である。
【図５】図５は、モニタ結果の出力例を示す図である。
【図６】図６は、制御モニタリングシステムにおけるモニタリング方法を示すシーケンス図である。
【図７】図７は、カウンタ埋め込み後のフロー型プログラムの別の例を示す図である。
【図８】図８は、変形例に係る制御モニタリングシステムの概略構成図である。
【図９】図９は、変形例に係る制御モニタリングシステムにおけるモニタリング方法を示すシーケンス図である。
【発明を実施するための形態】
【００１６】
以下、添付図面を参照して、本発明を実施するための形態を詳細に説明する。なお、図面の説明においては同一要素には同一符号を付し、重複する説明を省略する。
【００１７】
図１は、本発明の一実施形態に係る制御モニタリングシステムの概略構成図である。制御モニタリングシステム１は例えばプラント等において適用されるシステムであり、制御対象となる装置の状態を示すデータ等を収集し、当該データ及びその他の情報に基づいて制御対象となる装置の制御を行うシステムである。また、制御モニタリングシステム１では、制御装置における制御に関してモニタリング装置によりモニタリングを行う。
【００１８】
制御モニタリングシステム１は、モニタリング装置１０、制御装置２０を含んで構成される。また、制御対象装置３０は、制御モニタリングシステム１における制御対象となる装置である。
【００１９】
モニタリング装置１０は、制御対象装置３０の制御を制御装置２０が行う際のモニタリングを行う装置である。モニタリング装置１０では、制御装置２０が実行するフローと同等のものを保持し、制御装置２０からリアルタイムに送信される情報に基づいて制御装置２０がどの演算を行っているかをモニタ結果として出力する機能を有する。モニタリング装置１０は、例えば、ユーザが携帯可能な装置として実現することができる。
【００２０】
制御装置２０は、制御対象装置３０からのデータを取得すると共に、制御ロジックとフローシートとを用いてで制御対象装置３０の制御に係る動作を行う。制御装置２０は、制御ロジックとフローシートとを用いて制御対象装置３０の制御を行う。制御ロジックとは、例えば、ファンクション・ブロック・ダイアグラム（ＦＢＤ）言語で作成されたロジックプログラムであり、制御対象装置３０に係る情報に基づいた演算を実行するための複数のロジックにより構成される。また、フローシートとは、制御の単位（サイクル）毎に準備されるシートであり、当該フローシートに示された処理を一定周期毎に実行することで、制御対象装置３０の制御を行うものである。フローシートには、始点と終点とを指定したフロー型プログラムが含まれている。制御装置２０では、基本的にフローシートに則って処理を行い、制御ロジックの実行を指定するブロックが含まれる場合には、対応する制御ロジックが実行される。
【００２１】
なお、本実施形態におけるフロー型プログラムとは、流れ図的に記載されたロジックプログラムのことをいう。また、本実施形態におけるフロー型プログラムは、分岐構造、すなわち、分岐を有するプログラムであることが好ましい。モニタリング装置１０によるモニタリングは、分岐を有するプログラムを実行する場合に効果的である。
【００２２】
制御対象装置３０は、制御モニタリングシステム１の制御装置２０による制御対象となる装置であり、例えば、プラントにおける運転装置等が挙げられる。制御対象装置３０は、制御装置２０からの指示を受信すると、これに基づいて運転制御等を行う。また、制御対象装置３０は、制御装置２０からの指示に基づいて、自装置で取得された運転データ等を制御装置２０に対して送信する。このように、制御対象装置３０では、自装置の状態を示す情報を制御装置２０に対して送信し、自装置の状態に対応した指示を制御装置２０から受信することで、運転の制御が行われる。
【００２３】
なお、図１では制御モニタリングシステム１を構成する制御装置２０と、制御対象装置３０と、がそれぞれ１台である場合を示しているが、制御装置２０及び制御対象装置３０はそれぞれ複数含まれていてもよい。この場合、制御装置２０が複数の制御対象装置３０を制御する構成とすることもできる。また、モニタリング装置１０も複数設けられていてもよい。
【００２４】
上記のモニタリング装置１０及び制御装置２０は、それぞれ、ＣＰＵ（Central  Processing  Unit）、主記憶装置であるＲＡＭ（Random  Access  Memory）及びＲＯＭ（Read  Only  Memory）、他の機器との間の通信を行う通信モジュール、並びにハードディスク等の補助記憶装置等のハードウェアを備えるコンピュータとして構成される。そして、これらの構成要素が動作することにより、後述のモニタリング装置１０及び制御装置２０としての機能が発揮される。
【００２５】
次に、モニタリング装置１０及び制御装置２０の各機能部について説明する。モニタリング装置１０は、通信部１１（モニタリング要求手段、結果受信手段）と、フローＤＢ１２と、カウンタ生成部１３（カウンタ生成手段）と、モニタ結果出力部１４（出力手段）と、を含んで構成される。
【００２６】
通信部１１は、制御装置２０との間で通信を行う機能を有する。本実施形態におけるモニタリング装置１０は、フローシート及び当該フローシートの特定のブロックに対応した制御ロジックを制御装置２０に対して送信して制御装置２０における当該フローシートに係るモニタリングを指示するモニタリング要求手段として機能する。また、モニタリング装置１０から送信されたフローシートを制御装置２０で実行している間は、制御装置２０から送信されるカウント情報を受信する結果受信手段としても機能する。詳細は後述するが、カウント情報には、サイクル実行回数と、埋め込まれたカウンタブロックが実行した最新サイクルを特定する値とが含まれる。
【００２７】
フローＤＢ１２は、フローシート及びフローシートに関連付けられた制御ロジックを保持する機能を有する。フローＤＢ１２において保持されるフローシート及び制御ロジックは、例えばユーザによって作成されたものである。フローシート及び制御ロジックは、モニタリング装置１０とは異なる装置で作成されたものをフローＤＢ１２にて保持する構成としてもよいし、モニタリング装置１０が編集機能を有する場合には、モニタリング装置１０において作成されたものをフローＤＢ１２にて保持する構成としてもよい。
【００２８】
また、カウンタ生成部１３は、フローＤＢ１２において保持されるフローシートにおけるフロー型プログラムに対してカウンタブロックを埋め込むカウンタ生成手段として機能する。カウンタブロックとは、実行サイクルのカウントを行うロジックブロックであるが、詳細は後述する。
【００２９】
カウンタ生成部１３の機能について、図２及び図３を参照しながら説明する。図２は、フローＤＢ１２にて保持されるフローシートの例を示す図であり、図３は、カウンタ生成部１３によるカウンタ埋め込み後のフローシートの例を示す図である。
【００３０】
図２に示すフローシート及びフローシートに含まれるフロー型プログラムは、ユーザにより作成されたものである。フローシートは、Ｆｌｏｗ＿Ｓｔａｒｔブロック０００１とＦｌｏｗ＿Ｅｎｄブロック０００５との間に１か所の分岐であるＦＢＲブロック０００２と、分岐結果に応じた２つの互いに異なる処理を示すＦＳＨブロック０００３及びＦＳＦブロック０００６と、分岐結果に関係なく処理を行うＦＭＲＧブロック０００４と、がこの順で配列されているフローチャートにより構成されている。各ブロックは、それぞれ何らかの処理の実行を指示するものである。なお、各ブロックに対して制御ロジックが関連付けられている場合もあり、その場合には、当該ブロックにおいては、制御ロジックに示された演算処理等を実行する。本実施形態では、制御ロジックの演算に係る説明は省略し、フローシートを用いた処理の実行について説明する。
【００３１】
制御装置２０は、図２に示すフローシートのフローチャート（フロー型プログラム）に記載された一連の処理を１サイクルとし、これを周期的に繰り返すことで制御対象装置３０を制御する。このとき、制御装置２０で一連の処理を実行した回数をカウントすることは従来から可能であるが、最新のサイクルでどの処理を行ったかについて把握する構成とはされていなかった。
【００３２】
この点について具体的に説明する。制御装置２０において、図２のフローシートのフローチャートとして示された１サイクルの処理を繰り返した場合、ＦＢＲブロック０００２によって経路が分岐されるため、フローシートを１サイクル実行した場合には、ＦＳＨブロック０００３及びＦＳＦブロック０００６のいずれかが実行される。各ブロックに対応する処理を実行した結果（例えば演算の結果の値）を外部装置に出力することは可能であるので、例えば、ＦＳＨブロック０００３の実行結果をモニタリング装置に対して出力することは可能である。したがって、ＦＳＨブロック０００３の実行結果が更新されると、ＦＳＨブロック０００３を経由する処理が行われたことをモニタリング装置側で把握することは可能である。しかしながら、ＦＳＨブロック０００３の実行結果の更新が最新のサイクルにおける結果であることを示す情報は、実行結果には対応付けられていないため、最新のサイクルにおいてＦＳＨブロック０００３を経由する処理を実行したかどうかをユーザ側で把握することはできていなかった。この点について、各ブロックにおける処理の実行結果を全サイクルについて全て取得すれば、最新のサイクルにおける処理の実行結果をモニタリング装置でも把握することは可能である。しかし、このようなモニタリングの方法は、通信量及び処理負荷の観点から現実的ではない。
【００３３】
これに対して、本実施形態に係る制御モニタリングシステム１では、モニタリング装置１０のカウンタ生成部１３では、最新サイクルを把握するためのカウンタブロックを図２のフローシートのフローチャートの経路上に埋め込むという処理を行う。埋め込んだ結果を図３に示す。
【００３４】
図３に示すフローシートでは、隣接するブロックの間に、ＩＤ＝１〜ＩＤ＝６の６つのブロックが埋め込まれている。このブロックは、ＦＰＰ（Ｆｌｏｗ  Ｐａｓｓ  Ｐｏｉｎｔ）ブロックといい、当該ブロックを実行すると、実行されたサイクルに対応したサイクル実行回数（フローシートに示す一連の処理を実行した回数）を各ブロックで取得するという処理を行う。この処理が、各ブロックの実行サイクルのカウントを行う機能を実現する。すなわち、ＦＰＰブロックは、本実施形態におけるカウンタブロックとして機能する。
【００３５】
カウンタ埋め込み後のフローシートには、６つのＦＰＰブロックに対応したテーブルが作成される。図３のフローシートに対応したテーブルの例を図４に示す。図４に示すテーブルには、サイクル実行回数と、各ＦＰＰブロックが実行した最新サイクルを特定する値（最新実行サイクル値）とが示されている。
【００３６】
図４に示すテーブルの場合、サイクル実行回数が２５なので、Ｆｌｏｗ＿Ｓｔａｒｔブロック０００１からＦｌｏｗ＿Ｅｎｄブロック０００５までの一連の処理を２５回実行したことを示している。このサイクル実行回数は、一連の処理を実行する度に１ずつ増加する。一方、ＩＤ＝１，３，５，６のＦＰＰブロックの最新サイクルを特定する値（最新実行サイクル値）は２５である。すなわち、最新サイクルである２５回目の処理の際には、ＩＤ＝１，３，５，６のＦＰＰブロックを経由する経路で処理が行われたことを示している。これに対して、ＩＤ＝２，４のＦＰＰブロックの最新サイクルを特定する値（最新実行サイクル値）は１０である。すなわち、１０回目の処理以降は、ＩＤ＝２，４を経由する処理は行われていないことを示している。図３に示すフローシートを参照すると、ＩＤ＝２，４のＦＰＰブロックと、ＩＤ＝３，５のＦＰＰブロックとは、経路分岐されるＦＢＲブロック０００２の後段にあって、互いに異なる経路に設けられている。したがって、最新サイクルを実行する度にＩＤ＝２，４のＦＰＰブロックと、ＩＤ＝３，５のＦＰＰブロックとのいずれか一方のみが更新される。したがって、このカウンタブロック（ＦＰＰブロック）を設け、このカウンタブロックにおいて取得される数値をモニタリングすることにより、フローシートにおける最新サイクルでの経路を特定することができる。
【００３７】
モニタリング装置１０におけるカウンタ生成部１３は、上記のようにフローＤＢ１２において保持されるフローシートにおけるフロー型プログラムに対してカウンタブロックを埋め込む。なお、カウンタブロックの値を保持するテーブルは、カウンタ生成部１３においてカウンタブロックの埋め込みと同時に生成してもよいし、後述の制御装置２０にて生成してもよい。
【００３８】
カウンタ生成部１３によりカウンタブロックが埋め込まれたフローシートは、通信部１１から制御装置２０に対して送信されて、制御装置２０において実行される。また、モニタ結果出力部１４にも送られて、モニタ結果の出力に利用される。
【００３９】
モニタ結果出力部１４は、制御装置２０においてフローシートに示された処理を繰り返し実行する際に、フローシートに埋め込まれたカウンタブロックにおいて取得される数値を取得して、モニタ結果として出力する出力手段として機能する。
【００４０】
モニタ結果の出力例を図５に示す。図５に示す出力例は、図４に示すテーブルに対応する情報をモニタリング装置１０が受信した場合の出力例である。図４のテーブルに示す情報によれば、最新サイクルでは、ＩＤ＝１，３，５，６のＦＰＰブロックを経由する経路で処理が行われたので、図５の出力例では最新サイクルでの経路を強調して示している。なお、図５の出力例では、モニタリング装置１０で埋め込んだＦＰＰブロックは表示をせずに、予め作成されたフローシートの形式を用いて結果を出力している。このように、結果の出力形式は特に限定されず、適宜変更することができる。このように予め作成されたフローシートを利用した出力をすると、モニタリング装置１０のユーザが視覚的に把握しやすいが、これに限定されるものではない。
【００４１】
図１に戻り、制御装置２０について説明する。制御装置２０は、入出力部（モニタリング装置）２１（結果送信手段）と、フロー実行部２２（フロー実行手段、結果取得手段）と、フローＤＢ２３と、入出力部（制御対象装置）２４と、を含んで構成される。
【００４２】
入出力部（モニタリング装置）２１は、モニタリング装置１０と通信を行う機能を有する。モニタリング装置１０との間では、カウンタブロック（ＦＰＰブロック）が埋め込まれたフローシート、及び、フローシートに示された処理を繰り返し実行する際に、フローシートに埋め込まれたカウンタブロックにおいて取得される数値の送受信を行う。このうち、フローシートに示された処理を繰り返し実行する際に、フローシートに埋め込まれたカウンタブロックにおいて取得される数値は、フローシートに示された処理を１サイクル実行する度に入出力部（モニタリング装置）２１からモニタリング装置１０に対して送信する構成とすることができる。このように、入出力部（モニタリング装置）２１は結果送信手段として機能する。
【００４３】
フロー実行部２２は、モニタリング装置１０から送信されたフローシートに示された処理を解釈して実行するフロー実行手段として機能する。併せて、フローシートに係るフロー型プログラムのサイクル実行回数と、カウンタブロックにおける最新実行サイクル値と、を取得する結果取得手段としても機能する。また、フローＤＢ２３は、モニタリング装置１０から送信されたフローシートを保持すると共に、フローシートに示された処理を解釈して実行するための組み込みモジュール等を保持する機能を有する。フロー実行部２２及びフローＤＢ２３が所謂実行エンジンとして機能する。実行エンジンは、モニタリング装置１０から送信されたフローシートに示された処理を解釈して実行することで、制御対象装置３０を制御する機能を有する。
【００４４】
入出力部（制御対象装置）２４は、制御対象装置３０と通信を行う機能を有する。制御対象装置３０との間では、制御対象装置３０で取得されるデータ、及び、制御対象装置３０からのデータに基づいて制御装置２０により作成された制御対象装置３０に対する制御指示等の送受信を行う。これにより、制御対象装置３０は、制御装置２０からの指示に基づいて制御される。
【００４５】
上記の制御モニタリングシステム１におけるモニタリング方法について、図６に示すシーケンス図を参照しながら説明する。図６に示すように、まずモニタリング装置１０において、モニタリングしたいフローシートを選択する（Ｓ０１）。これは、ユーザがモニタリング装置１０を操作することにより、フローＤＢ１２において保持されているフローシートの中から選択する構成としてもよいし、新たに作成した又は外部から送信したフローシートであってもよい。
【００４６】
次に、モニタリング装置１０のカウンタ生成部１３では、選択されたフローシートに対してカウンタブロックを埋め込む（Ｓ０２）。図３に示すように、フローシートに対してＦＰＰブロックを埋め込む。
【００４７】
次に、カウンタブロックが埋め込まれたフローシートを通信部１１から制御装置２０に対して送信することによって、制御装置２０に対して当該フローシートの実行を要求すると共にモニタリングの要求が行われる（Ｓ０３）。
【００４８】
制御装置２０では、入出力部（モニタリング装置）２１においてフローシートを受信すると、フロー実行部２２において、当該フローシートを解釈して、フローシートに示す処理を繰り返し実行する（Ｓ０４）。このとき、サイクル実行回数と、各ＦＰＰブロックを実行した最新サイクルを特定する値とを示すテーブル（図４参照）で、それぞれの値を記録する。そして、サイクル終了毎にカウント情報、すなわちテーブルに記載された数値を入出力部（モニタリング装置）２１からモニタリング装置１０に対して送信する（Ｓ０５）。制御装置２０において、フロー実行とカウント情報の送信とは並行して行われる。
【００４９】
モニタリング装置１０では、制御装置２０からのカウント情報を受信すると、モニタ結果出力部１４において、モニタ結果として出力する（Ｓ０６）。モニタ結果の出力は、モニタ結果の受信の度に行われるので、フロー実行の１サイクル毎にカウント情報が送信される構成である場合、モニタ結果の出力もフロー実行の１サイクル毎に行われる。すなわち、フロー実行（Ｓ０４）〜モニタ結果出力（Ｓ０６）までは、制御装置２０におけるフローシートに係る処理の実行の１サイクル毎に繰り返される。これにより、モニタリング装置１０では、１サイクル毎に最新サイクルの実行結果をモニタリングすることができる。
【００５０】
このように、上記実施形態に係る制御モニタリングシステム１では、モニタリング装置１０においてフローシートにおけるフロー型プログラムであるフローチャートの始点と終点とを繋ぐ経路に対してカウンタブロックを埋め込む。また、制御装置２０では、フローシートに示された処理を実行する際に、処理全体の実行回数を示すサイクル実行回数と、各カウンタブロックを実行した最新サイクルを特定する値とを取得し、これらをモニタリング装置１０において取得して出力する構成とする。このような構成とすることにより、制御モニタリングシステム１では、当該フローシートを構成するフロー型プログラムにおける処理の実行をモニタリングすることが可能となる。
【００５１】
また、上記実施形態に係る制御モニタリングシステム１では、モニタリングを実施する間にモニタリング装置１０と制御装置２０との間で送受信する情報は、処理全体の実行回数を示すサイクル実行回数と、各カウンタブロックを実行した最新サイクルを特定する値と、である。したがって、各ブロックにおける処理の実行結果を全サイクルについて全て取得する方法と比較して、より少ない情報量で、制御装置２０による制御のモニタリングをより好適に行うことができる。
【００５２】
なお、図３に示すカウンタブロックの埋め込み例では、Ｆｌｏｗ＿Ｓｔａｒｔブロック０００１とＦｌｏｗ＿Ｅｎｄブロック０００５との間に設けられたブロック同士を接続する経路の全てにカウンタブロック（ＦＰＰブロック）を配置しているが、経路の全て、すなわち、各ブロックの前後にカウンタブロックを埋め込まなくてもよい。
【００５３】
例えば、図３に示すフローシートでは、ＩＤ＝１，６のＦＰＰブロックが設けられている経路は、フローシートに示す処理を１サイクル実行した場合には、必ず通過する部分であるため、ＦＰＰブロックで取得される値は、サイクル実行回数と一致するはずである。また、ＩＤ＝２のＦＰＰブロックが設けられている経路を通る処理を実行する場合には、ＩＤ＝４のＦＰＰブロックが設けられている経路も必ず通るはずである。同様に、ＩＤ＝３のＦＰＰブロックが設けられている経路を通る処理を実行する場合には、ＩＤ＝５のＦＰＰブロックが設けられている経路も必ず通るはずである。
【００５４】
図３に示すフローシートに係る処理をユーザがモニタリングする場合、ＩＤ＝２，４のＦＰＰブロックが設けられたＦＳＨブロック０００３を通る経路の処理を行ったか、ＩＤ＝３，５のＦＰＰブロックが設けられたＦＳＦブロック０００６を通る経路の処理を行ったか、を監視したいということが目的である場合が多いと考えらえる。したがって、経路上に設けるＦＰＰブロックの数を減らそうとする場合には、少なくともＩＤ＝２，４のＦＰＰブロックのいずれか一方と、ＩＤ＝３，５のＦＰＰブロックのいずれか一方と、の２つのＦＰＰブロックを設ければよい。すなわち、分岐する経路を備えているフローシートの場合、分岐後の経路上にそれぞれカウンタブロックを設けていれば、フローシートのモニタリングを好適に行うことができる。このようにカウンタブロックの数を少なくする場合、モニタリングを実施する間にモニタリング装置１０と制御装置２０との間で送受信する情報量をより少なくすることができる。したがって、例えば、分岐する経路が多いフローシート等の場合には、このようにカウンタブロックの数を減らす態様として通信量を減らすことで、例えば通信の遅れ等の発生を防止することが可能となる。
【００５５】
一方、図３のフローシートのように、Ｆｌｏｗ＿Ｓｔａｒｔブロック０００１とＦｌｏｗ＿Ｅｎｄブロック０００５との間を繋ぐ経路の全てにカウンタブロックを埋め込む構成とする場合、フロー型プログラムにおける処理の流れをより詳細まで確認することができる。また、カウンタブロックの埋め込みについて、どの経路に配置するか等の判定が不要となるため、カウンタブロックの埋め込みに係る処理を簡略化することができる。
【００５６】
図７に、分岐がある場合のカウンタブロックの埋め込みの一例を示す。図７に示すフロー型プログラムは、Ｆｌｏｗ＿Ｓｔａｒｔブロックが１つである一方、Ｆｌｏｗ＿Ｅｎｄブロックが７つである。このフロー型プログラムは、状態分岐フローともいい、分岐に応じて異なる処理を行った後に終了するものである。経路分岐を発生させる分岐ブロックにおける判定結果に応じて、異なる終点（Ｆｌｏｗ＿Ｅｎｄ）に導かれる。このようなフロー型プログラムの場合、カウンタブロックであるＦＰＰブロックを分岐後（分岐先）の経路毎に設ける。図７に示すフロー型プログラムの場合、プログラムを実行すると６つの状態の何れかに分岐されるので、６つの分岐先それぞれにＦＰＰブロックが設けられている。なお、図７では「Ｓ２＿Ａｌｌ？→ＮＯ」というフローはあるが、処理上ＮＯとなることはないため、カウンタブロックの配置を省略している。このように実質的に不要となる分岐先にはカウンタブロックを設けない構成としてもよい。
【００５７】
図７に示すフロー型プログラムのように、分岐後の経路毎にカウンタブロックを設ける構成とすれば、最新のサイクルにおいてどのような処理を行っているか（どの分岐先に進んだか）をモニタリングすることが可能となる。
【００５８】
なお、上記実施形態では、モニタリング装置１０において、モニタリング対象のフローシートを選択した後に（Ｓ０１）、カウンタ生成部１３おいてＦＰＰブロックを埋め込む（Ｓ０２）場合について説明したが、フローシートを選択する前に、フロー型プログラムに対してカウンタブロック（ＦＰＰブロック）を埋め込んでおく構成としてもよい。この場合、モニタリング装置１０では、ユーザにより作成されたフロー型プログラムに対して、モニタリング対象となり得る箇所（始点と終点との間のブロックの前後）に対して全てＦＰＰブロックを埋め込んだ後に、フローＤＢ１２に格納する。その後、モニタリング対象とするフローシートが選択された後（Ｓ０１）に、カウンタの生成（Ｓ０２）に代えて、当該フローシートに埋め込まれたＦＰＰブロックのうち、実際にモニタリングを行うＦＰＰブロックを抽出する。また、当該フローシートの実行を要求すると共にモニタリングの要求が行われる（Ｓ０３）際には、モニタリングを行うＦＰＰブロックを特定した情報も送信されて、フロー実行（Ｓ０４）〜モニタ結果出力（Ｓ０６）に係る処理を行うことで、モニタリングを行いたいＦＰＰブロックに係るモニタリングの結果のみを出力することができる。
【００５９】
上記のように、モニタリング対象となり得る箇所（隣接するブロックの間）に予めカウンタブロックを埋め込む構成とした場合には、カウンタブロックの埋め込みに関して予め細かいルールを設定する必要がないので、モニタリング装置１０において、カウンタブロックの埋め込みを自動的に行うことができる。一方、埋め込んだカウンタブロックに対して、実際にモニタリングを行うカウンタブロックを抽出してカウント情報の送受信を行う構成とすることで、実際にカウント情報をモニタリング装置１０に送信するための、モニタリング装置１０と制御装置２０との間で送受信する情報量をより少なくすることができる。したがって、カウンタブロックの埋め込み箇所を少なくする場合と同様に、モニタリング対象とするカウンタブロックの数を減らす態様として通信量を減らすことができる。
【００６０】
次に、本実施形態に係る制御モニタリングシステムの変形例について説明する。上記の制御モニタリングシステム１では、カウンタブロック（ＦＰＰブロック）の埋め込みをモニタリング装置１０側で行う構成について説明した。しかしながら、カウンタブロックの埋め込み自体は制御装置２０側で行う構成としてもよい。以下、変形例として、制御装置２０側でカウンタブロックを埋め込む場合の構成について説明する。
【００６１】
変形例に係る制御モニタリングシステムの概略構成を図８に示す。図８に示す制御モニタリングシステム２では、モニタリング装置１０は、通信部１１と、フローＤＢ１２と、カウンタ生成部１３と、モニタ結果出力部１４と、を含んで構成される。この点は、制御モニタリングシステム１と同様である。ただし、制御モニタリングシステム２のモニタリング装置１０におけるカウンタ生成部１３は、制御装置２０で使用するフローシートに対してカウンタブロックを埋め込むのではなく、自装置でモニタリング結果を出力するためにカウンタブロックの位置を認識するために用いられる。
【００６２】
また、制御装置２０は、入出力部（モニタリング装置）２１と、フロー実行部２２と、フローＤＢ２３と、入出力部（制御対象装置）２４と、カウンタ生成部２５と、を含んで構成される。制御装置２０は、制御モニタリングシステム１の制御装置と比較して、入出力部（モニタリング装置）２１においてモニタリング装置１０から送信されるフローシートにはカウンタブロックが埋め込まれていない点、及び、カウンタ生成部２５が実行エンジンに含まれる点が相違する。
【００６３】
制御モニタリングシステム２では、制御装置２０において処理を実行するフローシートのフロー型プログラムにカウンタブロックを埋め込むのは制御装置２０のカウンタ生成部２５であり、カウンタ生成部２５がカウンタ生成手段として機能する。カウンタ生成部２５におけるカウンタブロックの埋め込み方法については、制御モニタリングシステム１と同様である。
【００６４】
制御モニタリングシステム２のモニタリング装置１０では、制御装置２０においてカウンタブロックが埋め込まれたフローシートに係るカウント情報（サイクル実行回数及び各カウンタブロックを実行した最新サイクルを特定する値）を受信してモニタ結果として表示する必要がある。したがって、モニタ結果を出力する際には、フローシートにおいてカウンタブロックを埋め込んだ位置を特定する必要がある。したがって、モニタリング装置１０においてもカウンタブロックを埋め込んだフローシートを準備する必要がある。そのため、カウンタ生成部１３がカウンタブロックの埋め込みに係る処理を実行する。この際、カウンタブロックの埋め込みに係るルール（例えば、どういう経路の上にカウンタブロックを配置するか、及び、ＩＤをどの順に割り振るか）はモニタリング装置１０と制御装置２０との間で共通しておく必要がある。
【００６５】
上記の制御モニタリングシステム２におけるモニタリング方法について、図９に示すシーケンス図を参照しながら説明する。図９に示すように、まず、モニタリング装置１０から制御装置２０に対してフローを指定した状態でフローシートの実行を要求すると共にモニタリングの要求が行われる（Ｓ２１）。このときに、ユーザがモニタリング装置１０を操作することにより、フローＤＢ１２において保持されているフローシートの中から選択する構成としてもよいし、新たに作成した又は外部から送信したフローシートであってもよい。また、フローシートを特定する情報を制御装置２０に対して送信する構成としてもよい。
【００６６】
制御装置２０では、入出力部（モニタリング装置）２１においてモニタ要求を受信すると、モニタリング対象のフローシートを選択する（Ｓ２２）。なお、モニタリング装置１０からフローシートが送信された場合には、それをモニタリング対象のフローシートとして選択する。また、フローシートを特定する情報を受信した場合には、フローＤＢ２３において保持されているフローシートの中から対応するフローシートを選択する構成としてもよい。
【００６７】
次に、制御装置２０のカウンタ生成部２５では、選択されたフローシートに対してカウンタブロックを埋め込む（Ｓ２３）。このとき、図３に示すように、フローシートに対してＦＰＰブロックを埋め込む。
【００６８】
次に、カウンタブロックが埋め込まれたフローシートを用いて、フロー実行部２２において、当該フローシートを解釈して、フローシートに示す処理を繰り返し実行する（Ｓ２４）。このとき、サイクル実行回数と、各ＦＰＰブロックを実行した最新サイクルを特定する値とを示すテーブル（図４参照）で、それぞれの値を記録する。そして、サイクル終了毎にカウント情報、すなわちテーブルに記載された数値を入出力部（モニタリング装置）２１からモニタリング装置１０に対して送信する（Ｓ２５）。制御装置２０において、フロー実行とカウント情報の送信とは並行して行われる。
【００６９】
一方、モニタリング装置１０では、制御装置２０からのカウント情報を受信する前に、カウンタ生成部１３において、指定したフローシートに対してカウンタブロックの埋め込みを行う（Ｓ２６）。その後、制御装置２０からのカウント情報を受信すると、モニタ結果出力部１４において、モニタ結果として出力する（Ｓ２７）。モニタ結果の出力は、モニタ結果の受信の度に行われるので、フロー実行の１サイクル毎にカウント情報が送信される構成である場合、モニタ結果の出力もフロー実行の１サイクル毎に行われる。すなわち、フロー実行（Ｓ２４）、カウント情報の送信（Ｓ２５）及びモニタ結果出力（Ｓ２７）は、制御装置２０におけるフローシートに係る処理の実行の１サイクル毎に繰り返される。これにより、モニタリング装置１０では、１サイクル毎に最新サイクルの実行結果をモニタリングすることができる。
【００７０】
以上のように、カウンタブロックの埋め込みを行うカウンタ生成部２５が制御装置２０側に設けられている制御モニタリングシステム２においても、フローシートを構成するフロー型プログラムにおける処理の実行をモニタリングすることが可能となる。
【００７１】
なお、制御モニタリングシステム２において、カウンタブロックを埋め込んだフローシートが制御装置２０から送信される構成としてもよい。例えば、制御装置２０がカウンタ生成部２５においてカウンタブロックの埋め込みを行った後にフローシートを実行する際に、制御装置２０は、カウンタブロック埋め込み後のフローシートをモニタリング装置１０に対して送信する構成とする。この場合、モニタリング装置１０は、制御装置２０からカウンタブロック埋め込み後のフローシートを受信してモニタ結果の出力に利用するような構成としてもよい。このような場合には、モニタリング装置１０がカウンタ生成部１３を備えている必要はない。このように、制御装置２０側でカウンタブロックの埋め込みを行う場合、カウント情報（サイクル実行回数及び各カウンタブロックを実行した最新サイクルを特定する値）をモニタリング装置１０が受信することにより、モニタ結果を出力可能な構成であれば、その構成は適宜変更することができる。
【００７２】
以上、本発明の実施形態に係る制御モニタリングシステムについて説明したが、上述した実施形態は本発明の一例を示すものである。本発明に係る制御モニタリングシステムは、上記実施形態に限られるものではなく、各請求項に記載した要旨を変更しない範囲で変形し、又は他のものに適用したものであってもよい。
【００７３】
例えば、モニタリング装置１０及び制御装置２０は、上記実施形態で説明したようにそれぞれ１台の装置によって実現されていてもよいし、複数台の装置の組み合わせによって実現されていてもよい。
【００７４】
また、上記実施形態では、制御装置２０において実行される制御に係る一連のサイクルをフローシートにまとめた構成としているが、サイクル毎の処理をフローシートに個別にまとめる構成には限定されない。
【符号の説明】
【００７５】
１、２  制御モニタリングシステム
１０  モニタリング装置
１１  通信部
１２  フローＤＢ
１３  カウンタ生成部
１４  モニタ結果出力部
２０  制御装置
２１  入出力部（モニタリング装置）
２２  フロー実行部
２３  フローＤＢ
２４  入出力部（制御対象装置）
２５  カウンタ生成部
３０  制御対象装置
【図１】
0006620433.tif 000002
【図２】
0006620433.tif 000003
【図３】
0006620433.tif 000004
【図４】
0006620433.tif 000005
【図５】
0006620433.tif 000006
【図６】
0006620433.tif 000007
【図７】
0006620433.tif 000008
【図８】
0006620433.tif 000009
【図９】
0006620433.tif 000010