(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024129632
(43)【公開日】2024-09-27
(54)【発明の名称】情報処理装置、情報処理方法およびプログラム
(51)【国際特許分類】
G05B 23/02 20060101AFI20240919BHJP
【FI】
G05B23/02 302Y
【審査請求】未請求
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2023038961
(22)【出願日】2023-03-13
(71)【出願人】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】坂下 将太
【テーマコード(参考)】
3C223
【Fターム(参考)】
3C223AA12
3C223BA03
3C223BB08
3C223CC02
3C223DD03
3C223EB05
3C223FF13
3C223FF35
3C223GG01
3C223HH02
3C223HH03
3C223HH07
3C223HH08
3C223HH13
(57)【要約】
【課題】ユーザによる動画上の生産設備の異常な動作の見逃しを抑制することが可能な情報処理装置を提供する。
【解決手段】情報処理装置は、対象動作を繰り返し実行する生産設備が写る、対象動作ごとの複数の動画の中から、対象動作が正常であるときの正常動画と、対象動作が異常であるときの異常動画とを選択する選択部と、異常動画の撮影中における生産設備の状態を示すデータに基づいて、生産設備の1以上の異常箇所を特定する特定部と、正常動画と異常動画とが再生される画面を示す画面データを出力する出力部とを備える。画面の異常動画上において、1以上の異常箇所が強調表示される。
【選択図】
図1
【特許請求の範囲】
【請求項1】
情報処理装置であって、
対象動作を繰り返し実行する生産設備が写る、前記対象動作ごとの複数の動画の中から、前記対象動作が正常であるときの正常動画と、前記対象動作が異常であるときの異常動画とを選択する選択部と、
前記異常動画の撮影中における前記生産設備の状態を示すデータに基づいて、前記生産設備の1以上の異常箇所を特定する特定部と、
前記正常動画と前記異常動画とが再生される画面を示す画面データを出力する出力部とを備え、
前記画面の前記異常動画上において、前記1以上の異常箇所が強調表示される、情報処理装置。
【請求項2】
前記データは、前記生産設備に関する1以上の変数の第1時系列データセットを含み、
前記特定部は、
前記1以上の変数のうち、前記第1時系列データセットによって示される値と前記正常動画の撮影中における前記1以上の変数の第2時系列データセットによって示される値との偏差が第1閾値を超える異常変数を特定し、
前記生産設備の複数の部位のうち前記異常変数に関連する部位を第1異常箇所として特定する、請求項1に記載の情報処理装置。
【請求項3】
前記画面において、前記異常動画に含まれる複数のフレームのうち、前記偏差が前記第1閾値を超える時刻に対応するフレームにおいて前記第1異常箇所が強調表示される、請求項2に記載の情報処理装置。
【請求項4】
前記画面は、前記第1時系列データセットによって示される前記異常変数の値と前記第2時系列データセットによって示される前記異常変数の値との推移を示すグラフを含み、
前記グラフにおいて、前記偏差が前記第1閾値を超える部分が強調表示される、請求項2に記載の情報処理装置。
【請求項5】
前記データは、前記生産設備において発生したイベントのログデータを含み、前記ログデータは、イベントごとの発生箇所および内容を示し、
前記特定部は、前記ログデータに基づいて、前記内容が異常を示すイベントの発生箇所を第2異常箇所として特定する、請求項1に記載の情報処理装置。
【請求項6】
前記データは、前記生産設備において発生したイベントのログデータを含み、前記ログデータは、イベントごとの発生箇所および内容を示し、
前記特定部は、前記ログデータに基づいて、前記内容が異常を示すイベントの発生箇所を第2異常箇所として特定し、
前記画面において、前記第1異常箇所と前記第2異常箇所とが異なる形式で強調表示される、請求項2に記載の情報処理装置。
【請求項7】
前記ログデータは、イベントごとの発生時刻をさらに示し、
前記画面において、前記異常動画に含まれる複数のフレームのうち、前記内容が異常を示すイベントの発生時刻に対応するフレームにおいて前記第2異常箇所が強調表示される、請求項5または6に記載の情報処理装置。
【請求項8】
前記画面の前記異常動画において、前記正常動画との差分が第2閾値を超える領域が強調表示される、請求項1から6のいずれか1項に記載の情報処理装置。
【請求項9】
前記画面において、前記1以上の異常箇所と前記領域とが異なる形式で強調表示される、請求項8に記載の情報処理装置。
【請求項10】
情報処理方法であって、
対象動作を繰り返し実行する生産設備が写る、前記対象動作ごとの複数の動画の中から、前記対象動作が正常であるときの正常動画と、前記対象動作が異常であるときの異常動画とを選択することと、
前記異常動画の撮影中における前記生産設備の状態を示すデータに基づいて、前記生産設備の1以上の異常箇所を特定することと、
前記正常動画と前記異常動画とが再生される画面を示す画面データを出力することとを備え、
前記画面の前記異常動画上において、前記1以上の異常箇所が強調表示される、情報処理方法。
【請求項11】
情報処理方法をコンピュータに実行させるプログラムであって、
前記情報処理方法は、
対象動作を繰り返し実行する生産設備が写る、前記対象動作ごとの複数の動画の中から、前記対象動作が正常であるときの正常動画と、前記対象動作が異常であるときの異常動画とを選択することと、
前記異常動画の撮影中における前記生産設備の状態を示すデータに基づいて、前記生産設備の1以上の異常箇所を特定することと、
前記正常動画と前記異常動画とが再生される画面を示す画面データを出力することとを含み、
前記画面の前記異常動画上において、前記1以上の異常箇所が強調表示される、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、情報処理装置、情報処理方法およびプログラムに関する。
【背景技術】
【0002】
製造業において、生産設備の異常な動作の確認のために、生産設備の動画を再生する情報処理装置が利用される(特開2020-13528号公報(特許文献1)参照)。情報処理装置のユーザは、正常に動作しているときの生産設備の動画と、評価対象動画とを比較することにより、評価対象動画に写る生産設備の異常な動作を確認できる。特開2016-146133号公報(特許文献2)は、2つの動画を容易に比較できるように、2つの動画間の相違箇所に対応付けてマークを表示する技術を開示している。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2020-13528号公報
【特許文献2】特開2016-146133号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
正常に動作しているときの生産設備の動画と、異常に動作しているときの生産設備の動画との相違がわずかである場合がある。このような場合、特許文献2に記載の技術ではマークが表示されず、正常に動作しているときの生産設備の動画と異常に動作しているときの生産設備の動画との相違がユーザによって見逃されやすくなる。
【0005】
本開示は、上記の問題に鑑みてなされたものであり、その目的は、ユーザによる動画上の生産設備の異常な動作の見逃しを抑制することが可能な情報処理装置、情報処理方法およびプログラムを提供することである。
【課題を解決するための手段】
【0006】
本開示の一例によれば、情報処理装置は、選択部と、特定部と、出力部とを備える。選択部は、対象動作を繰り返し実行する生産設備が写る、対象動作ごとの複数の動画の中から、対象動作が正常であるときの正常動画と、対象動作が異常であるときの異常動画とを選択する。特定部は、異常動画の撮影中における生産設備の状態を示すデータに基づいて、生産設備の1以上の異常箇所を特定する。出力部は、正常動画と異常動画とが再生される画面を示す画面データを出力する。画面の異常動画上において、1以上の異常箇所が強調表示される。
【0007】
この開示によれば、ユーザは、強調表示された異常箇所について、正常動画と異常動画とを比較することにより、異常な動作を確認しやすくなる。その結果、ユーザによる動画上の生産設備の異常な動作の見逃しが抑制される。
【0008】
上述の開示において、データは、生産設備に関する1以上の変数の第1時系列データセットを含む。特定部は、1以上の変数のうち、第1時系列データセットによって示される値と正常動画の撮影中における1以上の変数の第2時系列データセットによって示される値との偏差が第1閾値を超える異常変数を特定する。特定部は、生産設備の複数の部位のうち異常変数に関連する部位を第1異常箇所として特定する。
【0009】
この開示によれば、1以上の変数の時系列データセットを用いることにより、第1異常箇所が容易に特定される。
【0010】
上述の開示では、画面において、異常動画に含まれる複数のフレームのうち、偏差が第1閾値を超える時刻に対応するフレームにおいて第1異常箇所が強調表示される。
【0011】
この開示によれば、偏差が第1閾値を超える時刻に対応するフレームにおいて第1異常箇所が強調表示されるため、ユーザは、異常な動作を確認しやすくなる。
【0012】
上述の開示において、画面は、第1時系列データセットによって示される異常変数の値と第2時系列データセットによって示される異常変数の値との推移を示すグラフを含む。グラフにおいて、偏差が第1閾値を超える部分が強調表示される。
【0013】
この開示によれば、ユーザは、グラフにおいて、偏差が第1閾値を超える部分に注目し、異常変数と生産設備の異常な動作との関連性を確認できる。
【0014】
上述の開示において、データは、生産設備において発生したイベントのログデータを含む。ログデータは、イベントごと発生箇所および内容を示す。特定部は、ログデータに基づいて、内容が異常を示すイベントの発生箇所を第2異常箇所として特定する。
【0015】
この開示によれば、ログデータを用いることにより、第2異常箇所が容易に特定される。
【0016】
上述の開示において、データは、生産設備において発生したイベントのログデータを含む。ログデータは、イベントごとの発生箇所および内容を示す。特定部は、ログデータに基づいて、内容が異常を示すイベントの発生箇所を第2異常箇所として特定する。画面において、第1異常箇所と第2異常箇所とが異なる形式で強調表示される。
【0017】
この開示によれば、ユーザは、強調表示された異常箇所が、時系列データセットに基づいて特定された第1異常箇所およびログデータに基づいて特定された第2異常箇所のいずれであるかを認識できる。
【0018】
上述の開示において、ログデータは、イベントごとの発生時刻をさらに示す。画面において、異常動画に含まれる複数のフレームのうち、内容が異常を示すイベントの発生時刻に対応するフレームにおいて第2異常箇所が強調表示される。
【0019】
この開示によれば、内容が異常を示すイベントの発生時刻に対応するフレームにおいて第2異常箇所が強調表示されるため、ユーザは、異常な動作を確認しやすくなる。
【0020】
上述の開示では、画面の異常動画において、正常動画との差分が第2閾値を超える領域が強調表示される。
【0021】
この開示によれば、ユーザは、異常動画において、正常動画と異なる領域に注目できる。
【0022】
上述の開示において、画面において、1以上の異常箇所と領域とが異なる形式で強調表示される。
【0023】
この開示によれば、ユーザは、強調表示の形式に基づいて、1以上の異常箇所と、正常動画との差分が第2閾値を超える領域とを区別して視認できる。
【0024】
本開示の別の例によれば、情報処理方法は、対象動作を繰り返し実行する生産設備が写る、対象動作ごとの複数の動画の中から、対象動作が正常であるときの正常動画と、対象動作が異常であるときの異常動画とを選択することと、異常動画の撮影中における生産設備の状態を示すデータに基づいて、生産設備の1以上の異常箇所を特定することと、正常動画と異常動画とが再生される画面を示す画面データを出力することとを備える。画面の異常動画上において、1以上の異常箇所が強調表示される。
【0025】
本開示のさらに別の例によれば、プログラムは、情報処理方法をコンピュータに実行させる。情報処理方法は、対象動作を繰り返し実行する生産設備が写る、対象動作ごとの複数の動画の中から、対象動作が正常であるときの正常動画と、対象動作が異常であるときの異常動画とを選択することと、異常動画の撮影中における生産設備の状態を示すデータに基づいて、生産設備の1以上の異常箇所を特定することと、正常動画と異常動画とが再生される画面を示す画面データを出力することとを備える。画面の異常動画上において、1以上の異常箇所が強調表示される。
【0026】
これらの開示によっても、情報処理方法またはプログラムは、ユーザによる動画上の生産設備の異常な動作の見逃しを抑制できる。
【発明の効果】
【0027】
本開示によれば、情報処理装置、情報処理方法またはプログラムは、ユーザによる動画上の生産設備の異常な動作の見逃しを抑制できる。
【図面の簡単な説明】
【0028】
【
図1】実施の形態に係る情報処理装置を含む製造システムの一例を模式的に例示する図である。
【
図2】実施の形態に係る情報処理装置のハードウェア構成の一例を示す模式図である。
【
図3】実施の形態に従うPLCのハードウェア構成の一例を示す模式図である。
【
図6】実施の形態に係る情報処理装置およびPLCのモジュール構成の一例を示す模式図である。
【
図8】情報処理装置における処理の流れの一例を示すフローチャートである。
【
図9】情報処理装置から出力される画面に含まれるウィンドウの一例を示す図である。
【
図10】情報処理装置から出力される画面に含まれる別のウィンドウの一例を示す図である。
【発明を実施するための形態】
【0029】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。本明細書において、特に示さない限り、「または」の用語は、「または」の意味に加えて、「および」の意味を包含する。
【0030】
§1 適用例
図1は、実施の形態に係る情報処理装置を含む製造システムの一例を模式的に例示する図である。
図1に示すように、実施の形態に係る製造システム1は、情報処理装置100と、PLC(Programmable Logic Controller)200と、カメラ300と、生産設備400と、を備える。
【0031】
生産設備400は、物の製造に関する設備であり、加工、検査、搬送、または組み立てなどの処理を行う。生産設備400は、複数の機器で構成されてもよいし、1つの機器で構成されてもよい。生産設備400は、製造に関する対象動作を繰り返し実行する。例えば、
図1に示す生産設備400は、ハンドを有する多関節ロボットを含み、対象物のピックアンドプレース動作を行なう。なお、生産設備400は、多関節ロボットに限定されず、各種の動作を行なう機構を含み得る。
【0032】
PLC200は、予め作成された制御プログラムに従って、対象動作(例えば、対象物のピックアンドプレース動作)を繰り返し実行するように生産設備400を制御する。PLC200は、生産設備400を制御するために、予め定められた制御周期毎に入出力データ(以下、「IOデータ」と称する)を取得(収集)する。IOデータは、生産設備400からPLC200へ転送される入力データと、生産設備400へ出力される出力データとを含む。さらに、IOデータは、制御演算によって算出される各種のデータを含み得る。
【0033】
さらに、PLC200は、生産設備400の対象動作の開始タイミングにおいて、カメラ300に撮影開始指示を出力し、対象動作の終了タイミングにおいて、カメラ300に撮影終了指示を出力する。
【0034】
カメラ300は、生産設備を撮影することにより得られる動画データ(以下、単に「動画50」と称する)を情報処理装置100に出力する。カメラ300は、PLC200から撮影開始指示を受けると撮影を開始し、撮影終了指示を受けると撮影を終了し、撮影により得られる動画50を出力する。上述したように、撮影開始指示は、生産設備400の対象動作の開始タイミングにおいて出力され、撮影終了指示は、対象動作の終了タイミングにおいて出力される。そのため、カメラ300は、対象動作ごとに動画50を生成する。
【0035】
情報処理装置100は、カメラ300から受けた動画50を蓄積する記憶部10を備え、以下の処理(1)~(3)を行なう。
【0036】
処理(1)において、情報処理装置100は、記憶部10に保存された複数の動画50の中から、対象動作が正常であるときの正常動画50aと、対象動作が異常であるときの異常動画50bとを選択する。
【0037】
処理(2)において、情報処理装置100は、異常動画50bの撮影中における生産設備400の状態を示す状態データ221に基づいて、生産設備400の1以上の異常箇所を特定する。状態データ221は、例えば、異常動画50bの撮影中にPLC200によって収集されるIOデータから生成される。
【0038】
処理(3)において、情報処理装置100は、正常動画50aと異常動画50bとが再生される画面60を示す画面データを出力する。
図1に示す例では、画面60において、破線で示される正常動画50aと実線で示される異常動画50bとが重ねて表示される。そして、画面60の異常動画50b上において、処理(2)によって特定された1以上の異常箇所が強調表示される。
図1に示す例では、処理(2)において、生産設備400のハンドの一方の指41が異常箇所として特定され、画面60の異常動画50bにおいて、指41を囲むように枠線80が表示される。
【0039】
本実施の形態によれば、画面60において、正常動画50aと異常動画50bとが再生され、異常動画50b上の異常箇所が強調表示される。これにより、ユーザは、強調表示された異常箇所について、正常動画50aと異常動画50bとを比較することにより、異常な動作を確認しやすくなる。その結果、動画上の生産設備の異常な動作の見逃しが抑制される。
【0040】
§2 具体例
<情報処理装置のハードウェア構成>
図2は、実施の形態に係る情報処理装置のハードウェア構成の一例を示す模式図である。
図2に示されるように、情報処理装置100は、CPU(Central Processing Unit)110と、DRAM(Dynamic Random Access Memory)などの揮発性の記憶装置で構成されるメモリ112と、不揮発性の記憶装置で構成されるハードディスク114と、入力インターフェイス118と、表示コントローラ120と、通信インターフェイス124と、データリーダ/ライタ126とを含む。これらの各部は、バス128を介して互いにデータ通信が可能なように接続されている。
【0041】
CPU110は、ハードディスク114に格納された解析プログラム116を読出して、メモリ112に展開する。CPU110は、展開されたプログラムを実行する。CPU110は、例えばマルチコアプロセッサであり、並列して複数の処理を実行可能である。なお、ハードディスク114の代わり、他の不揮発性の記憶装置(例えばSSD(Solid State Drive)など)が使用されてもよい。
【0042】
入力インターフェイス118は、CPU110とキーボード、マウス、またはタッチパネルなどの入力装置132との間のデータ伝送を仲介する。すなわち、入力インターフェイス118は、後述する各種のユーザ入力を示すデータを入力装置132から受け付け、受け付けたデータをCPU110に伝送する。表示コントローラ120は、ディスプレイ122と接続され、CPU110における処理の結果などをディスプレイ122に表示する。通信インターフェイス124は、PLC200およびカメラ300と通信する。データリーダ/ライタ126は、CPU110と外部の記憶媒体130との間のデータ伝送を仲介する。記憶媒体130は、揮発性記憶媒体、不揮発性記憶媒体、CF(Compact Flash)もしくはSD(Secure Digital)などの汎用的な半導体記憶デバイス、フレキシブルディスク(Flexible Disk)などの磁気記憶媒体、またはCD-ROM(Compact Disk Read Only Memory)などの光学記憶媒体を含む。
【0043】
解析プログラム116は、単体のプログラムとしてではなく、任意のプログラムの一部に組み込まれて提供されてもよい。この場合、任意のプログラムと協働して本実施の形態に従う処理が実現される。また、解析プログラム116によって提供される機能の一部または全部は、専用のハードウェア回路(例えば、ASIC(Application Specific Integrated Circuit)、またはFPGA(Field-Programmable Gate Array))によって実現されてもよい。
【0044】
<PLCのハードウェア構成>
図3は、実施の形態に従うPLCのハードウェア構成の一例を示す模式図である。
図3を参照して、PLC200は、主たるコンポーネントとして、PLC200の各部に電力PWを供給する電源回路201と、CPU202と、チップセット204と、主に揮発性記憶媒体からなるメモリ206と、主に不揮発性記憶媒体を含むストレージ208と、USBコントローラ250と、フィールドネットワークコントローラ252と、ネットワークコントローラ254と、タイマ260とを含む。
【0045】
CPU202は、ストレージ208に格納された制御プログラム214を読出して、メモリ206に展開する。CPU202は、予め定められた制御周期で展開されたプログラムを繰り返し実行することで、生産設備400を制御するための制御演算処理を実現する。
【0046】
CPU202は、ストレージ208に格納されたIOリフレッシュプログラム215を読出して、メモリ206に展開する。CPU202は、予め定められた制御周期で展開されたプログラムを実行することでIOデータ220の収集処理とログデータ224の生成処理とを実現する。IOデータ220は、生産設備400から受ける入力データと、生産設備400への出力データとを含む。IOデータ220は、上記の制御演算処理に利用され得る。
【0047】
図4は、ログデータの一例を示す図である。
図4に示されるように、ログデータ224は、生産設備400において発生したイベントごとの、発生日時と、ステータスと、発生箇所と、内容とを示す。CPU202は、IOデータ220および制御演算結果に基づいてログデータ224を更新する。ログデータ224は、
図1に示す状態データ221の一例である。
【0048】
図3に示すCPU202は、ストレージ208に格納されたデータ収集プログラム216を読出して、メモリ206に展開する。CPU202は、展開されたプログラムを解釈および実行することで、時系列データセット222の収集処理と、カメラ300への撮影指示の出力処理とを実現する。撮影指示の出力処理は、撮影開始指示を出力する処理と、撮影終了指示を出力する処理とを含む。
【0049】
図5は、時系列データセットの一例を示す図である。
図5に示されるように、時系列データセット222は、予め定められた制御周期ごとに、制御周期に対応する時刻(例えば周期の開始時刻)と、生産設備400の状態を示す1以上の変数の値とを示す。1以上の変数は、設定情報230によって指定される。時系列データセット222は、
図1に示す状態データ221の一例である。
【0050】
図3に示すメモリ206は、DRAMまたはSRAM(Static Random Access Memory)などの揮発性記憶装置で構成される。ストレージ208は、例えば、HDD(Hard Disc Drive)、SSD(Solid State Drive)、またはフラッシュメモリなどの不揮発性記憶装置で構成されるが、一部は、揮発性ストレージで構成されてもよい。
【0051】
チップセット204は、CPU202と各コンポーネントとの間のデータの遣り取りを仲介することで、PLC200全体としての処理を実現する。
【0052】
ストレージ208には、PLC200の基本的な機能を実現するためのOS(Operating System)212およびスケジューラプログラム213を有するシステムプログラム211に加えて、制御対象に応じて作成される制御プログラム214と、IOリフレッシュプログラム215とが格納される。ストレージ208には、さらに、データ収集プログラム216が格納される。さらに、ストレージ108は、IOデータ220と、時系列データセット222と、ログデータ224と、設定情報230とが格納される領域を有する。設定情報230は、情報処理装置100によって生成される。
【0053】
USBコントローラ250は、USB(Universal Serial Bus)接続を介して外部の装置(情報処理装置100およびカメラ300を含む)との間のデータの遣り取りを担当する。なお、カメラ300とPLC200との間のデータの遣り取りは、フィールドネットワークコントローラ252またはネットワークコントローラ254を介して行なわれてもよい。
【0054】
フィールドネットワークコントローラ252は、生産設備400が属するフィールドネットワークを接続するコネクタ252aを有し、PLC200とフィールドネットワークを介した生産設備400との間のデータの遣り取りを制御する。フィールドネットワークコントローラ252は、フィールドネットワークから受信する入力データおよびPLC200からフィールドネットワークに出力される出力データを格納する内部バッファを有する。入力データおよび出力データは、IOデータ220に含まれる。
【0055】
ネットワークコントローラ254は、上位ネットワークを接続するコネクタ254aを有し、PLC200と外部の装置(例えば、製造実行システム(Manufacturing Execution System(MES))との間のデータの遣り取りを制御する。
【0056】
タイマ260は、時間を計測するクロック回路またはカウンタ回路を含んで構成されるが、このような回路に限定されず、CPU202が実行するソフトウェアモジュールにより構成されてもよい。
【0057】
図3には、CPU202がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGA)を用いて実装してもよい。あるいは、PLC200の主要部を、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、マルチコア技術を適用して処理を並列に実行してもよい。または、仮想化技術を用いて、用途の異なる複数のOSを並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
【0058】
<モジュール構成>
図6は、実施の形態に係る情報処理装置およびPLCのモジュール構成の一例を示す模式図である。
図6に示されるように、PLC200は、制御部20と、データ収集部22とを含む。制御部20は、
図3に示すCPU202が制御プログラム214およびIOリフレッシュプログラム215を実行することにより実現される。データ収集部22は、CPU202がデータ収集プログラム216を実行することにより実現される。
【0059】
制御部20は、予め定められた制御周期ごとに、生産設備400から各種の変数の値(例えばセンサの計測値など)を示す入力データを受け、生産設備400を制御するための制御演算を行なう。さらに、制御部20は、制御演算により得られる各種の変数の値(例えば指令値など)を示す出力データを生産設備400に出力する。このようにして、制御部20は、制御周期ごとに、入力データと出力データとを含むIOデータ220を収集する。
【0060】
さらに、制御部20は、収集されたIOデータ220に基づいて、ログデータ224を更新する。具体的には、制御部20は、各イベントに関する変数の値に基づいて異常発生の有無を判断し、判断結果に応じてログデータ224を更新する。制御部20は、更新されたログデータ224を情報処理装置100に出力する。
【0061】
データ収集部22は、情報処理装置100によって設定された設定情報230(
図3参照)に基づいて、生産設備400が繰り返し実行する対象動作ごとの時系列データセット222を生成する。データ収集部22は、生成した時系列データセット222を情報処理装置100に出力する。
【0062】
さらに、データ収集部22は、生産設備400が繰り返し実行する対象動作ごとの動画の撮影をカメラ300に指示する。すなわち、データ収集部22は、生産設備400が対象動作を開始するタイミングに撮影開始指示をカメラ300に出力し、生産設備400が対象動作を終了するタイミングに撮影終了指示をカメラ300に出力する。さらに、データ収集部22は、動画の出力をカメラ300に指示する。データ収集部22は、設定情報230に従って、動画の出力先として情報処理装置100を指定する。これにより、カメラ300は、対象動作ごとに動画50を生成し、生成した動画50を情報処理装置100に出力する。
【0063】
図6に示されるように、情報処理装置100は、記憶部10と、設定部11と、処理部12と、出力部13とを含む。記憶部10は、
図2に示すメモリ112およびハードディスク114によって実現される。設定部11、処理部12および出力部13は、
図2に示すCPU110が解析プログラム116を実行することにより実現される。
【0064】
記憶部10は、対象動作ごとの時系列データセット222と、ログデータ224と、対象動作ごとの動画50と、対応付け情報15とを記憶する。時系列データセット222およびログデータ224は、PLC200から伝送される。動画50は、カメラ300から伝送される。
【0065】
図7は、対応付け情報の一例を示す図である。
図7に示されるように、対応付け情報15は、時系列データセット222によって値が示される1以上の変数の各々と、生産設備400の複数の部位のうち変数に関連する部位とを対応付ける。例えば、生産設備400に含まれる多関節ロボットの第1関節の位置を示す変数aと、第1関節とが対応付けられる。また、ハンドの第1指の位置を示す変数bと、第1指とが対応付けられる。
【0066】
対応付け情報15は、制御プログラム214によって使用される各変数を設定する際に、ユーザ入力に応じて予め作成される。
【0067】
図6に示す設定部11は、時系列データセット222および動画50の収集に関する設定、および、処理部12の処理対象に関する設定を行なう。設定部11は、選択部11aと、収集データ設定部11bと、カメラ設定部11cとを含む。
【0068】
収集データ設定部11bは、時系列データセット222の収集に関する設定を行なう。具体的には、収集データ設定部11bは、ユーザ入力に応じて、対象動作の開始タイミングおよび終了タイミングを指定する情報を含む設定情報230を生成し、生成した設定情報230をPLC200に出力する。これにより、PLC200のデータ収集部22は、設定情報230に従って、対象動作ごとの時系列データセット222を収集する。
【0069】
例えば、PLC200が図示しない製造実行システムから対象動作の開始信号および終了信号を受けて対象動作に関する制御を行なう場合、ユーザは、開始信号および終了信号を受けるタイミングを対象動作の開始タイミングおよび終了タイミングとして入力すればよい。あるいは、ユーザは、対象動作の開始のときに値が変化する変数と変数の変化の特徴とを開始タイミングに関する情報として入力し、対象動作の終了のときに値が変化する変数と変数の変化の特徴とを終了タイミングに関する情報として入力してもよい。
【0070】
さらに、収集データ設定部11bは、ユーザ入力に応じて、IOデータ220によって示される複数の変数のうち、時系列データセット222に含める1以上の変数を指定する情報を設定情報230に含める。これにより、PLC200のデータ収集部22は、設定情報230に従って、生産設備400が対象動作を行なっている期間内に収集されたIOデータ220によって示される複数の変数の値のうち、指定された1以上の変数の値の推移を示す時系列データセット222を生成する。
【0071】
カメラ設定部11cは、ユーザ入力に応じて、カメラ300の撮影条件を設定する。設定された撮影条件は、PLC200に出力される。PLC200は、指定された撮影条件に従った撮影指示をカメラ300に出力する。これにより、カメラ300は、指定された撮影条件で撮影を行なう。
【0072】
さらに、カメラ設定部11cは、製造システム1(
図1参照)が複数のカメラを備える場合、ユーザ入力に応じて、複数のカメラの中からカメラ300を指定し、指定したカメラ300のIDをPLC200に出力する。PLC200は、設定情報230に従って、対象動作ごとの動画を撮影する指示を、指定されたIDのカメラ300に出力する。
【0073】
選択部11aは、ユーザ入力に応じて、表示対象となる動画50および時系列データセット222を選択する。
【0074】
具体的には、選択部11aは、ユーザ入力に応じて、記憶部10に格納された複数の動画50の中から、生産設備400の対象動作が正常であるときの正常動画50aを表示対象として選択する。例えば、選択部11aは、各動画50の撮影期間とログデータ224とに基づいて、内容が異常を示すイベントが発生していない撮影期間の第1リストを生成し、ユーザ入力に応じて、第1リストから1つの撮影期間(以下、「正常動作期間」と称する)を選択する。選択部11aは、正常動作期間に対応する動画50を正常動画50aとして選択する。
【0075】
選択部11aは、ユーザ入力に応じて、記憶部10に格納された複数の動画50の中から、生産設備400の対象動作が異常であるときの異常動画50bを表示対象として選択する。例えば、選択部11aは、各動画50の撮影期間とログデータ224とに基づいて、内容が異常を示すイベントが発生した撮影期間の第2リストを生成し、ユーザ入力に応じて、第2リストから1つの撮影期間(以下、「異常動作期間」と称する)を選択する。選択部11aは、異常動作期間に対応する動画50を異常動画50bとして選択する。
【0076】
さらに、選択部11aは、選択した正常動画50aおよび異常動画50bの各々に対応する時系列データセット222を表示対象として選択する。すなわち、選択部11aは、正常動作期間の時系列データセット222と、異常動作期間の時系列データセット222とを選択する。以下、正常動作期間の時系列データセット222を時系列データセット222aと称し、異常動作期間の時系列データセット222を時系列データセット222bと称する。時系列データセット222bは、第1時系列データセットに相当する。時系列データセット222aは、第2時系列データセットに相当する。
【0077】
選択部11aは、正常動画50a、異常動画50b、および時系列データセット222a,222bを記憶部10から読み出し、処理部12に出力する。
【0078】
処理部12は、選択部11aによって選択された、正常動画50a、異常動画50b、および時系列データセット222a,222bに対する処理を行なう。処理部12は、時刻調整部12aと、動画処理部12bと、特定部12cとを含む。
【0079】
時刻調整部12aは、時系列データセット222a,222bの時刻を調整する。例えば、時刻調整部12aは、時系列データセット222a,222bの各々について、開始時刻が基準時刻(例えば00:00)となるように時刻を調整する。
【0080】
あるいは、時刻調整部12aは、時系列データセット222a,222bの各々について、指定された条件(以下、「時刻合わせ条件」と称する)が満たされるタイミングを特定する。時刻合わせ条件は、ユーザ入力に従って指定される。例えば、時刻合わせ条件は、指定された変数(例えば、生産設備400に含まれる多関節ロボットの第1関節の位置)の値が第1指定値から第2指定値に変化するという条件である。時刻調整部12aは、特定したタイミングが基準時刻となるように、時系列データセット222a,222bの時刻を調整する。
【0081】
動画処理部12bは、正常動画50aおよび異常動画50bの各々について、各フレームの時刻を調整する。
【0082】
例えば、動画処理部12bは、正常動画50aおよび異常動画50bの各々について、1番目のフレームの時刻が基準時刻(例えば00:00)となるように各フレームの時刻を調整する。
【0083】
あるいは、時刻合わせ条件が指定された場合、動画処理部12bは、時系列データセット222aにおいて時刻合わせ条件が満たされるタイミングに対応するフレームの時刻が基準時刻となるように正常動画50aの各フレームの時刻を調整する。同様に、動画処理部12bは、時系列データセット222bにおいて時刻合わせ条件が満たされるタイミングに対応するフレームの時刻が基準時刻となるように異常動画50bの各フレームの時刻を調整する。
【0084】
さらに、動画処理部12bは、正常動画50aおよび異常動画50bに対する画像処理を行なってもよい。画像処理は、例えば、半透明化処理、エッジ強調処理、および生産設備400以外の背景部分を除去する処理の少なくとも1つを含む。
【0085】
半透明化処理を行なうことにより、正常動画50aと異常動画50bとを重ねて表示したとしても、両動画を確認することができる、なお、半透明化処理において、透明度は、例えば1/2に設定されるが、これに限られない。例えば、異常動画50bに対する透明度は1/2よりも小さく、正常動画50aに対する透明度は1/2よりも大きくてもよい。
【0086】
エッジ強調処理を行なうことにより、動画内の生産設備400の輪郭が強調される。その結果、撮影時の照明環境(例えば、明るさまたは光の当たり方を含む)に起因する、生産設備400の輪郭のぶれが軽減される。なお、エッジ強調処理として公知の技術が用いられる。半透明化処理およびエッジ強調処理の両方を行なう場合、エッジ強調処理は、半透明化処理の前に行なわれることが好ましい。なぜなら、明暗の差を低下させる半透明化処理の後にエッジ強調処理が行なわれると、エッジ強調処理におけるエッジ検出の精度が低下するためである。
【0087】
生産設備400以外の背景部分を除去する処理は、生産設備400の写る画素を特定する処理と、特定された画素以外の画素の濃度を0とする処理とを含む。生産設備400の写る画素を特定する処理は、例えば生産設備400のテンプレート画像を用いた公知の物体認識技術を用いて行なわれる。生産設備400以外の背景部分を除去する処理が行なわれることにより、正常動画50aおよび異常動画50bの各々において背景部分が写らない。その結果、ユーザは、正常動画50aおよび異常動画50bを確認することにより、生産設備400の動作を把握しやすくなる。
【0088】
特定部12cは、異常動画50bの撮影中における生産設備400の状態を示す状態データに基づいて、生産設備400の1以上の異常箇所を特定する。特定部12cは、状態データとして、時系列データセット222bまたはログデータ224を用いる。
【0089】
具体的には、特定部12cは、時系列データセット222bによって示される値と正常動画50aの撮影期間に対応する時系列データセット222aによって示される値との偏差が閾値Th1を超える異常変数を特定する。なお、閾値Th1は、変数ごとに設定される。特定部12cは、対応付け情報15に基づいて、異常変数に関連する部位を第1異常箇所として特定する。さらに、特定部12cは、上記の偏差が閾値Th1を超える期間(以下、「第1強調表示期間」と称する)を特定してもよい。
【0090】
さらに、特定部12cは、ログデータ224に基づいて、異常動画50bの撮影期間内に発生時刻が含まれ、かつ、内容が異常を示すイベントの発生箇所を第2異常箇所として特定する。さらに、特定部12cは、異常動画50bの撮影期間のうち、内容が異常を示すイベントが発生している期間(以下、「第2強調表示期間」と称する)を特定してもよい。
【0091】
出力部13は、処理部12によって処理された正常動画50aおよび異常動画50bが再生される画面を示す画面データを出力する。出力部13は、動画出力部13aと、時系列データ出力部13bとを含む。
【0092】
動画出力部13aは、再生の指示を受けると、画面において正常動画50aと異常動画50bとを再生させる。デフォルトとして、動画出力部13aは、画面において、正常動画50aおよび異常動画50bを1番目のフレームから再生させる。ただし、動画出力部13aは、正常動画50aと異常動画50bとの一方について、表示されるフレームの変更指示を受け付けてもよい。動画出力部13aは、フレームの変更指示を受け付けた場合、指示された動画について表示されるフレームを変更する。フレームの変更指示を受けた後に再生指示を受けると、動画出力部13aは、変更されたフレームから動画を再生させる。
【0093】
動画出力部13aは、異常動画50bにおいて、特定部12cによって特定された1以上の異常箇所(第1異常箇所および第2異常箇所の少なくとも一方を含む)を強調表示させる。すなわち、動画出力部13aは、異常動画50bにおいて、1以上の異常箇所の各々の写る画素群を強調表示する。
【0094】
動画出力部13aは、異常動画50bの各フレームにおいて、異常箇所の写る画素群を特定する。
【0095】
例えば、動画出力部13aは、生産設備400の複数の部位のテンプレート画像を予め記憶しており、異常箇所に対応するテンプレート画像を読み出す。動画出力部13aは、読み出したテンプレート画像を用いた公知の物体認識技術を適用して、異常動画50bの各フレームからテンプレート画像にマッチする画素群を抽出する。動画出力部13aは、抽出した画素群を異常箇所の写る画素群として特定する。
【0096】
あるいは、動画出力部13aは、生産設備400の仮想モデルを用いたシミュレーションを行なうことにより、異常箇所の写る画素群を特定してもよい。具体的には、動画出力部13aは、異常動画50bの撮影期間中に収集されたIOデータ220に基づいて、仮想空間において仮想モデルの動作をシミュレーションする。これにより、仮想空間において、仮想モデルは、異常動画50b内の生産設備400と同じ動作を行なう。動画出力部13aは、仮想空間上に配置された仮想カメラが仮想モデルを撮影することにより得られる仮想動画を生成する。仮想モデルと仮想カメラとの相対位置関係は、生産設備400とカメラ300との相対位置関係と一致するように予め設定される。さらに、動画出力部13aは、仮想モデルにおいて、特定部12cによって特定された異常箇所に対応する部位を設定し、仮想動画の各フレームにおいて、設定した部位の写る画素群の座標を計算する。動画出力部13aは、異常動画50bの各フレームにおいて、計算された座標の画素群を異常箇所の写る画素群として特定する。
【0097】
動画出力部13aは、画面において、第1異常箇所と第2異常箇所とを異なる形式で強調表示することが好ましい。これにより、ユーザは、強調表示された異常箇所が、時系列データセット222a,222bに基づいて特定された第1異常箇所およびログデータ224に基づいて特定された第2異常箇所のいずれであるかを認識できる。
【0098】
また、動画出力部13aは、特定部12cによって第1強調表示期間が特定されている場合、画面において、異常動画50bに含まれる複数のフレームのうち、第1強調表示期間に属する時刻に対応するフレームにおいて第1異常箇所を強調表示してもよい。
【0099】
同様に、動画出力部13aは、特定部12cによって第2強調表示期間が特定されている場合、画面において、異常動画50bに含まれる複数のフレームのうち、第2強調表示期間に属する時刻に対応するフレームにおいて第2異常箇所を強調表示してもよい。
【0100】
さらに、動画出力部13aは、画面の異常動画50bにおいて、正常動画50aとの差分が閾値Th2を超える領域(以下、「異常領域」と称する)を強調表示する。動画出力部13aは、画面において、1以上の異常箇所と異常領域とを異なる形式で強調表示する。
【0101】
動画出力部13aは、画面において、正常動画50aと異常動画50bとを並べて再生してもよいし、正常動画50aと異常動画50bとを重ねて再生してもよい。正常動画50aと異常動画50bとを重ねて再生する場合、動画出力部13aは、画面において、正常動画50aと異常動画50bとの表示形態を互いに異ならせる。例えば、動画出力部13aは、正常動画50aを第1色(例えば青)によって表し、異常動画50bを第1色とは異なる第2色(例えば赤)によって表す。具体的には、動画出力部13aは、正常動画50aに対して第1色のフィルタをかけ、異常動画50bに対して第2色のフィルタをかける。
【0102】
あるいは、動画出力部13aは、画面において、正常動画50aと異常動画50bとのシャープネスを互いに異ならせてもよい。具体的には、動画出力部13aは、異常動画50bのシャープネスを正常動画50aのシャープネスよりも高める。これによっても、ユーザは、正常動画50aと異常動画50bとを区別しやすくなる。
【0103】
あるいは、動画出力部13aは、画面において、正常動画50aおよび異常動画50bの一方を常時表示させ、他方を定期的に非表示にしてもよい。例えば、動画出力部13aは、画面上の異常動画50bについて、表示と非表示とを一定時間(例えば0.5秒であるが、これに限られない)ごとに切り替える。
【0104】
時系列データ出力部13bは、時系列データセット222a,222bを可視化する情報を画面に含める。この情報は、例えば、時系列データセット222a,222bによって示される1以上の変数の値の推移を示すグラフを含む。例えば、時系列データ出力部13bは、画面において、時系列データセット222aによって示される1以上の変数の値の推移を示すグラフと、時系列データセット222bによって示される1以上の変数の値の推移を示すグラフとを重ねる。
【0105】
時系列データ出力部13bは、特定部12cによって第1強調表示期間が特定されている場合、グラフにおいて第2強調表示期間に対応する部分を強調表示する。第1強調表示期間は、時系列データセット222bによって示される値と時系列データセット222aによって示される値との偏差が閾値Th1を超える期間である。そのため、グラフにおいて、偏差が閾値Th1を超える期間が強調表示される。これにより、ユーザは、強調表示された部分に注目することができ、生産設備400の異常な動作の原因を調査しやすくなる。
【0106】
<情報処理装置の処理の流れ>
図8は、情報処理装置における処理の流れの一例を示すフローチャートである。
図8に示されるように、情報処理装置100のCPU110は、ユーザ入力に応じて、正常動作期間の時系列データセット222aを選択する(ステップS1)。ステップS1と並行して、CPU110は、ユーザ入力に応じて、異常動作期間の時系列データセット222bを選択する(ステップS2)。
【0107】
ステップS1,S2の終了後、CPU110は、時系列データセット222a,222bの各々において時刻合わせ条件が満たされるタイミングが基準時刻となるように、時系列データセット222a,222bの時刻を調整する(ステップS3)。
【0108】
ステップS3の後、CPU110は、時系列データセット222bによって示される値と正常動作期間に対応する時系列データセット222aによって示される値との偏差が閾値Th1を超える異常変数に関連する部位を第1異常箇所として特定する(ステップS4)。
【0109】
ステップS1~S4と並行して、CPU110は、ステップS5~S8を行なう。ステップS5において、CPU110は、ログデータ224(
図4参照)を読み込む。次のステップS6において、CPU110は、異常動作期間内に発生した1以上のイベントを特定する。次のステップS7において、特定した1以上のイベントのうち、内容が異常を示すイベント(以下、「異常イベント」と称する)を抽出する。次のステップS8において、CPU110は、異常イベントの発生箇所を第2異常箇所として特定する。
【0110】
さらに、ステップS1~S4と並行して、CPU110は、ステップS9~S18を行なう。
【0111】
ステップS9において、CPU110は、ユーザ入力に応じて、正常動作期間の動画50(正常動画50a)を選択する。次のステップS10において、CPU110は、正常動作期間の時系列データセット222aにおいて時刻合わせ条件が満たされるタイミングのフレームの時刻が基準時刻となるように、正常動画50aの各フレームの時刻を調整する。次のステップS11において、CPU110は、正常動画50aに対して、画像処理(例えば、半透明化処理またはエッジ強調処理など)を行なう。次のステップS12において、CPU110は、正常動画50aに対して第1色のフィルタをかける。
【0112】
ステップS9~S12と並行して、CPU110は、ステップS13~S16を行なう。ステップS13において、CPU110は、ユーザ入力に応じて、異常動作期間の動画50(異常動画50b)を選択する。次のステップS14において、CPU110は、異常動作期間の時系列データセット222bにおいて時刻合わせ条件が満たされるタイミングのフレームの時刻が基準時刻となるように、異常動画50bの各フレームの時刻を調整する。次のステップS15において、CPU110は、異常動画50bに対して、画像処理(例えば、半透明化処理またはエッジ強調処理など)を行なう。次のステップS16において、CPU110は、異常動画50bに対して第2色のフィルタをかける。
【0113】
ステップS12,S16の終了後のステップS17において、CPU110は、正常動画50aと異常動画50bとが再生される画面を示す画面データを出力する。
【0114】
次のステップS18において、CPU110は、異常動画50bにおいて、正常動画50aとの差分が閾値Th2を超える異常領域を特定する。
【0115】
ステップSS4,S8,S18の後、CPU110は、正常動画50aおよび異常動画50bの再生指示に応じて、画面上の異常動画50bにおいて、第1異常箇所、第2異常箇所および異常領域を強調表示する(ステップS19)。ステップS19の後、処理は終了する。
【0116】
<画面例>
図9は、情報処理装置から出力される画面に含まれるウィンドウの一例を示す図である。
図10は、情報処理装置から出力される画面に含まれる別のウィンドウの一例を示す図である。
図9に示すウィンドウ60aと
図10に示すウィンドウ60bとは互いに連携しながら同時に表示される。
【0117】
図9に示すウィンドウ60aは、動画を確認するために利用される。ウィンドウ60aは、ボタン61~64と、領域65と、ボタン群66と、スライダー67,68と、表示欄69とを含む。
【0118】
ボタン61は、正常動作期間の動画(正常動画50a)を選択するために使用される。選択部11aとして動作するCPU110は、ボタン61がクリックされると、内容が異常を示すイベントが発生していない撮影期間の第1リストを生成し、ユーザ入力に応じて、第1リストから1つの撮影期間を正常動作期間として選択する。CPU110は、正常動作期間に対応する動画50を正常動画50aとして選択する。
【0119】
ボタン62は、異常動作期間の動画(異常動画50b)を選択するために使用される。選択部11aとして動作するCPU110は、ボタン62がクリックされると、内容が異常を示すイベントが発生した撮影期間の第2リストを生成し、ユーザ入力に応じて、第2リストから1つの撮影期間を異常動作期間として選択する。CPU110は、異常動作期間に対応する動画50を異常動画50bとして選択する。
【0120】
ボタン63は、閾値Th2を設定するために使用される。CPU110は、ボタン63がクリックされると、閾値Th2を入力するためのポップアップ画面を示すデータを出力し、ユーザ入力に応じて閾値Th2を設定する。
【0121】
ボタン64は、動画に対する処理の開始を指示するために使用される。処理部12として動作するCPU110は、ボタン64がクリックされると、正常動画50aおよび異常動画50bに対する画像処理を行なう。
【0122】
領域65には、画像処理が行なわれた正常動画50aおよび異常動画50bが重ね合わせて再生される。領域65において、正常動画50aは第1色で表示され、異常動画50bは第2色で表示される。なお、
図9において、正常動画50aは破線で示され、異常動画50bは実線で示される。
【0123】
ボタン群66は、動画の再生に関する複数のボタンとして、再生ボタン、停止ボタン、早送りボタン、または早戻しボタンなどを含む。CPU110は、ボタン群66に対する操作に応じて、領域65に表示されるフレームを更新する。
【0124】
領域65において、時系列データセット222a,222bに基づいて特定された第1異常箇所、ログデータ224に基づいて特定された第2異常箇所、および、正常動画50aと異常動画50bとの偏差に基づいて特定された異常領域とが強調表示される。具体的には、第1異常箇所を囲むように枠線80aが表示され、第2異常箇所を囲むように枠線80bが表示され、異常領域を囲むように枠線80cが表示される。
【0125】
枠線80a~80cは、異なる形式で表示される。
図9に示す例では、枠線80aが矩形であり、枠線80bが三角形であり、枠線80cが円形である。さらに、枠線80a~80cは、互いに異なる色で表示されることが好ましい。
【0126】
なお、第1異常箇所、第2異常箇所、および異常領域の強調表示の形式は、
図9に示す例に限定されない。例えば、第1異常箇所、第2異常箇所、および異常領域の各々に、枠線以外のマークまたはテキストが表示されてもよい。この場合、第1異常箇所、第2異常箇所、および異常領域に対応するマークまたはテキストの色は、互いに異なっていることが好ましい。
【0127】
スライダー67は、領域65に表示される、正常動画50aのフレームを変更するために使用される。スライダー68は、領域65に表示される、異常動画50bのフレームを変更するために使用される。ユーザは、スライダー67,68を操作することにより、正常動画50aと異常動画50bとのうちの一方のみを先のフレームに進めたり、前のフレームに遅らせたりできる。その結果、ユーザは、正常動画50aに写る生産設備400の動作と、異常動画50bに写る生産設備400の動作との間の時間的なずれを最小限にしたうえで、両動画を比較できる。
【0128】
表示欄69には、領域65に表示される正常動画50aおよび異常動画50bのフレーム間の一致度が表示される。動画出力部13aとして動作するCPU110は、例えば2つのフレームの画素毎の濃度の類似度の合計を規格化した値を一致度として算出し、算出した一致度を表示欄69に表示する。
【0129】
図10に示すウィンドウ60bは、時系列データセット222によって示される1以上の変数の値の推移を確認するために利用される。ウィンドウ60bは、ボタン71~75と、表示欄71a,72a,76とを含む。
【0130】
ボタン71は、正常動作期間の時系列データセット222aを選択するために使用される。CPU110は、ボタン71がクリックされると、内容が異常を示すイベントが発生していない撮影期間の第1リストを生成し、ユーザ入力に応じて、第1リストから1つの撮影期間を正常動作期間として選択する。CPU110は、正常動作期間に対応する時系列データセット222aを選択する。表示欄71aには、選択された時系列データセット222aのファイル名が表示される。
【0131】
なお、
図9に示すウィンドウ60aのボタン61の操作により正常動作期間が選択済みである場合、CPU110は、選択済みの正常動作期間に対応する時系列データセット222aを選択し、時系列データセット222aのファイル名を表示欄71aに表示する。
【0132】
ボタン61の操作により正常動作期間が選択済みである状態においてボタン71がクリックされた場合、CPU110は、ユーザ入力に応じて、正常動作期間を更新する。そして、CPU110は、更新後の正常動作期間に対応する時系列データセット222aおよび正常動画50aを選択する。
【0133】
ボタン72は、異常動作期間の時系列データセット222bを選択するために使用される。CPU110は、ボタン72がクリックされると、内容が異常を示すイベントが発生した撮影期間の第2リストを生成し、ユーザ入力に応じて、第2リストのうちの1つの撮影期間を異常動作期間として選択する。CPU110は、異常動作期間に対応する時系列データセット222bを選択する。表示欄72aには、選択された時系列データセット222bのファイル名が表示される。
【0134】
なお、
図9に示すウィンドウ60aのボタン62の操作により異常動作期間が選択済みである場合、CPU110は、選択済みの異常動作期間に対応する時系列データセット222bを選択し、時系列データセット222bのファイル名を表示欄72aに表示すればよい。
【0135】
ボタン62の操作により異常動作期間が選択済みである状態においてボタン72がクリックされた場合、CPU110は、ユーザ入力に応じて、異常動作期間を更新する。そして、CPU110は、更新後の異常動作期間に対応する時系列データセット222bおよび異常動画50bを選択する。
【0136】
ボタン73は、ログデータ224を選択するために使用される。CPU110は、ボタン73がクリックされると、ファイルのリストを含むウィンドウを生成し、ユーザ入力に応じて、1つのファイルを選択する。表示欄73aには、選択されたファイル名が表示される。
【0137】
ボタン74は、時刻合わせ条件の設定に利用される。ボタン74がクリックされると、時刻調整部12aとして動作するCPU110は、時刻合わせ条件を入力するためのウィンドウを表示し、ユーザ入力に応じて時刻合わせ条件を設定する。
図10に示す例では、時刻合わせ条件として、変数「第1関節の位置」の値が第1指定値から第2指定値に変化するという条件が設定される。そのため、ボタン74に、時刻合わせ条件として設定された変数の名称「第1関節の位置」が表示される。
【0138】
ボタン75は、時刻合わせ条件に従った時刻合わせの実行を開始するために使用される。ボタン75がクリックされると、CPU110は、時刻合わせ条件が満たされるタイミングが同一時刻となるように時系列データセット222a,222bの時刻を調整する。
【0139】
さらに、ボタン75がクリックされると、動画処理部12bとして動作するCPU110は、時刻合わせ条件が満たされるタイミングが互いに一致するように正常動画50aおよび異常動画50bの各フレームの時刻を調整する。
【0140】
なお、ボタン75がクリックされない場合、CPU110は、時系列データセット222a,222bの各々について、開始時刻が基準時刻(例えば00:00)となるように時刻を調整してもよい。さらに、ボタン75がクリックされない場合、CPU110は、正常動画50aおよび異常動画50bの各々について、1番目のフレームの時刻が基準時刻(例えば00:00)となるように各フレームの時刻を調整してもよい。
【0141】
表示欄76には、時系列データセット222a,222bを可視化する情報が表示される。
図10に示されるように、この情報は、時系列データセット222a,222bによって示される1以上の変数の各々の値の推移を示すグラフ77を含む。各グラフ77において、横軸は調整後の時刻を表し、縦軸は変数の値を表す。各グラフ77において、時系列データセット222aによって示される変数の値の推移が破線77aによって表され、時系列データセット222bによって示される変数の値の推移が実線77bによって表される。
【0142】
さらに、表示欄76には、各変数について、閾値Th1を設定するに使用されるボタン78が表示される。CPU110は、ボタン78がクリックされると、対応する変数に対する閾値Th1を入力するためのポップアップ画面を示すデータを出力し、ユーザ入力に応じて閾値Th1を設定する。
【0143】
閾値Th1が設定されることにより、CPU110は、時系列データセット222a,222bによって示される値の偏差が閾値Th1を超える変数を異常変数として特定する。
図10に示す例では、変数「第1指の位置」が異常変数として特定される。異常変数のグラフ77において、時系列データセット222a,222bによって示される値の偏差が閾値Th1を超える部分が強調表示される。具体的には、
図10に示されるように、偏差が閾値Th1を超える部分を囲むように枠線81が表示される。
【0144】
さらに、表示欄76には、
図9に示すウィンドウ60aの領域65に表示されるフレームの時刻に対応するライン79a,79bが表示される。ライン79aは、正常動画50aのフレームの時刻に対応する。ライン79bは、異常動画50bのフレームの時刻に対応する。ライン79a,79bは、領域65に表示されるフレームが変化するたびに移動する。なお、ウィンドウ60aにおいてスライダー67,68が操作されない限り、ライン79a,79bは重なり合う。スライダー67,68のうちの一方が操作された場合、ライン79a,79bは、互いに異なる位置に表示される。
【0145】
図9に示す画面例では、多関節ロボットのハンドの第1指を囲むように枠線80a,80bが表示される。これは、時系列データセット222a,222bに基づいて特定された第1異常箇所と、ログデータ224に基づいて特定された第2異常箇所との両者がハンドの第1指を示すためである。しかしながら、第1異常箇所と第2異常箇所との両者が同一の部位を示すとは限らない。例えば、異常イベントは発生していないが、時系列データセット222bによって示される値と時系列データセット222aによって示される値との偏差が閾値を超える場合、第1異常箇所として特定された部位が第2異常箇所として特定されない。このような場合、枠線80aのみが表示される。時系列データセット222bによって示される値と時系列データセット222aによって示される値との偏差が大きい場合、生産設備400によって製造される製品の品質に異常が生じ得る。そのため、ユーザは、ウィンドウ60aの領域65において枠線80aが表示される場合、
図10に示すウィンドウ60bの表示欄76を確認することにより、製品の品質の異常の原因を調査できる。
【0146】
<変形例1>
上記の説明では、対象動作が行なわれるたびに、動画50および時系列データセット222が情報処理装置100に蓄積されるものとした。しかしながら、情報処理装置100への動画50および時系列データセット222の蓄積方法はこれに限定されない。
【0147】
例えば、生産設備400の導入直後の初期運転期間において、対象動作が行なわれるたびに、動画50および時系列データセット222が情報処理装置100に蓄積される。初期運転期間において蓄積された動画50および時系列データセット222の中から、正常動画50aおよび時系列データセット222aが選択される。
【0148】
初期運転期間の後の運用期間において、PLC200は、内容が「異常」であるイベントが発生した対象動作についてのみ時系列データセット222を情報処理装置100に出力するとともに、動画50を出力するようにカメラ300に指示してもよい。これにより、運用期間において、情報処理装置100には何らかの異常が発生したときの動画50および時系列データセット222が蓄積される。そのため、運用期間において蓄積された動画50および時系列データセット222の中から、異常動画50bおよび時系列データセット222bが選択される。
【0149】
<変形例2>
上記の説明では、情報処理装置100に内蔵される記憶部10に動画50および時系列データセット222が蓄積されるものとした。しかしながら、情報処理装置100の外部のデータベースに動画50および時系列データセット222が蓄積されてもよい。この場合、情報処理装置100のCPU110は、データベースにアクセスして、表示対象となる正常動画50a,異常動画50b,および時系列データセット222a,222bを取得すればよい。
【0150】
<変形例3>
上記の説明では、1つの正常動画50aが選択されるものとした。しかしながら、複数の正常動画50aが選択されてもよい。この場合、複数の正常動画50aは、半透明化処理された後に、
図9に示すウィンドウ60aの領域65に重ねて表示される。これにより、領域65において、生産設備400が正常に動作しているときの生産設備400のぶれが表示される。正常に動作しているときの生産設備400のぶれは、生産設備400の動作の正常範囲を表している。その結果、ユーザは、画面60を確認することにより、異常動画50bに写る生産設備400の動作が正常範囲内であるか否かを容易に判断できる。
【0151】
<変形例4>
上記の説明では、選択部11aは、ログデータ224に基づいて、内容が異常を示すイベントが発生していない撮影期間の第1リストを生成し、ユーザ入力に応じて、正常動作期間を選択する。さらに、選択部11aは、ログデータ224に基づいて、内容が異常を示すイベントが発生した撮影期間の第2リストを生成し、ユーザ入力に応じて、第2リストから異常動作期間を選択する。しかしながら、第1リストおよび第2リストの生成は、上記の方法に限定されない。
【0152】
例えば、選択部11aは、生産設備400が設置される工程よりも後の検査工程により得られる検査結果に基づいて、第1リストおよび第2リストを生成してもよい。具体的には、PLC200および検査工程を管理する上位システム(例えば、製造実行システム)は、製品ごとに付与された製品IDと紐付けて、生産設備400による対象動作の開始信号および終了信号をPLC200に出力するとともに、検査指示を検査工程に出力する。上位システムは、製品IDに基づいて、検査結果が品質異常である製品に対して対象動作が実施された期間(以下、「品質異常期間」と称する)を特定し、品質異常期間を示す情報を情報処理装置100に出力する。情報処理装置100の選択部11aは、品質異常期間と重なる撮影期間を第1リストから除外し、第2リストに含める。
【0153】
変形例4によれば、ユーザは、品質異常である製品に対して行なわれた対象動作に対応する動画50を異常動画50bとして選択できる。
【0154】
<変形例5>
上記の説明では、情報処理装置100は、PLC200とは異なる装置とした。しかしながら、情報処理装置100は、PLC200と一体化されてもよい。具体的には、情報処理装置100は、PLC200の機能を含む産業用パーソナルコンピュータ(Industrial Personal Computer(IPC))によって実現されてもよい。
【0155】
一変形例として、情報処理装置100の構成および動作を、互いに通信可能な複数のコンピュータに分散させた形態も可能である。
【0156】
例えば、情報処理装置100の一部の構成要素を、クラウドコンピューティングシステムまたはその他のコンピューティングシステムに属するサーバ等のコンピュータに設けた形態も可能である。
【0157】
別の例として、情報処理装置100の一部の構成要素を、制御対象を制御するPLC等のコンピュータに設けた形態も可能である。この場合、情報処理装置100は、制御対象に対する制御演算に影響を与えることなく、上述した処理を実行可能なように構成される。
【0158】
<変形例6>
汎用のコンピュータを、上述した実施の形態に係る情報処理装置100として機能させる実施の形態も可能である。具体的には、上述した実施の形態に係る情報処理装置100の各機能を実現する処理内容を記述した解析プログラム116を、汎用のコンピュータのメモリに格納し、プロセッサによって解析プログラム116を読み出して実行させる。したがって、本実施の形態に係る発明は、プロセッサが実行可能な解析プログラム116、又は解析プログラム116を記憶する非一時的なコンピュータ可読媒体としても実現可能である。
【0159】
§3 付記
以上のように、本実施の形態は以下のような開示を含む。
【0160】
(構成1)
情報処理装置(100)であって、
対象動作を繰り返し実行する生産設備(400)が写る、前記対象動作ごとの複数の動画(50)の中から、前記対象動作が正常であるときの正常動画(50a)と、前記対象動作が異常であるときの異常動画(50b)とを選択する選択部(11a,110)と、
前記異常動画(50b)の撮影中における前記生産設備(400)の状態を示すデータ(221)に基づいて、前記生産設備(400)の1以上の異常箇所を特定する特定部(12c,110)と、
前記正常動画(50a)と前記異常動画(50b)とが再生される画面(60)を示す画面データを出力する出力部(13,110)とを備え、
前記画面(60)の前記異常動画(50b)上において、前記1以上の異常箇所が強調表示される、情報処理装置(100)。
【0161】
(構成2)
前記データ(221)は、前記生産設備(400)に関する1以上の変数の第1時系列データセット(222b)を含み、
前記特定部(12c,110)は、
前記1以上の変数のうち、前記第1時系列データセット(222b)によって示される値と前記正常動画(50a)の撮影中における前記1以上の変数の第2時系列データセット(222a)によって示される値との偏差が第1閾値を超える異常変数を特定し、
前記生産設備(400)の複数の部位のうち前記異常変数に関連する部位を第1異常箇所として特定する、構成1に記載の情報処理装置(100)。
【0162】
(構成3)
前記画面(60)において、前記異常動画(50b)に含まれる複数のフレームのうち、前記偏差が前記第1閾値を超える時刻に対応するフレームにおいて前記第1異常箇所が強調表示される、構成2に記載の情報処理装置(100)。
【0163】
(構成4)
前記画面(60)は、前記第1時系列データセット(222b)によって示される前記異常変数の値と前記第2時系列データセット(222a)によって示される前記異常変数の値との推移を示すグラフ(77)を含み、
前記グラフ(77)において、前記偏差が前記第1閾値を超える部分が強調表示される、構成2または3に記載の情報処理装置(100)。
【0164】
(構成5)
前記データ(221)は、前記生産設備(400)において発生したイベントのログデータ(224)を含み、前記ログデータ(224)は、イベントごとの発生箇所および内容を示し、
前記特定部(12c、110)は、前記ログデータ(224)に基づいて、前記内容が異常を示すイベントの発生箇所を第2異常箇所として特定する、構成1から4のいずれかに記載の情報処理装置(100)。
【0165】
(構成6)
前記データ(221)は、前記生産設備(400)において発生したイベントのログデータ(224)を含み、前記ログデータ(224)は、イベントごとの発生箇所および内容を示し、
前記特定部(12c、110)は、前記ログデータ(224)に基づいて、前記内容が異常を示すイベントの発生箇所を第2異常箇所として特定し、
前記画面(60)において、前記第1異常箇所と前記第2異常箇所とが異なる形式で強調表示される、構成2から4のいずれかに記載の情報処理装置(100)。
【0166】
(構成7)
前記ログデータ(224)は、イベントごとの発生時刻をさらに示し、
前記画面(60)において、前記異常動画(50b)に含まれる複数のフレームのうち、前記内容が異常を示すイベントの発生時刻に対応するフレームにおいて前記第2異常箇所が強調表示される、構成5または6に記載の情報処理装置(100)。
【0167】
(構成8)
前記画面(60)の前記異常動画(50b)において、前記正常動画(50a)との差分が第2閾値を超える領域が強調表示される、構成1から7のいずれかに記載の情報処理装置(100)。
【0168】
(構成9)
前記画面(60)において、前記1以上の異常箇所と前記領域とが異なる形式で強調表示される、構成8に記載の情報処理装置(100)。
【0169】
(構成10)
情報処理方法であって、
対象動作を繰り返し実行する生産設備(400)が写る、前記対象動作ごとの複数の動画(50)の中から、前記対象動作が正常であるときの正常動画(50a)と、前記対象動作が異常であるときの異常動画(50b)とを選択することと、
前記異常動画(50b)の撮影中における前記生産設備(400)の状態を示すデータ(221)に基づいて、前記生産設備(400)の1以上の異常箇所を特定することと、
前記正常動画(50a)と前記異常動画(50b)とが再生される画面(60)を示す画面データを出力することとを備え、
前記画面(60)の前記異常動画(50b)上において、前記1以上の異常箇所が強調表示される、情報処理方法。
【0170】
(構成11)
情報処理方法をコンピュータ(110)に実行させるプログラム(116)であって、
前記情報処理方法は、
対象動作を繰り返し実行する生産設備(400)が写る、前記対象動作ごとの複数の動画(50)の中から、前記対象動作が正常であるときの正常動画(50a)と、前記対象動作が異常であるときの異常動画(50b)とを選択することと、
前記異常動画(50b)の撮影中における前記生産設備(400)の状態を示すデータ(221)に基づいて、前記生産設備(400)の1以上の異常箇所を特定することと、
前記正常動画(50a)と前記異常動画(50b)とが再生される画面(60)を示す画面データを出力することとを含み、
前記画面(60)の前記異常動画(50b)上において、前記1以上の異常箇所が強調表示される、プログラム。
【0171】
本発明の実施の形態について説明したが、今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0172】
1 製造システム、10 記憶部、11 設定部、11a 選択部、11b 収集データ設定部、11c カメラ設定部、12 処理部、12a 時刻調整部、12b 動画処理部、12c 特定部、13 出力部、13a 動画出力部、13b 時系列データ出力部、15 対応付け情報、20 制御部、22 データ収集部、41 指、50 動画、50a 正常動画、50b 異常動画、60 画面、60a,60b ウィンドウ、61~64,71~75,78 ボタン、65 領域、66 ボタン群、67,68 スライダー、69,71a~73a,76 表示欄、77 グラフ、79a,79b ライン、80,80a~80c,81 枠線、100 情報処理装置、108,208 ストレージ、110,202 CPU、112,206 メモリ、114 ハードディスク、116 解析プログラム、118 入力インターフェイス、120 表示コントローラ、122 ディスプレイ、124 通信インターフェイス、126 データリーダ/ライタ、128 バス、130 記憶媒体、132 入力装置、200 PLC、201 電源回路、204 チップセット、211 システムプログラム、213 スケジューラプログラム、214 制御プログラム、215 リフレッシュプログラム、216 データ収集プログラム、220 IOデータ、221 状態データ、222,222a,222b 時系列データセット、224 ログデータ、230 設定情報、250 USBコントローラ、252 フィールドネットワークコントローラ、252a,254a コネクタ、254 ネットワークコントローラ、260 タイマ、300 カメラ、400 生産設備。