以下に、実施の形態にかかるデータ収集システムおよびデータ収集装置を図面に基づいて詳細に説明する。なお、この実施の形態により本開示が限定されるものではない。
実施の形態1.
図1は、本実施の形態1にかかるデータ収集システム100の全体構成を示すブロック図である。データ収集システム100は、制御装置による制御対象装置の制御において得られる制御データを収集して表示するシステムである。データ収集システム100は、制御装置による制御対象装置の制御において異常が発生した際、異常の発生前後の制御データを収集して表示することができる。これにより、ユーザは、異常時の原因究明を実現することができる。また、データ収集システム100は、制御装置による制御対象装置の制御における異常の兆候の検出を目的として制御データを収集して表示することができる。これにより、ユーザは、異常の発生を未然に防ぐことができる。
データ収集システム100は、複数のデータ収集装置10と、データ表示装置20と、を備える。本実施の形態1では、データ収集システム100が2つのデータ収集装置10を備える場合について説明するが、データ収集システム100が備えるデータ収集装置10の数量は2つに限定されず、さらに多数のデータ収集装置10をデータ収集システム100が備えてもよい。
データ収集システム100では、複数のデータ収集装置10が第1通信回線31に接続され、さらに、第1通信回線31にデータ表示装置20が接続されている。すなわち、データ収集装置10とデータ表示装置20とは、第1通信回線31を介して通信可能である。また、複数のデータ収集装置10は、第2通信回線32に接続されている。第2通信回線32には、複数の制御装置40が接続されている。すなわち、データ収集装置10と制御装置40とは、第2通信回線32を介して通信可能である。
制御装置40は、不図示の制御対象装置の動作を制御する制御装置であり、例えば、プログラマブルロジックコントローラ(Programmable Logic Controller:PLC)に代表される制御用コントローラで構成される。なお、制御装置40は、PLC以外の他の制御装置であってもよい。制御装置40は、制御装置40による制御対象装置の制御において得られるデータである制御データを、第2通信回線32を介して予め決められた周期でデータ収集装置10に送信する。本実施の形態1では、制御装置40として、第1制御装置40aと、第2制御装置40bと、が第2通信回線32に接続されている。
データ収集装置10は、制御装置40による制御対象装置の制御において得られるデータである制御データを、制御装置40から取得する。データ収集装置10は、制御装置40から取得した制御データを、データ表示装置20に送信して表示させる。本実施の形態1では、データ収集システム100は、複数のデータ収集装置10として、第1データ収集装置10aと第2データ収集装置10bと、の2つのデータ収集装置10を備える。第1データ収集装置10aは、制御装置40である第1制御装置40aと第2通信回線32を介して通信可能である。第2データ収集装置10bは、制御装置40である第2制御装置40bと第2通信回線32を介して通信可能である。第1データ収集装置10aと第2データ収集装置10bとは、同じ構成および同じ機能を有する。以下においては、第1データ収集装置10aと第2データ収集装置10bとを区別しない場合には、データ収集装置10と呼ぶ。
データ収集装置10は、各種処理を実行するプロセッサ1と、情報を記憶するメモリ2と、制御装置40との間の通信およびデータ表示装置20との間の通信を行う通信装置3と、を有する。
プロセッサ1は、CPU(Central Processing Unit)である。図1には、プロセッサ1を使用することによって実現されるデータ収集装置10の機能構成を示している。
データ収集部11は、制御装置40から供給されるデータであって制御装置40による制御対象装置の制御において得られるデータである制御データを、通信装置3を介して制御装置40から取得して収集する。データ収集部11は、予め決められたサンプリング周期で制御データを収集する。データ収集部11は、収集した制御データをメモリ2に送信して、メモリ2に記憶させる。制御データは、制御対象装置の動作を指示する指令速度のデータ、制御対象装置の動作速度のデータ、および制御対象装置の温度のデータが例示される。制御対象装置がモータである場合には、制御データは、モータ指令速度のデータ、モータ速度のデータ、およびモータの温度などのデータが例示される。
なお、データ収集部11が制御データを収集するタイミングは、予め決められたサンプリング周期に限定されない。また、データ収集部11は、異なるサンプリング周期で収集された制御データを、複数の制御装置40から収集することができる。
同期部12は、通信装置3から送信される時刻同期信号である時刻同期フレームに基づいて、データ収集装置10が保持する時刻について、他のデータ収集装置10との間で定期的に時刻同期処理を行う。同期部12は、同期した時刻を時計部14へ送信して、同期した時刻を保持させる。データ収集装置10が保持する時刻は、時計部14が保持し、更新する時刻である。時刻同期処理については後述する。
補正部13は、データ収集装置10が保持する時刻、すなわち時計部14が保持する時刻を補正するための、時刻補正用のクロック信号の補正量を生成する。時刻補正用の補正量は、データ収集装置10が保持する時刻が他のデータ収集装置10が保持する時刻と同期された後の、他のデータ収集装置10の保持する時刻との間のデータ収集装置10が保持する時刻のずれを抑制するための、クロック信号の補正量である。
第1データ収集装置10aのデータ収集部11は、第1制御装置40aと第2通信回線32を介して通信し、第1制御装置40aによる制御対象装置の制御において得られる制御データを収集する。第2データ収集装置10bのデータ収集部11は、第2制御装置40bと第2通信回線32を介して通信し、第2制御装置40bによる制御対象装置の制御において得られる制御データを収集する。
時計部14は、データ収集装置10における時刻を更新して保持する。時計部14は、同期部12から送信された同期した時刻と、補正部13から送信された時刻補正用のクロック信号の補正量と、に基づいて時刻を補正し、保持する。したがって、時計部14は、他のデータ収集装置10の時計部14との間で常に同期した時刻を保持する。時計部14は、他のデータ収集装置10の時計部14との間で同期した時刻に基づいて、データ収集装置10における時刻を更新する。時計部14は、時計部14が保持する時刻を、予め決められた周期で同期部12およびメモリ2に送信する。
クロック生成部15は、データ収集装置10におけるプロセッサ1とメモリ2との同期を取るための信号である、予め決められたクロック周波数のクロック信号を生成してプロセッサ1とメモリ2とに供給するクロックジェネレータである。したがって、データ収集部11と、同期部12と、補正部13と、時計部14と、は、クロック生成部15から供給されるクロック信号に従って動作する。
メモリ2は、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ、EPROM(Erasable Programmable Read Only Memory)またはEEPROM(登録商標)(Electrically Erasable Programmable Read Only Memory)、HDD(Hard Disk Drive)またはSSD(Solid State Drive)を含む。データ収集装置10の処理プログラムは、メモリ2に格納される。プロセッサ1は、メモリ2に格納されているプログラムを実行する。
メモリ2は、データ収集部11から送信された制御データを、メモリ2が制御データを受信した時刻と関連付けて、プロセスデータとして記憶する。すなわち、プロセスデータは、制御データと、メモリ2が制御データを受信した時刻と、が関連付けられたデータといえる。ここでの、制御データを受信した時刻は、時計部14から送信された時刻を参照して決められる。したがって、メモリ2は、プロセスデータを記憶する記憶部を構成する。収集された制御データと、時計部14の保持する時刻とを関連付けて記憶することで、制御データが収集された精確な時刻を記憶することができる。
データ収集装置10では、メモリ2が制御データを受信した時刻を、データ収集装置10が制御データを収集した時刻とする。メモリ2が制御データを受信した時刻、すなわちデータ収集装置10が制御データを収集した時刻は、データ収集装置10が制御データを収集したデータ収集時刻を特定可能な時刻特定情報である。
メモリ2は、制御データの種類ごとに、プロセスデータを記憶する。データ収集部11が制御装置40から2種類の制御データを収集している場合、メモリ2は、2種類のプロセスデータを、異なる個別の記憶領域に記憶する。メモリ2に記憶されているプロセスデータは、データ収集部11の制御によって、通信装置3を介してデータ表示装置20に送信される。
図2は、本実施の形態1にかかるデータ収集装置10のメモリ2に記憶されるプロセスデータの構成例を示す図である。図2においては、プロセスデータである、サンプリングデータ1−1およびサンプリングデータ1−2が示されている。サンプリングデータ1−1とサンプリングデータ1−2とは、異なるサンプリング周期で収集されたサンプリングデータ、すなわち異なるサンプリング周期で収集されたプロセスデータである。したがって、サンプリングデータ1−1とサンプリングデータ1−2とは、異なるタイミングで収集されたサンプリングデータ、すなわち異なるタイミングで収集されたプロセスデータである。
サンプリングデータ1−1は、データ収集部11から送信された制御データがメモリ2に記憶された時刻である「データ収集時刻」と、各データ収集時刻に収集された「信号1から信号mまでのデータ」を1つの組としたプロセスデータが、データ収集開始時刻t1からデータ収集終了時刻tnまでについて収集されている。ここでの制御データは、各データ収集時刻に収集された「信号1から信号mまでのデータ」である。
図3は、図2に示すプロセスデータがグラフ表示された特性図である。図3に示すグラフは、図2に示すサンプリングデータ1−1とサンプリングデータ1−2の信号1をグラフ表示した場合の例を示している。すなわち、図3に示すグラフでは、異なるサンプリング周期で収集されたサンプリングデータ、すなわち異なるサンプリング周期で収集されたプロセスデータが1つのグラフ上に表示されている。
通信装置3は、第1通信回線31を介してデータ表示装置20と通信可能であり、メモリ2から送信されるプロセスデータを、第1通信回線31を介してデータ表示装置20に送信する。また、通信装置3は、第2通信回線32を介して制御装置40と通信可能であり、第2通信回線32を介して制御装置40から送信される制御データを受け付ける。通信装置3は、受け付けた制御データをデータ収集部11に送信する。なお、データ収集部11が、通信装置3および第2通信回線32を介さずに制御装置40と直接通信する構成とされてもよい。
また、通信装置3は、第1通信回線31を介して、他のデータ収集装置10と時刻同期信号である時刻同期フレームを送受信する。
データ表示装置20は、複数のデータ収集装置10で収集された制御データを、時間軸が一致するように表示する。具体的には、データ表示装置20は、データ表示装置20の後述する表示装置24上の1つのグラフ上に、複数のデータ収集装置10から取得した複数種類の制御データを、時間軸が一致するように、同一の時間軸に合わせたうえで重ねて表示する。
データ収集システム100では、複数のデータ収集装置10の時刻が同期されている。このため、複数のデータ収集装置10からデータ表示装置20に送信された複数種類のプロセスデータに含まれる時刻は、同期されている。これにより、データ表示装置20は、複数のデータ収集装置10から取得した複数種類のプロセスデータを、同一の時間軸に合わせたうえで重ねて表示することができる。
データ表示装置20の構成について説明する。データ表示装置20は、データ収集装置10との間の通信を行う通信装置21と、各種処理を実行するプロセッサ22と、情報を記憶するメモリ23と、情報を表示する表示装置24と、を有する。
通信装置21は、第1通信回線31を介して複数のデータ収集装置10と通信可能であり、第1通信回線31を介して複数のデータ収集装置10から送信されるプロセスデータを受け付ける。通信装置21は、受け付けたプロセスデータを表示制御部211に送信する。
プロセッサ22は、CPUである。
図1には、プロセッサ22を使用することによって実現されるデータ表示装置20の機能構成を示している。表示制御部211は、通信装置21から送信されたプロセスデータをメモリ23に記憶させる。また、表示制御部211は、メモリ23に記憶されたプロセスデータの内容を基に、文字情報または画像情報といった表示情報を生成する。表示制御部211は、生成された表示情報を表示装置24へ送信し、プロセスデータを表示装置24に表示させる制御を行う。表示制御部211は、メモリ23に記憶された異なる複数種類のプロセスデータの時間軸が一致するように、異なる複数種類のプロセスデータを同一の時間軸に合わせて表示装置24上の1つのグラフ上に表示させる表示情報を生成する。また、表示制御部211は、データ表示装置20の制御に関わる情報を表示装置24に表示させる表示情報を生成し、表示装置24へ送信する。
表示制御部211の機能は、プロセッサ22およびソフトウェアの組み合わせによって実現される。表示制御部211の機能は、プロセッサ22およびファームウェアの組み合わせによって実現されてもよく、プロセッサ22、ソフトウェアおよびファームウェアの組み合わせによって実現されてもよい。ソフトウェアまたはファームウェアは、プログラムとして記述され、メモリ23に格納される。プロセッサ22は、ソフトウェアまたはファームウェアを読み出す。プロセッサ22は、ソフトウェアまたはファームウェアを実行する。
メモリ23は、RAM、ROM、フラッシュメモリ、EPROMまたはEEPROM(登録商標)、HDDまたはSSDを含む。通信装置21から送信されたプロセスデータと、データ表示装置20の処理プログラムは、メモリ23に格納される。すなわち、メモリ23は、第1通信回線31を介して複数のデータ収集装置10から送信されるプロセスデータを記憶する記憶部を構成する。プロセッサ22は、メモリ23に格納されているプログラムを実行する。
メモリ23は、データ収集装置10ごとに、且つ制御データの種類ごとに、プロセスデータを記憶する。たとえば、第1データ収集装置10aにおいて2種類の制御データが取得され、第2データ収集装置10bにおいて1種類の制御データが取得されている場合、メモリ23は、3種類のプロセスデータの各々を、異なる個別の記憶領域に記憶する。
表示装置24は、画面にて情報を表示する、表示部である。表示装置24は、表示制御部211から送信される表示情報に従ってプロセスデータの表示を行う。すなわち、表示装置24は、表示制御部211からの指示に従って、異なる複数種類のプロセスデータを同一の時間軸に合わせて表示装置24上の1つのグラフ上に表示する。また、表示装置24は、表示制御部211から送信される表示情報に従って、データ表示装置20の制御に関わる情報を表示する。
表示装置24は、表示制御部211から送信される表示情報に従って、例えば図2に示すサンプリングデータ1−1およびサンプリングデータ1−2の信号1のデータを、図3に示すように同一の時間軸に合わせて表示装置24上の1つのグラフ上に表示する。各サンプリングデータは、データ収集時刻に基づいてグラフ上にプロットされる。
次に、本実施の形態1にかかるデータ収集システム100の動作について説明する。図4は、本実施の形態1にかかるデータ収集システム100の動作の手順を示すフローチャートである。
ステップS1において、データ収集装置10が、制御装置40から送信されてくる制御データを取得する。具体的には、第1データ収集装置10aのデータ収集部11が、第1制御装置40aから予め決められた周期で送信されてくる制御データを、予め決められた周期で収集し、第1データ収集装置10aのメモリ2に送信する。第1データ収集装置10aのデータ収集部11が制御データを収集する周期は、第1データ収集装置10aのデータ収集部11に記憶されている。
また、第2データ収集装置10bのデータ収集部11が、第2制御装置40bから予め決められた周期で送信されてくる制御データを、予め決められた周期で収集し、第2データ収集装置10bのメモリ2に送信する。第2データ収集装置10bのデータ収集部11が制御データを収集する周期は、第2データ収集装置10bのデータ収集部11に記憶されている。
ステップS2において、データ収集装置10が、取得した制御データに基づいて、プロセスデータを記憶する。具体的には、第1データ収集装置10aのメモリ2が、第1制御装置40aから送信された制御データを受信し、制御データを受信した時刻と関連付けて、プロセスデータとして記憶する。また、第2データ収集装置10bのメモリ2が、第2制御装置40bから送信された制御データを受信し、制御データを受信した時刻と関連付けて、プロセスデータとして記憶する。
ステップS3において、データ収集装置10が、メモリ2に記憶されているプロセスデータを、通信装置3を介してデータ表示装置20に送信する。具体的には、第1データ収集装置10aのデータ収集部11が、第1データ収集装置10aのメモリ2に記憶されているプロセスデータを、通信装置3を介してデータ表示装置20に送信する。また、第2データ収集装置10bのデータ収集部11が、第2データ収集装置10bのメモリ2に記憶されているプロセスデータを、通信装置3を介してデータ表示装置20に送信する。データ収集装置10は、メモリ2に記憶されているプロセスデータを、任意のタイミングでデータ表示装置20に送信してもよく、予め決められた周期でデータ表示装置20に送信してもよい。
ステップS4において、データ表示装置20が、データ収集装置10から送信された複数種類のプロセスデータを、同一の時間軸に合わせたうえで1つのグラフ上に重ねてグラフ表示する。
次に、上述した本実施の形態1かかるデータ収集装置10の動作における各構成部の動作について詳細に説明する。
補正部13は、CPUのクロック偏差を用いて、時計部14が行う時刻補正用のクロック信号の補正量を時計部14へ送信する。すなわち、補正部13は、クロック生成部15から補正部13および時計部14に供給されるクロック信号のクロック周波数、すなわちクロック生成部15で生成されるクロック信号のクロック周波数と、クロック生成部15が生成するクロック信号のクロック周波数として予めクロック生成部15に設定されている設定周波数と、の偏差に基づいて、時計部14が保持する時刻を補正する時刻補正用のクロック信号の補正量を生成して時計部14へ送信する。
図5は、本実施の形態1にかかるデータ収集装置10における時刻補正処理の手順を示すフローチャートである。補正部13は、データ収集装置10のCPUの起動時から、予め決められた周期のタイミングでクロック生成部15から供給されるクロック信号の数を計測している。上述したように、補正部13および時計部14には、クロック生成部15からクロック信号が供給される。
ステップS10において、補正部13は、予め決められた周期CPにおける今回の計測タイミングである第2タイミングに計測しているクロック信号の数である今回のカウント値C2を取得する。補正部13は、予め決められた周期CPにおける前回の計測タイミングである第1タイミングに計測したクロック信号の数である前回のカウント値C1を記憶している。
ステップS20において、補正部13は、前回のカウント値C1と今回のカウント値C2とから、前回のカウント値C1と今回のカウント値C2との差分である差分カウント値C3を算出する。ここで、予め決められた周期CPにおける差分カウント値C3は、予め決められた単位時間あたりにクロック生成部15から時計部14に供給されるクロック信号の数といえる。そして、予め決められた単位時間を1秒に換算することにより、クロック生成部15から時計部14に供給されるクロック信号のクロック周波数が得られる。
ステップS30において、補正部13は、差分カウント値C3の値とカウント値の理論値C0との差分が許容範囲外であるか否かを判定する。カウント値の理論値C0は、本来、予め決められた周期CPの間にクロック生成部15から供給されるクロック信号のクロック数の理論値であり、予め補正部13に記憶されている。カウント値の理論値C0は、たとえば上記の予め決められた単位時間が1秒である場合には、クロック生成部15が生成するクロック信号のクロック周波数として予め設定されているクロック信号の設定周波数である。
ここで、差分カウント値C3の値とカウント値の理論値C0との差分は、差分カウント値C3の値とカウント値の理論値C0との偏差である。したがって、上記の予め決められた単位時間が1秒である場合には、差分カウント値C3の値とカウント値の理論値C0との差分は、差分カウント値C3の値と、クロック生成部15が生成するクロック信号のクロック周波数として予め設定されている設定周波数との偏差である。
差分カウント値C3とカウント値の理論値C0との差分が許容範囲外であるか否かを判定する方法としては、たとえばカウント値の理論値C0がクロック生成部15から供給されるクロック信号の基本周波数である場合には、差分カウント値C3とカウント値の理論値C0との差分がデータ収集装置10のCPUのクロック周波数の標準偏差内であるか否かを判定する方法が例示される。なお、差分カウント値C3とカウント値の理論値C0との差分が許容範囲外であるか否かを判定する方法は、これに限定されない。CPUのクロック周波数の標準偏差は、クロック生成部15で生成されるクロック信号のクロック周波数であり、データ収集装置10ごとに予め算出されて各々のデータ収集装置10の補正部13に記憶されている。
差分カウント値C3の値とカウント値の理論値C0との差が許容範囲外である場合は、ステップS30においてYesとなり、ステップS40に進む。差分カウント値C3の値とカウント値の理論値C0との差が許容範囲外でない場合は、ステップS30においてNoとなり、ステップS70に進む。
ステップS40において、補正部13は、差分カウント値C3の値を補正して、時刻補正用のクロック信号の補正量を生成する。すなわち、補正部13は、補正した差分カウント値C3を時刻補正用のクロック信号の補正量とする。補正部13は、算出した時刻補正用のクロック信号の補正量を時計部14へ送信する。差分カウント値C3の補正としては、例えば、算出した今回の差分カウント値C3を、カウント値の理論値C0または前回の差分カウント値C3に置き換える補正が例示される。なお、時刻補正用のクロック信号の補正量の算出方法は、時計部14が他のデータ収集装置10の時計部14との間で時刻同期処理をしない期間の時計部14の時刻のずれを抑制できる時刻補正用のクロック信号の補正量を算出することができる方法であれば、限定されない。
ステップS70において、補正部13は、差分カウント値C3を補正せずに、時刻補正用のクロック信号の補正量を生成し、時計部14に送信する。すなわち、補正部13は、差分カウント値C3を時刻補正用のクロック信号の補正量として時計部14へ送信する。
ステップS50において、時計部14は、補正部13から送信された時刻補正用のクロック信号の補正量を用いて、時計部14に保持している時刻の更新を行う。すなわち、時計部14は、クロック生成部15から供給されるクロック信号に対して、予め決められた周期CPにおけるクロック信号数が時刻補正用のクロック信号の補正量となるように補正した補正クロック信号に従って動作して、時刻を更新する。
ステップS60において、補正部13は、次の時刻更新時まで待機し、次の時刻更新時になると、ステップS10に戻る。時刻更新時は、時計部14が他のデータ収集装置10の時計部14との間で時刻同期処理を行わない間における、予め決められたタイミングである。
上述したように、補正部13は、クロック生成部15から補正部13および時計部14に供給されるクロック信号のクロック周波数、すなわちクロック生成部15で生成されるクロック信号のクロック周波数と、クロック生成部15が生成するクロック信号のクロック周波数として予めクロック生成部15に設定されている設定周波数と、の偏差に基づいて、時計部14が保持する時刻を補正する時刻補正用のクロック信号の補正量を生成して時計部14へ送信することができる。補正部13は、同期部12による時刻同期処理が行われない期間に、時刻補正用のクロック信号の補正量を生成して時計部14へ送信することができる。
そして、時計部14は、同期部12から同期された時刻を受信していない期間は、すなわち同期部12による時刻同期処理が行われない期間に、クロック生成部15から供給されるクロック信号を時刻補正用の補正量を用いて補正し、補正した補正クロック信号に従って動作して、時計部14に保持している時刻を更新することができる。
同期部12は、通信装置3と第1通信回線31とを介して通信可能とされた他のデータ収集装置10との間で定期的に時刻同期処理を行い、時刻同期した時刻を時計部14に送信する。時計部14は、同期部12で生成されて送信された同期された時刻を受信した場合は、保持している時刻を同期部12から受信した同期された時刻に置き換えて、時計部14に保持している時刻を更新する。これにより、データ収集装置10は、他のデータ収集装置10との間での時刻のずれの発生を抑制することができる。
また、時計部14は、同期部12から同期された時刻を受信していない期間は、すなわち同期部12による時刻同期処理が行われない期間は、補正部13から予め決められた周期CPで定期的に送信される時刻補正用の補正量を用いて、時計部14に保持している時刻を更新する。これにより、データ収集装置10は、同期部12から同期された時刻を受信していない期間における、各データ収集装置10内での、クロック生成部15から供給されるクロック信号のクロック周波数の変動に起因した時計部14の時刻のずれを抑制できる。
このように、データ収集システム100では、同期部12が他のデータ収集装置10との間で時刻同期処理を定期的に行い、さらに同期部12から同期された時刻を受信していない期間には、時刻補正用の補正量を用いて、時計部14に保持している時刻を更新することにより、他のデータ収集装置10との間での時刻のずれの発生を大幅に抑制することができる。
本実施の形態1において同期部12が行う時刻同期処理の時刻同期方式には、IEEE802.1AS、またはIEEE1588など、公知の時刻同期方式を用いることができ、特に方式は問わない。
図6は、本実施の形態1にかかるデータ収集システム100において時刻同期を行うマスタ局データ収集装置10Mとスレーブ局データ収集装置10Sとを示す図である。
本実施の形態1にかかる複数のデータ収集装置10においては、時計部14が基準時刻を保持するマスタ局のデータ収集装置10である1つのマスタ局データ収集装置10Mと、マスタ局データ収集装置10Mの保持する基準時刻に時計部14の時刻を同期させる他のデータ収集装置10であるスレーブ局データ収集装置10Sとがある。
マスタ局データ収集装置10Mの同期部12は、マスタ局データ収集装置10Mの同期部12がスレーブ局データ収集装置10Sの同期部12に時刻同期を指示する時刻同期フレームを、第1通信回線31を介して定期的にスレーブ局データ収集装置10Sの同期部12に送信する。
スレーブ局データ収集装置10Sの同期部12は、時刻同期フレームを受信すると、時刻同期フレームに基づいて、スレーブ局データ収集装置10Sの時計部14が保持している時刻をマスタ局データ収集装置10Mの保持する基準時刻に同期させる。すなわち、スレーブ局データ収集装置10Sの同期部12は、時刻同期フレームを定期的に受信して、スレーブ局データ収集装置10Sの時刻の時刻同期を定期的に行う。同期部12は、同期した時刻を時計部14へ送信して、同期した時刻を保持させる。
次に、マスタ局データ収集装置10Mとスレーブ局データ収集装置10Sとの時刻同期処理について説明する。図7は、本実施の形態1にかかるデータ収集システム100のマスタ局データ収集装置10Mとスレーブ局データ収集装置10Sとにおける時刻同期処理の手順を示すフローチャートである。なお、以下においては、マスタ局データ収集装置10Mをマスタ局と記載し、スレーブ局データ収集装置10Sをスレーブ局と記載する場合がある。図8は、本実施の形態1にかかるデータ収集システム100のマスタ局データ収集装置10Mとスレーブ局データ収集装置10Sとにおける時刻同期処理の通信シーケンス図である。
ステップS110において、マスタ局データ収集装置10Mの同期部12が、通信装置3および第1通信回線31を介して時刻同期フレームをスレーブ局データ収集装置10Sの同期部12に送信する。また、マスタ局データ収集装置10Mの同期部12は、マスタ局データ収集装置10Mの時計部14から定期的に送信される時刻を参照して、時刻同期フレームを送信した時刻である時刻同期フレーム送信時刻T1をスレーブ局データ収集装置10Sの同期部12に送信する。
ステップS120において、スレーブ局データ収集装置10Sの同期部12が、時刻同期フレームを受信したか否かを判定する。時刻同期フレームを受信したと判定された場合は、ステップS120においてYesとなり、ステップS130に進む。時刻同期フレームを受信していないと判定された場合は、ステップS120においてNoとなり、ステップS170に進む。
ステップS130において、スレーブ局データ収集装置10Sの同期部12が、スレーブ局データ収集装置10Sの時計部14から定期的に送信される時刻を参照して、時刻同期フレームを受信した時刻である時刻同期フレーム受信時刻T2を取得して保持する。
ステップS140において、スレーブ局データ収集装置10Sの同期部12が、時刻同期フレームに続いてマスタ局データ収集装置10Mから送られてくる時刻同期フレーム送信時刻T1を取得して保持する。
ステップS150において、スレーブ局データ収集装置10Sの同期部12が、後述するマスタ局データ収集装置10Mとスレーブ局データ収集装置10Sとの間の伝播遅延であるマスタ局とスレーブ局との間の伝播遅延時間を用いて、以下の式(1)に示す計算式を用いて、補正時間を算出する。なお、以下においては、マスタ局とスレーブ局との間の伝播遅延時間を伝播遅延時間と記載する場合がある。補正時間は、スレーブ局データ収集装置10Sの時刻を補正するための時間である。
補正時間=(T1+伝播遅延時間)−T2・・・(1)
ステップS160において、スレーブ局データ収集装置10Sの同期部12が、補正時間を用いてスレーブ局データ収集装置10Sの時刻を補正する。スレーブ局データ収集装置10Sの同期部12は、同期した時刻をスレーブ局データ収集装置10Sの時計部14へ送信して、時計部14の保持する時刻を、同期した時刻に更新させる。これにより、スレーブ局データ収集装置10Sの同期部12は、スレーブ局データ収集装置10Sの時刻、すなわちスレーブ局データ収集装置10Sの時計部14の時刻を、マスタ局データ収集装置10Mの時刻、すなわちマスタ局データ収集装置10Mの時計部14の時刻に同期することができる。
ステップS170において、スレーブ局データ収集装置10Sの同期部12が、次の時刻補正時刻まで待機して、次の時刻更新時刻になると、ステップS110に戻る。ここでの時刻補正時刻は、マスタ局データ収集装置10Mとスレーブ局データ収集装置10Sとにおける時刻同期処理が行われる、予め決められたタイミングの時刻である。
第1通信回線31に接続する全てのデータ収集装置10が上記の時刻同期処理を行うことによって、第1通信回線31に接続する全てのデータ収集装置10の時刻を同期することができる。
次に、図6に示したマスタ局データ収集装置10Mとスレーブ局データ収集装置10Sとの間の伝播遅延時間であるマスタ局とスレーブ局との間の伝播遅延時間の算出処理について説明する。図9は、本実施の形態1にかかるデータ収集システム100におけるマスタ局とスレーブ局との間の伝播遅延時間の算出処理の手順を示すフローチャートである。図10は、本実施の形態1にかかるデータ収集システム100におけるマスタ局とスレーブ局との間の伝播遅延時間の算出処理の通信シーケンス図である。
ステップS210において、スレーブ局データ収集装置10Sの同期部12が、マスタ局データ収集装置10Mの同期部12にリクエストメッセージを送信する。また、スレーブ局データ収集装置10Sの同期部12は、スレーブ局データ収集装置10Sの時計部14から定期的に送信される時刻を参照して、リクエストメッセージを送信した時刻であるリクエスト送信時刻T11を保持する。
ステップS220において、マスタ局データ収集装置10Mの同期部12が、スレーブ局データ収集装置10Sの同期部12から送信されたリクエストメッセージを受信するとともに、マスタ局データ収集装置10Mの時計部14から定期的に送信される時刻を参照して、リクエストメッセージを受信した時刻であるリクエスト受信時刻T12を取得して保持する。
ステップS230において、マスタ局データ収集装置10Mの同期部12が、スレーブ局データ収集装置10Sの同期部12にリクエスト受信時刻T12を送信する。また、マスタ局データ収集装置10Mの同期部12は、マスタ局データ収集装置10Mの時計部14から定期的に送信される時刻を参照して、リクエスト受信時刻T12を送信した時刻である送信時刻T13を取得して保持する。
ステップS240において、スレーブ局データ収集装置10Sの同期部12が、マスタ局データ収集装置10Mの同期部12から送信されたリクエスト受信時刻T12を受信して保持する。また、スレーブ局データ収集装置10Sの同期部12は、スレーブ局データ収集装置10Sの時計部14から定期的に送信される時刻を参照して、リクエスト受信時刻T12を受信した時刻である受信時刻T14を取得して保持する。
ステップS250において、マスタ局データ収集装置10Mの同期部12が、送信時刻T13をスレーブ局データ収集装置10Sの同期部12へ送信する。
ステップS260において、スレーブ局データ収集装置10Sの同期部12が、マスタ局データ収集装置10Mの同期部12から送信された送信時刻T13を受信して保持する。
ステップS270において、スレーブ局データ収集装置10Sの同期部12が、以下の式(2)に示す計算式を用いて、マスタ局とスレーブ局との間の伝播遅延時間を算出する。
伝播遅延時間=((T14−T11)−(T13−T12))/2・・・(2)
なお、マスタ局とスレーブ局との間の伝播遅延時間の算出方法は、伝播遅延時間の算出を定期的に行い、算出された複数回の伝播遅延時間の平均値を最終的な伝播遅延時間とするなど、適宜変更されてもよい。
上述したように、本実施の形態1にかかるデータ収集システム100では、同期部12が、他のデータ収集装置10との間で定期的に時刻同期処理を行い、時刻同期した時刻を時計部14に送信する。また、補正部13が、クロック生成部15から補正部12および時計部14に供給されるクロック信号のクロック周波数、すなわちクロック生成部15で生成されるクロック信号のクロック周波数と、クロック生成部15が生成するクロック信号のクロック周波数として予めクロック生成部15に設定されている設定周波数と、の偏差に基づいて、時計部14が保持する時刻を補正する時刻補正用のクロック信号の補正量を生成して時計部14へ送信する。
時計部14は、同期部12から同期された時刻を受信した場合は、保持している時刻を同期部12から受信した同期された時刻に置き換えて、時計部14に保持している時刻を更新する。これにより、各データ収集装置10は、他のデータ収集装置10との間での時刻のずれの発生を抑制することができる。
また、時計部14は、同期部12から同期された時刻を受信していない期間は、補正部13から送信される時刻補正用のクロック信号の補正量を用いてクロック信号を補正した補正クロック信号に従って動作して、時計部14に保持している時刻を更新する。これにより、各データ収集装置10は、同期部12から同期された時刻を受信していない期間における、各データ収集装置10内での、クロック生成部15から供給されるクロック信号のクロック周波数の変動に起因した時計部14の時刻のずれを抑制できる。
これにより、データ収集システム100では、複数のデータ収集装置10で収集された制御データを、時間軸が一致するようにデータ表示装置20の表示装置24にグラフ表示する場合に、各制御データの収集された時刻を精度良く同一の時間軸に合わせてグラフ表示することができる。
したがって、本実施の形態1にかかるデータ収集システム100によれば、複数のデータ収集装置10において収集された制御データを制御データの収集時刻とともに表示する際に、複数のデータ収集装置10ごとに保持される個別の時刻のずれを抑制できるデータ収集システムが得られる、という効果を奏する。そして、データ収集システム100を産業用システムに適用することにより、産業用システムで発生した真因の異常を判断しやすくなる、という効果が得られる。そして、高精度に時刻同期された時刻に基づいて、制御データをグラフ上にプロットすることで、ほぼ同時刻に発生した異常に対しても時刻の前後関係を正確に把握することができ、真因の異常判定を容易に行うことができるという効果を奏する。
実施の形態2.
本実施の形態2では、データ収集システム100における制御データの収集タイミングの変形例について説明する。本実施の形態2は、制御データの収集タイミングが実施の形態1の場合と異なる以外は、実施の形態1の場合と同様である。図11は、本実施の形態2におけるデータ収集装置10のメモリ2に記憶されるプロセスデータの構成例を示す図である。図11においては、プロセスデータである、サンプリングデータ1−1およびサンプリングデータ1−2が示されている。
図11に示すサンプリングデータ1−2では、制御データが周期的に取得されておらず、時刻t1’、時刻t7’、時刻t9’、・・・、時刻tk’のように、データ収集装置10における任意のタイミングで制御データが収集されている。そして、サンプリングデータ1−1とサンプリングデータ1−2とは、異なるタイミングで収集されたサンプリングデータ、すなわち異なるタイミングで収集されたプロセスデータである。
図12は、図11に示すプロセスデータがグラフ表示された特性図である。図12に示すグラフは、図11に示すサンプリングデータ1−1とサンプリングデータ1−2の信号1をグラフ表示した場合の例を示している。すなわち、図12に示すグラフでは、異なるタイミングで収集されたサンプリングデータ、すなわち異なるタイミング周期で収集されたプロセスデータが1つのグラフ上に表示されている。
本実施の形態2においても、データ収集装置10のメモリ2に記憶されるプロセスデータは、データ表示装置20の表示装置24で制御データをグラフ表示する場合、実施の形態1と同様に、データ収集時刻に基づいて、収集した制御データがグラフ上にプロットされる。
上述したように、本実施の形態2では、上述した実施の形態1と同様の効果が得られる。
また、本実施の形態2では、データ収集装置10における任意のタイミングで制御データが収集されるため、データ収集装置10において時間軸が一致するようにデータ表示装置20の表示装置24にグラフ表示できる制御データの自由度が大きくなる。これにより、データ収集システム100を産業用システムに適用した場合に、産業用システムで発生した真因の異常をより判断しやすくなる。
実施の形態3.
本実施の形態3では、データ収集システム100における制御データの収集タイミングの変形例について説明する。図13は、本実施の形態3におけるデータ収集装置10のメモリ2に記憶されるプロセスデータの構成例を示す図である。図13においては、プロセスデータである、サンプリングデータ2が示されている。
本実施の形態3では、図13に示すように、図2に示した「データ収集時刻」の代わりに、制御データを収集する予め決められた周期である「サンプリング周期P」と、制御データのメモリ2への記憶が開始される時刻である収集開始時刻の以降における収集開始時刻以外の任意の1点の時刻である「開始点以外のある1点のデータ収集時刻T」と、を時刻情報とする。そして、データ収集部11は、この時刻情報と、サンプリング周期P毎に収集した「信号1から信号m」の制御データと、を合わせてプロセスデータとしてメモリ2に記憶させる。
制御データを収集する予め決められた周期である「サンプリング周期P」と、制御データのメモリ2への収集開始時刻の以降における収集開始時刻以外の任意の1点の時刻である「開始点以外のある1点のデータ収集時刻T」と、の組み合わせ情報は、データ収集装置10が制御データを収集したデータ収集時刻を特定可能な時刻特定情報である。
図14は、図13に示すプロセスデータがグラフ表示された特性図である。図14に示すグラフは、図13に示すサンプリングデータ2の信号1をグラフ表示した場合の例を示している。図14では、「開始点以外のある1点のデータ収集時刻T」と「サンプリング周期P」との組み合わせ情報に基づいて、制御データがグラフ上にプロットされている。「開始点以外のある1点のデータ収集時刻T」としては、制御データのサンプリングのトリガ時刻または制御データのサンプリングの終了時刻などが例示される。毎周期の時刻情報を取得する必要がない点の時刻であれば、データ収集時刻の点は問わない。
本実施の形態3において、データ表示装置20の表示装置24でサンプリングデータをグラフ表示する場合、信号1のデータd1(T)はデータ収集時刻Tの時刻にプロットし、信号1のデータd1(T−P)は、データ収集時刻T−サンプリング周期Pの時刻にプロットする。また、信号1のデータd1(T+P)は、データ収集時刻T+サンプリング周期Pの時刻にプロットする。信号1のデータd1(T−a*P)は、データ収集時刻T−a*サンプリング周期Pの時刻にプロットする。また、信号1のデータd1(T+b*P)は、データ収集時刻T+b*サンプリング周期Pの時刻にプロットする。以下同様に、各時刻の信号データをプロットする。
上述したように、本実施の形態3では、上述した実施の形態1と同様の効果が得られる。
また、本実施の形態3では、制御データごとに「データ収集時刻」を記憶しなくてよいため、データ収集装置10のメモリ2の使用容量を削減できる。
なお、上述したデータ収集システム100の、具体的な構成例として以下の3つの構成例が例示される。図15は、実施の形態1にかかるデータ収集システム100の第1の構成例を示す図である。図16は、実施の形態1にかかるデータ収集システム100の第2の構成例を示す図である。図17は、実施の形態1にかかるデータ収集システム100の第3の構成例を示す図である。なお、以下におけるデータ収集装置10の基本的な構成および機能は、上述した実施の形態と同様である。
第1の構成例は、データ収集装置10と制御装置40とが独立した装置として構成される構成例であり、上述した実施の形態1に対応する構成例である。第1の構成例にかかるデータ収集システム100aは、複数のデータ収集装置10として、第1データ収集装置10aと第2データ収集装置10bと、の2つのデータ収集装置10を備える。第1データ収集装置10aおよび第2データ収集装置10bと、データ表示装置20とは、第1通信回線31aを介して通信可能である。以下においては、第1データ収集装置10aと第2データ収集装置10bとを区別しない場合には、データ収集装置10と呼ぶ。データ収集装置10は、上述した図1に示される構成および機能を有する。
第1データ収集装置10aは、制御装置40である第1PLC41aと第2通信回線32aを介して通信可能である。第2データ収集装置10bは、制御装置40である第2PLC41bと第2通信回線32aを介して通信可能である。以下においては、第1PLC41aと第2PLC41bとを区別しない場合には、PLC41と呼ぶ。
第1PLC41aは、第1サーボアンプ42aと通信線33により接続されており、第1サーボアンプ42aと有線通信可能である。なお、第1PLC41aと第1サーボアンプ42aとの通信は、無線通信であってもよい。第2PLC41bは、第2サーボアンプ42bと通信線33により接続されており、第2サーボアンプ42bと有線通信可能である。なお、第2PLC41bと第2サーボアンプ42bとの通信は、無線通信であってもよい。以下においては、第1サーボアンプ42aと第2サーボアンプ42bとを区別しない場合には、サーボアンプ42と呼ぶ。
第1サーボアンプ42aは、第1制御対象装置43aと通信線34により接続されており、第1制御対象装置43aと有線通信可能である。なお、第1サーボアンプ42aと第1制御対象装置43aとの通信は、無線通信であってもよい。第2サーボアンプ42bは、第2制御対象装置43bと通信線34により接続されており、第2制御対象装置43bと有線通信可能である。なお、第2サーボアンプ42bと第2制御対象装置43bとの通信は、無線通信であってもよい。以下においては、第1制御対象装置43aと第2制御対象装置43bとを区別しない場合には、制御対象装置43と呼ぶ。
上位の制御装置であるPLC41は、下位の制御装置であるサーボアンプ42を制御することにより制御対象装置43の動作を制御する。サーボアンプ42は、PLC41の制御に従って制御対象装置43の動作を制御する。
データ収集装置10は、PLC41によるサーボアンプ42を介した制御対象装置43の制御において得られるデータである制御データを、PLC41から取得する。データ収集装置10は、取得した制御データを、データ表示装置20に送信して表示させる。
具体的には、データ収集装置10のデータ収集部11が、PLC41から予め決められた周期で送信されてくる制御データを、予め決められた周期で収集し、データ収集装置10のメモリ2に送信する。データ収集装置10のデータ収集部11が制御データを収集する周期は、データ収集装置10のデータ収集部11に記憶されている。
データ収集装置10の通信装置3は、第1通信回線31aを介してデータ表示装置20と通信可能であり、メモリ2から送信されるプロセスデータを、第1通信回線31aを介してデータ表示装置20に送信する。また、通信装置3は、第2通信回線32aを介してPLC41と通信可能であり、第2通信回線32aを介してPLC41から送信される制御データを受け付ける。通信装置3は、受け付けた制御データをデータ収集部11に送信する。なお、データ収集部11が、通信装置3および第2通信回線32aを介さずにPLC41と直接通信する構成とされてもよい。
第2の構成例は、データ収集装置10が制御装置40における1つの機能として構成される構成例である。第2の構成例が第1の構成例と異なる点は、データ収集装置10としての機能を有するデータ収集機能部51が、PLC41に実装されている点である。
第2の構成例にかかるデータ収集システム100bは、データ収集装置10としての機能を有する第1データ収集機能部51aが、制御装置40である第1PLC41aにおける1つの機能として第1PLC41aに実装されている。また、データ収集装置10としての機能を有する第2データ収集機能部51bが、制御装置40である第2PLC41bにおける1つの機能として第2PLC41bに実装されている。第1データ収集機能部51aおよび第2データ収集機能部51bは、上述した図1に示される構成により実現される。以下、第1データ収集機能部51aと第2データ収集機能部51bとを区別しない場合には、データ収集機能部51と呼ぶ。
データ収集機能部51は、PLC41によるサーボアンプ42を介した制御対象装置43の制御において得られるデータである制御データを、サーボアンプ42から取得する。データ収集機能部51は、取得した制御データを、データ表示装置20に送信して表示させる。
具体的には、データ収集機能部51のデータ収集部11が、サーボアンプ42から予め決められた周期で送信されてくる制御データを、予め決められた周期で収集し、データ収集機能部51のメモリ2に送信する。データ収集機能部51のデータ収集部11が制御データを収集する周期は、データ収集機能部51のデータ収集部11に記憶されている。
データ収集機能部51の通信装置3は、第1通信回線31bを介してデータ表示装置20と通信可能であり、メモリ2から送信されるプロセスデータを、第1通信回線31bを介してデータ表示装置20に送信する。また、通信装置3は、通信線33を介してサーボアンプ42と通信可能であり、通信線33を介してサーボアンプ42から送信される制御データを受け付ける。通信装置3は、受け付けた制御データをデータ収集部11に送信する。なお、データ収集部11は、サーボアンプ42から制御データを直接取得せずに、PLC41が通信線33を介してサーボアンプ42から取得した制御データをPLC41の内部で取得してもよい。
第3の構成例は、データ収集装置10が制御装置40における1つの機能として構成されるパターンである。第3の構成例が第2の構成例と異なる点は、PLC41を備えず、データ収集装置10としての機能を有するデータ収集機能部51が、サーボアンプ42に実装されている点である。
第3の構成例にかかるデータ収集システム100cは、データ収集装置10としての機能を有する第1データ収集機能部51aが、制御装置40である第1サーボアンプ42aにおける1つの機能として第1サーボアンプ42aに実装されている。また、データ収集装置10としての機能を有する第2データ収集機能部51bが、制御装置40である第2サーボアンプ42bにおける1つの機能として第2サーボアンプ42bに実装されている。
データ収集機能部51は、サーボアンプ42による制御対象装置43の制御において得られるデータである制御データを、サーボアンプ42および制御対象装置43から取得する。データ収集機能部51は、取得した制御データを、データ表示装置20に送信して表示させる。
具体的には、データ収集機能部51のデータ収集部11が、制御対象装置43から予め決められた周期で送信されてくる制御データを、予め決められた周期で収集し、データ収集機能部51のメモリ2に送信する。データ収集機能部51のデータ収集部11が、サーボアンプ42の内部の制御データを予め決められた周期で収集し、データ収集機能部51のメモリ2に送信する。データ収集機能部51のデータ収集部11が制御データを収集する周期は、データ収集機能部51のデータ収集部11に記憶されている。
データ収集機能部51の通信装置3は、第1通信回線31cを介してデータ表示装置20と通信可能であり、メモリ2から送信されるプロセスデータを、第1通信回線31cを介してデータ表示装置20に送信する。また、通信装置3は、通信線34を介して制御対象装置43と通信可能であり、通信線34を介して制御対象装置43から送信される制御データを受け付ける。通信装置3は、受け付けた制御データをデータ収集部11に送信する。なお、データ収集部11は、制御対象装置43から制御データを直接取得せずに、サーボアンプ42が通信線34を介して制御対象装置43から取得した制御データをサーボアンプ42の内部で取得してもよい。
以上の実施の形態に示した構成は、一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、実施の形態同士を組み合わせることも可能であるし、要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。