(57)【要約】【課題】被制御機器の制御に関するイベントの検出条件を更新する場合に、現在の検出条件から変更がないイベントを継続的に監視することができない場合があること。【解決手段】制御装置は、被制御機器の制御に関するイベントを検出するための予め定められた検出条件を繰り返し評価することにより、イベントを検出する検出部と、現在の検出条件を新たな検出条件に更新する場合に、現在の検出条件のうち、条件に変更が無い第１の検出条件と、条件に変更がある第２の検出条件とを抽出し、第１の検出条件により検出されるイベントに関する情報を保持し、第２の検出条件により検出されるイベントに関する情報を初期化する条件更新部とを備える。【選択図】図８
2019021061.tif 000002
【特許請求の範囲】
【請求項１】
被制御機器の制御に関するイベントを検出するための予め定められた検出条件を繰り返し評価することにより、前記イベントを検出する検出部と、
現在の前記検出条件を新たな検出条件に更新する場合に、前記現在の検出条件のうち、条件に変更が無い第１の検出条件と、条件に変更がある第２の検出条件とを抽出し、前記第１の検出条件により検出される前記イベントに関する情報を保持し、前記第２の検出条件により検出される前記イベントに関する情報を初期化する条件更新部と
を備える制御装置。
【請求項２】
前記情報は、前記検出条件の評価結果を示す
請求項１に記載の制御装置。
【請求項３】
前記情報は、前記検出条件により検出される前記イベントの状態を示す
請求項１又は２に記載の制御装置。
【請求項４】
前記検出部は、前記検出条件を繰り返し評価することにより、前記イベントの状態の遷移を検出し、
前記制御装置は、
前記検出部が前記イベントの状態が遷移したことを検出した場合に、当該遷移が生じたことを記憶するイベント記憶部
をさらに備える請求項３に記載の制御装置。
【請求項５】
前記条件更新部は、前記現在の検出条件を新たな検出条件に更新する場合に、前記現在の検出条件のうち他の検出条件の評価結果を用いた条件式を含む検出条件について、前記条件式に変更がない場合であっても、前記他の検出条件に変更がある場合には、前記条件式を含む検出条件を前記第２の検出条件として抽出する
請求項１から４のいずれか一項に記載の制御装置。
【請求項６】
互いに異なる検出条件を記憶することができる第１の記憶領域及び第２の記憶領域を有する検出条件記憶部
をさらに備え、
前記現在の検出条件は、前記第１の記憶領域及び前記第２の記憶領域のうちの一方の記憶領域に記憶され、
前記検出部は、前記一方の記憶領域を参照して、前記イベントを検出するための検出条件を繰り返し評価し、
前記条件更新部は、前記現在の検出条件に対して前記新たな検出条件の少なくとも一部を反映した検出条件を、前記第１の記憶領域及び前記第２の記憶領域のうち他方の記憶領域に記憶させ、前記検出部が参照する記憶領域を、前記一方の記憶領域から前記他方の記憶領域に切り替える
請求項１から５のいずれか一項に記載の制御装置。
【請求項７】
前記第１の記憶領域及び前記第２の記憶領域は、複数の検出条件のそれぞれが有効であるか否かを示す値を記憶する有効設定領域を含み、
前記検出部は、前記有効設定領域に有効である旨を示す値が記憶される検出条件を評価し、
前記条件更新部は、
前記他方の記憶領域の前記有効設定領域において、前記第２の検出条件が有効でない旨を示す値を記憶させるとともに、前記第１の検出条件が有効である旨を示す値を記憶させ、
前記検出部が参照する記憶領域を、前記一方の記憶領域から前記他方の記憶領域に切り替える
請求項６に記載の制御装置。
【請求項８】
前記条件更新部は、
前記新たな検出条件に更新する場合に、前記現在の検出条件から削除される第３の検出条件を抽出し、
前記検出部が参照する記憶領域を、前記一方の記憶領域から前記他方の記憶領域に切り替える前に、前記他方の記憶領域の前記有効設定領域において、前記第３の検出条件が有効でない旨を示す値を記憶させる
請求項７に記載の制御装置。
【請求項９】
請求項１から７のいずれか一項に記載の制御装置と、
監視装置と
を備え、
前記制御装置は、前記イベントの検出結果を前記監視装置に送信する
制御システム。
【請求項１０】
被制御機器の制御に関するイベントを検出するための予め定められた検出条件を繰り返し評価することにより、前記イベントを検出する検出段階と、
現在の前記検出条件を新たな検出条件に更新する場合に、前記現在の検出条件のうち、条件に変更が無い第１の検出条件と、条件に変更がある第２の検出条件とを抽出する段階と、
前記第１の検出条件により検出される前記イベントに関する情報を保持し、前記第２の検出条件により検出される前記イベントに関する情報を初期化する段階と
を備える制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置、制御システム及び制御方法に関する。
【背景技術】
【０００２】
各アナログ入力信号を第１の所定周期毎に収集してタイムスタンプを付してサンプリングデータとして格納する制御装置が知られている（例えば特許文献１参照）。
特許文献１  特開２００８−２０４１６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００３】
従来、被制御機器の制御に関するイベントの検出条件を更新する場合に、現在の検出条件から変更がないイベントを継続的に監視することができない場合がある。
【課題を解決するための手段】
【０００４】
第１の態様において、制御装置は、被制御機器の制御に関するイベントを検出するための予め定められた検出条件を繰り返し評価することにより、イベントを検出する検出部と、現在の検出条件を新たな検出条件に更新する場合に、現在の検出条件のうち、条件に変更が無い第１の検出条件と、条件に変更がある第２の検出条件とを抽出し、第１の検出条件により検出されるイベントに関する情報を保持し、第２の検出条件により検出されるイベントに関する情報を初期化する条件更新部とを備える。
【０００５】
情報は、検出条件の評価結果を示してよい。
【０００６】
情報は、検出条件により検出されるイベントの状態を示してよい。
【０００７】
検出部は、検出条件を繰り返し評価することにより、イベントの状態の遷移を検出してよい。制御装置は、検出部がイベントの状態が遷移したことを検出した場合に、当該遷移が生じたことを記憶するイベント記憶部をさらに備えてよい。
【０００８】
条件更新部は、現在の検出条件を新たな検出条件に更新する場合に、現在の検出条件のうち他の検出条件の評価結果を用いた条件式を含む検出条件について、条件式に変更がない場合であっても、他の検出条件に変更がある場合には、条件式を含む検出条件を第２の検出条件として抽出してよい。
【０００９】
互いに異なる検出条件を記憶することができる第１の記憶領域及び第２の記憶領域を有する検出条件記憶部をさらに備えてよい。現在の検出条件は、第１の記憶領域及び第２の記憶領域のうちの一方の記憶領域に記憶されてよい。検出部は、一方の記憶領域を参照して、イベントを検出するための検出条件を繰り返し評価してよい。条件更新部は、現在の検出条件に対して新たな検出条件の少なくとも一部を反映した検出条件を、第１の記憶領域及び第２の記憶領域のうち他方の記憶領域に記憶させ、検出部が参照する記憶領域を、一方の記憶領域から他方の記憶領域に切り替えてよい。
【００１０】
第１の記憶領域及び第２の記憶領域は、複数の検出条件のそれぞれが有効であるか否かを示す値を記憶する有効設定領域を含んでよい。検出部は、有効設定領域に有効である旨を示す値が記憶される検出条件を評価してよい。条件更新部は、他方の記憶領域の有効設定領域において、第２の検出条件が有効でない旨を示す値を記憶させるとともに、第１の検出条件が有効である旨を示す値を記憶させ、検出部が参照する記憶領域を、一方の記憶領域から他方の記憶領域に切り替えてよい。
【００１１】
条件更新部は、新たな検出条件に更新する場合に、現在の検出条件から削除される第３の検出条件を抽出し、検出部が参照する記憶領域を、一方の記憶領域から他方の記憶領域に切り替える前に、他方の記憶領域の有効設定領域において、第３の検出条件が有効でない旨を示す値を記憶させてよい。
【００１２】
第２の態様において、制御システムは、上記の制御装置と、監視装置とを備え、制御装置は、イベントの検出結果を監視装置に送信する。
【００１３】
第３の態様において、制御方法は、被制御機器の制御に関するイベントを検出するための予め定められた検出条件を繰り返し評価することにより、イベントを検出する検出段階と、現在の検出条件を新たな検出条件に更新する場合に、現在の検出条件のうち、条件に変更が無い第１の検出条件と、条件に変更がある第２の検出条件とを抽出する段階と、第１の検出条件により検出されるイベントに関する情報を保持し、第２の検出条件により検出されるイベントに関する情報を初期化する段階とを備える。
【００１４】
なお、上記の発明の概要は、本発明の特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【図面の簡単な説明】
【００１５】
【図１】一実施形態における制御システム１０の概略的な構成を示す。
【図２】ＣＰＵモジュール１００の機能構成を概略的に示す。
【図３】支援／監視装置２０において設定されるイベント設定データの一例を示す。
【図４】制御部２００において行うイベント検出処理を概略的に示す。
【図５】イベント検出用の管理データ５００のデータ構造を模式的に示す。
【図６】監視周期管理情報５８０のデータ構造を示す。
【図７】制御部２００において検出部２０２がイベントを検出する処理を示すフローチャートである。
【図８】検出条件を変更する処理を示すフローチャートである。
【図９】支援／監視装置２０が表示するイベント一覧情報を示す。
【発明を実施するための形態】
【００１６】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１７】
図１は、一実施形態における制御システム１０の概略的な構成を示す。制御システム１０は、支援／監視装置２０と、ＣＰＵモジュール１００と、ＩＯモジュール１２０ａ及びＩＯモジュール１２０ｂと、被制御機器４０ａ、被制御機器４０ｂ及び被制御機器４０ｃとを備える。
【００１８】
本実施形態において、ＩＯモジュール１２０ａ及びＩＯモジュール１２０ｂを、ＩＯモジュール１２０と総称する場合がある。また、被制御機器４０ａ、被制御機器４０ｂ及び被制御機器４０ｃを、被制御機器４０と総称する場合がある。ＣＰＵモジュール１００は、制御装置の一例である。ＩＯモジュール１２０は、ＣＰＵモジュール１００による制御に従って、被制御機器４０との間でデータの入出力を行う入出力装置の一例である。
【００１９】
支援／監視装置２０は、パーソナルコンピュータ等のコンピュータにより実現される。支援／監視装置２０は、ネットワークを通じてＣＰＵモジュール１００と通信する。ＣＰＵモジュール１００は、ネットワーク又はバスを通じて、ＩＯモジュール１２０ａ及びＩＯモジュール１２０ｂと通信する。ＩＯモジュール１２０ａは、被制御機器４０ａに接続される。ＩＯモジュール１２０ａは、被制御機器４０ａとの間のデータの入出力を担う。ＩＯモジュール１２０ｂは、被制御機器４０ｂ及び被制御機器４０ｃに接続される。ＩＯモジュール１２０ｂは、被制御機器４０ｂ及び被制御機器４０ｃのそれぞれのとの間のデータの入出力を担う。なお、ＣＰＵモジュール１００の数、ＩＯモジュール１２０の数、及び、被制御機器４０の総数、ＩＯモジュール１２０ａ及びＩＯモジュール１２０ｂにそれぞれ接続される被制御機器４０は、本実施形態に示される数に限定されない。
【００２０】
制御システム１０は、工場やプラント等の産業施設において用いられてよい。制御システム１０は、ファクトリーオートメーションの少なくとも一部として用いられてよい。支援／監視装置２０、ＣＰＵモジュール１００及びＩＯモジュール１２０は、産業用制御システムであってよい。被制御機器４０は、支援／監視装置２０、ＣＰＵモジュール１００及びＩＯモジュール１２０による制御対象となる機器である。被制御機器４０は、モータ、エンコーダ、ポンプ、バルブ、カメラ、各種センサ等であってよい。被制御機器４０は、例えば産業機械であってよい。ＣＰＵモジュール１００及びＩＯモジュール１２０は、それぞれプログラマブルロジックコントローラ（ＰＬＣ）であってよい。
【００２１】
支援／監視装置２０は、制御システム１０の監視制御をする。支援／監視装置２０は、ＣＰＵモジュール１００との間でメッセージを送受信することにより、制御システム１０を監視制御する。支援／監視装置２０は、被制御機器４０、ＣＰＵモジュール１００及びＩＯモジュール１２０の少なくとも１つのステータス情報をＣＰＵモジュール１００から受信し、制御システム１０が制御する工程に従って、ＣＰＵモジュール１００に各種の制御指示を出力する。また、支援／監視装置２０は、イベント設定ツール機能を有する。例えば、支援／監視装置２０は、ユーザからの指示に基づいて、制御システム１０におけるイベントの検出条件を設定する。支援／監視装置２０は、ユーザからの指示に基づいて、イベントの検出条件の追加、更新又は削除をする。
【００２２】
ＩＯモジュール１２０は、被制御機器４０の状態を示す情報や、被制御機器４０が計測した結果を示す情報等のデータを、入力データとして被制御機器４０から取得する。ＩＯモジュール１２０は、被制御機器４０から入力された入力データを、ＣＰＵモジュール１００に出力する。
【００２３】
ＣＰＵモジュール１００は、ラダー図等を通じて生成されたシーケンス制御のための制御アプリケーションプログラムを有する。制御アプリケーションプログラムは、被制御機器４０を制御するための制御プログラムの一例である。ＣＰＵモジュール１００は、支援／監視装置２０から取得したメッセージと、ＩＯモジュール１２０を通じて取得した入力データとに基づいて、被制御機器４０への制御データを生成して、ＩＯモジュール１２０に出力する。ＩＯモジュール１２０は、ＣＰＵモジュール１００から取得した制御データに基づいて、被制御機器４０に制御信号を出力する。
【００２４】
ＣＰＵモジュール１００は、支援／監視装置２０から指定されたイベントの検出条件に従って、イベントを検出する。例えば、ＣＰＵモジュール１００は、検出条件で定められる変数の値が検出条件で定められる検出閾値を超える場合に、イベントが発生したと判断して、内部のイベント状態変数を「発生中」に設定して、イベントログデータに格納して支援／監視装置２０に送信する。これにより、ユーザはイベントが発生したことを認識することができる。
【００２５】
ＣＰＵモジュール１００は、検出条件を更新する旨の指示を支援／監視装置２０から受信した場合、新たな検出条件と現在の検出条件とを比較して、現在の検出条件のうち、検出閾値等の条件に変更のある検出条件と、変更のない検出条件とを抽出する。そして、ＣＰＵモジュール１００は、変更のある検出条件に対応するイベント状態変数の値を初期化する一方、変更されない検出条件に対応するイベント状態変数については、その値を初期化することなく、保持する。これにより、現在の検出条件から変更がないイベントを継続的に検出することができる。
【００２６】
具体的には、検出条件の変更がないイベントが、検出条件の更新指示前から発生している場合を取り上げて説明する。もし、更新指示に応じて全てのイベント状態変数を初期化すると、検出条件に変更がないイベントのイベント状態変数が、更新直後に「発生中」に変化し得る。そのため、ユーザは、監視装置で収集されたイベントログデータを解析するときに、更新前後のイベント状態変数や検出条件の更新内容等に基づいて、本当にイベントが新たに発生したのか、既に発生していたイベントが検出条件の更新処理に伴って検出されたのかを解析する必要が生じる。これに対し、ＣＰＵモジュール１００によれば、上述したように、検出条件に変更がないイベントのイベント状態変数の値を初期化せずに保持するので、当該イベントを連続的に監視することが可能になる。
【００２７】
図２は、ＣＰＵモジュール１００の機能構成を概略的に示す。ＣＰＵモジュール１００は、制御部２００と、データメモリ部２２０と、ワークメモリ部２１０と、入出力部２４０と、不揮発性メモリ部２８０と、通信部２７０と、バス２９０とを備える。制御部２００は、検出部２０２と条件更新部２０４とを有する。
【００２８】
制御部２００は、ワークメモリ部２１０、データメモリ部２２０、入出力部２４０、不揮発性メモリ部２８０、及び通信部２７０と、バス２９０を通じて接続される。制御部２００は、バス２９０を通じて、ワークメモリ部２１０、データメモリ部２２０、入出力部２４０、不揮発性メモリ部２８０、及び通信部２７０と互いにデータを送受信する。
【００２９】
制御部２００は、プロセッサであってよい。制御部２００は、マイクロコントローラであってよい。制御部２００は、中央処理装置（ＣＰＵ）、ＲＯＭ、ＲＡＭ等を含む半導体集積回路で構成される。不揮発性メモリ部２８０は、システムプログラム及び制御アプリケーションプログラムを格納する。ＣＰＵモジュール１００は、システムプログラムが不揮発性メモリ部２８０に書き込まれた状態で出荷されてよい。
【００３０】
制御アプリケーションプログラムは、制御システム１０のユーザによって提供される。制御アプリケーションプログラムは、支援／監視装置２０からＣＰＵモジュール１００に提供されて、ＣＰＵモジュール１００の不揮発性メモリ部２８０に書き込まれる。ＣＰＵモジュール１００が起動すると、制御部２００はブート処理中に、不揮発性メモリ部２８０に書き込まれたシステムプログラム及び制御アプリケーションプログラムをロードする。なお、不揮発性メモリ部２８０は、システムプログラムを格納するシステム用メモリとは別に、制御アプリケーションプログラムを格納するアプリケーション用メモリとを有してよい。
【００３１】
制御部２００は、ＣＰＵモジュール１００における主処理を担う。例えば、制御部２００は、制御アプリケーションプログラムに従って、ＩＯモジュール１２０から取得した入力データの処理や、入力データに基づいてＩＯモジュール１２０に対する制御データを生成する処理を行う。また、制御部２００は、システムプログラムに従って、実行するべき制御アプリケーションプログラムのタスクを決定する処理、被制御機器４０から入力データを取得する処理、制御アプリケーションプログラムを実行することにより生成された被制御機器４０に対する制御データを被制御機器４０へ出力するための処理、及び、支援／監視装置２０との間でメッセージを送受信するための処理を行う。
【００３２】
入出力部２４０は、ＩＯモジュール１２０との間のデータの入出力を担う。入出力部２４０は、ＩＯモジュール１２０に制御データを出力する。例えば、入出力部２４０は、データメモリ部２２０に格納された制御データを、ＩＯモジュール１２０に出力する。また、入出力部２４０は、ＩＯモジュール１２０から入力データを取得する。入出力部２４０から取得した入力データは、データメモリ部２２０に格納される。このように、データメモリ部２２０は、被制御機器４０との間のＩＯデータを格納する。
【００３３】
制御部２００は、データメモリ部２２０に格納されている入力データを読み出す。制御部２００は、制御アプリケーションプログラムに従って、入力データに基づいて制御データを生成する。制御部２００は、生成した制御データを、データメモリ部２２０に格納する。入出力部２４０は、データメモリ部２２０に格納された制御データをＩＯモジュール１２０に出力する。
【００３４】
ワークメモリ部２１０は、制御アプリケーションプログラムが演算に用いる変数である制御用内部変数を格納する。制御部２００は、制御アプリケーションプログラムに従って、ワークメモリ部２１０に格納された制御用内部変数を用いて処理を行う。制御用内部変数は、制御アプリケーションプログラムの動作パラメータを定める変数であってよい。制御用内部変数は、制御アプリケーションプログラムの状態等を表す変数であってよい。制御部２００は、制御アプリケーションプログラムに従って動作して、ワークメモリ部２１０に格納されている制御用内部変数を更新してよい。
【００３５】
通信部２７０は、支援／監視装置２０との通信を担う。通信部２７０は、支援／監視装置２０からのメッセージを受信して、受信したメッセージを制御部２００に出力する。また、通信部２７０は、支援／監視装置２０へのメッセージを制御部２００から受信して、受信したメッセージを支援／監視装置２０に送信する。支援／監視装置２０に送信されるメッセージは、被制御機器４０の制御に関するイベントの発生状態を示す情報を含む。
【００３６】
ワークメモリ部２１０及びデータメモリ部２２０は、揮発性のメモリであってよい。ワークメモリ部２１０及びデータメモリ部２２０は、ＳＲＡＭ等であってよい。ワークメモリ部２１０は、システムプログラム用の制御用内部変数を格納するワークメモリとは別に、制御アプリケーションプログラムの制御用内部変数を格納するワークメモリとを有してよい。
【００３７】
不揮発性メモリ部２８０はまた、被制御機器４０の制御に関するイベントを検出するための検出条件を示すデータファイルを格納する。検出条件を示すデータは、支援／監視装置２０からＣＰＵモジュール１００に提供されて、不揮発性メモリ部２８０に格納される。制御部２００は、ＣＰＵモジュール１００がＩＯモジュール１２０を制御中において、支援／監視装置２０から受信したイベント設定データに従って、イベント検出条件を更新することができる。
【００３８】
イベントの検出条件としては、制御用内部変数についての検出条件、入力データについての検出条件、制御データについての検出条件等を含む。制御部２００は、制御用内部変数が検出条件を満たす場合に、イベントの発生を検出する。また、制御部２００は、入力データが検出条件を満たす場合に、イベントを検出する。また、制御部２００は、制御データが検出条件を満たす場合に、イベントを検出する。検出条件は、入力データ、制御データ及び制御用内部変数のうちの２つ以上を含んでよい。
【００３９】
データメモリ部２２０はまた、制御部２００が検出したイベントのログデータを格納する。通信部２７０は、制御部２００により検出されたイベントを、支援／監視装置２０に送信する。例えば、制御部２００は、データメモリ部２２０に格納されているイベントログデータを読み出して、読み出したイベントログデータを、通信部２７０を通じて支援／監視装置２０に送信してよい。
【００４０】
ＣＰＵモジュール１００におけるイベントの検出条件の更新に関する動作について説明する。検出部２０２は、被制御機器４０の制御に関するイベントを検出するための予め定められた検出条件を繰り返し評価することにより、イベントを検出する。条件更新部２０４は、現在の検出条件を新たな検出条件に更新する場合に、現在の検出条件のうち、条件に変更が無い第１の検出条件と、条件に変更がある第２の検出条件とを抽出する。条件更新部２０４は、第１の検出条件により検出されるイベントに関する情報を保持する。一方、条件更新部２０４は、第２の検出条件により検出されるイベントに関する情報を初期化する。
【００４１】
一例として、イベントに関する情報は、検出条件の評価結果を示す。例えば、イベントに関する情報は、検出条件を構成する条件式の論理値を示す。当該論理値がＴＲＵＥの場合、検出条件が満たされたことを示し、論理値がＦＡＬＳＥの場合、検出条件が満たされていないことを示す。
【００４２】
一例として、イベントに関する情報は、検出条件により検出されるイベントの状態を示す。例えば、イベントに関する情報は、イベントが発生しているか否かを示す。具体的には、イベントに関する情報は、検出条件を構成する条件式の論理値がＴＲＵＥの場合、イベントが発生していることを示し、検出条件を構成する条件式の論理値がＦＡＬＳＥの場合、イベントが発生していないことを示す。
【００４３】
検出部２０２は、検出条件を繰り返し評価することにより、イベントの状態の遷移を検出する。データメモリ部２２０は、検出部２０２がイベントの状態が遷移したことを検出した場合に、当該遷移が生じたことを記憶する。データメモリ部２２０は、イベント記憶部の一例である。
【００４４】
条件更新部２０４は、現在の検出条件を新たな検出条件に更新する場合に、現在の検出条件のうち他の検出条件の評価結果を用いた条件式を含む検出条件について、条件式に変更がない場合であっても、当該他の検出条件に変更がある場合には、条件式を含む検出条件を第２の検出条件として抽出する。
【００４５】
検出条件は、データメモリ部２２０、ワークメモリ部２１０、及び不揮発性メモリ部２８０の少なくとも１つに記憶される。本実施形態では、データメモリ部２２０を検出条件記憶部の一例として説明する。
【００４６】
データメモリ部２２０は、互いに異なる検出条件を記憶することができる第１の記憶領域及び第２の記憶領域を有する。現在の検出条件は、第１の記憶領域及び第２の記憶領域のうちの一方の記憶領域に記憶され、検出部２０２は、当該一方の記憶領域を参照して、イベントを検出するための検出条件を繰り返し評価する。ここで、検出条件を更新する場合に、条件更新部２０４は、現在の検出条件に対して新たな検出条件の少なくとも一部を反映した検出条件を、第１の記憶領域及び第２の記憶領域のうち他方の記憶領域に記憶させ、検出部２０２が参照する記憶領域を、一方の記憶領域から他方の記憶領域に切り替える。
【００４７】
具体的には、第１の記憶領域及び第２の記憶領域は、複数の検出条件のそれぞれが有効であるか否かを示す値を記憶する有効設定領域を含み、検出部２０２は、有効設定領域に有効である旨を示す値が記憶される検出条件を評価する。検出部２０２は、有効設定領域に無効である旨を示す値が記憶される検出条件を評価しない。ここで、新たな検出条件に更新する場合に、条件更新部２０４は、当該他方の記憶領域の有効設定領域において、第２の検出条件が有効でない旨を示す値を記憶させるとともに、第１の検出条件が有効である旨を示す値を記憶させる。そして、条件更新部２０４は、検出部２０２が参照する記憶領域を、一方の記憶領域から他方の記憶領域に切り替える。これにより、変更がない検出条件によるイベントの検出動作を継続しつつ、変更がある検出条件によるイベントの検出動作を一括して停止することができる。
【００４８】
条件更新部２０４は、新たな検出条件に更新する場合に、現在の検出条件から削除される第３の検出条件を抽出する。そして、条件更新部２０４は、検出部２０２が参照する記憶領域を、一方の記憶領域から他方の記憶領域に切り替える前に、他方の記憶領域の有効設定領域において、第３の検出条件が有効でない旨を示す値を記憶させる。これにより、変更がない検出条件によるイベントの検出動作を継続しつつ、削除される検出条件によるイベントの検出動作と、変更がある検出条件によるイベントの検出動作とを、一括して停止することができる。
【００４９】
図３は、支援／監視装置２０において設定されるイベント設定データの一例を示す。イベント設定データは、イベント番号、イベント名、検出条件、及び周期の情報を含む。支援／監視装置２０は、ユーザが編集可能なように、検出条件データをテーブル形式で表示する。
【００５０】
「イベント番号」は、イベントを識別する値である。「イベント名」は、イベントに付与される名前を示す。「検出条件」は、１つ又は複数の条件式を含む検出条件を文字列で記したものである。例えば、検出条件は、１つ又は複数の等式、不等式又は論理式を含む。
【００５１】
図示されるように、イベントの検出条件は、イベント検出用変数を用いた１以上の条件式で設定される。イベント番号１〜３に示す検出条件は、単一のイベント検出用変数を用いた単一の条件式で表される。イベント番号４〜５に示す検出条件は、他の検出条件の評価結果を用いた条件式で表される。各条件式の評価結果は、論理値である真（ＴＲＵＥ）又は偽（ＦＡＬＳＥ）として得られる。
【００５２】
例えば、イベント番号１の検出条件は、「Ｖａｒ０１＝ＦＡＬＳＥ」という条件式を１つ含む。この検出条件は、イベント検出用変数であるＶａｒ０１の値がＦＡＬＳＥである場合に、イベント名「イベントＡ」のイベントが発生していることを示す。Ｖａｒ０１は、データメモリ部２２０に格納された入力データ及び制御データ、又は、ワークメモリ部２１０に格納されている制御用内部変数等の変数を示す。また、イベント番号４の検出条件は、イベント番号１の検出条件の評価結果と、イベント番号２の検出条件の評価結果とのＡＮＤ結合で与えられる。この検出条件は、イベント番号１の条件式及びイベント番号２の条件式がいずれもＴＲＵＥである場合に、イベント名「イベントＤ」のイベントが生じていることを示す。
【００５３】
「周期」は、イベントの検出周期を示す。各イベントは、互いに異なる周期で検出することができる。
【００５４】
支援／監視装置２０において、ユーザは、支援／監視装置２０のイベント設定ツール機能を通じてイベント設定データを編集する。支援／監視装置２０は、ユーザにより編集されたイベント番号、検出条件及び周期を含むイベント設定データをＣＰＵモジュール１００に送信する。
【００５５】
ＣＰＵモジュール１００において、ワークメモリ部２１０及びデータメモリ部２２０内におけるイベント検出用変数のアドレスを示すアドレス情報は、不揮発性メモリ部２８０に記憶されている。検出部２０２は、当該アドレス情報が示すアドレスを参照してイベント検出用変数の値を取得して、各検出条件に含まれる条件式を評価する。
【００５６】
図４は、制御部２００において行うイベント検出処理を概略的に示す。
【００５７】
データメモリ部２２０には、入力データ及び制御データの現在の値が記憶されている。また、ワークメモリ部２１０には、制御用変数の現在の値が記憶されている。検出部２０２は、処理４４０において、データメモリ部２２０やワークメモリ部２１０に記憶されている値のうち、イベント設定データによって指定されたイベント検出用の値を、検出条件に含まれる条件式に適用して、条件式を評価することにより、イベント状態を示す今回評価結果を得る。検出部２０２は、処理４４０により得た今回評価結果と、前回の評価で得られた前回評価結果とを比較する処理４５０を行う。検出部２０２は、処理４５０によって今回評価結果と前回評価結果とが異なる場合、イベントログ４６０を生成して、データメモリ部２２０に格納する。例えば、検出部２０２は、前回評価結果がＦＡＬＳＥであった場合において、今回評価結果がＴＲＵＥであるときは、イベント番号と、現在時刻と、「発生」を示すイベント状態とを含むイベントログ４６０を生成して、データメモリ部２２０に格納する。また、検出部２０２は、前回評価結果がＴＲＵＥであった場合において、今回評価結果がＦＡＬＳＥであるときは、イベント番号と、現在時刻と、「未発生」を示すイベント状態とを含むイベントログ４６０を生成して、データメモリ部２２０に格納する。
【００５８】
なお、本実施形態において、検出部２０２が検出条件に基づいてイベントを検出する動作や、条件更新部２０４が検出条件を更新する場合の動作を主として説明する。ここで、「検出条件を更新する」とは、例えば、複数のイベント番号に対応する複数の検出条件のうちの少なくとも１つの検出条件を変更又は削除する場合、又は、新たなイベント番号に対応する検出条件を追加する場合をいう。支援／監視装置２０においてユーザが検出条件を変更した場合、支援／監視装置２０は、全イベントのイベント設定データと、検出条件の更新を指示するメッセージとを、ＣＰＵモジュール１００に送信する。
【００５９】
図５は、イベント検出用の管理データ５００のデータ構造を模式的に示す。管理データ５００は、データメモリ部２２０又はワークメモリ部２１０に記憶される。
【００６０】
管理データ５００は、監視イベント管理領域番号５０１と、監視イベント管理領域５１０及び監視イベント管理領域５１１と、イベント検出条件管理データテーブル５２０とを含む。一例として、管理データ５００は、１０２４個のイベント検出条件管理データテーブル５２０を有する。
【００６１】
監視イベント管理領域番号５０１の値は、検出部２０２がイベント検出に用いるデータが記憶されている監視イベント管理領域を示す。監視イベント管理領域番号５０１の値が０の場合、検出部２０２は、監視イベント管理領域５１０に記憶されているデータを用いて、イベントを検出する。監視イベント管理領域番号５０１の値が１の場合、検出部２０２は、監視イベント管理領域５１１に記憶されているデータを用いて、イベントを検出する。
【００６２】
監視イベント管理領域５１０は、イベント検出条件管理数５３０と、監視イベント情報５４０とを含む。イベント検出条件管理数５３０には、イベントの検出条件の数Ｎを示す値が記憶される。監視イベント管理領域５１０は、イベント検出条件管理数５３０で示される数の監視イベント情報５４０を含む。監視イベント情報５４０は、それぞれ異なるイベントに対応する。なお、監視イベント管理領域５１１は、監視イベント管理領域５１０と同様のデータ構造を有するので、そのデータ構造の詳細については説明を省略する。
【００６３】
監視イベント情報５４０−１は、監視有効フラグ５７０と、イベント検出条件管理データテーブル番号５７１とを有する。監視有効フラグ５７０は、対応するイベントの検出を有効とするか無効とするかを示す。イベント検出条件管理データテーブル番号５７１は、後述するイベント検出条件管理データテーブル５２０の番号を示す。監視有効フラグ５７０の値が「有効」を示す１の場合、検出部２０２は、対応するイベントの検出を行う。監視有効フラグ５７０の値が「無効」を示す０の場合、検出部２０２は、対応するイベントの検出を行わない。なお、監視イベント情報５４０−２〜監視イベント情報５４０−Ｎは、監視イベント情報５４０−１と同様のデータ構造を有するので、そのデータ構造の詳細については説明を省略する。
【００６４】
イベント検出条件管理データテーブル５２０−１は、データ登録フラグ５５１と、イベント番号５５２と、イベントタイプ５５３と、イベント状態５５４と、イベント発生／復旧時の変数値５５５と、論理個数５５６と、論理データ５６０とを有する。
【００６５】
データ登録フラグ５５１は、対応する記憶領域にイベントが登録されているか否かを示す。データ登録フラグ５５１の値が１の場合、対応する記憶領域にイベントが登録されていることを示す。データ登録フラグ５５１の値が０の場合、対応する記憶領域にイベントが登録されていないことを示す。すなわち、この記憶領域が空きであることを示す。
【００６６】
イベント番号５５２には、イベント番号が記憶される。イベント番号５５２には、支援／監視装置２０から受信したイベント設定データに含まれるイベント番号が記憶されてよい。
【００６７】
イベントタイプ５５３は、条件式を構成する被演算子に対する演算子を示す。例えば、イベントタイプ５５３は、「＝」、「＞」、「＜」、「≧」、「≦」等の関係演算子や「ＡＮＤ」及び「ＯＲ」等の論理演算子を識別する情報を示す。
【００６８】
イベント状態５５４は、イベントが発生状態にあるか否かを示す。イベント状態５５４の値が１の場合、イベントが発生していることを示す。イベント状態５５４の値が０の場合、イベントが発生していないことを示す。イベント発生／復旧時の変数値５５５には、イベントが発生した場合の検出条件に含まれる変数の値が記憶される。例えば、図３のイベント番号１に対応する検出条件に含まれるＶａｒ０１の値が記憶される。
【００６９】
論理個数５５６には、条件式で用いられる被演算子の数ｎが記憶される。論理データ５６０には、条件式で用いられる被演算子を示す情報が記憶される。論理データ５６０に記憶される情報は、条件式で用いられる検出閾値等の数値、変数が記憶されているアドレス、イベント番号等を含む。例えば、論理データ５６０には、イベント番号１の条件式に含まれる「Ｖａｒ０１」の変数が記憶されているアドレスと、「ＦＡＬＳＥ」の値とが記憶される。なお、イベント検出条件管理データテーブル５２０−２〜イベント検出条件管理データテーブル５２０−１０２３は、イベント検出条件管理データテーブル５２０−１と同様のデータ構造を有するので、そのデータ構造の詳細については説明を省略する。
【００７０】
なお、単一のイベントの検出条件は、複数のイベント検出条件管理データテーブル５２０の組み合わせにより設定されてよい。例えば、図３のイベント番号５の検出条件を、２つのイベント検出条件管理データテーブル５２０により設定してよい。一例として、図３のイベント番号５の検出条件を、イベント番号１とイベント番号２とのＯＲ演算を表す第１のイベント検出条件管理データテーブル５２０を生成するとともに、当該イベント検出条件管理データテーブル５２０に割り当てたイベント番号とイベント番号２とのＡＮＤ演算を表す第２のイベント検出条件管理データテーブル５２０とを生成してよい。この場合、図３のイベント番号５のイベントは、第２のイベント検出条件管理データテーブル５２０の検出条件の評価結果によって表される。
【００７１】
図６は、監視周期管理情報５８０のデータ構造を示す。監視周期管理情報５８０は、監視周期管理数５８１と、周期情報５８２とを含む。監視周期管理数５８１には、周期情報の数Ｍを示す値が記憶される。監視周期管理情報５８０は、監視周期管理数５８１で示される個数の周期情報５８２を含む。
【００７２】
周期情報５８２−１は、周期５９０と、イベント管理数５９１と、イベント番号５９２とを含む。周期５９０には、周期を示す数値が記憶される。イベント管理数５９１は、周期５９０で示される周期でイベントを検出する対象となるイベントの数ｍを示す。イベント番号５９２には、イベント管理数５９１で示される数のイベントのイベント番号が記憶される。
【００７３】
なお、周期情報５８２−２〜周期情報５８２−Ｍは、周期情報５８２−１と同様のデータ構造を有するので、そのデータ構造の詳細については説明を省略する。また、検出周期の情報は、図６に示すデータ構造とは異なるデータ構造で管理されてよい。例えば、検出周期の情報は、イベント検出条件管理データテーブル５２０でイベント毎に管理されてよい。
【００７４】
図７は、制御部２００において検出部２０２がイベントを検出する処理を示すフローチャートである。Ｓ６００において、検出部２０２は、現在の日時情報を取得する。続いて、Ｓ６０２において、検出部２０２は、検出対象のイベントを選択する。具体的には、検出部２０２は、監視周期管理情報５８０を参照して、現在のタクトでイベントを検出するべきイベント番号を特定する。
【００７５】
続いて、Ｓ６０４からＳ６２０におけるイベント検出のループ処理を行う。このループ処理では、Ｓ６０２で選択したイベントの中から、ループ毎に異なるイベントの検出条件を選択する。
【００７６】
Ｓ６０６において、検出部２０２は、選択したイベントのイベント検出が有効に設定されているか否かを判断する。検出部２０２は、監視イベント情報５４０の監視有効フラグ５７０の値を参照して、Ｓ６０６の判断を行う。検出条件が無効の場合、「イベント検出」のループ処理における次のイベントの処理に進む。検出条件が有効の場合、Ｓ６１０に進む。
【００７７】
Ｓ６１０において、検出部２０２は、検出条件に含まれる条件式を評価して評価結果を算出する。検出部２０２は、イベント検出条件管理データテーブル５２０を参照して、検出条件の評価結果を算出する。
【００７８】
続いて、Ｓ６１２において、検出部２０２は、イベント検出条件管理データテーブル５２０のイベント状態５５４に記憶されている現在値を読み出すとともに、Ｓ６１０で得られた評価結果をイベント状態５５４に記憶する。
【００７９】
Ｓ６１４において、検出部２０２は、イベント状態が変化したか否かを判断する。具体的には、検出部２０２は、Ｓ６１２でイベント状態５５４から読み出した値と、Ｓ６１０により得られた評価結果とが異なる場合に、イベント状態が変化したと判断する。また、検出部２０２は、Ｓ６１２でイベント状態５５４から読み出した値と、Ｓ６１０により得られた評価結果とが一致する場合に、イベント状態が変化していないと判断する。イベント状態が変化していない場合、「イベント検出」のループ処理における次のイベントの処理に進む。イベント状態が変化した場合、Ｓ６１６に進む。
【００８０】
Ｓ６１６において、検出部２０２は、対応する検出条件に含まれる条件式で用いられる変数の値をイベント発生／復旧時の変数値５５５に記憶する。続いて、検出部２０２は、イベント番号と、イベントの状態と、現在の日時情報とを含むイベントログデータを生成する。イベントの状態は「発生」又は「未発生」を示す。Ｓ６１０により得られた評価結果がＴＲＵＥの場合イベントが発生したことを示す。Ｓ６１０により得られた評価結果がＦＡＬＳＥの場合、発生していたイベントが終了したことを示す。例えば、評価結果がＦＡＬＳＥの場合、異常イベントが復旧したことを示す。
【００８１】
図８は、検出条件を変更する処理を示すフローチャートである。本フローチャートの処理は、ＣＰＵモジュール１００が、新たなイベント設定データと検出条件の更新を指示するメッセージを支援／監視装置２０から受信した場合に開始される。ここでは、管理データ５００において、現在のイベント設定データに基づく情報が監視イベント管理領域５１０及びイベント検出条件管理データテーブル５２０に記憶されているものとする。すなわち、検出部２０２は、現在までの間、監視イベント管理領域５１０に記憶された情報に従って、イベントの検出処理を行っていたとする。また、監視イベント管理領域５１０に記憶される情報を更新するために、監視イベント管理領域５１０と同内容の情報が監視イベント管理領域５１１に記憶されているとする。
【００８２】
Ｓ８０２において、条件更新部２０４は、現在のイベント設定データと、新たに受信したイベント設定データとを照合して、削除対象、追加対象、変更対象、及び変更対象外のイベントを特定する。具体的には、条件更新部２０４は、現在のイベント設定データに含まれるイベント番号のうち、新たなイベント設定データに含まれないイベント番号を抽出することにより、削除イベント番号リストを生成する。また、条件更新部２０４は、新たなイベント設定データに含まれるイベント番号のうち、現在のイベント設定データに含まれないイベント番号を抽出することにより、追加イベント番号リストを生成する。ここで、現在のイベント設定データ及び新たなイベント設定データの双方に同一のイベント番号が含まれる場合、条件更新部２０４は、新たなイベント設定データで指定された条件式と、現在のイベント設定データで指定された条件式とを照合して、条件式が不一致の場合、変更対象イベント番号リストに当該イベント番号を追加する。一方、条件式が一致する場合、条件更新部２０４は、変更対象外イベント番号リストに当該イベント番号を追加する。
【００８３】
また、変更対象外イベント番号リストに含まれるイベント番号のうち、対応する検出条件を構成する条件式が他のイベント番号を含む場合、条件更新部２０４は、当該他のイベント番号が変更対象イベント番号リストに含まれるか否かを判断する。他のイベント番号が変更対象イベント番号リストに含まれる場合、条件更新部２０４は、変更対象外イベント番号リストから削除するとともに、変更対象イベント番号リストに追加する。例えば、図３のイベント番号４に対応する検出条件の条件式「イベント番号１  ＡＮＤ  イベント番号２」自体に変更がない場合において、イベント番号１の条件式に変更があった場合、条件更新部２０４は、変更対象外イベント番号リストからイベント番号４を削除して、変更対象イベント番号リストにイベント番号４を追加する。
【００８４】
Ｓ８０２の処理が終了すると、Ｓ８０３において、Ｓ８０２の処理が成功したか否かを判断する。不成功の場合はＳ８１４に進み、成功した場合、Ｓ８０４に進む。
【００８５】
Ｓ８０４において、条件更新部２０４は、変更対象イベント及び削除対象イベントの監視を停止する処理を行う。具体的には、条件更新部２０４は、監視イベント管理領域５１１における各監視イベント情報５４０について、イベント検出条件管理データテーブル番号５７１が示すイベント検出条件管理データテーブル５２０に記憶されているイベント番号が、変更対象イベント番号リスト又は削除対象イベント番号リストに含まれる場合に、当該監視イベント情報５４０の監視有効フラグ５７０の値を０に変更する。
【００８６】
そして、条件更新部２０４は、監視イベント管理領域番号５０１の値を、監視イベント管理領域５１１を示す値に変更する。この処理の完了以後、検出部２０２は、監視イベント管理領域５１１に記憶された情報に基づいてイベントを検出するので、変更対象イベント番号リスト及び削除対象イベント番号リストに含まれるイベント番号に対応するイベントの検出は行われなくなる。一方、変更対象外イベント番号リストに含まれるイベント番号に対応するイベントの検出は継続して行われる。
【００８７】
Ｓ８０４の処理が終了すると、Ｓ８０５において、Ｓ８０４の処理が成功したか否かを判断する。不成功の場合はＳ８１４に進み、成功した場合、Ｓ８０６に進む。
【００８８】
Ｓ８０６において、条件更新部２０４は、削除対象イベントの監視周期情報を抹消し、追加対象イベントの監視周期情報を登録する。具体的には、条件更新部２０４は、監視周期管理情報５８０において、削除対象イベント番号リストに含まれるイベント番号に一致する値を記憶したイベント番号５９２を削除する。また、条件更新部２０４は、監視周期管理情報５８０において、追加対象イベント番号リストに含まれる各イベント番号について、新たなイベント設定データで指定された周期に対応する周期情報に、各イベント番号を追加する。
【００８９】
Ｓ８０６の処理が終了すると、Ｓ８０７において、Ｓ８０６の処理が成功したか否かを判断する。不成功の場合はＳ８１４に進み、成功した場合、Ｓ８０８に進む。
【００９０】
Ｓ８０８において、条件更新部２０４は、削除対象イベント、追加対象イベント及び変更対象イベントについて、イベント検出条件管理データテーブル５２０に対するイベント設定情報の追加及び更新処理を行う。具体的には、条件更新部２０４は、削除対象イベント番号リストに含まれるイベント番号を記憶しているイベント検出条件管理データテーブル５２０のデータ登録フラグ５５１を０に変更する。
【００９１】
また、条件更新部２０４は、変更対象イベント番号リストに含まれるイベント番号を記憶しているイベント検出条件管理データテーブル５２０を初期化する。具体的には、条件更新部２０４は、イベント状態５５４の値を０にし、イベント発生／復旧時の変数値５５５の値をＮＵＬＬにする。また、新たなイベント設定データで指定された新たな検出条件を構成する条件式に従って、論理個数５５６、論理データ５６０及びイベントタイプ５５３を変更する。
【００９２】
また、条件更新部２０４は、追加対象イベント番号リストに含まれるイベント番号に対応するイベント設定データに基づいて、イベント検出条件管理データテーブル５２０にイベント設定情報を追加する。具体的には、条件更新部２０４は、データ登録フラグ５５１の値が０のイベント検出条件管理データテーブル５２０を検索して、検索されたイベント検出条件管理データテーブル５２０において、データ登録フラグ５５１の値を１にし、追加対象イベント番号リストのイベント番号をイベント番号５５２に記憶し、イベント状態５５４の値を０にし、イベント発生／復旧時の変数値５５５の値をＮＵＬＬにする。また、新たなイベント設定データで指定された対応する検出条件を構成する条件式に従って、論理個数５５６、論理データ５６０及びイベントタイプ５５３を設定する。
【００９３】
Ｓ８１０において、条件更新部２０４は、追加対象イベント及び変更対象イベントについて、監視イベント管理領域５１０における監視イベント情報５４０に対し、追加及び更新処理を行う。具体的には、条件更新部２０４は、監視イベント管理領域５１１と同一の情報を監視イベント管理領域５１０に記憶させるとともに、監視イベント管理領域５１０における監視イベント情報５４０において、変更対象イベントについての情報変更と、追加対象イベントの追加とを行う。より具体的には、監視イベント管理領域５１０における監視イベント情報５４０のうち、対応するイベント番号が変更対象イベント番号リストに含まれる監視イベント情報５４０を選択して、当該監視イベント情報５４０の監視有効フラグ５７０の値を１に変更する。
【００９４】
また、条件更新部２０４は、Ｓ８０８において新たなイベントの検出条件を追加したイベント検出条件管理データテーブル５２０の番号と、監視有効フラグ５７０の値が１の情報とを、監視イベント情報５４０に追加する。
【００９５】
Ｓ８１０の処理が終了すると、Ｓ８１１において、Ｓ８１０の処理が成功したか否かを判断する。不成功の場合はＳ８１４に進み、成功した場合、Ｓ８１２に進む。
【００９６】
Ｓ８１２において、条件更新部２０４は、更新及び追加した監視イベント情報に基づく監視を開始するように、管理データ５００を設定する。具体的には、条件更新部２０４は、監視イベント管理領域番号５０１の値を、監視イベント管理領域５１０を示す値に変更する。この処理の完了以後、検出部２０２は、監視イベント管理領域５１０に記憶された情報に基づいてイベントを検出するので、変更対象イベント番号リスト及び削除対象イベント番号リストの一方に含まれるイベント番号に対応するイベントの検出が開始される。一方、変更対象外イベント番号リストに含まれるイベント番号に対応するイベントの検出は依然として継続される。
【００９７】
Ｓ８１２の処理が終了すると、Ｓ８１３において、Ｓ８１２の処理が成功したか否かを判断する。不成功の場合はＳ８１４に進み、成功した場合、フローチャートの処理を終了する。Ｓ８１４においては、不成功の原因となった処理に対するエラー処理を行った後、フローチャートの処理を終了する。
【００９８】
図９は、支援／監視装置２０が表示するイベント一覧情報を示す。支援／監視装置２０は、ＣＰＵモジュール１００からイベントログデータをメッセージで受信する。支援／監視装置２０は、設定したイベントログデータを、テーブル形式で一覧表示する。支援／監視装置２０は、イベントログデータに基づいて、「イベント名」、「発生／復旧」、及び「時刻」を表示する。
【００９９】
イベント名は、イベントの発生状態が変化したイベント番号に対応するイベント名である。支援／監視装置２０は、イベントログデータに含まれるイベント番号に対応するイベント名を表示する。
【０１００】
「発生／復旧」は、イベント発生状態の変化種別を示す。イベントが発生していない状態からイベントが新たに発生した状態に変化した場合は「発生」が表示され、イベントが発生している状態からイベントが発生していない状態に変化した場合は「復旧」が表示される。支援／監視装置２０は、イベントログデータに含まれるイベント状態が「発生」の場合、「発生」を表示し、イベントログデータに含まれるイベント状態が「未発生」の場合、「復旧」を表示する。
【０１０１】
「時刻」は、イベントの発生状態の変化が検出された時刻を示す。支援／監視装置２０は、イベントログデータに含まれる時刻を表示する。
【０１０２】
図９に関連して、時刻「０３：２１：２２  ３４２」の後に、支援／監視装置２０のイベント設定ツールを通じて、ユーザが「イベントＤ」の条件式のみを変更する操作を行ったとする。この場合、支援／監視装置２０は、全イベントの検出条件を含むイベント設定データをＣＰＵモジュール１００に送信する。ＣＰＵモジュール１００において、条件更新部２０４は、管理データ５００における「イベントＤ」に対応するイベント検出条件管理データテーブル５２０のイベント状態５５４の値を初期化する一方、「イベントＢ」、「イベントＣ」及び「イベントＥ」に対応するイベント状態５５４には、「発生中」を示す値１を保持する。また、「イベントＡ」対応するイベント状態５５４には、「未発生」を示す値０を保持する。
【０１０３】
これにより、イベント設定ツールによる検出条件の更新直後において、「イベントＢ」、「イベントＣ」及び「イベントＥ」のイベント状態は「発生中」から変化していないと判断され得る。よって、イベント検出条件の変更直後に、「イベントＢ」、「イベントＣ」及び「イベントＥ」のイベントの「発生」が通知されることがない。このように、制御システム１０によれば、例えば検出条件の一部を更新した場合においても、検出条件に変更がないイベントについて、一貫性のあるイベント検出を行うことが可能になる。そのため、上述したように、検出条件の更新に伴ってユーザがイベントログを解析する手間を削減することができる。
【０１０４】
以上に説明したように、ＣＰＵモジュール１００によれば、検出条件に変更がないイベントのイベント状態の値を初期化せずに保持するので、当該イベントを連続的に監視することが可能になる。
【０１０５】
なお、一実施形態における制御システム１０は、制御装置としてＰＬＣを用いたＰＬＣシステムである。他の形態において、制御システムは、分散制御システム（ＤＣＳ）であり得る。
【０１０６】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更又は改良を加えることが可能であることが当業者に明らかである。その様な変更又は改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【０１０７】
特許請求の範囲、明細書、及び図面中において示した装置、システム、プログラム、及び方法における動作、手順、ステップ、及び段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、及び図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【符号の説明】
【０１０８】
１０  制御システム
２０  支援／監視装置
４０  被制御機器
１００  ＣＰＵモジュール
１２０  ＩＯモジュール
２００  制御部
２０２  検出部
２０４  条件更新部
２１０  ワークメモリ部
２２０  データメモリ部
２８０  不揮発性メモリ部
２４０  入出力部
２７０  通信部
２９０  バス
４４０、４５０  処理
４６０  イベントログ
５００  管理データ
５０１  監視イベント管理領域番号
５１０  監視イベント管理領域
５１１  監視イベント管理領域
５２０  イベント検出条件管理データテーブル
５３０  イベント検出条件管理数
５４０  監視イベント情報
５５１  データ登録フラグ
５５２  イベント番号
５５３  イベントタイプ
５５４  イベント状態
５５５  イベント発生／復旧時の変数値
５５６  論理個数
５６０  論理データ
５７０  監視有効フラグ
５７１  イベント検出条件管理データテーブル番号
５８０  監視周期管理情報
５８１  監視周期管理数
５８２  周期情報
５９０  周期
５９１  イベント管理数
５９２  イベント番号
【図１】
2019021061.tif 000003
【図２】
2019021061.tif 000004
【図３】
2019021061.tif 000005
【図４】
2019021061.tif 000006
【図５】
2019021061.tif 000007
【図６】
2019021061.tif 000008
【図７】
2019021061.tif 000009
【図８】
2019021061.tif 000010
【図９】
2019021061.tif 000011