(57)【要約】【課題】アプリケーション実行機能とデータ収集機能を好適に発揮させることができる制御装置、制御方法及び制御プログラムを提供する。【解決手段】アプリケーション実行部（５１）は、制御対象装置（２０）に関連するアプリケーションを実行する。データ収集部（５４）は、制御対象装置（２０）に関連するデータを収集する。データ収集部（５４）は、各タクト周期に含まれる共通の制御帯域を利用して、アプリケーション実行部（５１）によるアプリケーションの実行前後の少なくとも一方のタイミングで、データの収集を実行する。【選択図】図４
2018180846.tif 000002
【特許請求の範囲】
【請求項１】
制御対象装置に関連するアプリケーションを実行するアプリケーション実行部と、
前記制御対象装置に関連するデータを収集するデータ収集部と、
を有し、
前記データ収集部は、各タクト周期に含まれる共通の制御帯域を利用して、前記アプリケーション実行部による前記アプリケーションの実行前後の少なくとも一方のタイミングで、前記データの収集を実行する、
ことを特徴とする制御装置。
【請求項２】
前記アプリケーションのタスクエンドを検出するタスクエンド検出部をさらに有し、
前記データ収集部は、前記各タクト周期に含まれる前記共通の制御帯域を利用して、前記タスクエンド検出部による前記タスクエンドの検出後に、前記データの収集を実行することを特徴とする請求項１に記載の制御装置。
【請求項３】
前記アプリケーションのタスクスタートを検出するタスクスタート検出部をさらに有し、
前記データ収集部は、前記各タクト周期に含まれる前記共通の制御帯域を利用して、前記タスクスタート検出部による前記タスクスタートの検出後に、前記データの収集を実行することを特徴とする請求項１または請求項２に記載の制御装置。
【請求項４】
前記アプリケーションのプログラムエンドを検出するプログラムエンド検出部をさらに有し、
前記データ収集部は、前記各タクト周期に含まれる前記共通の制御帯域を利用して、前記プログラムエンド検出部による前記プログラムエンドの検出後に、前記データの収集を実行することを特徴とする請求項１に記載の制御装置。
【請求項５】
前記アプリケーションのプログラムスタートを検出するプログラムスタート検出部をさらに有し、
前記データ収集部は、前記各タクト周期に含まれる前記共通の制御帯域を利用して、前記プログラムスタート検出部による前記プログラムスタートの検出後に、前記データの収集を実行することを特徴とする請求項１または請求項４に記載の制御装置。
【請求項６】
前記データ収集部は、前記各タクト周期に含まれる前記共通の制御帯域とは別の制御帯域を利用して、プログラム毎に更新されずタスク毎に更新される第２のデータを収集することを特徴とする請求項１から請求項５のいずれかに記載の制御装置。
【請求項７】
前記アプリケーション実行部による前記アプリケーションの実行を維持したままで、前記データ収集部による前記データの収集に関連するパラメータの設定／変更を行うパラメータ設定／変更部をさらに有することを特徴とする請求項１から請求項６のいずれかに記載の制御装置。
【請求項８】
前記パラメータ設定／変更部は、前記各タクト周期に含まれる前記共通の制御帯域とは別の制御帯域を利用して、前記データ収集部による前記データの収集に関連するパラメータの設定／変更を行うことを特徴とする請求項７に記載の制御装置。
【請求項９】
前記データ収集部が収集した前記データにタイムスタンプを付加して蓄積するデータ蓄積部と、前記データ蓄積部による蓄積データを１または２以上のタクト周期毎に上位機器に送信するデータ送信部とをさらに有することを特徴とする請求項１から請求項８のいずれかに記載の制御装置。
【請求項１０】
前記データ送信部は、前記データ蓄積部による前記蓄積データを一定量毎または一定時間毎に前記上位機器に送信することを特徴とする請求項９に記載の制御装置。
【請求項１１】
前記データ送信部は、前記各タクト周期に含まれる前記共通の制御帯域とは別の制御帯域を利用して、前記データ蓄積部による前記蓄積データを前記上位機器に送信することを特徴とする請求項９または請求項１０に記載の制御装置。
【請求項１２】
制御対象装置を制御する制御方法であって、
前記制御対象装置に関連するアプリケーションを実行するアプリケーション実行ステップと、
前記制御対象装置に関連するデータを収集するデータ収集ステップと、
を有し、
前記データ収集ステップでは、各タクト周期に含まれる共通の制御帯域を利用して、前記アプリケーションステップによる前記アプリケーションの実行前後の少なくとも一方のタイミングで、前記データの収集を実行する、
ことを特徴とする制御方法。
【請求項１３】
制御対象装置を制御するための制御プログラムであって、
前記制御対象装置に関連するアプリケーションを実行するアプリケーション実行ステップと、
前記制御対象装置に関連するデータを収集するデータ収集ステップと、
をコンピュータに実行させ、
前記データ収集ステップでは、各タクト周期に含まれる共通の制御帯域を利用して、前記アプリケーションステップによる前記アプリケーションの実行前後の少なくとも一方のタイミングで、前記データの収集を実行する、
ことを特徴とする制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置、制御方法及び制御プログラムに関する。
【背景技術】
【０００２】
従来、制御対象装置（例えば複数のプラント）を制御する制御装置が知られている。例えば、特許文献１には、通信ネットワークにより複数のプラントに接続されたイベント記録表示装置が開示されている。このイベント記録表示装置は、複数のプラントで発生した全てのイベントをメッセージデータとして表示あるいは再現し、複数のプラントで発生する様々な事象の解析を可能としている。
【０００３】
このような制御装置は、制御対象装置に関連するアプリケーションを実行するアプリケーション実行機能と、制御対象装置に関連するデータを収集するデータ収集機能とを有している。アプリケーション実行機能とデータ収集機能は、各タクト周期に含まれる別々の制御帯域（例えばアプリケーション帯域とシステム帯域）にそれぞれ割り当てられて実行される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−２５１７７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来の制御装置は、アプリケーション帯域で実行したアプリケーションデータを検証することなく、システム帯域で一律にデータ収集して、リアルタイムで上位機器にデータ送信していた。このため、対象データが多い場合、データ収集やデータ送信に掛かる負荷や時間が増大して、データの欠落等のエラーが発生しやすくなってしまう。また、データの収集密度（全収集データに占める有効データの割合）が低くなり、データの不具合や品質向上に必要なデータの変化を見逃すおそれが高くなってしまう。また、タクト周期毎にデータが送信されるため、データの受信タイミングや収集データの変化に基づいて有効なデータを判定しなければならず、解析の負荷や時間が増大してしまう。
【０００６】
さらに、従来の制御装置は、アプリケーション実行機能とデータ収集機能が同一（共通）の機能構成要素により実現されている。このため、例えば、データ収集機能に関連するパラメータの設定／変更を行う際には、制御対象装置を含むシステム全体を停止しなければならない。また、例えば、アプリケーション実行機能の設定／変更を行う際には、製作、デバッグ、試験の工数が増大してしまう。
【０００７】
本発明はかかる点に鑑みてなされたものであり、アプリケーション実行機能とデータ収集機能を好適に発揮させることができる制御装置、制御方法及び制御プログラムを提供することを目的の１つとする。
【課題を解決するための手段】
【０００８】
本実施形態の制御装置は、その一態様では、制御対象装置に関連するアプリケーションを実行するアプリケーション実行部と、前記制御対象装置に関連するデータを収集するデータ収集部と、を有し、前記データ収集部は、各タクト周期に含まれる共通の制御帯域を利用して、前記アプリケーション実行部による前記アプリケーションの実行前後の少なくとも一方のタイミングで、前記データの収集を実行する、ことを特徴としている。
【０００９】
本実施形態の制御方法は、その一態様では、制御対象装置を制御する制御方法であって、前記制御対象装置に関連するアプリケーションを実行するアプリケーション実行ステップと、前記制御対象装置に関連するデータを収集するデータ収集ステップと、を有し、前記データ収集ステップでは、各タクト周期に含まれる共通の制御帯域を利用して、前記アプリケーションステップによる前記アプリケーションの実行前後の少なくとも一方のタイミングで、前記データの収集を実行する、ことを特徴としている。
【００１０】
本実施形態の制御プログラムは、その一態様では、制御対象装置を制御するための制御プログラムであって、前記制御対象装置に関連するアプリケーションを実行するアプリケーション実行ステップと、前記制御対象装置に関連するデータを収集するデータ収集ステップと、をコンピュータに実行させ、前記データ収集ステップでは、各タクト周期に含まれる共通の制御帯域を利用して、前記アプリケーションステップによる前記アプリケーションの実行前後の少なくとも一方のタイミングで、前記データの収集を実行する、ことを特徴としている。
【発明の効果】
【００１１】
本発明によれば、アプリケーション実行機能とデータ収集機能を好適に発揮させることができる制御装置、制御方法及び制御プログラムを提供することができる。
【図面の簡単な説明】
【００１２】
【図１】第１実施形態による制御システムとプラント群と支援ツールの構成を示すブロック図である。
【図２】第１実施形態によるプロセッサモジュール（制御装置）と支援ツールの内部構成を示す機能ブロック図である。
【図３】データ収集パラメータのフォーマット（設定ファイル形式）の一例を示す図である。
【図４】第１実施形態によるプロセッサモジュール（制御装置）の処理を示すタイミングチャートである。
【図５】データ蓄積部による蓄積データの一例を示す図である。
【図６】データ送信部がデータ蓄積部による蓄積データを送信するための送信パラメータの一例を示す図である。
【図７】第２実施形態によるプロセッサモジュール（制御装置）と支援ツールの内部構成を示す機能ブロック図である。
【図８】第２実施形態によるプロセッサモジュール（制御装置）の処理を示すタイミングチャートである。
【図９】第４実施形態によるプロセッサモジュール（制御装置）と支援ツールの内部構成を示す機能ブロック図である。
【図１０】第４実施形態によるプロセッサモジュール（制御装置）の処理を示すタイミングチャートである。
【図１１】図１１Ａはデータ収集変数値とデータ収集値の条件の一例を示す図であり、図１１Ｂはタクト１〜５毎のデータ収集値の一例を示す図である。
【図１２】図１１Ａと図１１Ｂの条件下における収集データの一例を示す図である。
【図１３】第５実施形態によるプロセッサモジュール（制御装置）と支援ツールの内部構成を示す機能ブロック図である。
【図１４】第５実施形態によるプロセッサモジュール（制御装置）の処理を示すタイミングチャートである。
【図１５】比較例のプロセッサモジュール（制御装置）の処理を示すタイミングチャートである。
【図１６】比較例のデータ蓄積部による蓄積データの一例を示す図である。
【発明を実施するための形態】
【００１３】
≪第１実施形態≫
図１〜図６を参照して、第１実施形態による制御装置、制御方法及び制御プログラムについて詳細に説明する。第１実施形態による制御方法及び制御プログラムは、制御装置の内部コンピュータに各種の処理ステップを実行させることにより実現される。
【００１４】
図１に示すように、第１実施形態による制御システム１０は、制御対象装置であるプラント群２０に接続されており、当該プラント群２０を構成する第１プラント２１、第２プラント２２、第３プラント２３、第４プラント２４を制御する。また、制御システム１０は、通信ケーブル３０を介して、プラント群２０の制御を支援するための支援ツール（エンジニアリングツール、上位機器）４０に接続されている。なお、プラント群を構成するプラントの数は４つに限定されず、種々の設計変更が可能である。
【００１５】
制御システム１０は、プラント群２０（第１プラント２１〜第４プラント２４）との間で各種のデータや入出力信号を伝送するためのＩＯモジュール１１Ａ〜１１Ｇと通信モジュール１２を有している。図１中の上段のＩＯモジュール１１Ａ〜１１Ｂと通信モジュール１２は、電源１３を介して、プロセッサモジュール（制御装置）５０に接続されている。図１中の下段のＩＯモジュール１１Ｃ〜１１Ｇは、電源１４とバスケーブル１５を介して、プロセッサモジュール５０に接続されている。
【００１６】
プラント群２０（第１プラント２１〜第４プラント２４）に必要なアプリケーションは、支援ツール４０で作成され、通信ケーブル３０を介して、プロセッサモジュール５０にダウンロードされる。プロセッサモジュール５０は、ダウンロードしたアプリケーションに基づいて、ＩＯモジュール１１Ａ〜１１Ｇと通信モジュール１２を介して、プラント群２０との間で各種のデータや入出力信号を伝送する。
【００１７】
図２に示すように、支援ツール４０は、アプリケーション作成部４１と、収集データ設定／変更部（パラメータ設定／変更部）４２と、データ出力部４３とを有している。
【００１８】
アプリケーション作成部４１は、プラント群２０（第１プラント２１〜第４プラント２４）に関連するアプリケーションを作成する。このアプリケーションは、例えば、プロセッサモジュール５０で取り扱うＩＯデータや演算データ等の制御演算データを含むことができる。アプリケーション作成部４１が作成したアプリケーションは、通信ケーブル３０を介して、プロセッサモジュール５０（後述するアプリケーション実行部５１）にダウンロードされる。
【００１９】
収集データ設定／変更部４２は、プラント群２０（第１プラント２１〜第４プラント２４）に関連するデータを収集するためのパラメータの設定／変更についての入力操作を受ける。収集データ設定／変更部４２には、第１プラント２１〜第４プラント２４に関するデータ収集パラメータが個別に入力される。このデータ収集パラメータによれば、例えば、第１プラント２１〜第４プラント２４から収集するデータの範囲や粗密をプラント毎に設定／変更することが可能になる。収集データ設定／変更部４２によるデータ収集パラメータは、通信ケーブル３０を介して、プロセッサモジュール５０（後述するデータ収集パラメータ保持部５２）にダウンロードされる。
【００２０】
図３は、データ収集パラメータのフォーマット（設定ファイル形式）の一例を示している。図３では、データ収集パラメータとして、Ｎｏ．（１、２、３）、プラント名（Ｘ、Ｙ、Ｚ）、変数（Ａ００、Ｂ１０、Ｃ２０）及びタスク（０、１、２）が含まれている。タスク０は、データ収集の“優先度高”を意味しており、タスク１は、データ収集の“優先度中”を意味しており、タスク２は、データ収集の“優先度低”を意味している。
【００２１】
データ出力部４３は、通信ケーブル３０を介してプロセッサモジュール５０（後述するデータ送信部５７）から送信されてきた収集データ（タイムスタンプが付加された蓄積データ）を受信して、当該データの表示や解析を行う。
【００２２】
図２に示すように、プロセッサモジュール５０は、アプリケーション実行部５１と、データ収集パラメータ保持部（パラメータ設定／変更部）５２と、タスクエンド検出部５３と、データ収集部５４と、タイムスタンプ付加部（計時部）５５と、データ蓄積部５６と、データ送信部５７とを有している。
【００２３】
アプリケーション実行部５１は、アプリケーション作成部４１からダウンロードしたプラント群２０（第１プラント２１〜第４プラント２４）に関連するアプリケーションを実行する。
【００２４】
データ収集パラメータ保持部５２は、収集データ設定／変更部４２からダウンロードしたデータ収集パラメータを保持する。このデータ収集パラメータは、データ収集部５４によるデータの収集に関連するパラメータであり、データ収集部５４によるデータの収集の態様を制御（設定／変更）するためのものである。
【００２５】
タスクエンド検出部５３は、アプリケーション実行部５１が実行するアプリケーションのタスクエンドを検出する。１つのタスクは、１つのプログラム又は複数のプログラムで構成されている。１つのタスクが１つのプログラムで構成されている場合、タスクとプログラムは等価な関係となり、タスクエンドとプログラムエンドは等価な関係となる。１つのタスクが複数のプログラムで構成されている場合、タスクとプログラムは等価な関係では無くなり、タスクエンドは、タスクを構成する最後のプログラムのプログラムエンドとなる。
【００２６】
データ収集部５４は、データ収集パラメータ保持部５２が保持するデータ収集パラメータを参照して（に従って）、プラント群２０（第１プラント２１〜第４プラント２４）に関連するデータを収集する。ここで、データ収集パラメータ保持部５２（データ収集パラメータ）を参照したデータ収集部５４によるデータの収集に関連するパラメータの設定／変更は、アプリケーション実行部５１によるアプリケーションの実行を維持したままで（アプリケーション実行部５１を変更することなく）行うことができる。
【００２７】
図４のタイミングチャートに示すように、プロセッサモジュール５０の処理は、複数のタクト周期（例えば１周期が１ｍｓ）に亘って実行される。各タクト周期は、アプリケーション帯域（各タクト周期に含まれる共通の制御帯域）と、システム帯域（各タクト周期に含まれる共通の制御帯域とは別の制御帯域）とに分割されている。アプリケーション実行部５１によるアプリケーションの実行は、優先度に応じてタスク０、１、２に割り当てられる（タスク０の優先度が最も高く、タスク２の優先度が最も低い）。例えば、最も優先度が高いタスク０に注目すると、全てのタクト周期のアプリケーション帯域において、アプリケーション実行部５１がアプリケーションを実行している。
【００２８】
図４のタイミングチャートに示すように、データ収集部５４は、各タクト周期に含まれる共通の制御帯域であるアプリケーション帯域を利用して、アプリケーション実行部５１によるアプリケーションの実行後のタイミングで、データの収集を実行している。より具体的に、データ収集部５４は、各タクト周期に含まれる共通の制御帯域であるアプリケーション帯域を利用して、タスクエンド検出部５３によるタスクエンドの検出後に、データの収集を実行している。すなわち、アプリケーション実行処理とデータ収集処理がデータ出力処理を挟んだ１つの塊となって実行されている。
【００２９】
ここで、データ収集部５４が収集するデータは、アプリケーション実行前の入力データと、アプリケーション実行後の演算データとを含むことができる。例えば、１つのタスクが複数のプログラムで構成されている場合、入力データは、アプリケーション実行（演算）に用いる各種パラメータの他、前回以前のプログラム（タスクを構成する最後より前のプログラム）に係るアプリケーション実行後の演算データを含んでいる。また、演算データは、今回のプログラム（タスクを構成する最後のプログラム）に係るアプリケーション実行後の演算データを含んでいる。例えば、タスクエンド検出部５３によるタスクエンドの検出後に入力データと演算データを一括して収集することにより、入力データと演算データを比較して、アプリケーション実行（演算）を高精度に検証することが可能になる。
【００３０】
タイムスタンプ付加部５５は、データ収集部５４が収集したデータに時刻情報であるタイムスタンプを付加する。タイムスタンプ付加部５５が付加するタイムスタンプは、例えば、μｓ単位とすることができる。
【００３１】
データ蓄積部５６は、タイムスタンプ付加部５５によりタイムスタンプが付加された収集データを蓄積する。また、データ蓄積部５６による蓄積データには、タイムスタンプの他にも、タスク番号や指定した変数などが付加されている。図５は、データ蓄積部５６による蓄積データの一例を示している。
【００３２】
データ送信部５７は、データ蓄積部５６による蓄積データを、１または２以上のタクト周期毎に、通信ケーブル３０を介して、上位機器である支援ツール４０に送信する。図６は、データ送信部５７がデータ蓄積部５６による蓄積データを送信するための送信パラメータの一例を示している。図６では、送信パラメータとして、Ｎｏ．（１、２、３、４、５、６）データ種別（送信プロトコル、フレーム長、送信間隔、宛先ＩＰ番号、宛先ポート番号、自局ポート番号）、設定値（ＵＤＰ／ＩＰ、８ｋｂｙｔｅ、５ｍｓ、１９２．１６８．１．１１、５１０００、５０００１）が含まれている。
【００３３】
図４のタイミングチャートに示すように、データ送信部５７は、各タクト周期に含まれる共通の制御帯域（アプリケーション帯域）とは別の制御帯域であるシステム帯域を利用して、データ蓄積部５６による蓄積データを支援ツール４０に送信する。しかも、データ送信部５７は、全てのタクト周期のシステム帯域で蓄積データを送信するのではなく、隣接する５つのタクト周期のうちの１つのタクト周期のシステム帯域でのみ、蓄積データを送信している。つまり、データ送信部５７は、データ蓄積部５６による蓄積データを一定時間毎に支援ツール４０に送信している。あるいは、データ送信部５７は、データ蓄積部５６に蓄積したデータの容量をモニタリングし、蓄積データの容量が一定量に到達したタイミングで、当該蓄積データを支援ツール４０に送信してもよい。このように、蓄積データを、毎タクト周期ではなく、複数のタクト周期を跨いだ一定量毎または一定時間毎に送信することで、蓄積データの転送効率を向上させることができる。
【００３４】
さらに、データ収集パラメータ保持部５２（データ収集パラメータ）を参照したデータ収集部５４によるデータの収集に関連するパラメータの設定／変更も、各タクト周期に含まれる共通の制御帯域（アプリケーション帯域）とは別の制御帯域であるシステム帯域を利用して行われる。ここで、システム帯域で、蓄積データの送信とデータ収集パラメータの設定／変更が衝突しないように、これらを時間的にずらして実行することが好ましい。
【００３５】
このように、第１実施形態による制御装置、制御方法及び制御プログラムでは、データ収集部５４が、各タクト周期に含まれる共通の制御帯域であるアプリケーション帯域を利用して、アプリケーション実行部５１によるアプリケーションの実行後のタイミングで、データの収集を実行する。これにより、収集データの信頼性が大幅に向上するので（収集データが有効データだけで無効データが含まれることがないので）、データ収集やデータ送信に掛かる負荷や時間を減少して、データの欠落等のエラーを防止することができる。また、データの不具合や品質向上に必要なデータの変化を見逃すことがなく、解析の負荷や時間を大幅に短縮することが可能になる。また、アプリケーション実行直後のアプリケーション帯域でデータ収集処理を実行するので、アプリケーションの実行とデータ収集処理に殆ど時間差がなく、システム帯域でデータ収集処理を実行するよりも高精度な制御が可能になる。
【００３６】
第１実施形態では、アプリケーションの実行途中で意味のないデータ（破棄すべきデータ）を収集（取得）することなく、アプリケーションのタスクエンドを検出して、当該アプリケーションの実行終了後のデータのみを収集（取得）している。アプリケーションのタスクエンドは、プログラムの実行管理を行っているため、容易に検出が可能である。
【００３７】
また、上述したように、アプリケーション帯域にアプリケーションの実行とデータの収集を割り当てる一方、システム帯域に、蓄積データの送信とデータ収集パラメータの設定／変更を割り当てている。これにより、アプリケーションの実行とデータの収集に影響を与えることなく、システムの運転を維持することが可能になる。
【００３８】
さらに、既存システムのアプリケーションを変更することなく、制御システムを使用しているプラント等の品質向上や不具合解析に必要なデータを指定できるので、データ収集するアプリケーションの製作・検証が不要になる。加えて、制御システム運転中にデータの設定／変更を反映することが可能なため、原因究明の迅速化と早期解決を図ることができる。また、収集データにタスクエンドのタイムスタンプを付加するため、正確な処理タイミングが得られる。これにより、収集したデータは、リアルタイムに送信する必要がなく、データが蓄積した後にまとめて送信することができるので、送信処理の負荷を低減することが可能となる。
【００３９】
≪第２実施形態≫
図７、図８を参照して、第２実施形態による制御装置、制御方法及び制御プログラムについて詳細に説明する。第１実施形態との重複部分については、説明を省略する。
【００４０】
図７に示すように、第２実施形態のプロセッサモジュール５０は、第１実施形態のプロセッサモジュール５０（図２）において、タスクスタート検出部５８を追加したものである。タスクスタート検出部５８は、タスクエンド検出部５３と並列な形で、アプリケーション実行部５１とデータ収集部５４に接続されている。
【００４１】
タスクスタート検出部５８は、アプリケーション実行部５１が実行するアプリケーションのタスクスタートを検出する。１つのタスクが１つのプログラムで構成されている場合、タスクとプログラムは等価な関係となり、タスクスタートとプログラムスタートは等価な関係となる。１つのタスクが複数のプログラムで構成されている場合、タスクとプログラムは等価な関係では無くなり、タスクスタートは、タスクを構成する最初のプログラムのプログラムスタートとなる。
【００４２】
図８のタイミングチャートに示すように、データ収集部５４は、各タクト周期に含まれる共通の制御帯域であるアプリケーション帯域を利用して、アプリケーション実行部５１によるアプリケーションの実行前後のタイミングで、データの収集を実行している。より具体的に、データ収集部５４は、各タクト周期に含まれる共通の制御帯域であるアプリケーション帯域を利用して、タスクスタート検出部５８によるタスクスタートの検出後、及び、タスクエンド検出部５３によるタスクエンドの検出後に、データの収集を実行している。すなわち、アプリケーション実行処理とデータ出力処理のセットが前後のデータ収集処理によって挟まれている。
【００４３】
例えば、データ収集部５４は、タスクスタート検出部５８によるタスクスタートの検出後にアプリケーション実行前の入力データを収集し、且つ、タスクエンド検出部５３によるタスクエンドの検出後にアプリケーション実行後の演算データを収集することができる。このように、入力データと演算データの収集タイミングをタスクスタートの検出後とタスクエンドの検出後に分散させることで、アプリケーション帯域内におけるデータ収集処理の負荷を低減することが可能になる。
【００４４】
≪第３実施形態≫
図示は省略しているが、第３実施形態のプロセッサモジュール５０は、第２実施形態のプロセッサモジュール５０（図７）において、タスクスタート検出部５８を残しながら（機能させながら）、タスクエンド検出部５３を省略した（機能させないようにした）ものである。この場合、データ収集部５４は、各タクト周期に含まれる共通の制御帯域であるアプリケーション帯域を利用して、アプリケーション実行部５１によるアプリケーションの実行前のタイミングで、データの収集を実行する。より具体的に、データ収集部５４は、各タクト周期に含まれる共通の制御帯域であるアプリケーション帯域を利用して、タスクスタート検出部５８によるタスクスタートの検出後に、データの収集を実行している。例えば、データ収集部５４は、タスクスタート検出部５８によるタスクスタートの検出後に、アプリケーション実行前の入力データを収集することができる。
【００４５】
≪第４実施形態≫
図９〜図１２を参照して、第４実施形態による制御装置、制御方法及び制御プログラムについて詳細に説明する。第１実施形態〜第３実施形態との重複部分については、説明を省略する。
【００４６】
図９に示すように、第４実施形態のプロセッサモジュール５０は、第１実施形態のプロセッサモジュール５０（図２）において、タスクエンド検出部５３を省略して、その代わりに、プログラムエンド検出部５９を設けたものである。
【００４７】
プログラムエンド検出部５９は、アプリケーション実行部５１が実行するアプリケーションのプログラムエンドを検出する。すなわち、プログラムエンド検出部５９は、１つのタスクが１つのプログラムで構成されているか又は複数のプログラムで構成されているかにかかわらず、タスクを構成するプログラム毎のプログラムエンドを検出する。
【００４８】
図１０のタイミングチャートに示すように、データ収集部５４は、各タクト周期に含まれる共通の制御帯域であるアプリケーション帯域を利用して、アプリケーション実行部５１によるアプリケーションの実行後のタイミングで、データの収集を実行している。より具体的に、データ収集部５４は、各タクト周期に含まれる共通の制御帯域であるアプリケーション帯域を利用して、プログラムエンド検出部５９によるプログラムエンドの検出後に、データの収集を実行している。例えば、プログラムエンド検出部５９によるプログラムエンドの検出後に、入力データと演算データを一括して収集することにより、入力データと演算データを比較して、アプリケーション実行（演算）を高精度に検証することが可能になる。
【００４９】
図１０のタイミングチャートに示すように、プログラムＰ１〜Ｐ９は、優先度に応じたタスク０〜２に割り当てられて、プロセッサモジュール５０で実行される。ここでは、プログラムＰ１が最も優先度が高いタスク０に割り当てられ、プログラムＰ２〜Ｐ４が２番目に優先度が高いタスク１に割り当てられ、プログラムＰ５〜Ｐ９が最も優先度が低いタスク２に割り当てられている。
【００５０】
図１１Ａは、データ収集変数値とデータ収集値の条件の一例を示しており、図１１Ｂは、タクト１〜５毎のデータ収集値の一例を示している。タスク０のプログラムＰ１のデータ“Ａ００”は、タクト１のときに“１”、タクト２のときに“２”、タクト３のときに“３”、タクト４のときに“４”、タクト５のときに“５”となる。タスク１のプログラムＰ２で使用する変数“Ａ００”は、タスク０のプログラムＰ１の処理結果を出力する変数“Ａ００”を入力値として使う場合、次のようになる。すなわち、プログラムＰ２の実行時の“Ａ００”はタクト１の値となるので“１”となり、プログラムＰ２の変数“Ｂ０１”の値は“１０”となる。また、プログラムＰ２のデータ収集タイミングは、プログラムＰ２のプログラムエンドであるタクト１になるので、タスク１の“Ａ００”として収集する値は“１”となり、演算時のデータと同じとなる。また、タスク２のプログラムＰ５の処理はタクト２で実行しているが、プログラムエンドの検出タイミングとデータ収集タイミングもタクト２となるので、検出誤差が略ゼロとなる。
【００５１】
図１２は、図１１Ａと図１１Ｂの条件下における収集データの一例を示している。図１２では、例えば、タスク１とプログラムＰ２のように、プログラムエンドが訪れるタクト（タクト１）とタスクエンドが訪れるタクト（タクト２）が異なっている場合であっても、プログラムエンドに対応した正しい収集データを取得することができる。また、タスク２とプログラムＰ５のように、プログラムエンドが訪れるタクト（タクト２）とタスクエンドが訪れるタクト（タクト５）が異なっている場合であっても、プログラムエンドに対応した正しい収集データを取得することができる。また、プログラム単位毎にデータ収集を実行するので、共有メモリ等の他のプログラムにデータを書き換えられる可能性のあるデータについても、確実に、アプリケーション実行時の信頼性の高いデータを取得することができる。さらに、プロセッサモジュール５０で実行されるプログラム処理毎に時刻を取得するので、タスクエンドよりも実際のプログラム処理時刻に近い時刻検出が可能になる。その結果、時間精度が重要な処理についても、高精度な解析が可能になる。
【００５２】
例えば、図１１Ａ、図１１Ｂ、図１２において、グローバル変数等のプログラム間に関連して実行される変数については、プログラム検出タイミングで当該データがコピーされる。
【００５３】
プログラムの処理が中断しながら複数タクトに跨って実行される場合、収集データがプログラム実行時のものと異なってしまい、且つ／又は、プログラムの実行タイミングとタスクエンドの時刻検出タイミングに差異が生じてしまうおそれがある。また、タスクエンドが集中した場合、データ収集とデータ送信の処理負荷が大きくなり、データ収集とデータ送信が完了しないおそれがある。
【００５４】
この点を重要な技術課題として捉えて、第４実施形態では、プログラムエンド検出部５９が、アプリケーション実行部５１が実行するアプリケーションのプログラムエンドを検出し、データ収集部５４が、各タクト周期に含まれる共通の制御帯域であるアプリケーション帯域を利用して、プログラムエンド検出部５９によるプログラムエンドの検出後に、データの収集を実行している。これにより、各プログラムエンドにデータ収集の処理負荷を分散させて、上記技術課題を解決することを可能としている。
【００５５】
ところで、データ収集部５４による収集データは、プログラム毎に更新される「第１のデータ」と、プログラム毎に更新されずタスク毎に更新される「第２のデータ」とを含んでいる。「第１のデータ」は、上述した入力データと演算データを含んでおり、各タクト周期に含まれる共通の制御帯域であるアプリケーション帯域を利用して、データ収集部５４によって収集される。一方、「第２のデータ」は、ＩＯ入出力データやローカル変数を含んでおり、プログラム毎に収集することの技術的意義が「第１のデータ」よりも低い。そこで、データ収集部５４は、各タクト周期に含まれる共通の制御帯域（アプリケーション帯域）とは別の制御帯域であるシステム帯域を利用して、ＩＯ入出力データやローカル変数を含む「第２のデータ」を収集する。データ収集部５４は、毎タクト周期で「第２のデータ」を収集するのではなく、タスクエンドを検出したタクト周期でだけ、システム帯域を利用して「第２のデータ」を収集する。このように、データ収集部５４は、「第１のデータ」と「第２のデータ」のデータ種別に応じて、当該データをアプリケーション帯域とシステム帯域のいずれを利用して収集するかを切り替える。これにより、「第１のデータ」と「第２のデータ」のデータ収集処理の負荷を分散させることが可能になる。
【００５６】
なお、データ収集部５４は、第４実施形態のみならず、第１実施形態〜第３実施形態においても、システム帯域を利用して「第２のデータ」を収集してもよい。
【００５７】
≪第５実施形態≫
図１３、図１４を参照して、第５実施形態による制御装置、制御方法及び制御プログラムについて詳細に説明する。第４実施形態との重複部分については、説明を省略する。
【００５８】
図１３に示すように、第５実施形態のプロセッサモジュール５０は、第４実施形態のプロセッサモジュール５０（図９）において、プログラムスタート検出部６０を追加したものである。プログラムスタート検出部６０は、プログラムエンド検出部５９と並列な形で、アプリケーション実行部５１とデータ収集部５４に接続されている。
【００５９】
プログラムスタート検出部６０は、アプリケーション実行部５１が実行するアプリケーションのプログラムスタートを検出する。すなわち、プログラムスタート検出部６０は、１つのタスクが１つのプログラムで構成されているか又は複数のプログラムで構成されているかにかかわらず、タスクを構成するプログラム毎のプログラムスタートを検出する。
【００６０】
図１４のタイミングチャートに示すように、データ収集部５４は、各タクト周期に含まれる共通の制御帯域であるアプリケーション帯域を利用して、アプリケーション実行部５１によるアプリケーションの実行前後のタイミングで、データの収集を実行している。より具体的に、データ収集部５４は、各タクト周期に含まれる共通の制御帯域であるアプリケーション帯域を利用して、プログラムスタート検出部６０によるプログラムスタートの検出後、及び、プログラムエンド検出部５９によるプログラムエンドの検出後に、データの収集を実行している。
【００６１】
例えば、データ収集部５４は、プログラムスタート検出部６０によるプログラムスタートの検出後にアプリケーション実行前の入力データを収集し、且つ、プログラムエンド検出部５９によるプログラムエンドの検出後にアプリケーション実行後の演算データを収集することができる。このように、入力データと演算データの収集タイミングをプログラムスタートの検出後とプログラムエンドの検出後に分散させることで、アプリケーション帯域内におけるデータ収集処理の負荷を低減することが可能になる。
【００６２】
≪第６実施形態≫
図示は省略しているが、第６実施形態のプロセッサモジュール５０は、第５実施形態のプロセッサモジュール５０（図１３）において、プログラムスタート検出部６０を残しながら（機能させながら）、プログラムエンド検出部５９を省略した（機能させないようにした）ものである。この場合、データ収集部５４は、各タクト周期に含まれる共通の制御帯域であるアプリケーション帯域を利用して、アプリケーション実行部５１によるアプリケーションの実行前のタイミングで、データの収集を実行する。より具体的に、データ収集部５４は、各タクト周期に含まれる共通の制御帯域であるアプリケーション帯域を利用して、プログラムスタート検出部６０によるプログラムスタートの検出後に、データの収集を実行している。例えば、データ収集部５４は、プログラムスタート検出部６０によるプログラムスタートの検出後に、アプリケーション実行前の入力データを収集することができる。
【００６３】
≪第１実施形態〜第６実施形態の切替えについて≫
プロセッサモジュール５０は、タスクエンド検出部５３、タスクスタート検出部５８、プログラムエンド検出部５９及びプログラムスタート検出部６０の全てを有することができる。その上で、ユーザによるマニュアル設定や所定条件に基づく自動設定によって、上述したタスクエンド検出部５３、タスクスタート検出部５８、プログラムエンド検出部５９及びプログラムスタート検出部６０の少なくとも一部を機能させることで、第１実施形態〜第６実施形態の切替えを実行することができる。すなわち、データ収集部５４が、各タクト周期に含まれる共通の制御帯域であるアプリケーション帯域を利用して、アプリケーション実行部５１によるアプリケーションの実行前後の少なくとも一方のタイミング（タスクスタート若しくはタスクエンド又はプログラムスタート若しくはプログラムエンドの少なくともいずれかの検出タイミング）で、データの収集を実行することができる。
【００６４】
≪比較例≫
図１５は、比較例のプロセッサモジュール（制御装置）の処理を示すタイミングチャートである。図１６は、比較例のデータ蓄積部による蓄積データの一例を示す図である。図１５では、全てのタクト周期において、アプリケーション帯域を利用してアプリケーション実行処理を行い、且つ、システム帯域を利用してデータ収集処理とデータ送信処理を行っている。特に、システム帯域を利用したデータ収集処理とデータ送信処理は、優先度にかかわらず全てのタスク０、１、２で行っている。このため、アプリケーションを実行していなかったり、優先度が低かったり、アプリケーションの実行途中で意味のないデータ（破棄すべきデータ）等も一律かつ無作為に収集・送信してしまう。その結果、図１６に示すように、データ蓄積部による蓄積データには不要なものが多く、支援ツールの側で、時系列に収集・送信した全データに検索を掛けて有効なデータを取り出すという処理が必須となってしまう。
【００６５】
なお、本発明は上記実施の形態に限定されず、種々変更して実施することが可能である。上記実施の形態において、添付図面に図示されている構成要素の大きさや形状、機能などについては、これに限定されず、本発明の効果を発揮する範囲内で適宜変更することが可能である。その他、本発明の目的の範囲を逸脱しない限りにおいて適宜変更して実施することが可能である。
【００６６】
例えば、上記実施の形態では、アプリケーション帯域を共通の制御帯域として、アプリケーション実行処理とデータ収集処理を実行している（図４、図８、図１０、図１４参照）が、システム帯域を共通の制御帯域として、アプリケーション実行処理とデータ収集処理を実行することも可能である。
【産業上の利用可能性】
【００６７】
本発明の制御装置、制御方法及び制御プログラムは、例えば、複数のプラントに関連するＩＯデータや演算データ等の制御に適用して好適である。
【符号の説明】
【００６８】
１０  制御システム
１１Ａ〜１１Ｇ  ＩＯモジュール
１２  通信モジュール
１３  電源
１４  電源
１５  バスケーブル
２０  プラント群（制御対象装置）
２１  第１プラント（制御対象装置）
２２  第２プラント（制御対象装置）
２３  第３プラント（制御対象装置）
２４  第４プラント（制御対象装置）
３０  通信ケーブル
４０  支援ツール（エンジニアリングツール、上位機器）
４１  アプリケーション作成部
４２  収集データ設定／変更部（パラメータ設定／変更部）
４３  データ出力部
５０  プロセッサモジュール（制御装置）
５１  アプリケーション実行部
５２  データ収集パラメータ保持部（パラメータ設定／変更部）
５３  タスクエンド検出部
５４  データ収集部
５５  タイムスタンプ付加部（計時部）
５６  データ蓄積部
５７  データ送信部
５８  タスクスタート検出部
５９  プログラムエンド検出部
６０  プログラムスタート検出部
【図１】
2018180846.tif 000003
【図２】
2018180846.tif 000004
【図３】
2018180846.tif 000005
【図４】
2018180846.tif 000006
【図５】
2018180846.tif 000007
【図６】
2018180846.tif 000008
【図７】
2018180846.tif 000009
【図８】
2018180846.tif 000010
【図９】
2018180846.tif 000011
【図１０】
2018180846.tif 000012
【図１１】
2018180846.tif 000013
【図１２】
2018180846.tif 000014
【図１３】
2018180846.tif 000015
【図１４】
2018180846.tif 000016
【図１５】
2018180846.tif 000017
【図１６】
2018180846.tif 000018