IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社キーエンスの特許一覧

特開2022-158225分析装置、その制御方法、および分析システム
<>
  • 特開-分析装置、その制御方法、および分析システム 図1
  • 特開-分析装置、その制御方法、および分析システム 図2
  • 特開-分析装置、その制御方法、および分析システム 図3
  • 特開-分析装置、その制御方法、および分析システム 図4
  • 特開-分析装置、その制御方法、および分析システム 図5
  • 特開-分析装置、その制御方法、および分析システム 図6
  • 特開-分析装置、その制御方法、および分析システム 図7
  • 特開-分析装置、その制御方法、および分析システム 図8
  • 特開-分析装置、その制御方法、および分析システム 図9
  • 特開-分析装置、その制御方法、および分析システム 図10
  • 特開-分析装置、その制御方法、および分析システム 図11
  • 特開-分析装置、その制御方法、および分析システム 図12
  • 特開-分析装置、その制御方法、および分析システム 図13
  • 特開-分析装置、その制御方法、および分析システム 図14
  • 特開-分析装置、その制御方法、および分析システム 図15
  • 特開-分析装置、その制御方法、および分析システム 図16
  • 特開-分析装置、その制御方法、および分析システム 図17
  • 特開-分析装置、その制御方法、および分析システム 図18
  • 特開-分析装置、その制御方法、および分析システム 図19
  • 特開-分析装置、その制御方法、および分析システム 図20
  • 特開-分析装置、その制御方法、および分析システム 図21
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022158225
(43)【公開日】2022-10-17
(54)【発明の名称】分析装置、その制御方法、および分析システム
(51)【国際特許分類】
   G05B 23/02 20060101AFI20221006BHJP
