以下、本発明の実施形態について、図面を参照して説明する。図1は、本発明の実施形態におけるイベント解析装置を備えたイベント解析システムの概略構成を示したブロック図である。図1において、イベント解析システム1は、イベント解析装置10と、イベントデータベース11と、因果モデルデータベース12と、表示装置13と、制御システム14と、ヒストリアン15と、を含んで構成される。
イベント解析システム1は、制御システム14やヒストリアン15などから収集した、プラント内に配置されたそれぞれの設備などにおけるイベント(例えば、制御システム14自身のイベントも含む)のデータ(以下、「イベントデータ」という)と、設備で行っている様々な工程(プロセス)のデータ(以下、「プロセスデータ」という)とを統合させて、プラント内の様々なイベントの間の因果関係を解析するシステムである。なお、プラントとしては、石油の精製や化学製品の生産を行う工業プラントの他、ガス田や油田などの井戸元やその周辺を管理制御するプラント、水力・火力・原子力などの発電を管理制御するプラント、太陽光や風力などの環境発電を管理制御するプラント、上下水やダムなどを管理制御するプラントなどが含まれる。
制御システム14は、プラント内に配置されたそれぞれの設備の稼働を制御する制御システムである。制御システム14は、プラント内において、例えば、分散制御システム(Distributed Control System:DCS)として構築されている。制御システム14は、例えば、制御を行う対象の設備に設置された不図示のフィールド機器などの制御機器や、制御を行う対象の設備に対応する不図示の操作機器などから、イベントデータやプロセスデータを取得する。なお、制御システム14がイベントデータやプロセスデータを取得する機器は、上述したフィールド機器(制御機器)や操作機器の他にも様々な機器が考えられるが、以下の説明においては、制御システム14は、フィールド機器および操作機器からイベントデータやプロセスデータを取得するものとして説明する。
ここで、フィールド機器は、設置されている設備が稼働しているときの動作状態(例えば、圧力、温度、流量など)を測定する測定機能、さらには、測定した結果に基づいて設備の動作状態を診断する診断機能を備えた測定器や、入力された制御信号に応じて設置されている設備の動作を制御する制御機能(例えば、アクチュエータなど)を備えた操作器などの現場機器である。
フィールド機器は、設置されている設備の動作状態を測定機能によって測定した測定値(例えば、圧力値、温度、流量など)のデータを、設備において実施しているプロセスのプロセスデータとして、制御システム14に逐次出力する。なお、プロセスデータには、出力する測定値の種類(例えば、圧力値、温度、流量など)の情報も含まれている。また、プロセスデータには、自フィールド機器を識別するために付与されているタグ名などの情報が紐付けられている。なお、プロセスデータとして出力する測定値は、フィールド機器が測定した測定値のみではなく、測定値から計算された計算値を含んでいてもよい。測定値からの計算値の計算は、フィールド機器において行ってよいし、フィールド機器に接続された不図示の外部機器によって行ってもよい。
また、フィールド機器は、測定機能によって測定した測定値を診断機能によって診断した結果、例えば、測定値が予め定められた範囲内に入っていないなど、設置された設備の動作状態が正常ではないことを通知する必要があると診断された場合、ランプや音によって警報を発して周囲に通知する。このとき、フィールド機器は、警報を発したことを表す情報を、設備におけるアラームのイベント(以下、「アラームイベント」という)のイベントデータ(以下、「アラームイベントデータ」という)として制御システム14に出力する。なお、アラームイベントデータには、警報(アラーム)の種類(例えば、上限値オーバー、下限値オーバーなど)を表す情報や、診断機能によって診断した結果などのデータも含まれている。また、アラームイベントデータにも、プロセスデータと同様に、タグ名の情報が紐付けられている。
また、フィールド機器は、例えば、プラントにおいて設備の運転の制御や保守を行う作業員などのオペレータによる操作機器の操作に従って、設備の動作を制御するために設定する設定値などを制御機能が変更した場合に、設定値の変更を行ったことを表す情報を、設備に対する操作のイベント(以下、「操作イベント」という)のイベントデータ(以下、「操作イベントデータ」という)として制御システム14に出力する。なお、操作イベントデータには、変更(設定)した設定の種類(例えば、圧力値、電圧値、電流値など)を表す情報や、制御機能によって変更(設定)した設定値などのデータも含まれている。また、アラームイベントデータにも、プロセスデータやアラームイベントデータと同様に、タグ名の情報が紐付けられている。オペレータが操作する操作機器は、例えば、スイッチやボリューム(可変抵抗器)が配置された不図示の操作盤や操作卓など、それぞれの設備に配置された操作機器であってもよいし、オペレータが携帯する不図示の携帯端末機器などの操作機器であってもよい。また、操作イベントデータは、操作機器の操作に従ったフィールド機器が制御システム14に出力してもよいし、オペレータに操作された操作機器が直接、制御システム14に出力してもよい。
制御システム14は、フィールド機器(操作機器であってもよい)から出力されたプロセスデータ、アラームイベントデータ、および操作イベントデータのそれぞれを取得する。なお、制御システム14では、フィールド機器(または操作機器)から出力されたアラームイベントデータおよび操作イベントデータを、イベントデータとして取得する。このとき、制御システム14は、それぞれのデータを取得した現在の時間(日時)を記録する。そして、制御システム14は、時間(日時)の情報、つまり、それぞれのデータを取得した時間(日時)の情報を付与したプロセスデータとイベントデータとのそれぞれを、例えば、プラント内に構築された専用の通信ネットワークを介して、イベント解析装置10に出力する。
なお、制御システム14は、それぞれのデータを取得した時間(日時)の情報を付与したプロセスデータとイベントデータとのそれぞれを、不図示の記憶部に一旦記憶してから、予め定めた期間(時間)分のデータをまとめて、つまり、予め定めた期間分の履歴(ログ)として、イベント解析装置10に出力してもよい。また、制御システム14は、フィールド機器(操作機器であってもよい)からプロセスデータとイベントデータとのそれぞれを取得するごとに、それぞれのデータを取得した時間(日時)の情報を付与したプロセスデータとイベントデータとのそれぞれを、イベント解析装置10に逐次出力してもよい。
ヒストリアン15は、制御システム14が取得したプロセスデータとイベントデータとのそれぞれと同じデータを時系列に保存することによって、長期間分のデータの履歴(ログ)を保存するデータ保存装置である。ヒストリアン15は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)などの種々のメモリや、HDD(Hard disk drive:ハードディスクドライブ)などの記憶装置を含んで構成される。なお、ヒストリアン15も、プロセスデータとイベントデータとのそれぞれを保存する際に、それぞれのデータを取得した時間(日時)の情報を付与する。ヒストリアン15は、保存しているプロセスデータのログ(以下、「プロセスログデータ」という)と、保存しているイベントデータのログ(以下、「イベントログデータ」という)とのそれぞれを、例えば、プラント内に構築された専用の通信ネットワークを介して、イベント解析装置10に出力する。
なお、図1に示したイベント解析システム1の構成では、制御システム14とヒストリアン15とのそれぞれを1つずつ備えている構成を示している。しかし、イベント解析システム1に備える制御システム14とヒストリアン15との数は、図1に示した構成のように1つずつに限定されるものではない。つまり、イベント解析システム1は、複数の制御システム14やヒストリアン15を備えた構成であってもよい。
また、図1に示したイベント解析システム1の構成では、制御システム14とヒストリアン15とを、異なる装置として備えている構成を示している。しかし、イベント解析システム1における制御システム14とヒストリアン15との構成は、図1に示した構成に限定されるものではない。例えば、ヒストリアン15は、制御システム14においてプロセスデータとイベントデータとのそれぞれを記憶する機能として、制御システム14に備えられる構成であってもよい。つまり、ヒストリアン15は、制御システム14に内蔵されて、分散制御システムなどの制御システムを構築する構成要素であってもよい。
イベント解析装置10は、制御システム14から取得したプロセスデータ(プロセスログデータ)およびイベントデータ(イベントログデータ)や、ヒストリアン15から取得したプロセスログデータおよびイベントログデータに基づいて(組み合わせて)、プラント内の様々なイベントの間の因果関係を解析する処理装置である。なお、以下の説明においては、イベント解析装置10が、制御システム14やヒストリアン15からプロセスログデータおよびイベントログデータを取得し、取得したプロセスログデータに含まれるプロセスデータや、イベントログデータに含まれるイベントデータを組み合わせて、それぞれのデータ同士の因果関係を解析するものとして説明する。
イベント解析装置10では、プロセスデータとイベントデータとを統合させた因果関係の解析の処理(解析処理)を行う。より具体的には、イベント解析装置10は、予め定めた長い期間のプロセスデータの傾向(トレンド)を解析することによって、プロセスデータに表されている測定値(以下、「プロセス値」という)が、目標とするプロセス値(目標値)から逸脱してから安定するまでの区間、すなわち、プロセス値が変動している区間を検出する。そして、イベント解析装置10は、検出したそれぞれの区間においてプロセス値が同じように変動している時間的な継続性のある状態を、設備におけるプロセスの1つのイベント(以下、「プロセス変動イベント」という)とし、このプロセス変動イベントにおいてプロセス値が変動している状態を表す情報を、イベントデータに含まれるアラームイベントデータや操作イベントデータと同様の形式で表したプロセス変動イベントデータを生成する。つまり、イベント解析装置10は、プロセスデータのトレンドから、トレンドが変化している箇所(区間)をプロセス変動イベントとして検出してプロセス変動イベントデータを生成することによって、プロセスデータをイベントデータに変換している。さらに、イベント解析装置10は、イベントデータに含まれるアラームイベントデータや操作イベントデータに対しても時間的な概念を考慮する(適用する)。そして、イベント解析装置10は、生成(変換)したプロセス変動イベントデータと、時間的な概念を考慮した(適用した)イベントデータに含まれるアラームイベントデータや操作イベントデータとに基づいて、それぞれのイベント同士、つまり、プロセス変動イベント、アラームイベント、および操作イベントのそれぞれのイベント間の因果関係の解析を行う。なお、イベント解析装置10における因果関係の解析では、それぞれのイベントの因果関係を表したベイジアンネットワークなどの因果モデルを構築することによって行う。このベイジアンネットワークには、それぞれのイベント間の因果関係の情報に加えて、それぞれのイベントデータに対して考慮した時間的な概念として、少なくとも、それぞれのイベントの時間的な継続性と、それぞれのイベント間の遅れ時間とが含まれている。このため、イベント解析装置10では、着目したイベントが発生する原因の推定や、着目したイベントを原因とした他のイベントの発生の予測などのイベント間の因果関係の解析と同時に、イベント間の時間差の分布や、それぞれのイベントの継続期間の分布を算出することができる。また、イベント解析装置10は、因果関係の解析結果や、算出したイベント間の時間差の分布、それぞれのイベントの継続期間の分布などの情報に基づいて、着目したイベントや予測した他のイベントの発生確率、発生時間、および継続期間の推定を行うことができる。そして、イベント解析装置10は、推定や予測を行った結果を表示装置13に出力して表示させることによって、例えば、プラントにおけるプロセス運転の管理者や制御システム14のオペレータなどのイベント解析装置10のユーザに様々な情報を提示し、ユーザによる操業運転を支援する。
イベント解析装置10は、イベントデータ収集部101と、イベントデータ集約部102と、プロセスデータ収集部103と、トレンド変化検出部104と、イベントデータ変換部105と、因果関係解析部106と、解析結果出力部107と、を含んで構成される。また、因果関係解析部106は、関連性解析モジュール1061と、因果モデル構築モジュール1062と、因果分析モジュール1063と、を含んで構成される。なお、図1に示したイベント解析装置10の構成では、イベント解析装置10において選択的な追加機能を実現するための構成要素の一例として、因果関係解析部106内に、異常予測モジュール1064も含んでいる構成を示している。なお、イベント解析装置10の動作や、イベント解析装置10を構成するそれぞれの構成要素の機能や動作に関する詳細な説明は、後述する。
イベントデータベース11は、イベント解析装置10が因果関係の解析処理を実行する際に利用されるデータベースである。イベントデータベース11には、イベント解析装置10が取得したアラームイベントデータや操作イベントデータ、イベント解析装置10が変換したプロセス変動イベントデータなどのイベントデータが記憶される。イベントデータベース11は、例えば、ROM、RAM、フラッシュメモリなどの種々のメモリや、HDDなどの記憶装置を含んで構成される。
因果モデルデータベース12は、イベントデータベース11と同様に、イベント解析装置10が因果関係の解析処理を実行する際に利用されるデータベースである。ただし、因果モデルデータベース12には、イベント解析装置10における因果関係の解析処理において構成されたベイジアンネットワークなどの因果モデルが記憶される。因果モデルデータベース12も、イベントデータベース11と同様に、例えば、ROM、RAM、フラッシュメモリなどの種々のメモリや、HDDなどの記憶装置を含んで構成される。
なお、図1に示したイベント解析システム1の構成では、イベントデータベース11と因果モデルデータベース12とがそれぞれ異なるデータベースとして構成されている場合を示している。しかし、イベント解析システム1に備えるイベントデータベース11と因果モデルデータベース12との構成は、図1に示したように別々のデータベースの構成に限定されるものではない。例えば、イベント解析システム1において、イベントデータベース11と因果モデルデータベース12とを1つのデータベースで構成し、この1つのデータベース内の記憶容量を分けて使用する構成であってもよい。また、イベントデータベース11と因果モデルデータベース12とのそれぞれは、例えば、クラウドコンピューティングシステムにおけるインターネット上の記憶装置などの外部の記憶装置であってもよい。また、イベントデータベース11と因果モデルデータベース12とのそれぞれは、イベント解析装置10の構成要素として、イベント解析装置10内に備える構成であってもよい。
表示装置13は、イベント解析装置10から出力された情報に応じた表示画面を生成して表示することによって、イベント解析装置10のユーザに様々な情報を提示するための表示端末装置である。より具体的には、表示装置13は、イベント解析装置10が出力した因果関係の解析結果や、時間差の分布の情報、継続期間の分布の情報などに応じた表示画面を生成してユーザに提示する。表示装置13は、例えば、液晶ディスプレイ(LCD:Liquid Crystal Display)などの表示デバイスを含んで構成される。なお、表示装置13は、ユーザによって操作され、イベント解析装置10が因果関係の解析処理を行う際の指示を入力するために、押圧センサなどによって構成される不図示の操作装置の機能を備えていてもよい。つまり、表示装置13は、操作装置と組み合わされたタッチパネルとして構成されていてもよい。
このような構成によって、イベント解析システム1では、プラント内に配置されたそれぞれの設備で行っている様々なプロセスのプロセスデータを、イベントデータ(プロセス変動イベントデータ)に変換する。そして、イベント解析システム1では、プロセスデータを変換したイベントデータと、従来のイベント解析装置においても用いていた、設備におけるイベントデータ(アラームイベントデータおよび操作イベントデータ)とを統合させて、つまり、設備におけるプロセスやイベントを組み合わせて、プラント内の様々なイベント同士の因果関係を解析する。
次に、イベント解析装置10のより詳細な構成および動作について説明する。まず、イベント解析装置10を構成するそれぞれの構成要素の機能や動作について説明する。上述したように、イベント解析装置10は、イベントデータ収集部101と、イベントデータ集約部102と、プロセスデータ収集部103と、トレンド変化検出部104と、イベントデータ変換部105と、因果関係解析部106と、解析結果出力部107と、を含んで構成される。
イベントデータ収集部101は、制御システム14やヒストリアン15から、イベントログデータを取得する。より具体的には、イベントデータ収集部101は、イベント解析装置10が因果関係の解析処理を開始するとき、または予め定めた時間間隔で定期的に、制御システム14やヒストリアン15にイベントログデータの出力を要求し、この要求に応じて制御システム14やヒストリアン15から出力されたイベントログデータを取得する。
なお、イベントログデータには、プラントにおいて瞬時的に発生した単発のイベント(アラームイベントまたは操作イベント)のそれぞれを1回のイベントとして、それぞれのイベントごとのイベントデータ(アラームイベントデータや操作イベントデータ)が、複数含まれている。イベントログデータに含まれるそれぞれのイベントデータには、イベントの発生時刻と、イベントの種類を表す情報が付与されている。それぞれのイベントデータに付与されている発生時刻の情報は、制御システム14またはヒストリアン15がイベントデータを取得したときに付与した時間(日時)の情報である。また、それぞれのイベントデータに付与されているイベントの種類を表す情報には、識別名(イベントが発生したフィールド機器を識別するタグ名)や、パラメータ(警報(アラーム)の種類や設定(操作)の種類などの情報、診断結果や設定値のデータなど)、タイプ(アラームイベントであることを表す「Alarm」や操作イベントであることを表す「Operation」)などの情報が含まれている。
イベントデータ収集部101は、取得したイベントログデータを、イベントデータ集約部102に出力する。なお、イベントデータ収集部101は、制御システム14から逐次出力されたイベントデータ(1回ごとのイベントデータ)を取得した場合には、それぞれのイベントデータを順次、イベントデータ集約部102に出力する。
イベントデータ集約部102は、イベントデータ収集部101から出力されたイベントログデータに含まれる複数のイベントデータに対して、予め定められた集約処理を施して集約する。イベントデータ集約部102が行う集約処理は、同じ種類の単発のイベントを、時間的な継続期間を持つ1つのイベントに変換する(集約する)処理である。より具体的には、イベントデータ集約部102は、集約処理において、イベントデータに付与されたイベントの種類の情報に基づいて、1つのイベントデータとしてまとめられる同じ種類のイベントデータ(単発のイベントのイベントデータ)を、時間的な継続期間を持つ1つのイベントデータにまとめる。例えば、イベントデータ集約部102は、集約処理において、イベントの種類を表す情報として、同じ識別名、同じパラメータ、同じタイプの情報が付与されたイベントデータ、つまり、同じフィールド機器における同じイベントのイベントデータを、同じ種類のイベントデータであると判定して、1つのイベントデータにまとめる。
より具体的には、プラントでは、フィールド機器が測定した測定値が、設備におけるプロセスの目標値の前後で変動するなどの理由によって、想定される短い期間内(例えば、10分以内)に同じ種類のアラームイベントが再び発せられることがある。そして、この想定される短い期間内の同じ種類のアラームイベントは、繰り返し発せられることもある。この場合、イベントログデータには、想定される短い時間(日時)の間隔(等間隔でない場合もある)で、同じ種類の単発のアラームイベント(1回のアラームイベント)が、複数含まれることになる。そこで、イベントデータ集約部102は、想定される短い期間を予め定め、この予め定めた短い期間内に繰り返される複数の同じ種類の単発のアラームイベントをアラームイベント群(グループ)として扱い、このアラームイベント群に対応するそれぞれのアラームイベントデータを、同じ種類のアラームイベントが発せられている期間を継続期間として持った1つのアラームイベントデータとしてまとめる処理を行う。
また、プラントでは、オペレータが設備に対して設定値を変更する操作をする際に、複数回に渡って徐々に設定値を変更するランピングの操作を行ったなどの理由によって、想定される短い期間内(例えば、5分以内)に同じ種類(ただし、設定値は異なる場合がある)の操作イベントが繰り返し発せられることもある。この場合も、イベントログデータには、想定される短い時間(日時)の間隔(等間隔でない場合もある)で、同じ種類の単発の操作イベント(1回の操作イベント)が、複数含まれることになる。そこで、イベントデータ集約部102は、想定される短い期間を予め定め、この予め定めた短い期間内に繰り返される複数の同じ種類の単発の操作イベントを、オペレータが同じ意志を持って行った操作イベント群(グループ)として扱い、この操作イベント群に対応するそれぞれの操作イベントデータを、同じ種類の操作イベントが発せられている(同じ操作が行われている)期間を継続期間として持った1つの操作イベントデータとしてまとめる処理を行う。
イベントデータ集約部102は、集約処理を施した後のイベントデータ(以下、「継続イベントデータ」ともいう)に、イベントの継続期間を表す情報と、イベントの種類を表す情報とを付与する。それぞれの継続イベントデータに付与する継続期間の情報は、イベントの継続期間の開始時刻と終了時刻との情報である。イベントの継続期間の開始時刻は、1つにまとめられたイベント群の中で、最初に発生したイベントのイベントデータに付与されている発生時刻の情報、つまり、制御システム14またはヒストリアン15が、イベント群に含まれるイベントデータを最初に取得したときに付与した時間(日時)の情報である。また、イベントの継続期間の終了時刻は、1つにまとめられたイベント群の中で、最後に発生したイベントのイベントデータに付与されている発生時刻の情報、つまり、制御システム14またはヒストリアン15が、イベント群に含まれるイベントデータを最後に取得したときに付与した時間(日時)の情報である。なお、イベントデータ集約部102は、集約処理によってまとめられなかったイベントデータ、つまり、単独で1つのイベントのイベントデータとなる単発(1回)のイベントのイベントデータには、継続期間の開始時刻と終了時刻との両方に、そのイベントデータに付与されている発生時刻の情報、つまり、同じ時間(日時)の情報を付与する。また、それぞれの継続イベントデータに付与するイベントの種類を表す情報は、1つにまとめられたイベント群に含まれるいずれかのイベントデータ(例えば、最初に発生したイベントのイベントデータ)に付与されているイベントの種類を表す情報である。
イベントデータ集約部102は、集約処理を施した後のそれぞれの継続イベントデータ、および単発のイベントのイベントデータを含んで構成されたイベントログデータを、イベントデータベース11に出力して記憶(保存)させる。なお、以下の説明においては、集約処理を施した後の継続イベントデータと単発のイベントのイベントデータとを区別せずに、「継続イベントデータ」という。
なお、図1に示したイベント解析システム1を構成するイベント解析装置10の構成では、イベントデータ収集部101とイベントデータ集約部102とがそれぞれ異なる構成要素として構成されている場合を示している。しかし、イベント解析装置10に備えるイベントデータ収集部101とイベントデータ集約部102との構成は、図1に示したように異なる構成要素として備える構成に限定されるものではない。例えば、イベント解析装置10において、イベントデータ集約部102の機能を、イベントデータ収集部101に備える構成、つまり、イベントデータ収集部101の機能とイベントデータ集約部102の機能とを合わせた構成を、イベントデータ収集部101として備える構成であってもよい。
プロセスデータ収集部103は、制御システム14やヒストリアン15から、プロセスログデータを取得する。より具体的には、プロセスデータ収集部103は、イベント解析装置10が因果関係の解析処理を開始するとき、または予め定めた時間間隔で定期的に、制御システム14やヒストリアン15にプロセスログデータの出力を要求し、この要求に応じて制御システム14やヒストリアン15から出力されたプロセスログデータを取得する。なお、プロセスログデータには、予め定めた時間(例えば、「分」または「秒」)の間隔ごとに測定された複数のプロセスデータが、連続して含まれている。
プロセスデータ収集部103は、取得したプロセスログデータを、トレンド変化検出部104に出力する。なお、プロセスデータ収集部103は、制御システム14から逐次出力されたプロセスデータ(フィールド機器が行った1回の測定ごとのプロセスデータ)を取得した場合には、それぞれのプロセスデータをトレンド変化検出部104に順次出力する。
トレンド変化検出部104は、プロセスデータ収集部103から出力されたプロセスログデータに含まれる複数のプロセスデータに基づいて、予め定めた長い期間のプロセスデータの傾向(トレンド)の変化(変動)を検出する。より具体的には、トレンド変化検出部104は、プロセスログデータに予め定めた時間の間隔で連続的に含まれるそれぞれのプロセスデータに表されているプロセス値を解析(確認)することによって、プロセス値が目標値から逸脱しているか否かを判定する。このとき、トレンド変化検出部104は、プロセスデータに表されているプロセス値が、予め定めたプロセス値の変化量よりも大きく変化した場合に、プロセス値が変化したものと判定するようにしてもよい。これにより、トレンド変化検出部104は、プロセス値の判定が、予め定めたプロセス値の変化量よりも少ない場合には、プロセス値が変化したと判定しない、つまり、プロセス値の少しの変化(変動)は無視するようにすることができる。そして、トレンド変化検出部104は、プロセス値の変化を判定した結果を、それぞれのプロセスデータのトレンドの変化(トレンド変化)とする。
また、トレンド変化検出部104は、検出したプロセスデータのトレンド変化、つまり、判定したそれぞれのプロセス値の変化に基づいて、プロセス値が今までの目標値から逸脱し始めた時点から、再び今までの目標値または新しい目標値に収束する時点までの区間を、プロセスデータのトレンドが変動している区間(変動区間)として判定する。そして、トレンド変化検出部104は、判定したそれぞれの変動区間を、プロセス値の変動の種類を表すために予め定義した「不安定区間(Unstable)」、「目標値増加区間(Increase)」、および「目標値減少区間(Decrease)」の3つの種類(定義)のいずれかの区間に分類する。「不安定区間」は、目標値を一定として稼働させている設備の運転期間において、プロセス値が、今までの目標値の範囲から逸脱した後、再び同じ目標値の範囲に戻ってきたことを表す区間であり、例えば、プロセス値が今までの一定の目標値に安定していない(不安定である)区間を表す。また、「目標値増加区間」は、プロセス値が、今までの目標値の範囲から逸脱し、より大きな値の新しい目標値の範囲に近づいて収束することを表す区間であり、例えば、設備に今より大きな値の新しい目標値が設定されたことによってプロセス値が増加し、新しい目標値まで遷移している途中の区間を表す。また、「目標値減少区間」は、プロセス値が、今までの目標値の範囲から逸脱し、より小さな値の新しい目標値の範囲に近づいて収束することを表す区間であり、例えば、設備に今より小さな値の新しい目標値が設定されたことによってプロセス値が減少し、新しい目標値まで遷移している途中の区間を表す。なお、トレンド変化検出部104において検出した変動区間の分類は、「不安定区間」、「目標値増加区間」、および「目標値減少区間」の3つの種類に限定されるものではなく、必要に応じて他の種類の区間を定義、つまり、プロセス値の変動の種類を表す他の定義を設定してもよい。
トレンド変化検出部104は、分類したそれぞれの変動区間、つまり、1つの変動区間が、時間的な継続性を持った(継続期間を持った)1つのプロセス変動イベントとなるように、プロセスログデータに含まれるそれぞれのプロセスデータに、分類した変動区間の情報(「不安定区間」、「目標値増加区間」、および「目標値減少区間」のいずれかを表す情報)を、設備におけるプロセスのトレンド変化を検出した検出結果の情報として付与する。なお、トレンド変化検出部104は、プロセス値が変化したと判定しなかったプロセスデータ、つまり、変動区間に分類されないプロセスデータに対しては、変動区間を表す情報を付与しない(何もしない)。しかし、トレンド変化検出部104は、プロセス値が変化したと判定しなかったプロセスデータに対して、変動区間に分類されないことを表す情報を、プロセスのトレンド変化の検出結果の情報として付与してもよい。
トレンド変化検出部104は、分類した変動区間(検出結果)の情報を付与したプロセスデータを含んで構成されたプロセスログデータを、イベントデータ変換部105に出力する。なお、トレンド変化検出部104は、プロセスデータ収集部103からプロセスログデータが出力された場合には、上述したように、予め定めた長い期間のプロセスデータのトレンド変化を検出することによって、それぞれのプロセスデータを分類した変動区間の情報をプロセスのトレンドの検出結果の情報として付与してイベントデータ変換部105に出力することができる。しかし、プロセスデータ収集部103が、制御システム14から逐次出力されたプロセスデータ(フィールド機器が行った1回の測定ごとのプロセスデータ)を取得し、それぞれのプロセスデータをトレンド変化検出部104に順次出力してきた場合、トレンド変化検出部104は、プロセスデータに表されているプロセス値が予め定めたプロセス値の変化量よりも大きく変化したか否かを順次判定することはできるものの、変動区間への分類を直ちに行うことができないこともある。例えば、最初にプロセス値が大きく変化したと判定したプロセスデータについては、「不安定区間」に分類されるのか、「目標値増加区間」または「目標値減少区間」に分類されるのかを、直ちに判定することはできないと考えられる。これは、最初にプロセス値が大きく変化したと判定したプロセスデータは、まずは「目標値増加区間」または「目標値減少区間」に分類されると考えられるが、次のプロセスデータに表されているプロセス値が変化する方向が反対方向である場合には、「不安定区間」に分類する必要があると考えられるからである。なお、以降のプロセスデータは、それ以前のプロセスデータが表すプロセス値が変化する方向に基づいて、「不安定区間」、「目標値増加区間」、および「目標値減少区間」のいずれかに、順次分類することができると考えられる。このため、トレンド変化検出部104は、プロセスデータ収集部103から順次出力されたプロセスデータに対して分類した変動区間(検出結果)の情報を付与したプロセスデータを、少なくとも1つ分遅らせたタイミングから、イベントデータ変換部105に逐次出力する構成にしてもよい。このとき、トレンド変化検出部104は、分類した変動区間(検出結果)の情報を付与したそれぞれのプロセスデータを、因果関係解析部106にも逐次出力する。
イベントデータ変換部105は、トレンド変化検出部104から出力されたプロセスログデータに含まれるそれぞれのプロセスデータに付与されたトレンド変化の検出結果を表す情報、つまり、分類した変動区間を表す情報に基づいて、プロセスログデータに含まれる複数のプロセスデータに表されているプロセスを、1つのプロセス変動イベントに変換する。イベントデータ変換部105によるプロセスデータに表されているプロセスを1つのプロセス変動イベントに変換する処理は、判定に用いる情報が異なる、つまり、分類した変動区間を表す情報であるが、その処理の方法(考え方)は、イベントデータ集約部102が行う集約処理の方法(考え方)と同様である。より具体的には、イベントデータ変換部105は、まず、プロセスログデータに含まれる複数のプロセスデータの中から、分類した変動区間を表す情報が付与されたプロセスデータを抽出する。その後、イベントデータ変換部105は、抽出した複数のプロセスデータに対して、イベントデータ集約部102における集約処理と同様の方法(考え方)で、同じ変動区間に分類された時間的に連続している(予め定めた時間の単位で連続している)複数のプロセスデータに表されているプロセスを1つのプロセスデータ群(グループ)としてまとめる。そして、イベントデータ変換部105は、まとめたプロセスデータ群に対応する全てのプロセスデータに付与されている同じ変動区間の情報)を、設備のプロセスにおけるイベントとした、1つのプロセス変動イベントに変換する。なお、イベントデータ変換部105によって変換されたそれぞれのプロセス変動イベントは、まとめたプロセスデータ群に対応するそれぞれのプロセスデータに対して制御システム14またはヒストリアン15が付与した時間(日時)の情報によって表される変動区間、つまり、プロセス値が今までの目標値から逸脱し始めた時点から、再び今までの目標値または新しい目標値に収束する時点までの時間を、時間的な継続期間として持っている。
イベントデータ変換部105は、変換したプロセス変動イベントにおいてプロセス値が変動している状態を表す情報を、イベントデータに含まれるアラームイベントデータや操作イベントデータと同様の形式で表して付与したプロセス変動イベントデータを生成する。より具体的には、イベントデータ変換部105は、設備においてプロセスが変動している状態を表す情報として、継続期間(変動区間)の開始時刻および終了時刻を表す情報と、イベントの種類を表す情報とを付与したプロセス変動イベントデータを生成する。イベントデータ変換部105が生成するプロセス変動イベントデータに付与する継続期間(変動区間)の開始時刻は、プロセス値が今までの目標値から逸脱し始める時点のプロセスデータに付与されている時間(日時)の情報、つまり、制御システム14またはヒストリアン15がプロセスデータを取得したときに付与した時間(日時)の情報である。また、イベントデータ変換部105が生成するプロセス変動イベントデータに付与する継続期間(変動区間)の終了時刻は、プロセス値が再び今までの目標値または新しい目標値に収束する時点のプロセスデータに付与されている時間(日時)の情報、つまり、制御システム14またはヒストリアン15がプロセスデータを取得したときに付与した時間(日時)の情報である。また、イベントデータ変換部105が生成するプロセス変動イベントデータに付与するイベントの種類を表す情報には、プロセス値が変化したと判定した機器の識別名(タグ名)、プロセス値の変動の種類を表す識別子(「不安定区間」、「目標値増加区間」、および「目標値減少区間」など)、タイプ(プロセス変動イベントであることを表す「Trend」や、変動したプロセス値を表す、例えば、「圧力」、「温度」、「流量」)などの情報が含まれている。
イベントデータ変換部105は、生成したそれぞれのプロセス変動イベントデータを、イベントデータベース11に出力して記憶(保存)させる。なお、イベントデータ変換部105は、イベントデータベース11にすでに継続イベントデータが記憶(保存)されている場合には、記憶(保存)されている継続イベントデータにプロセス変動イベントデータを統合して記憶(更新)させる。イベント解析装置10では、プロセスデータ(プロセスログデータ)およびイベントデータ(イベントログデータ)の収集は、非同期に行われる。従って、イベント解析装置10では、イベントデータ集約部102による継続イベントデータのイベントデータベース11への記憶(保存)、およびイベントデータ変換部105によるプロセス変動イベントデータのイベントデータベース11への記憶(保存)も、非同期に行われる。このため、イベントデータベース11にすでにプロセス変動イベントデータが記憶(保存)されている場合には、イベントデータ集約部102は、記憶(保存)されているプロセス変動イベントデータに継続イベントデータを統合して記憶(更新)させる。なお、以下の説明においては、継続イベントデータとプロセス変動イベントデータとを統合したイベントデータを、「統合イベントデータ」という。
なお、図1に示したイベント解析システム1を構成するイベント解析装置10の構成では、トレンド変化検出部104とイベントデータ変換部105とがそれぞれ異なる構成要素として構成されている場合を示している。しかし、イベント解析装置10に備えるトレンド変化検出部104とイベントデータ変換部105との構成は、図1に示したように異なる構成要素として備える構成に限定されるものではない。例えば、イベント解析装置10において、イベントデータ変換部105の機能を、トレンド変化検出部104に備える構成、つまり、トレンド変化検出部104の機能とイベントデータ変換部105の機能とを合わせた構成を、トレンド変化検出部104として備える構成であってもよい。
また、図1に示したイベント解析システム1を構成するイベント解析装置10の構成では、イベントデータ集約部102が継続イベントデータをイベントデータベース11に記憶(保存)させ、イベントデータ変換部105がプロセス変動イベントデータをイベントデータベース11に記憶(保存)させる構成である場合を示している。つまり、図1においては、イベントデータ集約部102とイベントデータ変換部105との2つの構成要素が、イベントデータベース11に、対応するデータを記憶(保存または更新)させるイベント解析装置10の構成を示している。しかし、上述したように、イベントデータ集約部102がイベントログデータに含まれる複数のイベントデータに対して施す処理、つまり、継続イベントデータを生成する集約処理と、イベントデータ変換部105がプロセスデータをプロセス変動イベントに変換する処理とは、同様の方法(考え方)に基づいている。このため、イベント解析装置10では、イベントデータ集約部102の機能とイベントデータ変換部105の機能とを合わせた構成要素(例えば、イベント保存部)を、イベントデータ集約部102およびイベントデータ変換部105の代わりに備え、この構成要素が、同様の形式で表された継続イベントデータとプロセス変動イベントデータとの統合(つまり、統合イベントデータの生成)や、統合イベントデータのイベントデータベース11への記憶(保存または更新)を管理する構成にしてもよい。
因果関係解析部106は、イベントデータベース11に記憶(保存)されている統合イベントデータを取得し、取得した統合イベントデータに含まれるプロセス変動イベントデータと継続イベントデータとに基づいて、2つ以上のイベントの組み合わせにおける因果関係を、時間的な概念を考慮して(適用して)解析する。因果関係解析部106において因果関係を解析する2つ以上のイベントの組み合わせは、プロセス変動イベントデータに含まれるプロセス変動イベントと、継続イベントデータに含まれるアラームイベントや操作イベントとのいずれのイベントの組み合わせであってもよい。つまり、因果関係解析部106では、設備におけるプロセスの変動であるか、設備において発生したイベントであるかに拘わらずに、設備におけるプロセスやイベントを組み合わせて、それぞれのイベント間の因果関係を解析する。これは、イベント解析装置10において、設備におけるプロセスの変動をイベント(プロセス変動イベント)に変換することによって、プロセス変動イベントを、従来のイベント解析装置において因果関係を解析していた設備で発生したイベント(アラームイベントおよび操作イベント)と同様に扱えるようにしたことによるものである。従って、因果関係解析部106における因果関係の解析の基本的な方法(考え方)は、従来のイベント解析装置における因果関係の解析方法(考え方)と同様である。つまり、因果関係解析部106は、従来のイベント解析装置における因果関係の解析方法(考え方)と同様に、それぞれのイベント間の因果関係を解析することができる。
ただし、統合イベントデータに含まれるそれぞれのイベントデータには、時間的な継続期間を持ったイベントデータも含まれている。このため、因果関係解析部106では、時間的な概念を考慮して(適用して)、因果関係を解析することができるようになっている。以下の説明においては、従来のイベント解析装置における因果関係の解析方法(考え方)と異なる、時間的な概念を考慮した(適用した)因果関係の解析方法(考え方)に着目して説明する。上述したように、因果関係解析部106は、関連性解析モジュール1061と、因果モデル構築モジュール1062と、因果分析モジュール1063と、を含んで構成される。なお、上述したように、因果関係解析部106は、イベント解析装置10において選択的な追加機能を実現するため異常予測モジュール1064も含んで構成されている。
関連性解析モジュール1061は、ユーザによって指定された着目するフィールド機器(制御機器)に関連性の高い他のフィールド機器を解析し、イベントデータベース11に記憶(保存)されている統合イベントデータの中から、ユーザが着目したフィールド機器と関連性の高い他のフィールド機器とにおいて発生しているイベントのイベントデータを検索して取得する。さらに、関連性解析モジュール1061は、取得したそれぞれのイベントデータに基づいて、それぞれのイベント間で相互に関連性を解析し、関連性の高いイベント(以下、「関連イベント」という)を絞り込む。
より具体的には、関連性解析モジュール1061は、P&ID(Piping and instrumentation diagram)や、PFD(Process Flow Diagram)、制御ループ、監視画面の定義情報などのプラントの構成情報に基づいて、ユーザが着目したフィールド機器と他のフィールド機器などの制御機器の間の関連性を解析し、関連性の高い他のフィールド機器を絞り込んで特定する。このとき、関連性解析モジュール1061は、ユーザが着目したフィールド機器と、このフィールド機器に関連性の高い他のフィールド機器とのそれぞれに付与されているタグ名(以下、「関連タグ」という)を絞り込んで特定する。なお、P&IDは、プラント内に配置された配管とフィールド機器が設置された位置などのプラント内の構成情報を図式化したものである。また、PFDは、原料から製品に至るまでのプラントにおけるプロセスの流れ(フロー)を図式化したものである。また、制御ループは、プラントにおけるプロセスにおいて行われる制御の関係を図式化したものである。また、監視画面の定義情報は、プラントにおいて分岐条件を含む処理が実行されるときに表示される監視画面に含まれるプロセスデータの構成(定義)情報である。
その後、関連性解析モジュール1061は、ユーザが着目したフィールド機器と特定したフィールド機器とにおいて発生する可能性がある全てのイベントのイベントデータを、イベントデータベース11に記憶(保存)されている統合イベントデータの中から検索し、検索された全てのイベントデータを取得する。さらに、関連性解析モジュール1061は、関連タグとして特定したタグ名が識別名として付与されている全てのイベントデータを取得する。なお、関連性解析モジュール1061がそれぞれのイベントデータを取得する際には、イベントの種類別にまとめて(例えば、同じタグ名、同じ識別子、および同じタイプのイベントをまとめて)、対応するイベントデータを取得してもよい。
そして、関連性解析モジュール1061は、イベントデータベース11から取得したそれぞれのイベントデータに含まれる開始時刻と終了時刻とに基づいて、まず、それぞれのイベントが発生している期間、つまり、それぞれのイベントの継続期間を算出する。そして、関連性解析モジュール1061は、イベントの種類ごと(つまり、同じイベントごと)に、算出したそれぞれの継続期間を時間順に並べて1つの時間軸上に表す。その後、関連性解析モジュール1061は、同じ時間軸上に時間順に表されたそれぞれのイベントの継続期間と、ユーザが着目したフィールド機器で発生したイベントの継続期間とが重複している回数に基づいて、それぞれのイベントとユーザが着目したイベントとの間の類似度(関連度)を算出する。そして、関連性解析モジュール1061は、予め定めた値よりも類似度の高いイベントを検索し、検索した類似度(関連度)の高いイベントと、ユーザが着目したイベントとの組み合わせ(関連イベント群(グループ))を関連イベントとする。
関連性解析モジュール1061は、イベントデータベース11から取得した、関連タグとして特定したタグ名が識別名として付与されている全てのイベントデータの内、関連イベントとして絞り込んだイベントのイベントデータ(以下、「関連イベントデータ」という)を、因果モデル構築モジュール1062に出力する。
なお、関連イベントデータに含まれるイベントデータは、同じイベントの種類のイベントデータであっても、関連イベントとして判定した単位ごと(例えば、時間帯ごと)に、イベントの組み合わせが異なることが考えられる。このため、関連性解析モジュール1061は、関連イベントデータを因果モデル構築モジュール1062に出力する際に、関連イベントとして絞り込む際に判定した時間帯や、関連イベントを区別するための情報などをそれぞれのイベントデータに付与してから出力してもよい。
因果モデル構築モジュール1062は、関連性解析モジュール1061から出力された関連イベントデータに基づいて、因果関係を解析するための因果モデルを構築(生成)する。なお、関連イベントデータに含まれるそれぞれのイベントデータには、上述したように、時間的な継続期間の情報が含まれている。そこで、因果モデル構築モジュール1062における因果モデルの構築処理では、まず、関連性解析モジュール1061から出力された関連イベントデータに含まれる開始時刻と終了時刻とに基づいて、関連性解析モジュール1061と同様に、イベントの種類ごとに、それぞれのイベントが発生している継続期間を、イベントの種類ごとに時間順に並べて配置する。このとき、因果モデル構築モジュール1062は、時間軸を予め定めた基準の時間幅(基準時間幅)のブロックの単位で分割し、この時間軸上に全てのイベントの継続期間が表されるように、それぞれのイベントの継続期間をイベントの種類ごとに並べて配置する。そして、因果モデル構築モジュール1062は、同じ関連イベント群として絞り込まれたそれぞれのイベントの継続期間が配置されている複数のブロックを、1つの「事象」としてまとめる。その後、因果モデル構築モジュール1062は、まとめた事象を構成する複数のブロックによって表されるイベントの情報、つまり、同じ関連イベント群として絞り込まれたそれぞれのイベントの情報を折り畳むように、それぞれの事象の1番目のブロックに投影した仮想のイベントデータ(以下、「投影イベントデータ」という)を生成する。ここで、投影イベントデータに含まれるそれぞれの事象に対応したデータ(以下、「投影データ」という)には、事象を構成する複数のブロックによって表される、イベントごとの発生の有無や、イベント間の時間差、イベントの継続期間の情報が含まれている。そして、最後に、因果モデル構築モジュール1062は、生成した投影イベントデータに基づいて、因果モデルを構築する。ここで、因果モデル構築モジュール1062は、それぞれのイベント間の因果関係を確率で表現したベイジアンネットワークを、因果モデルとして構築する。
なお、ベイジアンネットワークは、グラフィカルモデルの1つであり、それぞれのイベント間の複雑な因果関係の推論を有向グラフ構造によって表わすと共に、それぞれの変数の関係を条件付き確率で表す確率推論のモデルである。通常、ベイジアンネットワークは、同時に発生したイベントに対する因果関係を表すためのモデルであるため、それぞれのイベント間に、発生の時間差や継続期間などの時間的な要素が含まれる因果関係の解析に利用するのは困難である。しかし、因果モデル構築モジュール1062では、上述したように、同じ関連イベント群として絞り込まれたそれぞれのイベントの組み合わせを1つの「事象」としてまとめることによって、ベイジアンネットワークを構成する際に用いる投影イベントデータに、時間的な要素を1つの事象、つまり、1つのイベントとして含ませている。これにより、因果モデル構築モジュール1062では、従来のイベント解析装置と同様のアルゴリズムによって、時間的な要素を含んだベイジアンネットワークを因果モデルとして構築することができる。そして、後述する因果分析モジュール1063では、ベイジアンネットワークを利用して、あるイベントの原因となる他のイベントや、あるイベントが発生した後に発生し得る他のイベントを確率的に表わすことができるようになる。また、後述する因果分析モジュール1063では、ベイジアンネットワークに含まれる時間的な要素に基づいて、時間に関する分布(イベントが発生する際の時間差の分布や、発生したそれぞれのイベントの継続期間の分布)の情報を表わすことができるようになる。
因果モデル構築モジュール1062は、構築した因果モデル(ベイジアンネットワーク)を、因果モデルデータベース12に出力して記憶(保存)させる。なお、因果モデル構築モジュール1062は、最初に因果モデルを構築して因果モデルデータベース12に出力して記憶(保存)させた後、予め定めた定期的な時間間隔で、新たな(最新の)統合イベントデータに基づいて因果モデルを再度構築(生成)し、因果モデルデータベース12に記憶(保存)されている因果モデルを更新する構成にしてもよい。
なお、因果モデル構築モジュール1062は、今回構築した因果モデルを因果モデルデータベース12に出力して記憶(保存)させる際に、以前に構築して記憶(保存)させた因果モデルを更新するようにしてもよいし、今回構築した因果モデルを新たに記憶(保存)させることによって、今まで構築した因果モデルを蓄積させるようにしてもよい。因果モデル構築モジュール1062が蓄積させた今までに構築した因果モデルは、例えば、イベント解析装置10において選択的な追加機能を実現するため異常予測モジュール1064において利用することができる。
因果分析モジュール1063は、因果モデルデータベース12に記憶(保存)されている因果モデル(ベイジアンネットワーク)に基づいて、ユーザによって指定された着目するフィールド機器において発生したイベントと、他のフィールド機器において発生したイベントとの因果関係を解析(分析)する。例えば、因果分析モジュール1063は、ユーザによって指定された着目するフィールド機器において発生したイベントの発生原因となっている他のイベントの推定や、今後に起こり得るイベントの予測を行う。また、例えば、因果分析モジュール1063は、推定や予測をしたイベントが発生する際の時間差(発生時間差)の分布や、発生したイベントの継続期間の分布の算出し、推定や予測をしたイベントの発生確率、発生時間、および継続期間の算出(推定)を行う。そして、因果分析モジュール1063は、推定したイベントの発生原因や、発生を予測したイベントの情報(発生確率や、発生時間、継続期間など)を、因果関係の解析結果として解析結果出力部107に出力する。なお、因果分析モジュール1063における因果関係の解析(分析)の方法は、従来のイベント解析装置においてベイジアンネットワークを用いて行う因果関係の解析(分析)の方法と同様であるため、詳細な説明は省略する。
解析結果出力部107は、因果関係解析部106から出力された因果関係の解析結果の情報を可視化してユーザに提示するための表示データを生成する。より具体的には、解析結果出力部107は、因果関係の解析結果として因果関係解析部106から出力された、ユーザによって指定された着目するフィールド機器において発生したイベントの発生原因の推定結果や、今後に発生が予測されるイベントの発生確率、発生時間、継続期間などの情報をユーザに提示するための表示データを生成する。なお、解析結果出力部107は、因果関係解析部106が構築した因果モデル(ベイジアンネットワーク)をグラフ化した表示データを生成してもよい。解析結果出力部107は、生成した表示データを表示装置13に出力し、表示データに応じた表示画面を表示装置13に表示させる。
なお、解析結果出力部107は、着目するフィールド機器の指定や因果関係の解析処理の実行を要求するためにユーザによって操作される不図示の操作装置から入力された情報を因果関係解析部106に出力するためのユーザインターフェースの機能を備えていてもよい。表示装置13に不図示の操作装置の機能を備えている場合、解析結果出力部107は、不図示の操作装置から入力された情報を、因果関係解析部106に出力する。
ここまでの構成が、イベント解析装置10における基本的な機能を実現するための基本的な構成である。このような構成によって、イベント解析装置10は、制御システム14やヒストリアン15から取得したプロセスログデータをイベントデータ(プロセス変動イベントデータ)に変換し、制御システム14やヒストリアン15から取得したイベントデータ(アラームイベントデータおよび操作イベントデータ)と統合させる。このとき、イベント解析装置10では、時間的な継続期間を持つそれぞれのイベントデータ(継続イベントデータとして集約されたアラームイベントデータおよび操作イベントデータと、プロセス変動イベントデータ)を含めて統合する。そして、イベント解析装置10は、ユーザによって指定された着目するフィールド機器のイベントに関連する関連イベントを絞り込んだ後、時間的な継続期間を持つそれぞれのイベントの組み合わせを事象としてまとめ、それぞれの事象を1つのイベントとして扱えるようにすることによって、従来のイベント解析装置と同様に因果関係の解析を行えるようにする。これにより、イベント解析装置10では、プラント内に配置されたそれぞれの設備で行っている様々なプロセスのプロセスデータをイベントデータとして同様に扱って、イベント同士の因果関係、つまり、設備におけるプロセスやイベントを組み合わせて、それぞれのイベント間の因果関係を解析することができる。
なお、上述したように、図1に示したイベント解析装置10の構成では、イベント解析装置10において実行する選択的な追加機能を実現するための構成要素の一例として、イベント解析装置10における基本的な機能を実現する構成に対して選択的に備えることができる異常予測モジュール1064を、因果関係解析部106内に備えた構成を示している。
異常予測モジュール1064は、トレンド変化検出部104から逐次出力されたプラント内に配置されたそれぞれの設備で現在行っているプロセスのプロセスデータを監視することによって、プロセスデータのトレンドの変化(変動や異常)を予測する。より具体的には、異常予測モジュール1064は、トレンド変化検出部104から逐次出力されたプロセスデータ(フィールド機器が測定した現在のプロセスデータ)に付与されている、分類した変動区間(検出結果)の情報を逐次確認(監視)することによって、プロセスデータのトレンドの変化(変動)を判定し、現在のプロセスが将来的にさらに大きく変化(変動)したり異常となったりする可能性があるか否かをリアルタイムで予測する。
プロセスデータのトレンドの変化(変動や異常)を予測する処理において、異常予測モジュール1064は、プロセスデータに付与されている分類した変動区間(検出結果)の情報が、プロセス値が予め定めたプロセス値の変化量よりも大きく変化したことを表している、つまり、プロセス値が今までの目標値から逸脱していることを表しているか否かを確認(監視)する。そして、確認(監視)したプロセスデータに付与されている分類した変動区間(検出結果)の情報によって、プロセス値が今までの目標値から逸脱し始めたことが確認された場合、異常予測モジュール1064は、まず、このプロセスデータに付与されているタグ名を確認(特定)する。続いて、異常予測モジュール1064は、特定したタグ名のプロセスデータ(プロセス変動イベントデータ)が関連イベントとして絞り込まれた関連イベントデータに基づいて構築された因果モデルを、因果モデルデータベース12に蓄積された因果モデル(以前に記憶(保存)された複数の因果モデル)の中から検索する。そして、異常予測モジュール1064は、検索された因果モデルに基づいて、プロセスデータの変化が確認されたイベントに関連する他の変化(変動や異常)を予測する予測処理を行う。この予測処理において、異常予測モジュール1064は、検索された因果モデルに基づいて、プロセスデータの変化が確認されたイベントと因果関係がある他のイベント(アラームイベント、操作イベント、およびプロセス変動イベント)を検索する。そして、異常予測モジュール1064は、この検索結果に基づいて、プロセスデータの変化に起因して今後発生するアラームイベントや他のプロセス変動イベント、およびそれらのイベントの発生確率の予測、それらのイベントが発生した場合に行われたオペレータの操作(操作イベント)などの検索を行う。そして、異常予測モジュール1064は、予測処理を行った結果を表す情報を、解析結果出力部107に出力する。これにより、解析結果出力部107は、異常予測モジュール1064から出力された予測処理の結果の情報を可視化するための表示データを生成して表示装置13に出力し、表示装置13に表示データに応じた表示画面を表示させることによって、異常予測モジュール1064が予測処理を行った結果を表す情報がユーザに提示させる。
なお、異常予測モジュール1064が検索された因果モデルに基づいて行う予測処理は、因果分析モジュール1063が行う因果関係の解析(分析)の処理と同様の考え方に基づいて行うことができる。このため、異常予測モジュール1064は、プロセス値の変化が確認されたプロセスデータ(プロセス変動イベントデータ)が含まれる因果モデルを因果モデルデータベース12に蓄積された因果モデルの中から検索する処理までを行い、その後の予測処理(因果関係がある他のイベントの検索や、それらのイベントの発生確率の予測など)は、因果分析モジュール1063が行うようにしてもよい。さらに、異常予測モジュール1064は、因果モデル構築モジュール1062に、プロセス値の変化が確認されたプロセスデータ(プロセス変動イベントデータ)の情報を検索された因果モデルに追加して更新させるようにしてもよい。
このようにして、異常予測モジュール1064は、プラント内に配置されたそれぞれの設備で現在行っているプロセスのプロセスデータをリアルタイムで監視することによって、プロセスデータのトレンドがさらに変化(変動)する可能性や、現在のプロセスが将来的に異常となる可能性があるか否かをリアルタイムで予測することができる。
このような構成によって、イベント解析装置10では、プラント内に配置されたそれぞれの設備におけるイベントデータ(アラームイベントデータおよび操作イベントデータ)と、それぞれの設備で行っているプロセスのプロセスデータを変換したイベントデータ(プロセス変動イベントデータ)とを統合させることによって、設備におけるプロセスやイベントを組み合わせて、それぞれのイベント間の因果関係を解析する。これにより、イベント解析装置10は、イベント解析装置10のユーザに様々な情報を提示し、ユーザによる設備の稼働の管理を支援することができる。
なお、イベント解析システム1においてイベント解析装置10は、例えば、イベント解析装置10のユーザが使用する、パーソナルコンピュータ(Personal Computer:PC)やサーバ装置内に構成されてもよい。この場合、イベント解析装置10の機能、つまり、上述したイベント解析装置10における因果関係の解析処理の機能や、イベント解析装置10を構成するそれぞれの構成要素の機能は、パーソナルコンピュータ上やサーバ装置上で、イベント解析プログラムのソフトウェアを実行することによっても実現されてもよい。
ここで、イベント解析装置10が、パーソナルコンピュータ内に構成される場合のハードウェア構成について説明する。図2は、本発明の実施形態のイベント解析装置10におけるハードウェア構成の一例を示したブロック図である。図2において、イベント解析装置10は、CPU(Central Processing Unit)10aと、RAM10bと、ROM10cと、HDD10dと、表示装置10eと、入力装置10fと、通信インターフェース(I/F)10gと、を含んで構成される。イベント解析装置10を構成するそれぞれの構成要素は、共通のバス10hに接続されている。なお、イベント解析装置10を構成するそれぞれの構成要素は、単体の装置として構成されていても、複数の装置の組み合わせたシステムとしてそれぞれの構成要素が構成されていてもよい。また、イベント解析装置10を構成するそれぞれの構成要素は、他の装置やハードウェアと共用される構成であってもよい。
CPU10aは、イベント解析装置10における因果関係の解析処理の機能を実現するためのイベント解析プログラムを実行する処理装置である。RAM10bと、ROM10cと、HDD10dとのそれぞれは、CPU10aが実行するイベント解析プログラムなどの各種プログラムや、CPU10aが処理を実行している途中または処理の結果などを記憶する記憶装置である。イベント解析プログラムは、例えば、イベント解析プログラムを記録した記録媒体や、ネットワークを介して情報処理プログラムを提供するサーバなどによって提供され、例えば、HDD10dにインストールされる。CPU10aがイベント解析プログラムを実行する際には、HDD10dにインストールされたイベント解析プログラムが、例えば、DRAM(Dynamic Random Access Memory)などのRAM10bに転送され、バス10hを介してCPU10aとRAM10bとが通信しながら実行される。
表示装置10eは、例えば、液晶ディスプレイなどの表示デバイスを含んで構成され、ユーザに提供する情報の表示画面を表示する表示装置である。なお、表示装置10eは、イベント解析システム1を構成する表示装置13であってもよい。入力装置10fは、ユーザによって操作される、例えば、キーボードなどの入力デバイスや、マウスなどのポインティングデバイスなどを含んで構成される入力装置である。なお、入力装置10fは、イベント解析システム1を構成する表示装置13に備える不図示の操作装置あってもよい。
通信インターフェース10gは、イベント解析システム1を構成する制御システム14、ヒストリアン15、イベントデータベース11、および因果モデルデータベース12などの構成要素と間で、有線通信や無線通信による通信を行って、データの受け渡しを行う通信部である。通信インターフェース10gにおける有線通信としては、有線LAN(Local Area Network)などの有線通信規格、USB(Universal Serial Bus(登録商標))などの有線インターフェース規格などに準拠した通信が考えられる。また、通信インターフェース10gにおける無線通信としては、無線LAN通信(いわゆる、WiFi(登録商標))などの無線通信規格、ブルートゥース(登録商標)(Bluetooth(登録商標))などの短距離無線通信規格などに準拠した通信が考えられる。また、プラントにおいて行われる通信インターフェース10gにおける通信としては、例えば、ISA100.11aなどの工業用の無線規格、センサネットワークシステムなどの無線規格、Wireless/Wired HART(登録商標)などの無線と有線とが混在した通信規格、MODBUS(登録商標)などのマスター/スレーブ方式の通信規格、FOUNDATION(登録商標)フィールドバス、PROFIBUS(PROCESS FIELD BUS)(登録商標)などのフィールドバス規格など、種々の通信規格や方式による通信が考えられる。
このような構成によって、イベント解析装置10では、因果関係の解析処理の機能を、パーソナルコンピュータ内に構成されるハードウェア構成が実行するイベント解析プログラムのソフトウェアによって実現する。
次に、イベント解析装置10において因果関係の解析処理を行う際の処理の流れについて説明する。図3は、本発明の実施形態のイベント解析装置10において因果関係を解析する際の処理の流れ(処理シーケンス)を示したシーケンス図である。図3には、ユーザが着目するフィールド機器のイベントに関する因果関係の解析処理を行う際に動作するイベント解析装置10(イベントデータ収集部101、イベントデータ集約部102、プロセスデータ収集部103、トレンド変化検出部104、イベントデータ変換部105、因果関係解析部106、および解析結果出力部107)と、イベント解析装置10が利用するイベントデータベース11とのそれぞれにおける処理の流れの一例を示している。なお、図3には、着目するフィールド機器のイベントを指定して因果関係の解析処理の実行を要求するイベント解析装置10のユーザの作業(解析結果出力部107に対する操作)も併せて示している。
なお、以下の説明においては、制御システム14にイベントログデータとプロセスログデータとのそれぞれがすでに保存されているものとする。なお、イベント解析装置10では、イベントデータ集約部102とイベントデータ変換部105とのそれぞれが非同期に、対応するイベントデータを統合した統合イベントデータをイベントデータベース11に記憶(保存)させる。しかし、以下の説明においては、イベントデータベース11が、イベントデータ集約部102とイベントデータ変換部105とのそれぞれから出力されたイベントデータを統合して記憶(保存)するものとする。また、イベント解析装置10は、制御システム14に保存されているイベントログデータおよびプロセスログデータに基づいて因果関係の解析処理(以下、「因果解析」という)を行うものとする。
プロセスデータ収集部103は、制御システム14から定期的に、プロセスログデータを取得(収集)する(ステップS1)。プロセスデータ収集部103は、一定期間分のプロセスログデータの収集が終わると、収集した一定期間分のプロセスログデータをトレンド変化検出部104に出力する。また、プロセスデータ収集部103は、出力したプロセスログデータのトレンド変化の検出を要求する(ステップS2)。
トレンド変化検出部104は、プロセスデータ収集部103からの要求に応じて、プロセスデータ収集部103から出力されたプロセスログデータに含まれる複数のプロセスデータに基づいて、プロセスデータのトレンド変化を検出する(ステップS3)。ステップS3においてトレンド変化検出部104は、上述したように、プロセスデータに表されているプロセス値の変動区間を判定し、トレンド変化の検出結果の情報として、分類した変動区間の情報をそれぞれのプロセスデータに付与する。そして、トレンド変化検出部104は、検出結果の情報を付与したプロセスデータを含んで構成されたプロセスログデータを、イベントデータ変換部105に出力する(ステップS4−1)。
イベントデータ変換部105は、トレンド変化検出部104から出力されたプロセスログデータに含まれるそれぞれのプロセスデータに付与されたトレンド変化の検出結果の情報に基づいて、プロセスログデータに含まれる複数のプロセスデータに表されているプロセスを、時間的な継続性を持ったプロセス変動イベントに変換する。そして、イベントデータ変換部105は、変換したプロセス変動イベントに、トレンド変化の検出結果の情報に基づいた情報(プロセス値が変動している状態を表す情報)を付与してプロセス変動イベントデータを生成し、生成したそれぞれのプロセス変動イベントデータを、イベントデータベース11に出力して、統合イベントデータとして記憶(保存)させる(ステップS4−2)。
ここで、制御システム14から取得したプロセスログデータに対する処理、つまり、プロセスログデータに基づいてプロセス変動イベントデータを生成する処理(ステップS1〜ステップS4−2)の一例について説明する。図4は、本発明の実施形態のイベント解析装置10においてプロセスデータのトレンドの変化を検出する処理(ステップS3)、およびプロセス変動イベントデータを生成する処理(ステップS4−1およびステップS4−2)の一例を説明する図である。図4の(A)には、ステップS1においてプロセスデータ収集部103が制御システム14から取得(収集)したプロセスデータに表されているプロセス値(Process Value:PV値)の大きさを縦軸とし、時間を横軸としたグラフによって、プロセス値のトレンド変化の一例を、時間軸の方向に表している。図4の(A)に示した一例におけるプロセス値(PV値)は、タグ名=「TAG1」のフィールド機器が、設置されている設備において測定した測定値である。また、図4の(B)には、ステップS4−2においてイベントデータ変換部105が生成するプロセス変動イベントデータの一例を、2次元の表の形式で表している。図4の(B)では、図4の(A)に示した一例のプロセス値のトレンド変化を表すそれぞれのプロセス変動イベントデータを、それぞれの行に並べて示している。また、図4の(B)では、それぞれのプロセス変動イベントデータに付与する情報を、それぞれの列に並べて示している。なお、図4の(B)においては、プロセス変動イベントデータの一例を2次元の表の形式で表しているが、プロセス変動イベントデータの形式は、表の形式に限定されるものではなく、同様の情報が含まれる形式であれば、いかなる形式であってもよい。
トレンド変化検出部104は、ステップS3において、プロセスデータ収集部103から出力されたプロセスログデータに含まれる複数のプロセスデータに表されているプロセス値のトレンド変化を検出する。そして、トレンド変化検出部104は、ステップS4−1において、プロセス値のトレンド変化を検出したそれぞれの変動区間を「不安定区間」、「目標値増加区間」、および「目標値減少区間」の3つの種類のいずれかの区間に分類する。トレンド変化検出部104は、以下のような手順によって、トレンド変化の検出(ステップS3)と、変動区間の分類(ステップS4−1)との処理を行う。
(手順1):トレンド変化検出部104は、まず、タグ名=「TAG1」のフィールド機器に設定された目標値(Set Variable:SV値)のトレンドを求める。フィールド機器に設定された目標値(SV値)のトレンドは、例えば、予め定めた長い期間のプロセスデータに表されているプロセス値(PV値)に対してローパスフィルタや回帰モデルなどによる処理を施して、プロセス値(PV値)の概ねの傾向(トレンド)を表す近似線を求めることによって行う。なお、トレンド変化検出部104は、プラント内に配置されたそれぞれの設備に設置されているフィールド機器に設定された目標値(SV値)の連続したデータ(以下、「トレンドデータ」という)を制御システム14から取得することができる場合には、目標値(SV値)のトレンドを求める処理を行わずに、取得した目標値(SV値)のトレンドデータを利用してもよい。
(手順2):トレンド変化検出部104は、連続した目標値(SV値)のトレンドデータと、それぞれのプロセスデータに表されているプロセス値(PV値)とを比較し、プロセス値(PV値)が目標値(SV値)から大きく変化した(予め定めたプロセス値の変化量よりも大きく変化した)箇所(時点)を検出する。図4の(A)に示したプロセス値のトレンド変化のグラフでは、2016年1月1日の10時0分0秒の箇所(時点)をプロセス値(PV値)が不安定な状態に大きく変化した箇所(時点)として検出し、さらに、2016年1月1日の10時12分0秒の箇所(時点)をプロセス値(PV値)が安定した状態に大きく変化した箇所(時点)として検出した場合を示している。また、図4の(A)に示したプロセス値のトレンド変化のグラフでは、2016年2月3日の12時10分0秒の箇所(時点)をプロセス値(PV値)が不安定な状態に大きく変化した箇所(時点)として検出し、さらに、2016年2月3日の12時30分0秒の箇所(時点)をプロセス値(PV値)が安定した状態に大きく変化した箇所(時点)として検出した場合を示している。
(手順3):トレンド変化検出部104は、手順2において検出したプロセス値(PV値)が不安定な状態に大きく変化した箇所(時点)から、安定した状態に大きく変化した箇所(時点)までの区間(変動区間)におけるプロセス値(PV値)の変動の状態に基づいて、プロセス値(PV値)が変動している状態を表すいずれかの区間に分類する。手順3では、まず、それぞれの変動区間を、一旦、目標値(SV値)が一定である区間と仮定する。ここで、トレンド変化検出部104は、例えば、変動区間の最初の箇所(時点)の目標値(SV値)を、一定の目標値(SV値)(以下、「仮目標値」という)として仮定する。そして、トレンド変化検出部104は、この区間内のそれぞれ箇所(時点)のプロセス値(PV値)について、仮目標値との差分を求める。その後、トレンド変化検出部104は、求めたそれぞれ箇所(時点)のプロセス値(PV値)と仮目標値との差分値が、大きくなる方向であるか、または小さくなる方向であるかによって、それぞれの変動区間を分類する。より具体的には、トレンド変化検出部104は、差分値が大きくなる方向(例えば、「プロセス値」−「仮目標値」が正の値)のみである変動区間を「目標値増加区間(Increase)」に分類し、差分値が小さくなる方向(例えば、「プロセス値」−「仮目標値」が負の値)のみである変動区間を「目標値減少区間(Decrease)」に分類する。また、トレンド変化検出部104は、差分値が大きくなる方向と小さくなる方向との両方を含んでいる変動区間を「不安定区間(Unstable)」に分類する。図4の(A)に示したプロセス値のトレンド変化のグラフでは、2016年1月1日の10時0分0秒から2016年1月1日の10時12分0秒までの間の変動区間は、差分値が大きくなる方向と小さくなる方向との両方を含んでいる変動区間であるため、「不安定区間(Unstable)」に分類した場合を示している。また、図4の(A)に示したプロセス値のトレンド変化のグラフでは、2016年2月3日の12時10分0秒から2016年2月3日の12時30分0秒までの間の変動区間は、差分値が大きくなる方向のみである変動区間であるため、「目標値増加区間(Increase)」に分類した場合を示している。
トレンド変化検出部104は、手順3によって分類した変動区間の情報を付与したプロセスデータを含んで構成されたプロセスログデータを、イベントデータ変換部105に出力する。その後、イベントデータ変換部105は、ステップS4−2において、プロセス値のトレンド変化を検出した結果に基づいた情報を付与したプロセス変動イベントデータを生成する。
図4の(B)では、「開始時刻」、「終了時刻」、「タグ名」、「識別子」、および「タイプ」のそれぞれの情報を、イベントデータ変換部105がプロセス変動イベントデータを生成する際に付与する情報として示している。「開始時刻」および「終了時刻」は、トレンド変化検出部104が検出した変動区間を表す情報である。この「開始時刻」と「終了時刻」とによって、プロセス変動イベントデータが、時間的な継続性を持った(継続期間をもった)イベントであることが表される。また、「タグ名」は、トレンド変化検出部104がトレンド変化を検出したプロセス値を出力したフィールド機器の識別名を表す情報である。この「タグ名」によって、プロセス値が変化したプロセス、つまり、プラント内に配置された設備が表される。また、「識別子」は、分類された変動区間を表す情報である。この「識別子」によって、プロセス値がどのように変化したか、つまり、設備のプロセスの変化の状態が表される。また、「タイプ」は、プロセス変動イベントであることを表す情報である。この「タイプ」によって、後にプロセス変動イベントデータが統合イベントデータに統合された場合でも、プロセス変動イベントであることを判別することができる。なお、「タイプ」の情報以外は、トレンド変化検出部104が出力したプロセスログデータに付与されている情報でもある。「タイプ」の情報は、トレンド変化検出部104から出力されたプロセスログデータに基づいて生成したプロセス変動イベントデータであることから、イベントデータ変換部105が生成して付与してもよいし、トレンド変化検出部104が検出結果の情報としてプロセスデータに付与してイベントデータ変換部105に出力してもよい。
図4の(B)においてそれぞれの行に示されたプロセス変動イベントデータは、図4の(A)に示したそれぞれの変動区間を表している。より具体的には、図4の(B)の1つ目のプロセス変動イベントデータは、「開始時刻」=「2016/01/01 10:00:00」、「終了時刻」=「2016/01/01 10:12:00」、「タグ名」=「TAG1」、「識別子」=「Unstable」、および「タイプ」=「Trend」のそれぞれの情報が付与されている。これにより、1つ目のプロセス変動イベントデータは、2016年1月1日の10時0分0秒から2016年1月1日の10時12分0秒までの間、タグ名=「TAG1」のフィールド機器が設置されている設備のプロセス値(PV値)に、不安定なトレンド変化が起こったことを表している。また、図4の(B)の2つ目のプロセス変動イベントデータは、「開始時刻」=「2016/02/03 12:10:00」、「終了時刻」=「2016/02/03 12:30:00」、「タグ名」=「TAG1」、「識別子」=「Increase」、および「タイプ」=「Trend」のそれぞれの情報が付与されている。これにより、2つ目のプロセス変動イベントデータは、2016年2月3日の12時10分0秒から2016年2月3日の12時30分0秒までの間、タグ名=「TAG1」のフィールド機器が設置されている設備のプロセス値(PV値)が増加するトレンド変化が起こったことを表している。
このようにプロセスデータ収集部103、トレンド変化検出部104、およびイベントデータ変換部105のそれぞれが動作し、制御システム14から取得したプロセスログデータに含まれる複数のプロセスデータを、「開始時刻」〜「終了時刻」で表される時間的な継続性を持ったプロセス変動イベントに変換する。なお、プロセスデータ収集部103、トレンド変化検出部104、およびイベントデータ変換部105のそれぞれは、上述したステップS1〜ステップS4−2の処理を、定期的に、繰り返し行う。
図3に戻って、イベント解析装置10において因果解析を行う処理シーケンスの続きを説明する。
イベントデータ収集部101は、制御システム14から定期的に、イベントログデータを取得(収集)する(ステップS5)。イベントデータ収集部101は、一定期間分のイベントログデータの収集が終わると、収集した一定期間分のイベントログデータをイベントデータ集約部102に出力する(ステップS6−1)。
イベントデータ集約部102は、イベントデータ収集部101から出力されたイベントログデータに含まれる複数のイベントデータに対して集約処理を行う。そして、イベントデータ集約部102は、集約処理を行った後の継続イベントデータを、イベントデータベース11に出力して、統合イベントデータとして記憶(保存)させる(ステップS6−2)。
ここで、制御システム14から取得したイベントログデータに対する集約処理(ステップS5〜ステップS6−2)の一例について説明する。図5は、本発明の実施形態のイベント解析装置10において収集したイベントデータを集約して継続イベントデータを生成する処理(ステップS5〜ステップS6−2)の一例を説明する図である。図5の(A)には、ステップS5においてイベントデータ集約部102が制御システム14から取得(収集)したイベントログデータの一例を、2次元の表の形式で表している。図5の(A)では、イベントログデータに含まれるイベントデータを、それぞれの行に並べて示している。また、図5の(A)では、それぞれのイベントデータに付与されている情報を、それぞれの列に並べて示している。また、図5の(B)には、ステップS6−2においてイベントデータ集約部102が集約処理を施した後の継続イベントデータの一例を、2次元の表の形式で表している。図5の(B)では、それぞれの継続イベントデータを、それぞれの行に並べて示している。また、図5の(B)では、それぞれの継続イベントデータに付与する情報を、それぞれの列に並べて示している。なお、図5の(A)および図5の(B)においては、イベントログデータおよび継続イベントデータの一例を2次元の表の形式で表しているが、イベントログデータおよび継続イベントデータの形式は、表の形式に限定されるものではなく、同様の情報が含まれる形式であれば、いかなる形式であってもよい。
図5の(A)では、「日時」、「タグ名」、「識別子」、および「タイプ」のそれぞれの情報が付与されたイベントデータを示している。「日時」は、制御システム14がイベントデータを取得したときに付与した時間(日時)を表す情報である。この「日時」によって、イベントデータに表されているイベントが発生した時刻が表される。また、「タグ名」は、イベントが発生したフィールド機器の識別名を表す情報である。この「タグ名」によって、イベントが発生したフィールド機器、つまり、プラント内に配置された設備が表される。また、「識別子」は、発生したイベントの種類や内容(アラームの種類や設定(操作)の種類、診断結果や設定値のデータ)を表す情報である。また、「タイプ」は、発生したイベントがアラームイベントであるか操作イベントであるかを表す情報である。この「識別子」と「タイプ」とによって、フィールド機器においてどのようなイベントが発生したのかが表される。
図5の(A)においてそれぞれの行には、プラントにおいて発生したそれぞれのイベント(単発のイベント)のイベントデータを時系列に表している。より具体的には、図5の(A)の1つ目のイベントデータは、「日時」=「2016/01/01 10:01:00」、「タグ名」=「TAG2」、「識別子」=「MAN(Manual:手動)」、および「タイプ」=「Operation(操作)」のそれぞれの情報が付与されている。これにより、1つ目のイベントデータは、2016年1月1日の10時1分0秒に、タグ名=「TAG2」のフィールド機器が、自動操作モードから手動操作モードに切り替えられる操作が行われたことを表す操作イベントを表している。また、図5の(A)の2つ目のイベントデータは、「日時」=「2016/01/01 10:03:05」、「タグ名」=「TAG2」、「識別子」=「MV(Manipulated Variable:操作量)」、および「タイプ」=「Operation」のそれぞれの情報が付与されている。これにより、2つ目のイベントデータは、2016年1月1日の10時3分5秒に、タグ名=「TAG2」のフィールド機器に対して、操作量に応じた設定を行う操作が行われたことを表す操作イベントを表している。また、図5の(A)の3つ目のイベントデータは、「日時」=「2016/01/01 10:04:00」、「タグ名」=「TAG1」、「識別子」=「HI(High)」、および「タイプ」=「Alarm(アラーム)」のそれぞれの情報が付与されている。これにより、3つ目のイベントデータは、2016年1月1日の10時4分0秒に、タグ名=「TAG1」のフィールド機器が、測定値が高くなったことを表すアラームが発せられたことを表すアラームイベントを表している。また、図5の(A)の4つ目のイベントデータは、「日時」=「2016/01/01 10:04:30」、「タグ名」=「TAG2」、「識別子」=「MV」、および「タイプ」=「Operation」のそれぞれの情報が付与されている。また、図5の(A)の5つ目のイベントデータは、「日時」=「2016/01/01 10:06:30」、「タグ名」=「TAG2」、「識別子」=「MV」、および「タイプ」=「Operation」のそれぞれの情報が付与されている。また、図5の(A)の6つ目のイベントデータは、「日時」=「2016/01/01 10:08:00」、「タグ名」=「TAG2」、「識別子」=「MV」、および「タイプ」=「Operation」のそれぞれの情報が付与されている。4つ目〜6つ目のイベントデータによって、2016年1月1日の10時4分30秒、2016年1月1日の10時6分30秒、および2016年1月1日の10時8分0秒に、タグ名=「TAG2」のフィールド機器に対して、操作量に応じた設定を行う操作が行われたことを表す操作イベントを表している。また、図5の(A)の7つ目のイベントデータは、「日時」=「2016/01/01 10:09:00」、「タグ名」=「TAG2」、「識別子」=「AUT(Automatic:自動)」、および「タイプ」=「Operation」のそれぞれの情報が付与されている。これにより、7つ目のイベントデータは、2016年1月1日の10時9分0秒に、タグ名=「TAG2」のフィールド機器が、手動操作モードから自動操作モードに切り替えられる操作が行われたことを表す操作イベントを表している。
イベントデータ集約部102は、図5の(A)に示されたようなそれぞれのイベントログデータに対して集約処理を行う。イベントデータ集約部102による集約処理では、上述したように、予め定められた想定される短い期間内に繰り返される同じ種類の単発のイベントを、時間的な継続期間を持つ1つのイベントにまとめる。図5の(A)に示したイベントデータでは、2つ目、4つ目、5つ目、および6つ目の操作イベントの操作イベントデータが、オペレータが同じ意志を持って行ってタグ名=「TAG2」のフィールド機器に対して、例えば、5分以内にランピングの操作を行った操作イベントデータであると考えられる。そこで、以下の説明においては、イベントデータ集約部102が、2つ目、4つ目、5つ目、および6つ目の操作イベントの操作イベントデータを、集約処理によって1つのイベントデータ(継続イベントデータ)としてまとめられる同じ種類のイベントデータとした場合を考える。この場合、イベントデータ集約部102は、図5の(B)に示したような継続イベントデータを出力する。
図5の(B)においてそれぞれの行には、イベントデータ集約部102が出力したそれぞれの継続イベントデータを時系列に表している。より具体的には、図5の(B)の1つ目の継続イベントデータは、「開始時刻」=「終了時刻」=「2016/01/01 10:01:00」、「タグ名」=「TAG2」、「識別子」=「MAN」、および「タイプ」=「Operation」のそれぞれの情報が付与されている。この1つ目の継続イベントデータは、図5の(A)に示した1つ目の操作イベントデータに対応した継続イベントデータである。1つ目の操作イベントデータは、単発(1回)の操作イベントの操作イベントデータであるため、集約処理によってまとめられず、「開始時刻」と「終了時刻」との両方に、1つ目の操作イベントデータに付与されている「日時」=「2016/01/01 10:01:00」が付与されている。なお、1つ目の継続イベントデータの「タグ名」、「識別子」、および「タイプ」のそれぞれの情報は、1つ目の操作イベントデータに付与されているイベントの種類の情報である。また、図5の(B)の2つ目の継続イベントデータは、「開始時刻」=「2016/01/01 10:03:05」、「終了時刻」=「2016/01/01 10:08:00」、「タグ名」=「TAG2」、「識別子」=「MV」、および「タイプ」=「Operation」のそれぞれの情報が付与されている。この2つ目の継続イベントデータは、図5の(A)に示した2つ目、4つ目、5つ目、および6つ目の操作イベントデータが集約処理によってまとめられた継続イベントデータである。2つ目の操作イベントデータは、「開始時刻」に2つ目の操作イベントデータに付与されている「日時」=「2016/01/01 10:03:05」が付与され、「終了時刻」に6つ目の操作イベントデータに付与されている「日時」=「2016/01/01 10:08:00」が付与されている。なお、2つ目の継続イベントデータの「タグ名」、「識別子」、および「タイプ」のそれぞれの情報は、2つ目、4つ目、5つ目、および6つ目のいずれかの操作イベントデータ(例えば、2つ目の操作イベントデータ)に付与されているイベントの種類の情報である。また、図5の(B)の3つ目の継続イベントデータは、「開始時刻」=「終了時刻」=「2016/01/01 10:04:00」、「タグ名」=「TAG1」、「識別子」=「HI」、および「タイプ」=「Alarm」のそれぞれの情報が付与されている。この3つ目の継続イベントデータは、図5の(A)に示した3つ目のアラームイベントデータに対応した継続イベントデータである。3つ目の操作イベントデータも、単発(1回)のアラームイベントのアラームイベントデータであるため、集約処理によってまとめられずに、「開始時刻」と「終了時刻」との両方に、3つ目のアラームイベントデータに付与されている「日時」=「2016/01/01 10:04:00」が付与され、「タグ名」、「識別子」、および「タイプ」のそれぞれに、3つ目のアラームイベントデータのイベントの種類の情報が付与されている。また、図5の(B)の4つ目の継続イベントデータは、「開始時刻」=「終了時刻」=「2016/01/01 10:09:00」、「タグ名」=「TAG2」、「識別子」=「AUT」、および「タイプ」=「Operation」のそれぞれの情報が付与されている。この4つ目の継続イベントデータは、図5の(A)に示した7つ目の操作イベントデータに対応した継続イベントデータである。7つ目の操作イベントデータも、単発(1回)の操作イベントの操作イベントデータであるため、「開始時刻」と「終了時刻」との両方に、7つ目の操作イベントデータに付与されている「日時」=「2016/01/01 10:09:00」が付与され、「タグ名」、「識別子」、および「タイプ」のそれぞれに、7つ目の操作イベントデータのイベントの種類の情報が付与されている。
このようにイベントデータ収集部101とイベントデータ集約部102とのそれぞれが動作し、制御システム14から取得したイベントログデータに含まれる複数のイベントデータにおいて1つのイベントデータとしてまとめられる同じ種類のイベントデータを集約処理によってまとめ、「開始時刻」〜「終了時刻」で表される時間的な継続期間を持った1つのイベントデータに変換する。なお、イベントデータ収集部101とイベントデータ集約部102とのそれぞれは、上述したステップS5〜ステップS6−2の処理を、定期的に、繰り返し行う。
図3に戻って、イベント解析装置10において因果解析を行う処理シーケンスの続きを説明する。
イベントデータベース11は、イベントデータ変換部105から出力されたプロセス変動イベントデータと、イベントデータ集約部102から出力された継続イベントデータとのそれぞれを統合した統合イベントデータを記憶(保存)する(ステップS7)。なお、上述したように、プロセスデータ収集部103、トレンド変化検出部104、およびイベントデータ変換部105とのそれぞれによるステップS1〜ステップS4−2の処理と、イベントデータ収集部101およびイベントデータ集約部102のそれぞれによるステップS5〜ステップS6−2の処理とは、非同期に、定期的なタイミングで繰り返し行われる。従って、イベントデータベース11は、プロセス変動イベントデータまたは継続イベントデータが入力されてきたタイミングで、すでに記憶(保存)している統合イベントデータに、入力されたプロセス変動イベントデータや継続イベントデータをさらに統合し、統合した統合イベントデータを適宜記憶(保存)する。
ここで、イベントデータベース11に記憶(保存)される統合イベントデータの一例について説明する。図6は、本発明の実施形態のイベント解析装置10において統合したイベントデータ(統合イベントデータ)の一例を説明する図である。
図6においてそれぞれの行には、統合イベントデータに統合されたプロセス変動イベントデータまたは継続イベントデータ(アラームイベントデータや操作イベントデータ)のいずれかのイベントデータを、「開始時刻」に基づいて時系列に表している。より具体的には、図6の1つ目のイベントデータは、図4の(B)に示した1つ目のプロセス変動イベントデータである。また、図6の2つ目および3つ目のイベントデータは、図5の(B)に示した1つ目および2つ目の継続イベントデータ(操作イベントデータ)である。また、図6の4つ目のイベントデータは、図5の(B)に示した3つ目の継続イベントデータ(アラームイベントデータ)である。また、図6の5つ目のイベントデータは、図5の(B)に示した4つ目の継続イベントデータ(操作イベントデータ)である。また、図6の6つ目のイベントデータは、図4の(B)に示した2つ目のプロセス変動イベントデータである。
図6では、「開始時刻」、「終了時刻」、「タグ名」、「識別子」、および「タイプ」のそれぞれの情報が、統合イベントデータにおけるそれぞれのイベントの種類を表す情報として付与されている。このイベントの種類を表す情報は、プロセス変動イベントデータ(図4の(B)参照)および継続イベントデータ(図5の(B)参照)のそれぞれに付与されている情報である。このように、プロセス変動イベントデータと継続イベントデータとのそれぞれに同じイベントの種類を表す情報を付与することによって、イベント解析装置10では、プロセスログデータとイベントログデータとを組み合わせた因果解析を行うことができる。つまり、イベント解析装置10では、イベントデータ変換部105が、継続イベントデータ(アラームイベントデータや操作イベントデータ)と同様の形式でイベントの種類を表す情報を付与することによって、プラント内に配置されたそれぞれの設備で行っている様々なプロセスの変動と、設備のアラームや設備に対する操作などのイベントとを組み合わせて、因果解析を行うことができる。
イベント解析装置10では、上述したステップS1〜ステップS7の処理を、定期的に、繰り返し行う。なお、イベント解析装置10では、上述したステップS1〜ステップS7の処理を、以下に説明する因果解析の処理がユーザから要求されたときに行う構成してもよい。
図3に戻って、イベント解析装置10において因果解析を行う処理シーケンスの続きを説明する。
ユーザは、イベント解析装置10に対して着目するフィールド機器のイベント(プロセスであってもよい)を指定し、指定したイベントに関する因果解析の実行を要求する(ステップS8)。なお、図3に示したイベント解析装置10の処理シーケンスでは、ステップS8におけるユーザの処理を、解析結果出力部107に備えたユーザインターフェースの機能によって行っているものとして示しているが、本発明においては、ユーザがステップS8において行う処理の方法に関しては、特に規定しない。例えば、ユーザは、表示装置13に備えた不図示の操作装置の機能を操作することによって、ステップS8の処理を行ってもよい。なお、ユーザによるステップS8の処理は、イベント解析装置10における上述したステップS1〜ステップS7の処理と非同期に行われる。
ユーザからの指定したイベントに関する因果解析の実行が要求されると、解析結果出力部107は、指定されたフィールド機器のイベントの情報と共に、因果解析の実行要求を、因果関係解析部106に出力する(ステップS9)。これにより、因果関係解析部106は、解析結果出力部107から出力された因果解析の実行要求に応じて、因果解析の処理を開始する。
因果関係解析部106は、因果解析の処理を開始すると、まず、因果関係解析部106に備えた関連性解析モジュール1061は、P&IDなどのプラントの構成情報に基づいて、指定されたフィールド機器の関連タグを絞り込む(ステップS10−1)。そして、関連性解析モジュール1061は、イベントデータベース11に記憶(保存)されている統合イベントデータの中から、関連タグによって特定されたタグ名が識別名として付与されている全てのイベントデータを取得する(ステップS10−2)。その後、関連性解析モジュール1061は、イベントデータベース11から取得したそれぞれのイベントデータに基づいて、関連イベントを絞り込む(ステップS10−3)。
ここで、関連性解析モジュール1061が関連イベントを絞り込む処理(ステップS10−3)の一例について説明する。関連性解析モジュール1061は、イベントデータベース11から取得したそれぞれのイベントデータに含まれる開始時刻と終了時刻とに基づいて、それぞれのイベントの継続期間を算出し、算出したそれぞれのイベントの継続期間を時間軸上に並べて、類似度(関連度)の高いイベントの組み合わせを関連イベントとして絞り込む。なお、異なる2種類のイベント間の類似度(関連度)は、条件付き確率に基づいて算出することができる。また、異なる2種類のイベント間の条件付き確率は、それぞれのイベントが発生した回数(発生回数)と、それぞれのイベントが発生している区間、つまり、イベントの継続期間が重なった回数などをカウントしたカウント値に基づいて算出することができる。
図7は、本発明の実施形態のイベント解析装置10において関連性の高いイベント(関連イベント)を絞り込む処理(ステップS10−3)の一例を説明する図である。図7には、異なる2種類のイベント(イベントaおよびイベントb)の継続期間を時間軸上に並べた状態を示している。より具体的には、イベントデータベース11から取得したそれぞれのイベントデータに3回発生したイベントaのイベントデータが含まれている場合、関連性解析モジュール1061は、3回発生したイベントaのそれぞれの継続期間(継続期間a1〜継続期間a3)が表している時間を、時間軸上に並べて配置する。なお、図7においては、時間軸上に配置した1回目のイベントaの継続期間a1が、2015年6月5日の12時0分から2015年6月5日の12時50分までの間である状態を示している。また、イベントデータベース11から取得したそれぞれのイベントデータに4回発生したイベントbのイベントデータが含まれている場合、関連性解析モジュール1061は、イベントaと同様に、4回発生したイベントbのそれぞれの継続期間(継続期間b1〜継続期間b4)が表している時間を、時間軸上に並べて配置する。なお、図7においては、時間軸上に配置した1回目のイベントbの継続期間b1が、2015年6月5日の12時20分から2015年6月5日の13時0分までの間である状態を示している。
関連性解析モジュール1061は、図7に示したような関係となっているイベントaとイベントbと間の条件付き確率を算出し、さらに、算出した条件付き確率に基づいて、イベントaとイベントbと間の類似度を算出する。図7に示した一例では、イベントaの発生回数は3回、イベントbの発生回数は4回である。また、図7に示した一例では、イベントaの継続期間とイベントbの継続期間とが重なった回数は、継続期間a1および継続期間b1の重なりと、継続期間a2および継続期間b2の重なりとの2回である。このことから、関連性解析モジュール1061は、イベントaが発生した場合にイベントbが発生する条件付き確率を下式(1)のように求める。
P(b=1|a=1)= 2/3 ・・・(1)
また、同様に、関連性解析モジュール1061は、イベントbが発生した場合にイベントaが発生する条件付き確率を下式(2)のように求める。
P(a=1|b=1)= 2/4 ・・・(2)
そして、関連性解析モジュール1061は、上式(1)および上式(2)で求めた両方の条件付き確率の平均値を用いて、イベントaとイベントbと間の類似度を求める。
このようにして、関連性解析モジュール1061は、イベントデータベース11からイベントデータを取得したそれぞれのイベントに対して、異なる2種類のイベント間の類似度を求め、求めたそれぞれの類似度に基づいて、類似度の高いイベントの組み合わせを関連イベントとして絞り込む。そして、関連性解析モジュール1061は、イベントデータベース11から取得したイベントデータの内、関連イベントとして絞り込んだイベントのイベントデータを、関連イベントデータとして、因果関係解析部106に備えた因果モデル構築モジュール1062に出力する。なお、関連性解析モジュール1061が類似度を求める方法は、上述した条件付き確率を用いる方法に限定されるものではない。例えば、因果関係解析部106は、それぞれのイベント間の相関係数や相互情報量などに基づいて類似度を求めてもよい。
図3に戻って、イベント解析装置10において因果解析を行う処理シーケンスの続きを説明する。
因果関係解析部106に備えた因果モデル構築モジュール1062は、関連性解析モジュール1061から出力された関連イベントデータに基づいて、イベント間の因果関係の情報、イベントの発生時間差の分布の情報、および発生したそれぞれのイベントの継続期間の分布の情報を持った因果モデルを生成(構築)する(ステップS10−4)。
ここで、因果モデル構築モジュール1062が因果モデルを生成する構築処理(ステップS10−4)の一例について説明する。因果モデル構築モジュール1062は、関連性解析モジュール1061から出力された関連イベントデータに基づいて、それぞれのイベントの継続期間を、予め定めた基準時間幅のブロックの単位で分割した時間軸上に並べことによって、同じ関連イベントを表す複数のブロックを事象としてまとめ、それぞれの事象に含まれるイベントの情報を折り畳んだ投影データを含んだ投影イベントデータを生成する。ここで、ブロックの時間幅(基準時間幅)は、関連イベントデータに含まれるそれぞれのイベントの継続期間に基づいて、適切な時間幅を定める。例えば、ブロックの時間幅を、関連イベントデータに含まれる全てのイベントの継続期間の中で最も短い継続期間を少なくとも1つのブロックで表すことができる時間幅とする。なお、ブロックの時間幅(基準時間幅)は、後にユーザに提示する情報における時間の精度に応じて、適切な時間幅を定めてもよい。そして、因果モデル構築モジュール1062は、生成した投影イベントデータに基づいて、イベント間の因果関係の情報、イベントの発生時間差の分布の情報、および発生したそれぞれのイベントの継続期間の分布の情報を持った因果モデル(ベイジアンネットワーク)を構築する。
まず、因果モデル構築モジュール1062が、関連性解析モジュール1061から出力された関連イベントデータに含まれるそれぞれのイベントを事象にまとめる処理について説明する。図8は、本発明の実施形態のイベント解析装置10において関連性の高いイベント(関連イベント)をまとめる処理の一例を説明する図である。図8には、異なる3種類のイベント(イベントA、イベントB、及びイベントC)の継続期間を、基準時間幅をΔTとして予め定めたブロックの単位で分割された時間軸上に並べた状態を示している。より具体的には、関連性解析モジュール1061から出力された関連イベントデータに3回発生したイベントAのイベントデータが含まれている場合、因果モデル構築モジュール1062は、3回発生したイベントAのそれぞれの継続期間(継続期間A1〜継続期間A3)を、ブロックの単位で分割された時間軸上に並べて配置する。また、関連性解析モジュール1061から出力された関連イベントデータに4回発生したイベントBのイベントデータが含まれている場合、因果モデル構築モジュール1062は、イベントAと同様に、4回発生したイベントBのそれぞれの継続期間(継続期間B1〜継続期間B4)を、同じ時間軸上に並べて配置する。また、関連性解析モジュール1061から出力された関連イベントデータに2回発生したイベントCのイベントデータが含まれている場合、因果モデル構築モジュール1062は、イベントAおよびイベントBと同様に、2回発生したイベントCのそれぞれの継続期間(継続期間C1および継続期間C2)を、同じ時間軸上に並べて配置する。
因果モデル構築モジュール1062は、図8に示したようにそれぞれのイベントの継続期間が配置された時間軸において、同じ関連イベントに絞り込まれたイベントの継続期間が配置されている複数のブロックを1つの「事象」にまとめる。図8に示した一例では、同じ関連イベントに絞り込まれた1回目のイベントAの継続期間A1、1回目のイベントBの継続期間B1、および1回目のイベントCの継続期間C1が配置されている複数のブロックを、「事象1」としてまとめた状態を示している。また、図8に示した一例では、同じ関連イベントに絞り込まれた2回目のイベントAの継続期間A2、2回目のイベントBの継続期間B2、および2回目のイベントCの継続期間C2が配置されている複数のブロックを、「事象2」としてまとめた状態を示している。同様に、図8に示した一例では、3回目のイベントBの継続期間B3が配置されている複数のブロックを「事象3」としてまとめ、3回目のイベントAの継続期間A3が配置されている複数のブロックを「事象4」としてまとめ、4回目のイベントBの継続期間B4が配置されている複数のブロックを「事象5」としてまとめた状態を示している。
なお、図8に示したように、それぞれのイベントの継続期間は、複数のブロックに跨がって配置される場合もあるが、1つのブロックのみに配置される場合もある。そして、図8に示したように、同じイベントの継続期間であっても、配置されるブロックの数は、継続期間ごとに異なっている。また、図8に示したように、それぞれの事象を構成するブロックの数は、事象ごとに異なっている。これは、関連イベントデータに含まれる継続期間を持ったそれぞれのイベントは、時間のばらつきが大きいため、それぞれのイベントの継続期間や他のイベントとの間に大きな時間差があるためである。そこで、因果モデル構築モジュール1062では、時間差のばらつきが大きいイベント同士であっても因果解析が行えるように、つまり、時間差のばらつきの影響を受けずにイベント同士の因果解析が行えるように、それぞれの事象にまとめられたイベントの情報を投影データに折り畳み、この投影データで表された投影イベントデータを生成する。
続いて、因果モデル構築モジュール1062が、投影データを含んだ投影イベントデータを生成する処理について説明する。図9は、本発明の実施形態のイベント解析装置10において因果モデル(ベイジアンネットワーク)を構築するためのイベントデータ(投影イベントデータ)を生成する処理の一例を説明する図である。図9には、図8に示した処理においてまとめられたそれぞれの事象を構成する複数のブロックが表す、同じ関連イベントに絞り込まれたそれぞれのイベントの情報を対応する投影データに折り畳み、それぞれの事象に対応する投影データを含んだ投影イベントデータを生成する処理を示している。図9の上段には、図8に示した処理において時間軸上に配置された、それぞれのイベントの継続期間の配置の状態を表すブロックの情報を表している。また、図9の下段には、図9の上段に示したそれぞれの事象を構成する複数のブロックが表す情報を、対応する投影データに折り畳んで含めることによって生成する投影イベントデータを示している。
図9の上段に示したように、時間軸上に配置された異なる3種類のイベント(イベントA、イベントB、及びイベントC)の継続期間の配置の状態は、それぞれのブロックに継続期間が配置されているか否かによって表すことができる。図9の上段においては、イベントの継続期間が配置されている場合のデータを「1」とし、イベントの継続期間が配置されていない場合のデータを「0」として、それぞれのブロックにおけるイベントの継続期間の配置の状態を表している。例えば、図9の上段に示したイベントAにおける事象1では、1番目のブロックから5番目のブロックまでがイベントAの継続期間であることを表すため、1番目から5番目までの5つのブロックのそれぞれのデータを「1」とし、他のブロック(6番目のブロック)のデータを「0」としている。同様に、図9の上段に示したイベントBにおける事象1では、3番目のブロックから6番目のブロックまでがイベントBの継続期間であることを表すため、3番目から6番目までの4つのブロックのそれぞれのデータを「1」とし、他のブロック(1番目および2番目のブロック)のデータを「0」としている。同様に、図9の上段に示したイベントCにおける事象1では、5番目のブロックのみがイベントCの継続期間であることを表すため、5番目のブロックのみのデータを「1」とし、他のブロック(1番目〜4番目のブロック、および6番目のブロック)のデータを「0」としている。
そして、因果モデル構築モジュール1062は、それぞれの事象における1番目のブロックに、事象を構成する複数のブロックが表す情報を折り畳んで投影することによって、図9の下段に示したような構成の投影データを含んだ投影イベントデータを生成する。上述したように、それぞれの投影データには、イベントの発生の有無や、イベント間の時間差、イベントの継続期間の情報が含まれている。それぞれの投影データにおけるイベントの発生の有無の情報は、イベントが発生している場合、つまり、いずれかのブロックにイベントの継続期間が配置されている場合を「1」とし、イベントが発生しなかった場合、つまり、いずれのブロックにもイベントの継続期間が配置されていない場合を「0」として表す。また、それぞれの投影データにおけるイベント間の時間差の情報は、それぞれの事象における1番目のブロックからイベントの継続期間が配置されたブロックまでのブロックの数を、1番目のブロックからの遅れ時間として、基準時間幅=ΔTの倍数で表す。また、それぞれの投影データにおけるイベントの継続期間の情報は、イベントの継続期間が配置されたブロックの数で表す。例えば、図9の下段に示したように、図9の上段に示したイベントAにおける事象1に対応する投影データは、1番目から5番目までの5つのブロックにイベントAの継続期間が配置されているため、イベントの発生有無=「1」(イベントの発生あり)、遅れ時間=「0」、継続期間=「5」とする。同様に、図9の上段に示したイベントBにおける事象1に対応する投影データは、1番目および2番目の2つのブロックだけ遅れて、3番目から6番目までの4つのブロックにイベントBの継続期間が配置されているため、イベントの発生有無=「1」(イベントの発生あり)、遅れ時間=「2ΔT」、継続期間=「4」とする。同様に、図9の上段に示したイベントCにおける事象1に対応する投影データは、1番目〜4番目のブロックの4つのブロックだけ遅れて、5番目のブロックのみにイベントCの継続期間が配置されているため、イベントの発生有無=「1」(イベントの発生あり)、遅れ時間=「4ΔT」、継続期間=「1」とする。
なお、図9の下段に示したように、図9の上段に示した時間軸において、いずれのイベントの継続期間が配置されなかったそれぞれのブロックは、投影データとしてそのまま投影イベントデータに含まれる。
続いて、因果モデル構築モジュール1062が、生成した投影イベントデータに基づいて、因果モデル(ベイジアンネットワーク)を構築する処理について説明する。なお、因果モデル構築モジュール1062では、例えば、MWST法やk2など、従来のイベント解析装置においてベイジアンネットワークを構築する際に用いたアルゴリズムと同様のアルゴリズムで、イベント間の因果関係を求めることができる情報を持ったベイジアンネットワークを構築することができる。これは、上述したように、投影イベントデータでは、時間的な要素を1つのイベントとして含ませることにより、ベイジアンネットワークを構築するためのアルゴリズムに特別な構成を必要としないからである。従って、以下の説明においては、因果モデル構築モジュール1062において、イベント間の因果関係を求めるための情報を持ったベイジアンネットワークの構築方法に関する詳細な説明は省略し、因果モデル構築モジュール1062が構築したベイジアンネットワークの一例について説明する。図10は、本発明の実施形態のイベント解析装置10において構築した因果モデル(ベイジアンネットワーク)の一例を示した図である。図10には、図9の下段に示した投影イベントデータに基づいて生成したベイジアンネットワークの一例を示している。
因果モデル構築モジュール1062では、投影イベントデータのそれぞれのイベントとして、対応する事象の遅れ時間と継続期間との時間的な要素を含ませることにより、構築するベイジアンネットワークに、さらに、イベント間の時間差の分布やそれぞれのイベントの継続期間の分布を、全てのイベントに対して求めることができる情報を持たせることができる。図10に示したベイジアンネットワークの一例において、A〜Cのそれぞれは、図9の下段に示した投影イベントデータに含まれるイベントA〜イベントCのそれぞれに対応する。図10に示したベイジアンネットワークの一例では、イベントAが発生した場合に、「P(B|A)」の確率でイベントBが発生し、その際の遅れ時間は、「Delay(A、B)」であることを表している。また、図10に示したベイジアンネットワークの一例では、イベントAの発生によってイベントBが発生した場合に、「P(C|A、B)」の確率でさらにイベントCが発生し、その際の遅れ時間は、「Delay(B、C)」であることを表している。また、図10に示したベイジアンネットワークの一例では、イベントAに対するイベントCの遅れ時間は、「Delay(A、C)」であることを表している。
図10に示した一例のようなベイジアンネットワークによって、あるイベントが発生した場合に、このイベントと因果関係がある他のイベントが発生する際の遅れ時間と継続期間とを条件付き確率で求めることができる。例えば、図9の下段に示した投影イベントデータでは、事象1において、イベントAが発生したときのイベントBの遅れ時間=「2ΔT」と、イベントCの遅れ時間=「4ΔT」とから、イベントBが発生してからイベントCが発生するまでの遅れ時間(時間差)は、遅れ時間=「2ΔT」であることがわかる。また、図9の下段に示した投影イベントデータでは、事象2において、イベントAが発生したときのイベントBの遅れ時間=「ΔT」と、イベントCの遅れ時間=「2ΔT」とから、イベントBが発生してからイベントCが発生するまでの遅れ時間(時間差)は、遅れ時間=「ΔT」であることがわかる。このとき、基準時間幅ΔTを、ΔT=「10分」とすると、イベントAの発生によってイベントBが発生し、さらにイベントCが発生する際の、イベントBとイベントCとの間の遅れ時間は、遅れ時間「Delay(B、C)」から、遅れ時間=「ΔT」=「10分」である確率は50%であり、遅れ時間=「2ΔT」=「20分」である確率は50%であることを求めることができる。
このようにして、因果モデル構築モジュール1062は、関連性解析モジュール1061から出力された関連イベントデータに基づいて、同じ関連イベントに絞り込まれたそれぞれのイベントの情報を投影データとして含んだ投影イベントデータを生成する。その後、因果モデル構築モジュール1062は、生成した投影イベントデータに基づいて、イベント間の因果関係、イベントの発生時間差(遅れ時間)の分布、およびイベントの継続期間の分布を求めることができる情報を持った因果モデル(ベイジアンネットワーク)を構築する。そして、因果モデル構築モジュール1062は、構築した因果モデル(ベイジアンネットワーク)を、因果モデルデータベース12に出力して記憶(保存)させる。
図3に戻って、イベント解析装置10において因果解析を行う処理シーケンスの続きを説明する。
因果関係解析部106に備えた因果分析モジュール1063は、因果モデルデータベース12に記憶(保存)されている因果モデル(ベイジアンネットワーク)に基づいて、ステップS8において指定されたイベントに関する因果解析を実行する(ステップS10−5)。因果分析モジュール1063における因果解析では、因果モデル構築モジュール1062が生成したベイジアンネットワークに基づいて、従来のイベント解析装置においてベイジアンネットワークを用いて行う因果解析と同様に、指定されたイベントが発生する原因の推定や、指定されたイベントを原因とした他のイベントの発生の予測などのイベント間の因果関係の解析を行う。このとき、因果分析モジュール1063が因果解析に用いるベイジアンネットワークには、従来のイベント解析装置において生成したベイジアンネットワークのように、設備において発生したイベント(アラームイベントや操作イベント)のみではなく、設備で行っているプロセスにおけるプロセス値の変動も、イベント(プロセス変動イベント)として含まれている。このため、因果分析モジュール1063における因果解析では、指定されたイベントを原因としたアラームイベントや操作イベントの発生の予測のみではなく、プロセス変動イベントが発生する原因の推定や、プロセス変動イベントを原因とした他のイベント(プロセス変動イベントも含む)の発生の予測、つまり、プラント内に配置されたそれぞれの設備で行っている様々なプロセスの将来的な変動の発生の推定や予測も、因果関係の解析として行われる。さらに、因果モデル構築モジュール1062が生成したベイジアンネットワークには、上述したように、イベント間の因果関係に加えて、イベントの発生時間差(遅れ時間)の分布、およびイベントの継続期間の分布を求めることができる情報を持っている。このため、因果分析モジュール1063における因果解析では、さらに、指定されたイベントを原因とした他のイベントの発生時間差(遅れ時間)の分布、およびこのイベントの継続期間の分布を算出し、推定や予測をした他のイベントの発生確率の算出(推定)を行うことができる。因果分析モジュール1063における推定や予測をした他のイベントの発生確率の推定は、ベイジアンネットワークの確率推論を用いることができる。ベイジアンネットワークの代表的な確率推論アルゴリズムとしては、確率伝搬法などがある。さらに、因果分析モジュール1063における因果解析では、指定されたイベントの発生時間と、算出した他のイベントの発生時間差(遅れ時間)の分布、およびこのイベントの継続期間の分布に基づいて、推定や予測をした他のイベントの発生時間および継続期間の算出(推定)を行うことができる。なお、因果分析モジュール1063における因果解析の方法は、既存の方法を用いて適宜行うことができるため、詳細な説明は省略する。
このようにして、因果分析モジュール1063は、因果モデル構築モジュール1062が生成したベイジアンネットワークに基づいて、指定されたイベントの発生原因の推定や、指定されたイベントを原因とした他のイベントの発生の予測、他のイベントの発生確率、発生時間、および継続期間の推定などの因果解析を行う。そして、因果分析モジュール1063は、推定したそれぞれの結果(因果解析の結果)を、解析結果出力部107に出力する。これにより、解析結果出力部107は、因果分析モジュール1063から出力された因果解析の結果の情報を可視化する表示データを生成して表示装置13に出力し、表示データに応じた表示画面を表示装置13に表示させる。
このような処理の流れ(処理シーケンス)によって、イベント解析装置10では、ユーザによって指定されたイベントに関する因果解析を行い、因果解析の結果を表示装置13に表示させて提示することによって、設備の稼働を管理するユーザの支援を行う。
上記に述べたとおり、本発明を実施するための形態によれば、イベント解析装置(より具体的には、プロセスデータ収集部103、トレンド変化検出部104、およびイベントデータ変換部105)が、プラント内に配置されたそれぞれの設備で行っている様々なプロセスのプロセスデータを取得し、取得したプロセスデータの変動を表す時間的な継続期間を持ったイベントデータ(プロセス変動イベントデータ)に変換する。さらに、本発明を実施するための形態では、イベント解析装置(より具体的には、イベントデータ収集部101)が、プラント内に配置されたそれぞれの設備で発生したアラームのイベント(アラームイベント)のイベントデータ(アラームイベントデータ)や、それぞれの設備に対して行われた操作のイベント(操作イベント)のイベントデータ(操作イベントデータ)などの単発のイベントのイベントデータを取得する。このとき、本発明を実施するための形態では、イベント解析装置(より具体的には、イベントデータ集約部102)が、予め定めた期間(想定される短い期間)内に発せられた同じ種類のイベントのイベントデータの取得が、複数回繰り返された場合には、この繰り返して取得した同じ種類の複数のイベントデータを、時間的な継続期間を持った1つのイベントのイベントデータ(継続イベントデータ)としてまとめる(集約する)。そして、本発明を実施するための形態では、イベント解析装置が、プロセスデータを変換したイベントデータ(プロセス変動イベントデータ)と、1つのイベントのイベントデータとしてまとめたイベントデータ(継続イベントデータ)とを統合(より具体的には、イベントデータベース11に記憶(保存)する際に統合)して、新たなイベントデータ(統合イベントデータ)とする。そして、本発明を実施するための形態では、イベント解析装置(より具体的には、因果関係解析部106)が、統合したイベントデータ(統合イベントデータ)に基づいて、関連するイベントデータ(関連イベントデータ)を絞り込んだ後、このイベントデータを、従来のイベント解析装置において用いたイベントデータと同様に扱って、因果関係を解析するための因果モデル(ベイジアンネットワーク)を構築する。これにより、本発明を実施するための形態では、イベント解析装置(より具体的には、因果関係解析部106)が、構築した因果モデル(ベイジアンネットワーク)を、従来のイベント解析装置において因果関係を解析するための用いた因果モデルと同様に処理することによって、因果解析を実行することができる。このことにより、本発明を実施するための形態では、イベント解析装置(より具体的には、イベント解析装置10)が、プラント内に配置されたそれぞれの設備で行っているプロセスのデータの変動と、設備のアラームや設備に対する操作などのイベントとを組み合わせて、因果関係を解析することができる。
しかも、本発明を実施するための形態では、イベント解析装置(より具体的には、因果関係解析部106に備えた因果モデル構築モジュール1062)が因果モデル(ベイジアンネットワーク)を構築するためのイベントデータ(統合イベントデータ)に含まれるそれぞれのイベントのデータ(プロセス変動イベントデータ、アラームイベントデータ、操作イベントデータ)に、時間的な継続期間の情報が含まれている。このため、本発明を実施するための形態では、イベント解析装置(より具体的には、因果関係解析部106に備えた因果分析モジュール1063)が、時間的な概念を考慮(適用)した因果解析を行うことができる。より具体的には、因果解析の結果に、時間に関する分布(イベントが発生する際の時間差の分布や、発生したそれぞれのイベントの継続期間の分布)や、イベントの発生確率、発生時間、および継続期間などの算出(推定)することができる。
これらのことにより、本発明を実施するための形態では、イベント解析装置(より具体的には、イベント解析装置10)のユーザに、従来よりも様々な情報を提示することができ、ユーザによる設備の稼働の管理を支援することができる。例えば、ユーザが、設備において行った手動操作や設備において発生したアラーム原因となるプロセスデータの変動を解明することによって、オペレータが行う操作の自動化や、アラームの発生回数を減らすための合理化を図ることができ、プラントの操業の改善を図ることができる。また、例えば、ユーザが、複数の設備に伝搬した異常の連鎖を辿って原因を特定することによって、プラントの安全な操業を図ることができる。
なお、実施形態では、統合イベントデータに基づいてベイジアンネットワークを因果モデルとして構築する場合について説明した。しかし、本発明のイベント解析装置において構築する因果モデルは、ベイジアンネットワークに限定されるものではなく、実施形態において示したベイジアンネットワークと同様に、統合イベントデータに基づいて構築することができ、時間的な概念を考慮(適用)した因果関係の解析を行うことができる因果モデルであれば、本発明の考え方を適用することができる。
なお、例えば、図1において示したイベント解析装置10やイベント解析装置10を構成する各構成要素による処理を実現するためのプログラムを、コンピュータ読み取り可能な記録媒体に記録して、当該記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、本実施形態の報告書作成システムに係る上述した種々の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものであってもよい。また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリ等の書き込み可能な不揮発性メモリ、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現するもの、いわゆる差分ファイル(差分プログラム)であっても良い。
以上、本発明の実施形態について、図面を参照して説明してきたが、具体的な構成はこの実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲においての種々の変更も含まれる。