(57)【要約】【課題】コンピューティングリソースとして複数の演算部を利用できる場合に効率的な処理を実現する。【解決手段】制御装置は、１または複数の処理が割り当てられた第１のタスクを第１の制御周期で周期実行するための第１の演算部と、１または複数の処理が割り当てられた第２のタスクを第１の制御周期より長い第２の制御周期で周期実行するための第２の演算部とを含む。第１のタスクには、第１の入力データを対象とする第１のデータ収集処理および対応する第１のデータ加工処理が割り当てられている。サポート装置を介した設定に応じて、第２の入力データを対象とする第２のデータ収集処理および対応する第２のデータ加工処理は、第１のタスクおよび第２のタスクのうちいずれかに割り当てられる。【選択図】図１
2020086481.tif 000002
【特許請求の範囲】
【請求項１】
制御対象を制御するための制御演算を実行する制御装置と、
前記制御装置で実行される制御演算の内容を設定するサポート装置とを備え、
前記制御装置は、１または複数の処理が割り当てられた第１のタスクを第１の制御周期で周期実行するための第１の演算部と、１または複数の処理が割り当てられた第２のタスクを前記第１の制御周期より長い第２の制御周期で周期実行するための第２の演算部とを備え、
前記制御演算は、前記制御装置で参照可能な入力データを収集するデータ収集処理と、当該収集された入力データを加工して新たなデータを生成するデータ加工処理とを含み、
前記第１のタスクには、第１の入力データを対象とする第１のデータ収集処理および対応する第１のデータ加工処理が割り当てられており、
前記サポート装置を介した設定に応じて、第２の入力データを対象とする第２のデータ収集処理および対応する第２のデータ加工処理は、前記第１のタスクおよび前記第２のタスクのうちいずれかに割り当てられる、制御システム。
【請求項２】
前記制御装置は、１または複数の処理が割り当てられた第３のタスクを状況に応じて実行するための第３の演算部をさらに備える、請求項１に記載の制御システム。
【請求項３】
前記第３のタスクには、前記第１のデータ加工処理および前記第２のデータ加工処理により生成されるデータを格納する処理が割り当てられている、請求項２に記載の制御システム。
【請求項４】
前記第３のタスクには、前記第１のデータ加工処理および前記第２のデータ加工処理により生成されるデータから所定の指標を算出する処理が割り当てられている、請求項２または３に記載の制御システム。
【請求項５】
前記データ加工処理は、前記データ収集処理により収集された複数の入力データから特徴量を算出する処理を含む、請求項１〜４のいずれか１項に記載の制御システム。
【請求項６】
前記データ加工処理は、前記データ収集処理により収集された入力データを対応する物理量に変換する処理を含む、請求項１〜５のいずれか１項に記載の制御システム。
【請求項７】
前記データ加工処理は、前記データ収集処理により収集された１または複数の入力データを所定フォーマットに成型する処理を含む、請求項１〜６のいずれか１項に記載の制御システム。
【請求項８】
前記サポート装置は、前記第２のデータ収集処理および前記第２のデータ加工処理が前記第１のタスクおよび前記第２のタスクのいずれにも割り当て可能な場合に、いずれのタスクに割り当てるかの設定を受け付ける、請求項１〜７のいずれか１項に記載の制御システム。
【請求項９】
前記サポート装置は、前記第２のデータ収集処理および前記第２のデータ加工処理の割り当て先タスクの変更を受け付ける、請求項８に記載の制御システム。
【請求項１０】
制御対象を制御するための制御演算を実行する制御装置であって、
１または複数の処理が割り当てられた第１のタスクを第１の制御周期で周期実行するための第１の演算部と、
１または複数の処理が割り当てられた第２のタスクを前記第１の制御周期より長い第２の制御周期で周期実行するための第２の演算部とを備え、
前記制御演算は、前記制御装置で参照可能な入力データを収集するデータ収集処理と、当該収集された入力データを加工して新たなデータを生成するデータ加工処理とを含み、
前記第１のタスクには、第１の入力データを対象とする第１のデータ収集処理および対応する第１のデータ加工処理が割り当てられており、
外部設定に応じて、第２の入力データを対象とする第２のデータ収集処理および対応する第２のデータ加工処理は、前記第１のタスクおよび前記第２のタスクのうちいずれかに割り当てられる、制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピューティングリソースを効率的に利用した入力データ処理を実現可能な制御装置および制御装置に関する。
【背景技術】
【０００２】
様々な生産現場において、機械や装置などに発生する異常を早期に検知して設備稼働率を向上させたいという要求が存在する。典型的な異常監視の方法としては、機械や装置からデータを収集するとともに、収集されたデータに基づいて、何らかの異常が生じているか否かを判定する。
【０００３】
このような異常監視処理は、上位装置がＰＬＣ（プログラマブルコントローラ）などの制御装置からデータを収集することで実現することもできるが、異常監視処理を制御装置に実装することで、より高速な異常判定が可能となる。
【０００４】
より具体的には、制御装置においては、特許第４７５２９８３号（特許文献１）に開示されるように、入出力プログラムおよび制御プログラムが繰り返し実行されることで、制御対象の制御に必要な処理が実現される。制御装置で異常監視処理を実行するにあたっては、異常監視処理に必要な命令を入出力プログラムおよび制御プログラムに含めることになる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第４７５２９８３号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１に開示されるような複数の制御プログラムを並列的に実行させる場合には、単一プロセッサ内の複数のコアを利用する、あるいは、複数のプロセッサを利用するといった構成も可能である。
【０００７】
しかしながら、複数のコアあるいは複数のプロセッサをコンピューティングリソースとして利用できる場合であっても、コンピューティングリソースを効率的に利用できていない処理も存在していた。
【０００８】
本発明の一つの目的は、コンピューティングリソースとして複数の演算部を利用できる場合に効率的な処理を実現することである。
【課題を解決するための手段】
【０００９】
本発明のある実施の形態に従う制御システムは、制御対象を制御するための制御演算を実行する制御装置と、制御装置で実行される制御演算の内容を設定するサポート装置とを含む。制御装置は、１または複数の処理が割り当てられた第１のタスクを第１の制御周期で周期実行するための第１の演算部と、１または複数の処理が割り当てられた第２のタスクを第１の制御周期より長い第２の制御周期で周期実行するための第２の演算部とを含む。制御演算は、制御装置で参照可能な入力データを収集するデータ収集処理と、当該収集された入力データを加工して新たなデータを生成するデータ加工処理とを含む。第１のタスクには、第１の入力データを対象とする第１のデータ収集処理および対応する第１のデータ加工処理が割り当てられている。サポート装置を介した設定に応じて、第２の入力データを対象とする第２のデータ収集処理および対応する第２のデータ加工処理は、第１のタスクおよび第２のタスクのうちいずれかに割り当てられる。
【００１０】
本実施の形態によれば、入力データについて要求される処理性能や入力データの属性などに応じて、第２の入力データを対象とする第２のデータ収集処理および対応する第２のデータ加工処理を、第１のタスクおよび第２のタスクのうちいずれかに割り当てることができるので、効率的な処理を実現できる。
【００１１】
制御装置は、１または複数の処理が割り当てられた第３のタスクを状況に応じて実行するための第３の演算部をさらに含んでいてもよい。この構成によれば、周期実行される第１のタスクおよび第２のタスクに加えて、状況に応じて効率的な処理を実行できる実行環境を提供できる。
【００１２】
第３のタスクには、第１のデータ加工処理および第２のデータ加工処理により生成されるデータを格納する処理が割り当てられていてもよい。この構成によれば、第１のデータ加工処理および第２のデータ加工処理により生成されるデータを適宜のタイミングで格納できるので、入力データを処理して格納するまでの一連の処理を効率化できる。
【００１３】
第３のタスクには、第１のデータ加工処理および第２のデータ加工処理により生成されるデータから所定の指標を算出する処理が割り当てられていてもよい。この構成によれば、異常検知処理などを実装した場合であっても、処理を効率化できる。
【００１４】
データ加工処理は、データ収集処理により収集された複数の入力データから特徴量を算出する処理を含んでいてもよい。この構成によれば、異常検知処理などを実装した場合であっても、処理を効率化できる。
【００１５】
データ加工処理は、データ収集処理により収集された入力データを対応する物理量に変換する処理を含んでいてもよい。この構成によれば、各種解析処理などにおいて、前処理などを不要として、効率的なデータ活用を実現できる。
【００１６】
データ加工処理は、データ収集処理により収集された１または複数の入力データを所定フォーマットに成型する処理を含んでいてもよい。この構成によれば、外部へのデータ送信などが必要な場合であっても、効率的な処理を実現できる。
【００１７】
サポート装置は、第２のデータ収集処理および第２のデータ加工処理が第１のタスクおよび第２のタスクのいずれにも割り当て可能な場合に、いずれのタスクに割り当てるかの設定を受け付けるようにしてもよい。この構成によれば、ユーザに対して、対象のデータ収集処理およびデータ加工処理を第１のタスクおよび第２のタスクのうち、適切なタスクへの割り当てを支援できる。
【００１８】
サポート装置は、第２のデータ収集処理および第２のデータ加工処理の割り当て先タスクの変更を受け付けるようにしてもよい。この構成によれば、データ収集処理およびデータ加工処理を先に割り当てた先のタスクが適切ではないと事後的に判断された場合であっても、より適切なタスクへ容易に割り当て変更できる。
【００１９】
本発明の別の実施の形態に従えば制御対象を制御するための制御演算を実行する制御装置が提供される。制御装置は、１または複数の処理が割り当てられた第１のタスクを第１の制御周期で周期実行するための第１の演算部と、１または複数の処理が割り当てられた第２のタスクを第１の制御周期より長い第２の制御周期で周期実行するための第２の演算部とを含む。制御演算は、制御装置で参照可能な入力データを収集するデータ収集処理と、当該収集された入力データを加工して新たなデータを生成するデータ加工処理とを含む。第１のタスクには、第１の入力データを対象とする第１のデータ収集処理および対応する第１のデータ加工処理が割り当てられている。外部設定に応じて、第２の入力データを対象とする第２のデータ収集処理および対応する第２のデータ加工処理は、第１のタスクおよび第２のタスクのうちいずれかに割り当てられる。
【００２０】
本実施の形態によれば、入力データについて要求される処理性能や入力データの属性などに応じて、第２の入力データを対象とする第２のデータ収集処理および対応する第２のデータ加工処理を、第１のタスクおよび第２のタスクのうちいずれかに割り当てることができるので、効率的な処理を実現できる。
【発明の効果】
【００２１】
本発明によれば、コンピューティングリソースとして複数の演算部を利用できる場合に効率的な処理を実現できる。
【図面の簡単な説明】
【００２２】
【図１】本実施の形態に従う制御システムの主要な処理を説明するための図である。
【図２】本実施の形態に従う制御システムの全体構成例を示す模式図である。
【図３】本実施の形態に従う制御システムを構成する制御装置のハードウェア構成例を示すブロック図である。
【図４】本実施の形態に従う制御システムを構成するサポート装置のハードウェア構成例を示すブロック図である。
【図５】本実施の形態に従う制御システムにおける異常監視処理を実現するための機能ブロック図である。
【図６】本実施の形態に従う制御システムを構成する制御装置におけるプログラムの周期実行の一例を示す模式図である。
【図７】本実施の形態に従う制御システムを構成する制御装置における異常監視処理に係る実装例を示す模式図である。
【図８】本実施の形態に従う制御システムを構成する制御装置における異常監視処理に係る別の実装例を示す模式図である。
【図９】本実施の形態に従う制御システムを構成する制御装置における異常監視処理に係るさらに別の実装例を示す模式図である。
【図１０】図８に示す異常監視処理の実装例に対応するデータ処理を説明するための模式図である。
【図１１】図９に示す異常監視処理の実装例に対応するデータ処理を説明するための模式図である。
【図１２】本実施の形態に従う制御システムを構成するサポート装置が提供するユーザインターフェイス画面の一例を示す図である。
【図１３】図１２のユーザインターフェイス画面の周期設定ボタンが選択された場合のユーザインターフェイス画面の一例を示す図である。
【図１４】図１２のユーザインターフェイス画面の反映ボタンが選択された場合のユーザインターフェイス画面の一例を示す図である。
【発明を実施するための形態】
【００２３】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
【００２４】
＜Ａ．適用例＞
本実施の形態においては、典型例として、任意の監視対象に何らかの異常が発生しているか否かを判定する異常監視処理に適用した場合の処理について説明するが、これに限ることなく、任意の処理に適用可能である。
【００２５】
図１は、本実施の形態に従う制御システム１の主要な処理を説明するための図である。図１を参照して、制御システム１を構成する制御装置１００は、制御対象を制御するための制御演算として、１または複数の処理を「タスク」という単位で実行する。
【００２６】
本明細書において、「タスク」は、制御演算の実行単位であり、１または複数の処理が割り当てられる。図１には、プライマリ周期７１（第１の制御周期）で周期実行されるプライマリ定周期タスク７０と、定周期８１（第２の制御周期）で周期実行される定周期タスク８０とを示す。
【００２７】
制御装置１００は、後述するように複数のコアを有するプロセッサを有しており、当該プロセッサの１つのコア（第１の演算部）でプライマリ定周期タスク７０が周期実行され、当該プロセッサの別のコア（第２の演算部）で定周期タスク８０が周期実行される。プライマリ定周期タスク７０および定周期タスク８０には、それぞれ１または複数の処理が割り当てられる。
【００２８】
一例として、プライマリ定周期タスク７０は、Ｉ／Ｏリフレッシュ処理７２、ユーザプログラム実行処理７４、およびモーション制御処理７６を含む。同様に、定周期タスク８０は、Ｉ／Ｏリフレッシュ処理８２、ユーザプログラム実行処理８４、およびモーション制御処理８６を含む。実行周期が異なる点を除いて、Ｉ／Ｏリフレッシュ処理８２、ユーザプログラム実行処理８４、およびモーション制御処理８６の処理内容は、Ｉ／Ｏリフレッシュ処理７２、ユーザプログラム実行処理７４、およびモーション制御処理７６の処理内容と同様である。
【００２９】
制御装置１００で実行される制御演算は、制御装置１００で参照可能な入力データを収集するデータ収集処理１６２と、当該収集された入力データを加工して新たなデータを生成するデータ加工処理とを含む。
【００３０】
本明細書において、「入力データ」は、後述するようなフィールド装置群１０にて取得され、制御装置１００へ転送される制御対象から取得されるデータに加えて、制御装置１００で実行される制御演算において参照可能な任意の状態値、内部状態値およびシステム状態値などを包含する用語である。
【００３１】
データ加工処理の一例として、以下の説明においては、データ収集処理１６２により収集された複数の入力データから特徴量を算出する特徴抽出処理１６４を例示する。特徴抽出処理１６４により算出される特徴量は、後述するような異常監視処理に用いられる。データ加工処理の別の例については、後述の＜Ｉ．変形例＞の欄において説明する。
【００３２】
典型的には、短い周期でのデータ処理が要求される入力データについての、データ収集処理１６２および特徴抽出処理１６４（データ加工処理）は、プライマリ定周期タスク７０に割り当てられる。
【００３３】
一方、比較的長い周期でのデータ処理が要求される入力データについての、データ収集処理１６２および特徴抽出処理１６４（データ加工処理）は、プライマリ定周期タスク７０に割り当てることもできし、定周期タスク８０に割り当てることもできるようになっている。
【００３４】
コンピューティングリソースを効率的に利用するという観点から、後述するようなサポート装置を介した設定に応じて、データ収集処理１６２および特徴抽出処理１６４（データ加工処理）は、プライマリ定周期タスク７０および定周期タスク８０のいずれかに割り当てられる。
【００３５】
このような設定に応じて割り当て先タスクを変更できるようにすることで、コンピューティングリソースの効率的な利用を実現できる。
【００３６】
＜Ｂ．制御システムの構成例＞
次に、本実施の形態に従う制御システム１の構成例について説明する。
【００３７】
図２は、本実施の形態に従う制御システム１の全体構成例を示す模式図である。図２を参照して、制御システム１は、主たる構成要素として、制御対象を制御するための制御演算を実行する制御装置１００と、制御装置１００で実行される制御演算の内容を設定するサポート装置２００とを含む。制御システム１は、オプショナルな構成として、上位サーバ３００および表示装置（ＨＭＩ：Human Machine Interface；以下、「ＨＭＩ」とも称す。）４００をさらに含んでいてもよい。
【００３８】
制御装置１００は、ＰＬＣ（プログラマブルコントローラ）などの、一種のコンピュータとして具現化されてもよく、制御対象を制御するための制御演算を実行する。制御装置１００は、制御対象に含まれる監視対象に何らかの異常が発生しているか否かを判定する異常監視の機能を有している。
【００３９】
制御装置１００は、第１フィールドバス２を介してフィールド装置群１０と接続されるとともに、第２フィールドバス４を介して１または複数のＨＭＩ４００と接続される。さらに、制御装置１００は、ローカルネットワーク６を介して上位サーバ３００に接続される。制御装置１００は、それぞれのネットワークを介して、接続された装置との間でデータを遣り取りする。
【００４０】
制御装置１００は、フィールド装置群１０にて取得され、制御装置１００へ転送されるデータ（入力データ）を収集する収集機能を有している。
【００４１】
第１フィールドバス２および第２フィールドバス４としては、データの到達時間が保証される、定周期通信を行うネットワークを採用することが好ましい。このような定周期通信を行うネットワークとしては、ＥｔｈｅｒＣＡＴ（登録商標）などが知られている。
【００４２】
フィールド装置群１０は、制御対象または制御に関連する製造装置や生産ラインなど（以下、「フィールド」とも総称する。）の状態値を入力データとして収集する装置を含む。このような状態値を収集する装置としては、入力リレーや各種センサなどが想定される。フィールド装置群１０は、さらに、制御装置１００にて生成される指令値（以下、「出力データ」とも称す。）に基づいて、フィールドに対して何らかの作用を与える装置を含む。このようなフィールドに対して何らかの作用を与える装置としては、出力リレー、コンタクタ、サーボドライバおよびサーボモータ、その他任意のアクチュエータが想定される。これらのフィールド装置群１０は、第１フィールドバス２を介して、制御装置１００との間で、入力データおよび出力データを含むデータを遣り取りする。
【００４３】
図２に示す構成例においては、フィールド装置群１０は、リモートＩ／Ｏ（Input/Output）装置１２と、リレー群１４と、画像センサ１８およびカメラ２０と、サーボドライバ２２およびサーボモータ２４とを含む。
【００４４】
リモートＩ／Ｏ装置１２は、第１フィールドバス２を介して通信を行う通信部と、入力データの取得および出力データの出力を行うための入出力部（以下、「Ｉ／Ｏユニット」とも称す。）とを含む。このようなＩ／Ｏユニットを介して、制御装置１００とフィールドとの間で入力データおよび出力データが遣り取りされる。図２には、リレー群１４を介して、入力データおよび出力データとして、デジタル信号が遣り取りされる例が示されている。
【００４５】
Ｉ／Ｏユニットは、フィールドバスに直接接続されるようにしてもよい。図２には、第１フィールドバス２にＩ／Ｏユニット１６が直接接続されている例を示す。
【００４６】
画像センサ１８は、カメラ２０によって撮像された画像データに対して、パターンマッチングなどの画像計測処理を行って、その処理結果を制御装置１００へ送信する。
【００４７】
サーボドライバ２２は、制御装置１００からの出力データ（例えば、位置指令など）に従って、サーボモータ２４を駆動する。
【００４８】
上述のように、第１フィールドバス２を介して、制御装置１００とフィールド装置群１０との間でデータが遣り取りされることになるが、これらの遣り取りされるデータは、数百μｓｅｃオーダ〜数十ｍｓｅｃオーダのごく短い周期で更新されることになる。なお、このような遣り取りされるデータの更新処理は、Ｉ／Ｏリフレッシュ処理とも称される。
【００４９】
サポート装置２００は、制御装置１００が制御対象を制御するために必要な準備を支援する装置である。具体的には、サポート装置２００は、制御装置１００で実行されるプログラムの開発環境（プログラム作成編集ツール、パーサ、コンパイラなど）、制御装置１００および制御装置１００に接続される各種デバイスのパラメータ（コンフィギュレーション）を設定するための設定環境、生成したユーザプログラムを制御装置１００へ送信する機能、制御装置１００上で実行されるユーザプログラムなどをオンラインで修正・変更する機能、などを提供する。さらに、サポート装置２００は、制御装置１００で実行される異常監視処理を定義するパラメータおよび学習データを設定する機能なども提供する。
【００５０】
上位サーバ３００は、制御装置１００とローカルネットワーク６を介して接続され、制御装置１００との間で必要なデータを遣り取りする。上位サーバ３００は、例えば、データベース機能を有しており、制御装置１００に格納されるデータを定期的またはイベント的に収集する。ローカルネットワーク６には、イーサネット（登録商標）などの汎用プロトコルが実装されてもよい。
【００５１】
ＨＭＩ４００は、第２フィールドバス４を介して制御装置１００と接続され、ユーザからの操作を受けて、制御装置１００に対してユーザ操作に応じたコマンドなどを送信するとともに、制御装置１００での処理結果などをグラフィカルに表示する。
【００５２】
＜Ｃ．各装置のハードウェア構成例＞
次に、本実施の形態に従う制御システム１を構成する主要な装置のハードウェア構成例について説明する。
【００５３】
（ｃ１：制御装置１００のハードウェア構成例）
図３は、本実施の形態に従う制御システム１を構成する制御装置１００のハードウェア構成例を示すブロック図である。図３を参照して、制御装置１００は、ＣＰＵ（Central Processing Unit）やＭＰＵ（Micro-Processing Unit）などのプロセッサ１０２と、チップセット１０４と、主記憶装置１０６と、二次記憶装置１０８と、ローカルネットワークコントローラ１１０と、ＵＳＢ（Universal Serial Bus）コントローラ１１２と、メモリカードインターフェイス１１４と、内部バスコントローラ１２２と、フィールドバスコントローラ１１８，１２０とを含む。
【００５４】
プロセッサ１０２は、二次記憶装置１０８に格納された各種プログラムを読み出して、主記憶装置１０６に展開して実行することで、制御対象に応じた制御、および、後述するような各種処理を実現する。プロセッサ１０２は、複数のコア１０２１，１０２２，１０２３，１０２４を含む。コア１０２１，１０２２，１０２３，１０２４の各々が演算部に相当する。なお、図３には、２つのコアのみを例示するが、これに限られることなく、より多くのコアを有するプロセッサ１０２を採用してもよい。
【００５５】
チップセット１０４は、プロセッサ１０２とともに、各コンポーネントを制御することで、制御装置１００全体としての処理を実現する。
【００５６】
二次記憶装置１０８には、制御装置１００が提供する機能を実現するためのシステムプログラム１２６（制御プログラムに相当）に加えて、システムプログラム１２６が提供する実行環境を利用して実行されるユーザプログラムが格納される。
【００５７】
ローカルネットワークコントローラ１１０は、ローカルネットワーク６を介した他の装置との間のデータの遣り取りを制御する。ＵＳＢコントローラ１１２は、ＵＳＢ接続を介してサポート装置２００との間のデータの遣り取りを制御する。
【００５８】
メモリカードインターフェイス１１４は、メモリカード１１６を着脱可能に構成されており、メモリカード１１６に対してデータを書き込み、メモリカード１１６から各種データ（ユーザプログラムやトレースデータなど）を読み出すことが可能になっている。
【００５９】
内部バスコントローラ１２２は、制御装置１００に接続されるＩ／Ｏユニット１２４−１，１２４−２，…との間でデータを遣り取りするインターフェイスである。
【００６０】
フィールドバスコントローラ１１８は、第１フィールドバス２を介した他の装置との間のデータの遣り取りを制御する。同様に、フィールドバスコントローラ１２０は、第２フィールドバス４を介した他の装置との間のデータの遣り取りを制御する。
【００６１】
図３には、単一のプロセッサ１０２が４つのコア１０２１，１０２２，１０２４，１０２４を有している例を示すが、プロセッサ１０２に実装されるコアの数はこれ以下でもよいし、これより多くてもよい。あるいは、単一のコアを有するプロセッサ１０２を複数設けてもよい。この場合には、各プロセッサ１０２が演算部に相当する。さらにあるいは、複数のコアを有するプロセッサを複数設けてもよい。
【００６２】
また、図３には、プロセッサ１０２がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部を、専用のハードウェア回路（例えば、ＡＳＩＣ（Application Specific Integrated Circuit）またはＦＰＧＡ（Field-Programmable Gate Array）など）を用いて実装してもよい。
【００６３】
さらに、制御装置１００の主要部を、汎用的なアーキテクチャに従うハードウェア（例えば、汎用パソコンをベースとした産業用パソコン）を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のＯＳ（Operating System）を並列的に実行させるとともに、各ＯＳ上で必要なアプリケーションを実行させるようにしてもよい。
【００６４】
（ｃ２：サポート装置２００のハードウェア構成例）
次に、本実施の形態に従うサポート装置２００は、一例として、汎用的なアーキテクチャに従うハードウェア（例えば、汎用パソコン）を用いてプログラムを実行することで実現される。
【００６５】
図４は、本実施の形態に従う制御システム１を構成するサポート装置２００のハードウェア構成例を示すブロック図である。図４を参照して、サポート装置２００は、ＣＰＵやＭＰＵなどのプロセッサ２０２と、ドライブ２０４と、主記憶装置２０６と、二次記憶装置２０８と、ＵＳＢコントローラ２１２と、ローカルネットワークコントローラ２１４と、入力部２１６と、表示部２１８とを含む。これらのコンポーネントはバス２２０を介して接続される。
【００６６】
プロセッサ２０２は、二次記憶装置２０８に格納された各種プログラムを読み出して、主記憶装置２０６に展開して実行することで、後述するような各種処理を実現する。
【００６７】
二次記憶装置２０８は、例えば、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）などで構成される。二次記憶装置２０８には、典型的には、サポート装置２００において実行されるユーザプログラムの作成、作成したプログラムのデバッグ、システム構成の定義、各種パラメータの設定などを行うための図示しない開発プログラムと、データマイニングツール２３０と、設定ツール２４０とを含む各種プログラムが格納される。二次記憶装置２０８には、ＯＳおよび他の必要なプログラムが格納されてもよい。
【００６８】
ドライブ２０４は、記憶媒体２０５に対してデータを書き込み、記憶媒体２０５から各種データ（ユーザプログラム、トレースデータまたは時系列データなど）を読み出すことが可能になっている。記憶媒体２０５は、例えばコンピュータ読取可能なプログラムを非一過的に格納する記憶媒体２０５（例えば、ＤＶＤ（Digital Versatile Disc）などの光学記憶媒体）を含む。記憶媒体２０５に格納されたプログラムまたはデータはドライブ２０４により読み取られて、二次記憶装置２０８などの内部の記憶領域にインストールされる。
【００６９】
サポート装置２００で実行される各種プログラムは、コンピュータ読取可能な記憶媒体２０５を介してインストールされてもよいが、ネットワーク上のサーバ装置などからダウンロードする形でインストールするようにしてもよい。また、本実施の形態に従うサポート装置２００が提供する機能は、ＯＳが提供するモジュールの一部を利用する形で実現される場合もある。
【００７０】
ＵＳＢコントローラ２１２は、ＵＳＢ接続を介して制御装置１００との間のデータの遣り取りを制御する。ローカルネットワークコントローラ２１４は、任意ネットワークを介した他の装置との間のデータの遣り取りを制御する。
【００７１】
入力部２１６は、キーボードやマウスなどで構成され、ユーザ操作を受け付ける。表示部２１８は、ディスプレイ、各種インジケータなどで構成され、プロセッサ２０２からの処理結果などを出力する。サポート装置２００には、プリンタが接続されてもよい。
【００７２】
図４には、プロセッサ２０２がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路（例えば、ＡＳＩＣまたはＦＰＧＡなど）を用いて実装してもよい。
【００７３】
（ｃ３：上位サーバ３００のハードウェア構成例）
本実施の形態に従う上位サーバ３００は、一例として、汎用的なアーキテクチャに従うハードウェア（例えば、汎用サーバ）を用いてプログラムを実行することで実現される。そのハードウェア構成は、図４に示すサポート装置２００のハードウェア構成と同様であるので、詳細な説明は繰り返さない。
【００７４】
（ｃ４：ＨＭＩ４００のハードウェア構成例）
本実施の形態に従うＨＭＩ４００は、一例として、汎用的なアーキテクチャに従うハードウェア（例えば、汎用パソコンをベースとした産業用パソコン）を用いてプログラムを実行することで実現される。そのハードウェア構成は、図４に示すサポート装置２００のハードウェア構成と同様であるので、詳細な説明は繰り返さない。
【００７５】
＜Ｄ：異常監視処理＞
次に、本実施の形態に従う制御システム１が提供する異常監視処理について説明する。
【００７６】
図５は、本実施の形態に従う制御システム１における異常監視処理を実現するための機能ブロック図である。図５を参照して、制御装置１００は、監視対象から１または複数の入力データ（入力データ１，入力データ２，・・・，入力データｎ）を収集し、特徴量を抽出することで、異常の発生有無を示す判定結果を含む監視結果を出力する。
【００７７】
本実施の形態においては、制御対象に含まれる監視対象に何らかの異常が発生しているかを判定する単位区間として「フレーム」という概念を導入する。フレームは、監視対象に何らかの異常が発生しているか否かを判定する単位区間を意味する。そのため、監視対象に何らかの異常が発生しているか否かの判定は、フレーム毎に行われることになる。
【００７８】
より具体的には、制御装置１００は、異常監視処理に関する主たる機能構成として、データセット生成部１５２と、特徴抽出部１５４と、スコア算出部１５６と、判定部１５８とを含む。
【００７９】
データセット生成部１５２は、フレーム情報に従って、監視対象から１または複数の入力データ（入力データ１，入力データ２，・・・，入力データｎ）からなるデータセットをフレーム毎に生成する。
【００８０】
特徴抽出部１５４は、データセット生成部１５２により生成されるデータセットに基づいて、予め定められた処理に従って、１または複数の特徴量（特徴量１，特徴量２，・・・，特徴量ｍ）を抽出する。特徴量としては、例えば、フレーム内における平均値、最大値、中間値、最小値、標準偏差などを用いることができる。
【００８１】
スコア算出部１５６は、予め用意された学習データ１３０を参照して、特徴抽出部１５４により抽出される１または複数の特徴量の学習データ１３０に対する外れ度合いを示す値（以下、「スコア」とも称す。）を算出する。ここで、学習データ１３０は、特定のクラス（例えば、正常や異常）がラベル付けされた特徴量からなる。典型的には、学習データ１３０は正常時の特徴量からなり、この場合には、スコアは、監視対象に何らかの異常が発生している可能性を示す値を意味することになる。
【００８２】
制御装置１００での異常監視のアルゴリズムの一例として、超空間上における値群に対する特徴量の外れ度合いに基づいて、当該特徴量に対応するスコアを算出する方法を採用する。この場合には、学習データ１３０は、超空間上における値群を示すものとなり、これは監視対象を示す「モデル」に相当する。
【００８３】
このような外れ度合いに基づく異常監視の手法としては、各点から値群までの最短距離に基づいて異常を検知する手法（ｋ近傍法）、値群を含むクラスタを含めて距離を評価する局所外れ値因子（ＬｏＦ：local outlier factor）法、パス長さから算出されるスコアを用いるｉＦｏｒｅｓｔ（isolation forest）法などが知られている。
【００８４】
外れ度合いに基づく異常監視の手法を採用した場合には、学習データ１３０は、正常時に得られる特徴量の群を含むようになり、制御装置１００は、学習データ１３０に含まれる特徴量群に対する対象の特徴量の外れ度合いに基づいて、監視対象に何らかの異常が発生している可能性を示す値であるスコアを算出する。
【００８５】
判定部１５８は、スコア算出部１５６により算出されるスコアと予め定められたしきい値とを比較して、監視対象に何らかの異常が発生しているか否かを判定する。判定部１５８からは何らかの異常が発生しているか否かを示す判定結果が出力される。
【００８６】
以上のような機能構成によって、本実施の形態に従う異常監視処理が実現される。
図５に示す機能ブロック図において、データセット生成部１５２および特徴抽出部１５４における処理は、フィールドから収集された状態値あるいは制御演算の実行によって算出あるいは更新される内部状態値である入力データに対するものであり、以下では「入力データ処理５０」と総称する。一方、スコア算出部１５６および判定部１５８における処理は、入力データ処理５０により算出された結果を利用するものであり、以下では「データ利用処理６０」と総称する。
【００８７】
＜Ｅ．プログラムの周期実行＞
次に、本実施の形態に従う制御装置１００におけるプログラムの周期実行について説明する。
【００８８】
図６は、本実施の形態に従う制御システム１を構成する制御装置１００におけるプログラムの周期実行の一例を示す模式図である。制御装置１００では、１または複数の処理がタスクという単位で実行される。
【００８９】
図６には、プライマリ定周期タスク７０、定周期タスク８０、およびシステムサービスタスク９０の３種類のタスクが実行される例を示す。各タスクは、それぞれ別々のコアで実行されるとする。
【００９０】
コア１で実行されるプライマリ定周期タスク７０は、制御装置１００において最優先で実行されるべき処理を含み、制御周期に相当するプライマリ周期７１毎に周期的に実行される。
【００９１】
より具体的には、プライマリ定周期タスク７０は、Ｉ／Ｏリフレッシュ処理７２、ユーザプログラム実行処理７４、およびモーション制御処理７６を含む。Ｉ／Ｏリフレッシュ処理７２は、フィールドとの間で、入力データおよび出力データを更新する処理である。なお、制御装置１００においては、プログラムにおいて参照される値は変数の形で管理されるので、Ｉ／Ｏリフレッシュ処理７２は、対応する変数の値を周期的に更新する処理を意味する。ユーザプログラム実行処理７４は、ユーザプログラム１２８に記述された命令に従って処理を実行する処理である。ユーザプログラム１２８は、制御対象に応じて任意に作成されるものであり、ＩＥＣ６１１３１−３に規定される言語を用いて記述されるシーケンスプログラムなどを含む。
【００９２】
モーション制御処理７６は、ユーザプログラム１２８に含まれるモーション命令に従う処理（典型的には、モータの位置制御や速度制御に関する処理）を含む。
【００９３】
プライマリ定周期タスク７０においては、Ｉ／Ｏリフレッシュ処理７２、ユーザプログラム実行処理７４、およびモーション制御処理７６のすべてがプライマリ周期７１毎に実行される。
【００９４】
コア２で実行される定周期タスク８０は、プライマリ定周期タスク７０より優先度の低い処理を含み、制御周期の整数倍に相当する定周期８１毎に周期的に実行される。定周期８１は、プライマリ定周期タスク７０の整数倍（２以上）の長さに相当する。
【００９５】
より具体的には、定周期タスク８０は、プライマリ定周期タスク７０と同様に、Ｉ／Ｏリフレッシュ処理８２、ユーザプログラム実行処理８４、およびモーション制御処理８６を含む。実行周期が異なる点を除いて、Ｉ／Ｏリフレッシュ処理８２、ユーザプログラム実行処理８４、およびモーション制御処理８６の処理内容は、Ｉ／Ｏリフレッシュ処理７２、ユーザプログラム実行処理７４、およびモーション制御処理７６の処理内容と同様である。
【００９６】
コア３で実行されるシステムサービスタスク９０は、状況に応じて実行される。典型的には、システムサービスタスク９０は、イベント発生毎に都度実行される処理が割り当てられる。より具体的には、システムサービスタスク９０は、データ格納処理９２、スコア算出・判定処理９４、およびファイル転送処理９６などを含む。
【００９７】
データ格納処理９２は、データセット生成部１５２が参照する１または複数の入力データ、ならびに、特徴抽出部１５４により生成される１または複数の特徴量を、主記憶装置１０６あるいは二次記憶装置１０８などの記憶領域に格納する処理を含む。すなわち、システムサービスタスク９０には、プライマリ定周期タスク７０に割り当てられた特徴抽出処理１６４、および、定周期タスク８０に割り当てられた特徴抽出処理１６４により生成されるデータを格納する処理が割り当てられている。
【００９８】
スコア算出・判定処理９４は、スコア算出部１５６および判定部１５８での処理に相当する。すなわち、システムサービスタスク９０には、プライマリ定周期タスク７０に割り当てられた特徴抽出処理１６４、および、定周期タスク８０に割り当てられた特徴抽出処理１６４により生成されるデータから所定の指標を算出する処理が割り当てられている。
【００９９】
ファイル転送処理９６は、主記憶装置１０６あるいは二次記憶装置１０８などの記憶領域に格納されたデータを上位サーバ３００などに送信する処理を含む。
【０１００】
＜Ｆ．異常監視処理の実装例＞
次に、図６に示すプログラムの周期実行を用いて異常監視処理を実現する実装例について説明する。
【０１０１】
図７は、本実施の形態に従う制御システム１を構成する制御装置１００における異常監視処理に係る実装例を示す模式図である。図７を参照して、データセット生成部１５２および特徴抽出部１５４における処理（入力データ処理５０）は、基本的には、プライマリ定周期タスク７０として周期実行される。
【０１０２】
より具体的には、データセット生成部１５２による１または複数の入力データ（監視対象から得られるセンシングデータ）についてのデータ収集処理１６２の少なくとも一部は、Ｉ／Ｏリフレッシュ処理７２に含まれる。また、特徴抽出部１５４による特徴抽出処理１６４の少なくとも一部は、ユーザプログラム実行処理７４に含まれる。特徴抽出処理１６４により抽出された特徴量は、対象のフレームを特定するための識別情報とともに、制御装置１００の記憶領域に格納される（データ格納）。
【０１０３】
図７に示すように、入力データの収集および特徴量の抽出に係る処理は、プライマリ周期７１毎に実行されることになる。なお、特徴量は、各フレームのデータからなるデータセットに基づいて抽出されるので、プライマリ周期７１毎に抽出されるとは限らない。
【０１０４】
異常監視処理において用いられる特徴量は、監視対象に応じて任意に選択される。すなわち、異常監視処理においては、任意の入力データから任意の種類の特徴量が抽出される。任意の入力データは、フィールドから直接収集された状態値だけではなく、所定の前処理などが実行された結果が用いられることもある。このような前処理は、プライマリ定周期タスク７０に含めることもできるが、定周期タスク８０に含まれることもある。
【０１０５】
図８は、本実施の形態に従う制御システム１を構成する制御装置１００における異常監視処理に係る別の実装例を示す模式図である。図８を参照して、特徴抽出部１５４による特徴抽出処理１６４においては、プライマリ定周期タスク７０のデータ収集処理１６２が周期的に更新する入力データに加えて、定周期タスク８０のデータ収集処理１６２が周期的に更新する入力データを用いて、特徴量を抽出する。
【０１０６】
図８に示す例では、プライマリ定周期タスク７０に含まれる特徴抽出処理１６４は、プライマリ周期７１毎に周期実行されるのに対して、定周期タスク８０のデータ収集処理１６２による入力データの更新周期は定周期８１となる。その結果、定周期タスク８０のデータ収集処理１６２による入力データからの特徴量の抽出処理が重複して実行されることになる。これは、不要な特徴量の抽出処理が実行されることを意味する。
【０１０７】
制御装置１００においては、有限のコンピューティングリソースを用いて、各タスクを指定された周期毎に繰り返し実行する必要があり、図８に示すような非効率的な処理を極力排除したいという潜在的な要求が存在する。すなわち、制御装置１００が提供する制御性能への影響を低減したいという要求が存在する。
【０１０８】
このような要求に対して、本実施の形態に従う制御装置１００は、以下に説明するように、複数の並列実行されるタスク毎に入力データの更新および特徴量の抽出を最適化できるデータ処理の仕組みを提供する。
【０１０９】
図９は、本実施の形態に従う制御システム１を構成する制御装置１００における異常監視処理に係るさらに別の実装例を示す模式図である。図９に示す実装例においては、特徴抽出部１５４による特徴抽出処理１６４は、定周期タスク８０のユーザプログラム実行処理８４にも含まれている。ユーザプログラム実行処理８４の特徴抽出処理１６４は、定周期タスク８０のデータ収集処理１６２が周期的に更新する入力データから特徴量を抽出する。
【０１１０】
すなわち、図９に示す実装例においては、プライマリ定周期タスク７０においてプライマリ周期７１毎に更新される入力データを用いた入力データ処理５０については、同じプライマリ定周期タスク７０として実行され、定周期タスク８０において定周期８１毎に更新される入力データを用いた入力データ処理５０については、同じ定周期タスク８０として実行される。
【０１１１】
図９に示すような仕組みを採用することで、効率的な特徴量の抽出処理を実現できる。コンピューティングリソースを効率的に利用することで、各タスクの周期超過などが発生する可能性を低減できる。
【０１１２】
＜Ｇ．データ処理＞
次に、図９に示すようなタスク毎の特徴量の抽出処理を実現するためのデータ処理の一例について説明する。
【０１１３】
図１０は、図８に示す異常監視処理の実装例に対応するデータ処理を説明するための模式図である。図１０を参照して、一例として、Ｉ／Ｏユニット１２４がフィードから３つの入力データ（ＩＮ＿０１，ＩＮ＿０２，ＩＮ＿０３）を周期的に取得する場合を想定する。
【０１１４】
ここで、入力データＩＮ＿０１は、プライマリ定周期タスク７０において参照され、入力データＩＮ＿０２は、定周期タスク８０において参照され、入力データＩＮ＿０３は、プライマリ定周期タスク７０および定周期タスク８０において参照されるとする。
【０１１５】
Ｉ／Ｏユニット１２４が取得した入力データは、内部バスコントローラ１２２のＩ／Ｏメモリに周期的に転送される。すなわち、内部バスコントローラ１２２のＩ／Ｏメモリの内容は、周期的に更新されることになる。ここで、入力データＩＮ＿０１，ＩＮ＿０２，ＩＮ＿０３は、プライマリ周期７１毎に更新されるとする。
【０１１６】
プライマリ定周期タスク７０においては、特徴量抽出および制御演算に必要な入力データＩＮ＿０１，ＩＮ＿０３に加えて、特徴量抽出のみに必要な入力データＩＮ＿０２もバッファに転送される。バッファへの転送はプライマリ周期７１毎に繰り返し実行される。バッファに転送される入力データＩＮ＿０１，ＩＮ＿０２，ＩＮ＿０３から特徴量＿０１，特徴量＿０２，特徴量＿０３が抽出され、さらにシステムサービスタスク９０が参照可能な主記憶装置１０６内のバッファに書き込まれる。システムサービスタスク９０では、主記憶装置１０６内のバッファを参照して、データ格納処理９２が実行される。
【０１１７】
一方、定周期タスク８０においては、制御演算に必要な入力データＩＮ＿０２，ＩＮ＿０３がバッファに転送される。バッファに転送された入力データＩＮ＿０２，ＩＮ＿０３に基づいて制御演算が実行される。
【０１１８】
図１０に示すデータ処理においては、入力データＩＮ＿０２は、プライマリ定周期タスク７０での特徴量抽出のためだけに、内部バスコントローラ１２２のＩ／Ｏメモリからバッファに転送されることになり、非効率なコンピューティングリソースの利用になっている。
【０１１９】
図１１は、図９に示す異常監視処理の実装例に対応するデータ処理を説明するための模式図である。図１０に示すデータ処理に対して、図１１に示すデータ処理においては、入力データＩＮ＿０２は、定周期タスク８０においてのみ参照されるので、プライマリ定周期タスク７０においては、入力データＩＮ＿０２はバッファに転送されない。すなわち、定周期タスク８０においてのみ、入力データＩＮ＿０２はバッファに転送されない。その結果、入力データＩＮ＿０２のバッファへの転送の周期は、プライマリ周期７１ではなく、定周期８１となる。
【０１２０】
そして、定周期タスク８０において、バッファに転送される入力データＩＮ＿０２から特徴量＿０２が抽出され、さらにシステムサービスタスク９０が参照可能な主記憶装置１０６内のバッファに書き込まれる。
【０１２１】
このように、プライマリ定周期タスク７０での制御演算に参照されない入力データＩＮ＿０２については、プライマリ周期７１でのバッファへの転送や、プライマリ定周期タスク７０での特徴量の抽出といった処理は行われず、バッファへの転送周期と同じ定周期８１で特徴量が抽出される。これによって、非効率的な特徴量の抽出処理などを回避でき、コンピューティングリソースの効率的な利用を実現できる。
【０１２２】
＜Ｈ．ユーザインターフェイス＞
次に、図８〜１１に示す異常監視処理を実現するためのユーザインターフェイスの一例について説明する。
【０１２３】
図８〜図１１に示すように、異なる周期で周期実行されるタスクの各々に、入力データ処理５０を割り当てる場合には、各入力データに対応するデータ収集処理１６２および特徴抽出処理１６４を同一のタスクに登録する必要がある。例えば、同一の入力データについて、データ収集処理１６２はプライマリ定周期タスク７０に含まれ、特徴抽出処理１６４は定周期タスク８０に含まれるような設定を回避する必要がある。
【０１２４】
すなわち、特徴量の抽出などの入力データ処理５０を複数の異なる周期でそれぞれ実行しようとすると、各特徴量の抽出をいずれの周期で実行することが効率的になるのかを容易に設定できる仕組みをユーザに提供することが好ましい。
【０１２５】
そこで、本実施の形態に従う制御システム１においては、参照される入力データに応じて、入力データ処理５０の割り当てを最適化できるユーザインターフェイスが提供される。本実施の形態に従う制御システム１において、典型的には、各種設定を行うためのユーザインターフェイスはサポート装置２００により提供される。
【０１２６】
図１２は、本実施の形態に従う制御システム１を構成するサポート装置２００が提供するユーザインターフェイス画面の一例を示す図である。図１２に示すユーザインターフェイス画面２５０は各種設定を受け付ける。ユーザインターフェイス画面２５０は、設定登録ボタン２５２が選択されることで、入力データ処理５０に用いられる入力データ（登録変数）の設定受付状態になる。
【０１２７】
ユーザは、特徴量の抽出に用いる入力データ（変数）を登録変数名設定欄２５６に設定する。このとき、ユーザは、設定される入力データのデータ型をデータ型設定欄２５８に設定する。なお、データ型設定欄２５８のデータ型は、設定情報などを参照して、設定された入力データに対応して自動的に反映されるようにしてもよい。
【０１２８】
なお、図１２に示すＩＮＰＵＴ１，ＩＮＰＵＴ２，ＩＮＰＵＴ３は、図１０および図１１に示す入力データＩＮ＿０１，ＩＮ＿０２，ＩＮ＿０３にそれぞれ対応するとする。
【０１２９】
ユーザインターフェイス画面２５０は、周期設定ボタン２６０を有しており、周期設定ボタン２６０が選択されることで、複数の異なる周期（タスク）のいずれにも割り当て可能な入力データについて、いずれかの周期（タスク）に割り当てるかの設定が可能になる。
【０１３０】
図１３は、図１２のユーザインターフェイス画面２５０の周期設定ボタン２６０が選択された場合のユーザインターフェイス画面２７０の一例を示す図である。図１３に示すユーザインターフェイス画面２７０には、複数の異なる周期で実行されるタスクに割り当て可能な入力データ（変数）が表示されるとともに、いずれかのタスクに割り当てるかの選択を受け付ける。
【０１３１】
より具体的には、ユーザインターフェイス画面２７０は、対象の入力データを表示する対象変数表示２７２と、タスク選択欄２７４とを含む。タスク選択欄２７４には、一例として、（１）デフォルト設定および（２）制御リソース確保設定の選択が可能になっている。（１）デフォルト設定が選択されると、対象の入力データの入力データ処理５０は、プライマリ定周期タスク７０に割り当てられる。一方、（２）制御リソース確保設定が選択されると、定周期タスク８０に割り当てられる。いずれかが選択された後、ＯＫボタン２７６が選択されると、対象の入力データに対する設定が更新された上で、図１２に示されるユーザインターフェイス画面２５０に戻る。
【０１３２】
このように、複数の異なる周期で実行されるタスクのいずれにも割り当てられる入力データ（変数）については、監視対象などに応じてユーザが任意に設定できるようになっている。すなわち、サポート装置２００は、あるデータ収集処理１６２（第２のデータ収集処理）および対応する特徴抽出処理１６４（第２のデータ加工処理）がプライマリ定周期タスク７０および定周期タスク８０のいずれにも割り当て可能な場合に、いずれのタスクに割り当てるかの設定を受け付ける。
【０１３３】
再度図１２を参照して、ユーザインターフェイス画面２５０は、反映ボタン２６２を有しており、反映ボタン２６２が選択されることで、各タスクに割り当てられている処理が参照する入力データと、入力データ処理５０の対象に設定されている入力データとの関係に基づいて、各入力データについての入力データ処理５０がいずれのタスクに割り当てられるのかが決定される。
【０１３４】
このとき、図１３に示すユーザインターフェイス画面２７０において設定された内容が優先的に反映される。そして、割り当て結果がユーザに通知される。
【０１３５】
図１４は、図１２のユーザインターフェイス画面２５０の反映ボタン２６２が選択された場合のユーザインターフェイス画面２８０の一例を示す図である。図１４に示すユーザインターフェイス画面２８０は、プライマリ定周期タスク７０に割り当てられている入力データを表示するプライマリ定周期タスク欄２８２、および、定周期タスク８０に割り当てられている入力データを表示する定周期タスク欄２８４を含む。
【０１３６】
プライマリ定周期タスク欄２８２および定周期タスク欄２８４には、各タスクに割り当てられている入力データが視覚的に表示されている。さらに、ユーザは、各入力データに対して、割り当て先のタスクを容易な操作で変更できるようになっている。例えば、ユーザによるドラッグ操作により、各入力データの割り当て先のタスクを変更できる。
【０１３７】
すなわち、サポート装置２００は、データ収集処理１６２（第２のデータ収集処理）および対応する特徴抽出処理１６４（第２のデータ加工処理）の割り当て先タスクの変更を受け付ける。
【０１３８】
最終的に、ユーザがＯＫボタン２８６を選択することで、各入力データの割り当て先のタスクが決定される。
【０１３９】
＜Ｉ．変形例＞
上述の説明においては、データ加工処理の一例として、異常監視処理に用いられる特徴抽出処理１６４について例示したが、データ加工処理の内容はこれに限られない。
【０１４０】
例えば、データ加工処理の別の例として単位変換処理が挙げられる。フィールド装置群１０によりフィールドから取得された状態値は、アナログ／デジタル変換器などの処理特性上、所定レンジ（例えば、０−１０２３デジット）に規格化された状態値として保持されていることもある。このような所定レンジに規格化された値を実際のフィールドの物理量（例えば、温度、回転速度、流速など）に変換した上で、処理することが好ましい場合も多い。
【０１４１】
そこで、単位変換処理においては、制御装置１００が管理する状態値（入力データ）をフィールドの実際の物理量に変換した上で、内部処理または外部装置へ提供する処理を含み得る。このように、データ加工処理は、データ収集処理１６２により収集された入力データを対応する物理量に変換する処理を含むようにしてもよい。
【０１４２】
また、データ加工処理の別の例としてデータ転送の前処理などが挙げられる。例えば、制御装置１００をＩｏＴ（Internet of Things）のゲートウェイとして利用するような場合を想定すると、データを遣り取りする相手側に適合させたデータフォーマットで指定された情報を送信する必要がある。このような場合、制御装置１００が管理する状態値（入力データ）を送出前の所定フォーマットに従って成型することが必要になる。このように、データ加工処理の一例として、データの成型処理を含めるようにしてもよい。
【０１４３】
データの成型処理の具体例としては、予め定められた順番に予め定められた情報を順次配置するような処理が想定される。このように、データ加工処理は、データ収集処理１６２により収集された１または複数の入力データを所定フォーマットに成型する処理を含むようにしてもよい。
【０１４４】
＜Ｊ．付記＞
上述したような本実施の形態は、以下のような技術思想を含む。
【０１４５】
［構成１］
制御対象を制御するための制御演算を実行する制御装置（１００）と、
前記制御装置で実行される制御演算の内容を設定するサポート装置（２００）とを備え、
前記制御装置は、１または複数の処理が割り当てられた第１のタスク（７０）を第１の制御周期（７１）で周期実行するための第１の演算部（１０２１）と、１または複数の処理が割り当てられた第２のタスク（８０）を前記第１の制御周期より長い第２の制御周期（８１）で周期実行するための第２の演算部（１０２２）とを備え、
前記制御演算は、前記制御装置で参照可能な入力データを収集するデータ収集処理（１６２）と、当該収集された入力データを加工して新たなデータを生成するデータ加工処理（１６４）とを含み、
前記第１のタスクには、第１の入力データを対象とする第１のデータ収集処理および対応する第１のデータ加工処理が割り当てられており、
前記サポート装置を介した設定に応じて、第２の入力データを対象とする第２のデータ収集処理および対応する第２のデータ加工処理は、前記第１のタスクおよび前記第２のタスクのうちいずれかに割り当てられる、制御システム。
【０１４６】
［構成２］
前記制御装置は、１または複数の処理が割り当てられた第３のタスク（９０）を状況に応じて実行するための第３の演算部（１０２３）をさらに備える、構成１に記載の制御システム。
【０１４７】
［構成３］
前記第３のタスクには、前記第１のデータ加工処理および前記第２のデータ加工処理により生成されるデータを格納する処理（９２）が割り当てられている、構成２に記載の制御システム。
【０１４８】
［構成４］
前記第３のタスクには、前記第１のデータ加工処理および前記第２のデータ加工処理により生成されるデータから所定の指標を算出する処理（９４）が割り当てられている、構成２または３に記載の制御システム。
【０１４９】
［構成５］
前記データ加工処理は、前記データ収集処理により収集された複数の入力データから特徴量を算出する処理（１６４）を含む、構成１〜４のいずれか１項に記載の制御システム。
【０１５０】
［構成６］
前記データ加工処理は、前記データ収集処理により収集された入力データを対応する物理量に変換する処理を含む、構成１〜５のいずれか１項に記載の制御システム。
【０１５１】
［構成７］
前記データ加工処理は、前記データ収集処理により収集された１または複数の入力データを所定フォーマットに成型する処理を含む、構成１〜６のいずれか１項に記載の制御システム。
【０１５２】
［構成８］
前記サポート装置は、前記第２のデータ収集処理および前記第２のデータ加工処理が前記第１のタスクおよび前記第２のタスクのいずれにも割り当て可能な場合に、いずれのタスクに割り当てるかの設定を受け付ける（２７０）、構成１〜７のいずれか１項に記載の制御システム。
【０１５３】
［構成９］
前記サポート装置は、前記第２のデータ収集処理および前記第２のデータ加工処理の割り当て先タスクの変更を受け付ける（２８０）、構成８に記載の制御システム。
【０１５４】
［構成１０］
制御対象を制御するための制御演算を実行する制御装置（１００）であって、
１または複数の処理が割り当てられた第１のタスク（７０）を第１の制御周期（７１）で周期実行するための第１の演算部（１０２１）と、
１または複数の処理が割り当てられた第２のタスク（８０）を前記第１の制御周期より長い第２の制御周期（８１）で周期実行するための第２の演算部（１０２２）とを備え、
前記制御演算は、前記制御装置で参照可能な入力データを収集するデータ収集処理（１６２）と、当該収集された入力データを加工して新たなデータを生成するデータ加工処理（１６４）とを含み、
前記第１のタスクには、第１の入力データを対象とする第１のデータ収集処理および対応する第１のデータ加工処理が割り当てられており、
外部設定に応じて、第２の入力データを対象とする第２のデータ収集処理および対応する第２のデータ加工処理は、前記第１のタスクおよび前記第２のタスクのうちいずれかに割り当てられる、制御装置。
【０１５５】
＜Ｋ．利点＞
本実施の形態に従う制御システムによれば、周期実行されるプライマリ定周期タスク７０および定周期タスク８０のいずれに対しても、データ収集処理１６２および特徴抽出処理１６４（データ加工処理）をそれぞれ独立に割り当てることができるので、処理対象とする入力データについて要求される処理性能や入力データの属性などに応じて、より適切なタスクに割り当てることで、効率的な処理を実現できる。
【０１５６】
また、本実施の形態に従う制御システムによれば、プライマリ定周期タスク７０および定周期タスク８０のいずれにも割り当てることができる場合に、その旨をユーザに通知するユーザインターフェイスが用意されているので、データ収集処理１６２と対応する特徴抽出処理１６４（データ加工処理）とが異なるタスクに誤って割り当てられることを防止できる。
【０１５７】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１５８】
１  制御システム、２  第１フィールドバス、４  第２フィールドバス、６  ローカルネットワーク、１０  フィールド装置群、１２  リモートＩ／Ｏ装置、１４  リレー群、１６，１２４  Ｉ／Ｏユニット、１８  画像センサ、２０  カメラ、２２  サーボドライバ、２４  サーボモータ、５０  入力データ処理、６０  データ利用処理、７０，８０  定周期タスク、７１  プライマリ周期、７２，８２  Ｉ／Ｏリフレッシュ処理、７４，８４  ユーザプログラム実行処理、７６，８６  モーション制御処理、８１  定周期、９０  システムサービスタスク、９２  データ格納処理、９４  判定処理、９６  ファイル転送処理、１００  制御装置、１０２，２０２  プロセッサ、１０４  チップセット、１０６，２０６  主記憶装置、１０８，２０８  二次記憶装置、１１０，２１４  ローカルネットワークコントローラ、１１２，２１２  ＵＳＢコントローラ、１１４  メモリカードインターフェイス、１１６  メモリカード、１１８，１２０  フィールドバスコントローラ、１２２  内部バスコントローラ、１２６  システムプログラム、１２８  ユーザプログラム、１３０  学習データ、１５２  データセット生成部、１５４  特徴抽出部、１５６  スコア算出部、１５８  判定部、１６２  データ収集処理、１６４  特徴抽出処理、２００  サポート装置、２０４  ドライブ、２０５  記憶媒体、２１６  入力部、２１８  表示部、２２０  バス、２３０  データマイニングツール、２４０  設定ツール、２５０，２７０，２８０  ユーザインターフェイス画面、２５２  設定登録ボタン、２５６  登録変数名設定欄、２５８  データ型設定欄、２６０  周期設定ボタン、２６２  反映ボタン、２７２  対象変数表示、２７４  タスク選択欄、２７６，２８６  ＯＫボタン、２８２，２８４  定周期タスク欄、３００  上位サーバ、４００  ＨＭＩ、１０２１，１０２２，１０２３，１０２４  コア。
【図１】
2020086481.tif 000003
【図２】
2020086481.tif 000004
【図３】
2020086481.tif 000005
【図４】
2020086481.tif 000006
【図５】
2020086481.tif 000007
【図６】
2020086481.tif 000008
【図７】
2020086481.tif 000009
【図８】
2020086481.tif 000010
【図９】
2020086481.tif 000011
【図１０】
2020086481.tif 000012
【図１１】
2020086481.tif 000013
【図１２】
2020086481.tif 000014
【図１３】
2020086481.tif 000015
【図１４】
2020086481.tif 000016