(57)【特許請求の範囲】
【請求項１】
所定の制御を実行して該制御に関するデータを保持する制御装置と、
前記制御装置とアクセス可能に接続され、前記制御装置の保持するデータを時系列的に記憶する記憶装置と、
前記記憶装置とアクセス可能に接続され、前記記憶装置が記憶した前記データを読み出してロギングするロギング装置と、
を備え、
前記制御装置は、
前記制御装置に保持された前記データを取得して前記記憶装置に送出して書き込む機能部を有し、
前記記憶装置は、
前記機能部により書き込まれる前記データをリングバッファ形式で時系列的に記憶する記憶領域と、
前記機能部による前記記憶領域に対する前回の書き込み処理において前記データが書き込まれた位置を示す書き込み位置情報を記憶する書き込み位置領域と、
前記ロギング装置による前記記憶領域からの前回の読み出し処理において前記データが読み出された位置を示す読み出し位置情報を記憶する読み出し位置領域と、
を有し、
前記機能部は、前記データを前記記憶領域に書き込む際に前記書き込み位置情報と前記読み出し位置情報とを前記記憶装置から取得してこれらの情報を照合し、これらの情報が一致する場合には前記データの取得を停止し、これらの情報が一致しない場合には前記記憶領域における前記書き込み位置情報で示される位置の次の位置に前記データを記録し、
前記制御装置からロギング装置に対して、前記記憶装置を介してプッシュ型のロギングを行なうこと
を特徴とするロギングシステム。
【請求項２】
前記ロギング装置は、前記機能部を、前記制御装置内に自動作成すること
を特徴とする請求項１に記載のロギングシステム。
【請求項３】
前記ロギング装置は、
ロギング対象となるデータを指定する指定情報を設定または変更する手段と、
前記設定または変更された指定情報を基に前記機能部を前記制御装置内に自動作成する手段と、
を備えることを特徴とする請求項２に記載のロギングシステム。
【請求項４】
前記機能部を前記制御装置が実行可能なプログラムとして自動生成すること
を特徴とする請求項２に記載のロギングシステム。
【請求項５】
前記データを制御の周期毎に取得できない事を検出・通知する手段を備えること
を特徴とする請求項１に記載のロギングシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、制御装置の動作状態や制御対象の状態を監視・解析するために制御装置の制御データ（入出力データおよび内部データ）を収集するロギング処理を行うロギングシステムに関し、さらに詳しくは制御データを制御周期と同期し且つ制御周期毎にロギングするロギングシステムに関する。
【背景技術】
【０００２】
従来のポーリング型のロギングを行うロギングシステムは、所定の制御を行う制御装置と、制御データのロギングを実行するロギング装置と、を備えて構成される。ここで、制御装置は、制御プログラムに従って所定の制御機能を実行する制御実行部と、制御実行部の制御対象となる制御データと、を備えて構成される。また、ロギング装置は、制御装置から制御データを取得し内部メモリに記録するロギング実行部と、制御装置と自ロギング装置の間で制御データをやりとりするために電気的に接続された内部バスと、制御装置から取得した制御データを時系列に記録するための内部メモリと、を備えて構成される。
【０００３】
このように構成された従来のポーリング型のロギングを行うロギングシステムにおいては、ロギング実行部は周期的に制御データを取得し、これを内部メモリに時系列に記憶することによりロギングを実行する。制御データの取得においては、内部バスに流れるデータを直接取得する方法、または内部バス経由で制御装置にデータ取得の要求を行いその応答としてデータを取得する方法が用いられる。前者では内部バスに流れる制御装置の入出力データを比較的簡単に取得可能であるのに対し、後者では制御装置の内部データを含めた制御データを取得可能である。
【０００４】
また、ロギング実行部は制御実行部の制御周期を監視することにより、制御データの取得を制御実行部の制御周期に同期する。制御周期の監視においては、内部バス上を流れる入出力データのパターンを監視する方法と、内部バス経由で制御装置に制御周期の終了時点を問い合わせる方法が考えられる（たとえば、特許文献１参照）。
【０００５】
また、従来のロギングシステムとしては、プッシュ型のロギングを行うロギングシステムも用いられている。このようなプッシュ型のロギングシステムは、所定の制御を行う制御装置と、制御データのロギングを実行するロギング装置と、を備えて構成される。ここで、制御装置は、制御プログラムに従って所定の制御機能を実行する制御実行部と、制御実行部の制御対象となる制御データと、制御データの一時的時系列記録を実施するデータ収集部と、制御データを一時的に時系列記録するための一時メモリと、一時メモリ内の時系列データの読出し可否を示す読出し許可情報と、を備えて構成される。
【０００６】
ここでデータ収集部は、専用のハードウェアまたはソフトウェアとして実現する場合と、制御実行部で実行可能な制御プログラムの一部として実現する場合とが考えられる。
【０００７】
また、ロギング装置は、制御装置から制御データを取得し内部メモリに記録するロギング実行部と、制御装置と自ロギング装置の間で制御データをやりとりするために電気的に接続された内部バスと、制御装置から取得した制御データを時系列に記録するための内部メモリと、を備えて構成される。
【０００８】
このように構成された従来のプッシュ型のロギングを行うロギングシステムにおいては、ロギング実行部はデータ収集部により制御装置内の一時メモリに時系列記録されたデータを取得し、これをロギング装置内の内部メモリに時系列に記録することによりロギングを実行する。
【０００９】
先ず制御装置では、データ収集部が制御実行部の制御周期毎に制御データを一時メモリに時系列に記録する。同時にデータ収集部は一時メモリ内の時系列データが特定の条件を満たした時に、読出し許可フラグを読出し許可状態にする。この条件としては、時系列データが一時メモリの容量に達すること、制御データが特定の値に変化すること、あるいは制御装置で特定の事象が発生すること、等が考えられる。
【００１０】
一方、ロギング装置では、ロギング実行部は周期的にロギング装置内の読出し許可フラグを監視する。この監視は、ロギング実行部から内部バス経由で制御装置に読出し許可フラグの取得要求を行い、その応答として読出し許可フラグを取得する方法で実行される。
【００１１】
監視の結果、読出し許可フラグの状態が読出し許可状態であれば、ロギング実行部は制御装置内の一時メモリの時系列データを一括で取得し、これをロギング装置内の内部メモリに時系列に記録する。ロギング実行部はこの動作を繰り返す事により効率的に制御データのロギングを実行する事ができる。
【００１２】
また、ロギング実行部が一時メモリ内のデータを取得している間の制御データもロギングするために、一時メモリを複数設けることも考えられている（たとえば、特許文献２参照）。
【００１３】
【特許文献１】特開２０００−２３５４１２号公報
【特許文献２】特開２００４−３１０５９２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
しかしながら、上記従来のポーリング型のロギングを行うロギングシステムでは制御実行部の制御周期毎に、制御周期の監視、制御データの取得、内部メモリへの時系列記録を行う必要があり、制御実行部の制御周期が短い場合にはこれを実現する事は困難である。
【００１５】
また、制御装置の制御実行部の制御周期に比して高速なロギング実行部の動作を実現するために、ロギング装置を制御装置よりも高速・高価なハードウェアで構成する必要があるが、これは制御することを主たる目的とする制御システム全体から考えると本末転倒である。
【００１６】
また、上記従来のポーリング型のロギングを行うロギングシステムにおいて、制御周期の監視および制御データの取得を前述の前者の方式で行った場合、取得できる制御データは内部バス上に流れている入出力データのみであり、制御装置内の内部データを取得することができない。
【００１７】
また、制御周期の監視および制御データの取得を前述の後者の方式で行った場合、ロギング実行部は監視および取得の度に制御装置へ要求を行うため、制御装置はこれに応答する処理を実行する必要があり、制御装置の主たる目的である制御動作に遅延等の悪影響を及ぼしてしまう。また、制御装置が制御動作を優先するために、ロギング実行部からの要求への応答処理を遅延する場合、ロギング実行部は制御周期と同期したロギングを実現することが不可能となる。
【００１８】
一方、従来のプッシュ型のロギングを行うロギングシステムでは、ロギング実行部は読出し許可フラグの監視および一時メモリ内の時系列データ取得の度に制御装置へ要求を行うため、制御装置はこれに応答する処理を実行する必要があり、制御装置の主たる目的である制御動作に遅延等の悪影響を及ぼす。この場合、上記ポーリング型のロギングシステムに比して、データ取得処理は効率化されているため、制御装置に与える影響は全体としては小さいものの、一度に一括でデータを取得するために瞬間的に制御装置に悪影響を与える。
【００１９】
また、制御装置が制御動作を優先するために、ロギング実行部からの要求への応答処理を遅延する場合、ロギング実行部の一時メモリからのデータ取得に遅れが生じ、データ収集部による一時メモリへのデータの上書きが発生することにより、時系列データに欠落が発生する。
【００２０】
さらに、プッシュ型のロギングを行うロギングシステムでは制御装置内にデータ収集部を設ける必要があるが、専用のハードウェアまたはソフトウェアで実現する場合にはコストがかかる。データ収集部を制御実行部で実行可能な制御プログラムの一部として実現する場合には、ロギング対象の制御データやロギングの条件が変更になる度にプログラムを作成する必要が発生し、人的コストがかかる。
【００２１】
本発明は、上記に鑑みてなされたものであって、制御装置のデータをロギングするロギングシステムであって、制御装置と同等以下の性能のハードウェアを使用したロギング装置により、ロギング処理時に制御装置に負荷を与えずに且つ制御周期の大小に関わらず制御周期毎のデータのロギングの実行が可能なロギングシステムを得ることを目的とする。
【課題を解決するための手段】
【００２２】
上述した課題を解決し、目的を達成するために、本発明にかかるロギングシステムは、所定の制御を実行して該制御に関するデータを保持する制御装置と、制御装置とアクセス可能に接続され、制御装置の保持するデータを時系列的に記憶する記憶装置と、記憶装置とアクセス可能に接続され、記憶装置が記憶したデータを読み出してロギングするロギング装置と、を備え、制御装置は、制御装置に保持されたデータを取得して記憶装置に送出して書き込む機能部を有し、記憶装置は、機能部により書き込まれるデータをリングバッファ形式で時系列的に記憶する記憶領域と、機能部による記憶領域に対する前回の書き込み処理においてデータが書き込まれた位置を示す書き込み位置情報を記憶する書き込み位置領域と、ロギング装置による記憶領域からの前回の読み出し処理においてデータが読み出された位置を示す読み出し位置情報を記憶する読み出し位置領域と、を有し、機能部は、データを記憶領域に書き込む際に書き込み位置情報と読み出し位置情報とを記憶装置から取得してこれらの情報を照合し、これらの情報が一致する場合にはデータの取得を停止し、これらの情報が一致しない場合には記憶領域における書き込み位置情報で示される位置の次の位置にデータを記録し、制御装置からロギング装置に対して、記憶装置を介してプッシュ型のロギングを行なうことを特徴とする。
【発明の効果】
【００２３】
この発明によれば、制御装置とロギング装置との間にデータの時系列バッファリング用の記憶装置を有し、制御装置のデータを一旦該記憶装置に記憶し、記憶装置に記憶したデータをロギング装置に取り込んで記憶する。これにより、ロギング装置はデータを任意のタイミングで効率良く且つ高速に取得することができ、制御装置の制御周期が短い場合でも制御周期毎のロギングを実現することができる、という効果を奏する。
【００２４】
また、この発明によれば、ロギング装置が制御装置の制御周期に比して高速の動作を行う必要がないため、制御装置と同等またはそれ以下の性能を有する構成によりロギング装置を実現可能である、という効果を奏する。
【００２５】
また、ロギング装置が制御装置にロギング処理要求を出すことなく、ロギング装置が制御データを取得する際に制御装置はロギング装置からのデータ取得要求への応答処理を行う必要がないため、制御装置に負荷がかからず制御機能の実行に影響を及ぼすことがない、という効果を奏する。
【発明を実施するための最良の形態】
【００２６】
以下に、本発明にかかるロギングシステムの実施の形態を図面に基づいて詳細に説明する。なお、本発明は以下の記述に限定されるものではなく、本発明の要旨を逸脱しない範囲において適宜変更可能である。
【００２７】
実施の形態．
図１は、本発明の好適な実施の形態にかかるロギングシステムの概略構成を示す図である。図１に示すように本実施の形態にかかるロギングシステムは、シーケンス制御を行なうための制御装置１１と、制御データの時系列バッファリング用の記憶手段である共有メモリ２１と、制御装置１１内の制御データを取得するためのロギング装置３１と、ロギングパラメータであるロギング対象となる制御データを指定する指定情報・ロギングの条件を指定するロギング条件情報の設定手段でありロギング設定ツール４２がインストールされたパーソナルコンピュータ４１と、を備えて構成される。
【００２８】
制御装置１１は、制御実行部１３とデータ収集部１５とを備える。制御実行部１３は、自制御装置１１が制御を行なうための制御プログラム１２に従って所定の制御機能を実行する制御実行部１３と、ロギング対象である制御実行部１３の制御に関する制御データ１４と、を備える。また、データ収集部１５は、パーソナルコンピュータ４１内のロギング設定ツール４２で設定したロギング対象の制御データ１４を取得し、共有メモリ２１に記録する。
【００２９】
また、データ収集部１５は、ロギング設定ツール４２で設定された、ロギング対象となる制御データを指定する指定情報・ロギングの条件を指定するロギング条件情報を元に、制御装置１１が制御可能なシーケンスプログラムとしてロギング装置３１の生成部３４が生成したプログラムによりその機能が実現されている。制御装置１１とロギング装置３１とは内部バス５１により電気的に接続されている。
【００３０】
共有メモリ２１は、制御装置１１で生成された制御データ１４を時系列的にバッファリングする記憶手段、いわゆる共有メモリであり、制御装置１１とロギング装置３１との双方向からアクセスすることができ、時系列のリングバッファリング形式で機能する。
【００３１】
この共有メモリ２１は、制御データ１４を記憶するために十分な容量があることとする。この共有メモリ２１には、たとえば図１に示すように制御データレコード（１）、制御データレコード（２）、・・・、制御データレコード（Ｍ）、のように制御データ１４が時系列的に記憶される。ここでは、制御データレコード（１）が時系列的に一番古いデータであり、制御データレコード（Ｍ）が時系列的に一番新しいデータである。
【００３２】
また、共有メモリ２１は、制御装置１１におけるシーケンス制御周期毎にデータ収集部１５が制御データ１４を自共有メモリ２１に書き込んだ位置を示す書き込み位置情報を、自メモリ内の領域「書き込み位置」に記憶する。また、共有メモリ２１は、制御装置１１におけるシーケンス制御周期毎にロギング装置３１が自共有メモリ２１から制御データ１４を読み出した位置を示す読み出し位置情報を、自メモリ内の領域「読み出し位置」に記憶する。
【００３３】
ロギング装置３１は、内部メモリ３２とロギング実行部３３と生成部３４とを有する。内部メモリ３２は、ロギング対象となる制御装置１１内の制御データ１４を最終的に格納するためのロギング装置３１内の内部メモリである。そして内部メモリ３２は、ロギング対象となる制御データ１４を格納するために十分な容量を有する。
【００３４】
この内部メモリ３２には、たとえば図１に示すように制御データレコード（Ｘ）、制御データレコード（１）、制御データレコード（２）、・・・、制御データレコード（Ｍ）、制御データレコード（Ｎ）のように制御データ１４が時系列的に記憶される。ここでは、制御データレコード（Ｘ）が時系列的に一番古いデータであり、制御データレコード（Ｎ）が時系列的に一番新しいデータであり、元々、制御データレコード（Ｘ）が内部メモリ３２に記憶されていた状態において制御データレコード（１）、制御データレコード（２）、・・・、制御データレコード（Ｍ）、制御データレコード（Ｎ）がこの順で記憶された状態を示している。
【００３５】
ロギング実行部３３は、ロギング対象となる制御データ１４をロギング装置内に収集する。すなわち、ロギング実行部３３は、制御装置１１内のデータ収集部１５により制御装置１１とロギング装置３１との間にある共有メモリ２１に書き込まれたロギング対象となる制御データ１４を共有メモリ２１から取得し、ロギング装置３１内の内部メモリ３２に書き込んで記憶させる実行部である。
【００３６】
また、ロギング実行部３３は、ロギング設定ツール４２で設定された、ロギング対象となる制御データを指定する指定情報・ロギングの条件を指定するロギング条件情報を元に、ロギング装置３１が制御可能なプログラムとして生成部３４が生成したプログラムによりその機能が実現されている。
【００３７】
生成部３４は、制御装置１１内の制御データ１４をロギング装置３１内の制御装置１１とロギング装置３１との間にある共有メモリ２１に書き込むデータ収集部１５を、制御装置１１が実行することのできるシーケンスプログラムとして自動生成する。すなわち、生成部３４は、ロギング設定ツール４２で設定されたロギング対象となる制御データを指定する指定情報・ロギングの条件を指定するロギング条件情報を元に、データ収集部１５を制御装置１１が実行することのできるシーケンスプログラムとして自動生成する。
【００３８】
また、生成部３４は、制御装置１１とロギング装置３１との間にある共有メモリ２１に書き込まれた制御データ１４をロギング装置３１内の内部メモリ３２に書き込むためのロギング実行部３３を、ロギング装置３１が実行することのできるプログラムとして自動生成する。すなわち、生成部３４は、ロギング設定ツール４２で設定されたロギング対象となる制御データを指定する指定情報・ロギングの条件を指定するロギング条件情報を元に、ロギング実行部３３をロギング装置３１が実行することのできるプログラムとして自動生成する。
【００３９】
つぎに、以上のように構成された本実施の形態にかかるロギングシステムにおけるロギング処理方法について説明する。図２は、本実施形態にかかるロギングシステムにおけるロギング処理の対象となる制御装置１１内の制御データ１４を設定するロギングパラメータの設定方法を示すフローチャートである。
【００４０】
まず、パーソナルコンピュータ４１内のロギング設定ツール４２により、ロギング対象となる制御データ１４の種類、サイズ等のロギングパラメータの入力設定を行なう（ステップＳ１００）。ステップＳ１００で設定されたロギング対象となる制御データ１４は、通信ケーブル４３を経由してロギング装置３１内のたとえば内部メモリ３２に書き込まれる（ステップＳ１１０）。
【００４１】
つぎに、ロギング装置３１では、ステップＳ１００で設定されステップＳ１１０で内部メモリ３２に書き込まれたロギングパラメータに基づいて、データ収集部１５として制御装置１１が実行することのできるシーケンスプログラムを生成部３４が自動生成し（ステップＳ１２０）、該自動生成されたシーケンスプログラム（データ収集部１５）を内部バス５１経由で制御装置１１に書き込む（ステップＳ１３０）。
【００４２】
また、ロギング装置３１は、ステップＳ１００で設定されステップＳ１１０で内部メモリ３２に書き込まれたロギングパラメータに基づいて、制御装置１１とロギング装置３１との間にある共有メモリ２１に書き込まれた制御データ１４をロギング装置３１内の内部メモリ３２に書き込むためのロギング実行部３３としてロギング装置３１が実行することのできるプログラムを生成部３４が自動生成し、ロギング装置３１に書き込む。
【００４３】
データ収集部１５を書き込み後、制御装置１１を実行すると、パーソナルコンピュータ４１内のロギング設定ツール４２で設定した種類、サイズの制御データ１４がデータ収集部１５によって制御装置１１とロギング装置３１の間にある共有メモリ２１に書き込まれる。また、制御装置１１が制御処理を実行中の場合には、ロギング装置３１が制御装置１１に内部バス５１経由で書き込んだ時点で上述のロギングが開始される。
【００４４】
つぎに、制御装置１１が制御データ１４を制御装置１１とロギング装置３１の間にある共有メモリ２１に書き込む処理の手順について図３を参照しながら説明する。図３は、本実施の形態にかかるロギングシステムにおいて、制御装置１１が制御データ１４を共有メモリ２１に書き込む処理を説明するためのフローチャートである。
【００４５】
まず、ロギング装置３１の起動時は、ロギング装置３１内の内部メモリ３２のデータはクリアされた状態である。また、制御装置１１とロギング装置３１との間にある共有メモリ２１内の領域「書き込み位置」、領域「読み出し位置」には、共有メモリ２１の先頭位置が代入されている。そして、図２に示した手順でロギング処理を開始させると、ロギングパラメータの設定により指定された制御データ１４を、制御装置１１のデータ収集部１５が取得する（ステップＳ２００）。
【００４６】
取得した制御データ１４を制御装置１１とロギング装置３１との間の共有メモリ２１に書き込む際の書き込み位置を知るために、データ収集部１５は、前回のデータ収集で共有メモリ２１へ制御データ１４を書き込んだ位置を、共有メモリ２１の領域「書き込み位置」から書き込み位置情報として取得する（ステップＳ２１０）。ただし、初期時は前回の書き込み位置情報が存在しないので、初期化時に書き込んだ制御装置１１とロギング装置３１との間の共有メモリ２１の先頭位置を使用する。
【００４７】
そして、たとえばロギング装置３１のトラブル等により共有メモリ２１から制御データ１４を取得できなかった場合に、データ収集部１５が共有メモリ２１に制御データ１４を上書きすることによって未だロギング実行部３３が内部メモリ３２に記録していない制御データ１４が消されないように（上書きされないように）、データ収集部１５は、前回にロギング実行部３３が内部メモリ３２に記録するために共有メモリ２１から制御データ１４を読み出した位置の情報として読み出し位置情報を取得する（ステップＳ２２０）。
【００４８】
そして、前述した理由から、データ収集部１５は取得した読み出し位置情報と書き込み位置情報とを照合する（ステップＳ２３０）。
【００４９】
ここで、取得した読み出し位置情報と書き込み位置情報とを照合した結果、読み出し位置と書き込み位置とが一致する場合には（ステップＳ２３０肯定）、データ収集部１５による共有メモリ２１への制御データ１４の上書きを防ぐために、制御装置１１内のデータ収集部１５は制御データ１４の取得を停止する。
【００５０】
さらに、この制御データの取得停止をユーザに通知するために、データ収集部１５はロギング装置３１を経由して制御データ取得停止情報をパーソナルコンピュータ４１に通知する。パーソナルコンピュータ４１は、ロギングが実行されなかった旨の内容を伝えるエラーメッセージを接続される表示装置等に表示する（ステップＳ２４０）。これにより、本実施の形態にかかるロギングシステムにおいては、制御データ１４をシーケンス制御周期毎に取得できていない事を検出・通知する機能が実現されている。
【００５１】
一方、ステップＳ２３０に戻って、取得した読み出し位置と書き込み位置とを照合した結果、書き込み位置と読み出し位置とが異なる場合は（ステップＳ２３０否定）、ステップＳ２１０において取得した書き込み位置をインクリメントする（ステップＳ２５０）。そして、制御装置１１とロギング装置３１の間の共有メモリ２１のメモリ領域において、インクリメントされた書き込み位置にステップＳ２００で取得した制御データ１４を書き込む。
【００５２】
さらに、前述のステップＳ２５０でインクリメントした書き込み位置を、制御装置１１とロギング装置３１の間の共有メモリ２１の領域「書き込み位置」に書き込み位置情報として書き込む（ステップＳ２６０）。
【００５３】
そして、上述したステップＳ２００〜ステップＳ２６０までの処理を一定周期で、たとえば制御装置１１の制御実行部１３における制御周期と同期して制御周期毎に実行することにより、制御装置１１内のロギング対象データである制御データ１４を制御装置１１とロギング装置３１の間の共有メモリ２１に時系列的に書き込むことができる。また、ロギング装置３１内のロギング実行部３３が未だ内部メモリ３２に書き込んでいない制御データ１４の上書きを防止し、通知する機能を実現することができる。
【００５４】
つぎに、ロギング装置３１内のロギング実行部３３が共有メモリ２１から制御データ１４を取得して内部メモリ３２へ書き込む処理の手順について図４を参照しながら説明する。図４は、本実施の形態にかかるロギングシステムにおいて、ロギング実行部３３が共有メモリ２１から制御データ１４を取得して内部メモリ３２へ書き込む処理を説明するためのフローチャートである。
【００５５】
ロギング装置３１内のロギング実行部３３は、共有メモリ２１のどこから制御データ１４を取得するかを知るために、共有メモリ２１内の領域「読み出し位置」に書き込まれた読み出し位置情報を読み出して取得する。ただし、初期時は前回の読み出し位置情報が存在しないので、初期化時に書き込んだ共有メモリ２１の先頭位置を使用する（ステップＳ３００）。
【００５６】
つぎに、ロギング装置３１内のロギング実行部３３は、共有メモリ２１のどこまで制御データ１４を取得するかを知るために、共有メモリ２１内の領域「書き込み位置」から書き込み位置情報を読み出す（ステップＳ３１０）。
【００５７】
つぎに、ロギング装置３１ではステップＳ３００〜ステップＳ３１０で読み出した読み出し位置から書き込み位置までの共有メモリ２１内の制御データ１４を取得する（ステップＳ３２０）。すなわち、ロギング装置３１内のロギング実行部３３が、ステップＳ３００〜ステップＳ３１０で読み出した読み出し位置から書き込み位置までの共有メモリ２１内の制御データ１４を読み出して、ロギング装置３１内の内部メモリ３２へ書き込む。書き込み先の内部メモリ３２においては、前回書き込みが終了した位置から書き込みが行われる。
【００５８】
内部メモリ３２への制御データ１４の書き込み完了後、ロギング装置３１内のロギング実行部３３は、共有メモリ２１から制御データ１４を読み出した位置を共有メモリ２１の領域「読み出し位置」に読み出し位置情報として書き込み、設定する。また、ロギング装置３１内のロギング実行部３３は、ロギング装置３１内の内部メモリ３２に制御データ１４の書き込みが完了した書き込み位置を、内部メモリ３２内の領域「書き込み位置」に書き込み位置情報として書き込み、設定する（ステップＳ３３０）。
【００５９】
上述したステップＳ３００〜ステップＳ３３０までの処理を一定周期で、たとえば制御装置１１の制御実行部１３における制御周期と同期して制御周期毎に実行することにより、制御装置１１とロギング装置３１との間にある共有メモリ２１に書き込まれたロギング対象の制御データ１４を、ロギング実行部３３によってロギング装置３１内の内部メモリ３２に書き込むことができる。
【００６０】
以上のような本実施の形態にかかるロギングシステムにおいては、上述した処理を実行することにより、ロギング装置３１が制御装置１１にロギング処理要求を出すことなく、制御周期と同期して制御装置１１内の制御データ１４を制御周期毎にロギング装置３１内の内部メモリ３２に収集することができる。すなわち、本実施の形態にかかるロギングシステムにおいては、制御装置１１とロギング装置３１との間に制御データ１４の時系列バッファリング用の共有メモリ２１を有し、制御装置１１の制御データ１４を一旦該共有メモリ２１に記憶し、共有メモリ２１に記憶した制御データ１４をロギング装置３１に取り込んで記憶する。
【００６１】
これにより、ロギング装置３１は制御データ１４を任意のタイミングで効率良く且つ高速に取得することができ、制御装置１１の制御周期が短い場合でも制御周期毎のロギングを実現することができる。また、ロギング処理時に制御装置１１の制御動作に影響を与えることなくロギング装置３１は制御装置１１内のロギング対象である制御データ１４を取得することができる。
【００６２】
また、本実施の形態にかかるロギングシステムにおいては、ロギング処理要求を利用しないので、制御装置１１の制御処理優先によるロギング装置３１からのロギング処理要求待ちによる制御データ１４の取りこぼしを防ぐ事ができる。
【００６３】
そして、ロギング装置３１が制御データ１４を取得する際に制御装置１１はロギング装置３１からのデータ取得要求への応答処理を行う必要がないため、制御装置１１に負荷がかからず制御装置１１の制御機能の実行に影響を及ぼすことがない。
【００６４】
また、上記のような本実施の形態にかかるロギングシステムでは、ロギング装置３１のロギング実行部３３において制御装置１１の制御実行部１３の制御周期に比して高速の動作を行う必要がないため、ロギング装置３１を制御装置１１と同等またはそれ以下の性能を有するハードウェア構成により実現可能である。
【００６５】
そして、制御装置１１が実行可能であり且つ制御装置１１が制御データ１４をプッシュするためのプログラムを自動生成する機能をロギング装置３１に備えた場合には、制御装置１１内にデータ収集用の専用のハードウェアまたはソフトウェアを装備する必要がない。また、ロギング対象の制御データやロギングの条件が変更になる度にプログラムを作成する必要がない。ロギングシステムの運営に関して、物的コストおよび人的コストを抑制することができる。
【００６６】
さらに、制御データ１４を制御周期毎に取得できない事を検出・通知する手段を備えた場合には、装置の故障または過大負荷により制御データのロギングに欠落が発生したことを検出・通知し、ユーザに通知することができる。
【００６７】
さらに、ロギング対象となる制御データを指定する指定情報・ロギングの条件を指定するロギング条件情報の設定手段であるロギング設定ツール４２と、これらの情報から制御装置が実行可能なプログラムを生成する手段である生成部３４を備えた場合には、ユーザはロギング対象の制御データやロギングの条件の変更を容易に行うことが可能となる。
【産業上の利用可能性】
【００６８】
以上のように、本発明にかかるロギングシステムは、プログラマブルコントローラ（ＰＬＣ）などの制御装置の動作状態や制御対象の状態を監視・解析するために制御装置の制御データ（入出力データおよび内部データ）を収集するロギング処理を行うロギングシステムに有用である。
【図面の簡単な説明】
【００６９】
【図１】本発明の実施の形態にかかるロギングシステムの概略構成を示す図である。
【図２】本発明の本実施形態にかかるロギングシステムにおけるロギング処理の対象となる制御装置内の制御データを設定するロギングパラメータの設定方法を示すフローチャートである。
【図３】本発明の実施の形態にかかるロギングシステムにおいて、制御装置が制御データを共有メモリに書き込む処理を説明するためのフローチャートである。
【図４】本発明の実施の形態にかかるロギングシステムにおいて、ロギング実行部が共有メモリから制御データを取得して内部メモリへ書き込む処理を説明するためのフローチャートである。
【符号の説明】
【００７０】
１１  制御装置
１２  制御プログラム
１３  制御実行部
１４  制御データ
１５  データ収集部
２１  共有メモリ
３１  ロギング装置
３２  内部メモリ
３３  ロギング実行部
３４  生成部
４１  パーソナルコンピュータ
４２  ロギング設定ツール
４３  通信ケーブル
５１  内部バス
【図１】
0004659643.tif 000002
【図２】
0004659643.tif 000003
【図３】
0004659643.tif 000004
【図４】
0004659643.tif 000005