【FI】
G05B23/02 T
【審査請求】未請求
【請求項の数】20
【出願形態】OL
(21)【出願番号】P 2021062981
(22)【出願日】2021-04-01
(71)【出願人】
【識別番号】000129253
【氏名又は名称】株式会社キーエンス
(74)【代理人】
【識別番号】110003281
【氏名又は名称】特許業務法人大塚国際特許事務所
(72)【発明者】
【氏名】深津 元
(72)【発明者】
【氏名】宮坂 哲也
【テーマコード(参考)】
3C223
【Fターム(参考)】
3C223AA01
3C223BA03
3C223BB08
3C223CC02
3C223CC03
3C223DD03
3C223FF09
3C223FF13
3C223FF16
3C223FF17
3C223FF35
3C223GG01
3C223HH04
3C223HH06
3C223HH08
3C223HH15
(57)【要約】
【課題】本発明は、基本ユニットが保持するデバイスや変数以外の情報を利活用して、膨大なデータから効率よく分析を行うことを目的とする。また、他の目的として、膨大なデータの分析結果から重要なデータを抽出してレポートすることを目的とする。
【解決手段】分析装置であって、プログラマブルロジックコントローラに関わる情報のうちシンボル値と異なるPLC情報を解析して決定されたデバイスについての属性情報を記憶する記憶手段と、ユーザプログラムを繰り返し実行する実行エンジンと、前記ユーザプログラムの実行によって収集される、時系列の複数のシンボル値を含む運転記録データを取得する取得手段と、前記記憶手段に記憶されたPLC情報に基づいて、取得された前記運転記録データについて正常条件を満たさない非正常シンボルを分析した分析レポートを出力する処理手段とを備える。
【選択図】図12
【特許請求の範囲】
【請求項1】
分析装置であって、
プログラマブルロジックコントローラに関わる情報のうちシンボル値と異なるPLC情報を記憶する記憶手段と、
ユーザプログラムを繰り返し実行する実行エンジンと、
前記ユーザプログラムの実行によって収集される、時系列の複数のシンボル値を含む運転記録データを取得する取得手段と、
前記記憶手段に記憶されたPLC情報に基づいて、取得された前記運転記録データについて正常条件を満たさない非正常シンボルを分析した分析レポートを出力する処理手段と
を備えることを特徴とする分析装置。
【請求項2】
前記処理手段は、前記複数のシンボル値のうち、前記記憶手段に記憶されたPLC情報に関連するシンボル値を分析して前記分析レポートを出力することを特徴とする請求項1に記載の分析装置。
【請求項3】
前記処理手段は、前記複数のシンボル値を分析し、前記複数のシンボル値の分析結果のうち、前記記憶手段に記憶されたPLC情報に関連するシンボル値の分析結果を前記分析レポートとして出力することを特徴とする請求項1に記載の分析装置。
【請求項4】
前記PLC情報を解析して所定の属性に対応するシンボルを決定する解析手段をさらに備えることを特徴とする請求項1乃至3の何れか1項に記載の分析装置。
【請求項5】
前記PLC情報は、前記プログラマブルロジックコントローラに含まれるユニットの構成情報を含み、
前記解析手段は、前記ユニットの構成情報を解析してシンボルに対応するユニットの属性を決定することを特徴とする請求項4に記載の分析装置。
【請求項6】
前記PLC情報は、前記プログラマブルロジックコントローラに含まれるユニットと通信機器との間の通信の接続情報および通信設定情報を含み、
前記解析手段は、前記接続情報および前記通信設定情報を解析して、シンボルに対応する通信相手の属性を決定することを特徴とする請求項4又は5に記載の分析装置。
【請求項7】
前記PLC情報は、前記ユーザプログラムを含み、
前記解析手段は、前記ユーザプログラムを解析して、シンボルに対応する前記ユーザプログラムに関する属性を決定することを特徴とする請求項4に記載の分析装置。
【請求項8】
前記ユーザプログラムに関する属性は、ユーザプログラムで使用したシンボルの使用回数、コメントが付加されたシンボルの情報、シンボルの入力接点に関する情報、およびシンボル値の型情報の少なくとも1つを含むことを特徴とする請求項7に記載の分析装置。
【請求項9】
前記分析レポートを示す結果表示画面を出力する出力手段をさらに備え、
前記結果表示画面には、前記分析レポートの表示項目を絞るための条件を指定可能なフィルタ設定領域が含まれることを特徴とする請求項1乃至8の何れか1項に記載の分析装置。
【請求項10】
前記フィルタ設定領域では、シンボルの動作サイクルの指定、属性情報の指定、および、イベント、エラーの指定の少なくとも1つによってフィルタが指定可能であることを特徴とする請求項9に記載の分析装置。
【請求項11】
前記出力手段からの出力された前記結果表示画面の画面情報を外部装置へ送信手段をさらに備え、
前記外部装置では、前記結果表示画面が操作可能に表示部に表示されることを特徴とする請求項9又は10に記載の分析装置。
【請求項12】
前記結果表示画面には、検知された非正常シンボルのサイクルおよび異常が検知されたタイミングを示す検知マップと、検知された非正常シンボルの工程および発生時刻を示す検知リストと、カメラ映像と、いつもと異なる状態が検知された原因を示す分析コメントとの少なくとも1つが含まれることを特徴とする請求項9乃至11の何れか1項に記載の分析装置。
【請求項13】
前記検知マップ、前記検知リスト、前記カメラ映像、および前記分析コメントは、互いに時間軸を連動して操作可能であることを特徴とする請求項12に記載の分析装置。
【請求項14】
前記解析手段によって解析されたシンボルごとの前記所定の属性と、前記運転記録データとを用いて、正常時の運転記録データを示すマスタデータとして学習モデルを生成するモデル生成手段をさらに備え、
前記処理手段は、前記モデル生成手段によって生成された前記学習モデルと、前記運転記録データとを比較して、いつもと異なる状態であるシンボルを検知することにより分析を行うことを特徴とする請求項4乃至8の何れか1項に記載の分析装置。
【請求項15】
前記処理手段は、前記モデル生成手段によって前記学習モデルが生成されていない場合には、前記取得手段によって取得した運転記録データの一部を用いて前記モデル生成手段によって前記学習モデルを生成させ、生成された前記学習モデルを用いて前記運転記録データの一部以外のデータを分析することを特徴とする請求項14に記載の分析装置。
【請求項16】
前記モデル生成手段は、生成した前記学習モデルの正常データを分析した際の誤検知の数を測定して、測定した誤検知の数に応じた前記学習モデルの信頼度を前記学習モデルに付加することを特徴とする請求項14又は15に記載の分析装置。
【請求項17】
サーバ装置とプログラマブルロジックコントローラとが通信可能な分析システムであって、
前記プログラマブルロジックコントローラに関わる情報のうちシンボル値と異なるPLC情報を記憶する記憶手段と、
ユーザプログラムを繰り返し実行する実行エンジンと、
前記ユーザプログラムの実行によって収集される、時系列の複数のシンボル値を含む運転記録データを取得する取得手段と、
前記記憶手段に記憶された属性情報に基づいて、取得された前記運転記録データについて正常条件を満たさない非正常シンボルを分析した分析レポートを出力する処理手段と
を備えることを特徴とする分析システム。
【請求項18】
前記記憶手段、前記取得手段、および前記処理手段の少なくとも1つは前記サーバ装置に設けられることを特徴とする請求項17に記載の分析システム。
【請求項19】
前記プログラマブルロジックコントローラは、
前記実行エンジンを備えるCPUユニットと、
前記記憶手段および前記取得手段を実現する前記プログラマブルロジックコントローラに設けられるレコーダユニットと
を備え、
前記サーバ装置は、
前記処理手段を備えることを特徴とする請求項18に記載の分析システム。
【請求項20】
分析装置の制御方法であって、
プログラマブルロジックコントローラに関わる情報のうちシンボル値と異なるPLC情報を記憶する記憶工程と、
ユーザプログラムを繰り返し実行する工程と、
前記ユーザプログラムの実行によって収集される、時系列の複数のシンボル値を含む運転記録データを取得する取得工程と、
前記記憶工程で記憶された属性情報に基づいて、取得された前記運転記録データについて正常条件を満たさない非正常シンボルを分析した分析レポートを出力する処理工程と
を含むことを特徴とする分析装置の制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は分析装置、その制御方法、および分析システムに関する。
【背景技術】
【0002】
プログラマブル・ロジック・コントローラ(PLC)はファクトリーオートメーションにおいて製造機器や搬送装置、検査装置などの産業機械を制御するコントローラである(特許文献1、2)。PLCはプログラマーによって作成されるラダープログラムなどのユーザプログラムを実行することで様々な拡張ユニットや被制御機器などを制御する。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特許第5661222号公報
【特許文献2】特開2018-097662号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、PLCの動作やPLCによって制御される産業機械の動作を監視するために、PLCが保持しているデータを収集して活用することが望まれている。PLCは、基本ユニット(CPUユニット)とそれに接続される拡張ユニットとを有している。基本ユニットは、ラダープログラムなどのユーザプログラムを実行することで拡張ユニットを制御する。拡張ユニットは基本ユニットからの命令にしたがって産業機械を制御し、制御結果を基本ユニットに返す。
【0005】
また、これらの制御結果等のデータはトラブル解析や品質管理のために使用される。従って、これらのデータを蓄積して分析し、復旧のために早期に解析結果を得ることが要求されている。しかし、PLCに関連する全てのデバイスのデータを記録する場合は膨大なデータを記憶することになり、さらに異常デバイスを特定するためにはこれらの膨大なデータ(全デバイス)を解析する必要があるため時間を要する作業となる。また、膨大な分析結果から異常デバイスを特定したり、システムを復旧させるためには、経験や知識も必要となる。従って、十分な専門的な知識や経験を必要とすることなく、各デバイスに関連する膨大なデータの中から効率よく分析を行い、分析結果を表示する仕組みが望まれている。
【0006】
そこで、本発明は上記問題に鑑み、基本ユニットが保持するデバイスや変数以外の情報を利活用して、膨大なデータから効率よく分析を行うことを目的とする。また、他の目的として、膨大なデータの分析結果から重要なデータを抽出してレポートすることを目的とする。
【課題を解決するための手段】
【0007】
本発明は、たとえば、分析装置であって、プログラマブルロジックコントローラに関わる情報のうちシンボル値と異なるPLC情報を記憶する記憶手段と、ユーザプログラムを繰り返し実行する実行エンジンと、前記ユーザプログラムの実行によって収集される、時系列の複数のシンボル値を含む運転記録データを取得する取得手段と、前記記憶手段に記憶されたPLC情報に基づいて、取得された前記運転記録データについて正常条件を満たさない非正常シンボルを分析した分析レポートを出力する処理手段とを備えることを特徴とする。
【発明の効果】
【0008】
本発明によれば、いつもと違う挙動をしたデバイスの情報がユーザに提供される。
【図面の簡単な説明】
【0009】
図1】PLCシステムを説明する図
図2】PC2aのハードウエアを説明する図
図3】PC2bのハードウエアを説明する図
図4】PLCのハードウエアを説明する図
図5】PCのCPUにより実現される機能を説明する図
図6】PLCのCPUにより実現される機能を説明する図
図7】PLCに関する情報を説明する図
図8】PLCに関する情報を説明する図
図9】PLCに関する情報を説明する図
図10】基本フローを示すフローチャート
図11】モデル生成フローを示すフローチャート
図12】分析フローを示すフローチャート
図13】分析結果の表示フローを示すフローチャート
図14】結果表示画面を説明する図
図15】リレーションマップを説明する図
図16】モデル生成フローの変形例を示すフローチャート
図17】サイクルパターンの判別制御を説明する図
図18】未学習時の分析制御を示す図
図19】サイクル未設定の場合の警告を説明する図
図20】モデル信頼度を説明する図
図21】PLCシステムの変形例を説明する図
【発明を実施するための形態】
【0010】
以下、添付図面を参照して実施形態が詳しく説明される。尚、以下の実施形態は特許請求の範囲に係る発明を限定するものではなく、また実施形態で説明されている特徴の組み合わせの全てが発明に必須のものとは限らない。実施形態で説明されている複数の特徴のうち二つ以上の特徴が任意に組み合わされてもよい。また、同一または同様の構成には同一の参照番号が付され、重複した説明は省略される。複数の構成を区別するために参照符号の末尾に小文字のアルファベットが付与されることがある。複数の構成に共通する事項が説明される際には小文字のアルファベットが省略されることがある。
【0011】
<システム構成>
はじめにプログラマブルロジックコントローラ(PLC、単にプログラマブルコントローラと呼ばれてもよい)を当業者にとってよりよく理解できるようにするために、一般的なPLCの構成とその動作について説明する。
【0012】
図1は本発明の実施の形態によるPLCシステムの一構成例を示す概念図である。図1が示すように、PLCシステムは、ラダープログラムなどのユーザプログラムを編集するPC2aと、分析結果等を表示するPC2bと、工場等に設置される各種の産業機械を統括的に制御するPLC1と、PLC1に接続されるカメラ等のフィールドデバイス10とを備えている。PCはパーソナルコンピュータの略称である。なお、以下で単にPC2と記載した場合は、PC2aおよびPC2bの構成や制御について説明しているものである。ユーザプログラムは、ラダー言語やSFC(シーケンシャルファンクションチャート)などのフローチャート形式のモーションプログラムなどのグラフィカルプログラミング言語を用いて作成されてもよいし、C言語などの高級プログラミング言語を用いて作成されてもよい。以下では、説明の便宜上、基本ユニット3で実行されるユーザプログラムはラダープログラムと仮定される。PLC1は、CPUが内蔵された基本ユニット3と、1つないし複数の拡張ユニット4を備えている。基本ユニット3に対して1つないし複数の拡張ユニット4が着脱可能となっている。
【0013】
基本ユニット3は、表示部5および操作部6を備えている。表示部5は、基本ユニット3に取り付けられている各拡張ユニット4の動作状況などを表示することができる。操作部6の操作内容に応じて表示部5は表示内容を切り替える。表示部5は、通常、PLC1内のデバイスの現在値(デバイス値)やPLC1内で生じたエラー情報などを表示する。ここでデバイスとは、基本ユニット3や拡張ユニット4に含まれる種々のデバイス(リレー、タイマー、カウンタなど)を含むものであり、デバイス値(デバイスデータ)を格納するために設けられたメモリ上の領域を指すものでもあり、デバイスメモリと呼ばれてもよい。なお、当該デバイスメモリは不揮発性メモリであり、書き換え可能な不揮発性ROMで構成されてもよく、揮発性RAM等をバッテリーバックアップ等により不揮発性を実現してもよい。ROMはリードオンリーメモリの略称である。RAMはランダムアクセスメモリの略称である。デバイス値とは、入力機器からの入力状態、出力機器への出力状態およびユーザプログラム上で設定される内部リレー(補助リレー)、タイマー、カウンタ、データメモリ等の状態を示す情報である。デバイス値の型にはビット型とワード型等がある。ビットデバイスは1ビットのデバイス値、たとえば、0/1、ON/OFF、H/L等を記憶する。ワードデバイスは1ワードのデバイス値を記憶する。以下で詳細に説明されるデータ活用プログラムの収集対象としては、デバイスとして変数が指定されてもよい。変数も情報を保持する保持手段であり、ユーザプログラムに従って実行エンジンによりアクセスされるものである。したがって、以下の説明においてデバイスは変数も指すものである。なお、デバイスを保持するメモリはデバイスメモリと呼ばれてもよい。また、収集されたデータを保持するメモリはデータメモリと呼ばれてもよい。PLC1は、デバイスの他、変数を取り扱うよう構成されてもよく、デバイスや変数のことをシンボルと呼び、シンボルが示す値をシンボル値と呼ぶ。
【0014】
拡張ユニット4はPLC1の機能を拡張するために用意されている。拡張ユニット4には、その拡張ユニット4の機能に対応するフィールドデバイス(被制御装置)10が接続されることがあり、これにより、各フィールドデバイス10が拡張ユニット4を介して基本ユニット3に接続される。フィールドデバイス10は、センサやカメラなどの入力機器であってもよいし、アクチュエータなどの出力機器であってもよい。また、一つの拡張ユニット4に対して複数のフィールドデバイスが接続されてもよい。
【0015】
たとえば、拡張ユニット4bはモータ(フィールドデバイス10)を駆動してワークの位置決めする位置決めユニットであってもよいし、カウンタユニットであってもよい。カウンタユニットは手動パルサなどのエンコーダ(フィールドデバイス10)からの信号をカウントする。
【0016】
分析ユニット4aは、基本ユニット3においてシンボル(デバイス、変数など)からシンボル値を収集し、シンボル値を分析して分析結果を含む分析レポートを作成する。分析ユニット4aは、分析レポートを外部のPC2bへ提供するWebサーバを有していてもよい。基本ユニット3はCPUユニットと呼ばれることもある。PLC1とPC2とを含むシステムはプログラマブルロジックコントローラシステムと呼ばれてもよい。本実施形態では、分析ユニット4aが各デバイスのデータを収集する例について説明するが、当該収集部については基本ユニット3に設けられてもよく、或いは、他の拡張ユニットに設けられてもよい。また、分析ユニット4aは、収集したデータを基本ユニット3からの指示や所定のタイミングに従って分析を行う分析装置として機能することも可能である。なお、本実施形態では、分析ユニット4aが分析装置として動作する例について説明するが、本発明を限定する意図はなく、基本ユニット3が分析装置として機能してもよく、PC2a、2bなどの外部装置が分析装置として機能してもよい。以下で説明されるフロー(フロープログラム)はデータ活用プログラムの一例に過ぎない。基本ユニット3はCPUユニットと呼ばれることもある。なお、PLC1とPC2とを含むシステムはプログラマブルロジックコントローラシステムと呼ばれてもよい。
【0017】
PC2aは主にプログラマーによって操作されるコンピュータである。一方、PC2bは主に現場担当者によって操作されるコンピュータである。PC2aはプログラム作成支援装置(設定装置)と呼ばれてもよい。PC2bは、ユーザにより画面設定されるプログラマブル表示器であってもよい。この場合、分析結果等を表示する画面はユーザにより画面設定されてもよく、あらかじめWebブラウザ機能が搭載され、Webブラウザ機能により分析結果等が表示されてもよい。PC2は、たとえば、携帯可能なノートタイプやタブレットタイプのパーソナルコンピュータ又はスマートフォンであって、表示部7および操作部8を備えている外部コンピュータである。外部コンピュータとは、PLC1の外部にあるコンピュータである。PLC1を制御するためのユーザプログラムの一例であるラダープログラムは、PC2aを用いて作成される。その作成されたラダープログラムは、PC2a内でニモニックコードに変換される。PC2は、USB(Universal Serial Bus)ケーブルなどの通信ケーブル9を介してPLC1の基本ユニット3に接続される。たとえば、PC2aは、ニモニックコードに変換されたラダープログラムを基本ユニット3に送る。基本ユニット3はラダープログラムをマシンコードに変換し、基本ユニット3に備えられたメモリ内に記憶する。なお、ここではニモニックコードが基本ユニット3に送信されているが、本発明はこれに限られない。たとえば、PC2aは、ニモニックコードを中間コードに変換し、中間コードを基本ユニット3に送信してもよい。
【0018】
なお、図1には示していないが、PC2の操作部8には、PC2に接続されたマウスなどのポインティングデバイスが含まれていてもよい。また、PC2は、USBケーブル以外の他の通信ケーブル9を介して、PLC1の基本ユニット3に対して着脱可能に接続されるような構成であってもよい。また、PC2は、通信ケーブル9を介さず、PLC1の基本ユニット3に対して無線通信によって接続されてもよい。
【0019】
<プログラム作成支援装置>
図2はPC2aの電気的構成について説明するためのブロック図である。図2が示すように、PC2aは、CPU11a、表示部7a、操作部8a、記憶装置12aおよび通信部13aを備えている。表示部7a、操作部8a、記憶装置12aおよび通信部13aは、それぞれCPU11aに対して電気的に接続されている。記憶装置12aはRAMやROM、HDD、SSDを含み、さらに着脱可能なメモリカードを含んでもよい。CPUは中央演算処理装置の略称である。HDDはハードディスクドライブの略称である。SSDはソリッドステートドライブの略称である。
【0020】
PC2aのユーザは記憶装置12aに記憶されているプロジェクト編集プログラム14aをCPU11aに実行させて、操作部8aを通じてプロジェクトデータ15を編集する。つまり、PC2aはエンジニアリングツールであり、プログラム作成支援装置として機能する。CPU11aがプロジェクト編集プログラム14aを実行することで、プロジェクト作成部16とプロジェクト転送部17が実現される。プロジェクト作成部16はユーザ入力にしたがってプロジェクトデータ15を作成する。プロジェクト転送部17はプロジェクトデータ15をPLC1に転送する。プロジェクトデータ15は、一つ以上のユーザプログラム(例:ラダープログラム、制御プログラム、モーションプログラム、データ活用プログラム)と、基本ユニット3や拡張ユニット4の構成情報、WebHMIの作画データ、基本ユニット3や拡張ユニット4に備えられた特定機能の設定情報などを含む。構成情報は、基本ユニット3に対する複数の拡張ユニット4の接続位置やデバイスの割り当て情報を含む。基本ユニット3に備えられた機能(例:データ収集機能、通信機能、位置決め機能)を示す情報、拡張ユニット4の機能(例:通信機能、位置決め機能、撮影機能)などを示す情報を含んでいてもよい。作画データは、WebHMIを実現するための表示部品群であり、フロントエンドの構造を記述するマークアップデータ、たとえばHTMLデータ、装飾を記述するスタイルデータ、たとえばCSSデータおよび動的な処理を記述するコード、たとえばJavaScript(登録商標)コードなどにより実現される。装飾を記述するスタイルデータは、たとえばファイル形式として提供されてもよく、構造を記述するマークアップデータ内で外部スタイルデータファイルを呼び出す記述により呼び出されてもよい。動的処理を記述するコードは、たとえばファイル形式で提供されてもよく、構造を記述するマークアップデータ内で外部コードファイルを呼び出す記述により呼び出されてもよい。外部スタイルデータファイルや外部コードファイルを呼び出して使用できる形式のフロントエンドは、再利用性やメンテナンス性が高く、たとえば汎用のフロントエンドコンポーネント等を利用することができる。以下で、作画データは、表示部品と表記される。データ活用プログラムは、PLC1において制御データ(デバイス値など)を収集したり、データ処理したり、WebHMIに渡すためのデータを作成したりするためのプログラムを含む。特定機能の設定情報は、基本ユニット3に備えられた機能(例:データ収集機能、通信機能、位置決め機能)に関する設定情報、たとえば、データ収集機能であれば、データ収集条件やデータ収集対象の設定情報を含み、拡張ユニット4の機能(例:通信機能、位置決め機能、データ活用機能、撮影機能)に関する設定情報等を含む。ここで、プロジェクトデータ15の編集には、プロジェクトデータ15の作成および変更(再編集)が含まれる。ユーザは、必要に応じて記憶装置12aに記憶されているプロジェクトデータ15を読み出し、そのプロジェクトデータ15を、プロジェクト編集プログラム14aを用いて変更することができる。通信部13aは、通信ケーブル9aを介して基本ユニット3と通信する。プロジェクト転送部17は通信部13aを介してプロジェクトデータを基本ユニット3に転送する。通信部13aは、通信ケーブル9bを介して分析ユニット4aと通信する。
【0021】
<ダッシュボードの表示に使用されるPC>
図3はPC2bの電気的構成について説明するためのブロック図である。図3が示すように、PC2bは、CPU11b、表示部7b、操作部8b、記憶装置12bおよび通信部13bを備えている。表示部7b、操作部8b、記憶装置12bおよび通信部13bは、それぞれCPU11bに対して電気的に接続されている。記憶装置12bはRAMやROM、HDD、SSDを含み、さらに着脱可能なメモリカードを含んでもよい。
【0022】
CPU11bはWebブラウザプログラム14dを実行することでWebブラウザ18を実現する。Webブラウザ18は、通信部13bを介して、分析ユニット4aによって提供されるデータ活用アプリケーションの設定ページにアクセスしたり、ダッシュボードのページにアクセスしたりする。またCPU11bは、分析ユニット4aから送信された異常発生時の特定結果(判定結果)を示す画面情報に従って、当該特定結果を表示部7bに表示する。
【0023】
<PLC>
図4はPLC1の電気的構成について説明するためのブロック図である。図4が示すように、基本ユニット3は、CPU31、表示部5、操作部6、記憶装置32および通信部33を備えている。表示部5、操作部6、記憶装置32、および通信部33は、それぞれCPU31に電気的に接続されている。記憶装置32は、RAMやROM、メモリカードなどを含んでもよい。記憶装置32はデバイス部34やプロジェクト記憶部35、リングバッファ36、運転記録記憶部37などの複数の記憶領域を有している。
【0024】
ここで運転記録とはPLC1の運転状態をスキャンタイムレベルで記録したもので、たとえばPLC1の運転に関わる全てのシンボルのシンボル値と収集時刻とを、一スキャン毎に時系列に記録したものである。運転に関わる全てのシンボルとは、たとえばラダープログラム等のユーザプログラムに使用される全てのシンボルであってもよく、ユーザにより選択されるプログラム単位やユニット単位に含まれる全てのシンボルであってもよい。この場合、運転記録の対象となるシンボルをプログラム単位やユニット単位のように有意な単位で一括選択でき、さらに個別にシンボルを加除できるようにしてもよい。これにより、たとえば、トラブル発生時に、トラブル発生時刻の前後においてPLC1の運転に関わる全てのシンボルのシンボル値と収集時刻とを、一スキャン毎に時系列に記録した運転記録を生成し、運転記録に基づきトラブル発生時に何が起きたかを後からでも正確に把握することができる。運転記録には、その時の状況を再現するために多くの情報が含まれるが、情報が多いと運転記録のデータ容量が大きくなり取り回しが難しくなったり、運転記録の収集に負荷がかかったりするため、収集対象となるユーザによりプログラム単位やユニット単位で選択できるようになっている。
【0025】
また、運転記録には、シンボルに加え時系列のカメラ画像が撮像時刻ともに含まれていてもよい。これにより、たとえば、トラブル発生時に、トラブル発生時刻の前後に遡って何が起きたかを後からでも正確に把握でき、設備の外観変化を示すカメラ画像も運転記録に含めることでユーザプログラムの時系列と連動してカメラ画像を記録することができる。HMI(ヒューマンマシンインタフェース)やPCなどの外部機器からの書き込み履歴やPLCからの書き込み履歴を変化点イベントとして運転記録に含めてもよい。これにより、たとえば、トラブル発生前後にどのような変化点イベントがあったかを時系列で確認できる。
【0026】
デバイス部34はビットデバイスやワードデバイスなどを有し、各デバイスはデバイス値を記憶する。プロジェクト記憶部35は、PC2aから転送されたプロジェクトデータを記憶する。リングバッファ36は、定期的にデバイス部34からデバイス値を収集して記憶する。運転記録記憶部37は、所定のイベントが発生すると、発生時刻の周辺(発生時刻以前、発生時刻以後、または、発生時刻の前後)に収集されたデバイス値とその収集時刻とを含むイベント記録を記憶する。イベントとは、たとえば、デバイスごとに設定された警報条件または注意条件が満たされたことをいう。警報条件とは、たとえば、PLC1による製造ラインの制御動作を停止すべきような条件をいう。注意条件は、たとえば、PLC1による製造ラインの制御動作について管理者が注意すべきようなデバイス値の条件をいう。CPU31は、PC2aからの要求に応答してイベント記録をPC2aへ送信する。また、CPU31は、リアルタイムでデバイス値をPC2aに提供してもよい。記憶装置32は基本ユニット3のCPU31により実行される制御プログラムも記憶する。図3が示すように基本ユニット3と拡張ユニット4とは拡張バスの一種であるユニット内部バス90を介して接続されている。なお、ユニット内部バス90に関する通信機能はCPU31に実装されるが、通信部33の一部として実装されてもよい。通信部33は、USB規格などに準拠したシリアル通信回路を有してもよい。CPU31は通信部33を介してプロジェクトデータをPC2aから受信する。
【0027】
ここで、ユニット内部バス90について、補足説明する。このユニット内部バス90は、入出力リフレッシュに使用される通信バスである。入出力リフレッシュとは、基本ユニット3と拡張ユニット4との間でデバイス値を更新する処理である。入出力リフレッシュは、ラダープログラムが一回実行されるごとに(つまり、一スキャンごとに)、実行される。
【0028】
拡張ユニット4はCPU41とメモリ42を備えている。拡張ユニット4bのCPU41bは、デバイスに格納された基本ユニット3からの指示(デバイス値)にしたがってフィールドデバイス10を制御する。なお、本実施形態において拡張ユニット4bは、カメラ制御ユニットとして機能する。また、CPU41bは、カメラ等のフィールドデバイス10の制御結果をバッファメモリとよばれるデバイスに格納する。デバイスに格納された制御結果は入出力リフレッシュによって基本ユニット3に転送される。また、デバイスに格納されている制御結果は、基本ユニット3からの読み出し命令にしたがって、入出力リフレッシュとは異なるタイミングであっても、基本ユニット3に転送されることがある。メモリ42はRAMやROMなどを含む。とりわけ、RAMにはバッファメモリとして使用される記憶領域が確保されている。メモリ42は、フィールドデバイス10によって取得されたデータ(例:静止画データや動画データ)を一時的に保持するバッファを有してもよい。
【0029】
データ活用ユニット(分析ユニット)として機能する分析ユニット4aのCPU41aは、通信部43と通信ケーブル9bを介してPC2bと通信する。通信部43は、ネットワーク通信を実行する通信回路を含む。CPU41aは、基本ユニット3において収集されたデバイス値を分析することで、分析結果を含む分析レポートを作成する。たとえば、CPU41aは、データ活用アプリケーションとして運転記録分析アプリケーションを実行することにより、運転記録データに含まれるシンボル値を分析することで、非正常シンボルと当該シンボルが非正常となる時刻とを特定し、非正常シンボルと当該シンボルが非正常となる時刻とを対応づけた分析結果を含む分析レポートを作成する。運転記録データは、運転記録の保存イベント発生時刻周辺の状況を再現するための情報を含んでいるため、分析レポートと紐づけて管理されてもよい。また、運転記録データは、運転記録の保存イベント発生時刻周辺の状況を再現するため、多くのシンボルのシンボル値を含むことからデータサイズが大きくなる。このため、たとえば、CPU41aは、運転記録データの中から、分析レポートに必要なデータを読み出して、分析レポート用のデータとして運転記録データに追加保存してもよい。分析レポート用のデータは、もともと運転記録データに含まれていた分析レポートに必要なデータを、そのままコピーしたものを分析レポート用のデータとしてタグ付けして運転記録データに追加保存してもよく、分析レポート用にデータ加工して運転記録データに追加保存してもよい。
【0030】
運転記録データにカメラ画像が含まれると、カメラ画像の再生により運転記録の保存イベント発生時刻周辺の状況をより詳細に把握することができる。分析レポートはカメラ画像を再生するUI(ユーザインターフェース)を含んでもよい。カメラ画像はデータサイズが大きいため、カメラ画像を再生するUIにおいてクリックやスクロール操作を受け付けた時などに必要なカメラ画像データだけを部分的にダウンロードしてもよい。たとえば、CPU41aは、分析レポートを作成する際、カメラ画像を分析レポートにおける表示順序に対応して加工したり、時刻とカメラ画像の保存位置の対応関係を示すインデックス情報を生成し、時刻に対応したカメラ画像を高速かつ部分的にダウンロードできるようにしてもよい。
【0031】
狭義には、分析レポートは、分析結果そのものを意味するが、広義には、分析結果を表示するWebアプリケーションやそのユーザインタフェースを意味することがある。CPU41aは、たとえば、デバイス値が正常範囲内かどうかや、デバイス値が変化するタイミングが正常範囲内かどうかなどを判定する。デバイス値が変化するタイミングが正常範囲内かどうかは、たとえば、デバイス値が“1”(オン)である期間の長さが正常範囲かどうかであってもよい。また、ある工程またはサイクルにおけるデバイス値の変化回数が正常範囲内かどうかが判定されてもよい。あるデバイスから収集されたデバイス値が正常条件を満たしていない場合、そのデバイスは、いつもと違う振る舞いのデバイスであるため、非正常デバイスと呼ばれてもよい。CPU41aは、Web形式の分析レポートを作成し、通信部43および通信ケーブル9bを介して分析レポートをPC2bのWebブラウザに提供してもよい。CPU31がプロトコル変換機能を有している場合、CPU41aは、ユニット内部バス90、CPU31、通信部33および通信ケーブル9aを介して、分析レポートをPC2aに送信してもよい。分析レポートは、グラフ表示部品や数値表示部品などを有してもよい。これらの表示部品は、フロントエンドの構造を記述するマークアップデータ、装飾を記述するスタイルデータおよび動的な処理を記述するコード、たとえばHTMLデータ、CSSデータおよびJavaScript(登録商標)コードなどにより実現される。HTMLはハイパーテキストマークアップ言語の略称である。CSSはカスケーディングスタイルシートの略称である。
【0032】
<PC2bの機能>
図5はPC2bのCPU11bによって実現される機能を説明する図である。PC2bのCPU11bは、Webブラウザプログラム14dを実行することによりWebブラウザ18を実行する。Webブラウザ18はWebアプリケーション61を実行して、通信処理部62、データ取得部63、描画部65、受付部66、および再生部67の機能を実現する。また、Webブラウザ18は、後述する分析ユニット4aのWebサーバ82と、HTTP(ハイパーテキストトランスポートプロトコル)にしたがって通信して表示部品を受信する。
【0033】
Webブラウザ18は、Webアプリケーション61を実行することで分析レポートを表示部7bに表示する。Webアプリケーション61は、たとば、HTMLデータ、CSSデータおよびjava(R)スクリプトなどにより構成される。Webアプリケーション61は、分析ユニット4aから提供されてもよい。通信処理部62は、Webサーバ82との通信を処理する。データ取得部63は、分析レポートに表示すべき運転記録データを分析ユニット4aから取得する。運転記録は、ダウンロードして記憶装置12bに記憶される。描画部65は分析レポートを表示部7bに表示する。連携部64は、分析レポートにおける再生時刻と、運転記録の再生時刻とが同期するように時刻管理を実行する。
【0034】
受付部66は、分析レポートの結果表示画面に対しての操作などを受け付ける。再生部67は、たとえば、受付部66又は連携部64から入力される再生要求に応じて、運転記録データをダウンロードさせて記憶装置12bに保存させる。再生要求には、たとえば、運転記録を特定可能な識別情報(例:固有の識別情報やPLC1における保存パス名)などが含まれていてもよい。再生部67は、記憶装置12に保存されている運転記録を再生して表示部7に表示する。再生部67は、PLC1からリアルタイムで取得される時系列のデバイス値を波形化して表示したり、運転記録に含まれる時系列のデバイス値を波形化して表示したりしてもよい。
【0035】
<PLC1の機能>
図6はPLC1においてCPU31とCPU41aとが制御プログラムを実行することで実現する機能を示している。CPU31においてコマンド処理部71は、PC2a、2bから受信されるコマンドを解釈し、解釈結果に対応した処理を実行する。たとえば、HTTPリクエストをカプセル化して作成された要求信号が受信されると、コマンド処理部71は、要求信号をCPU41aに転送する。要求信号に対する応答信号がCPU41aから受信されると、コマンド処理部71は、応答信号をPC2a、2bへ転送する。コマンド処理部71は分析ユニット4aにも設けられてよい。その場合、PC2aからコマンドについてはコマンド処理部71が処理し、PC2bからのコマンドは分析ユニット4aに設けられたコマンド処理部が処理する。収集部72は、基本ユニット3や拡張ユニット4bからシンボル値(デバイス値や変数に格納された値)を収集してリングバッファ36に格納する。収集部72の収集設定については基本ユニット3および分析ユニット4aの少なくとも一方から行うことができる。ロギング部73は、収集されたシンボル値などに基づき、何らかのエラーまたはトラブル(非正常イベント)がPLC1において生じているかどうかを判定する。たとえば、ロギング部73は、収集されたシンボル値が記録条件を満たしているかどうかを判定してもよい。収集されたシンボル値が記録条件を満たしている場合に、ロギング部73は、当該シンボル値を運転記録74内の稼働ログ76として保存する。ロギング部73は、運転記録を作成したときに実行されていたプロジェクトデータ75も運転記録74内に保存する。さらに、ロギング部73は、運転記録74を作成したことを分析部83に通知する。
【0036】
CPU41aにおいてプロトコル変換部81は、PC2bからカプセル化されて転送されてきたHTTPリクエストをプロトコル変換して要求信号からとりだす。プロトコル変換部81は、HTTPリクエストに対してWebサーバ82から送信される応答情報をカプセル化してCPU41aに渡す。プロトコル変換部81は透過的なトンネル(例:TCPトンネル)を提供してもよい。Webサーバ82は、分析部83により作成された分析レポートをPC2bへ提供する。分析部83は、運転記録74内の稼働ログ76を後述するモデルを用いて分析し、分析結果77を作成して、ロギング部73に渡す。分析部83が分析結果77を作成すると、ロギング部73は、プロジェクトデータ75および稼働ログ76に加えて、分析結果77を含む運転記録74に追加する。運転記録74は、運転記録記憶部37に格納される。或いは、分析結果77は分析ユニット4aのメモリ42aに記憶されてもよい。通知発行部84は、分析結果77が発行されると、通知を発行する。この通知は、CPU11bに送信される。
【0037】
たとえば、Webブラウザ18がHTTPリクエストにより分析レポートを要求すると、Webサーバ82はHTTPリクエストをプロトコル変換部81に渡す。HTTPリクエストには、CPU41aで実行され、分析レポートを提供する分析ユニット4a(Webサーバ)のURL(ユニフォームリソースロケータ)が含まれている。プロトコル変換部81は、HTTPリクエストをカプセル化して、所定の通信プロトコルで送信可能な要求信号(コマンド)に変換する。この要求信号は、分析ユニット4aのCPU41aに渡される。CPU41aは、CPU11bに分析レポートを返信する。CPU11bは、分析レポートをWebブラウザ18に渡す。これによりWebブラウザ18は表示部7bに分析レポートを表示する。
【0038】
解析部85は、基本ユニット3から取得可能なプログラマブルロジックコントローラ(PLC)に関する情報を解析して各デバイスについての属性情報を決定する。PLCに関する情報の詳細については図7乃至図9を用いて後述する。モデル生成部86は、後に分析部83が運転記録データと比較するためのマスタデータとなるモデルを作成する。モデルは各デバイスについて、解析部85によって決定された属性情報を付加して作成される。結果表示部87は、分析結果77をPC2bのWebブラウザ18で表示するための表示画面である分析レポートを生成する。分析レポートの詳細については図14を用いて後述する。
【0039】
<PLCに関する情報>
以下では、図7乃至図10を参照して、PLC固有の情報であるPLCに関する情報について説明する。後述するようにPLCに関する情報には種々の情報が含まれるが、PLC1が実行するユーザプログラムやPLC1のユニット構成、通信構成から認識可能なPLC1において固有の情報であるため、以下ではPLCに関する情報を総称してPLC固有情報とも称する。PLC固有情報には、たとえばユニット構成情報、通信機器の接続情報や通信設定情報、およびユーザプログラムの解析情報など種々の情報が含まれる。また、ユーザプログラムの解析情報には、さらに、シンボルのシンボル値とは異なる情報、たとえば、デバイス使用回数や、入力デバイス情報、デバイスの型情報などの情報が含まれる。本実施形態によれば、デバイスや変数などのシンボルの分析を好適に行うためや、分析結果を好適に出力するために、これらのPLC固有情報を利活用する。より詳細には、全デバイスのデバイス値などのシンボルのシンボル値を、PLC固有情報に従って所定属性に絞り込んで分析を行ったり、所定属性に絞り込んだ分析レポートを作成したりするために、PLC固有情報を利活用する。PLC固有情報には、モーション関連シンボル、モーション設定、通信設定、通信相手・センサ種別、イベント・エラー情報、カメラ関連情報が含まれてもよい。
【0040】
図7はユニット構成情報および通信機器の接続情報を説明する図である。700はPLC1のユニット構成情報を示す。上述しているように、PLC1は基本ユニット3と、1以上の拡張ユニット4とを備える。ユニット構成情報は、PLC1に含まれる全てのユニットの構成を示す情報である。700に示すように、ユニット構成情報には、少なくとも、ユニット番号701と、ユニット名称702と、各ユニットに割りついているデバイスの情報703とが含まれる。たとえば、所定のデバイスが何れのユニットに割り付いているかの情報が付加されると、割り付いているユニットの属性に従って分析時におけるデバイスの重要性を判断することができる。ユニットの属性には、基本ユニット、IO入力ユニット、分析ユニット、モーションユニット、レコーダユニット、カメラユニットなど種々の属性が含まれる。たとえば、IO入力ユニットであれば、センサ等の外部入力デバイスが割り付けられているため、非正常時において重要な分析対象となり、ラダーを熟知していない者でもトラブル要因を容易に解析することができる情報となる。また、アナログ入力ユニットであれば、接続されている電流値等をモニタしているロボットの異常を疑うことも可能であり、モーションユニットであれば、接続されている可動部の異常を疑うことができる情報となる。このように、ユニット構成情報を利活用して、分析対象の絞り込みや分析結果の絞り込みを行うことができる。ここでは、テーブル形式のユニット構成情報を示したが本発明を限定する意図はなく、他のデータ形式で構成されてもよい。
【0041】
710はPLC1の通信周辺機器の接続情報を示す。接続情報には、デバイスが何れの通信スレーブと紐づいているかを示す情報と、通信設定を示す情報とが含まれる。接続情報によってデバイスの通信相手を特定することができ、デバイスを効率的に分析したり、分析結果を好適に絞り込むことができる。図7に示す接続情報710には、ユニット711、712、716と、ユニット712に接続されたデバイス713~715との接続情報および通信設定情報とが含まれる。たとえば715はセンサであり、通信設定などの関連する情報、たとえばビット情報として受光量と閾値とを比較して判定されたセンサ信号と、ワード情報として設定値や受光量とが含まれる。センサは故障が多いため、センサ信号を分析する優先順位は高い。また、受光量については状態を表すため優先順位は高い。また、アクチュエータは装置を動かしている部分であり、故障が多くこれに割り付くデバイスを分析する優先順位は高い。なお、接続情報についても、ユニット構成情報と同様にどのようなデータ形式であってもよい。
【0042】
図8はユーザプログラムであるラダーを解析することで取得される解析情報の一例を説明する図である。800はPLC1のデバイスの使用状況を表示する機能の一例を示したものであり、810は各デバイスに対してオペレータが付加したコメントを示し、820はデバイスの入力接点および出力接点を示す。
【0043】
使用回数表示800はCPUユニットである基本ユニット3のエンジニアリングツールで使用される画面であり、選択条件の設定801、検索設定802、および検索結果803の表示領域を含んで構成される。PLC1では、デバイスやプログラムを選択して検索実行を行い、各デバイスの使用回数や未使用回数を取得して表示する機能を有する。つまり、基本ユニット3は、各デバイスの使用回数の情報を保有している。デバイス使用回数の情報は運転記録データの分析対象の絞り込みや分析結果の絞り込みに有用である。たとえば、ラダーで使用していない場合であっても、基本ユニット3や拡張ユニット4において動作させるか又は変化させているデバイスは多い。また意図せずデバイスが動作することもある。このようなデバイスは通常冗長なデバイスである場合が多く、全デバイスで比較していると不要に検知してしまうこともあるが、トラブル要因の分析対象として優先度は低い。したがって、デバイスの使用回数によってこのようなデバイスを特定し、分析対象の絞り込みや分析結果の絞り込みに利用することができる。一方、使用回数が多いデバイスを分析等の対象として優先度を高くするように制御してもよい。
【0044】
デバイスコメント810では、811がデバイス番号を示し、812はオペレータが入力したコメントを示す。図8に示すように、オペレータは全てのデバイスにコメントを付すのではなく、通常、使用するデバイスに対してコメントを付すものである。従って、コメントが付加されたデバイスは重要なデバイスと判断することができ、分析等の対象として優先度を高く設定することができる。一方、コメントが付加されていないデバイスは分析等の対象として優先度を低く設定することができる。図8の例では、デバイスMR00~MR03、MR07、MR08は分析等の対象として優先度を高く設定し、デバイスMR04~MR06については優先度を低く設定することができる。
【0045】
入出力接点820は、各デバイスにおける入力接点および出力接点の有無を表している。821がデバイス番号を示し、822が入力接点を示し、823が出力接点を示す。基本ユニット3は、ラダープログラムを解析することにより、各デバイスの入出力接点を参照して、注目デバイスが外部からの入力であるか否かを特定することができる。図8の例では、デバイスLR300のように入力接点しか有しておらず、出力接点を有していないデバイスは通信やI/Oからの外部入力である可能性が高い。上述したように、外部入力であれば、分析等の対象として優先度が高く、当該デバイス値は有用な情報となりうる。
【0046】
図9もユーザプログラムであるラダーを解析することで取得される解析情報の一例を説明する図である。900は各デバイスが対応し得る型情報を示し、910は同じデバイス値を異なる型情報で表現した場合の値を示す。各デバイスが対応し得る型情報は、ラダープログラムの命令語を解析することで取得される。たとえば、デバイスからデバイス値を読み出すロード命令が、オペランドとしてDM0というデバイスが指定され、命令語がLDA.Lのように、サフィックスとして.Lが付されている場合、デバイスDM0の型は.Lに対応する2ワード符号付き整数であると認識する。
【0047】
900において、901は型を示し、902はビット数を示す。各デバイスは0、1のビット型のデバイスと、アナログ値をとる、ワード型のデバイスや浮動小数点数型のデバイスがある。なお、ワードデバイスには、さらに、1ワード符号なし整数(0~65535)、1ワード符号付き整数(-32768~32767)、2ワード符号なし整数(0~4294967295)、および2ワード符号付き整数(-214783648~214783647)がある。浮動小数点型には、32ビットの単精度浮動小数点型と、64ビットの倍精度浮動小数点型とがある。このように各デバイスのデバイス値は種々の型をとりうる。
【0048】
910において、911はデバイス番号を示し、912は現在値を示し、913は現在値の表示形式を示す。910では、同一の現在値を複数の表示形式で示している。910に示すように同一の値であっても型ごとに異なる値として解釈されてしまう。このように、デバイス値については型を考慮して分析しなければ、データの意味が全く異なってしまい、正しい解析を行うことができない虞がある。
【0049】
図8および図9を用いてユーザプログラムにおけるラダープログラムを解析する場合の例について説明した。しかしながら、本発明はこれに限らず、他のプログラミング言語によるユーザプログラムを解析して分析等に利活用してもよい。たとえば、ユーザプログラムには、ラダープログラムの他に、スクリプトプログラム、フロープログラム、モーションプロクラム、グラフィカルプログラミングなど種々のプログラムが存在する。特に、スクリプトプログラムおよびフロープログラムはラダープログラムと同様のロジックを実現することができる。従って、少なくともスクリプトプログラムおよびフロープログラムを解析することにより、図8および図9を用いて説明した解析情報を取得することができる。
【0050】
<基本フロー>
図10は、本実施形態に係るモデル生成と、運転記録データの分析および結果出力の基本フローを示す。以下で説明する処理は、基本ユニット3のCPU31および分析ユニット(拡張ユニット)4aのCPU41aによって実行される処理として説明する。しかし、本発明を限定する意図はなく、それらの処理の一部が他のユニットで実行されてもよいし、それらの処理の全てが一つのユニットで実行されてもよいし、或いはプログラマブルロジックコントローラに通信可能に接続された外部装置(分析装置)によって実行されてもよい。
【0051】
S1で基本ユニット3のCPU31は、PC2aを介して入力された情報に従って、収集部72における収集設定や分析設定を設定する。たとえば、CPU31は、収集設定として、収集対象や収集期間、保存先、ファイル名などを設定することができる。分析設定としては、たとえば分析対象となるサイクルの開始および終了の設定が含まれる。ここでは基本ユニット3が収集設定および分析設定を行う例について説明したが、分析ユニット4aのCPU41aがPC2bを介して入力された情報に従って収集設定を行ってもよい。さらにS1では、基本ユニット3のCPU31が、分析設定として、PC2a、2bの表示部7a、7bに表示された設定画面を介して入力された情報に従って撮影条件等のカメラ設定や画像処理設定、監視項目設定などを設定することができる。なお、これらの分析設定についても分析ユニット4aのCPU41aによって実行することも可能である。その後、S2でCPU31は、S1で設定された収集設定に従って運転記録データを、モデル作成用データとして収集し、運転記録記憶部37へ格納する。より詳細には、収集設定に従って収集された全デバイス値が一旦リングバッファ36へ格納され、リングバッファ36から必要なデータが運転記録データとして運転記録記憶部37へ格納される。
【0052】
次に、S3で分析ユニット4aのCPU41aは、収集された運転記録データを利用してモデルを作成する。当該モデルには、各デバイスのパターンを、定数、ビットパターン、アナログ値などの特徴量に基づいて分類したデバイスごとの情報や、デバイス値が変化するタイミングを示す情報が含まれてもよい。つまり、当該モデルは、各デバイスの正常時の変化パターンが学習される。S3の詳細な処理については図11を用いて後述する。
【0053】
その後、S4で基本ユニット3のCPU31は運転記録データの分析を行うトリガが発生したか否かを判断する。当該トリガは、基本的には運転中にいつもと違う異常が発生した場合をトリガとするものであり、その成立条件として、たとえばエラービットが設定された場合や、監視アプリケーション等のアプリケーションからの所定のイベントの発生、オペレータからの手動による指示の受け付け等が挙げられる。トリガが発生するとS5へ進む。
【0054】
S5で基本ユニット3のCPU31は、各デバイス値を収集して分析を行うための運転記録データを、運転記録記憶部37に保存する。通常、いつもと違う何らかの変化が発生した後にトリガが発生する。従って、ここでは、そのような変化の原因を特定するためにトリガ前後のデータが取得される。上述したように、運転中における全デバイスのデバイス値はリングバッファ36へ保持されている。従って、CPU31はトリガが発生したと判断すると、S1で設定された分析設定に従って、トリガ前後の必要なデバイス値をリングバッファ36から運転記録記憶部37へ格納する。
【0055】
その後、S6で分析ユニット4aのCPU41aは、基本ユニット3で収集された時系列データを取得して、S2で生成されたモデルと比較して分析処理を実行する。S6の詳細については図12を用いて後述する。さらに、S7でCPU41aは、分析結果に基づいて、結果を示す表示データを生成し、通信部43を介して生成した表示データをPC2bや外部装置へ送信し、処理を終了する。たとえば、PC2bにおいて分析結果がオペレータに対して表示される。なお、PC2bにおける詳細の処理については図13を用いて説明する。また、結果表示画面の詳細については図14を用いて後述する。
【0056】
監視アプリケーションは、分析ユニット4aのCPU41aにより実行されるデータ活用アプリケーションの一つである。分析ユニット4aは、データ活用アプリケーションを実行する拡張ユニットであってもよい。データ活用アプリケーションは、制御データを収集したりデータ処理したりするデータ活用プログラム(例:フロー)と、データ活用プログラムの実行結果を表示するダッシュボードとを含む。データ活用アプリケーションとしては、監視対象であるデバイスや変数をリアルタイムに監視する監視アプリケーションと、PLC1の運転状態を再現するための運転記録を分析して分析レポートを生成する運転記録分析アプリケーションなどが存在してもよい。また、データ活用アプリケーションとしては、可動率(べきどうりつ)、良品率、または、サイクルタイムなどのKPI(Key Performance Indicator)を算出する算出アプリケーションなどが存在してもよい。監視アプリケーションは、PLC1のシンボルのシンボル値に基づく常時監視するためのアプリケーションで、たとえば監視アプリケーションの設定に応じて1又は複数のシンボルのシンボル値をスキャンタイムレベルで常時収集し、収集したシンボル値に基づく情報をリアルタイムに更新しながら常時表示するアプリケーションである。常時監視の対象となる1又は複数のシンボルは、予めユーザにより設定される。監視アプリケーションは、たとえばWebサーバ機能を有し、通信部43を介して汎用ブラウザから設定が可能である。汎用ブラウザから設定できることにより、プログラム作成支援装置等の専用ツールを介さずに、PC、スマホ、タブレットから設定または監視ができる。また、監視アプリケーションは、常時監視の対象となる1又は複数のシンボルについて正常時における複数のサイクルのシンボル値に基づき当該シンボルに対応する閾値を自動で設定する。たとえば、監視アプリケーションは、ユーザ指示を受け付けて、常時監視の対象となる複数のシンボルについて正常時における複数のサイクルのシンボル値のばらつきに基づき、シンボルの状態を監視するための閾値を一括で自動設定する。閾値は、いつもと違う状態、つまり、非正常状態を監視するように設定され、監視アプリケーションは、監視対象のシンボルのシンボル値が閾値を超えた場合はアラームを発報する。このようにして、たとえば、PLC1は、設備が止まる前に兆候を捉えることができる。PLC1は、監視アプリケーションによる兆候監視の結果、監視対象のシンボルのシンボル値が閾値を超えた場合のアラームを、運転記録の保存条件としてもよい。PLC1は、監視アプリケーションによるアラーム発生をイベントトリガとして、トリガ前後の運転記録データを保存する。PLC1は、運転記録データの保存が完了すると保存完了デバイスをONする。運転記録分析アプリケーションは、運転記録データの保存が完了したことをうけ、自動的に運転記録データを分析してもよい。たとえば、運転記録分析アプリケーションは、保存完了デバイスをONしたことに応じて運転記録データを分析してもよい。運転記録分析アプリケーションは、分析対象となったシンボルのシンボル値(例、全ビットデバイスのデバイス値)を分析して、アラートが出た要因候補のシンボルを抽出する。このようにして運転記録分析アプリケーションは、監視アプリケーションによるアラーム発生の要因をアラーム発生により保存した運転記録データを自動分析し、運転記録データの中からいつもと違うシンボルを抽出する。これにより、CPU41aは、監視アプリケーションの兆候監視機能により設備の状態を常時監視し、変化要因でアラートを発報する。さらに、CPU41aは、アラート要因を自動分析し、いつもと違うシンボルを抽出する。つまり、PLC1は、シンボル値を常時監視することで被制御対象設備の兆候監視をして、アラームにより被制御対象設備が止まる前に兆候を報知して、兆候の要因を自動分析する。
【0057】
<モデル生成フロー>
図11は、本実施形態に係る上記S3のモデル生成処理の詳細を示す。以下で説明する処理は、分析ユニット(拡張ユニット)4aのCPU41aによって実行される処理として説明する。しかし、本発明を限定する意図はなく、それらの処理の一部が他のユニットで実行されてもよいし、それらの処理の全てが一つのユニットで実行されてもよいし、或いはプログラマブルロジックコントローラに通信可能に接続された外部装置(分析装置)によって実行されてもよい。
【0058】
まずS31で分析ユニット4aのCPU41aは、基本ユニット3からモデル作成用の正常時の運転記録データを取得する。当該運転記録データは、上記S2で運転記録記憶部37に格納されたデータである。基本ユニット3から正常稼働中、エラー中、停止中などの状態情報を取得して、正常稼働中のシンボル値を取得するようにしてもよい。これにより自動的に正常時のデータを取得することができる。状態情報は、状態情報を示すシンボルのシンボル値により取得するようにしてもよい。続いて、S32でCPU41aは、デバイス値以外の情報を取得する。ここで取得するデバイス値以外の情報には、基本ユニット3における固有の情報であって、上述したプログラマブルロジックコントローラに関する情報が含まれる。当該情報は基本ユニット3に保持されており、定期的に更新される情報である。また、ここで取得する情報には、拡張ユニット4bに接続されたカメラ等のフィールドデバイス10で取得された情報、たとえばカメラ画像データなども含まれてもよい。これらのデータについては基本ユニット3を介して取得してもよいが、たとえば拡張ユニット4bなどから直接取得するようにしてもよい。
【0059】
次に、S33でCPU41aは、S32で取得したデバイス値以外の情報を解析して各デバイスに属性情報を付加する。なお、S32で取得した情報が既に基本ユニット3で解析された解析情報の形式であってもよい。この場合CPU41aは当該解析情報に従って各デバイスの属性情報を特定して付加する。また、属性情報とは、何れのユニットへ接続されているデバイスであるか、入力デバイスであるか否か、ワードの型(16ビット又は32ビット、符号あり又は符号なし、整数又は浮動小数など)を示す情報である。これらの属性情報は、後述する分析フローにおいて、分析対象のデバイスの優先度を決定するために利用したり、分析する際のデバイス値の解釈に利用したりする情報である。つまり、本実施形態によれば、これらのプログラマブルロジックコントローラに関する情報を解析して得た属性情報を、分析等の絞り込みに利用したり、分析処理や分析結果の表示を好適に行うために利用したりする。
【0060】
次に、S34でCPU41aは、付加された属性情報に基づいてS31で取得した運転記録データからモデルを生成し、処理を終了する。生成したモデルは、分析時に利用するマスタデータであり、上述したように、各デバイスのパターンを、定数、ビットパターン、アナログ値などの特徴量に基づいて分類したデバイスごとの情報や、デバイス値が変化するタイミングを示す情報が含まれてもよい。
【0061】
<分析フロー>
図12は、本実施形態に係る上記S6の分析処理の詳細を示す。以下で説明する処理は、分析ユニット(拡張ユニット)4aのCPU41aによって実行される処理として説明する。しかし、本発明を限定する意図はなく、それらの処理の一部が他のユニットで実行されてもよいし、それらの処理の全てが一つのユニットで実行されてもよいし、或いはプログラマブルロジックコントローラに通信可能に接続された外部装置(分析装置)によって実行されてもよい。
【0062】
まずS61で分析ユニット4aのCPU41aは、基本ユニット3から分析用の運転記録データを取得する。ここでは、運転記録データに加えて、更にカメラ画像データやイベントの発生履歴、エラー履歴の情報も合わせて取得する。その後、S62およびS63において、上述したS32およびS33と同様の処理を実行してもよい。これにより、最新の属性情報をデバイスに付加することができる。なお、S62およびS63の処理を省略して、S64へ進んでもよい。
【0063】
S64でCPU41aは、S61で取得した時系列の運転記録データと、対応するデバイスのS34で生成されたモデルとを比較する。たとえば、時系列のデバイス値と、生成された時系列のマスタデータの値と比較してその差分を取得する。所定値以上の差分があればいつもとは異なる状態が検知されていると判断する。続いて、S65でCPU41aは、S64の比較結果に従って分析結果を出力し、処理を終了する。その後、上記S7でPC2bは、分析結果を示す結果表示画面を生成して出力する。
【0064】
<結果表示フロー>
図13は、本実施形態に係る結果表示フローの詳細を示す。以下で説明する処理は、PC2bのCPU11bによって実行される処理として説明する。しかし、本発明を限定する意図はなく、それらの処理の一部がPLCのユニットで実行されてもよいし、或いはプログラマブルロジックコントローラに通信可能に接続された他の外部装置(PC2aなど)によって実行されてもよい。PLCのユニットで実行される場合には当該ユニットにはモニタが設けられる。フローチャート1300は、基本ユニット3から取得した属性情報に従って表示する分析結果のデバイスを絞り込む制御する行う結果表示フローを示す。一方、フローチャート1310は、基本ユニット3から取得した属性情報を分析結果に付加して表示する結果表示フローを示す。
【0065】
まず1300のフローチャートについて説明する。S71でPC2bのCPU11bは、分析ユニット4aから属性情報が付加された分析結果と、プログラマブルロジックコントローラに関する情報とを通信ケーブル9bを介して受信する。続いて、S72でCPU11bは、属性情報に基づいて優先度の高い情報に絞り込んだ分析レポートを、表示部7bに結果表示画面として表示する。結果表示画面では、基本的にはいつもと異なる状態が検知されたデバイスを優先的に表示するが、そのようないつもと異なる状態が多数のデバイスで検知された場合には属性情報を用いて絞り込んだ情報が表示される。なお、スクロールボタン等を利用して該当する全てのデバイスを表示するようにしてもよいが、その場合においても最初に画面に表示されるデバイスの分析結果は優先度の高いデバイスであることが望ましい。これにより、オペレータはより効率的に異常箇所や異常原因を特定することができる。また、専門的な知識を有していないオペレータに対して異常箇所や異常原因の特定を支援することができる。
【0066】
その後、S73でCPU11bは、操作部8bを介したユーザ入力として、結果表示画面上の選択表示指示を受け付けると、S74で選択表示指示に従った表示内容に更新する。続いて、S75でCPU11bは、結果表示画面の終了が選択されたかどうかを判断し、終了指示を受け付けていない場合には処理をS73に戻し、終了指示を受け付けた場合には処理を終了する。
【0067】
次に、1310のフローチャートについて説明する。S77でPC2bのCPU11bは、分析ユニット4aから属性情報が付加された分析結果と、プログラマブルロジックコントローラに関する情報とを通信ケーブル9bを介して受信する。続いて、S78でCPU11bは、デバイス値以外の情報を分析結果に付加した結果表示画面を表示部7bに表示し、処理を終了する。たとえばPLC固有情報として取得したデバイスコメントを分析結果に付加して表示してもよいし、当該デバイスが接続されているユニットや通信機器の情報や、当該デバイスの型情報などを付加して分析結果を表示してもよい。また、基本ユニット3から取得したカメラ画像を合わせて表示してもよい。
【0068】
上述のフローチャート1300、1310では、分析結果を表示する際に、PLC固有情報(たとえば、属性情報)を分析結果の表示を絞るために用いる場合と、PLC固有情報(たとえば、カメラ画像)を分析結果と合わせて表示する場合とに分けて説明した。しかし、本発明はこれに限定されず、両方の制御を合わせて行うように制御してもよい。
【0069】
<結果表示画面(分析レポート)>
図14は、本実施形態に係るWebブラウザ18がWebブラウザプログラム14dを実行することで表示部7bに表示される結果表示画面を示す。ここでは当該結果表示画面1400がPC2bの表示部7bに表示される例について説明するが、本発明を限定する意図はなく他の装置の表示部に表示されてもよいし、PLCの拡張ユニットが有するモニタで表示可能であれば当該モニタに表示されてもよい。たとえば、他の装置としてプログラマブル表示器、タブレット、スマートフォンが含まれてもよい。或いは、以下で説明する結果表示画面の内容を含む分析レポートとして他の装置へ電子メール、SNS、FTP転送等で送信されてもよい。分析レポートに対して任意のコメントが付されてもよく、たとえば、分析レポートに対して手書き文字や入力文字コメントが付与されてもよい。この場合、任意のコメントが付与された結果表示画面の内容を含む分析レポートが他の装置へ送信されてもよい。これにより、メールの受信者はコメントなどの現場状況と分析レポートとを合わせて閲覧することができる。また、分析レポートが他の装置へ送信する際、分析レポートとともに当該分析レポートの分析対象である運転記録データが対応付けられて送信されてもよい。これにより、メールの受信者は運転記録と分析レポートとを合わせて閲覧することができる。さらに、PC2bがカメラ付きのタブレットやスマートフォン等であれば、装置の写真も一緒に添付できてもよい。
【0070】
結果表示画面1400は、結果をフィルタリングして表示するためのフィルタ1401~1403と、フィルタ結果1404と、検知マップ1410と、検知リスト1420と、カメラ映像1430と、分析コメント1440とを含んで構成される。なお、結果表示としては、1410、1420、1430、1440のうち少なくとも1つが表示されるものであってよい。
【0071】
フィルタ1401は動作サイクルを選択して結果表示をフィルタリングすることができる。ここでの動作サイクルとは、デバイス値の周期的な変化を伴う開始タイミングから終了タイミングまでの期間を称する。フィルタ1401を指定すると、選択された動作サイクルで動作するデバイスの分析結果に絞って結果が表示される。
【0072】
フィルタ1402は属性情報を選択して結果表示をフィルタリングすることができる。属性情報とは上述したように、何れのユニットや通信機器に接続されているかの情報や、入力デバイスであるか否かの情報を示す。フィルタ1402においてたとえば「ユニット構成情報」を指定すると、たとえばユニット構成が表示され、表示されたユニットのいずれかを選択することができる。ユニットが選択されると、当該ユニットに接続されているデバイスに絞って結果が表示される。また、属性情報として「入力デバイス」が指定されると、入力デバイスの属性情報が付加されたデバイスに絞って結果が表示される。フィルタ1402は、属性情報を活用するフィルタリングに限られない。たとえば、分析の結果、同じシンボルが重複して非正常シンボルとして検出されることがある。非正常の原因を探るうえで最先の発生時刻が重要となる可能性が高く、フィルタ1402は、重複して検出された同じシンボルのうち最先の発生時刻以外をフィルタリングするようにしてもよい。また、フィルタ1402は、同じシンボルで、分析時の検知アルゴリズムが同一なもののうち、最先の発生時刻以外をフィルタリングするようにしてもよい。さらに、フィルタ1402は、同じシンボルで、分析時の検知アルゴリズムが同一であって、後述するサイクル設定が同一なもののうち、最先の発生時刻以外をフィルタリングするようにしてもよい。
【0073】
フィルタ1403はイベントやエラーを選択して結果表示をフィルタリングすることができる。イベントやエラーの種別を指定するとそれに関わりのあるデバイスの分析結果に絞って結果が表示される。たとえば、イベントとして「運転記録保存トリガ」が選択された場合には、その前後の分析結果に絞って結果が表示される。結果表示画面1400は、分析結果とともにイベントやエラーを発生時刻順に表示してもよい。この場合、フィルタ1403はイベントやエラーをフィルタリングすることができる。これにより分析結果とイベントやエラーの混在表示と、分析結果の表示とを切り換えることができる。ここで、イベントは、たとえば、電源ON/OFF、デバイス値書換、メモリ挿抜などを含み、カテゴリー毎にフィルタリング対象を加除できるようにしてもよい。エラーは、たとえば通信エラー、PLC演算エラー、スキャンタイム超過エラーなどを含み、エラーの重度毎にフィルタリング対象を加除できるようにしてもよい。
【0074】
なお、フィルタ1401~1403のフィルタ条件は論理積として判断され、該当する分析結果が表示される。従って、フィルタ1401~1403は必ずしも選択される必要はなく、オペレータが所望するフィルタが選択された場合に分析結果がフィルタリングされてもよい。或いは、オペレータが指定する前にデフォルトでフィルタを選択して分析結果を表示するようにしてもよい。これらの分析結果として表示されるデバイスは、いつもと異なる状態が検知されたデバイスである。いつもと異なる状態とは、たとえば、デバイス値が正常範囲を逸脱したり、デバイス値が変化するタイミングまたは回数が正常範囲を外れたりすることである。製品の製造工場では、日々、同一の製品が大量生産される。つまり、同一の工程が何度も繰り返し実行される。そのため、いつもと異なる状態を検知して表示することは、ラダープログラムを改良したり、生産設備を見直したりするうえで、非常に役に立つ。いつもと同様の状態(正常状態)を定義する正常範囲(正常条件)は、ユーザにより定義されてもよいし、デバイス値の学習結果により定義されてもよい。
【0075】
検知マップ1410は、PLC1において実行される複数の工程のそれぞれについて開始タイミングと終了タイミングとを含むサイクルを表示する。検知マップ1410において、横方向に延びる矩形は、工程が実行中である期間(サイクル)を示している。また、矩形内の丸はサイクル内で発生したいつもと異なる状態が発生した異常発生箇所を示している。検知マップ111において、工程を示す矩形は、左が古く右が新しいことを示す。時刻バー1411は、選択中の時刻を示している。時刻バー1412は、運転記録データの保存トリガが発生したタイミングを示している。上述したように、運転記録データは保存トリガが発生した前後のデータが記録されているため、時刻バー1412の前後にデータが示されている。
【0076】
画像表示領域1430は、PLC1において取得されたカメラ画像を表示する。図14では、マスタデータのカメラ画像と、今回のカメラ画像とが対比可能に表示されている。カメラ画像も時系列データであるため、シークバー1431は、カメラ画像の再生時刻を示し、再生時刻の経過にしたがって左から右に移動する。時刻バー1432は、検知対象デバイスがいつもと異なる状態になったタイミングを示している。時刻指定部1433は、カメラ画像の再生時刻を進めたり、再生時刻を戻したり、再生の開始を指示したり、再生を停止したりすることを指示するためのコントロールオブジェクトである。なお、結果表示画面1400において、検知マップ1410の再生時刻、カメラ画像の再生時刻、および、検知リスト1420の再生時刻は同期するように管理され表示されている。
【0077】
検知リスト1420は、いつもと異なる状態になったデバイスと、その状態が発生した時刻(デバイス値の収集時刻)とを示す。検知リスト1420は、いつもと異なる状態となったデバイスを時刻順に示したリストである。CPU11bは、検知リスト1420に表示されたデバイスに対するクリックを検知すると、クリックされたデバイスの識別情報と、再生時刻情報(デバイス値の収集時刻)とに基づいて、検知マップ1410、検知リスト1420、および画像表示領域1430の表示を同期させることができる。時刻バー1421は、選択中の時刻を示しており、時刻バー1411、1431と連動し、同一のタイミングを示している。時刻バー1422は、運転記録データの保存トリガが発生したタイミングを示している。
【0078】
分析コメント1440は、分析結果に含まれるコメントと、検知リスト1420で選択されたデバイスについての、マスタデータと、今回のデバイス値の時系列データとを表示する。時刻バー1441は、いつもと異なる状態が発生したタイミングを示し、時刻バー1411、1421、1431と連動し、同一のタイミングを示している。表示されているコメントは、当該デバイスの異常の内容を示している。
【0079】
このように、結果表示画面1400は検知マップ1410、検知リスト1420、画像表示領域1430、および分析コメント1440など複数の分析結果の表示を含んで構成される。しかし、これらの結果表示は一例であり他の結果表示が追加的に又は代替的に含まれてもよい。たとえば、図15に示すように、分析結果として、デバイス間の依存情報(リレーションマップ)を表示してもよい。基本ユニット3は、ラダープログラムを解析することで、デバイス・変数間の依存関係を把握することができる。たとえば、ある検知されたデバイスを選択されると、それに関係するデバイスも並べて表示するなど、依存関係のあるデバイスをオペレータへ提示することができる。これにより、オペレータに対して異常の把握や特定を支援することができる。
【0080】
図15はリレーションマップ1500を示している。リレーションマップ1500は、ラダープログラム等のユーザプログラムにおいて、特定のシンボルに関連するプログラムモジュールと、そのプログラムモジュールに関連する他のシンボルとの関係を示す図式表示であり、たとえば、特定のシンボルとして、ラダープログラムに使用されるいつもと異なる状態になったデバイス(非正常デバイス)を選択した場合は、当該非正常デバイスに対してラダープログラムにおいてプログラムモジュールを介して関連している他のデバイスを表示するUIとなる。このUIは結果表示画面1400において不図示の表示ボタンを操作することにより遷移する画面であってもよいし、結果表示画面1400上に追加で表示されてもよい。リレーションマップを表示することにより、ユーザは、非正常デバイスと他のデバイスとの依存関係を容易に理解できる。一般に、PLC1において利用されるデバイスの数は数百から数万であるため、ユーザは、いつもと異なる状態になったデバイスから、その原因となったデバイスを特定することは容易ではない。CPU11は、非正常デバイスについてラダープログラム内を検索し、非正常デバイスに関する記述を発見し、当該記述を分析することで、関連デバイスを特定する。この例では、ラダープログラム内の出力部において、非正常デバイス(例:R0004)が記述されており、関連デバイスとしてMR000、MR001、MR002が存在する。CPU11は、ラダープログラムから特定した非正常デバイス、関連デバイスおよびプログラムモジュールをツリーのように表示する。この例では、出力部における演算のために入力されるデバイスが左側に表示され、プログラムモジュールが真ん中に表示され、その右側に非正常デバイスが表示されている。図15が示すように、リレーションマップ1500上のプログラムモジュールが選択されると、CPU11bは、該当するプログラムモジュールをプログラム表示領域1510に表示してもよい。
【0081】
CPU11は、シンボルを特定するユーザ指定に応じて、ユーザプログラムからシンボルに関連するプログラムモジュールを特定し、特定したプログラムモジュールに関連する他のシンボルを特定して、リレーションマップ1500を生成する。CPU11は、分析結果に基づいてリレーションマップ1500内に含まれる非正常デバイスを強調表示する。分析結果は非正常デバイスがいつもと異なると判断した時刻も含んでおり、CPU11は、再現する時刻よりも前に発生した非正常デバイスのみをリレーションマップ1500上で強調表示するようにしてもよい。これにより非正常デバイスは、いつもと異なる状態が発生して以降、強調表示が保持されることになる。また、分析結果には、各シンボルのうち、分析対象外のシンボルであることを示す情報が含まれてもよい。この場合、CPU11は、分析結果に基づいてリレーションマップ1500上で分析対象外のシンボルと他のシンボルと色などを区別して表示する。これにより、分析により非正常でないと判断したのか、未分析のため非正常と判断されなかったのかを区別できる。分析対象外のシンボルとは、たとえば、制御サイクルやサイクル定義により定義されるサイクルに対し、シンボル値の変化パターンが規則性を持たないシンボルであったり、ユーザにより分析対象外として指定されたシンボルを含む。
【0082】
<変形例>
本発明は上記実施形態に限らず様々な変形が可能である。以下では種々の変形例について図面を参照して説明する。
【0083】
<サイクルに基づくモデル生成フロー>
図16は、サイクルに基づくモデル生成フローの詳細を示す。本フローチャートは図11を用いて説明したモデル生成フローの一例を示す処理手順である。ここでは、デバイスの属性情報としてデバイスの動作サイクルを判断してモデルを生成する制御について説明する。以下で説明するように、分析ユニット4aは複数の同期しない工程(サイクル)のデータであっても、自動で工程(サイクル)に属するデバイス・変数を抽出する。これにより、オペレータが予め手動で工程(サイクル)とデバイスとの紐づけを行う非常に手間となる作業を省略することができる。以下で説明する処理は、分析ユニット(拡張ユニット)4aのCPU41aによって実行される処理として説明する。しかし、本発明を限定する意図はなく、それらの処理の一部が他のユニットで実行されてもよいし、それらの処理の全てが一つのユニットで実行されてもよいし、或いはプログラマブルロジックコントローラに通信可能に接続された外部装置(分析装置)によって実行されてもよい。
【0084】
まずS81で分析ユニット4aのCPU41aは、基本ユニット3からモデル作成用の正常時の運転記録データを取得する。当該運転記録データは、上記S2で運転記録記憶部37に格納されたデータである。続いて、S82でCPU41aは、デバイス値以外の情報として、基本ユニット3からサイクル設定の情報を取得する。サイクル設定の情報は、たとえばPC2aを介してオペレータから設定されたサイクルを規定する情報を示す。サイクルを規定する情報とは、各サイクルの基準タイミングを規定する情報であってもよく、たとえば基準タイミングを規定するためのシンボルが設定されてもよい。より詳細には、基準タイミングはシンボル名と立上り/立下りのエッジ情報とにより指定される。基準タイミングとしては、サイクルの開始を示すタイミングの他、サイクルにおける動作開始やタイミングやサイクルの終了を示すタイミングであってもよい。また、ここで取得する情報には、拡張ユニット4bに接続されたカメラ等のフィールドデバイス10で取得された情報、たとえばカメラ画像データなども含まれてもよい。これらのデータについては基本ユニット3を介して取得してもよいが、たとえば拡張ユニット4bなどから直接取得するようにしてもよい。サイクル設定は他のアプリケーションで定義されている場合があり、その設定から取得してもよい。また、サイクル設定はCSV等のファイル形式でPLC1に提供され、PLC1がCSV等のファイルを読み出してサイクル設定をしてもよい。
【0085】
次に、S83でCPU41aは、S32で取得したサイクル設定に基づき、各デバイスが何れのサイクルに属するかを判定する。各デバイスのサイクルパターンには種々のパターンが存在するものであり、ここでは各デバイスがサイクル設定で指定された何れのパターンに属するデバイスであるかを判断する。図17は、各デバイスのサイクルパターンを判別する制御について示す。図17において、矩形は工程が実行中である期間(サイクル)である開始タイミングから終了タイミングまでを示しており、1つの矩形が1サイクルを示す。サイクルパターンとはこの1サイクルが出現するパターンである。1701~1703はサイクル設定された工程を示す。1704~1706はそれぞれデバイスA~Cの収集データから抽出したサイクルパターンを示す。分析ユニット4aは各デバイスについて何れのサイクル設定のパターンに属するかを判断し、たとえばデバイスAがサイクル設定1に属し、デバイスBがサイクル設定2に属し、デバイスAが設定された何れのサイクル設定にも該当しないと判断する。具体的には、サイクル開始から終了までの、値と変化回数が一致しているかを判定している。なお、開始タイミングや終了タイミングについては多少ずれても問題ない。
【0086】
図16の説明に戻る。S83でCPU41aは、抽出したサイクルパターンを属性情報として各デバイスに付加する。次に、S84でCPU41aは、付加された属性情報に基づいてS81で取得した運転記録データからモデルを生成し、処理を終了する。生成したモデルは、分析時に利用するマスタデータであり、少なくとも各デバイスのサイクルパターンの情報が含まれる。
【0087】
<未学習時の分析>
図18は未学習時の分析制御を示す。上記実施形態では、図10を用いて説明したように、モデルが作成されている状態で運転記録データの分析を行う例について説明した。しかし、工場の設備を変更した場合や、PLCシステムの変更をした場合などの初期起動時においてはモデルが作成されておらず、分析において既に作成されたモデルを利用することができない。
【0088】
しかし、図18に示すように、分析ユニット4aは、分析を行う際に基本ユニット3から取得した運転記録データに基づいてまず、異常が発生していないであろう初期データ1801からマスタデータであるモデルを作成するようにしてもよい。上述しているように、運転記録データは、運転記録の条件を満足するトリガ発生の前後のデータを記録している。即ち、何らかのイベントやエラーが発生する前のデータも運転記録データには含まれており、トリガ発生からある程度遡ったデータは正常に動作している可能性が高い。従って、正常な運転記録データと思われる初期データ1801を利用してモデルを作成し、データ1802を分析対象として分析することにより、未学習時であっても分析を行うことができる。なお、正常データとして扱う領域についてはオペレータによって設定可能としてもよい。
【0089】
<サイクル未設定>
図19はサイクル未設定の分析レポートの検知マップ1410を示す。分析ユニット4aはサイクル未設定であっても分析は可能であるが、分析可能なデバイスは極端に少ない。つまり、サイクルパターンを有していないデバイスに限られる。サイクルパターンを有していないデバイスとは、たとえばデバイス値が固定値で変化しないデバイスである。たとえば、図19の1901に示すように、常時ONや常時OFFのデバイスはサイクルが未設定であっても分析を行うことができる。一方、所定のサイクルパターンを有するデバイスについてはサイクルが未設定であれば分析を行うことができない。このように、分析可能なデバイスが少ないため、サイクルが未設定の場合は分析自体は可能であるものの、分析結果の有効性は限定的である。したがって、図19に示すように、分析レポートにおいて、サイクルが未設定である旨と、サイクル設定を促すメッセージ1902を表示するようにしてもよい。「サイクル設定して分析する」が選択されるとサイクル設定のポップアップ画面が表示され、オペレータはサイクル設定を行うことができる。
【0090】
<モデル信頼度>
図20はモデル信頼度を説明する図である。生成したモデルは生成時に扱ったデータ量に応じてその信頼度が変化するものである。そこで、分析ユニット4aは、モデル生成時にそのモデルの信頼度を測定して、属性情報としてモデルに付加する。図20には、10サイクルの運転記録データを取得した場合に、モデル生成と分析を行う様子が示されている。たとえば、10サイクルの運転記録データを取得したとしても、シンプルなデバイスではモデル生成に十分なデータであるものの、非同期のデバイスなどでは不十分な可能性もある。従って、サイクル数だけでは生成したモデルの信頼度を推測することは難しい。そこでモデルの信頼度を測定して提示することができれば良いモデルができたかどうかをオペレータが判断することができる。
【0091】
2001~2003は学習時に、正常データを1サイクルずつ学習、追加学習を繰り返し、次のサイクルのデータを分析した様子を示す。2001は7サイクルを利用してモデルを生成し、8サイクル目を分析した場合を示す。2002は8サイクルを利用してモデルを生成し、9サイクル目を分析した場合を示す。2003は9サイクルを利用してモデルを生成し、10サイクル目を分析した場合を示す。図20に示す例では、たとえば、それぞれ生成したモデルにおいて、異常の検知数は、2001で8つ、2002で3つ、2003で5つとなる。本来正常データであるため検知数は0になることが望ましい。しかし、正常データの量が不十分である場合には0にならない。これらの異常の検知数をそのまま信頼度としてオペレータに提示してもよいが、検知個数を信頼度に正規化して提示してもよい。たとえば、検知数が0であれば信頼度を最も高い”3”とし、検知数が1~10であれば信頼度を”2”として、検知数が11~20であれば信頼度を”1”とし、検知数が21以上であれば信頼度を”0”としてもよい。たとえば、図20に示すように、2001の検知数が最も多い測定値を利用して信頼度を取得してもよい。なお、学習が一旦終了したタイミングで学習の完了と生成したモデルの信頼度を提示し、更なる学習を行うかをオペレータに選択させてもよい。或いは、所定の信頼度に到達するまで学習を繰り返すようにしてもよい。
【0092】
<システム構成の変形例>
図21はPLCシステム構成の変形例を示す。上記実施形態では、PLCシステムとして、基本ユニット3、分析ユニット4a、およびカメラユニットなどの拡張ユニット4bで構成されるPLC1と、基本ユニット3に接続されるPC2aと、分析ユニット4aに接続される分析レポートを表示するPC2bとを含んで構成される例について説明した。しかし、これらの構成は一例であって、上述した運転記録データの収集、モデルの生成、分析、分析結果の表示については何れの装置やユニットで行われてもよいし、さらに他の外部装置や他の拡張ユニットによって実現されてもよい。ここではそのような構成の変形例について説明する。
【0093】
たとえば、図21に示すように、上記実施形態に係る分析ユニット4aの機能をPLC1の上位層に配置される分析装置2cで実現してもよい。モデルの学習フェーズの処理などは非常に処理負荷が高く、処理時間を要するものであるため、PLCユニットの処理能力に応じて外部で実現することも想定され得る。また、上位層の装置に分析機能を設けることにより、他のPLCからも情報を吸い上げることもでき、より信頼度の高いモデルを生成することも可能となる。分析装置2cは、PLC固有情報の解析、モデルの生成、分析、分析レポートの作成などの機能を有する。これらの機能については、分析ユニット4aと同様の処理であるため説明を省略する。
【0094】
また、上記実施形態では、基本ユニット3が全デバイスの運転記録データを収集していたが、他の拡張ユニット行ってもよい。たとえば、図21に示すように、拡張ユニットとしてレコーダユニット4cを設けてもよい。レコーダユニット4cはCPU41cと、メモリ42cと、通信部43cとを備える。メモリ42cには、上記実施形態で基本ユニット3に設けられていたリングバッファ44cと、運転記録記憶部45cとの記憶領域が設けられる。運転記録の収集については、上記実施形態の基本ユニット3と同様の処理であるため詳細な説明については省略する。
【0095】
このように、本発明によれば、上記実施形態で説明した処理機能を実現する装置又はユニットは可能な範囲で変更することができるものであり、本発明はそれらの変形を包括するものである。上記変形例では、基本ユニット3とは別に運転記録データを収集するレコーダユニット4cを設ける例を説明したが、当該ユニットには収集機能および通信機能を設けて、保存先についてはネットワークを介して接続されたデータベースとしてもよい。これにより、より大容量のデータを保存することができ、トリガ発生時よりもかなり遡った解析を行うことができるとともに、他のPLCシステムのデータも利用することが可能となる。
【0096】
また、上記変形例では、処理機能を基本ユニット3とは別のユニットで実現したり、外部装置で実現する例について説明したが、基本ユニット3にそれらの処理機能を一体化する形態であってもよい。このような構成のメリットは、他のユニットや外部装置との通信処理を省略できるため通信による処理負荷を低減でき、PLC制御への影響を低減することができる点にある。なお、一体化する場合においての性能は基本ユニット3の性能に依存することになるため、基本ユニット3の高性能化が必要となる。
【0097】
<まとめ>
[観点1]
本発明は、分析装置であって、プログラマブルロジックコントローラに関わる情報を解析して決定されたデバイスについての属性情報を記憶する記憶手段と、ユーザプログラムを繰り返し実行する実行エンジンと、前記ユーザプログラムの実行によって収集される、時系列の複数のデバイス値を含む運転記録データを取得する取得手段と、前記記憶手段に記憶された属性情報に基づいて、取得された前記運転記録データについて正常条件を満たさない非正常デバイスを分析した分析レポートを出力する処理手段とを備える。本実施形態によれば、基本ユニットが保持するデバイスや変数以外の情報を利活用して、膨大なデータから効率よく分析を行うことができ、また、膨大なデータの分析結果から重要なデータを抽出してレポートすることもできる。
【0098】
[観点2]
上記実施形態において、前記処理手段は、前記複数のデバイス値のうち、前記記憶手段に記憶された属性情報に関連するデバイス値を分析して前記分析レポートを出力する。本実施形態によれば、基本ユニットが保持するデバイスや変数以外の情報を利活用して、膨大なデータから効率よく分析を行うことができる。
【0099】
[観点3]
上記実施形態において、前記処理手段は、前記複数のデバイス値を分析し、前記複数のデバイス値の分析結果のうち、前記記憶手段に記憶された属性情報に関連するデバイス値の分析結果を前記分析レポートとして出力する。本実施形態によれば、膨大なデータの分析結果から重要なデータを抽出してレポートすることができる。
【0100】
[観点4]
上記実施形態によれば、前記PLC情報を解析して所定の属性に対応するシンボルを決定する解析手段をさらに備える。本実施形態によれば、決定したシンボルに絞り込んで分析処理や分析レポートの生成処理を行うことができ、効率的な分析を行うことができる。
【0101】
[観点5]
上記実施形態において、前記PLC情報は、前記プログラマブルロジックコントローラに含まれるユニットの構成情報を含み、前記解析手段は、前記ユニットの構成情報を解析してシンボルに対応するユニットの属性を決定する。本実施形態によれば、PLCのユニットの構成情報を考慮して分析を行うことができ、分析対象を好適に絞り込むことも可能である。
【0102】
[観点6]
上記実施形態において、前記PLC情報は、前記プログラマブルロジックコントローラに含まれるユニットと通信機器との間の通信の接続情報および通信設定情報を含み、前記解析手段は、前記接続情報および前記通信設定情報を解析して、シンボルに対応する通信相手の属性を決定する。本実施形態によれば、PLCのユニットと通信機器との間の通信の接続情報および通信設定情報を考慮して分析を行うことができ、分析対象を好適に絞り込むことも可能である。
【0103】
[観点7]
上記実施形態において、前記PLC情報は、前記ユーザプログラムを含み、前記解析手段は、前記ユーザプログラムを解析して、シンボルに対応する前記ユーザプログラムに関する属性を決定する。本実施形態によれば、ユーザプログラムの解析結果を考慮して分析を行うことができ、分析対象を好適に絞り込むことも可能である。
【0104】
[観点8]
上記実施形態において、前記ユーザプログラムに関する属性は、ユーザプログラムで使用したシンボルの使用回数、コメントが付加されたシンボルの情報、シンボルの入力接点に関する情報、およびシンボル値の型情報の少なくとも1つを含む。本実施形態によれば、ユーザプログラムに関して種々の観点で分析を行うことができる。
【0105】
[観点9]
上記実施形態において、前記分析レポートを示す結果表示画面を出力する出力手段をさらに備え、前記結果表示画面には、前記分析レポートの表示項目を絞るための条件を指定可能なフィルタ設定領域が含まれる。本実施形態によれば、分析結果の表示項目を絞ることができ、効率的な分析を行うことができる。
【0106】
[観点10]
上記実施形態において、前記フィルタ設定領域では、シンボルの動作サイクルの指定、属性情報の指定、および、イベント、エラーの指定の少なくとも1つによってフィルタが指定可能である。本実施形態によれば、種々の項目で分析結果の表示項目を絞ることができ、異なる視点での分析を行うことができる。
【0107】
[観点11]
上記実施形態によれば、前記出力手段からの出力された前記結果表示画面の画面情報を外部装置へ送信手段をさらに備え、前記外部装置では、前記結果表示画面が操作可能に表示部に表示される。本実施形態によれば、分析レポートを外部装置へ送信することができ、たとえばより高性能のPC等で分析レポートを解析することができ、より詳細な分析やよりリッチな操作体系を有する結果表示画面の表示を可能とする。
【0108】
[観点12]
上記実施形態によれば、前記結果表示画面には、検知された非正常シンボルのサイクルおよび異常が検知されたタイミングを示す検知マップと、検知された非正常シンボルの工程および発生時刻を示す検知リストと、カメラ映像と、いつもと異なる状態が検知された原因を示す分析コメントとの少なくとも1つが含まれる。本実施形態によれば、分析結果を種々の形態で提示することができ、オペレータに対してより効率的な分析を行わせることができる。
【0109】
[観点13]
上記実施形態によれば、前記検知マップ、前記検知リスト、前記カメラ映像、および前記分析コメントは、互いに時間軸を連動して操作可能である。本実施形態によれば、各表示形態を関連して分析することができ、より効率的な分析を支援することができる。
【0110】
[観点14]
前記解析手段によって解析されたシンボルごとの前記所定の属性と、前記運転記録データとを用いて、正常時の運転記録データを示すマスタデータとして学習モデルを生成するモデル生成手段をさらに備え、前記処理手段は、前記モデル生成手段によって生成された前記学習モデルと、前記運転記録データとを比較して、いつもと異なる状態であるシンボルを検知することにより分析を行う。本実施形態によれば、シンボルごとの属性に従った学習モデルを生成して分析するため、シンボルごとの特性に適した分析を効率的に行うことができる。
【0111】
[観点15]
上記実施形態において、前記処理手段は、前記モデル生成手段によって前記学習モデルが生成されていない場合には、前記取得手段によって取得した運転記録データの一部を用いて前記モデル生成手段によって前記学習モデルを生成させ、生成された前記学習モデルを用いて前記運転記録データの一部以外のデータを分析する。本実施形態によれば、PLCシステムの初期起動時やシステム変更が行われた場合であっても、初期動作時から分析を行うことができ、より安全にシステムを動作させることができる。
【0112】
[観点16]
上記実施形態において、前記モデル生成手段は、生成した前記学習モデルの正常データを分析した際の誤検知の数を測定して、測定した誤検知の数に応じた前記学習モデルの信頼度を前記学習モデルに付加する。本実施形態によれば、学習モデルの信頼度をオペレータが確認することができ、分析結果の利用をより適切に行うことができる。
【0113】
[観点17]
本発明は、サーバ装置とプログラマブルロジックコントローラとが通信可能な分析システムであって、前記プログラマブルロジックコントローラに関わる情報のうちシンボル値と異なるPLC情報を記憶する記憶手段と、ユーザプログラムを繰り返し実行する実行エンジンと、前記ユーザプログラムの実行によって収集される、時系列の複数のシンボル値を含む運転記録データを取得する取得手段と、前記記憶手段に記憶された属性情報に基づいて、取得された前記運転記録データについて正常条件を満たさない非正常シンボルを分析した分析レポートを出力する処理手段とを備える。本実施形態によれば、基本ユニットが保持するデバイスや変数以外の情報を利活用して、膨大なデータから効率よく分析を行うことができ、また、膨大なデータの分析結果から重要なデータを抽出してレポートすることもできる。
【0114】
[観点18]
上記実施形態において、前記記憶手段、前記取得手段、および前記処理手段の少なくとも1つは前記サーバ装置に設けられる。本実施形態によれば、PLCの開発コストや、サーバ装置の性能等に応じて、本発明を実現するための構成をフレキシブルに適切なコンポーネントへ組み込むことが可能となり、システム設計の自由度を向上することができる。
【0115】
[観点19]
上記実施形態において、前記プログラマブルロジックコントローラは、
前記実行エンジンを備えるCPUユニットと、前記記憶手段および前記取得手段を実現する前記プログラマブルロジックコントローラに設けられるレコーダユニットとを備え、前記サーバ装置は、前記処理手段を備える。本実施形態によれば、PLCの開発コストや、サーバ装置の性能等に応じて、本発明を実現するための構成をフレキシブルに適切なコンポーネントへ組み込むことが可能となり、システム設計の自由度を向上することができる。
【0116】
発明は上記の実施形態に制限されるものではなく、発明の要旨の範囲内で、種々の変形・変更が可能である。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21