(57)【要約】【課題】処理対象となるデータの解析の精度を向上させることを可能にする。【解決手段】データ数に依存しない処理を実行する第１の実行タスクと、データ数に依存する処理を実行する第２の実行タスクとを、共通の処理ユニットにより実行する産業用制御装置と、支援装置とを備える。産業用制御装置は、第１の実行タスクによる処理ユニットの制御負荷量を算出すると共に、第１および第２の各実行タスクの中から第２の実行タスクを抽出する。支援装置は、上記抽出された第２の実行タスクの種類別に解析用データ数に応じた上記処理ユニットの処理負荷量を算出し、この処理負荷量と上記制御負荷量とを用いて、上記処理ユニットの処理能力の残り度合いを示す処理の余裕度を算出する。【選択図】図４
2019109580.tif 000002
【特許請求の範囲】
【請求項１】
制御対象の動作を制御するための処理を実行する第１の実行タスクと、前記制御対象の動作に係る解析用データを取得して前記動作を解析する処理を実行する第２の実行タスクとを、実行する共通の処理ユニットと、
前記第１の実行タスクによる前記処理ユニットの制御負荷量を算出する第１の算出部と、
前記第１および第２の各実行タスクの中から、前記第２の実行タスクを抽出する抽出部と
を備える産業用制御装置と、
前記産業用制御装置から、前記算出された制御負荷量および前記抽出された第２の実行タスクの種類を表す情報を取得する取得部と、
前記取得された第２の実行タスクの種類別に、前記解析用データの数ごとに前記処理ユニットの処理負荷量を算出する第２の算出部と、
前記取得された制御負荷量および前記算出された処理負荷量を表す情報に基づいて、前記処理ユニットが前記第１および第２の各実行タスクを実行したときに残る処理能力の度合いを示す処理の余裕度を前記解析用データの数ごとに算出する余裕度算出部と、
前記算出された処理の余裕度を表す情報を出力する出力制御部と
を備える支援装置と
を具備する産業用制御システム。
【請求項２】
前記抽出部は、前記第１および第２の各実行タスクを実行させるために用意された複数のプログラムの少なくとも一部が機能ブロックで記述されている場合に、前記第１および第２の各実行タスクを実行させるプログラムが予め定められた機能ブロックに該当するものかを判定することにより、前記第２の実行タスクを抽出する、請求項１に記載の産業用制御システム。
【請求項３】
前記抽出部は、前記第１および第２の各実行タスクを実行させるために用意された複数のプログラムが、前記第１の実行タスクに関連付けられた第１の記憶領域と、前記第２の実行タスクに関連付けられた第２の記憶領域とに分けてそれぞれ記憶されている場合に、前記実行タスクを実行させるプログラムが前記第１および第２の記憶領域のいずれに記憶されたものかを判定することにより、前記第２の実行タスクを抽出する、請求項１に記載の産業用制御システム。
【請求項４】
制御対象の動作を制御するための処理を実行する第１の実行タスクと、予め設定された実行ルールに従い前記制御対象の動作に係る解析用データを取得して前記動作を解析する処理を実行する第２の実行タスクとを、共通の処理ユニットにより実行し、かつ前記第１の実行タスクによる前記処理ユニットの制御負荷量を算出すると共に、前記第１および第２の各実行タスクの中から前記第２の実行タスクを抽出する処理を行う産業用制御装置と共に使用される支援装置であって、
前記産業用制御装置から、前記算出された制御負荷量および前記抽出された第２の実行タスクの種類を表す情報を取得する取得部と、
前記取得された第２の実行タスクの種類別に、前記解析用データの数ごとに前記処理ユニットの処理負荷量を算出する算出部と、
前記取得された制御負荷量および前記算出された処理負荷量を表す情報に基づいて、前記処理ユニットが前記第１および第２の各実行タスクを実行したときに残る処理能力の度合いを示す処理の余裕度を前記解析用データの数ごとに算出する余裕度算出部と、
前記算出された余裕度を表す情報を出力する出力制御部と
を具備する支援装置。
【請求項５】
前記算出部は、前記抽出された第２の実行タスクの種類ごとに、解析用データ数と当該解析用データ数ごとの処理時間とから、前記第２の実行タスクの処理負荷量を前記解析用データの数ごとに算出する、請求項４に記載の支援装置。
【請求項６】
前記算出された処理の余裕度と、前記処理ユニットが前記第２の実行タスクを実行したときに当該第２の実行タスクの目的が達成される確率を示す精度との関係を、前記第２の実行タスクが取得する解析用データ数の関数として表す関係情報を生成する関係情報生成部を、さらに具備し、
前記出力制御部は、前記生成された関係情報を表示可能な情報として出力する、請求項４に記載の支援装置。
【請求項７】
前記関係情報生成部は、
機種が異なる複数の産業用制御装置の各々における処理の余裕度を表す情報を記憶する第１のメモリテーブルと、
処理アルゴリズムが異なる複数の第２の実行タスクの各々の処理負荷量を表す情報を記憶する第２のメモリテーブルと、
前記第１および第２のメモリテーブルに記憶された各情報に基づいて、前記複数の産業用制御装置と前記複数の第２の実行タスクとの全ての組み合わせについて、それぞれ前記関係情報を生成する生成処理部と
を備え、
前記出力制御部は、前記生成された複数の関係情報の中から、予め設定された条件を満たす関係情報を選択し、当該選択された関係情報を表示可能な情報として出力する、請求項６に記載の支援装置。
【請求項８】
前記生成された関係情報と、前記第１の実行タスクと前記第２の実行タスクとの優先度合いを表す動作条件とに基づいて、当該動作条件に対応する前記第２の実行タスクの実行ルールの推奨値を生成する推奨値生成部を、さらに具備し、
前記出力制御部は、前記生成された実行ルールの推奨値を表示可能な情報として出力する、請求項６に記載の支援装置。
【請求項９】
前記生成された関係情報に基づいて、前記第２の実行タスクの実行ルールの決定値を生成する決定値生成部と、
前記決定値生成部により生成された実行ルールの決定値を、前記産業用制御装置が実行する前記第２の実行タスクの実行ルールとして設定する実行ルール設定部と
を、さらに具備する請求項６に記載の支援装置。
【請求項１０】
前記決定値生成部は、前記生成された関係情報に基づいて、前記第２の実行タスクの実行ルールの決定値を生成し直す処理を、さらに実行し、
前記実行ルール設定部は、前記産業用制御装置が実行する前記第２の実行タスクの実行ルールを、前記決定値生成部により生成し直された実行ルールの決定値により更新する処理を、さらに実行する請求項９に記載の支援装置。
【請求項１１】
前記実行ルールは、前記第２の実行タスクが処理対象とするデータの周期の時間長を表す情報と、前記処理対象とするデータの処理対象区間の開始位置を表す情報と、前記処理対象区間の範囲を表す情報とを含む、請求項４乃至１０のいずれかに記載の支援装置。
【請求項１２】
制御対象の動作を制御するための処理を実行する第１の実行タスクと、前記制御対象の動作に係る解析用データを取得して前記動作を解析する処理を実行する第２の実行タスクとを、プロセッサおよびメモリを有する共通の処理ユニットにより実行する産業用制御装置と、当該産業用制御装置と共に使用されかつプロセッサおよびメモリを有する支援装置とが、実行する制御支援方法であって、
前記産業用制御装置が、前記第１の実行タスクによる前記処理ユニットの制御負荷量を算出する過程と、
前記産業用制御装置が、前記第１および第２の各実行タスクの中から、前記第２の実行タスクを抽出する過程と、
前記支援装置が、前記産業用制御装置から前記算出された制御負荷量および前記抽出された第２の実行タスクの種類を表す情報を取得する過程と、
前記支援装置が、前記取得された第２の実行タスクの種類別に、前記解析用データの数ごとに前記処理ユニットの処理負荷量を算出する過程と、
前記支援装置が、前記取得された制御負荷量および前記算出された処理負荷量を表す情報に基づいて、前記処理ユニットが前記第１および第２の各実行タスクを実行したときに残る処理能力の度合いを示す処理の余裕度を前記解析用データの数ごとに算出する過程と、
前記支援装置が、前記解析用データの数ごとに算出された処理の余裕度を表す情報を出力する過程と
を具備する制御支援方法。
【請求項１３】
請求項１乃至３のいずれかに記載の産業用制御システムが備える前記各部を、前記産業用制御装置が備えるプロセッサに実行させるプログラム。
【請求項１４】
請求項４乃至１１のいずれかに記載の支援装置が備える前記各部を、前記支援装置が備えるプロセッサに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、例えば、生産ラインまたは生産機器を制御するために用いられる産業用制御システムと、当該システムで使用される支援装置、制御支援方法およびプログラムに関する。
【背景技術】
【０００２】
一般に、生産物を複数の工程により流れ作業で生産する生産ラインは、工程ごとに配置される生産機器ごとに、Programmable Logic Controller（ＰＬＣ）またはIndustrial Personal Computer（ＩＰＣ）等と呼称される産業用制御装置を配置し、この産業用制御装置により上記各生産機器の動作を制御するように構成されている。産業用制御装置は、制御対象となる生産機器に対し高速かつ高精度の処理を周期的に実行する。
【０００３】
また、近年産業用制御装置に、生産機器の制御機能以外に付加的な情報処理機能を持たせることが提案されている。付加的な情報処理機能としては、例えば、生産機器の動作に係るデータを収集し、収集されたデータを解析することで、上記生産機器の挙動を監視するものがある。この種の機能を産業用制御装置に付加することで、例えば生産機器の異常発生等をリアルタイムに検知し、生産機器または生産ラインを停止させるといった処置を講じることが可能となる。この場合、上記異常発生等を誤検知すると、生産ラインの停止等による生産効率の低下を起こす。そのため、上記異常発生等の検知を行う際には多くのデータ数を収集する必要がある。
【０００４】
一方、産業用制御装置の本来の目的は、生産ラインを安全かつ確実に動作させることである。そのためには、産業用制御装置をある一定の余裕度（制御周期の残余時間）を保持した状態でタスクを設定し実行させる必要がある。そこで従来では、例えば特許文献１に記載されているように、設定される実行タスクの処理時間を個々に算出してその結果を積算することにより、余裕度を算出することが提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第３９０１４１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところが、特許文献１または２に記載された技術は、設定された実行タスク全体の処理時間、つまりデータ数に依存するタスクもまた依存しないタスクも含む全てのタスクの処理時間は把握できるものの、解析するデータ数に応じて余裕度がどのように変化するかについては把握することが困難だった。
【０００７】
この発明は上記事情に着目してなされたもので、産業用制御装置に対し許容される処理の余裕度の範囲内でより多くのデータ数を設定し、これにより装置を制御時間を確保して確実に動作させつつ、解析に必要なデータ数を確保することができる産業用制御システムとその支援装置、制御支援方法およびプログラムを提供しようとするものである。
【課題を解決するための手段】
【０００８】
上記課題を解決するためにこの発明に係る産業用制御システムの第１の態様は、産業用制御装置と、支援装置とを具備する。前記産業用制御装置は、制御対象の動作を制御するための処理を実行する第１の実行タスクと、前記制御対象の動作に係る解析用データを取得して前記動作を解析する処理を実行する第２の実行タスクとを、実行する共通の処理ユニットと、前記第１の実行タスクによる前記処理ユニットの制御負荷量を算出する第１の算出部と、前記第１および第２の各実行タスクの中から前記第２の実行タスクを抽出する抽出部とを備える。前記支援装置は、前記産業用制御装置から、前記算出された制御負荷量および前記抽出された第２の実行タスクの種類を表す情報を取得する取得部と、前記取得された第２の実行タスクの種類別に、前記解析用データの数ごとに前記処理ユニットの処理負荷量を算出する第２の算出部と、前記取得された制御負荷量および前記算出された処理負荷量を表す情報に基づいて、前記処理ユニットが前記第１および第２の各実行タスクを実行したときに残る処理能力の度合いを示す処理の余裕度を前記解析用データの数ごとに算出する余裕度算出部と、前記算出された処理の余裕度を表す情報を出力する出力制御部とを備える。
【０００９】
この発明に係る産業用制御システムの第１の態様によれば、産業用制御装置が実行する各実行タスクの中から解析用データ数に依存する第２の実行タスクのみが抽出され、支援装置において上記抽出された第２の実行タスクの種類別に解析用データ数ごとに処理負荷量が算出される。そして、この算出された処理負荷量と、上記解析用データ数には依存しない第１の実行タスクによる制御負荷量とをもとに、産業用制御装置の処理ユニットの処理の余裕度が求められる。
【００１０】
すなわち、第２の実行タスクの種類によって解析用データ数ごとの処理時間が異なる場合でも、第２の実行タスクの種類ごとに解析用データ数に応じた処理負荷量を算出することができる。従って、産業用制御装置の管理者は、第２の実行タスクを実行する解析用プログラムの種類と解析用データ数に応じた産業用制御装置の処理の余裕度を把握することができ、これにより許容される余裕度内でより多くの解析用データを取得してその解析処理を産業用制御装置に実行させるように、産業用制御装置の実行ルールを設定することが可能となる。よって、産業用制御装置は、許容される余裕度の範囲内で極力多くの解析用データを取得し、これにより制御対象の動作をより高精度に解析処理することが可能となる。  
すなわち、産業用制御装置を制御時間を確保して確実に動作させつつ、解析に必要なデータ数を確保することが可能となる。
【００１１】
この発明に係る産業用制御システムの第２の態様は、前記抽出部において、前記第１および第２の各実行タスクを実行させるために用意された複数のプログラムの少なくとも一部が機能ブロックで記述されている場合に、前記第１および第２の各実行タスクを実行させるプログラムが予め定められた機能ブロックに該当するものかを判定することにより、前記第２の実行タスクを抽出するようにしたものである。
【００１２】
前記産業用制御システムの第２の態様によれば、実行タスクが実行されるごとに、そのプログラムの少なくとも一部が予め定められた機能ブロックに該当するものかを判定することにより、データ数に依存する実行タスクを抽出することができ、これにより各プログラムに実行タスクの種類を識別するための付加情報を付加することなく、データ数に依存する実行タスクを抽出することができる。
【００１３】
この発明に係る産業用制御システムの第３の態様は、前記抽出部において、前記第１および第２の各実行タスクを実行させるために用意された複数のプログラムが、前記第１の実行タスクに関連付けられた第１の記憶領域と、前記第２の実行タスクに関連付けられた第２の記憶領域とに分けてそれぞれ記憶されている場合に、前記実行タスクを実行させるプログラムが前記第１および第２の記憶領域のいずれに記憶されたものかを判定することにより、前記第２の実行タスクを抽出するようにしたものである。
【００１４】
前記産業用制御システムの第３の態様によれば、実行タスクが実行されるごとに、そのプログラムが第１および第２の記憶領域のいずれに記憶されていたものかを判定することにより、データ数に依存する実行タスクを抽出することができ、これにより各プログラムに実行タスクの種類を識別するための付加情報を付加することなく、またプログラムを種類別に機能ブロックに収容しておくことなく、データ数に依存する実行タスクを抽出することができる。
【００１５】
この発明に係る支援装置の第１の態様は、制御対象の動作を制御するための処理を実行する第１の実行タスクと、予め設定された実行ルールに従い前記制御対象の動作に係る解析用データを取得して前記動作を解析する処理を実行する第２の実行タスクとを、共通の処理ユニットにより実行し、かつ前記第１の実行タスクによる前記処理ユニットの制御負荷量を算出すると共に、前記第１および第２の各実行タスクの中から前記第２の実行タスクを抽出する処理を行う産業用制御装置と共に使用される支援装置にあって、前記産業用制御装置から前記算出された制御負荷量および前記抽出された第２の実行タスクの種類処理負荷量を表す情報を取得する取得部と、前記取得された第２の実行タスクの種類別に、前記解析用データの数ごとに前記処理ユニットの処理負荷量を算出する算出部と、前記取得された制御負荷量および前記算出された処理負荷量を表す情報に基づいて、前記処理ユニットが前記第１および第２の各実行タスクを実行したときに残る処理能力の度合いを示す処理の余裕度を前記解析用データの数ごとに算出する余裕度算出部と、前記算出された余裕度を表す情報を出力する出力制御部とを具備するものである。
【００１６】
この発明に係る支援装置の第１の態様によれば、産業用制御装置により抽出された、第２の実行タスクの種類を表す情報に基づいて、当該第２の実行タスクの種類別のデータ数ごとに処理負荷量が算出され、この第２の実行タスクの種類別のデータ数に応じた処理負荷量と第１の実行タスクによる制御負荷量とから、産業用制御装置の処理ユニットの処理の余裕度が解析用データの数ごとに算出される。このため管理者は、解析用データ数に依存する第２の実行タスクに対し、上記算出された余裕度の範囲内で最大の処理データ量を設定することが可能となる。
【００１７】
この発明に係る支援装置の第２の態様は、前記算出部が、前記抽出された第２の実行タスクの種類ごとに、解析用データ数と当該解析用データ数ごとの処理時間とから、前記第２の実行タスクの処理負荷量を前記解析用データの数ごとに算出するものである。  
従って、解析用データ数に依存する実行タスクによる処理負荷量を、第２の実行タスクの種類別の解析用データ数ごとの処理時間により、解析用データの数ごとに算出することができる。
【００１８】
この発明に係る支援装置の第３の態様は、前記算出された処理の余裕度と、産業用支援装置の処理ユニットが第２の実行タスクを実行したときに当該第２の実行タスクの目的が達成される確率を示す精度との関係を、前記第２の実行タスクが取得する解析用データ数の関数として表す関係情報を生成する関係情報生成部をさらに具備し、前記出力制御部により、前記生成された関係情報を表示可能な情報として出力するようにしたものである。
【００１９】
前記支援装置の第３の態様によれば、処理の余裕度と、産業用支援装置の処理ユニットが第２の実行タスクを実行したときに当該第２の実行タスクの目的が達成される確率を示す精度との関係を、前記第２の実行タスクが処理するデータ数の関数として表す関係情報が自動的に生成され、この生成された関係情報が表示可能な情報として出力される。このため管理者は、上記関係情報により、産業用制御装置における処理の余裕度とデータの処理精度との関係を確認することができ、この関係をもとに、産業用制御装置が第２の実行タスクによりデータ処理を行う上で適切な実行ルールを設定することが可能になる。
【００２０】
この発明に係る支援装置の第４の態様は、前記関係情報生成部に、機種が異なる複数の産業用制御装置の各々における処理の余裕度を表す情報を記憶する第１のメモリテーブルと、処理アルゴリズムが異なる複数の第２の実行タスクの各々の処理負荷量を表す情報を記憶する第２のメモリテーブルと、前記第１および第２のメモリテーブルに記憶された各情報に基づいて、前記複数の産業用制御装置と前記複数の第２の実行タスクとの全ての組み合わせについて、それぞれ前記関係情報を生成する生成処理部とを備え、前記出力制御部により、前記生成された複数の関係情報の中から、予め設定された条件を満たす関係情報を選択し、当該選択された関係情報を表示可能な情報として出力するようにしたものである。
【００２１】
前記支援装置の第４の態様によれば、使用が予想される複数の産業用制御装置と複数のデータ処理アルゴリズムとの全ての組み合わせについてそれぞれ関係情報が生成され、さらに関係情報を表示する際に、上記生成された複数の関係情報の中から予め設定された条件を満たす関係情報が選択されて表示される。このため、オペレータは使用が予想される複数の産業用制御装置とデータ処理アルゴリズムとの最適な組み合わせを選んで、第２の実行タスクの実行ルールを設定することが可能となる。
【００２２】
この発明に係る支援装置の第５の態様は、前記生成された関係情報と、前記第１の実行タスクと前記第２の実行タスクとの優先度合いを表す動作条件とに基づいて、当該動作条件に対応する前記第２の実行タスクの実行ルールの推奨値を生成する推奨値生成部をさらに具備し、前記出力制御部により、前記生成された実行ルールの推奨値を表示可能な情報として出力するようにしたものである。
【００２３】
前記支援装置の第５の態様によれば、生成された関係情報と産業用制御装置の動作条件とに基づいて、当該動作条件に対応する第２の実行タスクの実行ルールの推奨値が生成されて、表示可能な情報として出力される。このため、管理者は、表示された実行ルールの推奨値を参考にして第２の実行タスクの実行ルールを設定することが可能となる。このため、熟練を要することなく的確にかつ効率良く第２の実行タスクの実行ルールを設定することが可能となる。
【００２４】
この発明に係る支援装置の第６の態様は、前記生成された関係情報に基づいて、前記第２の実行タスクの実行ルールの決定値を生成する決定値生成部と、前記決定値生成部により生成された実行ルールの決定値を前記産業用制御装置が実行する前記第２の実行タスクの実行ルールとして設定する実行ルール設定部とを、さらに具備するものである。
【００２５】
前記支援装置の第６の態様によれば、生成された関係情報をもとに第２の実行タスクの実行ルールの決定値が生成され、この実行ルールの決定値が産業用制御装置に設定される。このため、管理者が特に設定操作を行うことなく、実行ルールの決定値を自動的に産業用制御装置の第２の実行タスクに設定することができる。
【００２６】
この発明に係る支援装置の第７の態様は、前記決定値生成部において、前記生成された関係情報に基づいて、前記第２の実行タスクの実行ルールの決定値を生成し直す処理を、さらに実行し、前記実行ルール設定部により、前記産業用制御装置が実行する前記第２の実行タスクの実行ルールを、前記決定値生成部により生成し直された実行ルールの決定値により更新する処理をさらに実行するようにしたものである。
【００２７】
前記支援装置の第７の態様によれば、第２の実行タスクの実行ルールの決定値を生成し直す処理がさらに実行され、産業用制御装置が使用している実行ルールが上記生成し直された解析ルールに更新される。従って、例えば、産業用制御装置における第１の実行タスクの制御負荷量または第２の実行タスクの処理負荷量が、運用前に設定された実行ルールの値から変化した場合でも、第２の実行タスクの実行ルールを自動的に再調整することができる。また、産業用制御装置の運用中に、例えばアクチュエータ等のデバイスが交換されてデバイス変数が変更になったり、ユーザプログラムの更新等によりユーザ変数が一部変更になった場合でも、これらの変更に応じて第２の実行タスクの実行ルールを自動的に更新することが可能となる。
【００２８】
この発明に係る支援装置の第８の態様は、前記実行ルールが、前記第２の実行タスクが処理対象とするデータの周期の時間長を表す情報と、前記処理対象とするデータの処理対象区間の開始位置を表す情報と、前記処理対象区間の範囲を表す情報とを含むようにしたものである。  
従って、処理対象データの周期性と振る舞いに応じて第２のタスクの実行ルールを適切に設定することができる。
【発明の効果】
【００２９】
すなわちこの発明の各態様によれば、第２の実行タスクに対し許容される余裕度内でより多くのデータ数を設定し、これにより装置を制御時間を確保して確実に動作させつつ、解析に必要なデータ数を確保することができる産業用制御システムとその支援装置、制御支援方法およびプログラムを提供することができる。
【図面の簡単な説明】
【００３０】
【図１】図１は、この発明の一実施形態に係る生産制御システムのハードウェア構成を示すブロック図である。
【図２】図２は、図１に示した生産制御システムにおいて産業用制御装置のＣＰＵユニットのハードウェア構成を示すブロック図である。
【図３】図３は、図１に示した生産制御システムにおける産業用制御装置および支援装置としてのＰＣのソフトウェア構成を示すブロック図である。
【図４】図４は、図３に示した産業用制御装置およびＰＣの要部構成を示すブロック図である。
【図５】図５は、プログラムごとの機能ブロックの構成の一例と、解析用機能ブロックリストの一例を示した図である。
【図６】図６は、プログラム記憶領域の構成の一例を示す図である。
【図７】図７は、図３および図４に示した産業用制御装置による解析用プログラムの抽出処理の手順と処理内容の実施例１を示すフローチャートである。
【図８】図８は、図３および図４に示した産業用制御装置による解析用プログラムの抽出処理の手順と処理内容の実施例２を示すフローチャートである。
【図９】図９は、図３および図４に示したＰＣによる異常検知パラメータ設定処理の処理手順と処理内容を示すフローチャートである。
【図１０】図１０は、図９に示す異常検知パラメータ設定処理により作成される、解析用データ数に対する制御装置の処理の余裕度の変化を示すグラフの一例を示す図である。
【図１１】図１１は、図９に示す異常検知パラメータ設定処理により作成される、解析用データ数に対する制御装置の処理の余裕度とデータ解析精度の関係を示すトレードオフグラフの一例を示す図である。
【図１２】図１２は、図９に示したＰＣの異常検知パラメータ設定処理により設定される、解析用データ選別ルールのパラメータの一例を示す図である。
【図１３】図１３は、制御装置の種類別に、これらの制御装置において実行される解析用プログラムの種類と、当該プログラムの種類毎のデータ数に応じた処理時間との関係の一例を示す図である。
【発明を実施するための形態】
【００３１】
以下、図面を参照してこの発明に係わる実施形態を説明する。  
［一実施形態］
（ハードウェア構成）
図１は、この発明に係る産業用制御システムの一実施形態である生産制御システムのハードウェア構成を示すブロック図である。
【００３２】
この生産制御システムは、Programmable Logic Controller（ＰＬＣ）等の産業用制御装置（以後単に制御装置と称する）１を中核として備える。制御装置１は、制御ユニット１１と、複数のＩＯユニット１２と、電源ユニット１４とを有する。上記制御ユニット１１と複数のＩＯユニット１２との間は、制御用システムバス１５を介して接続され、相互にデータ転送が可能になっている。
【００３３】
図２は、制御装置１の制御ユニット１１の構成を示す。制御装置１の制御ユニット１１は、Central Processing Unit（ＣＰＵ）からなるプロセッサ１１ａと、チップセット１１ｂと、不揮発性メモリ１１ｃと、メインメモリ１１ｄと、システムタイマ１１ｅと、制御用システムバスコントローラ１１ｆと、フィールドネットワークコントローラ１１ｇとを有する。制御用システムバスコントローラ１１ｆおよびフィールドネットワークコントローラ１１ｇは、それぞれ制御用システムバスおよびフィールドネットワーク用の制御回路１１ｆ１，１１ｇ１と、Direct Memory Access（ＤＭＡ）制御回路１１ｆ２，１１ｇ２と、バッファメモリ１１ｆ３，１１ｇ３とを含む。なお、１１ｈ，１１ｉ，１１ｊは、それぞれフィールドネットワークコネクタ、制御用システムバスコネクタおよびＵＳＢコネクタを示している。
【００３４】
制御装置１の制御ユニット１１には、フィールドネットワーク４を介して、複数のアクチュエータ５およびリモートＩＯターミナル６が接続されている。アクチュエータ５は、生産機器（図示省略）に配置されるもので、例えばサーボモータとそのドライバにより構成される。アクチュエータ５は、制御装置１の制御ユニット１１から出力される制御データに従い動作する。なお、フィールドネットワーク４としては、例えばEther CAT（登録商標）等の有線のLocal Area Network（ＬＡＮ）が用いられるが、無線ＬＡＮやBluetooth（登録商標）を使用することも可能である。
【００３５】
リモートＩＯターミナル６は、通信カプラ６１と、複数のＩＯユニット６２とを有し、この通信カプラ６１と複数のＩＯユニット６２との間はリモートＩＯターミナルバス６３を介して接続されている。ＩＯユニット６２には複数のセンサ７が接続される。センサ７は、例えばカメラや温度センサ、振動センサを含む。カメラは、生産機器またはワークを撮像してその画像データを計測データとして出力する。温度センサは、生産機器の温度を計測してその計測データを出力する。振動センサは、生産機器の振動を計測してその計測データを出力する。
【００３６】
リモートＩＯターミナル６は、上記各センサ７から出力された各計測データをＩＯユニット６２により受信した後、リモートＩＯターミナルバス６３を介して通信カプラ６１に転送し、通信カプラ６１からフィールドネットワーク４を介して制御装置１へ送信する。
【００３７】
また、制御装置１のＩＯユニット１２には、ローカルバス１０を介して、複数のセンサ８および複数のアクチュエータ９が接続されている。これらのセンサ８およびアクチュエータ９の機能は、上記フィールドネットワーク４に接続されたセンサ７およびアクチュエータ５と同様なので、説明を省略する。
【００３８】
ところで、制御装置１には、支援装置として機能するパーソナルコンピュータ（Personal Computer：ＰＣ）２が、信号ケーブル３を介して接続されている。信号ケーブル３としては、例えばUniversal System Bus（ＵＳＢ）ケーブルが用いられる。なお、信号ケーブル３の代わりに、ＬＡＮや無線ＬＡＮ等のネットワークを使用することも可能である。
【００３９】
ＰＣ２は、Central Processing Unit（ＣＰＵ）を有する制御ユニットと、不揮発性メモリおよびメインメモリを有する記憶ユニットと、上記制御装置１との間で信号ケーブル３を介してデータ転送を行う通信インタフェースユニットと、入出力インタフェースユニットとを備える。入出力インタフェースユニットには、キーボードやタッチパネル、マウス等の入力デバイスと、液晶又は有機ＥＬ等を用いた表示デバイスが接続される。入出力インタフェースユニットは、Graphical User Interface（ＧＵＩ）２１０を有し、入力デバイスからオペレータが入力した操作データを取り込むと共に、制御ユニットにより生成された図形または画像を含む表示データを表示デバイスへ出力してその画面に表示させる。
【００４０】
（ソフトウェア構成）
図３は上記制御装置１およびＰＣ２のソフトウェア構成を示すブロック図、図４はその要部構成を示すブロック図である。  
（１）制御装置１
制御装置１は、ソフトウェアプログラムおよび当該ソフトウェアプログラムの実行に用いられるデータを記憶する記憶部（例えば、図２に示すメモリ１１ｃ，１１ｄ）と、ソフトウェアプログラムを呼び出し、実行する演算部（例えば、図２に示すプロセッサ１１ａ）と、を有する１又は複数の情報処理装置により構成される。
【００４１】
すなわち、制御装置１は、制御用エンジン１００と、異常監視エンジン１９０と、負荷情報生成プログラム３００とを含む複数の機能部を有している。これらの機能部およびこれらの機能部に含まれる全ての機能部のそれぞれは、いずれも不揮発性メモリ１１ｃに記憶された所定のソフトウェアプログラムが、プロセッサ１１ａ等のハードウェアプロセッサによって実行されることで実現される。つまり、上記制御用エンジン１００、異常監視エンジン１９０、および負荷情報生成プログラム３００の各機能部のそれぞれは、ソフトウェアプログラムがハードウェアプロセッサにより実行されることによって実現される所定の処理を示す。
【００４２】
また、上記制御用エンジン１００、異常監視エンジン１９０、および負荷情報生成プログラム３００の各機能部のそれぞれは、単独で、又は、複数が組み合わされて、情報処理装置として構成される。なお、制御装置１を、単一の情報処理装置により構成してもよい。
【００４３】
以下、制御装置１が備える各機能部の処理機能について説明する。  
不揮発性メモリ１１ｃには組込データベース１８０が設けられている。組込データベース１８０は、センサ７，８から取得したＲＡＷデータ（波形データ）からなる計測データと、異常監視エンジン１９０により生成された学習結果および異常監視結果を表す情報を記憶するために使用される。また組込データベース１８０には、制御装置１の負荷情報も記憶される。負荷情報は負荷情報生成プログラム３００により生成されるもので、具体例は後述する。
【００４４】
制御用エンジン１００は、図示しない生産機器を制御する機能部と、当該生産機器の動作を監視して異常検知を行う解析処理機能部を備え、これらの機能部を実現するために、制御プログラム１１０と、変数管理プログラム１２０と、スケジューラプログラム１３０と、入力プログラム１４０と、出力プログラム１５０とを備えている。
【００４５】
変数管理プログラム１２０は、システム変数１２１と、ユーザ変数およびデバイス変数１２２と、異常検知パラメータ１２３を管理する。システム変数１２１は、制御装置１の形式や制御プログラムのスペックを表す変数である。スペックとは、制御装置の機種に対応した制御プログラムの種類毎の処理時間を示す情報のことで、例えば、制御装置１の機種ごとの単位時間当たりの処理能力と、制御プログラムの種類ごとの単位時間当たりの処理量を示す情報であり、制御装置１の機種（型式）および制御プログラムの種類に対応付けて制御装置１内の不揮発性メモリ１１ｃに保存される。ユーザ変数は、ユーザが指定した生産機器の動作に係る変数（例えばセンサ７，８による画像、温度および振動）である。デバイス変数は、制御対象となるデバイスの動作に係る変数（例えばアクチュエータ５，９のトルク）である。
【００４６】
異常検知パラメータは、生産機器の異常を検知するための解析ルールを示すもので、上記ユーザ変数およびデバイス変数から解析用データを収集するときの時間領域（時間窓）を指定するための選別ルールと、収集されたＲＡＷデータもしくは当該ＲＡＷデータから生成された特徴量をもとに正常／異常を判定するための判定ルールとを含む。なお、選別ルールおよび判定ルールの具体例は後述する。
【００４７】
スケジューラプログラム１３０は、制御装置１で実行されるプロセスやタスクなどに対してリソース割当てや実行タイミングなどを管理する。生産に関するスケジュールを管理する。入力プログラム１４０は、センサ７，８から出力された計測データを、それぞれローカルバス１６０およびフィールドバス１７０を介して取得する処理を行う。出力プログラム１５０は、上記制御プログラム１１０により生成された制御データを、上記ローカルバス１６０およびフィールドバス１７０を介して、アクチュエータ５，９へ出力する処理を行う。
【００４８】
制御プログラム１１０は、ユーザプログラム１１１と、組込データベース用書込みプログラム１１２と、異常監視エンジン・インタフェース１１３と、特徴量生成プログラム１１６とを含む。
【００４９】
ユーザプログラム１１１は、制御対象の製造装置や設備に応じて作成されたもので、例えば、生産機器の動作手順とその内容を指定するためにユーザが作成したラダープログラムからなる。組込データベース用書込みプログラム１１２は、上記組込データベース１８０に対するデータの書込み処理を行う。
【００５０】
特徴量生成プログラム１１６は、以下の(1) および(2) に記載する処理機能を有する。
(1) 上記変数管理プログラム１２０から、異常検知パラメータ１２３と、ユーザ変数およびデバイス変数１２２に対応する計測データを取り込む。そして、上記異常検知パラメータ１２３により表される選別ルールに従い、上記計測データから上記選別ルールにより指定された区間の計測データを収集する。
【００５１】
具体的には、計測データ（波形データ）を収集するための周期（データ収集の周期）、データ収集を開始する開始位置、および収集するデータ取得範囲（上記開始位置からデータ収集を終了するまでの時間）を表すパラメータ値が、データ収集を行う時間窓として上記選別ルールにより定義される。そして、計測された波形データから、上記パラメータ値により指定される区間のデータが収集される。なお、選別ルールは上記各パラメータ値に限定されるものではなく、波形データの周期ごとにデータ収集開始位置と終了位置を指定するものであってもよく、その他の種々のパラメータを使用することも可能である。
【００５２】
(2) 予め設定された特徴量生成ルールに従い、上記(1) により収集された区間のデータからその特徴量を生成する。具体的には、例えば、平均値または最大値が上記特徴量生成ルールにより定義され、上記収集された区間の解析用データからその平均値または最大値が特徴量として算出される。なお、特徴量としては、上記した平均値または最大値以外に、データ間の相関やパターンの差分等を用いてもよい。
【００５３】
異常監視エンジン・インタフェース１１３は、異常度算出要求プログラム１１４、監視要求プログラム１１５およびシリアライズ通信プログラム１１７を有し、異常監視エンジン１９０に対し、上記特徴量生成プログラム１１６により生成された特徴量を、学習要求および監視要求と共に設定する。
【００５４】
異常監視エンジン１９０は、異常度算出部１９１および異常検知部１９２を備える。異常度算出部１９１は、上記特徴量生成プログラム１１６により生成された特徴量を異常監視エンジン・インタフェース１１３から受け取り、当該受け取った特徴量をもとに異常検知のための異常監視処理を行って、その異常度算出結果を組込データベース１８０に記憶させる。異常度算出の手法は、異常監視の様態に応じて適宜選択されてよい。例えば、異常度算出の手法としては、K-means（近傍法）、One Class SVM、LOF（Local Outlier Factor）、Isolation Forestなどが用いられていても良い。
【００５５】
異常検知部１９２は、特徴量生成プログラム１１６により生成された特徴量を異常監視エンジン・インタフェース１１３から受け取り、当該特徴量に対し、上記組込データベース１８０に記憶された異常度算出結果をもとに異常監視処理を行う。そして、その監視結果を組込データベース１８０に記憶させると共に、上記異常の監視結果をもとにイベントログ１９３を生成する。
【００５６】
なお、上記異常監視処理における正常／異常の判定には、異常検知パラメータに含まれる異常判定ルールが用いられる。異常判定ルールは、例えば、形状や位置、温度、振動をそれぞれ判定するために変数別に設定されたしきい値により表される。
【００５７】
すなわち、異常検知部１９２は、特徴量生成プログラム１１６により生成された特徴量を、上記異常判定ルールで定義された変数別にそのしきい値とそれぞれ比較し、その各比較結果と上記異常度算出結果とをもとに監視対象の生産機器の動作が正常であるか異常であるかを判定する。なお、異常検知方法は上記方法に限るものではなく、他にも種々の方法が考えられる。
【００５８】
以上述べた制御プログラム１１０、変数管理プログラム１２０、スケジューラプログラム１３０、入力プログラム１４０、出力プログラム１５０および異常監視エンジン１９０を構成する各プログラムのうち、生産機器の制御に係るプログラム群を単に制御プログラムと呼称し、また生産機器の解析用データを収集して生産機器の動作異常を監視（検知）する処理に係るプログラム群を単に解析処理プログラムと呼称する。
【００５９】
負荷情報生成プログラム３００は、実行タスク抽出プログラム３０１と、制御負荷量算出プログラム３０２とを有する。
【００６０】
実行タスク抽出プログラム３０１は、制御装置１が備える、生産機器を制御する制御処理機能と、生産機器の動作状態を表す解析用データを収集し解析する解析処理機能をそれぞれ実現するための全てのプログラムの中から、上記解析用データの数に依存する実行タスク（第１の実行タスク）を実行するプログラムを抽出する機能を有する。解析処理に係るデータ数に依存する実行タスクとは、本実施形態においては、上記解析処理機能を実現するプログラム（解析処理プログラム）に相当する。
【００６１】
なお、上記解析処理に係るデータ数に依存しない実行タスク（第２の実行タスク）とは、本実施形態では上記生産機器を制御する制御処理機能を実現するプログラム（制御プログラム）に相当する。なお、上記解析処理プログラムの抽出処理の具体例は後述する。
【００６２】
制御負荷量算出プログラム３０３は、生産機器の制御プログラムが制御装置１の管理者（オペレータ）により選択された場合に、制御装置１内の不揮発性メモリ１１ｃから、制御装置１の機種（形式）および上記選択された制御プログラムの種類に対応するスペックを読み出す。そして、このスペックに基づいて、制御装置１が上記選択された制御プログラムを実行したときのプロセッサ１１ａの制御負荷量を算出し、算出された制御負荷量を組込データベース１８０に保存する。
【００６３】
（２）ＰＣ２
ＰＣ２は、先に述べた制御装置１と同様に、ソフトウェアプログラムおよび当該ソフトウェアプログラムの実行に用いられるデータを記憶する記憶部と、ソフトウェアプログラムを呼び出して実行する演算部とを有する、１又は複数の情報処理装置により構成される。
【００６４】
すなわち、ＰＣ２は、データマイニングツール２００と、Graphical User Interface（ＧＵＩ）２１０と、異常監視パラメータ設定ツール２２０とを含む複数の機能部を有している。これらの機能部およびこれらの機能部に含まれる全ての機能部のそれぞれは、いずれも不揮発性メモリに記憶された所定のソフトウェアプログラムが、プロセッサ等のハードウェアプロセッサによって実行されることで実現される。つまり、上記データマイニングツール２００と、ＧＵＩ２１０と、異常監視パラメータ設定ツール２２０の各機能部のそれぞれは、ソフトウェアプログラムがハードウェアプロセッサにより実行されることによって実現される所定の処理を示す。
【００６５】
また、上記データマイニングツール２００と、ＧＵＩ２１０と、異常監視パラメータ設定ツール２２０の各機能部のそれぞれは、単独で、又は、複数が組み合わされて、情報処理装置として構成される。なお、制御装置１を、単一の情報処理装置により構成してもよい。
【００６６】
以下、ＰＣ２が備える各機能部の処理機能について説明する。  
ＧＵＩ２１０は、入力デバイスからオペレータが入力した操作データを取り込むと共に、制御ユニットにより生成された図形または画像を含む表示データを表示デバイスへ出力してその画面に表示させる機能を有する。なお、入力デバイスからの操作データの取り込みは、ＧＵＩ以外の入力インタフェースを用いることもできる。
【００６７】
データマイニングツール２００は、その機能部として、組込データベースクエリプログラム２０１と、データマイニング部２０２と、可視化部２０３とを有している。
【００６８】
組込データベースクエリプログラム２０１は、負荷情報取得部としての処理を実行するプログラムと、監視結果情報取得部としての処理を実行するプログラムとを有する。負荷情報取得部としての処理を実行するプログラムは、制御装置１の組込データベース１８０から、実行タスク抽出プログラム３０１により抽出された解析処理プログラムの種類を表す情報と、制御装置１の負荷情報を取得する。負荷情報には、上記負荷情報生成プログラム３００により算出された、生産機器を制御する際の制御負荷量が含まれる。監視結果情報取得部としての処理を実行するプログラムは、制御装置１の組込データベース１８０から、監視結果を表す情報を取得する。
【００６９】
データマイニング部２０２および可視化部２０３は、この発明の一実施形態に係る機能を実現するためのプログラムとして、図４に示すように、処理負荷量算出プログラム２０２５と、余裕度算出プログラム２０２３と、解析精度算出プログラム２０２４とを有している。そしてデータマイニング部２０２および可視化部２０３は、上記処理負荷量算出プログラム２０２５、余裕度算出プログラム２０２３および解析精度算出プログラム２０２４の制御の下で、以下の(1) 〜(7) に記載する処理を実行する。なお、上記処理負荷量算出プログラム２０２５、余裕度算出プログラム２０２３および解析精度算出プログラム２０２４は、解析・制御性能比較部２０２１を構成する。
【００７０】
(1) 解析用プログラムの処理負荷量の算出
処理負荷量算出プログラム２０２５は、上記組込データベースクエリプログラム２０１により制御装置１から取得された解析処理プログラムの種類ごとに、当該解析処理プログラムが処理するデータ数（処理データ数）をもとに、当該解析処理プログラムが実行されたときのプロセッサ１１ａの処理負荷量を算出する。なお、上記解析処理プログラムによる処理負荷量の算出処理の具体例は後述する。
【００７１】
(2) 余裕度の算出および余裕度グラフの生成
余裕度算出プログラム２０２３は、上記組込データベースクエリプログラム２０１により制御装置１から取得された、生産機器の制御プログラムを実行したときのプロセッサ１１ａの制御負荷量に基づいて、制御装置１が生産機器の制御プログラムおよび生産機器の動作状態を解析するための解析処理プログラムを並行して実行したときの、解析用データ数に対するプロセッサ１１ａの処理の余裕度を算出する。そして、その算出結果を余裕度グラフとして表示させるための表示データを生成する。  
なお、処理の余裕度は、先に述べたように、制御装置１のプロセッサ１１ａが、制御プログラム及び解析処理プログラムを実行して残った制御周期内の時間（残余時間）またはその割合として算出される。
【００７２】
可視化部２０３は、上記余裕度算出プログラム２０２３により生成された余裕度グラフの表示データに従い、余裕度グラフをＧＵＩ２１０により表示デバイスの画面に表示させる。
【００７３】
(3) データ解析精度の算出とトレードオフグラフの生成
解析精度算出プログラム２０２４は、上記組込データベースクエリプログラム２０１により取得された監視結果を表す情報に基づいて、制御装置１が解析処理プログラムを実行したときの、解析用データ数に対する監視結果の精度（データ解析精度）を算出する。そして、上記(2) にて算出された処理の余裕度と、上記データ解析精度との関係を表すグラフ（トレードオフグラフ）を表示するための表示データを生成する。
【００７４】
可視化部２０３は、トレードオフグラフの表示データに従い、解析用データ数に対する処理の余裕度およびデータ解析精度の変化を表すトレードオフグラフを、ＧＵＩ２１０により表示デバイスの画面に表示させる。
【００７５】
(4) 異常検知パラメータの手動設定を受け付ける機能
手動設定を受け付ける機能は、オペレータが、上記表示された余裕度グラフまたはトレードオフグラフを参照して、入力デバイスにおいて異常検知パラメータを入力した場合に、当該異常検知パラメータをＧＵＩ２１０から受け取り、制御装置１の変数管理プログラム１２１に設定する。  
なお、異常検知パラメータは、先に述べたように、解析用データを収集するための時間窓を指定する選別ルールと、正常／異常を判定するための判定ルールとを含む。
【００７６】
(5) 異常検知パラメータを半自動で設定する機能
この半自動設定機能は、上記(2) および(3) により計算された、制御装置１の処理の余裕度およびデータ解析精度と、オペレータが事前に指定した制御装置１の動作条件とに基づいて、上記異常検知パラメータの推奨値を作成し、当該推奨値をＧＵＩ２１０により表示デバイスの画面に表示させる。そして、上記表示された異常検知パラメータの推奨値の中から所望の値をオペレータが指定した場合に、当該指定された値を異常検知パラメータとして制御装置１の変数管理プログラム１２１に設定する。なお、上記制御装置１の動作条件については具体例を後述する。
【００７７】
(6) 異常検知パラメータを完全自動設定する機能
この完全自動設定機能は、上記(2) および(3) により計算された、制御装置１の処理の余裕度およびデータ解析精度と、オペレータが事前に指定したパラメータ設定条件とに基づいて、上記異常検知パラメータの最適値を計算し、当該最適値を異常検知パラメータの決定値として制御装置１の変数管理プログラム１２１に設定するものである。
【００７８】
(7) 異常検知パラメータの自動更新機能
この自動更新機能は、上記異常検知パラメータの設定後において、上記(2) および(3) により制御装置１の処理の余裕度およびデータ解析精度の計算処理を定期的に実行し、制御装置１に設定する異常検知パラメータの最適値を更新するものである。
【００７９】
データマイニング部２０２は、制御装置１の運用に先立ち、上記(4) 、(5) および(6) の処理のいずれかを、ＧＵＩ２１０によるオペレータのモード指定に応じて選択的に実行する。一方、上記(7) については、制御装置１の運用開始後の制御および解析処理の実行期間において実行する。
【００８０】
異常監視パラメータ設定ツール２２０は、変数アクセスプログラム２２１を有している。変数アクセスプログラム２２１は、上記データマイニング部２０２の(4) 、(5) または(6) の処理において設定された異常検知パラメータを、制御装置１の変数管理プログラム１２１に設定する処理を行う。
【００８１】
（動作）
次に、以上のように構成された制御装置１およびＰＣ２の処理動作を説明する。  
（１）余裕度グラフの生成
制御装置１の実際の運用に先立ち、制御装置１に解析ルールとしての異常検知パラメータを設定するための一連の処理を実行する。
【００８２】
（１−１）解析処理プログラムの抽出
解析処理プログラムの抽出を行うための手法として、本実施形態では以下の２つの実施例を説明する。
【００８３】
（実施例１）
なお、解析処理プログラムとしては、所定の処理が一まとめとした機能ブロックとして記述されている場合と、処理が一つずつ記述されている場合があるが、実施例１では、所定の処理が一まとめとした機能ブロックを含むプログラムを用いる場合を前提として、手法を記載する。
【００８４】
具体的には、上記機能ブロックは、実行順序が到来すると、対応するライブラリプログラム（またはライブラリプログラムの対応するコード）を呼び出して実行することを指定するための命令である。言い換えれば、各機能ブロックに対応するプログラムの実体であるライブラリプログラムが予め用意されており、プロセッサは、プログラムに従って、ライブラリプログラムを適宜呼び出して実行する。
【００８５】
図７は、解析処理プログラムの抽出処理の実施例１を示すフローチャートである。  
制御装置１で使用されるプログラムは、プログラムごとに分けられた状態で不揮発性メモリ１１ｃのプログラム記憶領域に格納されている。図５はその一例を示すものである。不揮発性メモリ１１ｃのプログラム記憶領域には、複数のプログラムＰＲＧ１，ＰＲＧ２，ＰＲＧ３，…が格納されている。これらのプログラムＰＲＧ１，ＰＲＧ２，ＰＲＧ３，…には、それぞれプログラムごとに複数の機能ブロックＦＢ１，ＦＢ３，ＦＢ４，…、ＦＢ１，ＦＢ２，ＦＢ５，…、ＦＢ１，ＦＢ５，ＦＢ６，…が格納されている。
【００８６】
例えば、解析処理のタスクを実行するプログラムには、生産機器の動作を監視するセンサ７，８から計測データを選択的に収集するデータ収集プログラム、このデータ収集プログラムにより収集されたデータを組込データベース１８０に保存させるデータ保存プログラム、異常検知パラメータ１２３に設定された解析ルールに従い、上記組込データベース１８０に保存された計測データから特徴量を生成するプログラム１１６、異常検知パラメータ１２３に設定された判定ルールに従い、上記生成された特徴量に基づいて正常／異常を判定する判定プログラム等がある。これらのプログラムは、解析処理のために用意された機能ブロックとして記載される。
【００８７】
また不揮発性メモリ１１ｃには、解析用機能ブロックリストが設けられている。解析用機能ブロックリストには、例えば図５に示すように、上記解析処理のタスクを実行する各プログラムが収容された機能ブロックＦＢ２，ＦＢｉ，ＦＢｋ，…の識別情報が記憶されている。
【００８８】
負荷情報生成プログラム３００内の実行タスク抽出プログラム３０１は、ステップＳ３１においてプログラムの検索開始が検出されると、先ずステップＳ３２によりプログラムを１つ検索し、上記解析用機能ブロックリストを参照して、上記検索されたプログラムが収容された機能ブロックが解析用機能ブロックであるか否かを判定する。図５の例では、プログラムＰＲＧ１の機能ブロックＦＢ３とＦＢ４が解析用機能ブロックであると判定される。
【００８９】
そして、解析用機能ブロックであれば、制御負荷量算出プログラム３０２は、ステップＳ３３により上記検索されたプログラムの種類と処理データ数を取得し、ステップＳ３４において、上記取得したプログラムの種類を表す情報を組込データベース１８０に記憶させる。
【００９０】
続いて実行タスク抽出プログラム３０１は、全てのプログラムを検索し終わったか否かをステップＳ３５により判定し、まだ検索されていないプログラムが存在する場合には、ステップＳ３２に戻って未検索のプログラムを１つ検索し、このプログラムが収容された機能ブロックが解析用機能ブロックであるか否かをする。そして、解析用機能ブロックであれば、制御負荷量算出プログラム３０２が、ステップＳ３３においてプログラムの種類を表す情報を取得し、この取得された種類を表す情報をステップＳ３４において組込データベース１８０に記憶させる。以後同様に、全てのプログラムを検索し終わるまで、上記ステップＳ３２〜Ｓ３５により、解析用プログラムの抽出処理と、その種類を表す情報を組込データベース１８０に記憶させる処理が繰り返し実行される。
【００９１】
なお、解析処理プログラムを抽出する手法としては、実行されるプログラムをコード抽出および解析し、これにより機能ブロックの利用状況を把握する手法も考えられる。機能ブロックを使用する場合、必ずデータの形式が解析用機能ブロックの名前（例えば文字列または識別フラグ）で宣言され、その履歴が保存される。従って、実行タスク抽出プログラム３０１は、上記保存された使用履歴をもとに解析用とされる全ての機能ブロックを検索する。これにより、全体のプログラムから解析用機能ブロックを抽出することができる。
【００９２】
（実施例２）
解析処理プログラムとしては、所定の処理が一まとめとした機能ブロックとして記述されている場合と、処理が一つずつ記述されている場合があるが、実施例２では、どちらの記述である場合にも対応できる手法を記載する。
【００９３】
図８は、解析処理プログラムの抽出を行うための手法の実施例２を示すフローチャートである。  
不揮発性メモリ１１ｃのプログラム記憶領域には、例えば図６に示すように、生産機器の制御プログラムを格納する記憶領域（ＭＡ０〜ＭＡｍ）と、解析処理プログラムを格納する記憶領域（ＭＡｍ＋１〜ＭＡｎ）と、その他のプログラムを格納する記憶領域（ＭＡｎ＋１〜ＭＡｗ）が予め定義されている。そして、各プログラムはその機能に応じて上記各記憶領域に分けられて格納されている。
【００９４】
負荷情報生成プログラム３００内の実行タスク抽出プログラム３０１は、ステップＳ４１においてプログラムの検索開始が検出されると、先ずステップＳ４２によりプログラムを一つ検索し、当該プログラムが格納された記憶領域を判定し、当該記憶領域が解析処理プログラムの記憶領域（ＭＡｍ＋１〜ＭＡｎ）であるか否かを判定する。そして、解析処理プログラムの記憶領域（ＭＡｍ＋１〜ＭＡｎ）であれば、制御負荷量算出プログラム３０２は、ステップＳ４３により上記検索されたプログラムの種類を表す情報を取得し、ステップＳ４４において、上記取得した解析処理プログラムの種類を表す情報を組込データベース１８０に記憶させる。
【００９５】
続いて実行タスク抽出プログラム３０１は、全てのプログラムを検索し終わったか否かをステップＳ４５により判定し、まだ検索されていないプログラムが存在する場合には、ステップＳ４２に戻って未検索のプログラムを１つ検索し、このプログラムが収容された記憶領域が解析処理プログラムの記憶領域（ＭＡｍ＋１〜ＭＡｎ）であるか否かを判定する。そして、解析処理プログラムの記憶領域（ＭＡｍ＋１〜ＭＡｎ）であれば、制御負荷量算出プログラム３０２が、ステップＳ４３，Ｓ４４において、プログラムの種類を表す情報を取得して、当該情報を組込データベース１８０に記憶させる。
【００９６】
以後同様に、全てのプログラムを検索し終わるまで、上記ステップＳ４２〜Ｓ４５により、解析用プログラムの抽出処理とその種類を表す情報を組込データベース１８０に記憶させる処理が繰り返し実行される。
【００９７】
（１−２）生産機器の制御用プログラムによる制御負荷量の算出
負荷情報生成プログラム３００内の制御負荷量算出プログラム３０３は、上記抽出された解析プログラム以外のプログラムを選択し、制御装置１内の不揮発性メモリ１１ｃから、制御装置１の機種（形式）および上記選択された制御プログラムの種類に対応するスペックを読み出す。そして、このスペックに基づいて、制御装置１が上記選択された制御プログラムを実行したときのプロセッサ１１ａの制御負荷量を算出し、算出された制御負荷量を組込データベース１８０に保存する。
【００９８】
スペックとは、先に述べたように制御装置１の機種（形式）ごとの単位時間当たりの処理能力と、制御プログラムの種類ごとの単位時間当たりの処理量を示す情報である。制御負荷量算出プログラム３０３は、上記単位時間当たりの処理能力と単位時間当たりの処理量とをもとに、生産機器を制御する際のプロセッサ１１ａの制御負荷量を算出する。
【００９９】
（１−３）負荷情報、解析処理プログラムの種類および監視結果を表す情報の取得
オペレータは、制御プログラムがインストールされた制御装置１に、ＰＣ２を接続する。
【０１００】
ＰＣ２は、データマイニングツール２００の制御の下、先ず図９に示すステップＳ１１において、組込データベースクエリプログラム２０１により、制御装置１の組込データベース１８０から、図４に示すように負荷情報および解析用プログラムの種類を表す情報を取り込む。この負荷情報には、負荷情報生成プログラム３００により生成された、生産機器の制御プログラムを実行したときのプロセッサ１１ａの制御負荷量を表す情報が含まれる。  
また、それと共にデータマイニングツール２００は、組込データベースクエリプログラム２０１により、制御装置１の組込データベース１８０から監視結果を表す情報を取り込む。
【０１０１】
（１−４）余裕度の算出と余裕度グラフの生成
データマイニングツール２００は、次に解析・制御性能比較部２０２１が備える余裕度算出プログラム２０２３（図４に図示）の制御の下、ステップＳ１２において、上記取得した負荷情報に含まれる制御負荷量および解析用プログラムの種類を表す情報に基づいて、制御装置１が解析処理プログラムと生産機器の制御プログラムを並行して実行したときの解析用データ数に対するプロセッサ１１ａの処理の余裕度を算出する。
【０１０２】
（１−４−１）解析用プログラムに使用するデータ数毎の処理負荷量の算出
制御装置１の種類別に、これらの制御装置１において実行される解析用プログラムの種類と、当該プログラムの種類ごとの処理データ数に応じた処理時間との関係を示すデータテーブルを事前に作成しておく。
【０１０３】
上記制御装置１の組込データベース１８０から取得された解析用プログラムの種類を表す情報をもとに処理データ数ごとの処理負荷量を算出し、処理データ数ごとに処理負荷量の総和を求め、ＰＣ２のメモリに記憶する。
【０１０４】
図１３は、制御装置Ａ，Ｂについて、解析用プログラムの種類と、当該プログラムの種類ごとのデータ数に応じた処理負荷量（処理時間）との関係の一例を示したものである。この例では、制御装置Ａにおいて、データ数を“１０”とした場合、解析用機能ブロックＦＢ３，ＦＢ４の処理時間はそれぞれ３０μsec 、４０μsec であるため、その合計値は７０μsec となる。同様に、処理データ数ごとに処理時間の総和を求め、ＰＣ２のメモリに登録する。
【０１０５】
なお、図１３では、（１−１）解析処理プログラムの抽出の実施例１で解析用機能ブロックを抽出した場合の例で記載したが、（１−１）解析処理プログラムの抽出の実施例２で解析用プログラムを抽出した場合にはプログラムごとに処理負荷量との関係が算出される。
【０１０６】
また、データ数ごとの処理負荷量の算出は、上記のように予め解析用プログラムの種類と当該プログラムの種類ごとのデータ数に応じた処理時間との関係を示すデータテーブルを事前に作成しておくことに限定されるものではなく、例えば、解析用プログラムごとにデータ数を変化させた際の実際の解析に要した処理時間を求めて関係式を作成し、その関係式を用いてその間の各データ数における制御装置１の処理時間を計算するシミュレーションにより行うことができる。
【０１０７】
（１−４−２）処理の余裕度の算出と余裕度グラフの作成
処理の余裕度は、制御装置１のプロセッサ１１ａが、制御周期内で処理するように決められたタスク（解析処理プログラムの実行により実現される第１の実行タスクと、生産機器の制御プログラムの実行により実現される第２の実行タスク）を実行して残った制御周期内の時間（残余時間）またはその割合として算出される。上記（１−４−１）の処理で求めたデータ数ごとの処理負荷量（処理時間）と、制御装置１の組込データベース１８０から取得した制御プログラムの制御負荷量とから、データ数ごとの余裕度を算出する。
【０１０８】
余裕度算出プログラム２０２３は、続いてステップＳ１３において、上記処理の余裕度の算出結果を余裕度グラフとして表示させるための情報を生成する。
【０１０９】
余裕度算出プログラム２０２３は、次にステップＳ１４において、上記生成された余裕度グラフの表示データを可視化部２０３に渡す。可視化部２０３は、上記余裕度算出プログラム２０２３により生成された余裕度グラフの表示データに従い、例えば、解析用データ数を横軸に配置すると共に、上記計算された制御装置１の処理の余裕度を縦軸に配置し、解析用データ数に対する処理の余裕度の変化を表す余裕度グラフをＧＵＩ２１０により表示画面に表示させる。図１０のＸはその表示結果の一例を示すものである。
【０１１０】
（１−５）データ解析精度の算出とトレードオフグラフの生成
余裕度グラフを作成するだけでなく、解析用データ数に対する監視結果の精度を算出して、監視結果の精度と余裕度とを共にグラフ表示できるようにしてもよい。その際の実施例を下記の通り記載する。データマイニングツール２００は、解析・制御性能比較部２０２１が備える解析精度算出プログラム２０２４の制御の下、先ずステップＳ１５において、上記制御装置１から取り込んだ監視結果を表す情報に基づいて、制御装置１が解析処理プログラムを実行したときの、解析用データ数に対する監視結果の精度（データ解析精度）を算出する。
【０１１１】
データ解析精度は、例えば、制御装置１の制御ユニット１１が解析処理プログラムを実行したときに、ユーザが定義した解析の目的が達成される確率として定義される。ユーザが定義した解析の目的が達成される確率とは、例えば誤検知率として表される。すなわち、「事前に正常だと定義したデータは正常、異常だと定義したデータは異常と完璧に判定できる」ことを解析精度が高い状態とし、逆に解析するために用意したデータ数が少ない等の影響で「正常を異常と読み違える、或いは異常を正常と読み違える」ことを解析精度が低い状態と定義する。
【０１１２】
解析精度算出プログラム２０２４は、続いてステップＳ１６において、上記余裕度算出プログラム２０２３により算出された処理の余裕度と、上記データ解析精度との関係を表すグラフ（トレードオフグラフ）の表示データを生成する。トレードオフグラフの生成は、例えば、取得データ数を予め設定された最小値から最大値まで変化させ、その間の各値における制御装置１の処理の余裕度と解析精度とを計算するシミュレーションにより行うことができる。
【０１１３】
解析精度算出プログラム２０２４は、次にステップＳ１７により、上記生成されたトレードオフグラフの表示データを可視化部２０３に渡す。この結果可視化部２０３は、上記トレードオフグラフの表示データに従い、例えば、解析用データ数を横軸に配置すると共に、処理の余裕度およびデータ解析精度を縦軸として、解析用データ数に対する処理の余裕度およびデータ解析精度の変化を表すトレードオフグラフを、ＧＵＩ２１０により表示デバイスの画面に表示させる。
【０１１４】
図１１は、上記生成されたトレードオフグラフの一例を示すもので、Ｘが処理の余裕度を、Ｙが解析精度をそれぞれ示している。また、ＤＬは、制御装置１が解析処理プログラムを実行したときの解析用データ数に応じた処理の余裕度に対し許容される値を示すものである。なお、ＤＬは、出荷時に予め指定の値に設定するか、またはユーザが要求する余裕度に合わせて任意に設定される。
【０１１５】
なお、制御装置１の機種または形式の番号等に対応付けてその制御負荷の度合いを表す情報を記憶したメモリテーブルを記憶ユニットに設けておき、オペレータが上記制御装置１の形式番号を指定入力することで、制御装置１の制御負荷の度合いを表す情報を選択指定するようにしてもよい。
【０１１６】
さらに、ＰＣ２が、機種の異なる複数の制御装置１からそれぞれ各解析処理プログラムを実行したときのプロセッサ１１ａの処理負荷量を表す情報を取得する。そして、各制御装置１と各解析処理プログラムの処理負荷量を表す情報との全ての組み合わせについて、上記余裕度の算出と余裕度グラフの生成処理、およびデータ解析精度の算出とトレードオフグラフの生成処理を行い、それぞれ余裕度グラフおよびトレードオフグラフを生成するようにしてもよい。この場合、生成された全ての余裕度グラフおよびトレードオフグラフの中から、予め設定された条件に基づいて検討の余地があるもののみを選択し、その表示データを表示デバイスの画面に表示させるようにする。このようにすると、オペレータは構成しようとする生産システムにとって、最適または使用可能な制御装置１と解析用プログラムとの組み合わせを選択することが可能となる。
【０１１７】
（２）異常検知パラメータの設定
ＰＣ２は、データマイニングツール２００の制御の下、上記トレードオフグラフのデータを参照して、制御装置１に対し異常検知パラメータを設定するための処理を以下のように実行する。
【０１１８】
オペレータは、制御装置１の動作条件と、異常検知パラメータの決定モードを、ＰＣ２にその入力デバイスにより入力する。制御装置１の動作条件としては、例えば、「制御タスク優先」、「解析タスク優先」、「制御タスク／解析タスク均等」の３種類があり、「制御タスク優先」および「解析タスク優先」についてはその度合いを指定する。また、異常検知パラメータの決定モードは、異常検知パラメータを設定する方法を指定するもので、「手動設定」、「推奨設定」、「完全自動設定」のいずれかを指定する。なお、「手動設定」を指定する場合には、動作条件の指定は必ずしも必要ではない。
【０１１９】
ＰＣ２は、データマイニングツール２００の制御の下、ステップＳ１８において、上記オペレータが入力デバイスにおいて入力した動作条件を取り込み、記憶ユニットに保存する。そしてステップＳ１９において、上記入力された異常検知パラメータの決定モードがいずれであるかを判定し、その判定結果に応じて以下のよう設定処理を選択的に実行する。
【０１２０】
（２−１）手動による設定
オペレータは、ＰＣ２に対し異常検知パラメータを手動操作により入力する。例えば、表示されたトレードオフグラフを参照して、先ず取得データ数を決める。続いてオペレータは、この取得データ数に応じた選別ルールを指定入力する。選別ルールは、先に述べたように解析用データを収集するための解析区間を表す時間窓であり、例えば図１２に示すように、計測されたＲＡＷデータ（波形データ）の周期の時間長Ｃと、収集を開始する開始位置Ｓと、収集するデータ取得範囲Ｗとにより表される。周期の時間長Ｃは、例えば時間により指定される。開始位置Ｓは、周期の起点からのサンプリング数のカウント値、或いは絶対時刻により指定される。データ取得範囲Ｗは、時間、データ量またはＲＡＷデータ値の振る舞いにより指定される。
【０１２１】
なお、上記選別ルールの指定入力に際しては、制御装置１において監視対象の変数に対応するＲＡＷデータから検出された変数の挙動、つまり周期性および振る舞いを一次解析した情報を、ＰＣ２が制御装置１から取得してＧＵＩ２１０により表示デバイスの画面に表示させ、オペレータがこの表示された一次解析情報を参照して解析区間をマウスの操作等により指定入力するように構成するとよい。
【０１２２】
またオペレータは、ＰＣ２に対し、正常／異常の判定ルールを入力する。判定ルールについては、正常値と異常値とを判定するためのしきい値を指定する。
【０１２３】
ＰＣ２は、データマイニングツール２００の異常検知パラメータ設定部２０２２が、ステップＳ２０において、上記オペレータが入力デバイスにおいて入力した選別ルールおよび判定ルールをＧＵＩ２１０から取り込み、記憶ユニット内のルール記憶領域に保存する。そしてステップＳ２４において、異常監視パラメータ設定ツール２２０により、上記保存された各ルールを例えば図４に示すように異常検知パラメータとして制御装置１へ送り、変数管理プログラム１２０に設定する。
【０１２４】
（２−２）推奨値による設定
異常検知パラメータの決定モードとして「推奨設定」モードが指定されている場合、ＰＣ２のデータマイニング部２０２は、先ずステップＳ２１において、上記ステップＳ１６において算出されたトレードオフグラフのデータ（デッドラインＤＬを表す情報を含む）と、上記ステップＳ１８により指定された制御装置１の動作条件に応じて、選別ルールの推奨値を算出する。
【０１２５】
例えば、制御装置１の動作条件として「制御タスク優先」が指定されている場合には、例えば図１１に示すＰ１に対応する取得データ数を選択する。そして、この選択した取得データ数に応じて、選別ルールの各パラメータ値、つまりＲＡＷデータ（波形データ）の周期の時間長Ｃ、収集を開始する開始位置Ｓ、および収集するデータ取得範囲Ｗの推奨値を設定する。
【０１２６】
一方、制御装置１の動作条件として「解析タスク優先」が指定されている場合には、例えば図１１に示すＰ２に対応する取得データ数を選択し、この選択した取得データ数に応じて、選別ルールの各パラメータ値、つまりＲＡＷデータ（波形データ）の周期の時間長Ｃ、収集を開始する開始位置Ｓ、および収集するデータ取得範囲Ｗの推奨値を設定する。
【０１２７】
また、制御装置１の動作条件として「制御タスク／解析タスク均等」が指定されている場合には、例えば制御装置１の処理の余裕度を示す曲線Ｘと、解析精度を示す曲線Ｙとの交点に対応する取得データ数を選択する。この選択した取得データ数に応じて、選別ルールの各パラメータ値、つまりＲＡＷデータ（波形データ）の周期の時間長Ｃ、収集を開始する開始位置Ｓ、および収集するデータ取得範囲Ｗの推奨値を設定する。
【０１２８】
そしてデータマイニング部２０２は、異常のように設定された選別ルールの各パラメータの推奨値を、ＧＵＩ２１０により表示デバイスの画面に表示させる。
【０１２９】
この状態で、オペレータが上記表示された選別ルールの推奨値の中から所望の値を入力デバイスにより指定入力したとする。そうするとデータマイニング部２０２は、上記指定された推奨値をステップＳ２３により取り込み、記憶ユニットに保存する。そしてＰＣ２は、ステップＳ２４において、異常監視パラメータ設定ツール２２０により、上記保存された選別ルールを、別途オペレータが指定入力した判定ルールと共に、異常検知パラメータとして制御装置１へ送り、変数管理プログラム１２０に設定する。
【０１３０】
（２−３）完全自動による設定
異常検知パラメータの決定モードとして「完全自動設定」モードが指定されている場合、ＰＣ２のデータマイニング部２０２は、ステップＳ２２において、上記ステップＳ１６において算出されたトレードオフグラフのデータ（デッドラインＤＬを表す情報を含む）と、上記ステップＳ１８により指定された制御装置１の動作条件に応じて、選別ルールの最適値を算出し、この算出された最適値を選別ルールの各パラメータの決定値として記憶ユニットに保存する。なお、この選別ルールの最適値も、上記した「推奨値」を算出する場合と同様の手法により算出できる。
【０１３１】
そしてＰＣ２は、ステップＳ２４において、異常監視パラメータ設定ツール２２０により、上記保存された選別ルールを、別途オペレータが指定入力した判定ルールと共に、異常検知パラメータとして制御装置１へ送り、変数管理プログラム１２０に設定する。
【０１３２】
（２−４）制御装置１の解析タスクの変更
オペレータが、解析精度を最優先にして、例えば図１１に示すように、制御装置１の処理の余裕度がデッドラインＤＬ未満となるような取得データ数Ｐ３を選択したとする。この取得データ数Ｐ３に対応する選別ルールをそのまま制御装置１に設定すると、制御装置１の制御タスクの実行に処理遅延等の悪影響が発生する。
【０１３３】
そこで、この場合ＰＣ２は、上記取得データ数Ｐ３の選択指定を拒否する旨のメッセージを表示デバイスの画面に表示させるか、または制御装置１の解析タスクの負荷の変更を行う。
【０１３４】
例えば、ＰＣ２のデータマイニングツール２００は、記憶ユニットの解析用アルゴリズム情報のメモリテーブルから、解析処理量の少ない解析処理アルゴリズムを選択し直す。そして、この選択し直した解析用アルゴリズムを使用した場合の余裕度グラフまたはトレードオフグラフを生成し、この生成された余裕度グラフまたはトレードオフグラフをＧＵＩ２１０により表示画面に表示させる。またそれと共にデータマイニングツール２００は、上記生成し直した余裕度グラフまたはトレードオフグラフのデータに基づいて選別ルールを設定し直し、当該選別ルールを制御装置１に設定する。  
このようにすることで、制御装置１の制御タスクがデッドラインＤＬ未満にならない範囲で解析精度を優先した異常検知ルールを自動設定することが可能となる。
【０１３５】
（３）制御装置１の運用開始後の処理
（３−１）監視
制御装置１は、生産機器の動作中に、各センサ７，８により計測される監視対象の変数に対応するＲＡＷデータを入力プログラム１４０により取得する。そして、特徴量生成プログラム１１６の制御の下、上記ＲＡＷデータからその特徴量を生成する処理を以下のように実行する。
【０１３６】
すなわち、特徴量生成プログラム１１６は、先ず変数管理プログラム１２０から異常検知パラメータ１２３を取り込み、当該異常検知パラメータ１２３に含まれる解析用データの選別ルールに従い、上記ＲＡＷデータ（波形データ）から、上記選別ルールにより指定された時間窓、つまり図１２に示した周期の時間長Ｃと、収集の開始位置Ｓと、データ取得範囲Ｗとにより表される区間（図１２において網掛け表示されている区間）のデータを選択的に収集する。この結果、ＲＡＷデータの全区間を監視対象として収集する場合に比べ解析用データの取得点数が限定され、制御装置１の制御タスクへの影響は抑制される。
【０１３７】
次に特徴量生成プログラム１１６は、予め設定された特徴量生成ルールに従い、上記収集された区間の解析用データの平均値または最大値を算出し、この算出された平均値または最大値を上記ＲＡＷデータの特徴量として制御装置１内のメインメモリ１１ｄに保存する。
【０１３８】
異常監視エンジン１９０は、上記生成された特徴量を異常監視エンジン・インタフェース１１３を介して取得する。そして、異常検知部１９２は、上記取得した特徴量に対し、上記組込データベース１８０に記憶された異常度算出結果を参照して異常監視処理を行う。そして、その監視結果を組込データベース１８０に記憶させると共に、上記異常の監視結果をもとにイベントログ１９３を生成する。
【０１３９】
（３−２）異常検知パラメータの更新
以上述べた制御装置１の運用中において、ＰＣ２は制御装置１から負荷情報を定期的に取得し、この負荷情報に含まれる制御負荷量と処理負荷量とに基づいて、制御装置１の処理の余裕度およびデータ解析精度を計算する。そしてＰＣ２は、その計算結果とオペレータが指定した条件に基づいて制御装置１に設定する異常検知パラメータを更新する処理を行う。更新された異常検知パラメータは、制御装置１の変数管理プログラム１２０に通知される。
【０１４０】
なお、以上述べた監視動作を実行する前、或いは実行中に、監視対象の計測データの異常監視を行うことも可能である。以下に、その処理手順と処理内容の一例を示す。
【０１４１】
（３−３）ＲＡＷデータの収集
制御装置１は、先ず異常度算出段階において、入力プログラム１４０の制御の下、変数管理プログラム１２０で管理されている監視対象のユーザ変数およびデバイス変数に対応するＲＡＷデータを、センサ７，８から取り込む。
【０１４２】
（３−４）特徴量の生成
制御装置１は、特徴量生成プログラム１１６において、センサ７，８から受信した、監視対象のユーザ変数およびデバイス変数に対応するＲＡＷデータから、特徴量を生成する。このときの特徴量の生成は、変数管理プログラム１２０により予め定義されている特徴量生成ルールに従い行われる。つまり、事前に設定された特徴量生成ルールに従い、例えば平均値または最大値が求められる。
【０１４３】
（３−５）監視対象の計測データの異常監視
上記特徴量生成プログラム１１６において監視対象の各変数に対応する測定データの特徴量が生成されると、当該生成された特徴量を異常監視エンジン１９０が異常監視エンジン・インタフェース１１３を介して取得する。異常監視エンジン１９０は、異常度算出部１９１において、上記取得した特徴量をもとに異常検知のための異常監視処理を行って、その異常度算出結果を組込データベース１８０に記憶させる。
【０１４４】
ＰＣ２は、データマイニングツール２００の制御の下、組込データベースクエリプログラム２０１により、上記組込データベース１８０から上記異常度算出結果を取得する。そしてデータマイニング部２０２により、上記取得された監視結果をもとに異常判定ルールを決定する。続いてＰＣ２は、異常監視パラメータ設定ツール２２０の制御の下、上記決定された異常判定ルールを制御装置１へ送信する。制御装置１は、変数管理プログラム１２０において、異常検知パラメータに含まれる判定ルールを上記ＰＣ２から送られた異常判定ルールに更新する。
【０１４５】
（効果）
以上詳述したように一実施形態では、制御装置１において、負荷情報生成プログラム３００に含まれる実行タスク抽出プログラム３０１により、全てのプログラムの中から、解析用データの数に依存する実行タスクを実行する解析処理プログラムを抽出し、その種類を取得する。またそれと共に、制御負荷量算出プログラム３０２により、制御装置１の機種（形式）および選択された制御プログラムの種類に対応するスペックに基づいて、制御装置１が上記制御プログラムを実行したときのプロセッサ１１ａの制御負荷量を算出する。そして、ＰＣ２において、制御装置１から上記抽出された解析用プログラムの種類を表す情報と、上記算出された制御負荷量を取得し、上記解析用プログラムの種類ごとにデータ数ごとの処理負荷量を算出する。そして、上記算出された処理負荷量および上記取得された制御負荷量に基づいて、制御装置１の処理の余裕度を解析用データの数ごとに計算する。そして、その計算結果に基づいて、解析用データの取得点数に対する余裕度の変化を表す余裕度グラフを生成し、ＧＵＩ２１０により表示するようにしている。
【０１４６】
従って、一実施形態によれば、解析用プログラムの種類によって処理データ数ごとの処理時間が異なる場合でも、解析用プログラムの種類別に処理データ数ごとの処理負荷量を算出することができる。また、解析用プログラムの種類と処理データ数ごとの処理負荷量（処理時間）との関係が制御装置１の種類により異なる場合でも、制御装置１の種類別に、解析用プログラムの種類ごとに処理データ数に応じた処理負荷量を算出することができる。このため、オペレータは解析用プログラムの種類ごとに解析用データ数に応じた制御装置１の処理の余裕度を把握することができ、これにより許容される余裕度内でより多くの解析用データを取得してその解析処理を制御装置１に実行させるように、制御装置１の異常検知パラメータを設定することが可能となる。
【０１４７】
また一実施形態では、制御装置１において得られた監視結果を表すデータをもとに計測データの解析精度をさらに算出し、解析用データの取得点数に対する上記余裕度と上記データ解析精度の変化の関係を表すトレードオフグラフを生成してＧＵＩ２１０により表示するようにしている。
【０１４８】
従って、オペレータはＰＣ２において表示されたトレードオフグラフにより、制御装置１における処理の余裕度とデータ解析精度との関係を確認することができ、この関係をもとに、制御装置１が生産機器の異常検知を行うための解析処理を行う上で適切な異常検知パラメータを容易に設定することが可能になる。
【０１４９】
また、制御装置１の処理の余裕度およびデータ解析精度と、オペレータが事前に指定した制御装置１の動作条件とをもとに、選別ルールのパラメータの推奨値を求めてこれを表示し、表示された推奨値の中から所望の値をオペレータが選択指定できるモードを備えている。従って、オペレータは熟練を要することなく、常に自身が希望する適切な異常検知パラメータを設定することが可能となる。
【０１５０】
さらに、制御装置１の処理の余裕度およびデータ解析精度と、オペレータが事前に指定したパラメータ設定条件とに基づいて、異常検知パラメータの最適値を計算し、当該異常検知パラメータの最適値を制御装置１の変数管理プログラム１２１に設定する完全自動設定モードも備えている。従って、この完全自動設定モードを選択することで、オペレータは特に設定操作を行う必要がなくなる。
【０１５１】
しかも、制御装置１に対し異常検知パラメータを設定した後の制御装置１の運用期間中に、制御装置１の処理の余裕度およびデータ解析精度の計算処理を定期的に実行し、制御装置１に設定する異常検知パラメータの最適値を更新するようにしている。従って、制御装置１の実際の運用時における制御装置１の制御負荷量またはデータ解析処理の処理負荷量が、運用前のシミュレーション値とは異なるような場合でも、異常検知パラメータを自動的に再調整することができる。また、制御装置１の運用期間中に、例えばアクチュエータ５，９が交換されてデバイス変数が変更になったり、ユーザプログラムの更新等によりユーザ変数が一部変更になった場合でも、これらの変更に応じて異常検知パラメータを自動的に更新することが可能となる。
【０１５２】
［その他の実施形態］
前記一実施形態では、支援装置の機能をＰＣ２に設けた場合を例にとって説明した。しかし、支援装置の機能を制御装置１に設けてもよい。また、支援装置としてはＰＣ以外にHuman Machine Interface（ＨＭＩ）を用いてもよく、また支援装置をＷｅｂサーバにより構成してもよい。
【０１５３】
また、前記一実施形態では、制御プログラムの実行による処理ユニットの制御負荷量の算出処理と、全てのプログラムの中から解析用プログラムを抽出する処理を、制御装置１内で行う場合を例にとって説明した。しかし、上記各処理を支援装置としてのＰＣ２内で行うようにしてもよい。
【０１５４】
また、応用例として、産業用制御装置が実行する解析用プログラムの抽出処理、制御負荷量の算出処理を、支援装置で行うようにすることも可能である。この場合、支援装置としてのＰＣ２は、例えば、制御装置１から、解析用プログラムのリストを表す情報またはその実行履歴を表す情報と、制御装置１および制御プログラムのスペックを表す情報を取得し、これらの情報をもとに解析用プログラムの抽出処理と、当該解析用プログラムの種類別のデータ数に応じた処理負荷量の算出処理と、上記制御プログラムによる制御負荷量の算出処理を実行する。
【０１５５】
その他、産業用制御装置の種類や構成、支援装置の種類やその機能等についても、この発明の要旨を逸脱しない範囲で種々変形して実施可能である。
【０１５６】
要するにこの発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【０１５７】
上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られるものではない。
【０１５８】
（付記１）
制御対象の動作を制御するための処理を実行する第１の実行タスクと、予め設定された実行ルールに従い前記制御対象の動作に係る解析用データを取得して前記動作を解析する処理を実行する第２の実行タスクとを、共通の処理ユニットにより実行する産業用制御装置と、
当該産業用制御装置と共に使用される支援装置と
を具備し、
前記産業用制御装置は、前記処理ユニットとしてハードウェアプロセッサとメモリとを有し、
前記産業用制御装置は、前記ハードウェアプロセッサにより、
前記第１の実行タスクによる前記処理ユニットの制御負荷量を算出し、
前記第１および第２の各実行タスクの中から、前記第２の実行タスクを抽出し、
前記抽出された第２の実行タスクの種類と、前記解析用データの数を取得し、当該取得された第２の実行タスクの種類と解析用データ数とから、前記抽出された第２の実行タスクによる前記ハードウェアプロセッサの処理負荷量を算出するように構成され、
前記支援装置は、ハードウェアプロセッサおよびメモリを有し、
前記支援装置は、前記ハードウェアプロセッサにより、
前記産業用制御装置から前記算出された制御負荷量および処理負荷量を表す情報を取得し、
前記取得された第２の実行タスクの種類別に、前記解析用データの数ごとに前記処理ユニットの処理負荷量を算出し、
前記取得された制御負荷量および処理負荷量を表す情報に基づいて、前記ハードウェアプロセッサが前記第１および第２の各実行タスクを実行したときに残る処理能力の度合いを示す処理の余裕度を前記解析用データの数ごとに算出し、
前記解析用データの数ごとに算出された処理の余裕度を表す情報を表示可能な情報として出力するように構成される、
産業用制御システム。
【０１５９】
（付記２）
制御対象の動作を制御するための処理を実行する第１の実行タスクと、予め設定された実行ルールに従い前記制御対象の動作に係る解析用データを取得して前記動作を解析する処理を実行する第２の実行タスクとを、共通の処理ユニットにより実行し、かつ前記第１の実行タスクによる前記処理ユニットの制御負荷量を算出すると共に、前記第１および第２の各実行タスクの中から前記第２の実行タスクを抽出して、当該抽出された第２の実行タスクの種類と前記解析用データの数を取得して、当該取得された第２の実行タスクの種類と解析用データ数とから前記抽出された第２の実行タスクによる前記処理ユニットの処理負荷量を算出する機能を有する産業用制御装置と共に使用される支援装置であって、前記支援装置は、ハードウェアプロセッサと、メモリとを有し、
前記ハードウェアプロセッサは、
前記産業用制御装置から前記算出された制御負荷量および処理負荷量を表す情報を取得し、
前記取得された第２の実行タスクの種類別に、前記解析用データの数ごとに前記処理ユニットの処理負荷量を算出し、
前記取得された制御負荷量および処理負荷量を表す情報に基づいて、前記処理ユニットが前記第１および第２の各実行タスクを実行したときに残る処理能力の度合いを示す処理の余裕度を前記解析用データの数ごとに算出し、
前記解析用データの数ごとに算出された処理の余裕度を表す情報を表示可能な情報として出力するように構成される、
支援装置。
【０１６０】
（付記３）
制御対象の動作を制御するための処理を実行する第１の実行タスクと、予め設定された実行ルールに従い前記制御対象の動作に係る解析用データを取得して前記動作を解析処理を実行する第２の実行タスクとを、少なくとも１つのハードウェアプロセッサおよびメモリを有する共通の処理ユニットにより実行する産業用制御装置と、当該産業用制御装置と共に使用されかつ少なくとも１つのハードウェアプロセッサおよびメモリを有する支援装置とが、それぞれ実行する制御支援方法であって、
前記産業用制御装置が、前記少なくとも１つのハードウェアプロセッサおよびメモリを用いて、前記第１の実行タスクによる前記処理ユニットの制御負荷量を算出する過程と、
前記産業用制御装置が、前記少なくとも１つのハードウェアプロセッサおよびメモリを用いて、前記第１および第２の各実行タスクの中から、前記第２の実行タスクを抽出する過程と、
前記産業用制御装置が、前記少なくとも１つのハードウェアプロセッサおよびメモリを用いて、前記抽出された第２の実行タスクの種類と、前記解析用データの数を取得し、当該取得された第２の実行タスクの種類と解析用データ数とから、前記抽出された第２の実行タスクによる前記処理ユニットの処理負荷量を表す情報を算出する過程と、
前記支援装置が、前記少なくとも１つのハードウェアプロセッサおよびメモリを用いて、前記産業用制御装置から前記算出された制御負荷量および処理負荷量を表す情報を取得する過程と、
前記支援装置が、前記少なくとも１つのハードウェアプロセッサおよびメモリを用いて、前記取得された第２の実行タスクの種類別に、前記解析用データの数ごとに前記処理ユニットの処理負荷量を算出する過程と、
前記支援装置が、前記少なくとも１つのハードウェアプロセッサおよびメモリを用いて、前記取得された制御負荷量および処理負荷量を表す情報に基づいて、前記処理ユニットが前記第１および第２の各実行タスクを実行したときに残る処理能力の度合いを示す処理の余裕度を前記解析用データの数ごとに算出する過程と、
前記支援装置が、前記少なくとも１つのハードウェアプロセッサおよびメモリを用いて、前記解析用データの数ごとに算出された処理の余裕度を表す情報を表示可能な情報として出力する過程と
を具備する制御支援方法。
【符号の説明】
【０１６１】
１…制御装置、２…ＰＣ、３…信号ケーブル、４…フィールドネットワーク、
５，９…アクチュエータ、６…リモートＩＯターミナル、７，８…センサ、
１０…ローカルバス、１１…制御ユニット、１１ａ…プロセッサ、
１１ｂ…チップセット、１１ｃ…不揮発性メモリ、１１ｄ…メインメモリ、
１１ｅ…システムタイマ、１１ｆ…制御用システムバスコントローラ、
１１ｇ…フィールドネットワークコントローラ、
１１ｈ…フィールドネットワークコネクタ、１１ｉ…制御用システムバスコネクタ、
１１ｊ…ＵＳＢコネクタ、１１ｆ１…制御用システムバス制御回路、
１１ｇ１…フィールドネットワーク制御回路、１１ｆ２，１１ｇ２…ＤＭＡ制御回路、
１１ｆ３，１１ｇ３…バッファメモリ、１２…ＩＯユニット、１４…電源ユニット、
１５…制御用システムバス、６１…通信カプラ、６２…ＩＯユニット、
６３…リモートＩＯターミナルバス、１００…制御用エンジン、
１１０…制御プログラム、１１２…組込データベース用書込みプログラム、
１１３…異常監視エンジン・インタフェース、
１１４…異常度算出要求プログラム、１１５…監視要求プログラム、
１１６…特徴量生成プログラム、１１７…シリアライズ通信プログラム、
１２０…変数管理プログラム、１２１…システム変数、
１２２…ユーザ変数およびデバイス変数、１２３…異常検知パラメータ、
１３０…スケジューラプログラム、１４０…入力プログラム、
１５０…出力プログラム、１６０…ローカルバス、１７０…フィールドバス、
１８０…組込データベース、１９０…異常監視エンジン、
１９１…異常度算出部、１９２…異常検知部、１９３…イベントログ、
２００…データマイニングツール、２０１…組込データベースクエリプログラム、
２０２…データマイニング部、２０３…可視化部、２１０…ＧＵＩ、
２２０…異常監視パラメータ設定ツール、２２１…変数アクセスプログラム、
２２２…選別ルール、３００…負荷情報生成プログラム、
３０１…実行タスク抽出プログラム、３０２…制御負荷量算出プログラム、
２０２１…解析・制御性能比較部、２０２２…異常検知パラメータ設定部、
２０２３…余裕度算出プログラム、２０２４…解析精度算出プログラム、
２０２５…処理負荷量算出プログラム。
【図１】
2019109580.tif 000003
【図２】
2019109580.tif 000004
【図３】
2019109580.tif 000005
【図４】
2019109580.tif 000006
【図５】
2019109580.tif 000007
【図６】
2019109580.tif 000008
【図７】
2019109580.tif 000009
【図８】
2019109580.tif 000010
【図９】
2019109580.tif 000011
【図１０】
2019109580.tif 000012
【図１１】
2019109580.tif 000013
【図１２】
2019109580.tif 000014
【図１３】
2019109580.tif 000015