(57)【要約】【課題】外部装置から受信されたデータの履歴を記録する際に要するプロセッサーの処理量を削減すること。【解決手段】外部に接続された機器から受信されたデータを保持する通信バッファーと、前記データを記録可能な領域であるログ記録領域を複数有するメモリーと、前記通信バッファーに保持されたデータを読み出し、読み出されたデータを前記メモリーの前記ログ記録領域に記録するロギング処理を所定のタイミングで繰り返し行うメインプロセッサーと、を備え、前記メインプロセッサーは、前記ロギング処理を行う際に、一つ前のタイミングで実行されたロギング処理において記録に用いられたログ記録領域とは異なるログ記録領域に対して前記データを記録する。【選択図】図１
2019200744.tif 000002
【特許請求の範囲】
【請求項１】
外部に接続された機器から受信されたデータを保持する通信バッファーと、
前記データを記録可能な領域であるログ記録領域を複数有するメモリーと、
前記通信バッファーに保持されたデータを読み出し、読み出されたデータを前記メモリーの前記ログ記録領域に記録するロギング処理を所定のタイミングで繰り返し行うメインプロセッサーと、を備え、
前記メインプロセッサーは、前記ロギング処理を行う際に、一つ前のタイミングで実行されたロギング処理において記録に用いられたログ記録領域とは異なるログ記録領域に対して前記データを記録する、制御装置。
【請求項２】
最新のロギング処理でデータの記録に用いられたログ記録領域の位置を示す情報である記録位置情報を記憶する位置記憶部をさらに備える、請求項１に記載の制御装置。
【請求項３】
前記メモリーは、複数の前記ログ記録領域を有する領域群を複数有し、
前記メインプロセッサーは、一の領域群を現用系として使用し、他の領域群を待機系として使用し、現用系の領域群に対して前記データを記録する、請求項１又は２に記載の制御装置。
【請求項４】
外部に接続された機器から受信されたデータを保持する通信バッファーと、前記データを記録可能な領域であるログ記録領域を複数有するメモリーと、を備えるデータ記録方法であって、
前記通信バッファーに保持されたデータを読み出す読出ステップと、
前記読出ステップにおいて読み出されたデータを前記メモリーの前記ログ記録領域に記録する記録ステップと、を有し、
前記記録ステップでは、一つ前のタイミングで実行された前記記録ステップにおいて記録に用いられたログ記録領域とは異なるログ記録領域に対して前記データを記録する、データ記録方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置及びデータ記録方法に関する。
【背景技術】
【０００２】
従来、ＰＬＣ（Programmable Logic Controller）等の制御装置において、外部装置から受信されたデータの履歴を記録する技術（例えば特許文献１参照。）が提案されている。履歴を残すためには、例えば以下のような処理が行われていた。まず、所定のＩ／Ｏリフレッシュのタイミングで、プロセッサーが通信バッファーからメモリー内の所定の記憶領域にデータをコピーする。Ｉ／Ｏリフレッシュのタイミングでコピーに用いられる所定の記憶領域は、Ｉ／Ｏリフレッシュの度にデータが上書きされてしまう。そのため、履歴を残すための領域として予め設けられた記憶領域に対し、プロセッサーがデータをコピーしてデータを残す。このように、少なくとも２回のコピー処理が実行されることによって、受信されたデータの履歴が残されていた。２回目のコピー処理は、ユーザープログラムとして実装されることもあった。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第５１２２０００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
このような処理では、履歴を残すために少なくとも２回のコピー処理を行う必要がある。そのため、プロセッサーの処理能力を有効に活用できない可能性があった。
【０００５】
本発明は上記の点に鑑みてなされたものであり、外部装置から受信されたデータの履歴を記録する際に要するプロセッサーの処理量を削減できる制御装置及びデータ記録方法を提供することを目的としている。
【課題を解決するための手段】
【０００６】
本発明の一態様は、外部に接続された機器から受信されたデータを保持する通信バッファーと、前記データを記録可能な領域であるログ記録領域を複数有するメモリーと、前記通信バッファーに保持されたデータを読み出し、読み出されたデータを前記メモリーの前記ログ記録領域に記録するロギング処理を所定のタイミングで繰り返し行うメインプロセッサーと、を備え、前記メインプロセッサーは、前記ロギング処理を行う際に、一つ前のタイミングで実行されたロギング処理において記録に用いられたログ記録領域とは異なるログ記録領域に対して前記データを記録する、制御装置である。
【０００７】
本発明の一態様は、上記の制御装置であって、最新のロギング処理でデータの記録に用いられたログ記録領域の位置を示す情報である記録位置情報を記憶する位置記憶部をさらに備える。
【０００８】
本発明の一態様は、上記の制御装置であって、前記メモリーは、複数の前記ログ記録領域を有する領域群を複数有し、前記メインプロセッサーは、一の領域群を現用系として使用し、他の領域群を待機系として使用し、現用系の領域群に対して前記データを記録する。
【０００９】
本発明の一態様は、外部に接続された機器から受信されたデータを保持する通信バッファーと、前記データを記録可能な領域であるログ記録領域を複数有するメモリーと、を備えるデータ記録方法であって、前記通信バッファーに保持されたデータを読み出す読出ステップと、前記読出ステップにおいて読み出されたデータを前記メモリーの前記ログ記録領域に記録する記録ステップと、を有し、前記記録ステップでは、一つ前のタイミングで実行された前記記録ステップにおいて記録に用いられたログ記録領域とは異なるログ記録領域に対して前記データを記録する、データ記録方法である。
【発明の効果】
【００１０】
本発明によれば、外部装置から受信されたデータの履歴を記録する際に要するプロセッサーの処理量を削減できる。
【図面の簡単な説明】
【００１１】
【図１】第１実施形態における制御システムの構成の具体例を示す図である。
【図２】第１実施形態におけるＮ個のログ記録領域に対するロギング処理の具体例を示す図である。
【図３】メインプロセッサーの処理の周期の概略を示すタイムチャートである。
【図４】第１実施形態におけるメインプロセッサーの処理の流れの具体例を示すフローチャートである。
【図５】第２実施形態における制御システムの構成の具体例を示す図である。
【図６】第２実施形態におけるロギング処理の具体例を示す図である。
【図７】第２実施形態におけるメインプロセッサーの処理の流れの具体例を示すフローチャートである。
【発明を実施するための形態】
【００１２】
（第１実施形態）
図１は、第１実施形態における制御システム（制御システム１００）の構成の具体例を示す図である。制御システム１００は、制御装置１０及び機器９０を備える。
【００１３】
機器９０は、温度センサや圧力センサ等の入力機器、又は、サーボモーター等の出力機器である。機器９０は、制御装置１０にとって外部装置に該当する。機器９０は、入力機器である場合には、センシングを行った結果として得られる値を出力する。機器９０は、出力機器である場合には、動作の内容や動作後の状態等を示す値を出力する。機器９０は、制御装置１０に対して接続される。機器９０と制御装置１０とは、所定の通信路で接続される。機器９０と制御装置１０とは、例えばEtherCAT（登録商標）やEtherNet/IP等のネットワークを用いて接続されてもよい。機器９０と制御装置１０とは、内部バス（ローカルバス）を介して接続されてもよい。
【００１４】
制御装置１０は、情報処理装置を用いて構成される。制御装置１０は、例えばＰＬＣ（Programmable Logic Controller）である。制御装置１０は、機器９０に接続され、機器９０から順次出力されるデータを受信する。
【００１５】
制御装置１０のハードウェア構成を説明する。制御装置１０は、内部バスによって接続されたコネクター１１、通信コントローラー１２、メモリー１３及びメインプロセッサー１４を備える。
【００１６】
コネクター１１は、制御装置１０が機器９０と通信するための通信路を物理的に接続するためのインターフェースである。例えば、制御装置１０と機器９０とがネットワークを用いて接続される場合、コネクター１１は通信ケーブルが接続されるインターフェースとして構成されてもよい。例えば、制御装置１０と機器９０とが内部バスを介して接続される場合には、コネクター１１は、内部バス用の接続端子として構成されてもよい。コネクター１０に入力された信号は内部バスを介して通信コントローラー１２に出力される。
【００１７】
通信コントローラー１２は、通信プロセッサー１２１及び通信バッファー１２２を備える。通信プロセッサー１２１は、コネクター１１を介して入力された信号を復号する。通信プロセッサー１２１は、復号されたデータを通信バッファー１２２に記録する。
【００１８】
通信バッファー１２２は、半導体記憶装置等の記憶装置を用いて構成される。通信バッファー１２２は、通信プロセッサー１２１によって記録されたデータを保持する。通信バッファー１２２に保持されているデータは、メインプロセッサー１４によって読み出される。
【００１９】
メモリー１３は、半導体記憶装置等の記憶装置を用いて構成される。メモリー１３は、通信バッファー１２２に記録されているデータのログが書き込まれる領域（以下「ログ記録領域」という。）として複数の領域を有する。図１の具体例では、メモリー１３は、ログ記録領域としてＮ個の領域（領域０１〜領域Ｎ）を有する。
【００２０】
メインプロセッサー１４は、例えばＣＰＵ（Central Processing Unit）等の演算装置である。メインプロセッサー１４は、所定の周期で通信バッファー１２２に記録されているデータを読み出し、メモリー１３内のログ記録領域に記録する。このようなメインプロセッサー１４の処理を、以下の説明では「ロギング処理」という。メインプロセッサー１４は、ロギング処理を行う際に、一つ前のタイミングで実行されたロギング処理において記録に用いられたログ記録領域とは異なるログ記録領域を書き込み先の領域として使用する。このようなメインプロセッサー１４のロギング処理は、例えばＩ／Ｏリフレッシュのタイミングで実行されてもよい。このようなメインプロセッサー１４のロギング処理は、従来のＩ／Ｏリフレッシュ処理に置き換えて適用されてもよい。メインプロセッサー１４は、例えば最新のロギング処理でデータの記録に用いられたログ記録領域の位置を示す情報（以下「記録位置情報」という。）を記憶してもよい。記録位置情報は、例えばメインプロセッサー１４が備える半導体記憶装置等の記憶装置に記録されてもよい。この場合、メインプロセッサー１４が位置記憶部として機能する。
【００２１】
メインプロセッサー１４は、メモリー１３のＮ個のログ記録領域（領域０１〜領域Ｎ）を、例えば所定の順序（例えば番号順）でサイクリックに使用してもよい。図２は、第１実施形態におけるＮ個のログ記録領域に対するロギング処理の具体例を示す図である。メインプロセッサー１４は、通信バッファー１２２に記録されているデータを読み出し、メモリー１３の最初のログ記録領域（領域０１）に記録する。このとき、メインプロセッサー１４は、通信バッファー１２２のデータを一時的に記録する目的で固定的にメモリー１３内にて割り当てられる記憶領域（例えば従来のＩ／Ｏメモリーエリア）にデータを記録することなく、データをログ記録領域に記録する（図２（Ａ））。メインプロセッサー１４は、次のサイクルタイムにおいて、通信バッファー１２２に記録されているデータを読み出し、メモリー１３の２番目のログ記録領域（領域０２）に記録する（図２（Ｂ））。このような処理がＮ回繰り返し実行されると、Ｎ番目のログ記録領域（領域Ｎ）にも通信バッファー１２２のデータが記録される（図２（Ｃ））。Ｎ＋１回目の処理では、メインプロセッサー１４は、１番目のログ記録領域（領域０１）にデータを上書きする（図２（Ｄ））。ロギング処理がこのように実行されることによって、通信バッファー１２２のデータのログを少なくともＮ個分保持しておくことが可能となる。
【００２２】
図３は、メインプロセッサー１４の処理の周期の概略を示すタイムチャートである。メインプロセッサー１４は、所定の周期（以下「サイクルタイム」という。）で複数の処理を繰り返し実行する。一つのサイクルタイムで実行される複数の処理には、例えばＩ／Ｏリフレッシュ２１、ユーザープログラム２２及びシステムサービス２３が含まれる。上述したように、メインプロセッサー１４によって実行されるロギング処理は、例えばＩ／Ｏリフレッシュ２１のタイミングで実行されてもよい。ユーザープログラム２２のタイミングでは、制御装置１０のユーザーによって構築されたユーザープログラムが実行される。システムサービス２３のタイミングではメッセージ処理や自己診断が実行される。
【００２３】
図３には、プライマリタスクの処理のみが示されているが、セカンダリタスク等のより低い優先度の処理がサイクルタイム内に実行されてもよい。なお、このようなサイクルタイムでメインプロセッサー１４が動作する場合、機器９０と制御装置１０との間の通信路における通信周期や通信プロセッサー１２１による通信バッファー１２２への書き込み周期も、サイクルタイムに同期することが望ましい。サイクルタイムは、例えば１ミリ秒であってもよいし、１０ミリ秒であってもよいし、どのような値として設定されてもよい。
【００２４】
図４は、第１実施形態におけるメインプロセッサー１４の処理の流れの具体例を示すフローチャートである。サイクルタイムに応じて所定のタイミング（例えばＩ／Ｏリフレッシュのタイミング）が到来すると（ステップＳ１０１−ＹＥＳ）、メインプロセッサー１４は、通信バッファー１２２からデータを読み出す（ステップＳ１０２）。メインプロセッサー１４は、ステップＳ１０２の処理で読み出されたデータの書き込み先となるログ記録領域を決定する。メインプロセッサー１４は、一つ前のサイクルタイムのロギング処理で用いられたログ記録領域とは異なるログ記録領域を書き込み先の領域として決定する（ステップＳ１０３）。メインプロセッサー１４は、例えば記録位置情報に基づいて書き込み先の領域を決定してもよい。より具体的には、記録位置情報が示す領域の次のログ記録領域を書き込み先の領域として決定してもよい。メインプロセッサー１４は、ステップＳ１０３において決定されたログ記録領域に対し、ステップＳ１０２において読み出されたデータを書き込む（ステップＳ１０４）。このような処理がサイクルタイム毎に繰り返し実行される。
【００２５】
このように構成された制御装置１０によれば、外部装置（機器９０）から受信されたデータの履歴を記録する際に要するメインプロセッサー１４の処理量を削減できる。具体的には以下の通りである。
【００２６】
制御装置１０のメインプロセッサー１４は、通信バッファー１２２からデータを読み出すと、読み出されたデータを、一つ前のタイミングで実行されたロギング処理において記録に用いられた領域とは異なる領域に記録する。そのため、少なくとも１つのサイクルタイム分の履歴を記録することができる。また、このようなロギング処理において、通信バッファー１２２に記録された１つのデータのメモリー１３への書き込み処理は１回しか行われない。すなわち、従来であれば通信バッファーからメモリーへの書き込み処理と、メモリー内でログをとるための書き込み処理と、２回の書き込み処理が行われていたが、第１実施形態ではメモリー１３への１回の書き込み処理によってログをとることが可能となる。そのため、従来のように少なくとも２回のコピー処理（書き込み処理）が行われていた場合に比べて、メインプロセッサー１４の処理量を削減することができる。
【００２７】
また、このように構成された制御装置１０によれば、より多くのログ記録領域を設けることによって、より多くのデータの履歴を記録しておくことが可能となる。例えば、図１の例ではＮ個のログ記録領域がメモリー１３に設けられ、サイクリックに記録が行われることによって、最新のデータを含めて最大でＮ個のデータを記録しておくことが可能となる。
【００２８】
（第２実施形態）
図５は、第２実施形態における制御システム（制御システム１００ａ）の構成の具体例を示す図である。制御システム１００ａは、制御装置１０に代えて制御装置１０ａが設けられる点で第１実施形態（制御システム１００）と異なる。以下、第２実施形態において用いられる制御装置１０ａについて説明する。
【００２９】
制御装置１０ａは、メモリー１３に代えてメモリー１３ａが設けられる点、メインプロセッサー１４に代えてメインプロセッサー１４ａが設けられる点、で第１実施形態の制御装置１０と異なり、他の構成は第１実施形態の制御装置１０と同じである。以下、第１実施形態の制御装置１０と異なる点について説明する。
【００３０】
メモリー１３ａは、ログ記録領域として複数の領域群を有する。領域群は、複数のログ記録領域を有する。一つの領域群に属する各ログ記録領域は、同じタイミングでデータをクリアされる。図５の例では、メモリー１３ａは、第１領域群１３１及び第２領域群１３２を有する。第１領域群１３１は、Ｎ個のログ記録領域（領域Ａ０１〜領域ＡＮ）を有する。第２領域群１３２は、Ｎ個のログ記録領域（領域Ｂ０１〜領域ＢＮ）を有する。なお、図５において第１領域群１３１が有しているログ記録領域の数と第２領域群１３２が有しているログ記録領域の数とはいずれもＮ個で一致しているが、必ずしも一致する必要はない。
【００３１】
メインプロセッサー１４ａは、複数の領域群のうちいずれか一つを現用系として取り扱い、残る領域群を待機系として取り扱う。メインプロセッサー１４ａは、通信バッファー１２２のデータを読み出すと、現用系の領域群に対してデータを記録する。メインプロセッサー１４ａは、現用系の領域群に設けられた全てのログ記録領域にデータが記録されると、それまで現用系であった領域群を待機系に変更し、他の領域群を現用系に変更する。その後は、メインプロセッサー１４ａは新たに現用系となった領域群に対してデータを記録する。新たに現用系となった領域群にデータが既に記録されている場合には、メインプロセッサー１４ａは、その領域群のデータをクリアし、その領域群に対してデータを記録する。
【００３２】
図６は、第２実施形態におけるロギング処理の具体例を示す図である。図６の具体例では、最初の時点で第１領域群１３１が現用系の領域群として動作し第２領域群１３２が待機系の領域群として動作する。
【００３３】
メインプロセッサー１４ａは、通信バッファー１２２に記録されているデータを読み出し、メモリー１３ａの現用系の領域群（第１領域群１３１）の最初のログ記録領域（領域Ａ０１）に記録する。メインプロセッサー１４ａは、次のサイクルタイムにおいて、通信バッファー１２２に記録されているデータを読み出し、メモリー１３ａの現用系の領域群の２番目のログ記録領域（領域Ａ０２）に記録する。このような処理がＮ回繰り返し実行されると、現用系の領域群のＮ番目のログ記録領域（領域ＡＮ）にも通信バッファー１２２のデータが記録される（図６（Ａ））。
【００３４】
Ｎ＋１回目の処理では、現用系の領域群に設けられた全てのログ記録領域にデータが記録されていることに応じて、メインプロセッサー１４ａは、それまで現用系であった領域群（第１領域群１３１）を待機系に変更し、他の領域群（第２領域群１３２）を現用系に変更する。そして、新たに現用系となった領域群である第２領域群１３２の１番目のログ記録領域（領域Ｂ０１）にデータを記録する（図６（Ｂ））。メインプロセッサー１４ａは、次のサイクルタイムにおいて、通信バッファー１２２に記録されているデータを読み出し、メモリー１３ａの現用系の領域群の２番目のログ記録領域（領域Ｂ０２）に記録する。このような処理がＮ回繰り返し実行されると、Ｎ番目のログ記録領域（領域ＢＮ）にも通信バッファー１２２のデータが記録される（図６（Ｃ））。
【００３５】
（Ｎ×２）＋１回目の処理では、現用系の領域群に設けられた全ての領域にデータが記録されていることに応じて、メインプロセッサー１４ａは、それまで現用系であった領域群（第２領域群１３２）を待機系に変更し、他の領域群（第１領域群１３１）を現用系に変更する。また、新たに現用系となった第１領域群１３１にデータが既に記録されていることに応じて、メインプロセッサー１４ａは、その領域群のデータをクリアする（図６（Ｄ））。そして、メインプロセッサー１４ａは、新たに現用系となった領域群である第１領域群１３１の１番目のログ記録領域（領域Ａ０１）にデータを上書きする。
【００３６】
図７は、第２実施形態におけるメインプロセッサー１４ａの処理の流れの具体例を示すフローチャートである。図７において、図４のフローチャートと同じ処理については同じ符号を付して図示している。
【００３７】
サイクルタイムに応じて所定のタイミング（例えばＩ／Ｏリフレッシュのタイミング）が到来すると（ステップＳ１０１−ＹＥＳ）、メインプロセッサー１４ａは、通信バッファー１２２からデータを読み出す（ステップＳ１０２）。メインプロセッサー１４ａは、一つ前のサイクルタイムにおいて記録が行われた領域が現用系領域群の最後の領域ではない場合（ステップＳ２０１−ＮＯ）、ステップＳ１０３及びステップＳ１０４の処理を実行する。
【００３８】
一方、一つ前のサイクルタイムにおいて記録が行われた領域が現用系領域群の最後の領域であった場合（ステップＳ２０１−ＹＥＳ）、メインプロセッサー１４ａは、それまで現用系であった領域群を待機系に変更し、他の領域群を現用系に変更する（ステップＳ２０２）。また、メインプロセッサー１４ａは、新たに現用系となった領域群のデータをクリアする（ステップＳ２０３）。そして、新たに現用系となった領域群においてステップＳ１０３及びステップＳ１０４の処理を実行する。このような処理がサイクルタイム毎に繰り返し実行される。
【００３９】
このように構成された第２実施形態の制御装置１０ａによれば、第１実施形態の制御装置１０と同様の効果を得ることができる。さらに、第２実施形態の制御装置１０ａによれば、少なくとも待機系の領域群として設けられた領域数に応じたログを保持しておくことが可能となる。
【００４０】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【００４１】
１００、１００ａ…制御システム、  １０、１０ａ…制御装置、  １１…コネクター、  １２…通信コントローラー、  １２１…通信プロセッサー、  １２２…通信バッファー、  １３、１３ａ…メモリー、  １３１…第１領域群、  １３２…第２領域群、  １４，１４ａ…メインプロセッサー、  ２１…Ｉ／Ｏリフレッシュ、  ２２…ユーザープログラム、  ２３…システムサービス、  ９０…機器
【図１】
2019200744.tif 000003
【図２】
2019200744.tif 000004
【図３】
2019200744.tif 000005
【図４】
2019200744.tif 000006
【図５】
2019200744.tif 000007
【図６】
2019200744.tif 000008
【図７】
2019200744.tif 000009