(57)【特許請求の範囲】
【請求項１】
プラントの監視制御に用いられるログデータを不揮発性メモリに対して書き込み及び呼び出しを行う監視制御装置であって、
ログ格納要因発生により、ログデータを外部から収集するログ収集部、
及び上記不揮発性メモリにアドレス順に上記ログ収集部によって収集されたログデータを書き込むとともに上記不揮発性メモリから上記ログデータを呼び出すよう構成された不揮発性メモリコントローラを備え、
上記不揮発性メモリコントローラは、
上記ログ収集部によって収集されたログデータに付与するログナンバーを設定するログナンバー設定部と、
上記不揮発性メモリに書き込まれた上記ログナンバーのクリアを上記ログナンバー設定部に指示するクリア部とを有し、
上記クリア部のクリア指示に応じて、上記ログナンバー設定部により、ログデータ未格納を示す初期値を上記ログナンバーに設定し、
上記初期値以外の値を有する上記不揮発性メモリのログナンバーのみを上記初期値を設定したログナンバーで書き換えることを特徴とする監視制御装置。
【請求項２】
上記不揮発性メモリコントローラは、
電源オン時に上記不揮発性メモリから上記ログナンバーを呼び出すログナンバー呼び出し部と、
このログナンバー呼び出し部により呼び出された上記ログナンバーのうちの最古に書き込まれたログナンバーを決定する最古ログナンバー決定部とを有し、
上記最古ログナンバー決定部は、上記ログナンバー呼び出し部により呼び出された上記ログナンバーを順次比較して、値が最初に変化したログナンバーを上記最古に書き込まれたログナンバーとすることを特徴とする請求項１記載の監視制御装置。
【請求項３】
上記不揮発性メモリコントローラは、
電源オン時に上記不揮発性メモリから上記ログナンバーを呼び出すログナンバー呼び出し部と、
このログナンバー呼び出し部により呼び出された上記ログナンバーのうちの最古に書き込まれたログナンバーを決定する最古ログナンバー決定部とを有し、
上記最古ログナンバー決定部は、上記ログナンバー呼び出し部により呼び出された上記ログナンバーを２分探索法により比較して、値が変化した最小アドレスのログナンバーを上記最古に書き込まれたログナンバーとすることを特徴とする請求項１記載の監視制御装置。
【請求項４】
上記不揮発性メモリコントローラは、
電源オン時に上記不揮発性メモリから上記ログナンバーを呼び出すログナンバー呼び出し部と、
このログナンバー呼び出し部により呼び出された上記ログナンバーのうちの最古に書き込まれたログナンバーを決定する最古ログナンバー決定部とを有し、
上記不揮発性メモリへの書き込みに際しては、上記ログナンバーを上記不揮発性メモリのヘッダ領域に書き込むとともに、上記ログナンバーとともにログデータを構成するデータを上記不揮発性メモリのデータ領域に書き込み、
上記ログナンバー呼び出し部は、電源オン時に上記不揮発性メモリから上記ヘッダ領域のログナンバーをバーストモードで呼び出し、
上記最古ログナンバー決定部は、上記ログナンバー呼び出し部により呼び出された上記ログナンバーを順次比較して、値が最初に変化したログナンバーを上記最古に書き込まれたログナンバーとすることを特徴とする請求項１記載の監視制御装置。
【請求項５】
上記不揮発性メモリコントローラは、
電源オン時に上記不揮発性メモリから上記ログナンバーを呼び出すログナンバー呼び出し部と、
このログナンバー呼び出し部により呼び出された上記ログナンバーのうちの最古に書き込まれたログナンバーを決定する最古ログナンバー決定部とを有し、
上記不揮発性メモリへの書き込みに際しては、上記ログナンバーを上記不揮発性メモリのヘッダ領域に書き込むとともに、上記ログナンバーとともにログデータを構成するデータを上記不揮発性メモリのデータ領域に書き込み、
上記ログナンバー呼び出し部は、電源オン時に上記不揮発性メモリから上記ヘッダ領域のログナンバーをバーストモードで呼び出し、
上記最古ログナンバー決定部は、上記ログナンバー呼び出し部により呼び出された上記ログナンバーを複数個単位で比較して、値が変化した最小アドレスの単位内のログナンバーを順次比較して、値が最初に変化したログナンバーを上記最古に書き込まれたログナンバーとすることを特徴とする請求項１記載の監視制御装置。
【請求項６】
上記不揮発性メモリコントローラは、
電源オン時に上記不揮発性メモリから上記ログナンバーを呼び出すログナンバー呼び出し部と、
このログナンバー呼び出し部により呼び出された上記ログナンバーのうちの最古に書き込まれたログナンバーを決定する最古ログナンバー決定部とを有し、
上記不揮発性メモリへの書き込みに際しては、上記ログナンバーを上記不揮発性メモリのヘッダ領域に書き込むとともに、上記ログナンバーとともにログデータを構成するデータを上記不揮発性メモリのデータ領域に書き込み、
上記ログナンバー呼び出し部は、電源オン時に上記不揮発性メモリから上記ヘッダ領域のログナンバーをバーストモードで呼び出し、
上記最古ログナンバー決定部は、上記ログナンバー呼び出し部により呼び出された上記ログナンバーを複数個単位で２分探索法により比較して、値が変化した最小アドレスの単位内のログナンバーを順次比較して、値が最初に変化したログナンバーを上記最古に書き込まれたログナンバーとすることを特徴とする請求項１記載の監視制御装置。
【請求項７】
上記不揮発性メモリコントローラによる上記不揮発性メモリへのアクセス回数が、上記不揮発性メモリに予め設定されているアクセス回数の上限値に達した場合には、上記不揮発性メモリコントローラは、上記ヘッダ領域を上記不揮発性メモリ内で変更することを特徴とする請求項４〜請求項６のいずれかに記載の監視制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
プラントを監視制御するＣＰＵにより、不揮発性メモリへのログデータの書込み及び呼び出しを行う監視制御装置に関するものである。
【背景技術】
【０００２】
従来では、ＣＰＵがＥＥＰＲＯＭに対してＥＥＰＲＯＭ領域内の全データの読出しを行い、最古に書込んだログ記録領域を、各アドレスのデータ中の巡回認識用ビットから決定する方法が提案されている。この際、巡回認識ビットは、ＥＥＰＲＯＭにデータを上書きするごとに、それまでの巡回認識用データの反転値を書込む。（０→１を繰り返す。）（特許文献１参照）
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平９−２９３０２７号公報（第３〜６頁、図１）
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来法では、以下の問題点がある。従来法で用いられている巡回認識用ビット（本稿のログナンバーに相当）は、ＥＥＰＲＯＭにデータを上書きするごとに０→１を繰り返しており、データが未格納の場合を判別できず、データをクリアする際は、全データ領域にアクセスし、領域内のデータをクリアしており、非効率な方法となっている。
【０００５】
この発明は、上述のような課題を解決するためになされたものであり、ログデータの記録に不揮発性メモリを使用する場合に、効率よく、ログデータをクリアし、電源オン直後に最古に書込んだログデータ記録領域の決定を行うことができる監視制御装置を得ることを目的にする。
【課題を解決するための手段】
【０００６】
この発明に係わる監視制御装置においては、プラントの監視制御に用いられるログデータを不揮発性メモリに対して書き込み及び呼び出しを行う監視制御装置であって、ログ格納要因発生により、ログデータを外部から収集するログ収集部、及び不揮発性メモリにアドレス順にログ収集部によって収集されたログデータを書き込むとともに不揮発性メモリからログデータを呼び出すよう構成された不揮発性メモリコントローラを備え、不揮発性メモリコントローラは、ログ収集部によって収集されたログデータに付与するログナンバーを設定するログナンバー設定部と、不揮発性メモリに書き込まれたログナンバーのクリアをログナンバー設定部に指示するクリア部とを有し、クリア部のクリア指示に応じて、ログナンバー設定部により、ログデータ未格納を示す初期値をログナンバーに設定し、初期値以外の値を有する不揮発性メモリのログナンバーのみを初期値を設定したログナンバーで書き換えるものである。
【発明の効果】
【０００７】
この発明は、以上説明したように、プラントの監視制御に用いられるログデータを不揮発性メモリに対して書き込み及び呼び出しを行う監視制御装置であって、ログ格納要因発生により、ログデータを外部から収集するログ収集部、及び不揮発性メモリにアドレス順にログ収集部によって収集されたログデータを書き込むとともに不揮発性メモリからログデータを呼び出すよう構成された不揮発性メモリコントローラを備え、不揮発性メモリコントローラは、ログ収集部によって収集されたログデータに付与するログナンバーを設定
するログナンバー設定部と、不揮発性メモリに書き込まれたログナンバーのクリアをログナンバー設定部に指示するクリア部とを有し、クリア部のクリア指示に応じて、ログナンバー設定部により、ログデータ未格納を示す初期値をログナンバーに設定し、初期値以外の値を有する不揮発性メモリのログナンバーのみを初期値を設定したログナンバーで書き換えるので、ログデータの記録に不揮発性メモリを使用する場合に、全領域にアクセスする必要がなく、効率よくログデータをクリアすることができる。
【図面の簡単な説明】
【０００８】
【図１】この発明の実施の形態１による監視制御装置のＣＰＵによるＥＥＰＲＯＭへのアクセスを示す全体構成図である。
【図２】この発明の実施の形態１による監視制御装置のＲＯＭコントロールを示すブロック図である。
【図３】従来のＥＥＰＲＯＭのデータクリア方法を説明するための図である。
【図４】この発明の実施の形態１による監視制御装置のデータクリア方法を示す図である。
【図５】この発明の実施の形態２による監視制御装置の構成を示すブロック図である。
【図６】この発明の実施の形態２による監視制御装置のＥＥＰＲＯＭへのデータ書き込み方法（データ未格納領域ありの場合）を説明する図である。
【図７】この発明の実施の形態２による監視制御装置のＥＥＰＲＯＭへのデータ書き込み方法（データを上書きする場合）を説明する図である。
【図８】この発明の実施の形態２による監視制御装置の電源オン時の最古のデータのアドレス決定方法（未格納領域ありの場合）を示す図である。
【図９】この発明の実施の形態２による監視制御装置の電源オン時の最古のデータのアドレス決定方法（データが上書きされている場合）を示す図である。
【図１０】この発明の実施の形態３による監視制御装置の２分探索法を示すブロック図である。
【図１１】この発明の実施の形態３による監視制御装置の２分探索による決定方法を示す図である。
【０００９】
【図１２】この発明の実施の形態４による監視制御装置の構成を示すブロック図である。
【図１３】この発明の実施の形態４による監視制御装置のＥＥＰＲＯＭのデータ構造を示す図である。
【図１４】この発明の実施の形態４による監視制御装置のヘッダ領域２ビット単位読み込みによるログナンバーの比較を示す図である。
【図１５】この発明の実施の形態５による監視制御装置の構成を示すブロック図である。
【図１６】この発明の実施の形態５による監視制御装置のヘッダ領域１バイト単位読み込みによるログナンバーの比較を示す図である。
【図１７】この発明の実施の形態６による監視制御装置の構成を示すブロック図である。
【図１８】この発明の実施の形態６による監視制御装置の２分探索による決定方法を示す図である。
【図１９】この発明の実施の形態７による監視制御装置の構成を示すブロック図である。
【図２０】この発明の実施の形態７による監視制御装置のデータアクセスを示す図である。
【図２１】この発明の実施の形態７による監視制御装置のアクセス回数によるヘッダ領域の変更を示す図である。
【発明を実施するための形態】
【００１０】
実施の形態１．
図１は、この発明の実施の形態１による監視制御装置のＣＰＵによるＥＥＰＲＯＭへのアクセスを示す全体構成図である。
図１において、ＣＰＵ１は、ログデータを格納するＥＥＰＲＯＭ２（不揮発性メモリ）とのインターフェイスを形成するＲＯＭコントロール５と、ログ格納要因が発生したとき、外部からログを収集するログ収集６（ログ収集部）と、ＲＳ−２３２Ｃインターフェイス３に接続されるシリアルコントロール７とを有し、ＲＳ−２３２Ｃインターフェイス３を介してメンテナンスＰＣ４と接続されている。
なお、ＥＥＰＲＯＭ２のログデータの構造は、ログナンバーとデータ領域により構成され、ログナンバーは、データ領域にデータが格納されているか未格納であるかを示す役目をする。
【００１１】
図２は、この発明の実施の形態１による監視制御装置のＲＯＭコントロールを示すブロック図である。
図２において、２、５は図１におけるものと同一のものである。ＲＯＭコントロール５は、次のように構成されている。
ログデータ呼び出し部１１は、ＥＥＰＲＯＭ２からログデータを読み出す。ログナンバー呼び出し部１２は、ＥＥＰＲＯＭ２から電源オン時のログナンバーを読み出す。
最古データアドレス決定部１３（最古ログナンバー決定部）は、ログナンバー呼び出し部１２によって読み出されたログナンバーを基にして、電源オン時の最古のデータアドレス（次回データを書き込む記憶領域のアドレス）を決定する。
データ書き込み先アドレス設定部１４は、電源オン時の最古のデータアドレス及びアドレス更新部１８の指示に基づき、ＥＥＰＲＯＭ２の次のデータ書き込み先のアドレスを設定する。
【００１２】
ログナンバー設定部１５は、ログ書き込み部１７によりＥＥＰＲＯＭ２に書込まれるログデータのログナンバーを設定する。
クリア部１６は、オペレータによるクリア命令などの操作入力に基づき、ＥＥＰＲＯＭ２の全てのログナンバーをクリアする。このとき、ログナンバーに対応するデータはクリアしなくて良い。このクリア部１６が操作されると、ログナンバー設定部１５は、全てのログデータのログナンバーを０に設定する。
ログ書き込み部１７は、格納データ設定部２０で設定したデータとログナンバー設定部１５で設定したログナンバーを、データ書き込み先アドレス設定部１４で設定したＥＥＰＲＯＭ２のアドレスに書き込む。
アドレス更新部１８は、ログ書き込み部１７によってログデータを書き込むごとに次回のログの書き込み先アドレスを変更し、データ書き込み先アドレス設定部１４に伝える。アドレスが最終アドレスに達した場合は、次回以降は、先頭アドレスから順にログデータを格納していくようにする。
ログ格納要因収集部１９は、ログ格納要因が発生した場合、要因を分析する。ログデータの収集を行うためのログ格納要因を収集する。格納データ設定部２０は、ＥＥＰＲＯＭ２に書き込むデータを設定する。
【００１３】
図３は、従来のＥＥＰＲＯＭのデータクリア方法を説明するための図である。
図３において、ＥＥＰＲＯＭ２の巡回ビットとデータ領域の各値をログクリアコマンドによりクリアする場合に、ＥＥＰＲＯＭの全領域にアクセスし、全領域をクリアする。
【００１４】
図４は、この発明の実施の形態１による監視制御装置のデータクリア方法を示す図である。
図４（ａ）は、ログデータの構造を示す図、図４（ｂ）は、データ未格納領域がある場合のデータクリア方法を示す図、図４（ｃ）は、上書きされる場合のデータクリア方法を示す図である。
図４（ａ）において、ログデータは、１６バイトからなり、先頭２ビットのログナンバーと、残りのビットのデータ領域から構成されている。
図４（ｂ）（ｃ）において、ログナンバーが０でない場合のログナンバーデータのみをクリアする。データ未格納領域がある場合もデータが上書きされている場合も同様である。
【００１５】
次に、動作について説明する。
実施の形態１は、ＥＥＰＲＯＭ２のログナンバーのクリア処理についてのものである。
ＣＰＵ１は、ＥＥＰＲＯＭ２との間で、ログデータを書き込み及び読み出しする。ＣＰＵ１は、ログ保存要因が発生した場合、ログ収集６により外部からログデータを収集し、ＲＯＭコントロール５をインターフェイスとして、収集したログデータをＥＥＰＲＯＭ２に書き込む。
同様に、ＣＰＵ１は、ＥＥＰＲＯＭ２からログデータを読み込み、シリアルコントロール７及びＲＳ−２３２Ｃインターフェイス３を介して、メンテナンスＰＣ４へログデータを送信し、メンテナンスＰＣ４では、ログデータを画面出力する。
【００１６】
ここで、ログデータをＥＥＰＲＯＭ２に書込む際に、ログデータの先頭ビットを、データの格納及び未格納を示すログナンバーとする。図４（ａ）にＥＥＰＲＯＭ２に書き込むログデータのビット構成例を示す。データ長が１６バイトである場合、２ビットはログナンバーであり、（１６バイト−２ビット）はデータ領域となる。なお、全体のデータ長は任意の設定が可能である。
【００１７】
図２のクリア部１６は、オペレータの入力操作に応じて、ＥＥＰＲＯＭ２の格納を示す全てのログナンバーをクリアする。ここで、ログナンバーに対応するデータ領域はクリアしなくてよい。クリア部１６の操作により、ログナンバー設定部１５が、ＥＥＰＲＯＭ２の全てのログナンバーを０に設定し、ログ書き込み部１７がＥＥＰＲＯＭ２に書き込む。
【００１８】
図３に示す従来法では、ログデータをクリアする際にはＥＥＰＲＯＭ２の全領域にアクセスし、全領域をクリアする必要があったが、図４では、ログナンバーが０でない場合のログナンバーのみをクリアする。これは、データ未格納領域がある場合も、データが上書きされている場合も同様である。
【００１９】
ここで、ＥＥＰＲＯＭ２の記憶領域に格納されている各データの先頭をアドレスとする。
例えば、３０７２バイトのＥＥＰＲＯＭ２の記憶領域に１６バイトのログデータが最大１９２個格納される場合、１個目のログデータのアドレスは１６進表示で０ｘ００００（先頭アドレス）、２個目のログデータのアドレスは０ｘ００１０、８個目のログデータのアドレスは０ｘ０Ｃ００（最終アドレス）である。書き込みはアドレス順に行うものとし、最古に書込んだログ記録領域内のログデータの先頭を電源オン時の最古のログデータのアドレスとする。
そして、電源オン時の最古のログデータのログナンバーが、未格納を示す０であれば、ＥＥＰＲＯＭ２の先頭アドレスから、その直前のログデータのログナンバーまでをクリアする。
【００２０】
図４の方法を採用することによって、ログ未格納状態（ログナンバー＝０）とログデータが格納されている状態（ログナンバー＝１，２）が判別可能となり、ログナンバーをクリアする際は全データ領域にアクセスする必要は無く、ログナンバーが０でない場合にロ
グナンバーをクリアするだけで良いので、ログデータのクリア速度は従来よりも速くなる。
【００２１】
実施の形態１によれば、ＥＥＰＲＯＭのログデータをクリアする場合に、全領域にアクセスする必要がなく、ログナンバーが０でない場合にログナンバーをクリアするだけで良く、クリア速度は従来よりも速くなるという効果がある。
【００２２】
実施の形態２．
図５は、この発明の実施の形態２による監視制御装置の構成を示すブロック図である。
図５において、２、５、１１〜２０は図２におけるものと同一のものである。図５では、ログナンバー比較部２１を設け、ＥＥＰＲＯＭ２の連続する領域のログナンバーを順次比較することにより、ログナンバーの変化点（ログナンバーが０になる領域）を導出する。
【００２３】
図６は、この発明の実施の形態２による監視制御装置のＥＥＰＲＯＭへのデータ書き込み方法（データ未格納領域ありの場合）を説明する図である。
図６において、ＥＥＰＲＯＭにデータ未格納領域あり（ログナンバーが０の領域）の場合に、データ１、データ２を書込む場合を示している。
【００２４】
図７は、この発明の実施の形態２による監視制御装置のＥＥＰＲＯＭへのデータ書き込み方法（データを上書きする場合）を説明する図である。
図７において、ＥＥＰＲＯＭに格納されたデータ（ログナンバーが１の領域）に、データ１９３、データ１９４を上書きするの場合を示している。上書きされた領域のログナンバーは２になる。
【００２５】
図８は、この発明の実施の形態２による監視制御装置の電源オン時の最古のデータのアドレス決定方法（未格納領域ありの場合）を示す図である。
図８において、ＥＥＰＲＯＭにデータ未格納領域（ログナンバーが０の領域）ありの場合に、先頭アドレスからログナンバーをチェックしていき、最初のログナンバーが０の領域のアドレスを、電源オン時の最古のデータのアドレスとし、ログナンバーを０から１に変える。最初のログナンバーが０の領域を見つけた時点で処理を終了する。
【００２６】
図９は、この発明の実施の形態２による監視制御装置の電源オン時の最古のデータのアドレス決定方法（データが上書きされている場合）を示す図である。
図９において、ＥＥＰＲＯＭのデータが上書きされている場合には、先頭アドレスのログナンバーと次のアドレスのログナンバーを順次比較し、ログナンバーが変化すれば、そのログナンバー（図では１）のアドレスを、電源オン時の最古のデータのアドレスとし、そのログナンバーを２に変える。
【００２７】
次に、動作について説明する。
実施の形態２は、ログデータのＥＥＰＲＯＭ２への書き込みにおいて、電源オン時の最古のアドレスの決定の仕方についてのものである。
ログデータをＥＥＰＲＯＭ２に格納する際に、ログナンバーは初期値として０を設定し、ログを上書きするたびに０→１→２→１→２→（以下１→２の繰り返し）のように設定する。
【００２８】
ログ書き込み部１７でのデータ未格納領域がある場合のログナンバーの書き込み例と、データを上書きする場合のログナンバーの書き込み例を、図６と図７に示す。
また、未格納領域が存在した場合のログナンバーの決定方法の例を図８に、未格納領域が存在せず、データを上書きする場合のログナンバーの決定方法の例を図９にそれぞれ示
す。
【００２９】
実施の形態２は、以下の手順で、電源オン時の最古に書込んだログ記録領域を決定する。
（１）先頭アドレスのデータから順にログナンバーを読み込んでいく。（２）先頭アドレスのログナンバーが０の時（ログが１つも格納されていない場合）、ログナンバーの比較を終了し、電源オン時の最古のデータのアドレスとする。（３）前後のアドレスのログナンバーの値を比較してログナンバーが異なる時、その時読み込んだデータのアドレスを電源オン時の最古のデータのアドレスとし、ログナンバーを前のアドレスのログナンバーと一致させる。（４）最終アドレスのデータを読み込んだ場合で前後のログナンバーが異なっていなかった場合は、以下のようにアドレスを決定する。
【００３０】
・ログナンバー＝１のとき、ログナンバー＝２、電源オン時の最古のデータのアドレスを先頭アドレスとする。
・  ログナンバー＝２のとき、ログナンバー＝１、電源オン時の最古のデータのアドレスを先頭アドレスとする。
【００３１】
次に、図５を用いて、説明する。
ＲＯＭコントロール５では、ログ格納要因が発生した場合、ログ格納要因収集部１９で要因を分析し、ＥＥＰＲＯＭ２に書き込むログデータを格納データ設定部２０で設定する。
ログ書き込み部１７では、格納データ設定部２０で設定したデータとログナンバー設定部１５で設定したログナンバーを、データ書き込み先アドレス設定部１４で設定したＥＥＰＲＯＭ２のアドレスに書き込む。
アドレス更新部１８では、データを書き込むごとに次回のログの書き込み先アドレスを変更し、変更したアドレスをデータ書き込み先アドレス設定部１４に通知する。アドレスが最終アドレスに達した場合は、次回以降は、先頭アドレスから順にデータを格納していく。（ログを上書きする。）
【００３２】
ログナンバー設定部１５では、ログが未記録の場合、ログナンバーは初期値として０を設定し、ログを上書きするたびに０→１→２→１→２→のように設定する。ログナンバー呼び出し部１２ではログナンバーのみを読み込み、ログナンバー比較部２１では、ログナンバーの値が０でないかどうかを判定し、ログナンバーが０であった場合は、ログナンバーの比較を終了、または、前後のログナンバーを比較し、変化点があった場合はログナンバーの比較を終了する。
ログナンバー設定部１５では、該当箇所に格納されているログナンバーの値により、次回以降にＥＥＰＲＯＭ２に書き込むログナンバーを設定する。
【００３３】
実施の形態２によれば、ＥＥＰＲＯＭ２に格納されているデータを全て読み込んで電源オン時の最古のデータのアドレスを決定する必要が無くなり、効率的に電源オン時の最古のアドレスを決定できるようになる。
【００３４】
実施の形態３．
実施の形態３は、電源オン時の最古のアドレスを決定する場合に、２分探索法を用いるものである。
図１０は、この発明の実施の形態３による監視制御装置の２分探索法を示すブロック図である。
図１０において、２、５、１１〜２０は図５におけるものと同一のものである。図１０では、比較対象記憶領域決定部２２は、比較対象のＥＥＰＲＯＭ２の記憶領域中の比較対象領域を決定する。実施の形態３では、２分探索法によるため、１回の決定のつど、対象
領域は半分になる。対象領域内ログナンバー比較部２３は、比較対象記憶領域決定部２２で決定された比較対象領域中の先頭アドレスと最終アドレスでのログナンバーを比較し、さらに比較可能領域が存在するかどうかを判定する。比較可能領域が存在すれば、比較対象記憶領域決定部２２で次の比較対象領域を決定し、同じ処理を繰り返す。
【００３５】
図１１は、この発明の実施の形態３による監視制御装置の２分探索による決定方法を示す図である。
図１１において、ＥＥＰＲＯＭの領域を２分探索によりログナンバーの変化点を検出する様子を示している。図１１（ａ）は、ＥＥＰＲＯＭの全領域の先頭アドレスと最終アドレスを示し、図１１（ｂ）は、その中間のアドレスを示し、図１１（ｃ）は、さらにその半分の大きさのアドレスと先頭アドレスとの間の２つの領域を示し、図１１（ｄ）は、次の２つの領域を示している。つまり、２分探索により、順次領域を減らしながら、ログナンバーの変化点を探している。
【００３６】
次に、２分探索法について説明する。２分探索による決定方法では、最初に先頭アドレスと最終アドレスのログナンバーを比較し、ログナンバーが等しいかどうか判定し、ログナンバーを比較する範囲を半分ずつに絞っていき、変化点を求めていく。
【００３７】
具体的には、以下の方法で変化点を決定し、電源オン時の最古のデータのアドレスを決定する。図１１を用いて説明する。グレーの部分が比較対象領域である。
・Ａｍｉｎ：ログナンバーの比較対象記憶領域の先頭アドレス
・Ａｍａｘ：ログナンバーの比較対象記憶領域の最終アドレス
・Ｎｍｉｎ：比較対象領域内データの先頭データのログナンバー
・Ｎｍａｘ：比較対象領域内データの最終データのログナンバー
・Ａ：電源オン時の最古のデータのアドレス
・Ｎ：電源オン後にＡに新しくデータを書き込む際のログナンバーの値
とする。
【００３８】
（１）Ｎｍｉｎ＝ＥＥＰＲＯＭ記憶領域全体中での先頭アドレス、Ｎｍａｘ＝ＥＥＰＲＯＭ記憶領域全体での最終アドレスとして、ＮｍｉｎとＮｍａｘを比較する。
（２）Ｎｍｉｎ≠Ｎｍａｘなので、Ａｍａｘ＝０ｘ００１Ｆとして対象領域を絞り込み、ＮｍｉｎとＮｍａｘを比較する。
（３）Ｎｍｉｎ≠Ｎｍａｘなので、Ａｍａｘ＝０ｘ０００Ｆとして対象領域を絞り込み、ＮｍｉｎとＮｍａｘを比較する。
（４）Ｎｍｉｎ＝Ｎｍａｘなので、Ａｍａｘ＝０ｘ００１０，Ａｍａｘ＝０ｘ００１Ｆとして対象領域を絞り込み、ＮｍｉｎとＮｍａｘを比較する。比較した結果、Ｎｍｉｎ≠Ｎｍａｘであり、Ａｍａｘ＝Ａｍｉｎ＋０ｘ０００８なので（隣り合ったデータ同士なので）Ａ＝０ｘ００１８、Ｎ＝１となる。
【００３９】
図１０の比較対象記憶領域決定部２２では、比較対象のＥＥＰＲＯＭ２の記憶領域中の比較対象領域を決定し、対象領域内ログナンバー比較部２３で、比較対象領域中の先頭アドレスと最終アドレスでのログナンバーを比較し、比較可能領域が存在するかどうかを判定し、比較可能領域が存在しない場合は、比較を終了する。
【００４０】
実施の形態３によれば、２分探索法を採用することによって、比較対象領域を一回の比較で半分ずつに絞り込めるので、ログ格納領域の先頭から順にログナンバーを読み込んで、電源オン時の最古のデータのアドレスを決定するよりも効率的に電源オン時の最古のデータのアドレスを決定することができる。
【００４１】
実施の形態４．
図１２は、この発明の実施の形態４による監視制御装置の構成を示すブロック図である。
図１２において、２、５、１１、１３〜１６、１８〜２０は図１０におけるものと同一のものである。領域分離部３３は、ＥＥＰＲＯＭ２の記憶領域をログナンバーが格納されるヘッダ領域とデータ領域に構成し直す。ログ書き込み部３４は、ヘッダ領域の先頭アドレスから順にログナンバーを格納し、データ領域の先頭アドレスから順にデータを格納する。ヘッダ領域読み込み部３２は、ヘッダ領域のデータを全てバーストモードでリードする。データ領域読み込み部３１は、データ領域に格納されたデータを読み出す。
【００４２】
図１３は、この発明の実施の形態４による監視制御装置のＥＥＰＲＯＭのデータ構造を示す図である。
図１３において、ＥＥＰＲＯＭの全領域をヘッダ領域とデータ領域に分け、先頭アドレスのヘッダ領域に各２ビットのログナンバーを格納している。
【００４３】
図１４は、この発明の実施の形態４による監視制御装置のヘッダ領域２ビット単位読み込みによるログナンバーの比較を示す図である。
図１４において、ＥＥＰＲＯＭのヘッダ領域をバーストリードし、先頭から２ビットごとに比較を行い、ログナンバーの変化点を見つける。
【００４４】
次に、動作について説明する。
実施の形態４は、ＥＥＰＲＯＭ２のログデータの構造が実施の形態１〜３と異なるものである。実施の形態４では、ＥＥＰＲＯＭ２をヘッダ領域、データ領域に分け、ヘッダ領域には、先頭アドレスから順番にログナンバーを書き込んでいく。また、データ領域にはデータ領域の先頭アドレスから順番にデータを書き込んで行く。
こうすることにより、電源オン時にヘッダ領域からログナンバーを一括して読み込み、ヘッダ領域内のログナンバーを比較することで、電源オン時の最古のデータのアドレスを求めることができる。
【００４５】
ヘッダ領域内のログナンバーを比較する方法として、順に２ビット単位で比較していく方法（方法１）と、８ビット単位で比較していき前後のデータが異なっていた場合は後の８ビットのデータ内で２ビットずつログナンバーを比較していく方法（方法２）があるが、実施の形態４では、方法１による。なお、方法２については実施の形態５で後述する。
【００４６】
図１３に実施の形態４におけるＥＥＰＲＯＭ２のログデータ（ログナンバー＋データ）の格納構成を記載した。ここでは、ログナンバーは、２ビットごとでヘッダ領域に、データは、８ビットごとでデータ領域に格納されているものとする。
実施の形態４を実施する際に、ヘッダ領域には、先頭アドレスから順番にログナンバーを書き込んでいく。また、データ領域にはデータ領域の先頭アドレスから順番にデータを書き込んで行く。
【００４７】
図１４では、ヘッダ領域からデータ（ログナンバー）をバーストモードでリードし、前後のデータを比較している。Ａのデータが１０（１０進数では２）であり、Ｂのデータと異なっているので、ログナンバーを１０→０１に変更する。ここで、Ｂのデータはヘッダ領域において先頭から１３０番目に格納されおり、データ領域において先頭から１３０番目に格納されているデータはデータ１３０となるので、電源オン時の最古のデータのアドレスは０ｘ０８２０となる。
【００４８】
図１２の領域分離部３３で、ＥＥＰＲＯＭ２の記憶領域をログナンバー領域とデータ領域に構成し直し、ログ書き込み部３４では、ヘッダ領域の先頭アドレスから順にログナンバーを格納し、データ領域の先頭アドレスから順にデータを格納する。
ヘッダ領域読み込み部３２では、ヘッダ領域のデータを全てバーストモードでリードする。データ領域読み込み部３１では、データ領域に格納されたデータを読み出す。電源オン時の最古データアドレス決定部１３では、このデータを２ビット単位で順に比較し、電源オン時の最古のデータのアドレスを求める。
【００４９】
実施の形態１〜実施の形態３では、先頭アドレスからログナンバーを順番に１つずつ読み出して電源オン後の最古のデータアドレスを決定していたが、実施の形態４によれば、ログデータをヘッダ領域とデータ領域を分け、ヘッダ領域からログナンバーを読み出し、読み出したログナンバーを比較していくことで、一回の読み込みで必要なログナンバーを取り出すことができ、効率的に電源オン後の最古のデータアドレスを決定することができる。
【００５０】
実施の形態５．
図１５は、この発明の実施の形態５による監視制御装置の構成を示すブロック図である。
図１５において、２、５、１１、１３〜１６、１８〜２０、３１〜３４は図１２におけるものと同一のものである。バイト単位比較部４１は、読み込んだヘッダ領域をバイト単位で比較する。比較対象バイト内ログナンバー比較部４２は、比較対象バイト内のログナンバーを比較する。
【００５１】
図１６は、この発明の実施の形態５による監視制御装置のヘッダ領域１バイト単位読み込みによるログナンバーの比較を示す図である。
図１６において、ＥＥＰＲＯＭ２のヘッダ領域をバーストリードし、バイト単位で隣接するデータを比較し、次いで、変化点を有するバイト内のログナンバーを比較して、ログナンバーの変化点を抽出する。
【００５２】
次に、動作について説明する。
実施の形態５は、実施の形態４と同じＥＥＰＲＯＭ２のログデータの構造で、ヘッダ領域内のログナンバーを、８ビット単位で比較していき、前後のデータが異なっていた場合は後の８ビットのデータ内で２ビットずつログナンバーを比較していく方法（方法２）によるものである。
ヘッダ領域から８ビット分のデータを取り出した際は、４個分のデータのログナンバーを取り出したことになる。
【００５３】
次に、この場合の比較方法について述べる。
実施の形態５は、実施の形態４のように、ログナンバーを２ビットずつ比較するのではなく、ＥＥＰＲＯＭ２のヘッダ領域からログナンバーをバーストモードでリードし、バイト単位比較部４１により、読み出したデータを８ビット単位（バイト単位）で比較し、前後のデータが等しいかどうか判定する。
判定後、前後の８ビットのデータが異なっていた際に、比較対象バイト内ログナンバー比較部４２により、後に読み込んだ８ビットのデータを先頭から２ビット単位で（各ログナンバー）比較していく。
【００５４】
図１６の例では、ヘッダ領域からデータ（ログナンバー）をバーストモードでリードし、前後のデータをバイト単位で比較する。ヘッダ領域１のバイトとヘッダ領域２のバイトのデータが異なっているので、ヘッダ領域２のデータを２ビット単位で先頭アドレスから比較していく。すると、Ｂのログナンバーのデータが１０（１０進数では２）であり、Ａのログナンバーのデータと異なっているので、ログナンバーを１０→０１に変更する。
ここで、Ｂのデータは、ヘッダ領域において先頭から１３０番目に格納されおり、データ領域において先頭から１３０番目に格納されているデータは、データ１３０であるので
、電源オン時の最古のデータのアドレスは０ｘ０８２０となる。
【００５５】
実施の形態５によれば、バイト単位で複数のログナンバーを比較することができ、１個ずつログナンバーを比較するよりも効率的に電源オン時の最古のデータのアドレスを決定することができる。
【００５６】
実施の形態６．
図１７は、この発明の実施の形態６による監視制御装置の構成を示すブロック図である。
図１７において、２、５、１１、１３〜１６、１８〜２０、３１〜３４、４１、４２は図１５におけるものと同一のものである。比較対象記憶領域決定部５１は、比較対象のＥＥＰＲＯＭ２の記憶領域中の比較対象領域を決定する。この比較対象領域は、最初はＥＥＰＲＯＭ２の全記憶領域の先頭領域（１バイト）と最終領域（１バイト）である。２分探索法によるため、１回の決定のつど、対象記憶領域は半分になる。バイト単位比較部４１は、比較対象記憶領域決定部５１により決定された対象記憶領域の先頭領域（１バイト）と最終領域（１バイト）のデータを比較する。
【００５７】
図１８は、この発明の実施の形態６による監視制御装置の２分探索による決定方法を示す図である。
図１８において、ＥＥＰＲＯＭの領域を８ビット単位で２分探索により変化点を検出する様子を示している。図１８（ａ）は、ＥＥＰＲＯＭの全記憶領域の８ビット単位の先頭領域と最終領域を示し、図１８（ｂ）は、図１８（ａ）の半分の対象記憶領域の先頭領域と最終領域を示し、図１８（ｃ）は、図１８（ｂ）の半分の対象記憶領域の先頭領域と最終領域を示し、図１８（ｄ）は、図１８（ｂ）の残り半分の対象記憶領域の先頭領域と最終領域を示している。つまり、２分探索法により、順次、対象記憶領域を半減させながら、８ビット単位の変化点を探している。
図１８では、ヘッダ領域１とヘッダ領域２のデータが一致しないため、ヘッダ領域２の先頭から２ビットずつログナンバーを比較していく。
【００５８】
次に、動作について説明する。
実施の形態６は、実施の形態５のＥＥＰＲＯＭ２の構造で、８ビットずつの比較を２分探索法により行うものである。
実施の形態５の比較方法では、ヘッダ領域からデータを読み込み、先頭アドレスから順番に前後の８ビット単位のデータを比較していたが、比較の仕方は他にも考えうる。実施の形態６は、比較する８ビットのデータを実施の形態３の２分探索法により行うようにした。
【００５９】
２分探索法では、図１８のように、最初にＥＥＰＲＯＭ２の全記憶領域の先頭領域と最終領域の各８ビットのデータをバイト単位比較部４１により比較し、等しいかどうか判定して、比較対象記憶領域決定部５１で、対象記憶領域を半分ずつに絞っていき、バイト単位比較部４１により対象記憶領域の先頭領域のデータと最終領域のデータを比較することを繰り返しながら、データが一致しない領域を求めていく。
図１８では、ヘッダ領域１とヘッダ領域２のデータが一致しないので、ヘッダ領域２を対象領域として、比較対象バイト内ログナンバー比較部４２により、ヘッダ領域２の中を先頭から２ビットずつログナンバーを比較していき、変化点を抽出する。
【００６０】
図１７のヘッダ領域読み込み部３２により読み込まれたＥＥＰＲＯＭ２のヘッダ領域から、比較対象記憶領域決定部５１により、ＥＥＰＲＯＭ２の記憶領域中の比較対象領域を決定する。この決定では、対象記憶領域が順次半分の領域になるように決定する。バイト単位比較部４１は、図１８のように、この比較対象領域である先頭領域のデータと最終領
域のデータを比較し、一致しない領域を発見したら、その領域のバイトを比較対象バイトとして、比較対象バイト内ログナンバー比較部４２により、２ビットずつ比較して、変化点のログナンバーを見つける。
【００６１】
実施の形態６によれば、２分探索法によりバイト単位でヘッダ領域を比較することにより、ヘッダ領域の先頭アドレスに格納されているデータから順番にバイト単位で比較するよりも効率的に電源オン時の最古のデータのアドレスを決定することができる。
【００６２】
実施の形態７．
図１９は、この発明の実施の形態７による監視制御装置の構成を示すブロック図である。
図１９において、２、５、１１、１３〜１６、１８〜２０、３１〜３４は図１２におけるものと同一のものである。アクセス回数判定部６１は、ＥＥＰＲＯＭ２への上書き回数が指定した回数に達したかどうかを判定する。ヘッダ領域変更部６２は、アクセス回数判定部６１の判定結果に基づいて、指定した回数に達した場合に、ヘッダ領域をＥＥＰＲＯＭ２の他の領域中に変更する。
【００６３】
図２０は、この発明の実施の形態７による監視制御装置のデータアクセスを示す図である。
図２０において、ＥＥＰＲＯＭ２の１６バイトにヘッダ領域を設け、次の領域をデータ領域とする構造が示されている。
【００６４】
図２１は、この発明の実施の形態７による監視制御装置のアクセス回数によるヘッダ領域の変更を示す図である。
図２１（ａ）は、アクセス回数が０回の場合のヘッダ領域とデータ領域を示す図、図２１（ｂ）は、アクセス回数が１００回の場合のヘッダ領域とデータ領域を示す図、図２１（ｃ）は、アクセス回数が２００回の場合のヘッダ領域とデータ領域を示す図であり、ヘッダ領域が変更されている。図２１（ｄ）は、アクセス回数が３００回の場合のヘッダ領域とデータ領域を示す図であり、ヘッダ領域がさらに変更されている。
図２１において、アクセス回数１００回を数えるたびに、ヘッダ領域をそれまでのデータ領域の一部と交換するようにしている。
【００６５】
次に、動作について説明する。
実施の形態７は、実施の形態４〜実施の形態６のようなＥＥＰＲＯＭ２のログデータの構造の場合に、ＥＥＰＲＯＭ２のアクセス回数を均一化させるようにしたものである。
図２０のように、ＥＥＰＲＯＭ２のデータ領域が６４個分のデータを格納可能であり、ヘッダ領域を、２ビットの６４個分で１６バイト確保する。
このようなＥＥＰＲＯＭ２に対して、ログナンバーを１回書き込む際には、ＥＥＰＲＯＭ２に１バイト単位でアクセスする。このため、１回ずつデータ領域にアクセスし、６４個分のデータをＥＥＰＲＯＭ２に書き込む場合は、ヘッダ領域に４回アクセスしていることになる。これは、ＣＰＵ１からＥＥＰＲＯＭ２へのアクセス回数には制限があるため、ＥＥＰＲＯＭ２の寿命の点から考えて効率的な方法とは言えない。
【００６６】
実施の形態７は、これに対処するためのもので、アクセス回数の不均一を解消するため、実施の形態４〜実施の形態６を実施する際に、データの上書き回数が増え、一定回数に達した場合、ヘッダ領域を変更するものである。
【００６７】
このため、図１９の構成では、アクセス回数判定部６１で、上書き回数が指定した回数に達したかどうかを判定し、指定した回数に達した場合は、ヘッダ領域変更部６２でヘッダ領域を、ＥＥＰＲＯＭ２の他の領域の中に変更する。
【００６８】
図２１には、ヘッダ領域が６４個のログナンバーを格納、データ領域が６４個のデータを格納する場合に、１００回ずつデータを上書きした際のデータ領域、ヘッダ領域の変更の例を示している。ヘッダ領域がそれまでのデータ領域であったＥＥＰＲＯＭ２の領域中に順次、変更されている。
【００６９】
実施の形態４によれば、ＥＥＰＲＯＭへの上書き回数により、ヘッダ領域を変更するようにしたので、各領域のアクセス回数が均一になり、ＥＥＰＲＯＭのアクセス回数を増やすことができる。
【００７０】
なお、上述の実施の形態では、ＣＰＵによりＥＥＰＲＯＭにログデータの書き込み及び呼び出しが行われるように説明したが、ＥＥＰＲＯＭに限らず、フラッシュメモリなどの不揮発性メモリを用いることができる。
【符号の説明】
【００７１】
１  ＣＰＵ
２  ＥＥＰＲＯＭ
３  ＲＳ−２３２Ｃインターフェイス
４  メンテナンスＰＣ
５  ＲＯＭコンロトール
６  ログ収集
７  シリアルコントロール
１１  ログデータ呼び出し部
１２  ログナンバー呼び出し部
１３  最古データアドレス決定部
１４  データ書き込み先アドレス設定部
１５  ログナンバー設定部
１６  クリア部
１７  ログ書き込み部
１８  アドレス更新部
１９  ログ格納要因収集部
２０  格納データ設定部
２１  ログナンバー比較部
２２  比較対象記憶領域決定部
２３  対象領域内ログナンバー比較部
３１  データ領域読み込み部
３２  ヘッダ領域読み込み部
３３  領域分離部
３４  ログ書き込み部
４１  バイト単位比較部
４２  比較対象バイト内ログナンバー比較部
５１  比較対象記憶領域決定部
６１  アクセス回数判定部
６２  ヘッダ領域変更部
【図１】
0005449254.tif 000002
【図２０】
0005449254.tif 000003
【図２】
0005449254.tif 000004
【図３】
0005449254.tif 000005
【図４】
0005449254.tif 000006
【図５】
0005449254.tif 000007
【図６】
0005449254.tif 000008
【図７】
0005449254.tif 000009
【図８】
0005449254.tif 000010
【図９】
0005449254.tif 000011
【図１０】
0005449254.tif 000012
【図１１】
0005449254.tif 000013
【図１２】
0005449254.tif 000014
【図１３】
0005449254.tif 000015
【図１４】
0005449254.tif 000016
【図１５】
0005449254.tif 000017
【図１６】
0005449254.tif 000018
【図１７】
0005449254.tif 000019
【図１８】
0005449254.tif 000020
【図１９】
0005449254.tif 000021
【図２１】
0005449254.tif 000022