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

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

▶ オムロン株式会社の特許一覧

特開2024-70659解析装置、解析方法および情報処理プログラム
<>
  • 特開-解析装置、解析方法および情報処理プログラム 図1
  • 特開-解析装置、解析方法および情報処理プログラム 図2
  • 特開-解析装置、解析方法および情報処理プログラム 図3
  • 特開-解析装置、解析方法および情報処理プログラム 図4
  • 特開-解析装置、解析方法および情報処理プログラム 図5
  • 特開-解析装置、解析方法および情報処理プログラム 図6
  • 特開-解析装置、解析方法および情報処理プログラム 図7
  • 特開-解析装置、解析方法および情報処理プログラム 図8
  • 特開-解析装置、解析方法および情報処理プログラム 図9
  • 特開-解析装置、解析方法および情報処理プログラム 図10
  • 特開-解析装置、解析方法および情報処理プログラム 図11
  • 特開-解析装置、解析方法および情報処理プログラム 図12
  • 特開-解析装置、解析方法および情報処理プログラム 図13
  • 特開-解析装置、解析方法および情報処理プログラム 図14
  • 特開-解析装置、解析方法および情報処理プログラム 図15
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024070659
(43)【公開日】2024-05-23
(54)【発明の名称】解析装置、解析方法および情報処理プログラム
(51)【国際特許分類】
   G05B 23/02 20060101AFI20240516BHJP
