(57)【要約】【課題】制御装置において一連の処理が繰返し実行される周期を状況に応じて変更する。【解決手段】Ｉ／Ｏリフレッシュ処理およびプログラム実行処理を含む一連の処理を第１の制御周期で繰返し実行する制御装置を含む制御システムが提供される。制御システムは、第１の制御周期でＩ／Ｏリフレッシュ処理が繰返し実行されることで収集される第１のサンプル値群を取得する第１の取得手段と、第１の制御周期より長い第２の制御周期でＩ／Ｏリフレッシュ処理が繰返し実行された場合に収集されるであろう第２のサンプル値群を取得する第２の取得手段と、第１のサンプル値群に含まれる第１の周波数成分と第２のサンプル値群に含まれる第２の周波数成分とが実質的に同一であるかを判断する判断手段と、第１の周波数成分と第２の周波数成分とが実質的に同一であることを条件に、第１の制御周期を第２の制御周期に変更する変更手段とを含む。【選択図】図３
2018084894.tif 000002
【特許請求の範囲】
【請求項１】
Ｉ／Ｏリフレッシュ処理およびプログラム実行処理を含む一連の処理を第１の制御周期で繰返し実行する制御装置を含む制御システムであって、
前記第１の制御周期で前記Ｉ／Ｏリフレッシュ処理が繰返し実行されることで収集される第１のサンプル値群を取得する第１の取得手段と、
前記第１の制御周期より長い第２の制御周期で前記Ｉ／Ｏリフレッシュ処理が繰返し実行された場合に収集されるであろう第２のサンプル値群を取得する第２の取得手段と、
前記第１のサンプル値群に含まれる第１の周波数成分と前記第２のサンプル値群に含まれる第２の周波数成分とが実質的に同一であるかを判断する判断手段と、
前記第１の周波数成分と前記第２の周波数成分とが実質的に同一であることを条件に、前記第１の制御周期を前記第２の制御周期に変更する変更手段とを備える、制御システム。
【請求項２】
前記変更手段は、前記第１の制御周期から前記第２の制御周期への変更に係る情報を含むとともに、ユーザ操作を受付けるための、ユーザインターフェイスを提供する、請求項１に記載の制御システム。
【請求項３】
前記変更手段は、前記第１の周波数成分と前記第２の周波数成分とが実質的に同一であるか否かをユーザへ通知する、請求項２に記載の制御システム。
【請求項４】
前記変更手段は、ユーザ操作を受けて、前記第１の制御周期を前記第２の制御周期に変更する、請求項２または３に記載の制御システム。
【請求項５】
前記第２の取得手段は、複数の前記第２の制御周期について前記第２のサンプル値群をそれぞれ取得し、
前記判断手段は、各第２のサンプル値群に含まれる前記第２の周波数成分を比較することで、前記第１の周波数成分と実質的に同一である第２の周波数成分のうち、最も長い第２の制御周期を決定する、請求項１〜４のいずれか１項に記載の制御システム。
【請求項６】
前記第２の制御周期は、前記第１の制御周期の整数倍に設定される、請求項１〜５のいずれか１項に記載の制御システム。
【請求項７】
サンプル値群を高速フーリエ変換することで周波数成分を生成する変換手段をさらに備える、請求項１〜６のいずれか１項に記載の制御システム。
【請求項８】
前記一連の処理が前記第２の制御周期で繰返し実行される状態において、前記Ｉ／Ｏリフレッシュ処理により収集されるサンプル値が前記第２の制御周期で適切に収集できているかを判断する監視手段をさらに備える、請求項１〜７のいずれか１項に記載の制御システム。
【請求項９】
Ｉ／Ｏリフレッシュ処理およびプログラム実行処理を含む一連の処理を第１の制御周期で繰返し実行する実行手段と、
前記第１の制御周期で前記Ｉ／Ｏリフレッシュ処理が繰返し実行されることで収集される第１のサンプル値群を取得する第１の取得手段と、
前記第１の制御周期より長い第２の制御周期で前記Ｉ／Ｏリフレッシュ処理が繰返し実行された場合に収集されるであろう第２のサンプル値群を取得する第２の取得手段と、
前記第１のサンプル値群に含まれる第１の周波数成分と前記第２のサンプル値群に含まれる第２の周波数成分とが実質的に同一であるかを判断する判断手段と、
前記第１の周波数成分と前記第２の周波数成分とが実質的に同一であることを条件に、前記第１の制御周期を前記第２の制御周期に変更する変更手段とを備える、制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、制御装置を含む制御システムにおける制御周期を最適化する技術に関する。
【背景技術】
【０００２】
様々な生産現場において、ＰＬＣ（プログラマブルコントローラ）などの制御装置を用いたＦＡ（Factory Automation）技術が広く普及している。例えば、特開２０１０−１７０５３６号公報（特許文献１）に開示されるように、このような制御装置は、入出力リフレッシュ処理、共通処理、ユーザプログラム実行処理、周辺サービス処理といった一連の処理を繰返し実行する。
【０００３】
ところで、近年の情報通信技術（ＩＣＴ：Information and Communication Technology）の発展に伴って、このような制御装置もよりインテリジェント化しつつある。このようなインテリジェント化に伴って、制御装置においてより多くの処理（タスクやプロセス）が実行されるようになっている。このような処理の実行を実行するための制御装置のリソースは有限であるため、リソースの効率的な使用が要求されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−１７０５３６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述の特許文献１は、ユーザプログラムの実行所要時間の変動等の要因にかかわらず、相前後する入出力リフレッシュ処理の実行間隔を一定化することに注目されており、上述したような課題については考慮されていない。
【０００６】
本技術は、制御装置において一連の処理が繰返し実行される周期を状況に応じて変更する方法に向けられている。
【課題を解決するための手段】
【０００７】
本発明のある局面によれば、Ｉ／Ｏリフレッシュ処理およびプログラム実行処理を含む一連の処理を第１の制御周期で繰返し実行する制御装置を含む制御システムが提供される。制御システムは、第１の制御周期でＩ／Ｏリフレッシュ処理が繰返し実行されることで収集される第１のサンプル値群を取得する第１の取得手段と、第１の制御周期より長い第２の制御周期でＩ／Ｏリフレッシュ処理が繰返し実行された場合に収集されるであろう第２のサンプル値群を取得する第２の取得手段と、第１のサンプル値群に含まれる第１の周波数成分と第２のサンプル値群に含まれる第２の周波数成分とが実質的に同一であるかを判断する判断手段と、第１の周波数成分と第２の周波数成分とが実質的に同一であることを条件に、第１の制御周期を第２の制御周期に変更する変更手段とを含む。
【０００８】
変更手段は、第１の制御周期から第２の制御周期への変更に係る情報を提示するユーザインターフェイスを提供する。
【０００９】
好ましくは、変更手段は、第１の周波数成分と第２の周波数成分とが実質的に同一であるか否かをユーザへ通知する。
【００１０】
好ましくは、変更手段は、ユーザ操作を受けて、第１の制御周期を第２の制御周期に変更する。
【００１１】
好ましくは、第２の取得手段は、複数の第２の制御周期について第２のサンプル値群をそれぞれ取得し、判断手段は、各第２のサンプル値群に含まれる第２の周波数成分を比較することで、第１の周波数成分と実質的に同一である第２の周波数成分のうち、最も長い第２の制御周期を決定する。
【００１２】
好ましくは、第２の制御周期は、第１の制御周期の整数倍に設定される。
好ましくは、制御システムは、サンプル値群を高速フーリエ変換することで周波数成分を生成する変換手段をさらに含む。
【００１３】
好ましくは、制御システムは、一連の処理が第２の制御周期で繰返し実行される状態において、Ｉ／Ｏリフレッシュ処理により収集されるサンプル値が第２の制御周期で適切に収集できているかを判断する監視手段をさらに含む。
【００１４】
本発明の別の局面に従う制御装置は、Ｉ／Ｏリフレッシュ処理およびプログラム実行処理を含む一連の処理を第１の制御周期で繰返し実行する実行手段と、第１の制御周期でＩ／Ｏリフレッシュ処理が繰返し実行されることで収集される第１のサンプル値群を取得する第１の取得手段と、第１の制御周期より長い第２の制御周期でＩ／Ｏリフレッシュ処理が繰返し実行された場合に収集されるであろう第２のサンプル値群を取得する第２の取得手段と、第１のサンプル値群に含まれる第１の周波数成分と第２のサンプル値群に含まれる第２の周波数成分とが実質的に同一であるかを判断する判断手段と、第１の周波数成分と第２の周波数成分とが実質的に同一であることを条件に、第１の制御周期を第２の制御周期に変更する変更手段とを含む。
【発明の効果】
【００１５】
本技術に係る制御装置によれば、一連の処理が繰返し実行される周期を状況に応じて変更できる。
【図面の簡単な説明】
【００１６】
【図１】本実施の形態に従う制御装置を含む制御システムの構成例を示す模式図である。
【図２】本実施の形態に従う制御装置のハードウェア構成例を示すブロック図である。
【図３】本実施の形態に従う制御装置が提供する制御周期の最適化処理の概要を説明する模式図である。
【図４】本実施の形態に従う制御装置での制御周期の最適化による効果を説明する模式図である。
【図５】本実施の形態に従う制御周期の最適化処理（ユーザ主導）に係る処理手順を示すフローチャートである。
【図６】図５のステップＳ４に関連付けられるユーザインターフェイス画面の一例を示す図である。
【図７】図５のステップＳ８およびＳ１０に関連付けられるサンプル値群の生成処理の実装例を説明する模式図である。
【図８】図５のステップＳ１４に関連付けられるユーザインターフェイス画面の一例を示す図である。
【図９】本実施の形態に従う制御周期の最適化処理（自動）に係る処理手順を示すフローチャートである。
【図１０】本実施の形態に従う制御装置のソフトウェア構成の一例を示す模式図である。
【図１１】本実施の形態に従う制御装置の機能構成の一例を示す模式図である。
【図１２】本実施の形態に従う制御周期の最適化処理に係る評価方法の一例を説明する模式図である。
【図１３】本実施の形態に従う制御周期の最適化処理に係る監視機能の一例を説明する模式図である。
【発明を実施するための形態】
【００１７】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【００１８】
＜Ａ．制御システムの構成例＞
まず、本実施の形態に従う制御装置を含む制御システム１の構成例について説明する。
【００１９】
図１は、本実施の形態に従う制御装置を含む制御システム１の構成例を示す模式図である。図１を参照して、本実施の形態に従う制御システム１は、制御装置１００と、ネットワーク１５６を介して制御装置１００に接続されるリモート入出力装置（以下、「リモートＩ／Ｏ（Input/Output）装置」とも称す。）１５０と、制御装置１００に接続されるサポート装置２００とを含む。制御装置１００は、制御装置１００に装着される入出力ユニット、および、リモートＩ／Ｏ装置１５０に装着される入出力ユニットを介して、制御対象または制御に関連する製造装置や生産ラインなど（以下、「フィールド」とも総称する。）から入力データを収集する（Ｉ／Ｏリフレッシュ処理）。
【００２０】
一例として、リモートＩ／Ｏ装置１５０は、接続管理ユニット１５２と、１または複数の入出力ユニット１５４とを含む。接続管理ユニット１５２は、ネットワーク１５６を介して制御装置１００との間でデータを遣り取りする。具体的には、接続管理ユニット１５２は、入出力ユニット１５４が取得した入力データを制御装置１００へ転送するとともに、制御装置１００からの出力データを対象となる入出力ユニット１５４へ転送する。入出力ユニット１５４は、典型的には、フィールドからの信号を入力データとして取得する機能、および、制御装置１００からの出力データに基づいてフィールドへ指令となる信号を出力する機能の少なくとも一方を有している。
【００２１】
制御装置１００は、収集した入力データに基づいて、予め登録されたユーザプログラム（例えば、シーケンス制御を実現するためのシーケンスプログラム、ロボットなどの位置を制御するためのモーションプログラム、各種データ処理を実現するための処理プログラムなどを含む）を実行することで、出力データを算出する（プログラム実行処理）。最終的に、制御装置１００は、算出した出力データに基づいて、対象となる製造装置やライン（典型的には、リレーやサーボなどのアクチュエータ）を駆動するための信号を出力する（Ｉ／Ｏリフレッシュ処理）。
【００２２】
制御装置１００は、基本的には、Ｉ／Ｏリフレッシュ処理およびプログラム実行処理を含む一連の処理を予め設定された制御周期で繰返し実行する。
【００２３】
以下の説明では、主として、フィールドからの入力データの収集処理に着目して説明するが、本実施の形態に従う処理は出力データに基づく指令となる信号の出力にも同様に適用可能である。
【００２４】
サポート装置２００は、制御装置１００が制御対象を制御するために必要な準備を支援する装置である。具体的には、サポート装置２００は、制御装置１００で実行されるプログラムの開発環境（プログラム作成編集ツール、パーサ、コンパイラなど）、制御装置１００および制御装置１００に接続される各種デバイスのパラメータ（コンフィギュレーション）を設定するための設定環境、生成したユーザプログラムを制御装置１００へ送信する機能、制御装置１００上で実行されるユーザプログラムなどをオンラインで修正・変更する機能、などを提供する。
【００２５】
＜Ｂ．制御装置１００のハードウェア構成例＞
次に、本実施の形態に従う制御装置１００のハードウェア構成例について説明する。図２は、本実施の形態に従う制御装置１００のハードウェア構成例を示すブロック図である。図２を参照して、制御装置１００は、予め作成されたユーザプログラムをプロセッサが実行することで、制御対象に応じた制御を実現する。より具体的には、制御装置１００は、ＣＰＵ（Central Processing Unit）やＭＰＵ（Micro-Processing Unit）などのプロセッサ１０２と、チップセット１０４と、メインメモリ１０６と、フラッシュメモリ１０８と、ネットワークコントローラ１１０と、メモリカードインターフェイス１１２と、内部バスコントローラ１１６と、フィールドバスコントローラ１１８と、シリアル通信インターフェイス１２０とを含む。
【００２６】
プロセッサ１０２は、フラッシュメモリ１０８に格納されたシステムプログラムおよびユーザプログラムなど（いずれも不図示）を読み出して、メインメモリ１０６に展開して実行することで、制御対象に応じた制御を実現する。システムプログラムは、データの入出力処理や実行タイミング制御などの、制御装置１００の基本的な機能を提供するための命令コードを含む。ユーザプログラムは、制御対象に応じて任意に設計され、シーケンス制御を実行するためのシーケンスプログラムおよびモーション制御を実行するためのモーションプログラムなどを含む。
【００２７】
チップセット１０４は、各コンポーネントを制御することで、制御装置１００全体としての処理を実現する。内部バスコントローラ１１６は、制御装置１００と内部バスを通じて連結されるＩ／Ｏユニット１３０とデータを遣り取りするインターフェイスである。フィールドバスコントローラ１１８は、制御装置１００とフィールドバスを通じて連結されるリモートＩ／Ｏ装置１５０（より具体的には、リモートＩ／Ｏ装置１５０に含まれる入出力ユニット１５４）とデータを遣り取りするインターフェイスである。
【００２８】
内部バスコントローラ１１６およびフィールドバスコントローラ１１８は、各入出力ユニットに入力される入力データを収集するとともに、プロセッサ１０２での演算結果（出力データ）を各入出力ユニットへ出力する。入出力ユニットは、出力データに応じた出力信号を発生する。
【００２９】
メモリカードインターフェイス１１２は、メモリカード１１４を着脱可能に構成されており、メモリカード１１４に対してデータを書込み、メモリカード１１４から各種データ（ユーザプログラムやトレースデータなど）を読出すことが可能になっている。
【００３０】
ネットワークコントローラ１１０は、各種の有線ネットワークまたは無線ネットワークを通じたデータの遣り取りを制御する。
【００３１】
制御装置１００がプログラムを実行することで提供される機能の一部または全部を、専用のハードウェア回路（例えば、ＡＳＩＣ（Application Specific Integrated Circuit）またはＦＰＧＡ（Field-Programmable Gate Array）など）を用いて実装してもよい。
【００３２】
＜Ｃ．サポート装置２００のハードウェア構成例＞
次に、本実施の形態に従うサポート装置２００は、一例として、汎用コンピュータ上でサポート機能を実現するためのプログラムを実行させることで実現される。すなわち、サポート装置２００のハードウェア構成例としては、汎用アーキテクチャを有するパーソナルコンピュータなどの汎用コンピュータが用いられる。このような汎用コンピュータの具体的構成については周知であるので、ここでは、その詳細な説明は行わない。
【００３３】
＜Ｄ．制御周期の最適化処理の概要＞
次に、本実施の形態に従う制御装置が提供する制御周期の最適化処理の概要について説明する。図３は、本実施の形態に従う制御装置１００が提供する制御周期の最適化処理の概要を説明する模式図である。
【００３４】
図３を参照して、典型的には、制御装置（ＰＬＣ）では、共通処理（ステップＳ１）と、Ｉ／Ｏリフレッシュ処理（ステップＳ２）と、プログラム実行処理（ステップＳ３）と、周辺サービス処理（ステップＳ４）とが所定の制御周期で繰返される処理サイクルを有しているとする。共通処理、Ｉ／Ｏリフレッシュ処理、プログラム実行処理、および、周辺サービス処理の実行に要する時間をサイクルタイムとも称す。
【００３５】
共通処理（ステップＳ１）は、プロセッサやメモリなどのリソースを診断する処理および各部における異常発生を検出する処理を含む。
【００３６】
Ｉ／Ｏリフレッシュ処理（ステップＳ２）は、Ｉ／Ｏユニットがフィールドからの信号を変換して生成する入力データを収集する処理、および、プログラムの実行により算出された出力データを対象のＩ／Ｏユニットへ送出する処理を含む。Ｉ／Ｏリフレッシュ処理において、入力データが収集される周期、および、出力データが送出される周期は、データ毎に設定できるようにしてもよい。
【００３７】
プログラム実行処理（ステップＳ３）は、基本的には、予め用意されたユーザプログラムが実行される。このユーザプログラムは、制御対象の制御に必要な演算処理を実現する。典型的には、ユーザプログラムは複数のタスクを有しており、各タスクの実行周期（処理開始周期／タスク起動周期）は制御周期を基準に設定される。例えば、各タスクの実行周期は、制御周期の整数倍に設定されるようにしてもよい。このような各タスクの実行周期と制御周期とを同一に設定しないので、制御周期毎に実行されるタスクもあれば、例えば、４制御周期毎に実行されるタスクもある。後者のようなタスクについては、１回の実行が複数の制御周期にわたることもある。
【００３８】
周辺サービス処理（ステップＳ４）は、制御対象の制御には直接関係はしない付加的な処理を含む。例えば、周辺サービス処理は、ログデータや運転状況を示す情報のサーバへの送出、サポート装置２００からのアクセスに対する処理、他の装置からの各種パラメータ設定などを含んでいてもよい。
【００３９】
図３に示す周期的に繰返される４つの処理は典型的なものであり、一部の処理が省略されてもよいし、複数の処理が一体的に実行されてもよいし、いずれかの処理の間で実行順序を入れ替えるようにしてもよい。
【００４０】
一般的に、制御装置においては、共通処理（ステップＳ１）、Ｉ／Ｏリフレッシュ処理（ステップＳ２）およびプログラム実行処理（ステップＳ３）を定周期で繰返し実行することが要求されている。処理サイクルの１周期（制御周期）内では、Ｉ／Ｏリフレッシュ処理およびプログラム実行処理が優先的に実行され、残りの時間で、周辺サービス処理（ステップＳ４）が実行される。
【００４１】
一方で、制御装置１００のインテリジェント化に伴って、周辺サービス処理に含まれる処理内容が複雑および多様化しつつあり、周辺サービス処理に対してより多くの実行時間を割り当てたいという要望が増加しつつある。そこで、本実施の形態に従う制御装置１００においては、入力データを収集する周期（以下、「サンプリング周期」とも称す。）を変更した場合の変化を評価して、現在設定されている制御周期の冗長性の有無および程度を判断し、制御周期の冗長性が十分に高いと判断すると制御周期を最適化する。より具体的には、制御周期の最適化としては、制御周期をより長い方向へ変更する処理を含む。
【００４２】
制御周期の冗長性の具体的な評価方法としては、サンプリング周期を仮想的に長くするとともに、そのときに収集されであろう入力データに有意な変化があるか否かを判断する。サンプリング周期は制御周期に依存しており、サンプリング周期を長くしても、入力データに有意な変化が生じていないことが確認されると、制御周期に冗長性がある、すなわち制御周期を延ばすことができると判断できる。
【００４３】
より具体的には、図３に示すように、現在の制御周期Ｔ０で処理が繰返されている状態において、Ｉ／Ｏリフレッシュ処理によって、入力データについてのサンプリング周期Ｔｓ０毎の値（サンプル値群１０）が取集されたとする。サンプリング周期Ｔｓ０毎のサンプル値群１０の一部を抽出して、サンプリング周期Ｔｓ１で仮想的にサンプリングしたときに得られるであろうサンプル値群１１を生成する。例えば、サンプリング周期Ｔｓ１がサンプリング周期Ｔｓ０の２倍である場合には、時系列に並んでいるサンプル値群１０から１個おきにサンプル値を抽出することで、サンプリング周期Ｔｓ１のサンプル値群１１を生成できる。以下同様にして、サンプリング周期を仮想的に変化させたときのサンプル値群をそれぞれ生成できる。
【００４４】
異なるサンプリング周期についてのサンプル値群を互いに比較して、各サンプル値群に含まれる情報の欠落の有無を判断する。各サンプル値群に含まれる情報の欠落の有無を判断する手法の一つとして、各サンプル値群を周波数変換することで得られる周波数成分を用いた比較を採用できる。
【００４５】
典型的には、高速フーリエ変換（ＦＦＴ：Fast Fourier Transform）や離散フーリエ変換（ＤＦＴ：discrete Fourier transform）などにより、各サンプル値群の情報（時間領域の情報）から周波数毎の係数値群（すなわち、スペクトル）などの周波数領域の情報を生成し、これらの周波数領域の情報を互いに比較することができる。
【００４６】
例えば、サンプリング周期Ｔｓ０についてのスペクトルとサンプリング周期Ｔｓ１（Ｔｓ１＞Ｔｓ０）についてのスペクトルとの間に、実質的な相違がなければ、制御周期をサンプリング周期Ｔｓ１に応じた時間まで延ばすことができることを意味する。例えば、対象となる２つのスペクトルが略同一であれば、両スペクトルの間には実質的な相違がないと判断できる。つまり、評価対象の入力データの時間的変化に比較して、サンプリング周期が短すぎて、冗長なサンプリングが行われていると判断できる。この場合、サンプリング周期をその評価対象のデータに生じる時間的変化に応じた時間まで長くしても、収集される入力データに含まれる情報量は実質的に変わらない。
【００４７】
このように、サンプリング周期を仮想的に変化させて、収集されるであろう入力データを評価することで、現在の制御周期の冗長性の有無および程度を判断し、制御周期の長さを最適化できる。
【００４８】
＜Ｅ．制御周期の最適化による効果＞
次に、本実施の形態に従う制御周期の最適化による効果について説明する。図４は、本実施の形態に従う制御装置１００での制御周期の最適化による効果を説明する模式図である。
【００４９】
現在の状態として、図４（Ａ）に示すように、制御周期Ｔ０において処理サイクルが繰返されているとする。すなわち、各制御周期においては、共通処理、Ｉ／Ｏリフレッシュ処理、プログラム実行処理が先に実行された後、残りの時間で、周辺サービス処理が実行される。
【００５０】
図４（Ａ）に示すような状態から制御周期を元の制御周期Ｔ０の２倍とすると、各処理の実行状態は図４（Ｂ）に示すような状態になる。すなわち、共通処理、Ｉ／Ｏリフレッシュ処理、プログラム実行処理が実行される周期は制御周期Ｔ０の２倍となる。これによって、これらの処理サイクルが実行される頻度は１／２になり、これに伴って、周辺サービス処理に対してより多くの実行時間が割り当てられる。
【００５１】
周辺サービス処理により多くの実行時間が割り当てられることで、付加的な各種情報を処理することを容易化でき、制御装置１００のインテリジェント化を促進できる。
【００５２】
説明の便宜上、図４には、元の制御周期を２倍にする例を示すが、元の制御周期に比較してより長い制御周期に変更さえできれば、その変更後の長さについてはいずれであってもよい。
【００５３】
＜Ｆ．処理手順（ユーザ主導）＞
次に、本実施の形態に従う制御周期の最適化処理に係るユーザ主導での処理手順について説明する。図５は、本実施の形態に従う制御周期の最適化処理に係る処理手順（ユーザ主導）を示すフローチャートである。図５に示す各ステップは、制御システム１を構成する制御装置１００およびサポート装置２００が互いに協働することで実現される。制御装置１００およびサポート装置２００がいずれの処理を実施するのかについては、任意に設計することができる。すなわち、各ステップは、制御装置１００およびサポート装置２００のうち、より適切な方の装置で実行されるようにしてもよい。
【００５４】
以下の説明においては、制御装置１００およびサポート装置２００においては、変数プログラミング環境が提供されているとし、これらの装置が取り扱うことのできる入力データ、出力データ、任意の内部データなどの値（実体値）については、変数の形で参照することができる。そのため、以下の説明においては、任意のデータを「変数」と総称することもある。
【００５５】
図５を参照して、本実施の形態に従う制御周期の最適化処理の開始が指示されると（ステップＳ１０２においてＹＥＳの場合）、制御システム１は、制御周期の最適化処理に用いられる変数（以下、「対象変数」とも称す。）の選択をユーザから受付ける（ステップＳ１０４）。
【００５６】
図６は、図５のステップＳ１０４に関連付けられるユーザインターフェイス画面の一例を示す図である。図６に示すユーザインターフェイス画面は、典型的には、サポート装置２００に接続されたディスプレイ上に表示される。後述の図８に示すユーザインターフェイス画面についても同様である。図６および図８に例示されるユーザインターフェイス画面は、元の制御周期から新たな制御周期への変更に係る情報を含むとともに、ユーザ操作を受付ける。
【００５７】
図５のステップＳ１０４においては、例えば、図６に示すようなユーザインターフェイス画面２１０がサポート装置２００上に表示される。ユーザインターフェイス画面２１０には、制御システム１に含まれる入出力ユニットが扱う入力データ（変数）が一覧表示される。この一覧表示には、各入力データについて、当該入力データを収集する入出力ユニットの番号（図６中の参照符号２１４）、入出力ユニットの当該入力データが入力されるチャネル番号（ポート番号）（図６中の参照符号２１６）、当該入力データを参照するために割り当てられている変数名（図６中の参照符号２１８）、当該入力データを収集する入出力ユニットの種別（図６中の参照符号２２０）、および、当該入力データについてのコメント（図６中の参照符号２２２）を含む。
【００５８】
ユーザは、一覧表示される入力データのうち、基本的には、その時間的変化が最も早い変数を対象変数として選択する。具体的には、ユーザインターフェイス画面２１０に含まれる対応するチェックボックス（図６中の参照符号２１２）をチェックする。そして、ユーザがＯＫボタン２２４を押下することで、対象変数の選択が完了する。対象変数は１つではなく、複数を選択できるようにしてもよい。
【００５９】
このように、制御システム１においては、Ｉ／Ｏリフレッシュ処理によって値が更新される変数のうち、最適な制御周期を決定するために用いられる変数（対象変数）を選択するための機能が提供される。
【００６０】
再度図５を参照して、制御装置１００は、選択された対象変数に対するサンプリングを実行し、所定時間にわたる値の変化を収集する（ステップＳ１０６）。収集された対象変数の値（すなわち、現在の制御周期のサンプル値群）から、１または複数の異なるサンプリング周期のサンプル値群が生成される（ステップＳ１０８）。そして、サンプリング周期のサンプル値群の各々について周波数変換が行われて、サンプリング周期毎の周波数変換結果（典型的には、ＦＦＴ結果）が生成される（ステップＳ１１０）。周波数変換結果は、対応のサンプル値群に含まれる周波数成分を含むことになる。
【００６１】
図７は、図５のステップＳ１０８およびＳ１１０に関連付けられるサンプル値群の生成処理の実装例を説明する模式図である。図７を参照して、現在の制御周期におけるサンプリング周期Ｔｓ０で入力データをサンプリングすることでサンプル値群２５０を取得する。サンプル値群２５０を部分抽出することで、サンプリング周期Ｔｓ１（＝サンプリング周期Ｔｓ０×２）、サンプリング周期Ｔｓ２（＝サンプリング周期Ｔｓ０×３）、…のサンプル値群２５２，２５４を生成する。
【００６２】
例えば、現在の制御周期におけるサンプリング周期Ｔｓ０の２倍であるサンプリング周期Ｔｓ１については、サンプリング周期Ｔｓ０のサンプル値群２５０に含まれるサンプル値ｄ１，ｄ２，ｄ３，…を１個おき（図７に示す例では、奇数分）に部分抽出することで、サンプリング周期Ｔｓ１のサンプル値群２５２を生成できる。同様に、現在の制御周期におけるサンプリング周期Ｔｓ０の３倍であるサンプリング周期Ｔｓ２については、サンプリング周期Ｔｓ０のサンプル値群２５０に含まれるサンプル値ｄ１，ｄ２，ｄ３，…を２個おきに部分抽出することで、サンプリング周期Ｔｓ２のサンプル値群２５４を生成できる。そして、各サンプリング周期のサンプル値群に対して周波数変換処理が実行され、周波数変換結果（周波数成分）がそれぞれ生成される。
【００６３】
なお、図７に示すようなサンプル値群に含まれるサンプル値を部分抽出する方法ではなく、Ｉ／Ｏリフレッシュ処理の現実の実行周期を長くすることで、異なるサンプリング周期のサンプル値群を生成するようにしてもよい。
【００６４】
再度図５を参照して、それぞれ生成された周波数変換結果（周波数成分）を互いに比較して、制御周期の冗長性の度合いが評価される（ステップＳ１１２）。具体的には、各サンプリング周期の周波数変換結果が実質的に同一であるか否かが判断される。すなわち、サンプリング周期Ｔｓ０についての周波数変換結果と実質的に同一の周波数変換結果が得られた最大のサンプリング周期が特定される。そして、制御周期の冗長性の度合いについての評価結果および制御周期の変更可否などがユーザへ出力される（ステップＳ１１４）。
【００６５】
図８は、図５のステップＳ１１４に関連付けられるユーザインターフェイス画面の一例を示す図である。ステップＳ１１４においては、例えば、図８に示すようなユーザインターフェイス画面２３０がサポート装置２００上に表示される。ユーザインターフェイス画面２３０には、制御周期の冗長性の度合いについての評価結果（図８中の参照符号２３２）が表示される。さらに、現在の制御周期（図８中の参照符号２３４）に加えて、変更可能な制御周期のリスト（図８中の参照符号２３６）が表示される。
【００６６】
ユーザは、ユーザインターフェイス画面２３０の内容を確認しつつ、状況に応じて、制御周期を選択可能なリストから選択することができる。ユーザが新たな制御周期を選択し、ＯＫボタン２３８を押下することで、制御周期の変更が完了する。
【００６７】
再度図５を参照して、ユーザが制御周期の変更を指示すると（ステップＳ１１６においてＹＥＳの場合）、指示に沿って制御周期が変更される（ステップＳ１１８）。つまり、図５に示される制御周期の最適化処理においては、変更前の制御周期での周波数成分と変更後の制御周期での周波数成分とが同一であることを条件にして、ユーザ操作を受けることで、制御周期が変更される。この制御周期の変更に伴って、ユーザプログラムに含まれる各タスクの実行周期も更新される。ユーザが制御周期の変更を指示しなければ（ステップＳ１１６においてＮＯの場合）、現在の制御周期が維持される。
【００６８】
以上のような処理手順によって、制御周期の最適化処理が完了する。
＜Ｇ．処理手順（自動）＞
上述したユーザ主導での処理手順においては、対象変数の周波数変換結果などに基づいて、制御装置１００およびサポート装置２００が制御周期の変更の可能性をユーザに提示した上で、ユーザが制御周期を変更する指示を与えるような方法について例示した。このような機能を制御装置１００が自動的に行うようにしてもよい。
【００６９】
例えば、動作モードや動作状況に応じて制御対象の挙動が変化するような場合には、状況に応じて、制御周期を自動的に変化させるようにしてもよい。
【００７０】
図９は、本実施の形態に従う制御周期の最適化処理に係る処理手順（自動）を示すフローチャートである。図９に示す各ステップは、基本的には、制御システム１を構成する制御装置１００にて実現されることが想定されているが、制御装置１００およびサポート装置２００が連係して全体の処理を実行するようにしてもよい。なお、図５に示す制御手順のステップと実質的に同一の処理を実行するステップについては、同一のステップ番号を付与している。
【００７１】
図９に示す処理手順においては、制御周期の最適化処理に用いられる変数（対象変数）は予め選択されているとする。
【００７２】
図９を参照して、制御装置１００は、対象変数に対するサンプリングを実行し、所定時間にわたる値の変化を収集する（ステップＳ１０６）。収集された対象変数の値（現在の制御周期のサンプル値群）から、１または複数の異なるサンプリング周期のサンプル値群が生成される（ステップＳ１０８）。そして、サンプリング周期のサンプル値群の各々について周波数変換が行われて、サンプリング周期毎の周波数変換結果（典型的には、ＦＦＴ結果）が生成される（ステップＳ１１０）。周波数変換結果は、対応のサンプル値群に含まれる周波数成分を含むことになる。
【００７３】
それぞれ生成された周波数変換結果（周波数成分）を互いに比較して、制御周期の冗長性の度合いが予め定められた値以上であるか否かが評価される（ステップＳ１１１）。制御周期の冗長性の度合いが予め定められた値未満である場合（ステップＳ１１１においてＮＯの場合）、ステップＳ１０６以下の処理が繰返される。
【００７４】
制御周期の冗長性の度合いが予め定められた値以上である場合（ステップＳ１１１においてＹＥＳの場合）、制御装置１００は、サンプリング周期Ｔｓ０についての周波数変換結果と実質的に同一の周波数変換結果が得られた最大のサンプリング周期を特定し、変更後の制御周期を決定する（ステップＳ１１３）。制御装置１００は、予め定められた条件が成立したタイミングで、ステップＳ１１３において決定した制御周期に変更する（ステップＳ１１５）。つまり、図９に示される制御周期の最適化処理においては、変更前の制御周期での周波数成分と変更後の制御周期での周波数成分とが同一であることを条件にして、制御周期が変更される。そして、ステップＳ１０６以下の処理が繰返される。
【００７５】
以上のような処理手順によって、制御周期が最適な値に維持される。
＜Ｈ．ソフトウェア構成および機能構成＞
次に、本実施の形態に従う制御システム１におけるソフトウェア構成および機能構成について説明する。図１０は、本実施の形態に従う制御装置１００のソフトウェア構成の一例を示す模式図である。
【００７６】
図１０を参照して、制御装置１００では、リアルタイムＯＳ（Operating System）（ＲＴ−ＯＳ）１９０が実行されており、その実行環境下において、ＰＬＣエンジン１７０、ユーザプログラム１６２、最適化プログラム１６６などが実装される。
【００７７】
ＰＬＣエンジン１７０は、ユーザプログラム１６２を実行するための基本的な処理やＩ／Ｏ処理などを実行するモジュールであり、制御周期毎に更新される変数（例えば、Ｉ／Ｏ変数１７２、システム変数１７４、ユーザ変数１７６）、および、ユーザプログラム１６２からコールされるファンクションモジュール１７８などを含む。Ｉ／Ｏ変数１７２は、制御装置１００が利用可能なＩ／Ｏユニットが収集または出力する入力データおよび出力データを示す。Ｉ／Ｏ変数１７２としては、他の制御装置が管理する入力データおよび出力データを含むようにしてもよい。システム変数１７４は、制御装置１００のハードウェアまたはソフトウェアの状態などの値を示す。ユーザ変数１７６は、ユーザプログラム１６２で使用される変数の実値を示す。
【００７８】
ユーザプログラム１６２は、制御対象に応じて任意に設計された一連の命令の集合である。ユーザプログラム１６２は、１または複数のタスクを含み得る。設定パラメータ１６４は、制御周期、タスク毎の実行周期および優先度、変数のサンプリング数などの値を含む。このように、Ｉ／Ｏリフレッシュに係るサンプリング数の設定および保存の機能が提供される。
【００７９】
最適化プログラム１６６は、本実施の形態に従う制御周期の最適化処理を実現するためのプログラムモジュールからなる。最適化プログラム１６６は、対象変数リスト１６８に指定される対象変数に関して、制御周期の最適化処理を実行する。最適化プログラム１６６により生成されるデータ（サンプル値群１８２および周波数変換結果１８４など）は、データ格納部１８０に保持される。
【００８０】
対象変数リスト１６８は、ユーザによって選択される対象変数を特定するための情報を含む。すなわち、本実施の形態に従う制御周期の最適化処理に係る対象変数の選択および保存の機能が提供される。
【００８１】
上述したようなモジュールおよびプログラムとユーザとの対話を行うためのユーザインターフェイスモジュール１６０も実装される。ユーザインターフェイスモジュール１６０は、サポート装置２００との間で情報を遣り取りすることで、上述したような処理を実現する。典型的には、ユーザインターフェイスモジュール１６０は、サポート装置２００からの情報（ユーザ操作やユーザ設定）をモジュールまたはプログラムへ伝達するとともに、モジュールまたはプログラムからの応答をサポート装置２００へ出力する。
【００８２】
図１０に示すようなソフトウェア構成を採用することで、制御装置１００は、以下のような機能構成を実現する。
【００８３】
図１１は、本実施の形態に従う制御装置１００の機能構成の一例を示す模式図である。図１１を参照して、制御装置１００の最適化プログラム１６６は、サンプル値群収集モジュール１６６１と、サンプル値群生成モジュール１６６２と、周波数変換モジュール１６６３と、評価モジュール１６６４とを含む。
【００８４】
サンプル値群収集モジュール１６６１は、制御周期を最適化するためのデータ収集機能を提供し、現在の制御周期でＩ／Ｏリフレッシュ処理が繰返し実行されることで収集されるサンプル値群を取得する。具体的には、サンプル値群収集モジュール１６６１は、対象変数リスト１６８に指定されている対象変数について、設定パラメータ１６４に従って、ＰＬＣエンジン１７０が都度更新するＩ／Ｏ変数１７２（図１０参照）の値を周期的にサンプリングすることで、サンプリング周期Ｔｓ０でのサンプル値群を生成する。
【００８５】
サンプル値群生成モジュール１６６２は、現在の制御周期より長い制御周期でＩ／Ｏリフレッシュ処理が繰返し実行された場合に収集されるであろうサンプル値群を取得する。すなわち、サンプル値群生成モジュール１６６２は、サンプリング周期Ｔｓ０以外のサンプリング周期（＞Ｔｓ０）でのサンプル値群を生成する（上述の図７などを参照）。サンプリング周期Ｔｓ０以外のサンプリング周期としては、サンプリング周期Ｔｓ０の整数倍が用いられてもよい。すなわち、制御周期の最適化の候補となる制御周期としては、現在の制御周期の整数倍の値が用いられてもよい。
【００８６】
例えば、サンプリング周期Ｔｓ０の２倍、あるいは、サンプリング周期Ｔｓ０の３倍といった具合である。このように、サンプル値群生成モジュール１６６２は、制御周期より長い複数の制御周期についてサンプル値群をそれぞれ取得するようにしてもよい。
【００８７】
周波数変換モジュール１６６３は、制御周期を最適化するために、周波数成分を算出する機能および算出した周波数成分を格納する機能を提供する。ここで、周波数変換モジュール１６６３は、収集した対象変数に係るサンプル値群について、サンプリング周期を延ばした上で、それらに含まれる周波数成分を算出する。すなわち、周波数変換モジュール１６６３は、サンプル値群収集モジュール１６６１およびサンプル値群生成モジュール１６６２がそれぞれ生成したサンプル値群の各々に対して、周波数変換を行うことで周波数成分を示す周波数変換結果１８４を生成する。このような手順によって、周波数変換モジュール１６６３は、収集されたサンプル値群から周波数成分を算出する。周波数変換結果１８４は、データ格納部１８０に格納される。
【００８８】
周波数変換モジュール１６６３は、典型的には、対象のサンプル値群を高速フーリエ変換（ＦＦＴ）または離散フーリエ変換（ＤＦＴ）することで、周波数成分を生成する。
【００８９】
評価モジュール１６６４は、周波数成分を比較する機能を提供するモジュールであり、現在の制御周期に対応するサンプル値群に含まれる周波数成分と、より長い制御周期に対応するサンプル値群に含まれる周波数成分とが実質的に同一であるかを判断する。すなわち、評価モジュール１６６４は、算出した周波数変換結果１８４を互いに比較して、両者に実質的な相違がなければ、現在設定されている制御周期について冗長性があると評価する。評価モジュール１６６４は、いずれのサンプリング周期まで実質的な同一性が維持されるのかを判断し、実質的な同一性を維持することができるサンプリング周期と現在のサンプリング周期Ｔｓ０との比率を冗長性の度合いとして算出する。すなわち、算出された２つの周波数変換結果１８４の間で実質的な相違がなければ、設定パラメータ１６４に規定された制御周期を延ばすことができる。
【００９０】
上述の図８に示すように、評価モジュール１６６４は、現在の制御周期に対応するサンプリング周期Ｔｓ０とそれより長い１つの制御周期に対応するサンプリング周期Ｔｓ１とを比較する場合には、同一であるか否かを判断する。そして、評価モジュール１６６４は、サンプリング周期Ｔｓ０についての周波数成分とサンプリング周期Ｔｓ１についての周波数成分とが実質的に同一であるか否かをユーザへ通知する。一方で、複数の制御周期について周波数成分が評価される場合には、評価モジュール１６６４は、各サンプル値群に含まれる周波数成分を比較することで、現在の制御周期に対応する周波数成分と実質的に同一である周波数成分のうち、最も長い制御周期を決定するようにしてもよい。
【００９１】
評価モジュール１６６４は、ユーザインターフェイスモジュール１６０を介して、これらの評価結果をサポート装置２００へ出力する。すなわち、ユーザインターフェイスモジュール１６０は、現在の制御周期に対応する周波数成分とより長い制御周期に対応する周波数成分とが実質的に同一である場合に、現在の制御周期をより長い制御周期に変更するためのユーザインターフェイスを提供する。ユーザからの制御周期の変更指令に応じて、制御装置１００の制御周期が延長される。そして、ユーザ操作（ユーザからの制御周期の変更指令）を受けて、ユーザインターフェイスモジュール１６０は、設定パラメータ１６４に格納される制御周期の値が更新される。
【００９２】
なお、上述の制御周期の最適化処理によって制御周期を長くできると判断されると、ユーザ操作を待たずに、制御周期を自動的に変更するようにしてもよい。
【００９３】
このような機能構成によって、本実施の形態に従う制御周期の最適化処理が実現される。
【００９４】
＜Ｉ．評価手法＞
次に、制御周期を延ばすことができるか否かを評価する手法のいくつかについて例示する。
【００９５】
（ｉ１：スペクトル）
上述の図３に示すように、サンプル値群についての周波数変換結果であるスペクトル（波形）を互いに比較して、実質的に同一であるか否かを評価することができる。この場合、波形間の相間値（典型的には、多次元相関値）を算出し、その算出された相間値の大きさに基づいて、実質的に同一であるか否か、あるいは、類似性を評価するようにしてもよい。波形間の相間値は、例えば、主成分分析などの手法を用いて算出することができる。なお、相関値の算出方法については、公知の任意の方法を採用できる。
【００９６】
（ｉ２：ピーク波長の周波数）
サンプル値群を周波数変換した結果に含まれる波長成分に基づいて、同一性の有無を評価するようにしてもよい。図１２は、本実施の形態に従う制御周期の最適化処理に係る評価方法の一例を説明する模式図である。
【００９７】
図１２を参照して、サンプリング周期Ｔｓ０，Ｔｓ１，Ｔｓ２，…の各々についての周波数変換結果に含まれるピーク周波数が抽出される。各サンプリング周波数についてのピーク周波数の組を比較することで、同一性の有無または類似性を評価するようにしてもよい。
【００９８】
図１２に示す例では、サンプリング周期Ｔｓ０およびＴｓ１についての周波数変換結果からは、いずれもピーク周波数ｆ１，ｆ２，ｆ３が抽出されており、両者は実質的に同一であると評価される。一方、サンプリング周期Ｔｓ２についての周波数変換結果からは、ピーク周波数ｆ１，ｆ２のみが抽出されており、相違が発生していると判断できる。
【００９９】
このように、生成された周波数変換結果に含まれるピーク周波数の数および／または周波数そのものに基づいて、同一性または類似性を評価することができる。
【０１００】
あるいは、サンプリング周期が長くなるに従って、サンプリング可能な周波数の上限が制限されることになるので、周波数変換結果に含まれる高周波成分に基づいて、同一性または類似性を評価するようにしてもよい。
【０１０１】
図１２に示す例では、サンプリング周期Ｔｓ０およびＴｓ１についての周波数変換結果からは、最大のピーク周波数としてｆ３が抽出されているのに対して、サンプリング周期Ｔｓ２についての周波数変換結果からは、最大のピーク周波数としてｆ２（＜ｆ３）のみが抽出されている。
【０１０２】
このようなサンプリングの原理的な知見から、各周波数変換結果に含まれる最大の周波数に着目して、両者の同一性または類似性を評価するようにしてもよい。
【０１０３】
（ｉ３：時間領域）
上述した周波数領域の情報を用いる処理に代えて、時間領域の波形そのもの同士を比較するようにしてもよい。この場合には、例えば、時間軸を調整した上で、時間領域での波形間の相間値（典型的には、多次元相関値）を算出し、その算出された相間値の大きさに基づいて、実質的に同一であるか否か、あるいは、類似性を評価するようにしてもよい。
【０１０４】
なお、上述した手法は、一例であり、これらに限られるものではない。２つの時間波形または周波数変換結果を比較して、実質的に同一であるか否かを評価できれば、どのような手法を採用してもよい。
【０１０５】
＜Ｊ．監視機能（付加機能）＞
次に、本実施の形態に従う制御システム１における制御周期の最適化処理により制御周期を変更した場合には、その変更した制御周期で処理サイクルが繰返し実行されることの健全性を監視する機能を付加するようにしてもよい。以下、このような付加機能としての監視機能について説明する。
【０１０６】
制御周期を長くした場合には、Ｉ／Ｏリフレッシュ処理の実行周期も長くなる。そのため、フィールドからの入力データのリフレッシュ周期も長くなる一方で、最適化処理を実行したときに比較して、入力データの時間的変化が早くなる可能性もある。そのため、監視機能として、このような入力データの特性が変わった場合に、制御周期をより短くする、あるいは、入力データの特性が変わったことを通知する、といった監視機能を実装することが好ましい。
【０１０７】
本実施の形態に従う制御システム１に付加的に実装される監視機能は、Ｉ／Ｏリフレッシュ処理およびプログラム実行処理を含む一連の処理が変更後の制御周期で繰返し実行される状態において、Ｉ／Ｏリフレッシュ処理により収集されるサンプル値が変更後の制御周期で適切に収集できているかを判断する。
【０１０８】
このような監視機能としては、上述したような制御周期の最適化処理と同様に、サンプリング周期を異ならせたそれぞれのサンプル値群の同一性または類似性を所定周期毎に評価することで、現在設定されている（変更後の）制御周期の妥当性を監視することができる。監視対象の変数としては、先の最適化処理に用いた対象変数と同じものであってもよいし、別のものであってもよい。基本的には、Ｉ／Ｏリフレッシュ処理の対象となるすべての変数のうち、任意に選択された変数を監査対象にできる。
【０１０９】
但し、制御周期が長くなるに伴って、Ｉ／Ｏリフレッシュ処理の実行周期も長くなっているので、十分に短いサンプリング周期を確保することができない場合もある。そのよういな場合には、入出力ユニット側にて必要なサンプリング周期を確保するとともに、Ｉ／Ｏリフレッシュ処理においては、複数回にわたるサンプリング結果を収集するようにしてもよい。
【０１１０】
図１３は、本実施の形態に従う制御周期の最適化処理に係る監視機能の一例を説明する模式図である。図１３を参照して、例えば、元の制御周期Ｔ０が２倍に延長された状態で処理サイクルが実行されている状態を考える。この場合、本来的には、現在の制御周期で入力データを収集することになるが、例えば、入出力ユニットにて、現在の制御周期より短い周期で入力データのサンプリングを行うとともに、Ｉ／Ｏリフレッシュ処理においては、前回のＩ／Ｏリフレッシュ処理以降に収集された複数の入力データを取得するようにしてもよい。
【０１１１】
図１３に示す例では、変更前の制御周期Ｔ０の半分に相当する時間周期で入出力ユニットにてサンプリングが行われており、各Ｉ／Ｏリフレッシュ処理においては、４回のサンプリングにより得られた入力データＤ１，Ｄ２，Ｄ３，Ｄ４が収集できる。より短いサンプリング周期で収集された入力データ群を用いて、上述した最適化処理と同様の処理を行うことで、現在の制御周期が適切なものであるか否かを監視することができる。
【０１１２】
このとき、先の最適化処理に用いた対象変数の変更前の制御周期について生成された周波数変換結果を基準として評価してもよい。
【０１１３】
上述したような監視処理によって、監視対象の周波数変換結果の変化が検知されると、その旨をユーザに通知するようにしてもよい。そして、ユーザ操作を受けて、制御周期を元に戻すような処理を行ってもよいし、あるいは、制御周期を自動的に元に戻すようにしてもよい。このような監視機能を実装することで、制御対象に何らかの状態変化が生じたとしても、本体の制御機能を維持することができる。
【０１１４】
＜Ｋ．その他の実装形態＞
上述の図１０に示す実装形態においては、制御装置１００に存在する最適化プログラム１６６が主たる機能および処理を実現する。但し、このような形態に限られることはなく、処理の全部または一部がサポート装置２００あるいは図示しない外部装置（例えば、クラウド上の処理機能）に実装されてもよい。この場合、典型的には、現在設定されている制御周期に従って対象変数をサンプリングすることで、制御装置１００にてサンプル値群が収集される。この収集されたサンプル値群が、制御装置１００、サポート装置２００、あるいは、外部装置などに実装された処理主体へ送信されることになる。そして、処理主体にて、上述したような評価処理を含む必要な処理が行われて、現在の制御周期に冗長性があると判断されると、その判断結果および変更後の制御周期が当該処理主体から戻されることになる。
【０１１５】
すなわち、本実施の形態に従う制御周期の最適化処理は、各時代に応じた技術を用いて、適宜実装することができる。
【０１１６】
＜Ｌ．利点＞
一般的に、Ｉ／Ｏリフレッシュ処理およびプログラム実行処理を含めた処理サイクルのサイクルタイムを考慮して制御周期を設定することが多いが、制御周期の設定は、設定者の個人差もあり、過度に冗長になっている場合もある。すなわち、本来必要以上に短い制御周期が設定されている可能性もあり、このような場合には、周辺サービス処理に割り当てられる時間が制限されてしまう。
【０１１７】
これに対して、本実施の形態に従う制御システム１およびそこで実現される制御周期の最適化処理によれば、Ｉ／Ｏリフレッシュ処理により取得される対象変数の状態に応じて、制御周期の冗長性の有無および程度を判断し、十分な冗長性があると判断された場合には、制御周期を延ばすことで、周辺サービス処理に割り当てる実行時間を増加させることができる。
【０１１８】
また、制御周期を延ばした後、Ｉ／Ｏリフレッシュ処理により収集される入力データに何らかの変化が生じ、制御周期をより短くすべきと判断されると、その判断結果に応じて、制御周期を元に戻すような監視処理を行うこともできる。このような処理を組合わせることで、効率かつ安全な制御周期の設定を実現できる。
【０１１９】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１２０】
１  制御システム、１０，１１，１８２，２５０，２５２，２５４  サンプル値群、１００  制御装置、１０２  プロセッサ、１０４  チップセット、１０６  メインメモリ、１０８  フラッシュメモリ、１１０  ネットワークコントローラ、１１２  メモリカードインターフェイス、１１４  メモリカード、１１６  内部バスコントローラ、１１８  フィールドバスコントローラ、１２０  シリアル通信インターフェイス、１３０  Ｉ／Ｏユニット、１５０  リモート入出力装置（リモートＩ／Ｏ装置）、１５２  接続管理ユニット、１５４  入出力ユニット、１５６  ネットワーク、１６０  ユーザインターフェイスモジュール、１６２  ユーザプログラム、１６４  設定パラメータ、１６６  最適化プログラム、１６８  対象変数リスト、１７０  ＰＬＣエンジン、１７２  Ｉ／Ｏ変数、１７４  システム変数、１７６  ユーザ変数、１７８  ファンクションモジュール、１８０  データ格納部、１８４  周波数変換結果、２００  サポート装置、１６６１  サンプル値群収集モジュール、１６６２  サンプル値群生成モジュール、１６６３  周波数変換モジュール、１６６４  評価モジュール。
【図１】
2018084894.tif 000003
【図２】
2018084894.tif 000004
【図３】
2018084894.tif 000005
【図４】
2018084894.tif 000006
【図５】
2018084894.tif 000007
【図６】
2018084894.tif 000008
【図７】
2018084894.tif 000009
【図８】
2018084894.tif 000010
【図９】
2018084894.tif 000011
【図１０】
2018084894.tif 000012
【図１１】
2018084894.tif 000013
【図１２】
2018084894.tif 000014
【図１３】
2018084894.tif 000015