JP2021189482A - プログラマブルロジックコントローラ - Google Patents
プログラマブルロジックコントローラ Download PDFInfo
- Publication number
- JP2021189482A JP2021189482A JP2020090774A JP2020090774A JP2021189482A JP 2021189482 A JP2021189482 A JP 2021189482A JP 2020090774 A JP2020090774 A JP 2020090774A JP 2020090774 A JP2020090774 A JP 2020090774A JP 2021189482 A JP2021189482 A JP 2021189482A
- Authority
- JP
- Japan
- Prior art keywords
- data
- unit
- monitoring
- feature amount
- setting
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
【課題】外部装置との通信による通信遅延を発生させることなく、カメラセンサによって撮影したカメラ画像を他のデバイスのデバイス値と容易に同期させて好適に監視を行うプログラマブルロジックコントローラを提供する。【解決手段】プログラマブルロジックコントローラ(PLC)は、撮影条件に従って順次撮影し、撮影したカメラ画像の画像データを順次生成するカメラセンサ10が接続され、カメラ入力インターフェースを介してカメラセンサ10からカメラ画像の画像データを順次取得し、取得されたカメラ画像の画像データうち予め設定された監視領域における画像データの特徴量を示す特徴量データを生成し、デバイスメモリに記憶された所定デバイスのデバイス値を時刻情報とともに収集し、特徴量データを時刻情報とともに収集し、収集されたデバイス値の時系列データと特徴量データの時系列データの少なくとも1つを所定の監視条件に従って監視する。【選択図】図10
Description
本発明はプログラマブルロジックコントローラに関する。
プログラマブル・ロジック・コントローラ(PLC)はファクトリーオートメーションにおいて製造機器や搬送装置、検査装置などの産業機械を制御するコントローラ(制御装置)である。また、工場内の機器や制御装置、さらには製造品等の異常を発見するために、画像センサが用いられている。
しかし、制御対象の設備の異常には、静的なものや動的なものが存在し、画像センサではパターンマッチングに成功したか否かを判定するだけであり、静的、動的な異常を判定するのには不向きであった。また、画像センサでは、正常か異常かをはっきりと区別することには優れているが、「いつもと違う」状態を検知することは困難であった。
そこで、本発明は上記問題の少なくとも1つに鑑み、PLCレイヤにカメラ入力ユニットを設けることにより、外部装置との通信による通信遅延を発生させることなく、カメラセンサによって撮影したカメラ画像を他のデバイスのデバイス値と容易に同期させて好適に監視を行うことを目的とする。
本発明は、例えば、撮影条件に従って順次撮影し、撮影したカメラ画像の画像データを順次生成するカメラセンサが接続されるプログラマブルロジックコントローラであって、
ユーザプログラムを繰り返し実行する実行エンジンと、
前記ユーザプログラムに従って前記実行エンジンによりアクセスされるデバイスのデバイス値を記憶するデバイスメモリと、
前記ユーザプログラムと、接続されるカメラセンサの撮像条件および撮影したカメラ画像に対する監視領域を含む設定情報とを受け付けるための設定インターフェースと、
前記設定インターフェースを介して受け付けた撮影条件に従って順次撮影し、撮影したカメラ画像の画像データを順次生成するカメラセンサを接続するカメラ入力インターフェースと、
前記カメラ入力インターフェースを介して前記カメラセンサからカメラ画像の画像データを順次取得し、取得された前記カメラ画像の画像データうち予め設定された監視領域における画像データの特徴量を示す特徴量データを生成する画像処理手段と、
前記デバイスメモリに記憶された所定デバイスのデバイス値を時刻情報とともに収集し、前記特徴量データを時刻情報とともに収集する収集手段と、
前記収集手段によって収集されたデバイス値の時系列データと前記特徴量データの時系列データの少なくとも1つを所定の監視条件に従って監視する監視手段と
を備えることを特徴とする。
ユーザプログラムを繰り返し実行する実行エンジンと、
前記ユーザプログラムに従って前記実行エンジンによりアクセスされるデバイスのデバイス値を記憶するデバイスメモリと、
前記ユーザプログラムと、接続されるカメラセンサの撮像条件および撮影したカメラ画像に対する監視領域を含む設定情報とを受け付けるための設定インターフェースと、
前記設定インターフェースを介して受け付けた撮影条件に従って順次撮影し、撮影したカメラ画像の画像データを順次生成するカメラセンサを接続するカメラ入力インターフェースと、
前記カメラ入力インターフェースを介して前記カメラセンサからカメラ画像の画像データを順次取得し、取得された前記カメラ画像の画像データうち予め設定された監視領域における画像データの特徴量を示す特徴量データを生成する画像処理手段と、
前記デバイスメモリに記憶された所定デバイスのデバイス値を時刻情報とともに収集し、前記特徴量データを時刻情報とともに収集する収集手段と、
前記収集手段によって収集されたデバイス値の時系列データと前記特徴量データの時系列データの少なくとも1つを所定の監視条件に従って監視する監視手段と
を備えることを特徴とする。
本発明によれば、PLCレイヤにカメラ入力ユニットを設けることにより、外部装置との通信による通信遅延を発生させることなく、カメラセンサによって撮影したカメラ画像を他のデバイスのデバイス値と容易に同期させて好適に監視を行うことができる。
以下、添付図面を参照して実施形態が詳しく説明される。尚、以下の実施形態は特許請求の範囲に係る発明を限定するものではなく、また実施形態で説明されている特徴の組み合わせの全てが発明に必須のものとは限らない。実施形態で説明されている複数の特徴のうち二つ以上の特徴が任意に組み合わされてもよい。また、同一又は同様の構成には同一の参照番号が付され、重複した説明は省略される。同一又は類似の要素を示す参照符号の末尾には小文字のアルファベットが付与されることがある。複数の要素に共通する事項が説明される場合、小文字のアルファベットが省略される。
<第1の実施形態>
<システム構成>
以下では、本発明の第1の実施形態について説明する。はじめにプログラマブルロジックコントローラ(PLC、単にプログラマブルコントローラと呼ばれてもよい)を当業者にとってよりよく理解できるようにするために、一般的なPLCの構成とその動作について説明する。
<システム構成>
以下では、本発明の第1の実施形態について説明する。はじめにプログラマブルロジックコントローラ(PLC、単にプログラマブルコントローラと呼ばれてもよい)を当業者にとってよりよく理解できるようにするために、一般的なPLCの構成とその動作について説明する。
図1は、本発明の実施の形態によるプログラマブル・ロジック・コントローラシステムの一構成例を示す概念図である。図1が示すように、このシステムは、ラダープログラムなどのユーザプログラムの編集を行うためのPC2と、工場等に設置される各種制御装置を統括的に制御するためのPLC(プログラマブルロジックコントローラ)1とを備えている。PCはパーソナルコンピュータの略称である。ユーザプログラムは、ラダー言語やSFC(シーケンシャルファンクションチャート)などのフローチャート形式のモーションプログラムなどのグラフィカルプログラミング言語を用いて作成されてもよいし、C言語などの高級プログラミング言語を用いて作成されてもよい。以下では、説明の便宜上、ユーザプログラムはラダープログラムとする。PLC1は、CPUが内蔵された基本ユニット3と、1つ乃至複数の拡張ユニット4を備えている。基本ユニット3に対して1つ乃至複数の拡張ユニット4が着脱可能となっている。
基本ユニット(CPUユニットとも称する)3は、表示部5及び操作部6を備えている。表示部5は、基本ユニット3に取り付けられている各拡張ユニット4の動作状況などを表示することができる。操作部6の操作内容に応じて表示部5は表示内容を切り替える。表示部5は、通常、PLC1内のデバイスの現在値(デバイス値)やPLC1内で生じたエラー情報などを表示する。ここでデバイスとは、基本ユニット3や拡張ユニット4に含まれるリレー、タイマー、カウンタなどの種々のデバイスを含むものであり、デバイス値を格納するために設けられたメモリ上の領域を指すものでもあり、デバイスメモリと呼ばれてもよい。基本ユニット3は、各デバイスのデバイス値を収集して保持する。なお、当該デバイスメモリは不揮発性メモリであり、書き換え可能な不揮発性ROMで構成されてもよく、揮発性RAM等をバッテリーバックアップ等により不揮発性を実現してもよい。ROMはリードオンリーメモリの略称である。RAMはランダムアクセスメモリの略称である。デバイス値とは、入力機器からの入力状態、出力機器への出力状態及びユーザプログラム上で設定される内部リレー(補助リレー)、タイマー、カウンタ、データメモリ等の状態を示す情報である。デバイス値の型にはビット型とワード型等がある。ビットデバイスは1ビットのデバイス値、例えば、0/1、ON/OFF、H/L等を記憶する。ワードデバイスは任意のサイズのデバイス値を記憶する。後述する制御プログラム等の収集対象としては、デバイスとして変数が指定されてもよい。変数も情報を保持する保持手段であり、ユーザプログラムに従って実行エンジンによりアクセスされるものである。したがって、以下の説明においてデバイスは変数も指すものである。なお、デバイスを保持するメモリはデバイスメモリと呼ばれてもよい。また、収集されたデータを保持するメモリはデータメモリと呼ばれてもよい。
拡張ユニット4は、PLC1の機能を拡張するために用意されている。各拡張ユニット4には、その拡張ユニット4の機能に対応するフィールドデバイスが接続されることがあり、これにより、各フィールドデバイスが拡張ユニット4を介して基本ユニット3に接続される。フィールドデバイスは、センサやカメラなどの入力機器であってもよいし、アクチュエータなどの出力機器であってもよい。また、一つの拡張ユニット4に対して複数のフィールドデバイスが接続されてもよい。図1の例では、拡張ユニットであるカメラ入力ユニット4aにフィールドデバイスであるカメラセンサ10が接続されている例を示す。また、拡張ユニット4cには、センサ、スイッチ等のその他のフィールドデバイス19が接続されている例を示す。
拡張ユニットであるカメラ入力ユニット4aは、接続されたカメラセンサ10で撮影条件に従って順次撮影されたカメラ画像を順次取得し、取得したカメラ画像から受光量または輝度に関する特徴量を抽出し、特徴量データを順次生成する。これらの生成された特徴量データは、常時監視中においては分析ユニット4bによって収集される。なお、本システムでは、常時監視とは別に、デバイス値やカメラ画像の画像データをシステムの運転記録として保持し、所定の分析タイミングにおいて保持したデバイス値やカメラ画像を用いて分析を行う運転記録分析が行われる。この場合、特徴量データは、分析時においてカメラ入力ユニット4aで保持されている画像データから生成されてもよいし、基本ユニット3から各デバイスのデバイス値を取得するタイミングにおいて同様に取得されて基本ユニット3の記憶装置32に保持され、監視条件を満足した場合に監視対象のデータとして収集されて分析ユニット4bへ転送されてもよい。つまり、本実施形態に係るシステムでは、常時監視中においても、運転記録に関する情報が基本ユニット3や拡張ユニット4によって保持され、所定の分析タイミングにおいて分析対象のデータとして分析ユニット4bで使用される。本発明によれば、常時監視中において、たとえばカメラセンサ10からのカメラ画像をデバイスメモリのデバイスにより規定された監視タイミングに応じて監視するものである。常時監視中の監視対象となる特徴量データの取得については、後述するデバイス値の取得周期であるスキャン周期に同期したスキャンタイムレベルで行われてもよいし、非同期で取得されてもよい。なお、スキャン周期に同期して取得した場合には、カメラ映像の画像を他のデバイスのデバイス値と関連して容易に評価することができるため、より高精度かつ効率的な異常検知を行うことができる。カメラセンサ10は、動画像データを取得し、BMPやJPEGなどの画像データを生成する。また、これらの画像データから受光量や輝度に関する特徴量データを生成し、当該特徴量データがメモリで順次収集され、時系列データとして保存される。カメラセンサの種類については特に制限はなく、カメラ入力ユニット専用のカメラでもよく、WebカメラやGigEカメラであってもよいが、制御データと組み合わせる場合は、カメラ入力ユニット4aの専用のカメラであることが望ましい。
本実施形態において、拡張ユニットである分析ユニット4bはカメラ入力ユニット4aからの特徴量データや各デバイスのデバイス値を分析するユニットであり、フィールドデバイスは接続されていない形態を示す。
分析ユニット4bは、常時監視中においては、デバイス値とカメラ入力ユニット4aで生成された特徴量データを取得し、これらの取得されたデータの周期的な変化に基づいて、「いつもと違う」の有無を分析する拡張ユニットである。また、分析ユニット4bは、基本ユニット3で取得され、基本ユニット3の第一バッファ37aで運転記録として収集されたデバイスの時系列データを、デバイスの保存条件が満たされた場合などの分析タイミングにおいて取得し、「いつもと違う」原因を分析することができる。さらに、分析ユニット4bは、後述するフローなどのプログラムを実行することで収集データにデータ処理を施して監視画面等の表示対象データを作成し、ダッシュボードをPC2bの表示部7b又は分析ユニット4bに設けられた不図示のディスプレイに表示するための表示データを作成する。なお、本実施形態では、分析ユニット4bが分析装置として動作する例について説明するが、本発明を限定する意図はなく、基本ユニット3が分析装置として機能してもよい。また、不図示であるが拡張ユニットに対して他のPCがネットワークを介して接続され、当該PCに生成した監視画面等を表示するようにしてもよい。また、以下で説明されるフローのフロープログラムは制御プログラムの一例に過ぎない。基本ユニット3はCPUユニットと呼ばれることもある。なお、PLC1とPC2とを含むシステムはプログラマブルロジックコントローラシステムと呼ばれてもよい。
PC2aはPLC1に対してプロジェクトデータを転送する。一方、PC2bは主に現場担当者によって操作されるコンピュータである。プロジェクトデータには、基本ユニット3やカメラ入力ユニット4a、分析ユニット4bの制御プログラムや各種機能における閾値、監視領域等の設定情報が含まれる。制御プログラムとは、制御エンジンにより実行されるラダー言語やフローなどにより記述されたプログラムである。各種機能の設定情報には、例えば、データの属性やデータの書き込み先を示すフラグが設けられている。基本ユニットは、当該フラグに応じて、各情報の適切な書き込み先を判断して書き込みを行うことで、各ユニットの設定ができる。また、設定情報には、カメラ自体の設定情報、例えば露光時間、コントラストなどが含まれてもよい。PC2aは、例えば、携帯可能なノートタイプやタブレットタイプのパーソナルコンピュータ又はスマートフォンであってもよく、表示部7及び操作部8を備えている外部コンピュータである。外部コンピュータとは、PLC1の外部にあるコンピュータを示す。PLC1を制御するためのユーザプログラムの一例であるラダープログラムは、PC2aを用いて作成される。その作成されたラダープログラムは、PC2a内でニモニックコードに変換される。PC2aは、USB(Universal Serial Bus)ケーブルなどの通信ケーブル9aを介してPLC1の基本ユニット3に接続される。例えば、PC2aは、ニモニックコードに変換されたラダープログラムを基本ユニット3に送る。基本ユニット3はラダープログラムをマシンコードに変換し、基本ユニット3に備えられたメモリ内に記憶する。なお、ここではニモニックコードが基本ユニット3に送信されているが、本発明はこれに限られない。例えば、PC2aは、ニモニックコードを中間コードに変換し、中間コードを基本ユニット3に送信してもよい。
なお、図1には示していないが、PC2の操作部8には、PC2に接続されたマウスなどのポインティングデバイスが含まれていてもよい。また、PC2は、USBケーブル以外の他の通信ケーブル9を介して、PLC1の基本ユニット3に対して着脱可能に接続されるような構成であってもよい。また、PC2は、通信ケーブル9を介さず、PLC1の基本ユニット3に対して無線通信によって接続されてもよい。
<プログラム作成支援装置>
図2はPC2の電気的構成について説明するためのブロック図である。図2が示すように、PC2aは、CPU11a、表示部7a、操作部8a、記憶装置12a及び通信部13aを備えている。表示部7a、操作部8a、記憶装置12a及び通信部13aは、それぞれCPU11aに対して電気的に接続されている。記憶装置12aはRAMやROM、HDD、SSDを含み、さらに着脱可能なメモリカードを含んでもよい。CPUは中央演算処理装置の略称である。HDDはハードディスクドライブの略称である。SSDはソリッドステートドライブの略称である。
図2はPC2の電気的構成について説明するためのブロック図である。図2が示すように、PC2aは、CPU11a、表示部7a、操作部8a、記憶装置12a及び通信部13aを備えている。表示部7a、操作部8a、記憶装置12a及び通信部13aは、それぞれCPU11aに対して電気的に接続されている。記憶装置12aはRAMやROM、HDD、SSDを含み、さらに着脱可能なメモリカードを含んでもよい。CPUは中央演算処理装置の略称である。HDDはハードディスクドライブの略称である。SSDはソリッドステートドライブの略称である。
PC2aのユーザは記憶装置12aに記憶されているプロジェクト編集プログラム14aをCPU11aに実行させて、操作部8aを通じてプロジェクトデータ15を編集する。CPU11aがプロジェクト編集プログラム14aを実行することで、プロジェクト作成部16とプロジェクト転送部17が実現される。プロジェクト作成部16はユーザ入力にしたがってプロジェクトデータ15を作成する。プロジェクト転送部17はプロジェクトデータ15をPLC1に転送する。プロジェクトデータ15は、ラダープログラム、制御プログラム、モーションプログラム、データ活用プログラムなどの一つ以上のユーザプログラムと、基本ユニット3や拡張ユニット4の構成情報、基本ユニット3や拡張ユニット4に備えられた特定機能の設定情報などを含む。構成情報は、基本ユニット3に対する複数の拡張ユニット4の接続位置やデバイスの割り当て情報を含む。基本ユニット3に備えられたデータ収集機能、通信機能、位置決め機能などの機能を示す情報、拡張ユニット4の通信機能、位置決め機能、撮影機能などの機能を示す情報を含んでいてもよい。特定機能の設定情報は、基本ユニット3に備えられたデータ収集機能、通信機能、位置決め機能等の機能に関する設定情報、例えば、データ収集機能であれば、データ収集条件やデータ収集対象の設定情報を含み、拡張ユニット4の通信機能、位置決め機能、データ活用機能、撮影機能等の機能に関する設定情報等を含む。ここで、プロジェクトデータ15の編集には、プロジェクトデータ15の作成及び変更が含まれる。ユーザは、必要に応じて記憶装置12aに記憶されているプロジェクトデータ15を読み出し、そのプロジェクトデータ15を、プロジェクト編集プログラム14aを用いて変更することができる。通信部13aは、通信ケーブル9aを介して基本ユニット3と通信する。プロジェクト転送部17は通信部13aを介してプロジェクトデータを基本ユニット3に転送する。
<ダッシュボードの表示に使用されるPC>
図3はPC2bの電気的構成について説明するためのブロック図である。図3が示すように、PC2bは、CPU11b、表示部7b、操作部8b、記憶装置12b及び通信部13bを備えている。表示部7b、操作部8b、記憶装置12b及び通信部13bは、それぞれCPU11bに対して電気的に接続されている。記憶装置12bはRAMやROM、HDD、SSDを含み、さらに着脱可能なメモリカードを含んでもよい。
図3はPC2bの電気的構成について説明するためのブロック図である。図3が示すように、PC2bは、CPU11b、表示部7b、操作部8b、記憶装置12b及び通信部13bを備えている。表示部7b、操作部8b、記憶装置12b及び通信部13bは、それぞれCPU11bに対して電気的に接続されている。記憶装置12bはRAMやROM、HDD、SSDを含み、さらに着脱可能なメモリカードを含んでもよい。
CPU11bはWebブラウザプログラム14dを実行することでWebブラウザ18を実現する。Webブラウザ18は、通信部13bを介して、分析ユニット4bによって提供されるデータ活用アプリケーションの設定ページにアクセスしたり、ダッシュボードのページにアクセスしたりする。またCPU11bは、分析ユニット4bから送信された異常発生時の特定結果(判定結果)を示す画面情報に従って、当該特定結果を表示部7bに表示する。
<PLC>
図4はPLC1の電気的構成について説明するためのブロック図である。図4が示すように、基本ユニット3は、CPU31、表示部5、操作部6、記憶装置32、通信部33、及びメモリカード44を備えている。表示部5、操作部6、記憶装置32、及び通信部33は、それぞれCPU31に電気的に接続されている。記憶装置32は、RAMやROM などを含んでもよい。記憶装置32はデバイス部34やプロジェクト記憶部35、第一バッファ37aなどの複数の記憶領域を有している。デバイス部34aはビットデバイスやワードデバイスなどを有し、各デバイスは所定の取得設定に従って現在のデバイス値を記憶するもので、デバイスメモリに相当する。プロジェクト記憶部35は、PC2aから入力されたプロジェクトデータを記憶する。第一バッファ37aには、通常、システムの運転記録の履歴データとして、スキャン周期ごとにデバイス部34aから収集対象のデバイス値が所定の収集設定に従って収集される。さらに、第一バッファ37aには、カメラ入力ユニット4aで生成されたカメラセンサ10が撮影したカメラ画像の特徴量データ等がデバイス値として格納されてもよい。
図4はPLC1の電気的構成について説明するためのブロック図である。図4が示すように、基本ユニット3は、CPU31、表示部5、操作部6、記憶装置32、通信部33、及びメモリカード44を備えている。表示部5、操作部6、記憶装置32、及び通信部33は、それぞれCPU31に電気的に接続されている。記憶装置32は、RAMやROM などを含んでもよい。記憶装置32はデバイス部34やプロジェクト記憶部35、第一バッファ37aなどの複数の記憶領域を有している。デバイス部34aはビットデバイスやワードデバイスなどを有し、各デバイスは所定の取得設定に従って現在のデバイス値を記憶するもので、デバイスメモリに相当する。プロジェクト記憶部35は、PC2aから入力されたプロジェクトデータを記憶する。第一バッファ37aには、通常、システムの運転記録の履歴データとして、スキャン周期ごとにデバイス部34aから収集対象のデバイス値が所定の収集設定に従って収集される。さらに、第一バッファ37aには、カメラ入力ユニット4aで生成されたカメラセンサ10が撮影したカメラ画像の特徴量データ等がデバイス値として格納されてもよい。
ここで、常時監視とは、たとえばカメラ画像をデバイスメモリのデバイス値により規定された監視タイミングに応じて監視する場合をいい、周期的に収集される1以上の所定デバイスのデバイス値と、カメラ画像とを監視する監視形態を示す。つまり、本実施形態において「常時監視」との用語は、連続的に常に監視が行われていることを示すものではなく、ある所定周期に合わせたタイミングでその際のデバイス値及びカメラ画像の監視を行うものとして理解されるべきものである。一方、「運転記録分析」とは、上述した所定の収集タイミングかつ所定の収集設定に従ってデバイス値やカメラ画像若しくはその特徴量データを履歴データとして保持し、後において、例えば常時監視の中でいつもと違うことが検知された場合や、後述する保存条件が満たされた場合などの所定の分析タイミングにおいて履歴データを用いてその原因の分析を行う監視形態である。従って、常時監視と運転記録分析とは排他的に実施されるものではなく、並列的に実施され得るものである。
なお、分析ユニット4bやオプションとして基本ユニット3によって収集されるカメラ入力ユニット4aからのデータは、上述したように、カメラセンサ10で撮影されたカメラ画像の特徴量データであり、画像データ画像データそのものではない。これにより、各ユニット間の通信負荷を軽減し、各ユニットにおける処理負荷を低減することができる。もちろんシステムの処理性能や通信性能によってはカメラ画像の画像データそのものが収集されてもよく、本発明を制限するものではない。
第一バッファ37aについての詳細は図5を用いて後述する。メモリカード44には保存条件が成立した場合に、第一バッファ37aに格納された各デバイスの時系列データが記憶される。このように時系列データがメモリカード44へ一旦保持されることにより、例えば検証対象のデータを後に外部装置等で検証することも可能であり、重要な最新データをログ情報として保持することができる。メモリカード44に保存されたデータは、常時監視において「いつもと違う」が検知された場合に、運転記録分析において「いつもと違う」要因を分析するために用いられる履歴データである。従って、所定値以上の変化やいつもと違う変化が検知された場合に、全デバイスのデバイス値とがメモリカード44に保存されることが望ましい。ここで、全デバイスにはカメラセンサ10が含まれてもよく、その場合にはデバイス値として特徴量データがメモリカード44に保存されてもよい。これにより、常時監視においていつもと違う変化が検知された特徴量を、運転記録分析にも用いることができる。なお、後述するように、監視領域などの監視条件を再設定した場合には、必ずしも同じ特徴量とはならないが、その場合であってもカメラ入力ユニット4aの後述する動画像用メモリ37eに保持されている画像データから得られる特徴量データを利用することができる。
ここで、全デバイスとは、少なくとも制御プログラムで使用されるデバイスを含むものであり、プログラム単位やユニット単位でユーザにより選択設定が可能なものである。この場合、保存されるデータは、いつもと違うことが検知された前後の所定の期間のデータであることが望ましい。従って、例えばリングバッファである第一バッファ37aを利用して、常に所定期間の全デバイスのデータを保持し、異常が発生した際に当該リングバッファのデータをメモリカード44に保存するなどの制御構成が必要となる。ここで、保存条件とは、カメラセンサ10の撮像画像を用いた分析においていつもと違う異常を検知した場合に成立するものである。その他にもユーザによる分析命令があった場合などに成立するものである。保存条件は、ユーザにより予め設定され、プロジェクトデータの一部として基本ユニット3の記憶装置32に記憶されていてもよい。保存条件が成立したことをCPU31が検知すると、CPU31がリングバッファである第一バッファ37aに格納されているデバイス値をSDカード等のメモリカード44へ保存するように命令を発するとともに、分析ユニット4bに対して、分析対象となるデータが保存されたことを通知する。例えば、デバイスメモリの一つの値を実行エンジンが変化させ、デバイスメモリの所定の値に変化があるかどうかを分析ユニット4bが監視することで、データ保存が行われたことを認識し、これにより、分析ユニット4bは基本ユニット3のメモリカード44からデータを取得して分析を実行し、異常デバイスの特定や異常内容の特定を行う。なお、この監視形態は上述した運転記録分析の監視形態の一例である。
基本ユニット3用の制御プログラムは、プロジェクトデータの一部としてプロジェクト記憶部35に記憶される。基本ユニット3用の制御プログラムはプロジェクト記憶部35とは別に、又は、プロジェクト記憶部35に加え、記憶装置32に記憶されてもよい。図4が示すように基本ユニット3と拡張ユニット4とは通信バスの一種で内部バスである拡張バス90を介して接続されている。なお、図4では拡張バス90に関する通信回路がCPU31に実装されているが、通信部33の一部として実装されてもよい。通信部33はネットワーク通信回路を有してもよい。CPU31は通信部33を介してプロジェクトデータをPC2aから受信する。
ここで、拡張バス90について、補足説明する。この拡張バス90は、入出力リフレッシュに使用される通信バスである。入出力リフレッシュとは、ラダープログラムを繰り返し実行する際に、各一回の実行前に入力の値を取り込み、取り込んだ入力の値に基づいてラダープログラムを実行するもので、一回の実行中は入力の値が変化しても直前の値を保持するための処理である。入出力リフレッシュにより取り込まれた値は、各入力に対応するデバイスのデバイス値としてデバイスメモリに記憶される。入出力リフレッシュにより、基本ユニット3と拡張ユニット4との間でデバイス値の送受がなされ、デバイスメモリの対応するデバイスのデバイス値が更新される。入出力リフレッシュは、ラダープログラムが一回実行されるスキャン周期ごとに、即ち、一スキャンごとに実行される。なお、一つのスキャン周期は、入出力リフレッシュの実行期間と、ラダープログラムの実行期間と、エンド処理の実行期間とを含む。また、上述したように、カメラ入力ユニット4aからの特徴量データについても、このスキャン周期に同期して基本ユニット3で取得するようにしてもよい。なお、本発明を限定する意図はなく、上記特徴量データについては、スキャン周期と非同期で取得するようにしてもよい。例えば、カメラ入力ユニット4aにおいてカメラセンサ10による撮像画像の解析で、異常値(いつもと違う値)が取得された場合に基本ユニット3や分析ユニット4bに通知を行い、基本ユニット3や分析ユニット4bが異常発生前後の所定区間の当該特徴量データを取得するようにしてもよい。
拡張ユニット4はCPU41とメモリ42を備えている。さらに、カメラ入力ユニット4aは、カメラセンサ10で撮影されたカメラ画像を取得するカメラ入力部45を備える。また、分析ユニット4bは、PC2bとデータを送受する通信部43を備え、さらに、当該分析ユニット4bに着脱可能な、各デバイスからの制御データの時系列データを格納するSDカードなどのメモリカードを備えてもよい。メモリ42はRAMやROMなどを含む。とりわけ、RAMにはバッファメモリとして使用される記憶領域が確保されている。メモリ42は、フィールドデバイスによって取得されたデバイス値や静止画データ、動画データなどのデータを一時的に保持するバッファを有してもよい。
分析ユニット4bのCPU41bは、通信部43とケーブル9bを介してPC2bと通信する。CPU41bは、基本ユニット3に備えられたメモリカード44又は分析ユニット4bに備えられたメモリカードに保存されたデバイス値や特徴量データなどの制御データを取得して分析処理する機能や、それら分析処理結果を表示するダッシュボード、それら処理結果を外部に送信する機能を含む。これらの処理機能はフロープログラムとしてメモリ42bに記憶され、CPU41bに読み出されて実行されることにより実現される。
なお、制御データを収集する機能は、ユーザプログラムによって実現されてもよい。また、収集されたデータに関連する処理を行う機能には、プログラマブルロジックコントローラの異常時において異常デバイスを特定する特定機能や、正常時の時系列データとの乖離を分析し、いつもと違うデバイス値を検証する分析機能、定期的に上記分析を行う監視機能が含まれる。フロープログラムはデータを収集する演算ブロック、データ処理を実行する演算ブロック、及び、表示データを作成する演算ブロックなどを有してもよい。ダッシュボードは、グラフ表示部品や数値表示部品などを有する。これらの表示部品は、HTMLデータ、CSSデータ及びJavaScript(登録商標)コードなどにより実現されてもよい。なお、HTMLデータ、CSSデータ及びJavaScript(登録商標)コードの集合体はWebアプリケーションと呼ばれてもよい。本実施形態で、フロープログラムはフローテンプレートにより実現される。フローテンプレートは予めアプリケーションごとに用意されており、ユーザにより指定されたフローテンプレートパラメータが設定される一つ以上の演算ブロックを有している。ダッシュボードもテンプレートにより実現される。ダッシュボードテンプレートは、ユーザにより指定されたダッシュボードテンプレートパラメータが設定される一つ以上の表示部品を有している。ダッシュボードテンプレートパラメータは、例えば、ダッシュボードの名称、デバイス名、数値、ユニット変数名など多種多様な情報である。ユニット変数とは、分析ユニット4bがフローの実行結果を保持するための変数である。
<基本ユニットのCPUにより実現される機能>
図5はデータ活用に関してCPU31により実現される機能を示している。実行エンジン51aは、実行周期であるスキャン周期ごとにユーザプログラムを繰り返し実行する。実行エンジン51aは、CPU31の外部に設けられたASIC又はFPGAなどにより実現されてもよい。ASICは特定用途集積回路の略称である。FPGAはフィールドプログラマブルゲートアレイの略称である。これらの専用回路は、CPUとプログラムとの組み合わせよりも、特定のデータ処理を高速に実行できることが多い。設定部56aは、PC2aを介して入力された情報に従って種々の設定を行う。なお、設定部56aの設定機能の一部は、後述する分析ユニット4bの設定部71と重複する。つまり、何れのユニットから設定されてもよく、分析ユニット4bに接続されたPC2bを介して設定することも可能である。
図5はデータ活用に関してCPU31により実現される機能を示している。実行エンジン51aは、実行周期であるスキャン周期ごとにユーザプログラムを繰り返し実行する。実行エンジン51aは、CPU31の外部に設けられたASIC又はFPGAなどにより実現されてもよい。ASICは特定用途集積回路の略称である。FPGAはフィールドプログラマブルゲートアレイの略称である。これらの専用回路は、CPUとプログラムとの組み合わせよりも、特定のデータ処理を高速に実行できることが多い。設定部56aは、PC2aを介して入力された情報に従って種々の設定を行う。なお、設定部56aの設定機能の一部は、後述する分析ユニット4bの設定部71と重複する。つまり、何れのユニットから設定されてもよく、分析ユニット4bに接続されたPC2bを介して設定することも可能である。
収集部52aは、実行周期であるスキャン周期ごとにデバイス部34から収集対象のデバイス値を収集し、オプションとしてスキャン周期に同期して又は非同期でカメラ入力ユニット4aからの特徴量データを収集してデータレコードを作成して第一バッファ37aに格納する。これらの収集データは上述しているようにPLC1の運転記録として保持され、保存条件が満たされた場合等に詳細に分析するための履歴データとなる。なお、実行エンジンがユーザプログラムとしてラダープログラムを実行する場合は、ラダープログラムのスキャン周期が実行周期に相当し、実行エンジンがユーザプログラムとしてモーションプログラムを実行する場合は、モーションプログラムの制御周期 が実行周期に相当する。ラダープログラムのスキャン周期ごとにデバイス値や上記特徴量データを収集する場合は、スキャン周期のうちエンド処理の期間においてデバイス部34から収集対象のデバイス値を収集してデータレコードを作成して第一バッファ37aに格納してもよい。なお、エンド処理の期間でデータを収集することは必須ではなく、実行エンジン51で実行されるユーザプログラムにデータを収集するためのトリガ命令などのプログラムコードなどの記述が含まれていてもよい。ただし、エンド処理によってデータを収集するケースでは、ユーザプログラムの作成が不要であるといったメリットがある。収集周期は、ユーザにより設定され、プロジェクトデータの一部として転送され、基本ユニット3の記憶装置32に収集設定36aとして記憶されている。収集設定36aには、収集周期の他に、収集対象となるデバイスなどが含まれる。なお、収集周期は実行周期であるスキャン周期やモーションプログラムの制御周期とは異なる周期であってもよい。この場合、収集設定36aにより指定された収集周期毎に、デバイス部から収集対象のデバイス値や特徴量データを収集してデータレコードを作成して第一バッファ37aに格納してもよい。なお、特徴量データについては収集周期に同期して収集されてもよいし、非同期で収集されてもよい、或いはその両方で収集されてもよい。ここで、基本ユニット3又は分析ユニット4bは、データの収集時において各デバイス値の周期性や連続性などの特徴を分析し、分析結果に応じてデバイスを分類してもよい。一方、データの収集時においてはこのような分析を行うことなく、所定数のスキャン周期の時系列データが収集されたタイミングや異常発生時等にデータを分析する必要があるタイミングで基本ユニット3によって又は分析ユニット4bによって行ってもよい。
第一バッファ37aを設けることで、実行エンジン51aは、収集や転送処理によるスキャンタイムの伸びなどの影響を受けにくくなる。収集対象のデバイス値は、収集設定36aにより指定されている。収集設定36aは、PC2a又は分析ユニット4bによって基本ユニット3に格納されうる。転送部53aは、第一バッファ37aに格納された一つ以上のデータレコードを、基本ユニット3に設けられたメモリカード44に記憶させ、メモリカード44に保存されたデータレコードを分析ユニット4bに転送する。上述したように、メモリカード44には保存条件が成立した場合にデータレコードが保存される。従って、不要なデータを分析ユニット4bへ転送する必要がないため、通信トラフィックの軽量化やメモリカードの占有データ量の低減を実現することができる。なお、転送部53aは、拡張バス90における通信トラフィックが空いているときに、転送処理を実行するが、データレコードを分析ユニット4bに送信するための専用の拡張バスが設けられていてもよい。
或いは転送部53aは、第一バッファ37aに格納された一つ以上のデータレコードを拡張バス90を介して、分析ユニット4bに転送し、転送されたデータはその後分析ユニット4bに設けられたメモリカードに格納されてもよい。この場合、データレコードを分析ユニット4bに送信するための専用の拡張バスが設けられることが好ましい。
入出力リフレッシュ期間や、ユーザプログラムに記述された読み出し命令にしたがって拡張ユニット4のバッファメモリからデータを読み出している期間を避けて、転送処理が実行されてもよい。なお、拡張バス90の通信トラフィックは監視部54aによって監視されている。データレコードの転送時間を短縮するために、圧縮エンジン55aが複数のデータレコードを圧縮してもよい。なお、圧縮エンジン55aはCPU31により実現される必要は無く、ASIC又はFPGAなどにより実現されてもよい。このように、第一バッファ37aを採用することで、転送処理とユーザプログラムを非同期で実行することが可能となる。
<分析ユニットの機能>
図6は分析ユニット4bのCPU41bによって実現される機能を説明する図である。
図6は分析ユニット4bのCPU41bによって実現される機能を説明する図である。
収集部52cは、収集設定36cに従って、運転記録分析の分析タイミングにおいては基本ユニット3の第一バッファ37a又はメモリカード44からデータを取得し、常時監視中においてはカメラ入力ユニット4aを含む監視対象の各デバイスからデバイス値を収集する。なお、常時監視中において、収集部52cは、基本ユニット3に収集されたデバイスメモリのデバイス値を収集するようにしてもよい。収集設定36cは、分析ユニット4bで分析に用いるデータを収集又は取得するための設定である。収集設定36cは、ユーザによりPC2a又はPC2bを介して設定され、プロジェクトデータの一部として転送され、分析ユニット4bのメモリ42bに記憶される。収集部52cは、CPU41bがユーザプログラムなどの制御プログラムを実行することで実現されうる。収集部52cは、運転記録の履歴データとして、収集設定36cにより指定されたデバイス値を基本ユニット3が収集して分析ユニット4bの第二バッファ37bに転送するよう基本ユニット3を設定し、また、常時監視の監視対象となる所定のデバイスのデバイス値と、カメラ入力ユニット4aから特徴量データとを分析ユニット4bが収集するように各ユニットを設定することができる。なお、収集部52cは、収集設定36cに含まれている基本ユニット3の収集設定36aを基本ユニット3の記憶装置32に書き込んでもよい。
収集部52cは、常時監視中において収集設定36cに従って、予め指定された1以上のデバイスのデバイス値と、カメラ入力ユニット4aからのカメラ画像の特徴量を示す特徴量データとを収集する。このように分析ユニット4bが監視対象のデータを収集することによってよりリアルタイム性を向上させることができる。一方、運転記録分析のタイミングでは、収集部52cは、基本ユニット3の第一バッファ37aで収集され、メモリカード44に保存されたデータを取得する。これにより、常時監視中においていつもと違うを検知した前後の運転記録の履歴データを用いてその要因分析を行うことができる。詳細には、運転記録分析を行う場合、収集設定36aに従って基本ユニット3で収集されたデバイス値等は、分析ユニット4bが分析を行うタイミングに合わせて基本ユニット3から分析ユニット4bへ転送される。なお、運転記録の履歴データとして、デバイス値とともに特徴量データが基本ユニット3の第一バッファ37aに収集されない場合には、分析ユニット4bはカメラ入力ユニット4aに保持されている画像データから自ユニットで特徴量データを生成する。特徴量データはカメラ入力ユニット4a及び分析ユニット4b、更には基本ユニット3のいずれで生成されてもよい。例えば分析ユニット4b及び基本ユニット3は、運転記録分析のタイミングにおいて、カメラ入力ユニット4aで保持されているカメラ画像の画像データを用いて特徴量データを生成する。従って、分析ユニット4bや基本ユニット3が運転記録分析を行う際に特徴量を生成する場合には、常時監視において監視した特徴量とは異なる監視条件で新たな特徴量を生成して分析することができ、常時監視においていつもと違う変化が検知された場合の要因分析を詳細に分析することができる。一方、カメラ入力ユニット4aで特徴量を生成して運転記録として保存する場合には、分析ユニット4bの構成を常時分析と運転記録分析とで共通化して設計コストを低減することができる。また、常時分析においていつもと違う変化が検知された特徴量をそのまま運転記録分析でも利用することができ、特徴量を新たに生成する処理負荷を軽減することができる。
また、第二バッファ37b及び第三バッファ37cを設けることで、データ処理部73の処理負荷が変動しても、データを取りこぼさず収集できるようになる。収集部52cは、収集設定36cに含まれているカメラ入力ユニット4aからのデータを収集する収集設定を分析ユニット4bのメモリ42bに書き込んでもよい。なお、これらの設定機能は設定部71によって実現されてもよい。設定部71は、PC2a又はPC2bから収集設定36c、処理設定61、表示設定62を受信してメモリ42bに書き込む。処理設定61は、データ処理部73により収集データに対して実行されるデータ処理を定義する情報とフロープログラムを含む。表示設定62は、Webサーバ70を通じてWebブラウザ18にデータ処理結果を提供するダッシュボードのテンプレート(HTMLデータ、CSS、JavaScript(登録商標)のコードなど)を含む。
さらに、分析ユニット4bのCPU41bは、表示制御部74、監視部76、及び送信部79を機能構成として実現する。監視部76は、収集部52cによって収集された各デバイスの時系列データやカメラ入力ユニット4aで生成された特徴量データを監視し、いつもと違う変化を監視する。監視部76は、先述のように、常時監視として、基本的にはデバイスメモリのデバイス値により規定された監視タイミングに応じて監視処理を所定の周期で実行するものであるが、常時とは種々の態様で適用され得るものである。例えば、リアルタイム、連続的、スキャンタイムレベル(スキャン周期)などの態様で常時監視が実現されてもよい。これらの態様は、要求される安全性能のレベル、PLC1の処理能力や管理者の設定に応じて変更され得るものである。なお、監視部76は、いつもと違うデータを監視するが、常時監視している中で、例えば前回取得したデータや所定範囲の平均値と比較して所定量以上の変化を検知するといつもと違うと判定してもよいし、正常時の時系列データから異常判定パラメータを決定し、決定したパラメータに従って学習し、学習したモデルに収集したデータを入力していつもと違うを判定するようにしてもよい。また、正常時の時系列データ及び異常データを有する時系列データそれぞれを含む教師データを用いて学習させることにより、学習済みモデルの生成が行われてもよい。一度生成された学習済みモデルは、経時的な変化に対応したり、異常検知の精度を向上させるために、学習データや教師データを追加で学習させて更新させることが望ましい。なお、意図して作成した教師データを学習させずに、常時収集しているデータから正常と思われる箇所や、異常と思われる箇所、学習には使用しない箇所を抽出して自動的に学習させるようにしてもよい。この場合、周期的な変化を伴う場合においてそのサイクルごとに、値の差が一定以内である部分を正常と判断して抽出し、学習させることが望ましい。意図して作成した教師データを学習させる場合には、複数の異なるシステムにおいて同様の教師データを使用することができ、毎回同じデータによってある程度予測された動作に学習させることができる利点がある。一方、自動で追加学習を行う場合には、当該システム内における経時的な変化に対応することができるという利点がある。これらの利点を考慮して、管理者等により適切に学習が切り替えられることが望ましい。従って、PC2aやPC2bを介して、管理者等はこのような学習方法を切り替える設定を行うことができる。
表示制御部74は、ダッシュボードの表示部品を定義する表示設定62にしたがって、ダッシュボードのテンプレートにデータ処理結果を代入することで、ダッシュボードの表示データを作成する。また、表示制御部74は、監視部76による監視結果に基づいて、当該監視結果を表示するための表示データを作成する。表示データは、例えば、HTMLデータや画像データ、CSS(カスケーディングスタイルシート)、JavaScript(登録商標)のコードなどであってもよい。表示部品としては、例えば、カメラ画像、その特徴量である特徴量データを示す円グラフ部品、棒グラフ部品、折れ線グラフ部品、数値表示部品などが含まれる。Webサーバ70は、Webブラウザ18によりダッシュボードのWebページにアクセスがあると、ダッシュボードの表示データをWebブラウザ18に送信する。Webブラウザ18が表示データを受信してダッシュボードを表示する。また、送信部79は、表示制御部74によって生成された表示データを外部装置に送信する。送信する際の通信回線、通信手法については特に限定はしない。また、無線接続であっても、有線接続であってもよい。また、表示制御部74は、分析ユニット4bに設けられたディスプレイに生成した結果画面を表示するようにしてもよい。
なお、各デバイス値の分析アプリケーションやカメラ入力ユニット4aからの特徴量データの分析アプリケーションなど複数の分析アプリケーションが提供されることがある。この場合、分析アプリケーションごとに必要とするデータと読み出しタイミングが異なることもあり、分析アプリケーションごとにサブバッファがメモリ42bに確保されてもよい。収集部52cは、第二バッファ37bに格納されたデータレコードを読み出し、第一分析アプリケーション用のデータを第一サブバッファ38aに格納する。収集部52cは、第二バッファ37bに格納されたデータレコードを読み出し、第二分析アプリケーション用のデータを第二サブバッファ38bに格納する。なお、収集部52cは、第三バッファ37cに格納されたデータレコードを読み出し、第一分析アプリケーション用のデータを第一サブバッファ38aに格納してもよい。収集部52cは、第三バッファ37cに格納されたデータレコードを読み出し、第二分析アプリケーション用のデータを第二サブバッファ38bに格納してもよい。データ処理部73は、第一分析アプリケーションにしたがってデータを第一サブバッファ38aから読み出してデータ処理を実行し、処理結果を生成する。データ処理部73は、第二分析アプリケーションにしたがってデータを第二サブバッファ38bから読み出してデータ処理を実行し、処理結果を生成する。解凍エンジン75は、基本ユニット3の圧縮エンジン55a及び分析ユニット4bの圧縮エンジン55bと対を成す機能である。解凍エンジン75は、基本ユニット3により圧縮されて転送されてきたデータを解凍して第二バッファ37bに格納する。解凍エンジン75は、他の拡張ユニットにより圧縮されて転送されてきたデータを解凍して第三バッファ37cに格納する。これにより拡張バス90の通信トラフィックの混雑が緩和されるようになろう。解凍エンジン75はASIC又はFPGAなどにより実現されてもよい。このように基本ユニット3、カメラ入力ユニット4a、分析ユニット4b、拡張ユニット4cとの間のデータの伝送は拡張バス90を介して実行される。
分析アプリケーションごとに必要となるデータが複数である場合がある。その場合、各スキャンで収集された全データをリングバッファに維持したままサブバッファに必要な複数のデータを格納することもある。さらに、サブバッファにデータを分配する場合にも、各レコードにタイムスタンプ等が付与されもよい。図8が示すように、第二バッファ37b又は第三バッファ37cは、収集されたデータの塊を保持している。なお、ここでは、各デバイスのデバイス値に関するデータを保持している例を示しているが、もちろんカメラ入力ユニット4aからの特徴量データを保持することも想定される。一つのレコードはスキャン番号と、タイムスタンプとしてのタイマーの値と、収集されたデータを含む。収集されたデータは、例えば図8に示すデバイスDev1、Dev2、Dev10や、リレーRL1〜RL3などのデータを含む。第一分析アプリケーションは、収集されたデータのうち、リレーRL1〜RL3を必要とする。したがって、スキャン番号、タイマーの値、リレーRL1〜RL3が第二バッファ37bから読み出されて、第一サブバッファ38aに格納される。第一分析アプリケーションは、第一サブバッファ38aからスキャン番号、タイマーの値、リレーRL1〜RL3を読み出して表示画面データを作成する。第二分析アプリケーションは、収集されたデータのうち、リレーRL3、デバイスDev1、Dev2を必要とする。したがって、スキャン番号、タイマーの値、リレーRL3、デバイスDev1、Dev2が第二バッファ37bから読み出されて、第二サブバッファ38bに格納される。第二分析アプリケーションは、第二サブバッファ38bからスキャン番号、タイマーの値、リレーRL3、デバイスDev1、Dev2を読み出して表示画面データを作成する。このようにサブバッファを活用することで、元のデータを変更することなくバッファ内に維持することが可能となる。バッファ内に保持された元のデータは他の目的で利用可能となる。
<カメラ入力に関する拡張ユニット4aの機能>
図7はフィールドデバイスであるカメラセンサ10が接続されるカメラ入力ユニット4aのCPU41aによって実現される機能を説明する図である。なお、センサやスイッチ等のフィールドデバイス19が接続される拡張ユニット4cの構成は、カメラ入力ユニット4aの構成とほぼ同様の構成であるため説明を省略する。異なる点は、拡張ユニット4cは、カメラ入力ユニット4aの後述する特徴量生成部54bと圧縮エンジン55bを有していない点や、メモリ内部の機能構成が異なる点である。
図7はフィールドデバイスであるカメラセンサ10が接続されるカメラ入力ユニット4aのCPU41aによって実現される機能を説明する図である。なお、センサやスイッチ等のフィールドデバイス19が接続される拡張ユニット4cの構成は、カメラ入力ユニット4aの構成とほぼ同様の構成であるため説明を省略する。異なる点は、拡張ユニット4cは、カメラ入力ユニット4aの後述する特徴量生成部54bと圧縮エンジン55bを有していない点や、メモリ内部の機能構成が異なる点である。
実行エンジン51bはカメラ入力ユニット4aの基本機能であるカメラセンサ10の撮像画像の取得及び保存を実行する。実行エンジン51bは、撮影条件に従って順次撮影するカメラセンサ10からカメラ画像の画像データを順次取得し、動画像用メモリ37eに保存し、特徴量生成部54bによって画像データから順次生成された撮像画像の所定の特徴量を示す特徴量データを第四バッファ37dに保存する。特徴量データの詳細については後述する。第四バッファ37dに格納されたデータは、常時監視中においては常時監視用のデータとして分析ユニット4bに転送され、さらには運転記録用の履歴データとして基本ユニット3へ転送されてもよい。
動画像用メモリ37eに格納された画像データは、必要に応じて基本ユニット3や、Webサーバを有する拡張ユニット、例えば分析ユニット4bへ転送される。これらの画像データは、転送先において特徴量データを生成するためや、確認用画面におけるモニタ映像を表示するために用いられる。これにより、本PLCシステムの操作者は、撮影対象の動画像をモニタ映像で確認することができる。例えば、スキャン周期に合わせて特徴量データが分析ユニット4bに転送される一方で、画像データはこれらのタイミングとは異なるタイミングで基本ユニット3又は分析ユニット4bへ転送されるようにしてもよい。また、画像データ自体は、モニタ映像に表示されるためのみに使用され特徴量データの生成に使用されない場合には、監視対象のデータではないため間引いてデータ量を低減することが望ましい。これにより各ユニット間の通信量を軽減することができる。例えば、実行エンジン51bは、拡張バス90の通信トラフィックが少ないタイミングを検知し、転送部53bによってカメラ映像の画像データの転送を実行させてもよい。
特徴量生成部54bは、カメラセンサ10によって取得された画像データから所定の特徴量を抽出した特徴量データを生成し、生成された特徴量データは第四バッファ37dに保存される。特徴量データを生成するタイミングにおいては、基本的には常時監視中においてはデバイスメモリのデバイスにより規定された監視タイミングに応じて行われるものであるが、カメラセンサ等の画像取得周期によっては、デバイス値のスキャン周期に合わせて行ってもよい。また、通常、スキャン周期の方がカメラセンサ10の画像取得周期よりも短いため、スキャン周期にちょうど対応するカメラ画像はない。従って、直近に撮影して生成された特徴量データを分析することにより、スキャン周期と同期した分析が可能となる。この場合、複数のスキャン周期で同一の特徴量データが使用されることもある。例えば、4回のスキャン周期が到来する期間において、カメラセンサは1回の取得を行うことも想定されえ、このような場合には、上記4回のスキャン周期において、同一のカメラ画像から特徴量データが対応することになる。このようにスキャン周期に合わせて特徴量データを生成し、他のデバイス値との関係を解析することにより、いつもと違うデバイスを検出する精度を高めることができる。なお、本発明を限定する意図はなく、他のタイミングにおいて生成するようにしてもよい。また、特徴量生成部54bは、カメラセンサ10で撮影されたカメラ画像の少なくとも一部の範囲(所定領域)の特徴量を抽出した特徴量データを生成する。当該範囲についての詳細は後述するが、設定画面に表示されたカメラ映像において操作者によって設定された領域に対応するものとなる。つまり、当該範囲については操作者によって基本ユニット3に接続されたPC2aや分析ユニットに接続されたPC4b、他の拡張ユニットに接続されたPCなどから変更可能なものである。なお、当該範囲が変更されると、基本ユニット3又は分析ユニット4bから拡張バス90を介して変更された範囲に対応する座標値等がカメラ入力ユニット4aに対して通知され、特徴量生成部54bは、通知された内容に従って、その後の特徴量の抽出領域を変更する。
圧縮エンジン55bは、収集設定36にしたがってデータレコードを圧縮する。つまり、転送部53bは、圧縮エンジン55bにより情報圧縮されたデータレコードを基本ユニット3や分析ユニット4bに転送してもよい。圧縮エンジン55bは、CPU41aにより実現されてもよいが、高速処理の観点やCPU41aの処理負荷の軽減の観点から、ASIC又はFPGAにより実現されてもよい。
<データレコードの例>
図8は収集部52aによって第一バッファ37aに書き込まれるデータレコード91を示している。ここでは、一例として基本ユニット3によってPLC1の運転記録としてデータ収集を行う場合について説明するが、常時監視中の分析ユニット4bが各ユニットからデバイス値等を収集する場合についても同様である。複数のデータレコード91は時系列データの一例である。この例で、収集部52aは一スキャン周期ごとに、Dev1、Dev2、Dev10というデバイス名のデバイス値をデバイス部34aから収集し、収集カウント及びタイマーから取得された時刻情報を付加して一つのデータレコードを作成し、第一バッファ37aに格納する。なお、収集対象は、分析ユニット4bに割り当てられたバッファメモリ又はデバイスに格納されたデータであってもよい。この例で第一バッファ37aはFIFOタイプのバッファである。収集カウントは、一つのデータレコードを収集するたびに1ずつカウントアップされるカウンタのカウント値である。収集カウントはシーケンシャルに付与される番号であるため、データレコードの抜けや圧縮を検出することに役立つ。
図8は収集部52aによって第一バッファ37aに書き込まれるデータレコード91を示している。ここでは、一例として基本ユニット3によってPLC1の運転記録としてデータ収集を行う場合について説明するが、常時監視中の分析ユニット4bが各ユニットからデバイス値等を収集する場合についても同様である。複数のデータレコード91は時系列データの一例である。この例で、収集部52aは一スキャン周期ごとに、Dev1、Dev2、Dev10というデバイス名のデバイス値をデバイス部34aから収集し、収集カウント及びタイマーから取得された時刻情報を付加して一つのデータレコードを作成し、第一バッファ37aに格納する。なお、収集対象は、分析ユニット4bに割り当てられたバッファメモリ又はデバイスに格納されたデータであってもよい。この例で第一バッファ37aはFIFOタイプのバッファである。収集カウントは、一つのデータレコードを収集するたびに1ずつカウントアップされるカウンタのカウント値である。収集カウントはシーケンシャルに付与される番号であるため、データレコードの抜けや圧縮を検出することに役立つ。
タイムスタンプなどの時刻情報は、例えば、基本ユニット3で取得されたデータと、その他の拡張ユニットで取得されたデータとを対比可能にダッシュボードに表示する際に役立つ。一般に、基本ユニット3における収集タイミングとその他の拡張ユニットにおける収集タイミングとは一致しない。そのため、基本ユニット3の動作とその他の拡張ユニットの動作とを比較するためには、基本ユニット3のデータと、その他の拡張ユニットのデータとを紐付けるための情報が必要となる。一般に、基本ユニット3と、その他の拡張ユニットとはユニット間同期などによって時刻情報を同期できる。したがって、基本ユニット3とその他の拡張ユニットはそれぞれデータレコードを収集したときの時刻情報をデータレコードに付与することで、データ処理部73は、異なるユニットで取得された複数のデータレコードを時間軸上で整列させることができる。また、データ処理部73は、分析を行う前に、所定のデバイスのデバイス値の変化に紐づけて、分析対象となるカメラ画像の特徴量データの切り出しを行う前処理を実行する。前処理については、デバイス値の時系列データと、特徴量データの時系列データとが同期していることが前提となる。
カメラ入力ユニット4aからの特徴量データもスキャン周期に同期して収集する場合には、同様に収集カウンタに合わせて収集されてもよいし、カメラセンサ10の画像取得周期や各ユニットのメモリ資源等を考慮して、間欠的に収集されてもよい。通常、スキャン周期の方がカメラの画像取得周期よりも短いため、スキャン周期にちょうど対応するカメラ画像はほとんどの場合取得されていない。このような場合においては、直近に撮影した画像を採用して生成された特徴量を示す特徴量データが収集される。これにより、スキャン周期に同期した分析が可能となる。例えば、収集カウントの4カウントごとに特徴量データが収集されるようにしてもよい。このような収集タイミングについては設定により変更することができる。スキャン周期に同期してカメラ入力ユニット4aからカメラ画像の特徴量データを収集することにより、デバイスとカメラ画像とを紐づけて分析することができる。
また、スキャン周期に対して非同期で収集される場合には、スキャン周期のタイミングとずらして収集される。この場合においても収集した際の基本ユニット3が発するカウンタは記録されるため各デバイス値に紐づく基本ユニット3が発するカウンタと対応付けて分析することも可能である。また、カメラ画像の特徴量データを単独で分析してもよく、その場合には、前回撮影された画像の特徴量データと、今回撮影された画像の特徴量データで注目領域の特徴量に変化があるか否かを分析してもよい。例えば、所定値以上の変化があった場合にいつもと違う値として検出してもよいし、正常時においては変化が発生しないはずのところで変化が生じた際や1サイクルの周期が変化した際にいつもと違うを検出してもよい。このように、特徴量データを単独で分析した際にいつもと違うことが検知されると、上記保存条件が満たされたとしてもよい。上述したように、保存条件に応じてログを残したり、リングバッファのデータを基本ユニット3のメモリカード44や分析ユニット4bに設けられた不図示のメモリカードに保存したりすることができる。なお、カメラ画像の特徴量データは、前回分析した分析値と一定範囲内の値又は同値であれば、保存する必要はなく、分析ユニット4bによる分析を行う必要はない。このように特徴量の変化を第1段階で判別することにより効率的なカメラ画像における変化の有無を検知することができる。また、常時監視中において、所定のデバイスのデバイス値とカメラ入力ユニット4aの特徴量データを監視しているが、いつもと違うことが検知されると、全デバイスのデータやカメラの画像データを運転記録の履歴データとしてメモリカード44に保存するように構成してもよい。これにより、異常デバイスや異常要因の特定を容易にかつ詳細に行うことができる。
<転送のタイミング>
図9はデータレコードの転送タイミングを説明する図である。図9が示すようにPLC1は、入出力のリフレッシュ、ユーザプログラムの実行及びエンド処理を繰り返し実行する。スキャン周期の伸びを低減するために、基本ユニット3と拡張ユニット4との間の転送処理は、入出力のリフレッシュの期間を避けて実行される。同様に、スキャン周期の伸びを低減するために、当該転送処理は、UREAD及びUWRITの実行期間を避けて実行される。UREADは拡張ユニット4に割り当てられているバッファメモリからデータを読み出す命令であり、ユーザプログラム中に記述される。そのため、基本ユニット3は、ユーザプログラムの実行期間中に、UREADにしたがって拡張ユニット4にアクセスしてバッファメモリからデータを取得する。UWRITは、拡張ユニット4に割り当てられているバッファメモリにデータを書き込む命令であり、ユーザプログラム中に記述される。基本ユニット3は、ユーザプログラムの実行期間中に、UWRITにしたがって拡張ユニット4にアクセスしてバッファメモリにデータを書き込む。
図9はデータレコードの転送タイミングを説明する図である。図9が示すようにPLC1は、入出力のリフレッシュ、ユーザプログラムの実行及びエンド処理を繰り返し実行する。スキャン周期の伸びを低減するために、基本ユニット3と拡張ユニット4との間の転送処理は、入出力のリフレッシュの期間を避けて実行される。同様に、スキャン周期の伸びを低減するために、当該転送処理は、UREAD及びUWRITの実行期間を避けて実行される。UREADは拡張ユニット4に割り当てられているバッファメモリからデータを読み出す命令であり、ユーザプログラム中に記述される。そのため、基本ユニット3は、ユーザプログラムの実行期間中に、UREADにしたがって拡張ユニット4にアクセスしてバッファメモリからデータを取得する。UWRITは、拡張ユニット4に割り当てられているバッファメモリにデータを書き込む命令であり、ユーザプログラム中に記述される。基本ユニット3は、ユーザプログラムの実行期間中に、UWRITにしたがって拡張ユニット4にアクセスしてバッファメモリにデータを書き込む。
図9が示すように、入出力のリフレッシュ、UREAD及びUWRITを除いた残りの転送可能期間において、転送処理は、拡張バス90で実行される。例えば、収集設定36aによって5個のデータレコードずつ転送処理を実行することが設定されていたと仮定する。この場合、転送部53aは、第一バッファ37aに5個のデータレコードの蓄積が完了した後であって、最初の転送可能期間又はカメラ入力ユニット4aによって転送要求を受信したタイミングで、転送処理を実行する。転送可能期間において、データレコードの転送処理が行われない期間を利用して、カメラ入力ユニット4aからの画像データの転送が行われる。
<カメラ画像分析に関する構成>
図10は本PLCシステムにおけるカメラ画像分析に関する構成を説明する図である。図10では、PLCシステムの電気的構成を示す図4の構成と、各ユニットの機能構成を示す図5乃至図7の構成と同様の構成については同一の符号を付す。ここでは、図10を参照して、カメラセンサ10で撮影されたカメラ画像を分析し結果を表示する構成について説明する。各ユニット3、4a、4bは、それぞれバス通信部50a、50b、50cを備える。各バス通信部50a、50b、50cは、拡張バス90を介して相互に信号を送受することができる。なお、拡張ユニット4cについてもこれらの構成を有するが、ここでは説明を容易にするため、詳細な構成については省略している。
図10は本PLCシステムにおけるカメラ画像分析に関する構成を説明する図である。図10では、PLCシステムの電気的構成を示す図4の構成と、各ユニットの機能構成を示す図5乃至図7の構成と同様の構成については同一の符号を付す。ここでは、図10を参照して、カメラセンサ10で撮影されたカメラ画像を分析し結果を表示する構成について説明する。各ユニット3、4a、4bは、それぞれバス通信部50a、50b、50cを備える。各バス通信部50a、50b、50cは、拡張バス90を介して相互に信号を送受することができる。なお、拡張ユニット4cについてもこれらの構成を有するが、ここでは説明を容易にするため、詳細な構成については省略している。
まず、カメラセンサ10が対象範囲の動画像を撮影し、画像データを生成してカメラ入力部45に入力する。画像データの送信には、任意の通信手段を適用することができ、例えば専用通信であっても、汎用的なネットワークカメラとのONVIF等の通信であってもよい。カメラ入力部45は、画像データをカメラセンサ10から受信し、特徴量生成部54bに画像データを渡す。カメラセンサ10による撮影については、PC2a又はPC2bを介して種々の設定を行うことができる。設定項目としては、例えば、自動露光補正、自動ホワイトバランス補正、コントラスト、シャープネス、及び画像回転などがある。自動露光補正は自動的に明るさを調整するか、固定するかの設定である。自動ホワイトバランス補正は、自動的に色を調整するか、固定するかの設定である。コントラストは、鮮やかさの設定である。シャープネスは輪郭強度の設定である。画像回転は、撮影画像の向きの設定である。また、取得される画像データには、例えばYUV、RGB、及びJPEGなどがある。もちろんその他のパラメータも設定可能であり、カメラセンサの性能によって変わるものである。
特徴量生成部54bは、画像データである画像データから受光量や輝度に関する特徴量を生成する。例えば、特徴量生成部54bは、カメラ画像の所定領域の画像データから、輝度成分、色差(青)成分、色差(赤)成分、R成分、G成分、B成分、及びそれらの変化度等の少なくとも1つの特徴量の所定領域内の平均値や、勾配強度、角度等の平均値を抽出し、特徴量データとして第四バッファ37dに格納する。当該所定領域については、PC2a、2bに表示される設定画面を介してその範囲を設定することができる。設定画面の詳細については後述する。その後、スキャン周期に同期して各デバイス値とともに、カメラ入力ユニット4aから特徴量データがバス通信部50bを通じて基本ユニット3や分析ユニット4bに収集され、分析ユニット4bでの分析に用いられる。なお、上述しているように、スキャン周期に対して非同期で特徴量データが収集されてもよい。また、バス通信部50bは、カメラセンサ10で撮影されたカメラ画像の画像データも上記転送可能期間において拡張バス90を介して基本ユニット3や分析ユニット4bへ転送する。
また、運転記録として基本ユニット3によって収集された、各デバイスのデバイス値、カメラ画像の特徴量データ、及び画像データは、拡張バス90を介して分析ユニット4bへ転送される。これらの運転記録のデータが転送されると、或いは、常時監視中において特徴量データやデバイス値を取得すると、分析ユニット4bの監視部76は、これらのデバイス値の時系列データと特徴量データとを監視し、いつもと違う値等の変化を監視し、異常を検知する。監視部76は、カメラ画像の特徴量データについて、例えば監視対象の特徴量が輝度成分である場合には、サイクルごとの輝度の平均値が所定の閾値を超えるか否かを監視して、異常を検知する。また、監視部76は、監視結果をログ情報としてメモリ42bや分析ユニット4bに接続された不図示のメモリカードに保持しておくことが望ましい。ログ情報は、不揮発性メモリに保持されることが望ましいが、通電中のみに監視する場合であれば揮発性メモリであってもよい。
表示制御部74は、監視部76による監視対象を示す確認画面を生成し、PC2a、2bや他の装置のWebブラウザ上に表示させる。また、基本ユニット3や拡張ユニット4が有するディスプレイに表示させてもよい。確認画面には、監視対象である特徴量の時系列データや、特徴量の時系列データに同期したデバイス値の時系列データ、カメラ映像の現在の状態や監視結果が表示される。監視結果としは例えば異常と判断した回数を示すNG発生回数などが表示される。これらの表示は、表示するディスプレイの性能に合わせて取捨選択されるものである。確認画面の詳細については後述する。
基本ユニット3に接続されたPC2aは、設定部56aを介して、実行エンジン51aで実行するユーザプログラム、特徴量生成部54bの設定、監視部76の設定を通信部33を介して各ユニットに対して反映させることができる。例えば、設定部56aは各設定内容のフラグを確認し、それぞれの設定先を判別して書き込みを行う。これにより、基本ユニット3から各拡張ユニット4への設定書込が行われる。なお、特徴量生成部54bの設定と、監視部76の設定とは、PC2bを介して行うようにしてもよい。特徴量生成部54bの設定はPC2bが接続された分析ユニット4bとは異なる拡張ユニット4であるカメラ入力ユニット4aに設けられているため入力された設定内容は内部バスである拡張バス90を介して通知される。また、PC2bで設定可能なデータには制限があり、収集設定や、取得設定、各デバイスの設定、特にカメラセンサ10に関する設定や、監視設定については設定を行うことができる一方で、実行されるユーザプログラムを含むプロジェクトデータについてはPC2bを介して各ユニットへ転送することはできない。このように拡張ユニットに接続されたPCなどのWebサーバからの設定を可能にする場合、基本ユニット3に接続されたPC2aからの設定との競合を考慮する必要がある。従って、各拡張ユニットには、バッファメモリに加えて、受け付けた設定内容を一時的に保持する一時書込用のメモリが設けられることが望ましい。Webサーバからの設定は一旦一時書込用のメモリに書き込まれ、その後バッファメモリへ書き換えられる。書き換えの際には、新しく更新する設定内容が、規定範囲のデータであるか、書き換えが禁止されていないかが確認される。当該規定範囲は、予めプロジェクトデータにより初期設定又はシステムとして値が固定的に定められている。また、一時書込用のメモリを設けることで、監視処理の実行中であっても、設定変更を受け付けることが可能とある。一時書込用のメモリに一旦保持し、監視処理が終了するのを待ってから書き込みを行うこともできる。なお、本発明はこのような別メモリを有する構成に限定されるわけではなく、Webサーバに接続されるPC内のメモリに一旦設定データを保存し、規定範囲のデータであるか、書き換えが禁止されていないかが確認されてもよく、或いは、バッファメモリが複数の部分に分割されて上述のような一時書込用の部分を有してもよい。ここで、PC2a、2bの相違について説明する。PC2aの使用者とPC2bの使用者とは操作権限に違いがあり、PC2bの操作者は設定の一部のみを変更可能である。また、PC2aはPLC1の初期立ち上げ時等に使用され、PC2bはシステムの運用開始時や運用中に使用されるものである。また、PC2a、PC2bについてはいずれも、タブレット端末等であってもよい。なお、本発明はこれらの事項について限定する意図はなく、設置環境や仕様等に応じて任意に変更することができるものである。
本実施形態では、基本ユニット3、カメラ入力ユニット4a、分析ユニット4b、拡張ユニット4cに区別した構成について説明している。しかし、本発明を限定する意図はなく、例えば、これらのユニットが一体化して設けられるものであってもよい。つまり、基本ユニット3がカメラ入力ユニット4a、分析ユニット4b、拡張ユニット4cの機能も有するように構成してもよい。或いは、基本ユニット3がカメラ入力ユニット4a、分析ユニット4b、拡張ユニット4cの一部の機能を有するように構成してもよい。また、カメラ入力ユニット4aと分析ユニット4bと拡張ユニット4cとが一体化して設けられてもよい。
<カメラ分析処理フロー>
図11は、本実施形態に係るカメラ画像を取得して分析し、結果表示を行う処理フローを示す。以下で説明する処理は、基本ユニット3のCPU31、カメラ入力ユニット4aのCPU41a、分析ユニット4bの41bによって実行される処理として説明する。しかし、本発明を限定する意図はなく、それらの処理の一部が他のユニットで実行されてもよいし、それらの処理の全てが一つのユニットで実行されてもよいし、或いはプログラマブルロジックコントローラに通信可能に接続された外部装置(分析装置)によって実行されてもよい。
図11は、本実施形態に係るカメラ画像を取得して分析し、結果表示を行う処理フローを示す。以下で説明する処理は、基本ユニット3のCPU31、カメラ入力ユニット4aのCPU41a、分析ユニット4bの41bによって実行される処理として説明する。しかし、本発明を限定する意図はなく、それらの処理の一部が他のユニットで実行されてもよいし、それらの処理の全てが一つのユニットで実行されてもよいし、或いはプログラマブルロジックコントローラに通信可能に接続された外部装置(分析装置)によって実行されてもよい。
S1でCPU31(設定部56a)は、PC2aを介して入力された情報に従って、基本ユニット3の収集設定36aを設定する。例えば、CPU31は基本ユニット3のための収集設定36aをカメラ入力ユニット4a、分析ユニット4b、更には他の拡張ユニットから取得した収集設定や取得設定に基づく収集設定36aを記憶装置32に格納する。記憶装置32に格納される収集設定は、例えば、基本ユニット3に対して、何れのデバイスのデータを収集して分析ユニット4bへ転送するかを示す設定である。カメラ入力ユニット4aは、取得設定36bをメモリ42aに格納する。また、分析ユニット4bは、収集設定36cをメモリ42bに格納する。これらの設定は、何れのデバイスのデータを収集するかを示す設定である。例えば、常時監視中には、所定のデバイスのデバイス値が対応するユニットにおいて収集され、分析ユニット4bへ転送されるように設定される。なお、ここでは、基本ユニット3の設定部56aが主体的に設定を行う例について説明したが、本発明はこれに限定されず、例えば、分析ユニット4bの設定部71が主体的に設定を行うようにしてもよい。この場合、設定部71はPC2bを介して入力された情報に従って設定を行い、他のユニットへ収集設定を転送する。さらにS1では、分析ユニット4bのCPU41b(設定部71)がPC2bの表示部7bに表示された設定画面を介して入力された情報に従って撮影条件等のカメラ設定や画像処理設定、監視項目設定など設定する。これらの設定画面については後述する。なお、PC2aに表示された設定画面を介して入力された情報に従って基本ユニット3のCPU31がこれらの設定を行うこともできる。
S2でカメラ入力ユニット4aのCPU41aは、S1で設定された取得設定36bの内容に従ってカメラセンサ10で撮影されたカメラ画像(画像データ)をカメラ入力部45を介して取得する。ここでCPU41a?は、取得したカメラ画像の画像データをメモリ42aに一旦保持する。さらに、CPU41a(特徴量生成部54b)は、メモリ42aに保持した画像データの所定領域についての特徴量を抽出し、分析ユニットが当該特徴量を順次収集して蓄積することにより、時系列の特徴量データを生成する。特徴量生成部54bは上記設定画面を介して設定内容に従った所定領域について所定の特徴量を抽出する。なお、ここでは、設定画面を介して設定された種別の特徴量が抽出されるものであるが、基本的には抽出可能な特徴量は設定された種別の特徴量以外の特徴量も抽出される。特徴量生成部54bは生成した特徴量データとカウンタ(タイムスタンプ)に紐づけて第四バッファ37dに保存する。S2の詳細な処理については図13を用いて後述する。
S3でCPU31(収集部52a)は設定された収集設定36aに従って、収集対象となる各デバイスのデバイス値と、カメラセンサ10で撮影されたカメラ画像の所定領域の特徴量を示す特徴量データとを収集し、第一バッファ37aに格納する。なお、上記特徴量データの収集タイミングについては、既に説明しているように、デバイス値を収集するスキャン周期と同期して収集してもよいし、非同期で収集してもよい。一方、常時監視中においては、基本ユニット3で収集されることなく、各ユニットから分析ユニット4bへ転送され、リアルタイムで異常の検知が行われる。また、CPU31は、カメラ入力ユニット4aの動画像用メモリ37eに保存されている画像データについて、いつもと違うなどの異常が検知された場合に、拡張バス90の転送可能期間を利用して、カメラ画像の画像データを収集し、第一バッファ37aやメモリカード44に格納してもよい。また、S3の収集処理では、後の分析処理で所定のパラメータを用いて容易に分析が行えるように、各デバイスのデバイス値やカメラ画像の特徴量データ、すなわち、収集されたそれぞれの時系列データをその周期性等の特性に基づいて分類しておくことが望ましい。当該処理の詳細については、図23乃至図24Bを用いて後述する。
S4でCPU31(転送部53a)はS3で第一バッファ37aに収集されたデータを、上記保存条件が満たされたことに応じて第一バッファ37aからメモリカード44へ保存し、メモリカード44に保存した時系列データを分析ユニット4bへ拡張バス90を介して転送する。例えばS3で所定量の収集データが格納された場合に転送処理を実施するようにしてもよい。つまり、ここでは、分析ユニット4bによる監視処理に必要な十分なデータ量(所定数のスキャン周期の時系列データ)がバッファやメモリカード44などの記憶部に蓄積されるごとに当該転送処理を実施する。ここでは、第一バッファ37aからメモリカード44に収集されたデータを一旦保存して分析ユニット4bへ転送する実施例について説明したが、本発明を限定する意図はなく、メモリカードとは異なる不揮発性メモリへ当該データを保存してもよいし、そのようなメモリへ保存することなく第一バッファ37aから分析ユニット4bへ当該データを転送されてもよい。
S5でCPU41b(データ処理部73及び監視部76)は、運転記録分析においては、メモリカード44に保存された各デバイスのデバイス値と特徴量データとの時系列データを取得して、取得した時系列データに対して前処理及び分析処理を実行する。また、CPU41bは、常時監視中においては、さらに、所定のデバイスのデバイス値とカメラ入力ユニット4aからの特徴量データとを収集して、いつもと違う変化を監視する。ここで、常時監視とは、基本的にはデバイスメモリのデバイスにより規定された監視タイミングに応じて行われるものであるが、種々のレベルで実現されてもよく、例えば、リアルタイム、連続的、スキャンタイムレベル(スキャン周期)などのレベルで実現されてもよい。「異常」とは、分析対象のデバイス値やカメラ画像の特徴量データが、正常時の値と異なっている、すなわち、正常時のデータと一定量乖離していることを表し、必ずしも、プログラマブルロジックコントローラに発生している異常を示すものではない。S5の詳細については図14乃至図16を用いて後述する。
S6でCPU41b(表示制御部74)は、監視部76によって監視された監視結果に基づいて、当該監視結果を示す表示データを生成し、基本ユニット3の表示部5に表示するか、或いは、送信部79によって通信部43を介して生成した表示データをPC2bや外部装置へ送信する。例えば、PC2bにおいて監視結果がオペレータに対して表示される。なお、表示される確認画面を介して、監視項目等の設定を変更することができ、設定変更に応じて表示画面をリアルタイムで変更することができる。ここでは、常時監視を行う監視形態として、所定のデバイス値及び特徴量データを常時収集し、常時監視する例について説明したが、本発明を限定する意図はない。ユーザにより予め定められたデバイス値が所定の変化をした場合に監視したり、設定された周期で定期的に監視したり、或いはユーザからの監視指示に基づいて、デバイス値等に異常がないかを分析する方法であってもよい。S6の処理や確認画面の詳細については後述する。
<特徴量データ>
図12は、本実施形態に係るカメラ画像の特徴量の抽出方法の一例を示す図である。ここでは、図12を参照して特徴量の種別ごとに特徴量データを生成する際の手法について説明する。なお、ここで示す手法は一例であり、特徴量の種別に応じて、本発明ではその他の任意の手法を利用することができる。また、本実施形態では、カメラ画像内の一つの所定領域において特徴量を抽出する例について説明するが、カメラ画像全体の特徴量を抽出してもよく、複数の領域の特徴量をそれぞれ抽出してもよい。また、特徴量の種別ごとに抽出対象とする領域を変更してもよい。特徴量の種別としては、例えば、輝度成分、色差(青)成分、色差(赤)成分、R成分、G成分、B成分、及びそれらの変化度等が挙げられる。
図12は、本実施形態に係るカメラ画像の特徴量の抽出方法の一例を示す図である。ここでは、図12を参照して特徴量の種別ごとに特徴量データを生成する際の手法について説明する。なお、ここで示す手法は一例であり、特徴量の種別に応じて、本発明ではその他の任意の手法を利用することができる。また、本実施形態では、カメラ画像内の一つの所定領域において特徴量を抽出する例について説明するが、カメラ画像全体の特徴量を抽出してもよく、複数の領域の特徴量をそれぞれ抽出してもよい。また、特徴量の種別ごとに抽出対象とする領域を変更してもよい。特徴量の種別としては、例えば、輝度成分、色差(青)成分、色差(赤)成分、R成分、G成分、B成分、及びそれらの変化度等が挙げられる。
1201は、画像データからの輝度に関する特徴量の画素ごとの平均値を取得する手法を示す。まず、特徴量生成部54bは、カメラ画像を1又は複数の区域に分割し、設定された所定領域に応じて対象となる区域を特定する。1つの区域には1以上の画素領域が含まれる。さらに、特徴量生成部54bは、特定した所定領域をR、G、Bの成分ごとに切り出し、切り出した領域に含まれる各画素の輝度の平均値を取得する。1202は、画像データからの輝度に関する特徴量の領域ごとの勾配強度、勾配角度を取得する手法を示す。1201と同様に、特徴量生成部54bは、カメラ画像を1又は複数の区域に分割し、設定された所定領域に応じて対象となる区域を特定する。さらに、特徴量生成部54bは、特定した所定領域をR、G、Bの成分ごとに切り出し、領域ごとの横・横方向の微分値(勾配)の強度、角度を取得する。
1203は、1201、1202に示すような特徴量を、時間方向にさらに微分した変化量(変化度)を取得する方法を示す。1231は、カメラ画像から抽出した特徴量の時系列データを示す。1232は、1231に示す時系列データを微分して微分値を二乗したグラフを示す。これにより、1232に示すように、より顕著に変化量を確認することができる。
1201と1202は、1画像内の所定領域内の特徴量を抽出するものであり、1203はそれらの時間方向の特徴量となる。なお、本発明はこれらの抽出方法に限定されず、種々の他の抽出方法を適用することができる。監視対象の特性に合わせて、任意の抽出方法が適用されることが望ましい。例えば、特徴量として撮影された対象物の寸法を測定する必要がある場合には、さらに高度な特徴量の計算が行われる必要がある。この場合、ユーザが指定した所定領域や、指定したタイミングの画像に対してエッジ処理を施し、寸法を測定することが望ましい。また、本実施形態では、1つのカメラセンサ10を用いた例を説明しているが、複数のカメラセンサを用いて、三次元空間での距離や寸法を測定するようにしてもよい。さらに、撮影されたカメラ画像の指定領域についてOCRによって文字認識を行い、抽出された文字列(数値)を特徴量としてもよい、例えば、温度計、気圧計、その他種々の計測機器の撮影画像である場合には文字認識された数値を特徴量とする。なお、数値以外の認識された文字列を特徴量として利用してもよい。また、他の特徴量として、ニューラルネットワークを用いて特徴量を抽出してもよい。例えば、ニューラルネットワークにおいて、撮影対象となる人やワークなどの位置、動作、姿勢に関する画像パラメータを教師データとして学習し、当該学習済みモデルを用いて人やワークなどの座標、姿勢の関節角度などを特徴量として抽出してもよい。
<カメラ画像の取得、特徴量化の処理手順>
図13は、本実施形態に係る上記S2のカメラ画像の取得、特徴量化の詳細な処理手順を示すフローチャートである。以下で説明する処理は、カメラ入力ユニット4aのCPU41aによって実行される。
図13は、本実施形態に係る上記S2のカメラ画像の取得、特徴量化の詳細な処理手順を示すフローチャートである。以下で説明する処理は、カメラ入力ユニット4aのCPU41aによって実行される。
まず、S21でCPU41aは、基本ユニット3や分析ユニット4bから設定された設定情報を取得する。当該設定情報には、画像処理設定として、特徴量化する際に使用する各種パラメータが含まれる。当該パラメータには、例えば、設定された所定領域に関するパラメータ(区域番号、座標など)、抽出する特徴量の種類を示すパラメータなどが含まれる。S22でCPU41aは、取得した最新の設定情報をメモリ42aに記憶する。
次に、S23でCPU41a(特徴量生成部54b)は、カメラセンサ10で撮影されてカメラ入力部45を介してメモリ42aの第四バッファ37dに記憶されているカメラ画像の画像データを取得する。続いて、S24でCPU41a(特徴量生成部54b)は、まず取得したカメラ画像を所定サイズの区域に分割し、S22で記憶した設定情報に従って、カメラ画像中の監視対象となる所定領域を切り出す。当該切り出し領域は、矩形形状であってもよいし、矩形形状以外の形状であってもよい。矩形形状以外の形状である場合には、分割された区域を個別に指定可能な設定画面を操作者へ提供することにより指定可能となる。また、切り出す領域の中に、特徴量化する対象から除外するマスク領域を設けてもよい。このような指定方法を提供することにより、時間方向に変化のない画素や区域を除外するよう指定することができ、より精度良く対象領域における特徴量の変化を監視することができる。
S25でCPU41a(特徴量生成部54b)は、切り出した所定領域について、S22で記憶した設定情報に従って所定の特徴量を抽出し、画像データから特徴量データを生成する。特徴量データを生成すると、S26でCPU41a(特徴量生成部54b)は生成した特徴量データをメモリ42aの第四バッファ37dに格納する。これらの画像データの特徴量化はカメラセンサ10で順次撮像されたカメラ画像に対して行われて格納される。格納された特徴量データは、上記S3で基本ユニット3によって収集されて順次蓄積される。順次蓄積されたデータは時系列データとして、上記S4で分析ユニット4bへ転送される。なお、時系列データ内の各特徴量データは、PLC1内で共通のカウンタ、例えばタイマ値、時刻情報などと紐づけて格納され、他のデバイスのデバイス値と当該カウンタに従って同期され紐づけられる。これは、PLCレイヤにカメラ入力ユニット4aを設けることにより実現することができる。例えば、PLCレイヤに設けるのではなく外部装置としてのネットワークカメラを利用する場合、各装置における時刻情報を用いて同期すると、誤差により同期の精度が低下し、更にはネットワークを介してのカメラ画像のデータ送受信によりさらに遅延等が発生し、精度良く同期を行うことができない。一方、PLCレイヤにカメラ入力ユニットを設けることにより、例えば基本ユニットの動作クロック等に従ってPLCレイヤの各ユニットが動作することができ、より精度の高い同期を容易に実現することができる。
S27でCPU41a(特徴量生成部54b)は、後述する設定画面(設定画面1700)を介して設定変更が行われたか否かを判定する。設定変更が無ければ、次のカメラ画像を取得するため処理をS23に戻す。一方、設定変更が行われた場合はS28に進みCPU41a(特徴量生成部54b)は、変更された画像処理設定、例えば、特徴量化する領域の変更情報等を取得し、処理をS22に戻し、取得した最新の設定情報をメモリ42aに記憶させる。これにより、その後の特徴量化を最新の設定情報で行うことができる。特徴量データの生成については図12を用いて説明したように、生成する特徴量の種別に応じた方法を利用することができる。さらに、特徴量生成に関して補足する。特徴量生成部54bは、生成した特徴量から、さらに動き量を導出して2値化してもよい。例えば画素ごとに変化があるか否かを示す値を0、1で示し、監視領域の値を平均するようにしてもよい。この場合ビット信号として異常検知を行うことができ、いつもと違うを容易に検出することができる。また、特徴量生成部54bは、カメラ画像における所定領域内の値を平均することで特徴量を生成してもよい。従って、カメラ画像の特徴量の時系列データは、後述する収集データの分類において必ずしもアナログ値に分類されるわけではない。
<収集データの分類>
図23は、収集される時系列データの類型の一例を示す。2301〜2306は各類型のデバイス信号の時系列データを示す。なお、以下で説明する類型は一例であり、本発明を限定する意図はなくその他の類型にも本発明が適用されてもよい。また、本発明においては分類される類型は、分類効果を向上させるべく、これら複数の類型のうちの少なくとも2つの類型を含むことが望ましい。
図23は、収集される時系列データの類型の一例を示す。2301〜2306は各類型のデバイス信号の時系列データを示す。なお、以下で説明する類型は一例であり、本発明を限定する意図はなくその他の類型にも本発明が適用されてもよい。また、本発明においては分類される類型は、分類効果を向上させるべく、これら複数の類型のうちの少なくとも2つの類型を含むことが望ましい。
2301は、装置の動作サイクルに同期して動作するデバイスのデバイス信号を示す。2310は装置の動作サイクルを示す。2301の類型は、装置の動作サイクルごとに同様の変化パターン(定常的な変化パターン)が発生する類型を示す。この類型では、たとえば、正常状態とみなせる期間において取得された時系列データから定常的な変化パターンを特定し、新たに取得された時系列データについて特定した定常的な変化パターンからの乖離に基づいていつもと違う異常デバイスを特定するといった監視手法が割り当てられる。具体的には、正常状態とみなせる複数周期の時系列データの変化パターンについて、変化点に関する時間のばらつきを測定し、測定されたばらつきに応じてしきい値を設定する。その後に取得された時系列データの変化点が変化点に対応して設定されたしきい値の範囲を超えるか否かに基づいて異常デバイスを検知する監視アルゴリズムが割り当てられる。例えば、装置の動作サイクルごとの複数の波形を重ね合わせ、デバイスがOFFからONに変化した点のばらつきに基づき、当該変化点の基準値としきい値とを設定し、これらのパラメータを用いて異常デバイスを特定することができる。また、2301の各周期において、1回目の信号の立ち上がりタイミングを示す相対時刻や各周期における位相を評価変数とし、当該評価変数のばらつきに基づいて評価変数に対応するパラメータを決定してもよい。たとえば、各周期における位相を評価変数とした場合は、位相の上限しきい値と下限しきい値をそれぞれパラメータとしてもよい。
一方、2302は、スキャン周期には同期せず、当該装置の動作サイクル以外の周期に同期して動作するデバイスのデバイス信号を示す。この類型についても、たとえば、正常状態とみなせる期間において取得された時系列データから定常的な変化パターンを特定し、新たに取得された時系列データについて特定した定常的な変化パターンからの乖離に基づいて異常デバイス(いつもと違うデバイス)を特定するといった検知手法が割り当てられる。具体的には、正常状態とみなせる複数周期の時系列データの変化パターンについて、変化点に関する時間のばらつきを測定し、測定されたばらつきに応じてしきい値を設定する。その後に取得された時系列データの変化点が変化点に対応して設定されたしきい値の範囲を超えるか否かに基づいて異常デバイスを検知する検知アルゴリズムが割り当てられる。また、2302の各周期において、2回目の信号の立ち上がりタイミングを示す相対時刻や各周期における位相を評価変数とし、当該評価変数のばらつきに基づいて評価変数に対応するパラメータを決定してもよい。たとえば、各周期における相対時刻を評価変数とした場合は、相対時刻の上限しきい値と下限しきい値をそれぞれパラメータとしてもよい。
2303は、一定した値をとるデバイスのデバイス信号を示す。この類型では、たとえば、正常状態とみなせる期間において取得された時系列データから、正常時の値を特定し、新たに取得された時系列データについて、特定した正常時の値と異なるものをいつもと違う異常デバイスとして特定するといった検知手法が割り当てられる。具体的には、正常状態とみなせる時系列データにおけるデバイスの値を検出基準値として設定し、その後に取得された時系列データの値が、正常時の値に対応して設定された検出基準値と異なるか否かに基づいて異常デバイスを検知する検知アルゴリズムが割り当てられる。つまり、値(一定値)が変化した場合に異常と判断することができる。2304は、不定期に動作するデバイスのデバイス信号を示す。この類型については、異常デバイスを特定する際に用いるデータからは除外される。2305は、アナログ値をとるデバイスのデバイス信号を示す。カメラセンサ10から取得される画像データがこの類型に分類される。アナログ値をとるデバイスでは、後述するように、ビットデバイスのデバイス値ではないので、図24AでS31のNo(図24BのS37)へ進み、図24Bで示すように、データの変化方法に応じてそれぞれで異常検知におけるアルゴリズムが異なる。アナログ値を取るデバイスの異常検知におけるアルゴリズムとしては、動的時間伸縮法や自己回帰モデルなど種々の方法を利用することができる。2306は、単調増加、単調減少するデバイスのデバイス信号を示す。この類型では、微分値や積算値を用いて異常デバイスを特定する。また、単調増加または単調減少するタイミングを示す相対時刻や各周期における位相を評価変数として用いてもよい。なお、ここで説明した類型は一例であり、他の類型に分類されるデバイスも想定され、例えば、階段状のデバイス信号など複数の状態をとりうるものなどがある。複数の状態をとるものについては、正常時の状態と異なる状態に変化した場合に異常と判断することもできる。
各デバイスは0、1のビット型のデバイスと、アナログ値をとる、ワード型のデバイスや浮動小数点数型のデバイスがある。なお、ワードデバイスには、さらに、1ワード符号なし整数(0〜65535)、1ワード符号あり整数(−32768〜32767)、2ワード符号なし整数(0〜4294967295)、及び2ワード符号あり整数(−214783648〜214783647)がある。このような型を考慮すると、例えば、スキャン周期あたりの変化率が所定値以上で、型がビット以外であればアナログ値をとるデバイスであると判断することができる。
<分類処理>
図24A及び図24Bは、上記S3で収集したデータを分類する際の処理手順を示すフローチャートである。以下で説明する処理は、基本ユニット3のCPU31によって実現される。しかし、本発明を限定する意図はなく、それらの処理の一部が拡張ユニット4a、4b、4cで実行されてもよいし、或いはプログラマブルロジックコントローラに通信可能に接続された外部装置(分析装置)によって実行されてもよい。なお、以下で説明する処理は、デバイス値の収集時に自動的に行われる学習処理の一例であり、収集時に常に学習してもよいが、定期的に行われたり、ユーザの指示に基づいて一定期間の間行われるようにしてもよい。
図24A及び図24Bは、上記S3で収集したデータを分類する際の処理手順を示すフローチャートである。以下で説明する処理は、基本ユニット3のCPU31によって実現される。しかし、本発明を限定する意図はなく、それらの処理の一部が拡張ユニット4a、4b、4cで実行されてもよいし、或いはプログラマブルロジックコントローラに通信可能に接続された外部装置(分析装置)によって実行されてもよい。なお、以下で説明する処理は、デバイス値の収集時に自動的に行われる学習処理の一例であり、収集時に常に学習してもよいが、定期的に行われたり、ユーザの指示に基づいて一定期間の間行われるようにしてもよい。
S31でCPU31は、分類対象の時系列データがビットデバイスのデバイス値であるか否かを判断する。ビットデバイスのデバイス値であればS32に進み、そうでなければ、図24BのS37に進む。
S32でCPU31は、分類対象の時系列データの値に変化があるか否かを判断する。変化があればS34へ進み、変化がなく一定値をとるものであればS33に進む。S33でCPU31は分類対象の時系列データを一定値をとるデバイス(2303)であると分類し、処理を終了する。ここで分類情報として、当該時系列データに紐づく情報、例えば分類された類型を示すフラグ情報が当該時系列データまたは当該時系列データに対応するデバイスを示す識別情報に紐づけて格納される。このように、データ収集の分類時において分類した類型のフラグ情報とデバイスの識別情報とを紐づけて格納しておくことにより、分析処理においては、分析対象の時系列データが何れのデバイスからのデータであるかに従って、当該デバイスの識別情報に紐づく類型に応じて、異常デバイスの検知アルゴリズムである評価変数やパラメータを容易に選択することができる。つまり、分析処理においては、検証対象の時系列データが何れの類型に対応するかを特定する処理を省略することができる。なお、分類情報としては、分類された類型を示すフラグ情報を例として示したが、フラグ情報に代えて異常デバイス特定のアルゴリズムを示すアルゴリズム情報であってもよい。また、分類情報として格納される識別情報は、時系列データに対応するデバイスが変数である場合は、当該変数を示す識別情報となることはいうまでもない。
S34でCPU31は、時系列データの値に変化がある場合に、当該変化が各周期において定常的な変化パターンであるかを判断する。定常的な変化パターンであると判断した場合にはS35に進み、定常的な変化パターンではないと判断した場合にはS36に進む。ここで、定常的な変化パターンとは、各周期において同様のパターンで変化するものを示す。S35でCPU31は、所定の周期で動作するデバイスと分類し、処理を終了する。なお、所定の周期で動作するデバイスには、上述したように、装置の動作サイクルに同期して動作するデバイス(2301)と、装置の動作サイクル以外の周期に同期して動作するデバイス(2302)とがあり、CPU31は、それぞれへの分類を行う。一方、S36でCPU31は、不定期で動作するデバイス(2304)に分類し、処理を終了する。
一方、S31でビットデバイスでないと判断されると、図24Bに示すS37に進み、CPU31は、分類対象の時系列データにおいて所定値以上の変化があるか否かを判断する。ここでは、変化している信号の極値が所定値以上であるか否かを判断する。変化がある場合はS38に進み、そうでない場合はS312に進む。
S38でCPU31は、所定の周期で変化しているか否かを判断し、所定の周期で変化していなければS39に進み、変化していればS310に進む。S310でCPU31は、変化している値が単調増加又は単調減少しているか否かを判断する。単調増加又は単調減少していればS311に進み、そうでなければS39に進む。
S39でCPU31は、アナログ値のデバイス(2305)に分類し、処理を終了する。アナログ値のデバイスにおいては種々の類型が存在し、分類対象のデバイスの種別に応じてそれぞれ個別の対応が行われる。一方、S311でCPU31は、単調増加又は単調減少のデバイス(2306)であると分類し、処理を終了する。また、S312でCPU31は、その他のデバイスであると分類し、処理を終了する。その他のデバイスであると判断した場合には当該分類対象の時系列データの特徴が抽出できないものであり、正常時の特徴のある動作を特定できないため、異常デバイスを特定する際には用いない。
また、CPU31は、分類した時系列データに従って、異常デバイスを特定する際のパラメータを決定することが望ましい。この決定処理は分類された類型ごとに行われ、時系列データに対応するデバイスの類型とパラメータとが関連付けて記憶される。また、既に決定されたパラメータが存在する場合には、既に決定されたパラメータに代えて今回決定したパラメータに更新するか、或いは、既に決定されたパラメータと今回決定したパラメータとを用いて新たなパラメータを算出し更新してもよい。算出方法については平均値など様々な手法が適用され得るが、それぞれの時系列データに適した手法が選択される。また、これら決定されたパラメータについては、オペレータによって変更可能としてもよい。これにより、学習期間が短い場合に極端なパラメータが決定されたとしても調整可能とすることができる。
ここで、決定されるパラメータについて説明する。図23の2301、2302の類型(所定の周期に同期して値が定常的なパターンで変化するデバイス)については、CPU41bは、例えば装置の動作サイクル内の波形の変化パターンから、装置の動作サイクルごとの波形の任意の変化点間の時間を算出し、当該変化点間の時間の分布に基づき、変化点間の時間のしきい値を、パラメータとして決定する。さらに、この場合のパラメータには、正常時の時系列データのデバイス値が変化するタイミングを含んでもよい。また、上記パラメータである変化点間の時間のしきい値は、学習時のばらつきから、例えば標準偏差と平均値を計算し、平均値+3×標準偏差を上限のしきい値とし、平均値−3×標準偏差を下限のしきい値として決定してもよい。また、1203の類型(一定の値をとるデバイス)については、CPU41aは、当該一定値をパラメータとする。このように、所定の周期に同期して値が定常的なパターンで変化するデバイスについては、変化点間の時間間隔や、変化点のタイミング、これらに関わるしきい値がパラメータとして用いられる。
1205の類型(アナログ値)については、例えば学習時の時系列データの値と、学習時の時系列データとの距離に関するしきい値とをパラメータとしてもよい。距離の算出方法は、例えば、点ごとの差の和を求める方法でもよい。この場合、推定時には、学習時の時系列データと、推定時の時系列データとの距離を計算し、当該距離がしきい値の範囲内かを判定する。また、1206の類型(単調増加、単調減少)については、例えば正常時における単調増加する際の増加値や、単調減少する際の減少値がパラメータとして決定される。
このように、本実施形態によれば、各デバイスの時系列データの周期性に関する特徴に基づいて、各デバイスを予め定められた複数の類型のいずれかにそれぞれ分類し、さらに、分類されたそれぞれの類型に適切な異常(いつもと違う変化)の検知アルゴリズムを適用する。つまり、本実施形態では、学習フェーズにおいて、正常時の時系列データからデバイスを予め定められた複数の類型のいずれかに分類する。さらに、それぞれの類型に応じて検知アルゴリズムを決定するとともに、それぞれの検知アルゴリズムに応じた評価変数やパラメータを設定する。一方、推定フェーズにおいては、学習フェーズにおいて検知アルゴリズムが決定された各デバイスについて、決定された推定対象のデバイスの類型に従い、当該類型に応じて決まる検知アルゴリズムをデバイスの時系列データに適用する。このように、学習フェーズにおいて決定されたデバイスの類型や、デバイスの類型に対応し、異常デバイスの検知アルゴリズムを用いてデバイスの時系列データを分析することによって、異常デバイスを特定する。なお、学習時において所定の類型に分類されなかったデバイスについては、評価変数やパタメータも設定されないため、推定時においては収集対象とされないことが望ましい。つまり、このようなデータを収集したとしても異常デバイスであるか否かを特定するための検知アルゴリズムが設定されていないため、処理負荷やメモリ資源の消費を無駄に増大させることとなり、これを予防するためである。
<監視処理(前処理・分析処理)>
図14は、本実施形態に係る上記S5の監視処理(前処理・分析処理)の詳細な処理手順を示すフローチャートである。以下で説明する処理は、分析ユニット4bのCPU41bによって実行される。ここでは、前処理の一例として、デバイス値の時系列データと、特徴量データの時系列データとを同期させて、監視対象となる所定区間の時系列データを切り出す処理について説明するが、本発明を限定する意図はなく、例えば、切り出しを行うことなくそのまま監視を行ってもよいし、時間軸方向に移動統計量、例えば、10秒区間ごとの平均値や最大値のフィルタをかけてもよい。
図14は、本実施形態に係る上記S5の監視処理(前処理・分析処理)の詳細な処理手順を示すフローチャートである。以下で説明する処理は、分析ユニット4bのCPU41bによって実行される。ここでは、前処理の一例として、デバイス値の時系列データと、特徴量データの時系列データとを同期させて、監視対象となる所定区間の時系列データを切り出す処理について説明するが、本発明を限定する意図はなく、例えば、切り出しを行うことなくそのまま監視を行ってもよいし、時間軸方向に移動統計量、例えば、10秒区間ごとの平均値や最大値のフィルタをかけてもよい。
まず、S51でCPU41bはS4で基本ユニット3から転送された各デバイスのデバイス値とカメラセンサ10によって撮影されたカメラ画像の特徴量データとの時系列データを取得する。さらに、CPU41bは、取得したデバイス値と特徴量の時系列データを分析して各デバイスの特徴に基づいて分類し、検知アルゴリズムを決定する。具体的には、データ取得すると、CPU41bは、まず分類処理を実行する。分類処理は、上記図24A及び図24Bを用いて説明した学習フェーズでの分類処理と同様の処理である。さらに、CPU41bは、監視対象の各データの類型を分類すると、各類型と紐づけて保持されている分析を行うための閾値等の各種パラメータを取得しておく。当該パラメータは後述するS55の異常判定で用いられる。
S52でCPU41b(データ処理部73)は、S51で取得した各時系列データに対して前処理を実行する。前処理では、同期したデータとして取り扱えるように紐付けを行い、同期させた所定デバイスのデバイス値の時系列データと、特徴量データの時系列データとにおいて、監視すべき監視対象の区間を切り出す。つまり、時系列データの全てのデータを監視するのではなく、例えば、デバイス値に変化のある所定区間の時系列データを監視するように切り出し、処理負荷を低減しつつ、より改善された監視を実現する。前処理の詳細については図15及び図16を用いて説明する。なお、時系列データの切り出しを行うことなく取得した時系列データの全ての期間を監視するようにしてもよい。
S52でCPU41b(データ処理部73)は、S51で取得した各時系列データに対して前処理を実行する。前処理では、同期したデータとして取り扱えるように紐付けを行い、同期させた所定デバイスのデバイス値の時系列データと、特徴量データの時系列データとにおいて、監視すべき監視対象の区間を切り出す。つまり、時系列データの全てのデータを監視するのではなく、例えば、デバイス値に変化のある所定区間の時系列データを監視するように切り出し、処理負荷を低減しつつ、より改善された監視を実現する。前処理の詳細については図15及び図16を用いて説明する。なお、時系列データの切り出しを行うことなく取得した時系列データの全ての期間を監視するようにしてもよい。
S53で、CPU41b(監視部76)は、S52で前処理が施された特徴量の時系列データに所定の変化があったか否かを判断する。ここで、所定の変化とは、基本ユニット3や分析ユニット4bから設定された設定情報に含まれる特徴量毎に設定された閾値範囲を超える変化をいう。当該閾値範囲は、ユーザが設定した正常区間のデータからの剥離に基づいて判断される。例えば、標準偏差と平均値を算出し、平均値+3×標準偏差を上限とし、平均値−3×標準偏差を下限とした範囲でもよい。或いは、所定の閾値を超えた回数によって所定の変化があったかどうかを判断してもよい。所定の変化がない場合は処理をS51に戻し、次のデータの処理に移行する。一方、所定の変化があると判断されるとS54に進み、CPU41b(監視部76)は、S52で前処理が実施された特徴量の時系列データをメモリ42bに保存する。ここでは、所定のデバイス値に紐づけられて保存される。
次に、S55に進みCPU41b(監視部76)は、デバイス値及び特徴量の時系列データを、上記S51で取得した類型とパラメータなどの検知アルゴリズムに基づいて分析し、いつもと違う変化が検出されたかどうかを判断する。ここで、異常が検知される場合は、例えば、S53の変化の度合いが所定値以上である場合や、所定区間内に検出された変化の回数が所定以上である場合や、他のデバイス値との変化との関係がいつもと違う場合など様々な異常が判断されうる。また、異なる特徴量との関係性、例えば特徴量Aと特徴量Bとの差や複数の特徴量の相関値やマハラノビス距離などを分析してもよい。或いは、カメラの特徴量が一定の範囲の値である間の他のデバイスのデバイス値の変化回数等を判断してもよい。異常がなければ処理をS51に戻し、次のデータの処理に移行する。一方、異常が有ればS56に進み、CPU41b(監視部76)は、ログ記録として、いつもと違う変化があったことを出力する。なお、ログ記録としては、ユーザプログラムによって予め定められた保存条件が成立した場合に保存するようにしてもよい。また、記録場所としては、基本ユニット3の記憶装置32や分析ユニット4bのメモリ42bに記憶してもよい。ログ記録として記憶される情報としては、例えば特徴量の時系列データに加えて、対応する画像データが保存されてもよい。さらには、同期されたデバイス値の時系列データが保存されてもよい。また、保存したことがPC2a、2bを介してユーザへ通知されてもよい。或いは、外部装置に対して電子メール等で通知を行うようにしてもよい。続いて、S57でCPU41b(監視部76)は、基本ユニット3の第一バッファ37aや分析ユニット4bのバッファ37b、37cから基本ユニット3のメモリカード44や分析ユニット4bの不図示のメモリカードに上記ログを保存する。
S58でCPU41b(監視部76)は、S57で記録されたデータを用いて異常の分析を行い、所定の異常やデバイス異常が発生しているか、またその異常要因を特定し、処理を終了する。なお、いつもと違う変化が検知されたとしても、S58で緊急を要する異常が発生しているものと常に特定しなくてもよい。また、異常の度合いを特定するようにしてもよい。当該分析結果は、上記S6の結果表示に反映される。異常要因の特定については、種々の異常時の教師データによって学習した学習済みモデルを用いてもよいし、いつもと違う変化のあった特徴量に応じて予め設定された異常要因を特定してもよい。また、デバイス値の異常については、その時系列データの周期性や連続性に応じて信号の種別を分類し、分類した型に応じてそれぞれ判定基準を設けてデバイス異常が発生しているか又はその要因を特定してもよい。分類される型は、例えばスキャン周期に同期して動作するデバイス、非同期で動作するデバイス、一定値をとるデバイス、不定期に動作するデバイス、単調増加、単調減少するデバイス、及びアナログ値をとるデバイスの信号値などがある。これらの分類についても正常時の時系列データを教師データとして学習した学習済みモデルを用いて行ってもよい。また、これらの学習モデルはPLC1の監視中において正常と判断されたデータや異常と判断されたデータを用いて学習を行うようにしてもよい。
<データの切り出し>
本実施形態では、基準デバイスの指定を受け付けて特徴量データの時系列データから所定区間のデータの切り出しを行う。例えば、基準デバイスとしてデバイスAが指定されると、デバイスAのデバイス値がOFFからONになるタイミングから、次にOFFからONになるタイミングまでを1周期として、対応する区間のデータを、特徴量データの時系列データから切り出す。以下では、データの切り出しについて2つの基準デバイスを用いた手法について説明する。図15は、データの切り出しを説明する図である。ここでは、所定の基準デバイス(デバイスA及びデバイスB)に関連付けて、カメラ画像の特徴量データの時系列データから所定区間のデータを切り出す方法(サイクル切り出し)について説明する。
本実施形態では、基準デバイスの指定を受け付けて特徴量データの時系列データから所定区間のデータの切り出しを行う。例えば、基準デバイスとしてデバイスAが指定されると、デバイスAのデバイス値がOFFからONになるタイミングから、次にOFFからONになるタイミングまでを1周期として、対応する区間のデータを、特徴量データの時系列データから切り出す。以下では、データの切り出しについて2つの基準デバイスを用いた手法について説明する。図15は、データの切り出しを説明する図である。ここでは、所定の基準デバイス(デバイスA及びデバイスB)に関連付けて、カメラ画像の特徴量データの時系列データから所定区間のデータを切り出す方法(サイクル切り出し)について説明する。
1501はデバイスAの時系列データを示し、1502はデバイスBの時系列データを示し、1503はカメラ画像の特徴量データを示し、各時系列データは同期した状態である。1501に示すように、デバイスA及びデバイスBのデバイス値は周期性がある。ここでは、デバイスAのOFFからONの変化からデバイスBのOFFからONの変化までを区切りとして、カメラ画像の特徴量データを切り出して監視対象1504とし、その他の区間は監視対象外1505とする。これにより監視対象として望ましくない区間を除外(マスク)することができる。例えば動作の一時休止中や人の手がカメラ画像に写り込むことによって異常の検知精度が低下することを防止し、誤検知を低減することができる。なお、切り出し方法は様々であり、例えば、所定のデバイスのOFFからONの変化から、ONからOFFの変化までを切り出し区間としてもよい。また、ここでは、所定区間の波形を切り出したが、基準デバイスのデバイス値が変化したタイミングのカメラ画像の特徴量データの値を取得してもよい。
<前処理の処理フロー>
図16は、本実施形態に係る上記S52の前処理の詳細な処理手順を示すフローチャートである。以下で説明する処理は、分析ユニット4bのCPU41bによって実行される。ここでは、図15を参照して説明した切り出し手法を用いる場合の前処理について説明する。
図16は、本実施形態に係る上記S52の前処理の詳細な処理手順を示すフローチャートである。以下で説明する処理は、分析ユニット4bのCPU41bによって実行される。ここでは、図15を参照して説明した切り出し手法を用いる場合の前処理について説明する。
S521でCPU41b(データ処理部73)は、1つ目の基準デバイスとなるデバイスAのデバイス値を順次取得する。S522でCPU41b(データ処理部73)は、S521で取得したデバイス値がOFFからONに変化したか否かを判定する。変化していればS523へ進み、変化していなければ処理をS521に戻し、次のデバイス値を取得する。
S523でCPU41b(データ処理部73)は、S521で取得したデバイスAのデバイス値と同時刻の特徴量データの特徴量を取得し、蓄積する。続いて、S524でCPU41b(データ処理部73)は、デバイスBのデバイス値を取得する。S525でCPU41b(データ処理部73)は、S524で取得したデバイス値がOFFからONに変化したか否かを判定する。変化していればS526へ進み、変化していなければ処理をS523に戻し、次のデバイス値を取得する。
S526でCPU41b(データ処理部73)は、S523で蓄積されたカメラ画像の特徴量波形を正常時のものと比較する。ここで、比較結果を一時的に保持し、保持した情報は上記S53の判定に用いられる。このように、所定区間のカメラ画像の特徴量波形のサイクル切り出しを行い、正常時の波形と比較することで精度よく変化を検出することができる。比較方法としては、例えば、点ごとのユークリッド距離を求めて和を計算する方法や、DTW(動的タイムワーピング)などで2つの波形の距離を計算する方法などがある。ここで変化が検出されると、上述したS55で説明したように異常の検知が行われる。
<監視項目の設定画面>
図17は、本実施形態に係る監視項目の設定画面の一例を示す図である。設定画面1700は、上記S1等のタイミングでPC2bの表示部7bに表示される。なお、PC2aや他の外部装置に表示されてもよい。また、表示されるタイミングは上記S1のタイミングに限られるものではなく、任意のタイミングで設定されるものである。例えば、上記S6の確認画面1800の表示から設定画面1700に遷移することもできる。また、PC2aで表示する場合には、プロジェクトデータの設定画面上で監視項目の設定が指示されると、設定画面1700が遷移して又はポップアップで表示されるようにしてもよい。さらに、本設定画面が異常検知に関わる設定であって、PLCシステムが保証する安全性に影響を及ぼす重要なパラメータを設定する場合や、本設定画面から現場のオペレータが意図せぬパラメータの変更を行ってしまう場合などがあるため、本設定画面を表示するにあたり、操作権限などの認証処理を行うことが望ましい。
図17は、本実施形態に係る監視項目の設定画面の一例を示す図である。設定画面1700は、上記S1等のタイミングでPC2bの表示部7bに表示される。なお、PC2aや他の外部装置に表示されてもよい。また、表示されるタイミングは上記S1のタイミングに限られるものではなく、任意のタイミングで設定されるものである。例えば、上記S6の確認画面1800の表示から設定画面1700に遷移することもできる。また、PC2aで表示する場合には、プロジェクトデータの設定画面上で監視項目の設定が指示されると、設定画面1700が遷移して又はポップアップで表示されるようにしてもよい。さらに、本設定画面が異常検知に関わる設定であって、PLCシステムが保証する安全性に影響を及ぼす重要なパラメータを設定する場合や、本設定画面から現場のオペレータが意図せぬパラメータの変更を行ってしまう場合などがあるため、本設定画面を表示するにあたり、操作権限などの認証処理を行うことが望ましい。
設定画面1700は、種々の表示1701〜1718を含んで構成される。表示1701は、複数の監視設定が存在する場合に、どの監視設定であるかを示す。複数の監視領域がある場合には、監視領域のそれぞれを指定して設定を行うことができる。表示1706は、監視動作の状態を有効又は無効に切り替えるボタンである。監視を有効にするかどうかの切り替えは、設定画面1700上で設定する以外に、HMIや物理的なボタンやセンサの出力状態で選択可能としてもよい。この場合、デバイスメモリの特定領域の値が変更されることにより、分析ユニット4bが監視を行うか否かを判定するようにしてもよい。表示1702は、監視動作の状態を示す。監視が有効に設定されると「動作中」が表示され、無効に設定されると「停止中」が表示される。表示1703は、監視状態を示す。監視の判定結果に対応し、監視を開始してから異常条件(監視条件)が満たされていない場合は「OK」が表示され、1回でも満たされると異常検知がクリアされるまで「NG」が表示される。異常検知は、上述したいつもと違う変化が検出されたことを示す。表示1704は、異常が検知された回数、即ちNG検知回数を示す。監視状態が「NG」となってからの異常検知の累積回数を示す。デフォルトでは、後述する監視条件1と、監視条件2との合計回数が表示されるが本発明を限定する意図はなく、仕様等により変更されてもよい。表示1705は、NG検知回数をクリアするボタンである。クリアされると、表示1703の監視状態が「OK」となり、NG検知回数がリセットされる。
表示1721は、監視対象の特徴量の時系列データを表示1707内に自動的に調整して表示するためのチェックボックスを示す。スケールの調整方法としては、過去に取得したデータの最大値、最小値に基づいて、表示範囲の上下限を設定する場合や、現在画面に表示されている範囲の最大値、最小値に基づいて表示範囲の上下限を設定する方法などが適用されうる。オートスケールがOFFの場合には、ユーザ入力に従って、表示する上下限を選択できるようにしてもよい。表示1720には、設定画面1700で選択されている監視対象の成分が表示される。表示1707は、監視対象の特徴量のリアルタイムでのモニタ画面を示す。図17の例では、監視対象が輝度成分であり、モニタ画面には、輝度成分のスキャン周期のフレームごとに取得された全ての画像情報に基づく時系列データの折れ線グラフが表示されている。点線で表示されている折れ線は前回のサイクルの値や、これまでの平均値を示す。また、実線で表示されている折れ線は今回のサイクルの値を示す。このように、過去のサイクルの値と比較可能に表示することにより、操作者は差分を容易に認識することができる。表示1708は、特徴量の拡大縮小を指示するためのボタンを示す。「1×」は倍率表示である。「−」ボタンで倍率を縮小し、「+」ボタンで倍率を拡大する。拡大表示した場合は、表示領域を移動表示するためのスクロールバーがグラフ上に表示される。スクロールバーの代わりに、表示領域を左右方向へ移動する操作ボタンが表示されてもよい。これらのボタン以外に、「停止ボタン」や「再開ボタン」、「現在画面表示を保存するボタン」が設けられてもよい。これにより、ユーザは所望のタイミングの特徴量グラフから測定状態、例えばモーションモニタ波形、カメラ画像、及び特徴量について確認することができる。表示1709〜1711は、それぞれ現在の特徴量の値を示す「現在値」、監視が有効にされてから取得されたデータの最小値「MIN」、最大値「MAX」を示す。ユーザはこれらの表示を確認することで、監視条件の設定を容易に行うことができる。表示1712は、最大値及び最小値をクリアするボタンを示す。当該ボタンが操作されると、新たに取得したデータで最大値と最小値が更新される。
表示1713は、カメラセンサ10によって撮影されているリアルタイムの映像が表示される。当該映像は、処理負荷を考慮して間引きが行われたデータが表示されてもよいし、PLC1の処理性能によってはデータの間引きは行われなくてもよい。カメラ入力ユニット4aでは、画像データ自体は、フレームごとに取得してバッファに保存しているが、Webサーバを介して通信でモニタするため、厳密に時間を一致させることは難しい。従って、画像データについては間引きして表示しても特に問題はない。図17で表示されている画像は、工場内においてワークが搬送されている際に、所定の位置において搬送中のワークの斜行が修正される様子を捉えている。また、表示1713の内部に表示される表示1719は、カメラセンサ10で撮影されたカメラ画像のうち、特徴量化する所定領域を規定するための枠である。例えば、4角のポイントをポインティングデバイス等でドラッグして操作することにより、当該所定領域をリサイズすることができる。ここでは、ワークの斜行が修正される位置が所定領域として設定されている様子を示す。当該位置においては、搬送中のワークが上部からの部材によって担持され、画像右手方向から押し部材によってワークの斜行が修正される。表示1719で規定された領域は、カメラ入力ユニット4aに通知され、その後に取得されるカメラ画像の特徴量データの生成において適用される。図17の例では、表示1719で規定可能な所定領域は矩形形状であるが、必ずしも矩形形状である必要はない。例えば、分割された区域を個別に指定可能なものであってもよい。また、規定した所定領域内にさらにマスク領域が指定可能であってもよい。マスク領域とは、特徴量化して監視する監視領域から除外する領域を示す。
設定内容について説明する。表示1720は、現在選択されている監視対象を示す。図17では、輝度成分が選択されている。変更ボタンが操作されると、図19に示すパラメータ選択画面1900が表示される。パラメータ選択画面1900では、選択可能な特徴量の種別の一覧1902が表示され、種別とともに、各特徴量の時系列データの表示例が示される。各特徴量は、カメラ入力ユニット4aによってカメラセンサ10からカメラ画像の入力時に画像データから抽出されて保存されているため、それらのデータを利用して表示してもよい。これにより、ユーザは何れの特徴量で変化が起きているかを確認し、当該特徴量を選択して監視することができる。ユーザは、各特徴量の種別を示す欄を選択してOKボタン1903を操作することにより、所望の特徴量を選択することができる。一方、キャンセルボタン1904が操作されると、特徴量の選択を行わず設定画面1700に戻る。また、複数の特徴量を選択可能に構成してもよい。この場合、表示1707に複数の特徴量データが表示される。特徴量が変更された場合には、監視状態1703やNG検知回数1704はリセットされて表示されてもよいし、NG検知回数170はリセットされることなく起動時からの積算回数が表示されてもよい。リセットする場合には、その特徴量の設定に変更されてからの情報を知ることができる一方で、積算回数の場合は、監視を開始してから「いつもと違う」を検知した回数を知ることができる。
図17の説明に戻る。表示1715、1716には、それぞれ監視条件1と監視条件2との設定領域が表示される。監視の際には、少なくとも1つの監視条件が選択される必要がある。もちろん複数の監視条件が同時に選択されてもよい。例えば、監視条件1及び監視条件2が選択されると、それらのNG検知結果が論理演算(デフォルトではOR)される。監視条件を満たすとNG検知回数がカウントされる。ここでは、2つの監視条件を例に説明しているが、さらに他の監視条件を追加することができ、複数の監視条件の論理演算についても設定することができる。それぞれの監視条件では、例えば、監視項目である「ピーク値」や「ON-OFFカウント数」などや、監視項目の閾値、その判定条件である「以上を検出」、「以下を検出」などを設定することができる。ピーク値の閾値が設定されると、表示1707のモニタに表示されてもよい。これにより、ユーザは閾値の設定を直感的に行うことができる。また、他の監視条件として、ガードバンド、基準信号に対する距離、例えばユークリッド、DTWなど、特定タイミング等を設定できるようにしてもよい。ガードバンドとは、監視対象の波形が規定の領域、例えば上下限を有する範囲にあるかどうかを判定する。基準信号に対する距離とは、予め設定された基準値からの距離を判定する。特定タイミングとは、サイクル開始から規定時間経過後の値が指定範囲内になるかどうかを判定する。また、監視条件の規定値は、他のデバイスのデバイス値に関するものであってもよい。なお、特徴量が変更された場合には、その特徴量に応じた閾値を設定することができるように変更される。
表示1717は、サイクル切り出しについての設定領域である。「サイクル切出」が有効の場合は、後述するサイクル切出設定画面2000、2010で設定された条件に従ってサイクルが自動的に切り出され、表示1707のモニタに切り出された特徴量データのグラフが表示される。「タイムアウト」には、サイクル切り出しが無効の場合の1サイクルの時間が設定可能である。「タイムアウト」で設定される時間に従って、1サイクルが決定され、表示1707のモニタに切り出された特徴量データのグラフが表示される。サイクル切り出しが有効な場合は、設定されたタイムアウト時間によらず、サイクル切り出し設定で設定された情報に基づき自動的にサイクルが切り出されるが、異常が発生している場合は、サイクルの終わりを切り出すことができない場合もある。そのような場合は、タイムアウトで設定された時間に従って、サイクルが切り出される。なお、ここでは、「タイムアウト」として時間を採用しているが、本発明を限定する意図はなく、例えば、一定量のデータがバッファに蓄積された場合に1サイクルが経過したと判断するような定義としてもよい。例えば、サイクル切り出しが有効で、タイムアウト時間が設定されていなかった場合では、バッファリングできるデータサイズに達した時点でサイクル終了と判断してもよい。或いは、バッファを上書きしていくことで、他のサイクル終了条件が成立するまで無限に処理されてもよい。サイクル切出設定画面については、図20及び図21を用いて後述する。
表示1718は、設定した監視項目の確定ボタンを示す。確定ボタンが操作されることで、設定された情報に基づいて監視動作が行われる。さらに、確定ボタンが操作された後は、表示1713のモニタ画面において表示1719による所定領域の変更や、監視条件の設定などの変更ができないように切り替わる。
<監視状態の確認画面>
図18は、本実施形態に係る監視状態を確認する確認画面の一例を示す図である。確認画面1800は、上記S6のタイミングでPC2bの表示部7bに表示される。なお、PC2aや他の外部装置に表示されてもよい。確認画面1800は、設定画面1700において設定された内容での監視状態を確認するための画面であり、設定画面1700と異なることは監視項目の設定ができない点である。従って、設定画面1700と同様の表示については同一の参照符号を付し、説明を省略する。
図18は、本実施形態に係る監視状態を確認する確認画面の一例を示す図である。確認画面1800は、上記S6のタイミングでPC2bの表示部7bに表示される。なお、PC2aや他の外部装置に表示されてもよい。確認画面1800は、設定画面1700において設定された内容での監視状態を確認するための画面であり、設定画面1700と異なることは監視項目の設定ができない点である。従って、設定画面1700と同様の表示については同一の参照符号を付し、説明を省略する。
表示1707と表示1713においては、設定画面1700で設定された設定情報に従って、リアルタイムで特徴量データと、カメラセンサ10によって撮影されたリアルタイムの映像とが表示される。なお、表示1707においては、関連する他のデバイスのデバイス値の時系列データが同期した状態で表示されてもよい。これにより、ユーザは変化の様子をより詳細に確認することができる。
表示1802〜1804に示すように、監視条件1、2と、サイクル切出についての設定内容については、確認画面1800では変更することができず、設定画面1700で設定された内容が表示される。一方、表示1801の設定変更ボタンが操作されると、設定画面1700に表示が遷移し、再び設定を行うことができる。このように、本実施形態によれば、監視中においても設定を変更することができ、設定画面1700で確定ボタンが操作されると、その後の監視は設定された監視条件に従って行われる。
また、確認画面1800では、正常時のカメラ画像や特徴量データと、異常時のカメラ画像や特徴量データとが比較可能に表示されてもよい。この場合、例えばカメラ画像や特徴量データにおいて、異常箇所を強調表示することが望ましい。また、これらの表示については、スライドバーが表示され、指定した時間のカメラ画像や特徴量データを表示するようにしてもよい。また、合わせて、対応する他のデバイスのデバイス値の時系列データを対応付けて表示してもよい。これは、いつもと違う変化を検知したタイミングでカメラ画像やのその特徴量データや、対応する他のデバイスの時系列データを保持していることにより実現することができる。また、ここでは結果画像として表示する例について説明したが、それらの表示や分析結果を含むレポートを作成し、ログとして記憶したり、所定の宛先へ送信するようにしてもよい。これにより、操作者がリアルタイムで確認していない場合であっても、後に異常時の分析結果を確認することができる。
<切り出し設定画面>
図20は、本実施形態に係るサイクル切出設定画面の一例を示す図である。サイクル切出設定画面2000は、例えば設定画面1700の表示1717におけるサイクル切出が選択された際にポップアップ画面等で表示される画面である。サイクル切出設定画面2010は、サイクル切出設定画面2000で表示2003の「詳細設定を行う」が選択された際に遷移する画面である。
図20は、本実施形態に係るサイクル切出設定画面の一例を示す図である。サイクル切出設定画面2000は、例えば設定画面1700の表示1717におけるサイクル切出が選択された際にポップアップ画面等で表示される画面である。サイクル切出設定画面2010は、サイクル切出設定画面2000で表示2003の「詳細設定を行う」が選択された際に遷移する画面である。
サイクル切出設定画面2000において、表示2001は、基準デバイスを選択可能な表示である。基準デバイスとは、上述したように、前処理においてカメラ画像からの特徴量データの監視対象区間を切り出す際に、切り出す基準となる他のデバイス値に対応するデバイスである。ここではデバイスAが選択されている様子を示す。表示2002は、切り出し基準となる信号変化を設定する表示である。図20では、一例として、信号の立ち上がり(OFFからON)、信号の立ち下り(ONからOFF)、信号値がONの区間を選択することができる様子を示す。なお、他の信号変化を選択可能にしてもよい。またここでは、2値の信号値について例示しているが、多値(アナログ値)のデバイス値の信号値に対応して設定するようにしてもよい。その場合は、所定の閾値を設定し、当該所定の閾値を超えた場合や、下回った場合を切り出す基準として設定してもよい。表示2003の「詳細設定を行う」が操作されると、サイクル切出設定画面2010に遷移する。
サイクル切出設定画面2010において、表示2011は、切出開始タイミングを設定する表示である。ここでは、デフォルトで、サイクル切出設定画面2000で設定された基準デバイスであるデバイスAと、その切り出し基準が表示される。なお、この画面においてそれぞれを変更することも可能である。切り出し基準については、ポインティングデバイス等で基準位置となる信号変化の位置を選択することにより変更することができる。表示2012は、切出終了タイミングを設定する表示である。ここでは、切出終了タイミングの基準となる信号値のデバイスと、その切り出し基準を設定することができる。図20の例では、切出終了タイミングの基準デバイスとしてデバイスBを表示しているが、通常、サイクル切出設定画面2000で基準デバイスとして設定されたデバイスAがデフォルトで表示され、プルダウンにより他のデバイスに変更することができる。表示2013は、監視対象外としてマスクする区間を設定する表示である。ユーザ操作としては、例えば、ポインティングデバイス等で対象の信号値をドラッグしてマスク区間の開始位置を規定し、ドラッグ状態で移動させることでマスク区間の範囲を規定し、リリースすることでマスク区間の終了を規定するようにしてもよい。図20の例では、基準となる信号値のデバイスと、そのマスク区間2014を設定することができる。サイクル切出設定画面2010で設定されている設定内容は、サイクル切出区間がデバイスAの信号の立ち上がりから、その後デバイスBの信号の2回目の立ち下がりまでの区間が設定され、デバイスBの信号の2回目の立ち下がり区間から次のデバイスAの信号の立ち上がりまでがマスク区間2014として設定されている。なお、サイクル開始条件、終了条件を一部共通にすることで、設定項目を減らしてもよい。例えば、特定デバイスがONの間はサイクル開始条件と終了条件の対象デバイスが同じで、それぞれ立ち上がり、立ち下がりが設置された場合と等価となり、設定項目を減らすことができる。
以上説明したように、本実施形態に係るプログラマブルロジックコントローラ(PLC)は、撮影条件に従って順次撮影し、撮影したカメラ画像の画像データを順次生成するカメラセンサが接続される。本PLCは、ユーザプログラムを繰り返し実行する実行エンジンと、ユーザプログラムに従って実行エンジンによりアクセスされるデバイスのデバイス値を記憶するデバイスメモリとを備える。また、本PLCは、ユーザプログラムと、接続されるカメラセンサの撮像条件および撮影したカメラ画像に対する監視領域を含む設定情報とを受け付けるための設定インターフェースと、設定インターフェースを介して受け付けた撮影条件に従って順次撮影し、撮影したカメラ画像の画像データを順次生成するカメラセンサを接続するカメラ入力インターフェースと、を備える。さらに、本PLCは、カメラ入力インターフェースを介してカメラセンサからカメラ画像の画像データを順次取得し、取得されたカメラ画像の画像データうち予め設定された監視領域における画像データの特徴量を示す特徴量データを生成し、デバイスメモリに記憶された所定デバイスのデバイス値を時刻情報とともに収集し、特徴量データを時刻情報とともに収集し、収集されたデバイス値の時系列データと特徴量データの時系列データの少なくとも1つを所定の監視条件に従って監視する。このように、本実施形態に係るPLCでは、PLCレイヤ内にカメラ入力ユニット(カメラセンサが接続されたユニット)を設けることにより、外部装置との通信による通信遅延を発生させることなく、カメラセンサによって撮影したカメラ画像を他のデバイスのデバイス値と容易に同期させて好適に監視を行うことができる。
また、本実施形態によれば、基準デバイスを指定することが可能であり、指定された基準デバイスのデバイス値の信号変化に従って、同期した特徴量化データの監視対象区間を切り出す前処理を実行し、前処理によって切り出された特徴量化データの時系列データを、所定の監視条件に従って監視する。また、複数の基準デバイスを指定可能であり、この場合、当該前処理では、指定された複数の基準デバイスのデバイス値の信号変化に従って特徴量データの時系列データの監視対象区間を切り出すようにしてもよい。当該前処理では、さらに、監視対象区間とは異なる区間をマスク区間として監視から除外することも可能である。これらの監視処理に関する監視設定については、基本ユニット3に接続されたPC2aや分析ユニット4bに接続されたPC2bに表示された設定画面を介して設定可能である。また、当該設定については、監視中であるか否かに関わらず設定を行うことができる。
また、本PLCは、ユーザ入力を受け付け可能な設定画面を介して、カメラセンサによって撮影されるカメラ画像の画像データに関する設定を行う。また、本PLCは、監視状態を表示する確認画面を生成して出力する。或いは、これらの監視状態に関するレポートを作成して所定の宛先に送信することができる。確認画面からは、さらに、設定画面へ遷移することが可能であり、監視中に監視対象に関する設定を変更することが可能である。設定変更されると、変更された設定内容に応じて監視処理が変更される。
<変形例>
ここで、図22を参照して、設定画面1700を表示する変形例について説明する。図22は、プロジェクトデータの設定画面2200から監視設定等を行う設定画面1700を呼び出した様子を示す。設定画面2200では、プロジェクトデータの各種設定を行うことができ、ユーザプログラムに関する設定や、ユニット構成に関する設定、収集設定、監視設定、カメラ設定などである。
ここで、図22を参照して、設定画面1700を表示する変形例について説明する。図22は、プロジェクトデータの設定画面2200から監視設定等を行う設定画面1700を呼び出した様子を示す。設定画面2200では、プロジェクトデータの各種設定を行うことができ、ユーザプログラムに関する設定や、ユニット構成に関する設定、収集設定、監視設定、カメラ設定などである。
設定画面2200は、基本ユニット3に接続されたPC2aに表示される設定画面であるが、このような設定画面2200からも監視設定を行う設定画面1700を読み出すことができ、ここでは設定画面2200に重畳して設定画面1700が表示される一例を示す。これに限らず、設定画面2200上で監視設定が指示されると別画面として設定画面1700へ遷移してもよい。このように、設定画面1700は、基本ユニット3に接続されたPC2aにおいて表示されてもよく、分析ユニット4b等の拡張ユニットに接続されたPC(Webサーバ)上に表示されてもよい。
<第2の実施形態>
以下では、本発明の第2の実施形態について説明する。上記第1の実施形態では、PLCレイヤに、基本ユニット3、カメラ入力ユニット4a、及び分析ユニット4bが含まれて構成される例について説明した。しかし、本発明はこのような構成に限定されることなく、各ユニットの機能の一部が他のユニットで実現されてもよい。例えば、カメラ入力ユニット4a、分析ユニット4bは一体化して設けられてもよいし、全てのユニットが一体化して設けられてもよい。さらに、本実施形態では、分析ユニット4bがPLCレイヤ以外の外部装置として設けられてもよく、その場合の形態について本実施形態で説明する。
以下では、本発明の第2の実施形態について説明する。上記第1の実施形態では、PLCレイヤに、基本ユニット3、カメラ入力ユニット4a、及び分析ユニット4bが含まれて構成される例について説明した。しかし、本発明はこのような構成に限定されることなく、各ユニットの機能の一部が他のユニットで実現されてもよい。例えば、カメラ入力ユニット4a、分析ユニット4bは一体化して設けられてもよいし、全てのユニットが一体化して設けられてもよい。さらに、本実施形態では、分析ユニット4bがPLCレイヤ以外の外部装置として設けられてもよく、その場合の形態について本実施形態で説明する。
図21は、本実施形態に係る分析ユニットをPLCレイヤ外に設けた構成を示す図である。上記第1の実施形態と同様の構成については同一の参照符号を付し、説明を省略する。図21に示すように、本実施形態では、上記第1の実施形態の分析ユニット4bの代わりに、拡張ユニットである通信ユニット4cが接続される。さらに、通信ユニット4cを介して外部装置である分析装置2100が通信可能に接続される。分析装置2100は、カメラ入力ユニットが接続されるPLCレイヤの上位階層に接続されるような形態であってもよい。このように、分析ユニットをPLCレイヤから切り離すことにより、省スペース化を実現でき、PCやクラウドコンピューティングなどの高度な演算を可能とする。一方で、監視対象のデータを分析装置2100へ転送する必要あり、通信負荷が増大するものの、画像データそのものではなく、特徴量を抽出した特徴量データを転送することで通信量を軽減することができる。
基本ユニット3で収集された各デバイスのデバイス値と、カメラ画像の特徴量データとは、通信ユニット4cを介して分析装置2100へ転送される。詳細には、通信ユニット4cは、拡張バス90を介して基本ユニット3から転送データを受信し、通信部43aを介して分析装置2100へ転送データを転送する。通信部43aは、さらに、画像データ(画像データ)を送信する。画像データはモニタ用に使用するため、画像データの送信頻度はデバイス値や特徴量データと比較して低頻度でよい。なお、特徴量データには時刻を付与することが望ましい。これにより、分析装置2100において異常を検知した際にその発生時刻を表示することができる。
分析装置2100は、LAN等のネットワーク2101を通じて通信部43bで転送データを受信し、受信した転送データに基づいて監視処理を行う。監視処理については上記第1の実施形態の分析ユニット4bと同様の構成で同様の制御が行われるため説明を省略する。また、監視結果については、分析装置2100のディスプレイ2102に表示される。ディスプレイ2102には、表示制御部74によって、上記設定画面1700や確認画面1800が表示される。また、監視結果等は、通信部43bを介してPLC1へ送信されてもよい。また、分析装置は、PC2bと一体化して設けられてもよい。その場合、分析装置のディスプレイに確認画面1800や設定画面1700が表示されてもよい。
<第3の実施形態>
以下では、本発明の第3の実施形態について説明する。上記第1の実施形態では、主に常時監視を行う例について説明したが、本発明は常時監視を行う構成に限定されるものではない。例えば、リアルタイムで監視処理を行うのに代えて又は加えて、ログ情報としてメモリカード44等に残された情報を用いて事後的に分析してもよい。
以下では、本発明の第3の実施形態について説明する。上記第1の実施形態では、主に常時監視を行う例について説明したが、本発明は常時監視を行う構成に限定されるものではない。例えば、リアルタイムで監視処理を行うのに代えて又は加えて、ログ情報としてメモリカード44等に残された情報を用いて事後的に分析してもよい。
上述したように、保存条件が満たされた場合に、基本ユニット3のメモリカード44や分析ユニット4bの不図示のメモリカードに各デバイスのデバイス値と特徴量データとが保存される。保存条件は、例えば、カメラセンサ10の撮像画像において異常を検知した場合、その他PLCに異常が発生した場合や、ユーザにより予め保存トリガとなるデバイスを指定しておき当該デバイスに所定の変化があった場合や、ユーザによる分析命令があった場合、定期的に監視する監視周期が経過した場合、基本ユニット3に接続される拡張ユニットから分析命令が発せられた場合などに成立するものである。
Claims (19)
- 撮影条件に従って順次撮影し、撮影したカメラ画像の画像データを順次生成するカメラセンサが接続されるプログラマブルロジックコントローラであって、
ユーザプログラムを繰り返し実行する実行エンジンと、
前記ユーザプログラムに従って前記実行エンジンによりアクセスされるデバイスのデバイス値を記憶するデバイスメモリと、
前記ユーザプログラムと、接続されるカメラセンサの撮像条件および撮影したカメラ画像に対する監視領域を含む設定情報とを受け付けるための設定インターフェースと、
前記設定インターフェースを介して受け付けた撮影条件に従って順次撮影し、撮影したカメラ画像の画像データを順次生成するカメラセンサを接続するカメラ入力インターフェースと、
前記カメラ入力インターフェースを介して前記カメラセンサからカメラ画像の画像データを順次取得し、取得された前記カメラ画像の画像データうち予め設定された監視領域における画像データの特徴量を示す特徴量データを生成する画像処理手段と、
前記デバイスメモリに記憶された所定デバイスのデバイス値を時刻情報とともに収集し、前記特徴量データを時刻情報とともに収集する収集手段と、
前記収集手段によって収集されたデバイス値の時系列データと前記特徴量データの時系列データの少なくとも1つを所定の監視条件に従って監視する監視手段と
を備えることを特徴とするプログラマブルロジックコントローラ。 - 基準デバイスを指定する指定手段をさらに備え、
前記監視手段は、
前記指定手段によって指定された前記基準デバイスのデバイス値の信号変化に従って、該基準デバイスの時系列データと同期した前記特徴量データの時系列データの監視対象区間を切り出す前処理手段を備え、
前記前処理手段によって切り出された特徴量データの時系列データを、所定の監視条件に従って監視することを特徴とする請求項1に記載のプログラマブルロジックコントローラ。 - 前記指定手段は、複数の基準デバイスを指定可能であり、
前記前処理手段は、前記指定手段によって指定された前記複数の基準デバイスのデバイス値の信号変化に従って前記特徴量データの時系列データの前記監視対象区間を切り出すことを特徴とする請求項2に記載のプログラマブルロジックコントローラ。 - 前記前処理手段は、さらに、前記監視対象区間とは異なる区間をマスク区間として監視から除外することを特徴とする請求項2又は3に記載のプログラマブルロジックコントローラ。
- 前記設定インターフェースは
前記実行エンジン及び前記収集手段の処理に関する基本設定と、前記カメラ入力インターフェース、前記画像処理手段、及び前記監視手段に関する監視設定とを、ユーザ入力に従って設定する第1設定手段と、
前記監視設定を、ユーザ入力に従って設定する第2設定手段と
を備えることを特徴とする請求項2乃至4の何れか1項に記載のプログラマブルロジックコントローラ。 - 前記第2設定手段は、前記プログラマブルロジックコントローラの拡張ユニットに通信可能に接続されたWebサーバを介して入力されたユーザ入力に従って設定を行い、受け付けた設定内容を一時メモリに一時的に格納することを特徴とする請求項5に記載のプログラマブルロジックコントローラ。
- 前記一時メモリは、前記プログラマブルロジックコントローラ又は前記Webサーバに設けられることを特徴とする請求項6に記載のプログラマブルロジックコントローラ。
- 前記第2設定手段は、前記監視手段による監視中であるか否かに関わらず設定可能であり、設定内容について確定の指示を受け付けると、その後の監視に関する処理において、前記一時メモリに格納した設定内容を反映することを特徴とする請求項6又は7に記載のプログラマブルロジックコントローラ。
- 前記第1設定手段及び前記第2設定手段は、ユーザ入力を受け付け可能な設定画面を介して、前記監視設定として、前記カメラセンサによって撮影されるカメラ画像の画像データに関する設定を行うことを特徴とする請求項5乃至8の何れか1項に記載のプログラマブルロジックコントローラ。
- 前記第1設定手段及び前記第2設定手段は、ユーザ入力を受け付け可能な設定画面を介して、前記前処理手段によって切り出す前記特徴量データの監視対象区間について、1以上の基準デバイスと、その信号の切り出し基準とに関する設定を行うことを特徴とする請求項5乃至8の何れか1項に記載のプログラマブルロジックコントローラ。
- 前記監視手段による監視状態を確認するための確認画面を生成して出力する出力手段をさらに備え、
前記確認画面から前記設定画面へ遷移可能であることを特徴とする請求項9又は10に記載のプログラマブルロジックコントローラ。 - 前記確認画面及び前記設定画面では、前記カメラセンサによって撮像されたカメラ画像のモニタ映像が含まれることを特徴とする請求項11に記載のプログラマブルロジックコントローラ。
- 前記モニタ映像では前記監視手段によって監視しているカメラ画像の監視領域が識別可能に表示されることを特徴とする請求項12に記載のプログラマブルロジックコントローラ。
- 前記設定画面において表示される前記モニタ映像の監視領域はユーザ入力よって変更可能であることを特徴とする請求項13に記載のプログラマブルロジックコントローラ。
- 各デバイスのデバイス値の時系列データ及び前記特徴量データの時系列データの周期性に基づいて、各デバイスを複数の類型のいずれかにそれぞれ分類する分類手段と、
前記分類手段により分類された類型に従って、異常を特定する際の検知アルゴリズム及びパラメータを決定する決定手段と、をさらに備え、
前記監視手段は、
前記カメラセンサを含む監視対象デバイスのそれぞれの時系列データの類型に従った検知アルゴリズム及びパラメータを前記所定の監視条件として用いて、異常を特定することを特徴とする請求項1乃至14の何れか1項に記載のプログラマブルロジックコントローラ。 - 前記類型は、一定の値をとる類型と、前記プログラマブルロジックコントローラの動作サイクルに同期して値が定常的なパターンで変化する類型と、前記動作サイクルとは異なる周期に同期して値が定常的なパターンで変化するデバイスと、不定期で値が変化する類型と、アナログ値の類型と、値が単調増加又は単調減少する類型とのうち、少なくとも2つの類型を含むことを特徴とする請求項15に記載のプログラマブルロジックコントローラ。
- 前記監視手段は、さらに、時系列データの類型ごとに、正常時のデータ及び異常時のデータを教師データとして学習した学習済みモデルを用いて異常を特定することを特徴とする請求項15又は16に記載のプログラマブルロジックコントローラ。
- 前記学習済みモデルは、前記収集手段によって収集された時系列データを用いて学習が行われることを特徴とする請求項17に記載のプログラマブルロジックコントローラ。
- 前記実行エンジン、前記デバイスメモリ、及び前記収集手段は前記プログラマブルロジックコントローラの基本ユニットに設けられ、
前記カメラ入力インターフェース及び前記画像処理手段は、前記カメラセンサが接続された第1拡張ユニットに設けられ、
前記監視手段は、前記第1拡張ユニットとは異なる第2拡張ユニットに設けられ、
各ユニットは内部バスを通じて相互に信号を送受信することを特徴とする請求項1乃至18の何れか1項に記載のプログラマブルロジックコントローラ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020090774A JP2021189482A (ja) | 2020-05-25 | 2020-05-25 | プログラマブルロジックコントローラ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020090774A JP2021189482A (ja) | 2020-05-25 | 2020-05-25 | プログラマブルロジックコントローラ |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2021189482A true JP2021189482A (ja) | 2021-12-13 |
Family
ID=78849486
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020090774A Pending JP2021189482A (ja) | 2020-05-25 | 2020-05-25 | プログラマブルロジックコントローラ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2021189482A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7375977B1 (ja) | 2023-05-08 | 2023-11-08 | 富士電機株式会社 | プログラマブルロジックコントローラ、支援装置、及び表示装置、並びに、ロギング方法、支援方法、及び表示方法 |
-
2020
- 2020-05-25 JP JP2020090774A patent/JP2021189482A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7375977B1 (ja) | 2023-05-08 | 2023-11-08 | 富士電機株式会社 | プログラマブルロジックコントローラ、支援装置、及び表示装置、並びに、ロギング方法、支援方法、及び表示方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7406451B2 (ja) | プログラマブルロジックコントローラ | |
US20220292944A9 (en) | Fire monitoring system | |
US20220086399A1 (en) | Machine-vision system and method for remote quality inspection of a product | |
US20210081823A1 (en) | Well site machine learning based analytics | |
US20210240154A1 (en) | Programmable logic controller and analyzer | |
JP7192243B2 (ja) | 解析支援装置及び解析支援方法 | |
JP2019160001A (ja) | 画像処理装置、画像処理方法およびプログラム | |
KR20220023726A (ko) | 딥 러닝 기반 실시간 공정 감시 시스템 및 그 방법 | |
WO2014155639A1 (ja) | 映像監視システムおよび画像検索システム | |
JP2021189482A (ja) | プログラマブルロジックコントローラ | |
KR20070036123A (ko) | 자동 시각 이벤트 검출 방법 및 장치 | |
JP2020160804A (ja) | 情報処理装置、プログラム及び情報処理方法 | |
JP6715282B2 (ja) | 品質監視システム | |
JP2009239507A (ja) | 監視システム | |
US10878555B2 (en) | Image processing system, image processing device, and non-transitory computer readable recording medium | |
JP2020021451A (ja) | 設備稼働率算出システムおよび設備稼働率算出プログラム | |
JP2020087036A (ja) | 監視装置、監視システム、監視方法、及びプログラム | |
US20190220984A1 (en) | Image processing device, image processing system, image processing method, and program storage medium | |
JP7139987B2 (ja) | 工程情報取得システム、工程情報取得方法、および工程情報取得プログラム | |
JP2021125218A (ja) | プログラマブルロジックコントローラ、及び分析装置 | |
JP6362532B2 (ja) | プラント監視装置 | |
EP2528019A1 (en) | Apparatus and method for detecting objects in moving images | |
US20240112355A1 (en) | Trajectory analysis device, trajectory analysis method, and computer program | |
US20230229137A1 (en) | Analysis device, analysis method and non-transitory computer-readable storage medium | |
KR20230146270A (ko) | Rpa를 활용한 장비 및 시설 데이터 수집 시스템 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20210113 |