【FI】
G05B23/02 302Y
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2022181284
(22)【出願日】2022-11-11
(71)【出願人】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】川ノ上 真輔
(72)【発明者】
【氏名】高橋 稔
【テーマコード(参考)】
3C223
【Fターム(参考)】
3C223AA11
3C223BA03
3C223EB01
3C223EB02
3C223FF04
3C223FF13
3C223FF16
3C223FF17
3C223FF35
3C223GG01
3C223HH02
3C223HH03
3C223HH05
3C223HH08
(57)【要約】
【課題】大規模な制御システムについて生成された因果関係グラフであっても、解釈性を向上できる手法を提供する。
【解決手段】解析装置は、製造ラインに関するデータを取得する取得部と、取得されたデータに基づいて、事象に至る因果関係を推定することで、1または複数のノードを含む因果関係グラフを生成する第1の生成部と、取得されたデータに含まれる状態および条件付き確率に基づいて、ステートマシーンを生成する第2の生成部とを含む。第1の生成部は、ステートマシーンに含まれる状態の選択に応じて、因果関係グラフを更新する。
【選択図】図2
【特許請求の範囲】
【請求項1】
製造ラインに関するデータを取得する取得部と、
前記取得されたデータに基づいて、事象に至る因果関係を推定することで、1または複数のノードを含む因果関係グラフを生成する第1の生成部と、
前記取得されたデータに含まれる状態および条件付き確率に基づいて、ステートマシーンを生成する第2の生成部とを備え、
前記第1の生成部は、前記ステートマシーンに含まれる状態の選択に応じて、前記因果関係グラフを更新する、解析装置。
【請求項2】
前記第1の生成部は、前記選択された1または複数の状態に対応するデータに基づいて、前記因果関係グラフを再生成する、請求項1に記載の解析装置。
【請求項3】
前記第1の生成部は、複数の工程のうち選択された工程に対応する因果関係グラフを出力する、請求項1に記載の解析装置。
【請求項4】
前記第2の生成部は、前記因果関係グラフのノードまたはエッジの選択に応じて、前記ステートマシーンの表現形態を更新する、請求項1に記載の解析装置。
【請求項5】
前記因果関係グラフのノードまたはエッジの選択は、関連するデータ群から対象のデータを選択することを含む、請求項4に記載の解析装置。
【請求項6】
前記第1の生成部および前記第2の生成部は、複数の工程についての因果関係グラフおよびステートマシーンを出力する、請求項1~5のいずれか1項に記載の解析装置。
【請求項7】
前記第2の生成部は、前記取得されたデータから状態を定義するとともに、定義された状態が示す値の一意性を満たすように、前記ステートマシーンに含める状態を決定する、請求項1~5のいずれか1項に記載の解析装置。
【請求項8】
前記因果関係グラフおよび前記ステートマシーンを並べて表示する表示部をさらに備える、請求項1~5のいずれか1項に記載の解析装置。
【請求項9】
コンピュータが実行する解析方法であって、
製造ラインに関するデータを取得するステップと、
前記取得されたデータに基づいて、事象に至る因果関係を推定することで、1または複数のノードを含む因果関係グラフを生成するステップと、
前記取得されたデータに含まれる状態および条件付き確率に基づいて、ステートマシーンを生成するステップと、
前記ステートマシーンに含まれる状態の選択に応じて、前記因果関係グラフを更新するステップとを備える、解析方法。
【請求項10】
情報処理プログラムであって、コンピュータに、
製造ラインに関するデータを取得するステップと、
前記取得されたデータに基づいて、事象に至る因果関係を推定することで、1または複数のノードを含む因果関係グラフを生成するステップと、
前記取得されたデータに含まれる状態および条件付き確率に基づいて、ステートマシーンを生成するステップと、
前記ステートマシーンに含まれる状態の選択に応じて、前記因果関係グラフを更新するステップとを実行させる、情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、解析装置、解析方法および情報処理プログラムに関する。
【背景技術】
【0002】
従来より、実験データおよび観測データなどの不完全な情報に基づいて、事象に至る因果関係を統計的に推定する技術が公知である。このような技術を産業オートメーション(industrial automation)に適用することで、製造現場で生じる異常の要因特定を容易化できる。
【0003】
より具体的には、制御システムがセンサなどのフィールドデバイスから収集する情報に基づいて因果関係グラフを生成し、当該生成した因果関係グラフを参照することで、製品不良などの異常の要因をより容易に特定できるようになる。
【0004】
例えば、特開2018-206362号公報(特許文献1)は、製造ラインを構成する複数の機構間の因果関係を正確にモデル化する技術を開示する。
【0005】
また、国際公開第2018/073955号(特許文献2)は、複数のセンサが出力するセンサ値間における因果関係を示す因果関係情報を用いるシステム分析方法を開示する。国際公開第2018/073960号(特許文献3)は、異常センサをグループ同士の階層関係を示す情報と共に、ユーザに提示する表示方法を開示する。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2018-206362号公報
【特許文献2】国際公開第2018/073955号
【特許文献3】国際公開第2018/073960号
【発明の概要】
【発明が解決しようとする課題】
【0007】
大規模な制御システムにおいては、大量の情報から因果関係グラフが生成されるので、専門的な知識に乏しいユーザにとっては、因果関係グラフが示す意味が分かりにくくなる。すなわち、因果関係グラフの解釈性が低下し得る。
【0008】
本発明は、大規模な制御システムについて生成された因果関係グラフであっても、解釈性を向上できる手法を提供することを一つの目的とする。
【課題を解決するための手段】
【0009】
本発明の一例に従う解析装置は、製造ラインに関するデータを取得する取得部と、取得されたデータに基づいて、事象に至る因果関係を推定することで、1または複数のノードを含む因果関係グラフを生成する第1の生成部と、取得されたデータに含まれる状態および条件付き確率に基づいて、ステートマシーンを生成する第2の生成部とを含む。第1の生成部は、ステートマシーンに含まれる状態の選択に応じて、因果関係グラフを更新する。
【0010】
この構成によれば、ステートマシーンに含まれる注目している状態を選択すると、当該選択された状態に応じて、因果関係グラフが更新されるので、因果関係グラフの解釈性を向上できる。
【0011】
第1の生成部は、選択された1または複数の状態に対応するデータに基づいて、因果関係グラフを再生成するようにしてもよい。この構成によれば、選択された1または複数の状態に対応するデータに基づいて、より簡素化された因果関係グラフを生成できる。
【0012】
第1の生成部は、複数の工程のうち選択された工程に対応する因果関係グラフを出力するようにしてもよい。この構成によれば、複数の工程が存在する製造ラインについて、注目している工程についての因果関係グラフのみを出力できるので、因果関係グラフの解釈性が低下することを抑制できる。
【0013】
第2の生成部は、因果関係グラフのノードまたはエッジの選択に応じて、ステートマシーンの表現形態を更新するようにしてもよい。この構成によれば、因果関係グラフの注目しているノードまたはエッジに対応するステートマシーンの状態などを容易に特定できる。
【0014】
因果関係グラフのノードまたはエッジの選択は、関連するデータ群から対象のデータを選択することを含んでいてもよい。この構成によれば、データのレベルで対象を選択できるので、注目しているノードまたはエッジをより確実に選択できる。
【0015】
第1の生成部および第2の生成部は、複数の工程についての因果関係グラフおよびステートマシーンを出力するようにしてもよい。この構成によれば、工程を跨ぐ解析などを行うこともできる。
【0016】
第2の生成部は、取得されたデータから状態を定義するとともに、定義された状態が示す値の一意性を満たすように、ステートマシーンに含める状態を決定するようにしてもよい。「一意性を満たす」とは、定義された状態が示す値の重複がないことを意味する。この構成によれば、予め状態が定義されていない製造ラインなどであっても、ステートマシーンを生成できる。
【0017】
解析装置は、因果関係グラフおよびステートマシーンを並べて表示する表示部をさらに含んでいてもよい。この構成によれば、因果関係グラフとステートマシーンとの関係性をより容易に把握できる。
【0018】
本発明の別の一例に従うコンピュータが実行する解析方法は、製造ラインに関するデータを取得するステップと、取得されたデータに基づいて、事象に至る因果関係を推定することで、1または複数のノードを含む因果関係グラフを生成するステップと、取得されたデータに含まれる状態および条件付き確率に基づいて、ステートマシーンを生成するステップと、ステートマシーンに含まれる状態の選択に応じて、因果関係グラフを更新するステップとを含む。
【0019】
本発明のさらに別の一例に従う情報処理プログラムは、コンピュータに、製造ラインに関するデータを取得するステップと、取得されたデータに基づいて、事象に至る因果関係を推定することで、1または複数のノードを含む因果関係グラフを生成するステップと、取得されたデータに含まれる状態および条件付き確率に基づいて、ステートマシーンを生成するステップと、ステートマシーンに含まれる状態の選択に応じて、因果関係グラフを更新するステップとを実行させる。
【発明の効果】
【0020】
本発明によれば、大規模な制御システムについて生成された因果関係グラフであっても、解釈性を向上させることができる。
【図面の簡単な説明】
【0021】
図1】本実施の形態に従う情報処理システムが生成する因果関係グラフと工程との関係を示す一例である。
図2】本実施の形態に従う情報処理システムによる因果関係グラフとステートマシーンとの関連付け処理の一例を示す図である。
図3】本実施の形態に従う情報処理システムによる因果関係グラフとステートマシーンとの関連付け処理の別の一例を示す図である。
図4図3に示す因果関係グラフにおいてエッジが選択されたときに表示される散布図の一例を示す図である。
図5】本実施の形態に従う情報処理システムの制御装置のハードウェア構成例を示すブロック図である。
図6】本実施の形態に従う情報処理システムの解析装置のハードウェア構成例を示すブロック図である。
図7】本実施の形態に従う情報処理システムの機能構成を示す模式図である。
図8】本実施の形態に従う情報処理システムが処理する時系列データの一例を示す模式図である。
図9】本実施の形態に従う情報処理システムにおける因果関係グラフの生成に係る処理手順を示すフローチャートである。
図10図9に示すステートマシーン生成処理の処理手順を示すフローチャートである。
図11図9に示すステートマシーン生成処理において生成されるデータの一例を示す図である。
図12図9に示す因果関係グラフを生成する処理の処理手順を示すフローチャートである。
図13図9に示すステートマシーンの表現形態を更新する処理の処理手順を示すフローチャートである。
図14】本実施の形態に従う解析装置が提供する表示画面の一例を示す模式図である。
図15】本実施の形態に従う情報処理システムを用いて工程を跨いだ要因解析の一例を説明するための図である。
【発明を実施するための形態】
【0022】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
【0023】
<A.適用例>
まず、本発明が適用される場面の一例について説明する。以下では、製造ラインから収集される情報に基づいて、因果関係グラフを生成する例について説明する。但し、製造ラインから収集される情報に限らず、任意の情報から生成された因果関係グラフに適用可能である。
【0024】
図1は、本実施の形態に従う情報処理システム1が生成する因果関係グラフと工程との関係を示す一例である。図1には、一例として、3つの工程(工程A~C)を含む製造ラインに対して生成された因果関係グラフ10A,10B,10Cを示す。
【0025】
図1を参照して、工程毎に因果関係グラフ10A,10B,10Cは互いに異なったものとなっている。そのため、工程毎に対応する因果関係グラフをユーザに提供する必要がある。
【0026】
各工程においては、複数の状態(ステート)が存在し、処理の進行に伴って、状態遷移が生じ得る。すなわち、各工程に対して、処理の状態を反映したステートマシーンを定義することができる。製造ラインを制御する制御装置が明示的にステートマシーンを有していることもあるし、制御装置が管理する変数の値などに基づいてステートマシーンを定義することもできる。
【0027】
一般的に、因果関係グラフは、製造ラインから取得されるデータに基づいて生成されるため、複数の状態を実質的にすべて反映したものとなり得る。その結果、状態の数が増加したり、データ量が増大したりすることで、因果関係グラフも複雑化し得る。
【0028】
一方で、何らかの異常の要因を探索する場合には、当該異常に関係すると思われる状態のみに注目すればよい。本実施の形態に従う情報処理システム1は、ステートマシーンおよびステートマシーンに含まれる状態と、因果関係グラフとを関連付けてユーザに提供する。
【0029】
図2は、本実施の形態に従う情報処理システム1による因果関係グラフとステートマシーンとの関連付け処理の一例を示す図である。図2には、ステートマシーンに対する選択に連動して、因果関係グラフが更新される例を示す。
【0030】
図2(A)には、選択された1つの工程に対応する因果関係グラフ10およびステートマシーン20を示す。因果関係グラフ10は、多数のノードを含む因果関係を示す。情報処理システム1においては、複数の工程のうち選択された工程に対応する因果関係グラフ10を表示するようにしてもよい。
【0031】
図2(B)を参照して、ステートマシーン20に含まれる複数の状態のうち、特定の状態(例えば、不良発生に至るモードに対応する一覧の状態)が選択されると(状態群22)、当該選択された状態に対応する因果関係グラフ10Mに更新される。より具体的には、製造ラインから取得されるデータのうち、選択された状態において取得されたデータに基づいて、因果関係グラフ10Mが再生成される。
【0032】
このように、ステートマシーン20の特定状態における因果関係グラフ10を提示することで、注目している異常の要因の特定を容易化できる。
【0033】
図3は、本実施の形態に従う情報処理システム1による因果関係グラフとステートマシーンとの関連付け処理の別の一例を示す図である。図3には、因果関係グラフに対する選択に連動して、ステートマシーンの表示が更新される例を示す。
【0034】
図3(A)には、選択された1つの工程に対応する因果関係グラフ10およびステートマシーン20を示す。図3(B)を参照して、因果関係グラフ10において、あるノードから別のノードへの遷移(エッジ)が注目されているとする。
【0035】
ユーザがいずれかのエッジまたは両端のノードを選択すると、当該選択されたエッジに対応する2つのノードが示すデータが表示される。
【0036】
図4は、図3に示す因果関係グラフにおいてエッジが選択されたときに表示される散布図の一例を示す図である。図4に示す散布図60においては、選択されたエッジの両端に位置する2つのノードに対応するデータが示す値(2次元)が散布図の形で表示されている。例えば、遷移前のノードに対応するデータが示す値が縦軸に割り当てられ、遷移後のノードに対応するデータが示す値が横軸に割り当てられてもよい。
【0037】
ユーザは、散布図60において、ノードの遷移に対応すると考えられるデータ群を対象領域62として選択する。対象領域62に含まれるデータ群がステートマシーンのいずれかの状態に対応するのかが算出される。算出された状態を特定できるように、ステートマシーン20の表示が更新される。
【0038】
このように、因果関係グラフのノードまたはエッジの選択は、関連するデータ群から対象のデータを選択することを含む。
【0039】
再度図3(B)を参照して、例えば、ステートマシーン20には、対応する状態を示す対象特定表示24が付加される。ステートマシーン20に表示される対象特定表示24を参照することで、因果関係グラフ10の注目しているノードおよび/または遷移に対応する状態を特定することができる。
【0040】
このように、因果関係グラフ10のノードまたはエッジの選択に応じて、ステートマシーン20の表示が更新される。因果関係グラフ10に含まれる特定のノードおよび/または遷移に対応するステートマシーン20の状態を提示することで、注目している異常の要因の特定を容易化できる。
【0041】
図2および図3に示すように、因果関係グラフおよびステートマシーンのうち一方を選択することで、他方において提供される情報が更新される。
【0042】
<B.ハードウェア構成例>
次に、本実施の形態に従う情報処理システム1のハードウェア構成例について説明する。情報処理システム1は、一例として、製造ラインを制御する1または複数の制御装置100と、制御装置100などを介して取得されたデータに基づいて、図2および図3に示すような情報を提供する解析装置200と、制御装置100で実行されるユーザプログラムを生成する開発装置300とを含む。
【0043】
(b1:制御装置100)
図5は、本実施の形態に従う情報処理システム1の制御装置100のハードウェア構成例を示すブロック図である。図5を参照して、制御装置100は、PLC(プログラマブルロジックコントローラ)などの、一種のコンピュータとして具現化されてもよい。
【0044】
より具体的には、制御装置100は、CPU(Central Processing Unit)およびMPU(Micro-Processing Unit)などのプロセッサ102と、チップセット104と、主記憶装置106と、二次記憶装置108と、フィールドバスコントローラ110と、USB(Universal Serial Bus)コントローラ112と、メモリカードインターフェイス114とを含む。
【0045】
プロセッサ102は、二次記憶装置108に格納された各種プログラムを読み出して、主記憶装置106に展開して実行することで、制御対象を制御するための処理を実現する。チップセット104は、プロセッサ102と各コンポーネントとの間のデータ伝送などを制御する。
【0046】
二次記憶装置108には、制御演算を実行するためのPLCエンジン150を提供するためのシステムプログラム131に加えて、制御演算に係る処理を定義したユーザプログラム132が格納される。
【0047】
フィールドバスコントローラ110は、フィールドバスを介してフィールドデバイス40との間でデータをやり取りする。フィールドバスは、産業用の通信プロトコルを採用することが好ましい。このような通信プロトコルとしては、EtherCAT(登録商標)、EtherNet/IP(登録商標)、DeviceNet(登録商標)、CompoNet(登録商標)などが知られている。
【0048】
USBコントローラ112は、USB接続を介して解析装置200との間のデータのやり取りを制御する。
【0049】
メモリカードインターフェイス114は、メモリカード116を着脱可能に構成されており、メモリカード116に対してデータを書込み、メモリカード116から各種データ(ユーザプログラム132およびトレースデータなど)を読み出すことが可能になっている。
【0050】
図5には、プロセッサ102がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。あるいは、制御装置100の主要部を、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOS(Operating System)を並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
【0051】
(b2:解析装置200)
本実施の形態に従う解析装置200は、一例として、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコン)を用いてプログラムを実行することで実現される。
【0052】
図6は、本実施の形態に従う情報処理システム1の解析装置200のハードウェア構成例を示すブロック図である。図6を参照して、解析装置200は、CPUおよびMPUなどのプロセッサ202と、光学ドライブ204と、主記憶装置206と、二次記憶装置208と、USBコントローラ212と、ネットワークコントローラ214と、入力部216と、表示部218とを含む。これらのコンポーネントはバス220を介して接続される。
【0053】
プロセッサ202は、二次記憶装置208に格納されたプログラムを読み出して、主記憶装置206に展開して実行することで、後述するような各種処理を実現する。
【0054】
二次記憶装置208は、例えば、HDD(Hard Disk Drive)およびSSD(Solid State Drive)などで構成される。二次記憶装置208には、典型的には、OS222と、制御装置100との間で必要なデータをやり取りするためのPLCインターフェイスプログラム224と、因果関係グラフを生成するための解析プログラム226と、GUIに係る処理を実行するGUIプログラム228とが格納される。これらのプログラムの全部または一部が情報処理プログラムに相当する。二次記憶装置208には、図6に示すプログラム以外の必要なプログラムが格納されてもよい。
【0055】
解析装置200は、光学ドライブ204を有しており、コンピュータ読取可能なプログラムを非一過的に格納する記録媒体205(例えば、DVD(Digital Versatile Disc)などの光学記録媒体)から、その中に格納されたプログラムが読み取られて二次記憶装置208などにインストールされる。
【0056】
解析装置200で実行されるプログラムは、コンピュータ読取可能な記録媒体205を介してインストールされてもよいが、ネットワーク上のサーバ装置などからダウンロードする形でインストールするようにしてもよい。また、本実施の形態に従う解析装置200が提供する機能は、OS222が提供するモジュールの一部を利用する形で実現される場合もある。
【0057】
USBコントローラ212は、USB接続を介して制御装置100との間のデータのやり取りを制御する。ネットワークコントローラ214は、任意のネットワークを介した他の装置との間のデータのやり取りを制御する。
【0058】
入力部216は、キーボードおよびマウスなどで構成され、ユーザ操作を受け付ける。表示部218は、ディスプレイ、各種インジケータ、プリンタなどで構成され、プロセッサ202からの処理結果などを出力する。
【0059】
図6には、プロセッサ202がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。
【0060】
(b3:開発装置300)
本実施の形態に従う開発装置300は、一例として、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコン)を用いてプログラムを実行することで実現される。開発装置300のハードウェア構成例は、図6に示す解析装置200のハードウェア構成例と同様であるので、詳細な説明は繰り返さない。
【0061】
但し、開発装置300のストレージには、制御装置100で実行されるユーザプログラム132を生成するための開発環境を提供する開発プログラムが格納されている。
【0062】
<C.機能構成例>
図7は、本実施の形態に従う情報処理システム1の機能構成を示す模式図である。図7を参照して、情報処理システム1は、1または複数の制御装置100と、解析装置200と、開発装置300とを含む。
【0063】
図7を参照して、制御装置100は、PLC(Programmable Logic Controller)などの産業用コントローラである。制御装置100は、PLCエンジン150と、変数マネジャ152と、インターフェイス154と、TSDB(Time Series Data Base)156とを含む。
【0064】
制御装置100は、センサ42およびアクチュエータ44を含むフィールドデバイス40と接続される。制御装置100は、フィールドデバイス40(センサ42)からプロセスデータ(入力データ)を収集するとともに、PLCエンジン150による制御演算の結果に従って、フィールドデバイス40(アクチュエータ44)に指令(出力データ)を出力する。
【0065】
PLCエンジン150は、製造ラインを構成する各製造装置を制御するためのユーザプログラム132に従って、制御演算を実行する。制御演算は、シーケンス制御および/またはモーション制御を含む。
【0066】
変数マネジャ152は、PLCエンジン150がユーザプログラム132を実行するにあたって参照可能な変数(変数が示す値を)管理する。変数マネジャ152は、予め登録された変数の値をTSDB156に周期的またはイベント的に書き込む。
【0067】
インターフェイス154は、フィールドデバイス40との間で周期的にデータ(入力データおよび出力データ)をやり取りする。このような周期的なデータのやり取りは、「I/Oリフレッシュ処理」と称されることもある。
【0068】
TSDB156は、予め登録された変数の値を時系列に格納する。そのため、TSDB156には、時系列データ50が格納されることになる。時系列データ50は、フィールドデバイス40から収集した入力データと、フィールドデバイス40へ与えられた出力データと、PLCエンジン150の内部で保持される内部データとを含み得る。
【0069】
図8は、本実施の形態に従う情報処理システム1が処理する時系列データ50の一例を示す模式図である。図8を参照して、時系列データ50の各レコードは、タイムスタンプ51と、1または複数のプロセスデータ52と、1または複数の状態変数53と、フレーム変数54とを含む。
【0070】
タイムスタンプ51は、制御装置100または解析装置200が管理するタイマにより付与される時刻情報である。プロセスデータ52は、センサから取得された入力データ、アクチュエータへ与えられた出力データ、制御装置100の内部で管理される内部データなどを含む。状態変数53は、制御装置100が制御および/または肯定の進捗を管理するための内部データである。フレーム変数54は、解析処理における対象区間を決定するための情報である。
【0071】
再度図7を参照して、開発装置300は、エディタ350と、コンパイラ360とを含む。
【0072】
エディタ350は、ユーザプログラム132に対応するソースコード352の作成および編集を行うための環境を提供する。
【0073】
コンパイラ360は、ソースコード352をパースして中間言語354を生成し、中間言語354からオブジェクトコードであるユーザプログラム132を生成する。生成されたユーザプログラム132は、任意の方法で制御装置100へ転送される。
【0074】
コンパイラ360は、ソースコード352をパースする際にプログラム構成情報358を生成する。プログラム構成情報358は、ユーザプログラム132で使用されている変数および関数などの関係性を定義する。プログラム構成情報358は、任意の方法で解析装置200へ転送される。プログラム構成情報358は、制御装置100へ一旦転送された後に、制御装置100から解析装置200へ転送されてもよい。
【0075】
解析装置200は、制御装置100のTSDB156に格納される時系列データ50から因果関係グラフおよびステートマシーンを生成する。解析装置200は、因果関係グラフ生成モジュール250と、ステートマシーン生成モジュール260と、GUI(Graphical User Interface)モジュール270とを含む。
【0076】
因果関係グラフ生成モジュール250は、時系列データ50から因果関係グラフを生成する。より具体的には、因果関係グラフ生成モジュール250は、取得した時系列データ50から特徴量(各ノードが示す値)を算出し、算出した特徴量(ノード)から因果関係グラフを生成する。このように、因果関係グラフ生成モジュール250は、取得された時系列データ50に基づいて、事象に至る因果関係を推定することで、1または複数のノードを含む因果関係グラフを生成する。このとき、事象に至る因果関係を統計的に推定してもよいし、演繹的に決定してもよい。
【0077】
なお、因果関係グラフ生成モジュール250は、複数の工程のうちいずれかの工程が選択されると、当該選択された工程に対応する因果関係グラフを生成するようにしてもよい。
【0078】
また、因果関係グラフ生成モジュール250は、図2に示すように、ステートマシーンに含まれる状態の選択に応じて、因果関係グラフを更新する。因果関係グラフを更新する処理の詳細については、後述する。
【0079】
因果関係グラフ生成モジュール250は、クラスタリング生成モジュール252を有している。クラスタリング生成モジュール252は、ステートマシーンに含まれるエッジの選択に応じて、散布図を表示する際などに、データをクラスタリングする。
【0080】
ステートマシーン生成モジュール260は、時系列データ50からステートマシーンを生成する。ステートマシーン生成モジュール260は、開発装置300から取得したプログラム構成情報358を参照して、ステートマシーンの状態を定義する合成状態変数を決定してもよい。
【0081】
ステートマシーン生成モジュール260は、条件付き確率生成モジュール262を含む。条件付き確率生成モジュール262は、時系列データ50に含まれる状態について、条件付き確率を算出する。ステートマシーン生成モジュール260は、算出された条件付き確率に基づいて、ステートマシーンを生成する。このように、ステートマシーン生成モジュール260は、取得された時系列データ50に含まれる状態および条件付き確率に基づいて、ステートマシーンを生成する。
【0082】
図7には、因果関係グラフ生成モジュール250およびステートマシーン生成モジュール260の各々が製造ラインに関するデータである時系列データ50を取得する機能を有している例を示すが、時系列データ50を取得する独立したモジュールを設けてもよい。
【0083】
GUIモジュール270は、因果関係グラフ生成モジュール250により生成される因果関係グラフ、および、ステートマシーン生成モジュール260により生成されるステートマシーンを表示する。例えば、GUIモジュール270は、因果関係グラフおよびステートマシーンを並べて表示する(後述の図14など参照)。
【0084】
また、GUIモジュール270は、ユーザ操作に応じて、因果関係グラフ生成モジュール250およびステートマシーン生成モジュール260に対して、因果関係グラフの更新およびステートマシーンの表示の更新をそれぞれ指示する。
【0085】
図7には、制御装置100と解析装置200とを別体の装置として例示するが、制御装置100と解析装置200とを一体の装置として構成してもよい。また、解析装置200に含まれる機能(因果関係グラフ生成モジュール250、ステートマシーン生成モジュール260およびGUIモジュール270)の一部をクラウド上のリソースで実行するようにしてもよい。すなわち、本実施の形態に従う解析装置200は、単一の装置として実装してもよいし、複数の装置を用いて実装してもよい。
【0086】
<D.処理手順>
次に、本実施の形態に従う情報処理システム1における処理手順について説明する。
【0087】
(d1:全体処理)
図9は、本実施の形態に従う情報処理システム1における解析処理の処理手順を示すフローチャートである。図9に示す各ステップは、典型的には、解析装置200のプロセッサ202が情報処理プログラム(図6に示すPLCインターフェイスプログラム224、解析プログラム226およびGUIプログラム228など)を実行することで実現される。
【0088】
図9を参照して、解析装置200は、解析処理の開始条件が成立したか否かを判断する(ステップS1)。解析処理の開始条件は、例えば、ユーザが明示的に作成開始を指示したことを含んでいてもよいし、何らかのイベントが発生したことを含んでいてもよい。さらに、解析処理の開始条件は、前回の処理実行から所定時間が経過したことを含んでいてもよい。
【0089】
解析処理の開始条件が成立していなければ(ステップS1においてNO)、ステップS1の処理が繰り返される。
【0090】
解析処理の開始条件が成立していれば(ステップS1においてYES)、解析装置200は、制御装置100から時系列データ50を取得する(ステップS2)。すなわち、解析装置200は、製造ラインに関するデータを取得する。
【0091】
続いて、解析装置200は、取得した時系列データ50に含まれる状態変数およびフレーム変数のデータを特定するとともに、解析の対象となるプロセスデータ(入力データ、出力データ、内部データ)を特定する(ステップS3)。状態変数のデータは、ステートマシーンを生成するために用いられる。フレーム変数のデータは、解析処理における対象区間を決定するために用いられる。例えば、フレーム変数のデータが同じ値を示している区間を1つのフレームとして抽出することができる。
【0092】
解析装置200は、時系列データ50に含まれる状態変数の値に基づいて、ステートマシーンを生成し(ステップS4)、生成されたステートマシーンを表示する(ステップS5)。
【0093】
また、時系列データ50から因果関係グラフを生成し(ステップS6)、生成された因果関係グラフを表示する(ステップS7)。このように、解析装置200は、取得された時系列データ50に基づいて、事象に至る因果関係を推定することで、1または複数のノードを含む因果関係グラフを生成する。
【0094】
続いて、解析装置200は、表示されたステートマシーンにおいて、いずれかの状態が選択されたか否かを判断する(ステップS8)。
【0095】
いずれかの状態が選択されると(ステップS8においてYES)、解析装置200は、選択された状態に応じて、因果関係グラフを更新する(ステップS6)。このように、解析装置200は、ステートマシーンに含まれる状態の選択に応じて、因果関係グラフを更新する。
【0096】
いずれの状態も選択されなければ(ステップS8においてNO)、解析装置200は、表示された因果関係グラフにおいて、いずれかのエッジが選択されたか否かを判断する(ステップS9)。いずれかのエッジが選択されると(ステップS9においてYES)、解析装置200は、ステートマシーンの表現形態を更新する(ステップS10)。いずれのエッジも選択されなければ(ステップS9においてNO)、ステップS10の処理はスキップされる。
【0097】
本明細書において、「ステートマシーンの表現形態」との用語は、ステートマシーンが表示または再生されたときに、ユーザが視覚的に認識する内容を意味する。ステートマシーンの表現形態を更新する処理は、ステートマシーンを表示するための指令、データ、および/または、信号を更新することを包含し、解析装置200に含まれる表示部218、および、解析装置200とは別の表示装置の存在を必須とするものではない。
【0098】
続いて、解析装置200は、解析処理の終了が指示されたか否かを判断する(ステップS11)。解析処理の終了が指示されなければ(ステップS11においてNO)、ステップS8以下の処理が繰り返される。解析処理の終了が指示されると(ステップS11においてYES)、ステップS1以下の処理が繰り返される。
【0099】
(d2:ステートマシーン生成処理)
次に、図9に示すステートマシーンを生成する処理(ステップS4)について説明する。
【0100】
図10は、図9に示すステートマシーン生成処理の処理手順を示すフローチャートである。図11は、図9に示すステートマシーン生成処理において生成されるデータの一例を示す図である。
【0101】
図10を参照して、解析装置200は、すべての状態変数を包含する合成状態変数Sを生成する(ステップS41)。続いて、解析装置200は、生成した合成状態変数Sの一意性を満たすように、状態STを定義する(ステップS42)。
【0102】
図11(A)には、合成状態変数Sおよび状態STの一例を示す。例えば、3つの状態変数s1,s2,s3から合成状態変数Sを生成するとともに、合成状態変数Sが示す値が4種類であることに応じて、4つの状態ST1~ST4を定義できる。
【0103】
再度図10を参照して、解析装置200は、時系列データ50に含まれる各フレームが示す状態STの値に基づいて、状態STの条件付き確率を算出する(ステップS43)。算出された条件付き確率は、条件付き確率表(CPT:Conditional Probability Table)として記述できる。
【0104】
図11(B)には、4つの状態ST1~ST4についての条件付き確率表の一例を示す。図11(B)に示す条件付き確率表においては、状態ST1から状態ST2への遷移、状態ST2から状態ST3への遷移、状態ST3から状態ST4への遷移、および、状態ST4から状態ST1への遷移については、0.97以上の相対的に高い確率を示している。
【0105】
再度図10を参照して、解析装置200は、算出した状態STの条件付き確率において、予め定められたしきい値より高い確率を示す遷移を抽出して、ステートマシーンを生成する(ステップS44)。そして、処理はリターンする。
【0106】
このように、ステートマシーンを生成する処理(ステップS4)において、解析装置200は、取得された時系列データ50に含まれる状態および条件付き確率に基づいて、ステートマシーンを生成する。より具体的には、解析装置200は、取得された時系列データ50から状態を定義するとともに、定義された状態が示す値の一意性を満たすように、ステートマシーンに含める状態を決定する。
【0107】
(d3:因果関係グラフ生成)
次に、図9に示す因果関係グラフを生成する処理(ステップS6)について説明する。
【0108】
図12は、図9に示す因果関係グラフを生成する処理の処理手順を示すフローチャートである。図12を参照して、解析装置200は、時系列データ50をフレーム毎に分割し(ステップS61)、対象となるフレームを抽出する(ステップS62)。
【0109】
続いて、解析装置200は、フレーム毎に特徴量を算出する(ステップS63)。特徴量は、対象の各プロセスデータについて、各フレームにおける平均値、最小値、最大値といった、各フレームを代表する任意の値である。各特徴量は、因果関係グラフを構成する各ノードとなる。
【0110】
解析装置200は、何らかの異常が発生したフレーム(異常ラベルが付与されたフレーム)に注目して、各特徴量の重要度および貢献度を算出する(ステップS64)。解析装置200は、特徴量の偏相関を算出し(ステップS65)、算出した偏相関とユーザプログラム132に定義された変数間の依存関係とを合成する(ステップS66)。ユーザプログラム132を考慮することで、工程の情報を反映した因果関係グラフを生成できる。すなわち、取得された時系列データ50から算出された特徴量の偏相関と、製造ラインを制御するためのユーザプログラム132に定義された変数間の依存関係とに基づいて、因果関係グラフを生成することができる。
【0111】
また、ユーザプログラム132を考慮することで、状態遷移なども考慮した因果関係グラフを生成できる。解析装置200は、構造方程式モデリング(SEM:Structural Equation Modeling)に基づく変数間の依存関係を生成する(ステップS67)。
【0112】
最終的に、解析装置200は、各特徴量の重要度および貢献度(ステップS64)、偏相関とユーザプログラム132に定義された変数間の依存関係との合成結果(ステップS65,S66)、および、構造方程式モデリングに基づく変数間の依存関係(ステップS67)に基づいて、因果関係グラフを生成する(ステップS68)。そして、処理はリターンする。
【0113】
すなわち、解析装置200は、ステップS63において算出した特徴量(ノード)間の結合関係(エッジ)を決定する。決定される結合関係(エッジ)は、無向性であってもよいし、有向性であってもよい。
【0114】
なお、因果関係グラフを生成するためには、ステップS64~S67に示される情報をすべて用いる必要はなく、また、ステップS64~S67に示される情報以外の情報を用いるようにしてもよい。
【0115】
上述のステップS62において、因果関係グラフを生成する場合には、全フレームが対象となるのに対して、因果関係グラフを更新する場合には、選択された状態に対応するフレームが対象となる。すなわち、因果関係グラフの更新において、解析装置200は、ステートマシーンから選択された1または複数の状態に対応するデータに基づいて、因果関係グラフを再生成する。
【0116】
(d4:ステートマシーン表示更新)
次に、図9に示すステートマシーンの表現形態を更新する処理(ステップS10)について説明する。
【0117】
図13は、図9に示すステートマシーンの表現形態を更新する処理の処理手順を示すフローチャートである。図13を参照して、解析装置200は、選択されたエッジの両端に位置する2つのノードに対応するデータを時系列データ50から抽出し(ステップS101)、抽出したデータを散布図などの形で表示する(ステップS102)。
【0118】
解析装置200は、表示されたデータに対してユーザが対象領域を選択したか否かを判断する(ステップS103)。表示されたデータに対してユーザが対象領域を選択しなければ(ステップS103においてNO)、ステップS103の処理が繰り返される。
【0119】
表示されたデータに対してユーザが対象領域を選択すると(ステップS103においてYES)、解析装置200は、選択された対象領域に含まれるデータに対応する状態(合成状態変数Sおよび状態ST)を抽出する(ステップS104)。そして、抽出した状態を示す対象特定表示24をステートマシーンに付加する(ステップS105)。そして、処理はリターンする。
【0120】
<E.GUI>
次に、解析装置200のGUIモジュール270が提供するGUIの一例を説明する。
【0121】
図14は、本実施の形態に従う解析装置200が提供する表示画面400の一例を示す模式図である。図14を参照して、表示画面400は、制御装置100から取得した時系列データ50の波形を示す波形表示エリア410と、生成された因果関係グラフを表示するグラフ表示エリア420と、生成されたステートマシーンを表示するステートマシーン表示エリア430と、時系列データ50の対象範囲を指定する対象範囲指定エリア440と、検知された異常を一覧表示する異常表示エリア442と、要因解析の結果を表示する結果表示エリア444とを含む。
【0122】
ユーザは、何らかの異常が発生すると、波形表示エリア410において因果関係グラフの生成に用いる区間412を設定する。なお、区間412は、イベント発生に応じて、自動的に設定されてもよい。さらに、何らかの異常が発生した区間414(異常ラベルが付与される区間)を表示するようにしてもよい。なお、ユーザは、対象範囲指定エリア440において、時系列データ50の対象範囲を時刻で指定することもできる。
【0123】
区間412および/または区間414の設定に応じて、解析装置200は、上述したような処理手順に従って、因果関係グラフおよびステートマシーンを生成する。
【0124】
ユーザは、ポインタ450などを操作して、因果関係グラフおよび/またはステートマシーンを選択することで、表示される内容が適宜更新される。すなわち、ユーザがステートマシーンに含まれる1または複数の状態を選択すると、因果関係グラフが更新される。また、ユーザが因果関係グラフに含まれるノードまたはエッジを選択すると、ステートマシーンの表示が更新される。
【0125】
このように、解析装置200のGUIモジュール270は、互いに関連付けられた因果関係グラフとステートマシーンとを表示する。
【0126】
<F.変形例>
上述の説明においては、特定の工程についての因果関係グラフおよびステートマシーンを用いて要因解析を行う例を取り上げたが、複数の工程についての因果関係グラフおよびステートマシーンを用いて、工程を跨ぐ要因解析を行うこともできる。
【0127】
図15は、本実施の形態に従う情報処理システム1を用いて工程を跨いだ要因解析の一例を説明するための図である。
【0128】
図15には、一例として、4つの工程A~工程Dの各々についての因果関係グラフおよびステートマシーンを表示する。解析装置200は、複数の工程についての因果関係グラフおよびステートマシーンを出力してもよい。
【0129】
ユーザは、関連付けられた因果関係グラフおよびステートマシーンを参照して、工程を跨いだ解析や工程毎のサイクルタイム分析などを行うこともできる。
【0130】
<G.付記>
上述したような本実施の形態は、以下のような技術思想を含む。
【0131】
[構成1]
製造ラインに関するデータ(50)を取得する取得部と、
前記取得されたデータに基づいて、事象に至る因果関係を推定することで、1または複数のノードを含む因果関係グラフ(10)を生成する第1の生成部(250)と、
前記取得されたデータに含まれる状態および条件付き確率に基づいて、ステートマシーン(20)を生成する第2の生成部(260)とを備え、
前記第1の生成部は、前記ステートマシーンに含まれる状態の選択に応じて、前記因果関係グラフを更新する、解析装置。
【0132】
[構成2]
前記第1の生成部は、前記選択された1または複数の状態に対応するデータに基づいて、前記因果関係グラフを再生成する、構成1に記載の解析装置。
【0133】
[構成3]
前記第1の生成部は、複数の工程のうち選択された工程に対応する因果関係グラフを出力する、構成1または2に記載の解析装置。
【0134】
[構成4]
前記第2の生成部は、前記因果関係グラフのノードまたはエッジの選択に応じて、前記ステートマシーンの表現形態を更新する、構成1~3のいずれか1項に記載の解析装置。
【0135】
[構成5]
前記因果関係グラフのノードまたはエッジの選択は、関連するデータ群から対象のデータを選択することを含む、構成4に記載の解析装置。
【0136】
[構成6]
前記第1の生成部および前記第2の生成部は、複数の工程についての因果関係グラフおよびステートマシーンを出力する、構成1~5のいずれか1項に記載の解析装置。
【0137】
[構成7]
前記第2の生成部は、前記取得されたデータから状態を定義するとともに、定義された状態が示す値の一意性を満たすように、前記ステートマシーンに含める状態を決定する、構成1~6のいずれか1項に記載の解析装置。
【0138】
[構成8]
前記因果関係グラフおよび前記ステートマシーンを並べて表示する表示部(270;218)をさらに備える、構成1~7のいずれか1項に記載の解析装置。
【0139】
[構成9]
コンピュータ(200)が実行する解析方法であって、
製造ラインに関するデータ(50)を取得するステップ(S2)と、
前記取得されたデータに基づいて、事象に至る因果関係を推定することで、1または複数のノードを含む因果関係グラフ(10)を生成するステップ(S6)と、
前記取得されたデータに含まれる状態および条件付き確率に基づいて、ステートマシーン(20)を生成するステップ(S4)と、
前記ステートマシーンに含まれる状態の選択に応じて、前記因果関係グラフを更新するステップ(S6)とを備える、解析方法。
【0140】
[構成10]
情報処理プログラム(224,226,228))であって、コンピュータ(100)に、
製造ラインに関するデータ(50)を取得するステップ(S2)と、
前記取得されたデータに基づいて、事象に至る因果関係を推定することで、1または複数のノードを含む因果関係グラフ(10)を生成するステップ(S6)と、
前記取得されたデータに含まれる状態および条件付き確率に基づいて、ステートマシーン(20)を生成するステップ(S4)と、
前記ステートマシーンに含まれる状態の選択に応じて、前記因果関係グラフを更新するステップ(S6)とを実行させる、情報処理プログラム。
【0141】
<H.利点>
製造ラインなどから収集された情報に基づいて、製品品質不良などの要因を分析するために生成される因果関係グラフは大規模化することもある。製品品質不良の要因を分析するには、製造ラインを構成する製造装置のふるまいに関する知識が必要であるが、因果関係グラフとステートマシーンとを関連付けることで、解釈性を向上させることができる。これによって、異常の要因の特定を容易化できる。
【0142】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0143】
1 情報処理システム、10,10A,10B,10C,10M 因果関係グラフ、20 ステートマシーン、22 状態群、24 対象特定表示、40 フィールドデバイス、42 センサ、44 アクチュエータ、50 時系列データ、51 タイムスタンプ、52 プロセスデータ、53 状態変数、54 フレーム変数、60 散布図、62 対象領域、100 制御装置、102,202 プロセッサ、104 チップセット、106,206 主記憶装置、108,208 二次記憶装置、110 フィールドバスコントローラ、112,212 USBコントローラ、114 メモリカードインターフェイス、116 メモリカード、131 システムプログラム、132 ユーザプログラム、150 PLCエンジン、152 変数マネジャ、154 インターフェイス、156 TSDB、200 解析装置、204 光学ドライブ、205 記録媒体、214 ネットワークコントローラ、216 入力部、218 表示部、220 バス、222 OS、224 インターフェイスプログラム、226 解析プログラム、228 プログラム、250 因果関係グラフ生成モジュール、252 クラスタリング生成モジュール、260 ステートマシーン生成モジュール、262 条件付き確率生成モジュール、270 GUIモジュール、300 開発装置、350 エディタ、352 ソースコード、354 中間言語、358 プログラム構成情報、360 コンパイラ、400 表示画面、410 波形表示エリア、412,414 区間、420 グラフ表示エリア、430 ステートマシーン表示エリア、440 対象範囲指定エリア、442 異常表示エリア、444 結果表示エリア、450 ポインタ。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15