(57)【要約】【課題】循環型記憶装置に記憶された必要なログ情報に上書きすることなく、ユーザが必要なログ情報を確実に記憶する。【解決手段】関数プログラムを含むプログラムを実行するプログラム実行手段、記憶領域を循環使用して情報を記憶する循環型記憶手段、プログラム実行手段のログ情報の記憶を停止する要因を設定した停止要因情報を記憶するロギング情報設定記憶手段、前記停止要因情報と前記関数プログラムの識別子及び戻り値又は前記ログ情報との一致を判断する出力情報監視手段、前記出力情報監視手段の判断結果によって前記ログ情報の記憶を停止するロギング停止命令を出力するロギング制御手段、及び前記循環記憶手段に前記ログ情報を記憶させて前記ロギング停止命令を受けると前記ログ情報を記憶するのを停止させるロギング処理手段を設けた。【選択図】図１
2007299126.tif 000002
【特許請求の範囲】
【請求項１】
関数プログラムを含むプログラムを実行するプログラム実行手段、
記憶領域を循環使用して情報を記憶する循環型記憶手段、
前記プログラム実行手段のログ情報の記憶を停止する要因を設定した停止要因情報を記憶するロギング情報設定記憶手段、
前記停止要因情報と前記関数プログラムの識別子及び戻り値又は前記ログ情報との一致を判断する出力情報監視手段、
前記出力情報監視手段の判断結果によって前記ログ情報の記憶を停止するロギング停止命令を出力するロギング制御手段、
及び前記循環記憶手段に前記ログ情報を記憶させて前記ロギング停止命令を受けると前記ログ情報を記憶するのを停止させるロギング処理手段を備えたことを特徴とする制御装置。
【請求項２】
停止要因情報は、ログ情報に出力される情報又は関数プログラムの識別子及び戻り値であることを特徴とする請求項１に記載の制御装置。
【請求項３】
ロギング処理手段は、ロギング停止命令を受けると循環型記憶手段に記憶させるのを停止し、前記循環型記憶手段に記憶されたログ情報を不揮発性メモリに記憶させるログ情報書き出し手段を備えたことを特徴とする請求項１に記載の制御装置。
【請求項４】
循環型記憶手段を循環使用しない場合には、全記憶量に対する前記循環型記憶手段の有効な情報を記憶した割合を非循環時使用率として求める使用率算出手段、
及び前記非循環時使用率が所定の使用率を超えると全ログ情報の書き込み信号を出力する記憶領域監視手段を備え、
ロギング制御手段は、前記全ログ情報の書き込み信号を受けると全ログ情報の書き込み命令をロギング処理手段に送ることを特徴とする請求項１に記載の制御装置。
【請求項５】
ロギング制御手段は、非循環時使用率の単位時間当り増加率から求められる所定の使用率に達するまでの時間が経過するまで記憶監視手段又はログ情報書き出し手段の少なくともいずれか一方を停止させることを特徴とする請求項４に記載の制御装置。
【請求項６】
循環型記憶手段を循環使用する場合には、全記憶量に対するロギング停止命令が出力された後に前記循環型記憶手段に記憶した割合を循環時使用率として求める使用率算出手段、
及び前記循環時使用率が所定の使用率を超えると全ログ情報の書き込み信号を出力する記憶領域監視手段を備え、
ロギング制御手段は、前記全ログ情報の書き込み信号を受けると全ログ情報の書き込み命令をロギング処理手段に送ることを特徴とする請求項１に記載の制御装置。
【請求項７】
ロギング制御手段は、循環時使用率の単位時間当り増加率から求められる所定の使用率に達するまでの時間が経過するまで記憶監視手段又はログ情報書き出し手段の少なくともいずれか一方を停止させることを特徴とする請求項６に記載の制御装置。
【請求項８】
関数プログラムを含むプログラムを実行するプログラム実行手段、
記憶領域を循環使用して情報を記憶する循環型記憶手段、
プログラム実行手段のログ情報の記憶を停止する要因を設定した停止要因情報を記憶するロギング情報設定記憶手段、
前記停止要因情報と前記関数プログラムの識別子及び戻り値又は前記ログ情報との一致を判断する出力情報監視手段、
前記出力情報監視手段の判断結果によって前記ログ情報の記憶を停止するロギング停止命令を出力するロギング制御手段、
及び前記循環記憶手段に前記ログ情報を記憶させて前記ロギング停止命令を受けると前記ログ情報を記憶するのを停止させるロギング処理手段として制御装置を機能させるための制御装置用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、制御状況の記録であるログを取る機能を備えた制御装置に関するものであって、特に記憶領域を循環使用して情報を記憶する循環型記憶装置にログ情報を記憶する制御装置に関する。
【背景技術】
【０００２】
従来の循環型記憶装置（リングバッファー）にログを取る機能を備えた制御機器においては、プロトコルに関する制御を行うプロトコル制御部が検出した異常の種別に応じて割り込みを発生させるロギング停止割り込み発生手段と、ログ情報の収集を自動停止させる回線ロギング停止手段と、上記ロギング停止割込み発生手段による割り込みがあり、予めロギング機能の自動停止オプションが選択されている場合には、上記回線ロギング停止手段にロギング機能の停止を通知する割込み処理部とを備えたネットワーク通信の制御を行うシステムにおける回線ロギング自動停止制御方式がある（例えば特許文献１）。
【０００３】
この構成によれば、プロトコル制御部が異常の種類に応じてロギング停止割込み発生手段を用いることにより、回線ロギング停止処理手段によって、ロギング機能の停止が行われる。従って、この時点における回線ログ情報が、エラー発生後に収集した新しいログ情報をリングバッファーに上書きするために失われることが無くなる。
【０００４】
【特許文献１】特開平１−１１５２４４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
従来の回線ロギング自動停止制御方式では、プロトコルに関する制御を行うプロトコル制御部が検出した異常により、割込みを発生させて回線ロギングを自動停止させている。しかし、この方式は、プロトコル制御部が検出した異常が、ユーザが必要でない異常であってもロギングを停止させるので、本来ユーザに必要なログ情報をロギングできない問題点があった。すなわち、従来の方式は下位レベルプロトコルから発生する異常を無視し、上位レベルプロトコル制御の異常に基づきロギング停止している。この方式をプログラム実行に適用し、上位プログラムのからの異常に基づきロギング停止したのでは、プログラム検証時にユーザが意図しない上位プログラムの異常でロギングを停止するから、必要となる任意の関数プログラムに関するログ情報を取り出せない。
【０００６】
この発明は、上記のような問題点を解決するためになされたものであり、循環型記憶装置に記憶された必要なログ情報に上書きすることなく、ユーザが必要なログ情報を確実にロギングすることを目的としている。
【課題を解決するための手段】
【０００７】
この発明に係る制御装置においては、関数プログラムを含むプログラムを実行するプログラム実行手段、記憶領域を循環使用して情報を記憶する循環型記憶手段、プログラム実行手段のログ情報の記憶を停止する要因を設定した停止要因情報を記憶するロギング情報設定記憶手段、前記停止要因情報と前記関数プログラムの識別子及び戻り値又は前記ログ情報との一致を判断する出力情報監視手段、前記出力情報監視手段の判断結果によって前記ログ情報の記憶を停止するロギング停止命令を出力するロギング制御手段、及び前記循環型記憶手段に前記ログ情報を記憶させて前記ロギング停止命令を受けると前記ログ情報を記憶するのを停止させるロギング処理手段を設けたものである。
【発明の効果】
【０００８】
この発明によれば、循環型記憶装置にログ情報を記憶させる装置において、ユーザが設定したロギング停止要因情報でロギングを停止させることによって、ユーザが必要とする循環型記憶装置内のログ情報への上書を防ぐことができるので、ユーザは必要なログ情報を確実に取得することができる。
【発明を実施するための最良の形態】
【０００９】
実施の形態１．
図１は、この発明を実施するための実施の形態１における制御装置を示すブロック図である。本実施の形態１の制御装置は、関数プログラムを含むプログラムを実行し、関数プログラムごとに当該関数プログラムの戻り値、及び記録すべきログ情報を出力するプログラム実行手段２０１、記憶領域を循環使用して情報を記憶する循環型記憶手段２０２、プログラム実行手段２０１のログ情報の記憶を停止する要因を設定したロギング停止要因となる停止要因情報が設定され、この停止要因情報を記憶するロギング情報設定記憶手段２１６、停止要因情報と関数プログラムの識別子及び戻り値又はログ情報との一致を判断する出力情報監視手段２０６、出力監視手段の判断結果によって前記ログ情報記憶を停止するロギング停止命令を出力するロギング制御手段２０７、及び循環型記憶手段にログ情報を記憶させてロギング停止命令を受けるとログ情報を記憶するのを停止させるロギング処理手段２０５が設けられている。
【００１０】
また、プログラム実行手段２０１には、関数プログラムを実行する関数プログラム実行手段２１１が設けられている。ロギング情報設定記憶手段２１６は、ロギング停止要因情報が設定されるロギング停止要因情報設定手段２０３と、設定されたロギング停止要因情報を記憶するロギング停止要因情報記憶手段２０４とを備える。ロギング停止要因を制御装置以外で設定し、設定した停止要因情報が記憶されていれば機能するのでロギング情報記憶手段２０３だけで構成しても良い。
なお、ロギング処理手段２０５に、循環型記憶手段２０２のログ情報を不揮発性記憶手段２０９に記憶させるログ情報書き込み手段２１０を設けてもよい。ここで不揮発性記憶手段２０９は、不揮発性記憶装置１０４上に設けられた記憶手段である。
【００１１】
ここで、プログラムとは、関数プログラム及びユーザプログラムを含む概念である。関数プログラムとは、他のプログラムから呼び出され、一の戻り値をそのプログラムに出力するプログラムである。また、ユーザプログラムとは、制御装置用のドライバ関数群、ライブラリ関数群を利用して制御装置のユーザが作成する制御用のプログラムである。
なお、ログとは、一般にコンピュータの利用状況やデータ通信の記録を取ること、またその記録。この記録には、操作やデータの送受信が行われた日時と、行われた操作の内容や送受信されたデータの中身などが含まれる。ログ情報とは、ログを計算機読み取り可能にした情報である。本実施の形態１においてログ情報の内容は、制御装置の利用状況、制御状況の記録である。また、ロギングとは、ログ情報を記録することである。
【００１２】
図１において、プログラム実行手段２０１は、ログ情報を出力し、このログ情報を受けたロギング処理手段２０５が、循環型記憶手段２０２へログ情報を記憶させる。出力情報監視手段２０６は、ロギング情報設定記憶手段２１６によって設定、記憶された停止要因情報と、プログラム実行手段２０１からの停止要因情報と関数プログラムの識別子及び戻り値又はログ情報（出力情報）とを比較し、一致するとロギング制御手段２０７へ判断結果の情報を送る。ロギング制御手段２０７は、この情報を受けると、ロギング処理手段２０５へロギング停止命令を出力する。ロギング処理手段２０５は、このロギング停止命令を受けるとログ情報を新たに循環型記憶手段２０２へ記憶することを停止する。この構成によれば、ロギング情報設定記憶手段２１６において記憶される停止要因情報は、ユーザが所望する停止要因情報であるので、ユーザが所望した停止要因によって、循環型記憶手段２０２への記憶処理が停止される。
【００１３】
図２は、本実施の形態１の制御装置のハードウェアの構成図である。本実施の形態１の制御装置は、例えば、プログラマブルロジックコントローラ、各種機器のコントローラなどであって、ユーザ作成のプログラムを実行する機能を有する制御装置である。
キーボード、テンキー、カーソルキー、マウス、ジョイスティックなどの入力デバイスから情報を入力する入力部１０６と、情報を記憶する記憶部１０２と、この情報に基づき演算処理を行う中央演算処理装置１０１と、この演算処理結果を文字、画像などの表示情報として液晶ディスプレイ、ＣＲＴなどの出力デバイスおよび各種制御対象機器へ信号を出力する出力部１０７と、中央演算処理装置１０１でプログラムを実行時にログ情報を記憶する循環型記憶装置（リングバッファー）１０５とから構成される。なお、不揮発性記憶装置１０４にプログラム実行時の出力等を記憶するように構成しても良い。
【００１４】
制御装置で実行される演算を行う中央演算処理装置１０１は、中央演算処理装置１０１で用いられるプログラム、およびデータ（演算結果を含む）を一時的に記憶する主記憶装置１０２が密に結合されている。この主記憶装置１０２に記憶されるプログラム、およびデータは、不揮発性記憶装置１０４から読み出され、主記憶装置１０２に記憶された演算結果のデータの一部は、不揮発性記憶装置１０４へ記憶される。
主記憶装置１０２に記憶された演算結果のデータの中でログ情報に相当するデータは、記憶領域を循環使用して高速に記憶する循環型記憶装置１０５へ記憶される。この循環型記憶装置１０５は、記憶領域を循環使用する、いわゆるリングバッファーである。また、不揮発性記憶装置１０４に記憶されるプログラム、およびデータは、入力装置１０６によって入力され、出力装置１０７によって外部へ出力される。
【００１５】
また、不揮発性記憶装置１０４と循環型記憶装置１０５とは、ＳＲＡＭ(Ｓｔａｔｉｃ Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ)に構成することもできる。ＳＲＡＭは、記憶保持のための動作を必要とせず、高速に動作することがでる。循環型記憶装置１０５は、このＳＲＡＭの記憶領域を循環使用するため、通常の記憶装置が行う記憶領域のオーバーフローの検知、およびその後のスワップ処理を行わないので、さらに高速に記憶動作を行える。
【００１６】
本実施の形態１の図１に示す循環型記憶手段２０２は、図２の循環型記憶装置１０５にて実行される。なお、ロギング停止要因情報記憶手段２０４および不揮発性記憶手段２０９は、不揮発性記憶装置１０４で実現される。また、プログラム実行手段２０１、関数プログラム実行手段２１１、ロギング停止要因情報設定手段２０３、出力情報監視手段２０６、ロギング処理手段２０５、ロギング制御手段２０７は、主記憶部１０２を利用して中央演算処理装置１０１で実行され、プログラム実行手段２０１の一部の処理は出力部に出力する。なお、ロギング停止要因情報設定手段２０３は、入力部１０６で入力される情報によって停止要因情報を設定する。
【００１７】
以下各手段について説明する。
プログラム実行手段２０１は、関数プログラムを含むプログラムを実行し、プログラム実行手段２０１の関数プログラム実行手段２１１が出力する関数の戻り値及び当該関数の識別子を出力情報監視手段２０６に出力する。また、関数プログラム実行手段２１１が出力するログ情報をロギング処理手段２０５に出力する。
【００１８】
循環型記憶手段２０２は、記憶領域を循環使用して、ロギング処理手段２０５が出力するログ情報を記憶する。また他の手段からの指示により記憶している情報を出力する。また、循環型記憶装置１０５をＳＲＡＭ上に構築することにより、突然の電源遮断によるログ情報の喪失を防ぐことができる。
【００１９】
ロギング情報設定記憶手段は、ロギング停止要因情報設定手段２０３及びロギング停止要因情報記憶手段２０４から構成される。ロギング停止要因情報設定手段２０３では、停止要因情報が入力装置１０６を用いて入力される。停止要因情報には、停止要因となる関数プログラムの識別子及び戻り値又はログ情報がある。またロギング停止要因情報記憶手段２０４は、停止要因情報を記憶し、出力情報監視手段２０６に停止要因情報を出力する。
【００２０】
出力情報監視手段２０６は、停止要因情報と関数プログラムの識別子及び戻り値又はログ情報との一致を判断し、判断結果をロギング制御手段２０７に出力する。一致したと判断したときにのみ結果をロギング制御手段２０７に出力することによって、その後の中央演算処理装置１０１の処理を削減することができる。
【００２１】
ロギング制御手段２０７は、出力情報監視手段２０６の判断結果が、停止要因情報と関数プログラムの出力値とが一致することを示す場合、ログ情報の記憶を停止するロギング停止命令をロギング処理手段２０５に出力する。
【００２２】
ロギング処理手段２０５は、プログラム実行手段２０１から出力されるログ情報を受けて、このログ情報を循環型記憶手段２０２に記憶させる。また、ロギング処理手段２０５は、ロギング制御手段２０７からロギング停止命令を受けるとログ情報記憶するのを停止する。なお、ロギング処理手段２０５に、次に示すログ情報書き込み手段２１０を設けることができる。
【００２３】
ログ情報書き込み手段２１０は、ロギング処理手段２０５に位置付けられ、循環型記憶手段２０２に記憶されたログ情報のＩＤとバイナリデータのログの内容情報とを文字列に変換し、ログファイルとして不揮発性記憶装置１０４に記憶する。
【００２４】
図３は、図１のプログラム実行手段２０１を詳細化したブロック図、及び他の手段との関係を説明するための図である。プログラム実行手段２０１は、ユーザプログラム実行手段２２３、フック関数プログラム実行手段２２２及びドライバ関数プログラム実行手段２２１に詳細化したものである。
【００２５】
ここで、ユーザプログラム実行手段２２３は、ユーザプログラムを実行する手段である。ドライバ関数プログラムとは、ユーザプログラム、またはフック関数プログラムから呼び出され、制御装置に固有の処理、および制御装置用のプログラムで共通して行われる処理を行うための関数プログラムである。ドライバ関数プログラム実行手段２２１は、このドライバ関数を実行する手段である。フック関数プログラムとは、ユーザプログラムから呼び出され、ログ情報を出力し、ドライバ関数プログラムを呼び出し、戻り値を出力する関数プログラムであり、通常プログラムのエラーの発生を検知し警告を発するプログラムである。フック関数プログラム実行手段２２２は、このフック関数プログラムを実行する手段である。フック関数プログラムは、通常ユーザにより作成される。
【００２６】
ユーザプログラム実行手段２２３が、フック関数プログラム実行手段２２２の１のフック関数プログラムの処理を実行すると、このフック関数プログラムの処理において呼び出されたドライバ関数プログラム実行手段２２１の１のドライバ関数の処理が実行され、このドライバ関数プログラムの処理の実行時に与えられた情報と実行結果の値（関数プログラムの戻り値）とを情報として出力情報監視手段２０６に出力する。また、フック関数プログラム実行手段２２２からフック関数プログラムの戻り値を出力情報監視手段２０６に出力するように構成しても良い。
【００２７】
ドライバ関数プログラム実行手段２２１の実行結果の値と戻り値の情報は、当該ドライバ関数プログラムを呼び出したユーザプログラム実行手段２２３、またはフック関数プログラム実行手段２２２へ出力される。
【００２８】
図４は、出力情報監視手段２０６、ロギング制御手段２０７及びロギング処理手段２０５から構成される関数情報判断部２１５の処理フローを示すフローチャートである。関数情報判断部２１５は、図４に示すフローチャートの処理を行って、ログ情報を固定長のデータとして循環型記憶手段２０２に記憶させる。
【００２９】
ここで、ログ情報は、ログの種類を示すＩＤと、ログの内容を示すログ内容情報とから構成される。ログ情報を３２ビットのＩＤと、３２ビットのバイナリデータのログ内容情報とにして固定長のデータとすることによって、循環型記憶装置１０５へ記憶するログ情報の量が減るので、ユーザプログラム実行手段２２３、フック関数プログラム実行手段２２２、ドライバ関数プログラム実行手段２２１に対してログ情報を取ることによるスピードの低下を抑制することができる。
【００３０】
図４のステップ１０は、ログ情報を記録するか否かを示すロギング停止フラグがＯＮかＯＦＦの判断を行い、ＯＦＦであればステップ１１へ進み、ＯＮであれば関数情報判断部２１５の処理を終了する。
【００３１】
ステップ１１は、ドライバ関数プログラム実行手段２２１における処理の結果の値（関数の戻り値）が、ロギング停止要因情報記憶手段２０４に記憶されている複数のロギング停止要因情報のいずれか１つと一致する否かの判断を行い、一致した場合にステップ１４へ進み、一致しなかった場合にステップ１２へ進む。上記判断は、停止要因情報が関数プログラムの識別子と戻り値である場合には、この識別子及び戻り値が、上記ドライバ関数プログラム実行手段２２１の関数プログラムが識別子及び関数の戻り値と同じときに停止要因情報と一致したと判断する。
ステップ１４は、ロギング停止フラグをＯＮにしてステップ１３へ進む。
【００３２】
ステップ１２は、循環型記憶手段２０２がオーバーランを起こしているか否かを判断し、オーバーランを起こしている場合にはステップ１５へ進み、オーバーランを起こしていない場合にはステップ１３へ進む。ここで、オーバーランとは、記憶領域を循環使用する記憶手段において、記憶情報が多くなり循環した結果、記憶済みでどこにも転送していない有効な記憶領域に新たな情報を上書きして記憶することをいう。
ステップ１５は、循環型記憶手段２０２に記憶されるオーバーランフラグをＯＮにしてステップ１３へ進む。
【００３３】
ステップ１３は、３２ビットのＩＤと３２ビットのバイナリデータの内容情報とをログ情報として循環型記憶手段２０２に記憶させ、関数情報判断部２１５の処理を終了する。
【００３４】
図５は、ログ情報書き込み手段２１０の処理の流れを示すフローチャートである。図５のステップ１６は、ロギング停止フラグがＯＮになっているか否かの判断を行い、ロギング停止フラグがＯＦＦであればステップ１７へ進み、ＯＮであればステップ２０へ進む。
【００３５】
ステップ１７は、循環型記憶手段２０２に記憶されているオーバーランフラグがＯＮか否かの判断を行い、オーバーランフラグがＯＮの場合にステップ２１へ進み、オーバーランフラグがＯＦＦの場合にステップ１８へ進む。
ステップ２１は、オーバーラン状態であることを示すオーバーランエラーを不揮発性記憶手段２０９にログファイルとして書き込み、ステップ２２に進む。
ステップ１８は、循環型記憶手段２０２に記憶された予め定めた量の３２ビットのＩＤと３２ビットのバイナリデータを文字列に変換した情報とをログファイルとして不揮発性記憶手段２０９に記憶させ、ステップ１９へ進む。
なお、ステップ１７、２１は、オーバーラン信号をロギング制御手段２０７に送信し、ロギング制御手段２０７がロギング処理手段２０５にロギング停止命令を送ることでも実現できる。
【００３６】
ステップ１９は、ロギング停止要因情報記憶手段２０４に設定された、記憶監視手段２０７の実行を停止するウェイト時間まで記憶監視手段２０７の実行を停止（ウェイト）し、ステップ１６へ進む。ユーザプログラムを実行する間にドライバ関数プログラム実行手段２２１を実行する回数が多い程、ログ情報が発生して循環型記憶手段２０２のオーバーランが発生する可能性が高くなる。ロギング停止要因情報記憶手段２０４のウェイト時間を調節して最適値に設定する。
【００３７】
本実施の形態１によれば、ユーザが設定したロギング停止要因情報でロギングを停止させることによって、ユーザが必要とする循環型記憶装置内のログ情報への上書を防ぐことができるので、ユーザは必要なログ情報を確実に取得することができる。
【００３８】
また、本実施の形態１によれば、記憶領域に循環してログ情報を書き込む装置において、ユーザが設定したロギング停止要因でロギング機能を停止させることにより、ユーザが必要とする循環型記憶手段２０２内のログ情報への上書を防ぐことができる。また、制御処理に対してロギングによる処理速度の低下を抑制することができる。
【００３９】
なお、本実施の形態１によれば、ロギング停止要因情報記憶手段２０４に設定されたウェイト時間まで記憶監視手段２０７の実行を停止するので、記憶監視手段２０７の実行による処理速度の低下を抑制できる。
【００４０】
実施の形態２．
実施の形態１の制御装置は、ログファイルへの書き出しを停止するウェイト時間をユーザに設定された時間とした。本実施の形態２は、ログ情報判断部２３１を追加し、循環型記憶手段２０２のログ情報記憶量の増加率からウェイト時間を設定し、制御装置の状況に応じてログファイルの書き出しによる処理速度の低下をより抑制することを特徴とする。
【００４１】
図６は、実施の形態２の制御装置を示すブロック図である。図６の中で、プログラム実行手段２０１、循環型記憶手段２０２、出力情報監視手段２０６、ロギング制御手段２０７、ロギング処理手段２０５及びロギング停止要因情報記憶手段２０４は、実施の形態１と同様であるので、異なるログ情報判断部２３１について説明する。ログ情報判断部２３１は、循環型記憶手段２０２の状況を監視し、ログ情報を書き込みするタイミングをはかり、ログ情報書き込み手段２１０にログ情報を書き込みさせる。
【００４２】
ログ情報判断部２３１は、循環型記憶手段２０２の使用率を計算し、この使用率が制御装置毎に定められた所定の使用率（閾値）以上か否かの判断を行う。
循環型記憶手段２０２の使用率が上記所定の使用率以上の場合に、ログ情報書き込み手段２１０が循環型記憶手段２０２に記憶された３２ビットのＩＤと、３２ビットのバイナリデータのログ内容情報を変換した文字列とをログファイルとして不揮発性記憶手段２０９に記憶する。
また、ログ情報判断部２３１は、循環型記憶手段２０２に記憶されたログ情報の増加率から循環型記憶手段２０２の使用率が閾値以上になるウエイト時間を算出し、このウエイト時間だけ記憶監視手段２０７及びログ情報書き込み手段２１０の少なくともいずれか一方の実行を停止（ウエイト）する。
【００４３】
ログ情報判断部２３１とログ情報書き込み手段２１０のＯＳ上での優先度をユーザプログラム実行手段２２３の優先度より高くする。この優先度の設定によって、循環型記憶手段２０２に記憶されたログ情報の使用率を判断するログ情報判断部２３１と、ログ情報をログファイルへ書き込むログ情報書き込み手段２１０とが優先して処理されるため、循環型記憶手段２０２にログ情報が溜まり過ぎ、循環型記憶手段２０２がオーバーランを起こす確率が少なくなる。
【００４４】
さらに詳細には、ログ情報判断部２３１は、以下に示す使用率算出手段２３２と記憶領域監視手段２３３とを備える。
【００４５】
循環型記憶手段２０２を循環使用しない場合には、使用率算出手段２３２は、循環型記憶手段２０２の全記憶量に対する情報記憶した割合を非循環時使用率として求める。また記憶領域監視手段２３３は、上記非循環時使用率が所定の使用率を超えると全ログ情報の書き込み信号を出力する。ここで所定の使用率は、入力装置１０６により入力され、不揮発性記憶手段２０９又は主記憶装置１０２に記憶される値である。全ログ情報の書き込み信号は、循環型記憶手段２０２に記憶された全てのログ情報を不揮発性記憶手段２０９に書き込むことを指示する命令を表す信号である。
ロギング制御手段２０７は、全ログ情報の書き込み信号を受けると全ログ情報の書き込み命令をロギング処理手段２０５に送り、この命令を受け取ったロギング処理手段２０５は、ログ情報書き込み手段２１０に不揮発性記憶手段２０９へ全ログ情報を書き込ませる。
【００４６】
循環型記憶手段２０２を循環使用する場合には、使用率算出手段２３２は、循環型記憶手段２０２の全記憶量に対するロギング停止命令が出力された後に循環型記憶手段２０２に記憶した割合を循環時使用率として求める。また記憶領域監視手段２３３は、上記循環時使用率が所定の使用率を超えると全ログ情報の書き込み信号をロギング制御手段２０７へ出力する。ロギング制御手段２０７は、全ログ情報の書き込み信号を受けると全ログ情報の書き込み命令をロギング処理手段２０５に送り、ロギング処理手段２０５は、ログ情報書き込み手段２１０に不揮発性記憶手段２０９へ全ログ情報を書き込ませる。
【００４７】
図７は、ログ情報判断部２３１とログ情報書き込み手段２１０とが行う処理のフローチャートである。ステップ２４は、ログ情報判断部２３１及びログ情報書き込み手段２１０に関する制御装置内の処理の優先度をユーザプログラム実行手段２２３の優先度よりも高く設定する。また、ログ情報判断部２３１及びログ情報書き込み手段２１０の優先度をプログラム実行手段２０１より高く設定しても良い。
【００４８】
ステップ１６は、主記憶装置１０２に格納され、ログ情報の記憶の要否を示すロギング停止フラグがＯＮになっているか否かの判断を行い、フラグがＯＦＦであればステップ１７へ進み、ＯＮであればステップ２０へ進む。なお、ロギング停止フラグの初期値は、通常ＯＮとする。
【００４９】
ステップ１７は、主記憶装置１０２に格納され、循環型記憶手段２０２のオーバーランの有無を示すオーバーランフラグがＯＮか否かの判断を行い、オーバーランフラグがＯＮの場合にステップ２１へ進み、オーバーランフラグがＯＦＦの場合にステップ２５へ進む。なお、オーバーランフラグの初期値は、通常ＯＦＦとする。
【００５０】
ステップ２５は、循環型記憶手段２０２の使用率が所定の使用率（閾値）以上か否かの判断を行い、使用率が所定の使用率（閾値）以上の場合には、ステップ１８へ進み、使用率が所定の使用率（閾値）未満の場合には、ステップ２６へ進む。循環型記憶手段２０２の使用率が所定の使用率（閾値）以上となった後に、ログ情報を不揮発性記憶手段２０９に記憶されるログファイルへ書き込むことによって、ログファイルへの書き込み回数が減り、プログラム処理手段２０１及び関数情報判断部２１５に対してログファイルへの書き込み処理によるスピード低下を抑制することができる。
【００５１】
ステップ１８は、循環型記憶手段２０２に記憶された３２ビットのＩＤと、３２ビットのバイナリデータの内容情報を文字列に変換した文字列とをログファイルに書き込み、ステップ２６へ進む。
【００５２】
ステップ２６は、循環型記憶手段２０２に記憶されているログ情報の増加率の計算を行い、ステップ２７へ進む。ここでログ情報の増加率とは、増加したログ情報量（ビット数）を単位時間で除した値である。
【００５３】
ステップ２７は、ステップ２６において計算した、循環型記憶手段２０２に記憶されたログ情報の増加率から、循環型記憶装置１０５の使用率が所定の使用率（閾値）以上となるウエイト時間を算出し、このウエイト時間だけウエイトした後、ステップ２４へ進む。ここで、ウエイト時間は、（循環型記憶装置の全記憶容量×所定の使用率（閾値）／増加率）によって計算される。
【００５４】
ウエイト時間を適切な値に調節することによって、ログ情報書き込み手段２１０の無駄な書き込み処理を無くすことができる。上記ウェイト時間の調節によって、プログラム実行手段２０１及び関数情報判断部２１５に対して書き込み処理の頻度が高いことによるスピード低下を抑制することができる。
【００５５】
ステップ２０は、循環型記憶手段２０２が使用されているか否かの判断を行い、使用されている場合にステップ２２へ進み、使用されていない場合にステップ２６へ進む。
ステップ２１は、循環型記憶装置１０５がオーバーラン状態であることを示すオーバーランエラーをログファイルに記憶させた後、ステップ２２へ進む。
【００５６】
ステップ２２は、循環型記憶手段２０２に記憶された３２ビットのＩＤと３２ビットのバイナリデータの内容情報から構成されたログ情報を全て文字列に変換して、変換結果をログファイルに記憶させ、ステップ２６へ進み、循環型記憶装置１０５内のログ情報の増加率を計算し、使用率が所定の使用率以上になる時間までログ情報判断部２３１、ログ情報書き込み手段２１０の処理をウェイトする。
【００５７】
本実施の形態２によれば、循環型記憶手段２０２のログ情報記憶量の増加率からウェイト時間を設定し、このウェイト時間までログ情報を書き込むことを停止することによって、制御装置の状況に応じてログ情報を書き込むのを停止する時間を調整できるので、ログファイルへの書き出しによる処理速度の低下をより抑制することができる。
【図面の簡単な説明】
【００５８】
【図１】本発明の実施の形態１による制御装置のブロック図である。
【図２】本発明の実施の形態１による制御装置のハードウェア構成図である。
【図３】本発明の実施の形態１によるプログラム実行手段の詳細ブロック図である。
【図４】本発明の実施の形態１による出力情報監視手段及びロギング制御手段及びロギング処理手段のフローチャートである。
【図５】本発明の実施の形態１によるログ情報書き込み手段のフローチャートである。
【図６】本発明の実施の形態２による制御装置のブロック図である。
【図７】本発明の実施の形態２による使用率算出手段、記憶領域監視手段及びログ情報書き込み手段のフローチャートである。
【符号の説明】
【００５９】
１０１  中央演算処理装置、１０２  主記憶装置、１０４  不揮発性記憶装置、１０５  循環型記憶装置、１０６  入力装置、１０７  出力装置、２０１  プログラム実行手段、２０２  循環型記憶手段、２０３  ロギング停止要因情報設定手段、２０４  ロギング停止要因情報記憶手段、２０５  ロギング処理手段、２０６  出力情報監視手段、２０７  ロギング制御手段、２０９  不揮発性記憶手段、２１０  ログ情報書き込み手段、２１１  関数プログラム実行手段、２１５  関数情報判断部、２１６  ロギング停止要因設定記憶手段、２２１  ドライバ関数プログラム実行手段、２２２  フック関数プログラム実行手段、２２３  ユーザプログラム実行手段、２３１  ログ情報判断部、２３２  使用率算出手段、２３３  記憶領域監視手段。
【図１】
2007299126.tif 000003
【図２】
2007299126.tif 000004
【図３】
2007299126.tif 000005
【図４】
2007299126.tif 000006
【図５】
2007299126.tif 000007
【図６】
2007299126.tif 000008
【図７】
2007299126.tif 000009