(58)【調査した分野】(Int.Cl.,DB名)
電気機器を制御する下位制御装置と、同期通信及び非同期通信を介して通信可能に接続された前記下位制御装置を制御する上位制御装置とを備える産業機器のデータ収集システムであって、
前記上位制御装置は、
前記同期通信を介して前記下位制御装置へタイミング基準信号を送信する基準信号送信部、
を有し、
前記下位制御装置は、
前記電気機器に関するデータを記録するデータ記録部と、
前記タイミング基準信号を受信してから前記データ記録部がデータ記録を開始するまでの遅れ時間を計時する遅れ計時部と、
前記非同期通信または前記同期通信を介して前記データと前記遅れ時間を前記上位制御装置に送信するデータ送信部と、
を有することを特徴とする産業機器のデータ収集システム。
前記タイミング基準信号は、前記同期通信中の特定タイミングで送受されるビット情報であることを特徴とする請求項2乃至7のいずれか1項に記載の産業機器のデータ収集システム。
前記コントローラ又は前記管理制御装置の少なくとも一方が前記基準信号送信部と前記送信時刻記憶部を有することを特徴とする請求項11記載の産業機器のデータ収集システム。
【発明を実施するための形態】
【0010】
以下、一実施の形態について図面を参照しつつ説明する。
【0011】
<データ収集システムの全体構成>
図1を参照しつつ、本実施形態に係る産業機器のデータ収集システムの全体構成の一例について説明する。
【0012】
図1は、データ収集システムの概略的なブロック構成を表している。なお本実施形態の例では、産業機器である駆動機械の駆動を制御する制御システムであるとともに、その異常予知や最適化を図ることを目的としたデータも収集可能なシステムとして説明する。
図1に示すように、データ収集システム100は、駆動機械1と、サーバ2と、コントローラ3と、サーボアンプ4と、モータ5とを有している。
【0013】
駆動機械1は、当該データ収集システム100によってその駆動が制御されるとともに、その駆動や状態に関するデータが収集される対象の機械システムである。この駆動機械1の内部構成として、そのほとんどは後述のモータ5から入力されるトルクや推力によりその動作が制御される機構部分である。また本実施例における駆動機械1は、その他にも後述のコントローラ3から直接的に制御されるランプなどの表示装置、又はソレノイドやエアシリンダなどの各種アクチュエータ6を備えている。他にも駆動機械1は、その状態や検出値を後述のコントローラ3が直接的に検知可能な各種のスイッチやセンサ7なども備えている。
【0014】
サーバ2は、例えば特に図示しないCPUやROM、RAMなどのメモリを備えた汎用パーソナルコンピュータで構成され、駆動機械1に所望の工程に従った駆動動作を行わせるための上位制御指令を、例えばETHERNET(登録商標)などの通信ネットワーク8を介して後述のコントローラ3に出力する。また本実施形態の例において、このサーバ2は、ユーザからの入力操作や所定の設定条件に応じて駆動機械に関する各種データを取得するよう当該データ収集システム100全体を制御する機能や、また取得された各種データが時系列的にまとめられた後述のロギングデータをコントローラ3から受信し、そのデータ解析に基づいて駆動機械1の異常予知や制御の最適化を行う機能も有している。
【0015】
コントローラ3は、特に図示しないCPUやROM、RAMなどのメモリなどを備えたコンピュータで構成され、上記サーバ2から入力された上位制御指令に基づいて駆動機械1に所望の経時的動作を行わせるよう制御する制御装置である。この動作制御機能の形態として具体的には、駆動機械1の主要動力源である後述のモータ5に対して所望のモーション動作をリアルタイムかつ高精度に指示するモーション制御指令を、いわゆるフィールドネットワーク9を介して後述のサーボアンプ4に対し出力するモーション制御機能を有している。また、他の動作制御の形態として、当該コントローラ3が備える特に図示しないI/Oポートなどのインターフェースを介して、駆動機械1が備える上記ランプや各種アクチュエータ6等に対し経時的な動作を指示するシーケンス制御指令を出力するシーケンス制御機能も有している。またこの例のコントローラ3は、特に図示しないI/Oポートなどのインターフェースを介して、駆動機械1が備える上記各種のスイッチやセンサ7からの状態情報やセンサ値などを逐次読み取る機能も有している(後述の
図2参照)。そして本実施形態の例では、上記I/Oポートで読み取った状態情報やセンサ値と併せて、後述のサーボアンプ4から受信した駆動機械1に関する各種データを時系列的に整理してロギングデータとして生成し、上記サーバ2へ送信する機能を有している(詳しくは後述する)。
【0016】
サーボアンプ4は、特に図示しないCPUやROM、RAMなどのメモリなどを備えたコンピュータで構成され、上記コントローラ3から受信したモーション制御指令についてリアルタイムかつ高精度に追従するよう後述のモータ5に駆動電力を給電し駆動制御するモータ制御装置である。また本実施形態の例においてサーボアンプ4は、駆動電力を給電する過程で生成されるトルク指令や、実際にモータから出力された出力速度及び出力位置等の各種データを時系列的なトレースデータとして逐次取得して上記メモリに記録し(後述の
図2参照)、上記コントローラ3へ出力する機能も有している。
【0017】
モータ5は、例えば回転型や直動型のモータであり、サーボアンプ4から給電された駆動電力により上記駆動機械1の動作を駆動するトルクや推力を発生する。なお、この例におけるモータ5は回転型を想定しており、当該モータ5にはその出力位置(回転位置)を光学的に検出するエンコーダ10(外部機器)が設けられている。なお、モータ5が直動型の場合は上記エンコーダ10に代えてリニアスケールなどが設けられる。
【0018】
なお以上のシステム構成において、特にコントローラ3とサーボアンプ4との間で情報を送受させるフィールドネットワーク9においては、モーション制御指令を送受する際のリアルタイム性を確保するための同期通信と、比較的優先度の低い情報を送受するための非同期通信を切り替えて行うことが可能である(後に詳述する)。このようなフィールドネットワーク9は、同期通信と非同期通信を同一のケーブルラインで同一のプロトコルにより実装してもよいし、または同期通信と非同期通信で別体に実装してもよい。
【0019】
また、上記のサーバ2とコントローラ3のそれぞれにおいては、当該データ収集システム100の運用場所が属する時間帯の標準時刻に準拠して「年/月/日/時/分/秒」の絶対時刻で表記されたカレンダ情報を生成するカレンダIC11、12を備えている。コントローラ3は上記カレンダIC12のカレンダ情報に基づいて、上記トレースデータを含む各種データに対しそれら個々のデータ単位で取得時刻の情報を付与したロギングデータを生成する(後に詳述する)。そしてそのロギングデータを受信したサーバ2は、個々の取得時刻とカレンダIC11のカレンダ情報との対比に基づいたデータの解析により、駆動機械1の異常予知や制御の最適化を行う。
【0020】
なお、以上のシステム構成において、モータ5が各請求項記載の電気機器に相当し、サーボアンプ4が各請求項記載の下位制御装置に相当し、サーバ2及びコントローラ3が各請求項記載の上位制御装置に相当し、サーバ2が各請求項記載の管理制御装置に相当し、モータ5及び駆動機械1が各請求項記載の産業機器に相当する。
【0021】
<コントローラとサーボアンプ間におけるデータ送受手法について>
次に上記データ収集システムにおけるコントローラ3とサーボアンプ4間のデータ送受手法について
図2を参照しつつ説明する。上述したように、コントローラ3とサーボアンプ4の2つのノードは、それぞれ個別に駆動機械1の動作制御や状態に関する各種のデータを逐次取得して記憶可能となっている。図示する例では、コントローラ3自体がそのI/Oポートを介して駆動機械1が備えるセンサ7からその状態を表すセンサ値を独自に検出し、時系列データとして記録される。この場合は、コントローラ3のCPUがその割り込み処理によって所定周期でセンサ値を読み取るが、個々のデータの取得時刻は当該コントローラ3が備えるカレンダIC12からのカレンダ情報、または上記割り込み処理のカウンタ値などを参照して管理できる(特に図示せず)。
【0022】
また図示する例では、コントローラ3がモータ5に出力させるよう演算した速度指令をモーション制御指令としてサーボアンプ4に出力する場合、すなわち速度制御を行う場合を示しており、このモーション制御指令は上述したフィールドネットワーク9の同期通信にてコントローラ3からサーボアンプ4へ送受される。このとき、コントローラ3とサーボアンプ4のそれぞれが備えているフィールドネットワーク9用の通信制御装置(特に図示せず)は、互いに位相差が十分小さくまた十分短い同一周期(以下、同期通信周期という)でモーション制御指令を逐次送受する。これによりコントローラ3から送信するモーション制御指令が経時的に変動する場合でも、サーボアンプ4は十分なリアルタイム性をもってそのモーション制御指令の変動に対応した追従制御を行える。
【0023】
そして図示する例では、サーボアンプ4は、上記同期通信で受信したモーション制御指令を追従制御した結果モータ5から実際に出力された出力速度、出力位置、及びその追従制御の過程で生成されるトルク指令等の各種データを時系列的なトレースデータとして逐次取得して記録する。なお、出力速度については、エンコーダ10から検出した出力位置を時間微分等の演算により算出すればよい。
【0024】
ここでサーボアンプ4は、上述したモーション制御指令の追従制御を同期通信周期と同期した同期タスクとして実行するが、その一方で各種データのトレース処理を独自の制御周期で実行する(後に詳述する)。しかし、同期通信周期がとても短い期間であるため、サーボアンプ4が各種トレースデータを各同期通信周期ごとにコントローラ3へ逐次返信することは困難である。そのため、サーボアンプ4が取得したデータ容量の大きいトレースデータをコントローラ3へ返信するには、上記同期タスクの非実行期間中において任意のタイミングで行われる非同期通信でまとめて返信する必要がある。
【0025】
そしてコントローラ3は、当該コントローラ3自体が検出したセンサ値やモーション制御指令の時系列データとともに、サーボアンプ4から受信した各種トレースデータとを併せてまとめ、それら個々のデータ単位で取得時刻の情報を付与したロギングデータを生成する。なお、紙面の都合から
図2に示す時系列データの種類は限られているが、図示する以外にもコントローラ3が駆動機械1に直接出力するシーケンス制御指令や、サーボアンプ4で検出可能な速度偏差や推定外乱、またはサーボアンプ4内部における温度や湿度等の状態データなどの多様な時系列データをロギングデータ(トレースデータ)に含めてもよい。
【0026】
<本実施形態の特徴>
以上説明したように、一般的な産業機器システムの制御構成としては、当該産業機器(この例の駆動機械1)が備える電気機器(この例のモータ5)を制御する下位制御装置(この例のサーボアンプ4)と、その下位制御装置を制御する上位制御装置(この例のサーバ2及びコントローラ3)を備える場合が多い。これら下位制御装置と上位制御装置は、優先度の高い重要な制御指令(この例のモーション制御指令)などを所定周期の同期通信で送受し、優先度の低い情報を非同期通信で送受することが通常行われている。
【0027】
そして近年では、産業機器システムの運用制御における異常予知や最適化を目的として、電気機器の制御に関する各種データの収集技術と解析技術の開発が進められている。そこで上述したような産業機器システムの制御構成においては、各制御装置の処理リソースの都合上、下位制御装置が電気機器に関するデータ、例えば当該電機機器の制御に関する時系列データなどのデータを直接トレースして収集し、上位制御装置がそのデータに対して解析が容易となるよう整理してまとめるといった処理の分担を行う必要がある。しかしながら、トレースするデータはデータ容量が大きいため上記同期通信では送受が困難であり、そのため非同期通信でデータを送受する場合が多い。一方、送受タイミングが任意である非同期通信では、
図3に示すように、受信したデータが上位制御装置の制御シーケンスにおけるどのタイミングでトレースされたものかが不明確となり、取得タイミングの自明性が高い精度で要求されるデータ解析への適用が困難となる。
【0028】
これに対して本実施形態では、上位制御装置であるコントローラ3が同期通信を介して下位制御装置であるサーボアンプ4へトレーストリガを送信する。そして、サーボアンプ4が電気機器であるモータ5に関するデータをトレースして記録するとともに、上記トレーストリガを受信してから各種データのトレースを開始するまでの遅れ時間を計時し、非同期通信を介してデータと遅れ時間をコントローラ3に送信する。
【0029】
これにより、非同期通信を介してデータとともに遅れ時間を受信したコントローラ3は、当該コントローラ3自体が送信したトレーストリガの送信タイミングを基準として、遅れ時間を考慮したデータの同期を取ることができる。つまり、コントローラ3はそれ自体の制御シーケンスにおけるどのタイミングでデータがトレースされたものかを認識でき、データ解析が容易となるようそのデータを整理してまとめることができる。以下、このようなデータ同期手法について順次、詳細に説明する。
【0030】
<本実施形態におけるトレースデータの収集工程について>
上述したデータ同期を図るために本実施形態のデータ収集システムにおいて実行されるトレースデータの収集工程、及びロギングデータの生成工程を表すシーケンスチャートを
図4に示す。なお、この
図4に示すシーケンスチャートは、サーバ2とコントローラ3とサーボアンプ4の各ノード間において行われるデータ収集に関した各種情報の送受や処理のみを示しており、これとはまた別に駆動機械1の駆動制御に関する通常処理も時分割的に並行して行われているものとする。この通常処理としては、例えばコントローラ3においてモーション制御指令を生成、記録するとともに同期通信を介してサーボアンプ4に送信したり、また上記I/Oポートを介して駆動機械1に送信したシーケンス制御指令や駆動機械1から受信したセンサ値などを記録する処理などが含まれる。
【0031】
また、図示する例のコントローラ3は、そのCPUの割り込み処理によって同期タスクと非同期タスクの2種類のタスクを時分割的に実行するよう構成されている。同期タスクとは、上述したモーション制御指令の生成送信処理のように同期通信周期と同期して最優先で実行されるタスクであり、非同期タスクとは、同期タスクの実行に影響がないよう比較的優先度の低い処理を非同期で実行するタスクである。
【0032】
まず初めに、ステップS1において、サーバ2のCPUは、ユーザからの入力操作や所定の設定条件に対応して、駆動機械1の制御に関するロギングデータの生成を開始するようコントローラ3の非同期タスクにロギング開始指令を送信する。
【0033】
次に、ステップS2において、コントローラ3のCPUは非同期タスクにより、上記ロギングタスク指令を受けてトレース設定情報をサーボアンプ4に非同期通信で送信する。このトレース設定情報は、サーボアンプ4におけるデータトレース処理の詳細を設定する情報であり、具体的にはどの種類のデータをトレースするかを指定するトレース対象情報や、データをトレースする際のサンプリング周期Δt、トレースを開始するためのトレース開始条件などが含まれている。
【0034】
次に、ステップS3において、サーボアンプ4のCPUは、上記トレース設定情報を受けてそれに含まれているトレース開始条件を満たすよう前準備の処理を開始する。
【0035】
次に、ステップS4において、コントローラ3のCPUは同期タスクにより、トレーストリガをサーボアンプ4に同期通信で送信する。このトレーストリガは、当該データ収集システム100全体におけるデータトレース処理の時間的基準を示す情報であり、コントローラ3からサーボアンプ4へ同期通信で送受されるシリアルビット列中の特定のタイミングで送受されるビット情報である。なお、このトレーストリガが各請求項記載のタイミング基準信号に相当する。また、このトレーストリガのビット情報の形態については、後述の
図6で詳細に説明する。
【0036】
次に、ステップS5において、コントローラ3のCPUは同期タスクにより、上記ステップS4でトレーストリガを送信した際の送信時刻tlを記憶(ラッチ)する。本実施形態の例でこの送信時刻tlの情報は、当該コントローラ3が備えているカレンダIC12で計時された絶対時刻表記(「年/月/日/時/分/秒」)のカレンダ情報で取得される。
【0037】
また、ステップS6において、サーボアンプ4のCPUは、上記ステップS4でトレーストリガを受信した際に当該サーボアンプ4の内部で独自に用意した整数のカウンタ値をリセットし、すぐに所定の計時周期でそのカウンタ値をカウントアップ(インクリメント)する処理を開始する。
【0038】
次にステップS7において、コントローラ3のCPUは非同期タスクにより、トレース開始指令をサーボアンプ4に非同期通信で送信する。本実施形態の例においてこのトレース開始指令の送受は、上記ステップS3で受信したトレース設定情報に含まれているトレース開始条件の1つとして設定されている。また本実施形態の例におけるトレース開始条件には、他にもサーボアンプ4が各種データのトレース処理を実行するために必要な多様な準備処理の完遂などが含まれている。つまりサーボアンプ4は、上記のトレーストリガを受信した直後すぐにトレース処理を開始することができず、必要な開始指令の受信や多様な準備処理を完遂するなどのトレース開始条件を全て満たした際に次のステップS8でトレース処理を開始できる。
【0039】
ステップS8において、サーボアンプ4のCPUは、トレースデータを取得する。つまり、駆動機械1に関する各種データのトレース処理を実行する。なお、このトレース処理では、上記ステップS2でトレース設定情報として設定したサンプリング周期Δtで各種データをトレースする。また、このトレース処理を開始した時点tsで上記カウンタ値のカウントアップも終了する。このときのカウンタ値は、実際にトレーストリガを受信してからこのステップS8でトレース処理が開始されるまでの遅れ時間tdを計時しており、そのカウンタ値とカウントアップの計時周期とを積算することで遅れ時間tdの実際の時間長を算出できる。
【0040】
次にステップS9において、サーボアンプ4のCPUは、上記ステップS8で計時した遅れ時間tdを非同期通信でコントローラ3へ送信する。
【0041】
またステップS10において、サーボアンプ4のCPUは、上記ステップ8で取得したトレースデータも非同期通信でコントローラ3へ送信する。なお、上記ステップS9と当該ステップS10で送信した情報は、いずれもコントローラ3の非同期タスクで受信する。
【0042】
次にステップS11において、コントローラ3のCPUは同期タスクにより、上記ステップS5で記憶した送信時刻tlを非同期タスクで処理可能に受け渡す。
【0043】
次にステップS12において、コントローラ3のCPUは非同期タスクにより、当該コントローラ3の通常処理で生成、記録した各種制御指令及びセンサ値などのデータについて時刻補正を行う。この時刻補正について具体的には、トレーストリガの送信時刻tlと、上記ステップS9で受信した遅れ時間tdと、上記ステップS2でトレース設定情報として設定したサンプリング周期Δtとに基づいて、トレースデータと同等のトレース期間、サンプリング周期Δtでの時系列データの形態に補正する(後述の
図8参照)。
【0044】
次にステップS13において、コントローラ3のCPUは非同期タスクにより、上記ステップS12で時刻補正したコントローラ3の制御指令及びデータや、上記ステップS10でサーボアンプ4から受信したトレースデータの間で上記トレーストリガの送信時刻tlを基準とした同期を取り、さらに個々のデータ単位で送信時刻tlに基づいた取得時刻の情報を付与したロギングデータを作成する(後述の
図9参照)。
【0045】
次にステップS14において、コントローラ3のCPUは非同期タスクにより、上記ステップS13で作成したロギングデータをサーバ2へ送信する。
【0046】
次にステップS15において、サーバ2のCPUは、コントローラ3から受信したロギングデータを保存し、後のデータ解析に利用する。
【0047】
以上説明したシーケンスチャートの工程により、
図5に示すような各種データの収集が行われる。すなわち、コントローラ3側で各種制御指令やセンサ値が逐次記録されている最中に、同期通信周期と同期したトレーストリガがコントローラ3からサーボアンプ4へ送信される。そのトレーストリガの送信後でトレース開始条件を全て満たした際にサーボアンプ4でトレース処理が開始されるが、そのトレーストリガの送信から実際にトレース処理が開始されるまでの遅れ時間tdが別途計時される。つまりこの遅れ時間tdは、トレーストリガの送信時刻tlを基準時刻として、それに対するトレースデータの最初のデータの取得時刻tsとの間の相対時間差(いわゆるタイムスタンプ)に相当する。また、サーボアンプ4でのトレース処理はサンプリング周期Δtで行われる。このように取得されたトレースデータが遅れ時間tdとともにコントローラ3へ送信されることで、コントローラ3側で取得された他の制御指令やデータに対してもトレーストリガの送信時刻tlを基準としたデータ間の同期を取ることができる(後述)。
【0048】
以上において、上記ステップS4の制御手順が各請求項記載のトリガ送信部に相当し、上記ステップS8の制御手順が各請求項記載のトレース部に相当し、上記ステップS6からのカウンタ値のカウントアップ処理が各請求項記載の遅れ計時部に相当し、上記ステップS9及びステップS10の制御手順が各請求項記載のデータ送信部に相当し、上記ステップS5の制御手順が各請求項記載の送信時刻記憶部に相当し、上記ステップS12とステップS13の制御手順が各請求項記載のロギング部に相当し、上記ステップS2の制御手順が各請求項記載の設定情報送信部に相当する。
【0049】
<トレーストリガの伝送形態について>
図6は、上記
図4中におけるA部分を拡大し、トレーストリガの送信時刻tlの前後において同期通信で送受されるシリアルビット列を模式的に示している。図示するように、この例のフィールドネットワーク9における同期通信はいわゆるシリアル通信で行われ、一定時間間隔の同期通信周期Sでモーション制御指令などを含む情報が経時的なシリアルビット列Qの伝送形態で繰り返し送受される。そして一度に送受されるシリアルビット列Qのビット長はモーション制御指令などの内容によって変動する不定長であるが、そのうちの特定位置のnビット目(図中では「nbit」と表記)の内容がトレーストリガに割り当てられる。この例では、そのnビット目の内容が「1」(つまり正論理)である場合にトレーストリガがONされたことになる。
【0050】
このようにシリアルビット列Q中におけるトレーストリガのビット位置があらかじめ固定位置で規定されていることで、それを受信するサーボアンプ4側でもトレーストリガの受信有無を簡易かつ迅速に認識できる。そして一般的にコントローラ3とサーボアンプ4の間のフィールドネットワーク9で行われる同期通信は十分高速に情報を伝達できる性能を有しているため、それらノード間におけるトレーストリガの伝達にわずかな時間差が生じてもデータ解析上の観点では十分に許容可能な範囲に収めることができる。
【0051】
<トレースデータ、ロギングデータの詳細について>
図7は、非同期通信を介してサーボアンプ4からコントローラ3へ送信される遅れ時間tdとトレースデータを模式的に示している。図示する例では、遅れ時間tdが実時間長(μs)で送信されるが、上記のカウンタ値そのもので送信してもよい。この場合には、カウンタ値をカウントアップする計時周期も併せて送信し、コントローラ3側でそのカウンタ値を実時間長に変換すればよい。またトレースデータにおいては、出力速度、出力位置、トルク指令などの各種データで、それぞれトレース開始時tsのデータを先頭に同じサンプリング周期Δt、同じトレース期間の時系列データの形態で取得できる。
【0052】
そしてこれら遅れ時間tdとトレースデータを受信したコントローラ3は、当該コントローラ3が生成、記録した各種制御情報及びデータと併せて
図8に示すようにデータ同期できる。つまり、コントローラ3側の各種制御指令及びデータについては、上記ステップS12の時刻補正により、トレーストリガの送信時刻tlに遅れ時間tdを加算したトレース開始時刻tsから同じトレース期間分だけを抽出し、それを同じサンプリング周期Δtで標本化しなおす。これにより、コントローラ3側のデータとサーボアンプ4側のトレースデータとを同じタイミング、同じ期間、同じサンプリング周期で正規化でき、すなわちデータ同期できる。
【0053】
そして、
図9に示すように、各データ単位でその取得時刻(トレース時刻)を付与することでロギングデータを作成できる。例えばn番目(n=0、1、2、・・・)のデータのトレース時刻は、絶対時刻表記のカレンダ情報として取得されたトレーストリガ送信時刻tlと遅れ時間tdを加算したトレース開始時刻tsに、n×サンプリング周期Δtを加算して算出できる。このようにロギングデータ中における各データ単位で絶対時刻表記のトレース時刻が付与されていることにより、大量のデータを取得、記憶した場合でもそのデータ単位でトレース時刻を一意的に認識できる。
【0054】
<本実施形態の効果>
以上説明したように、本実施形態のデータ収集システム100によれば、コントローラ3によるステップS4の制御手順が同期通信を介してサーボアンプ4へトレーストリガを送信し、サーボアンプ4によるステップS8の制御手順がモータ5(駆動機械1)に関するデータをトレースする。それとともに、サーボアンプ4によるステップS6からのカウンタ値のカウントアップ処理が、トレーストリガを受信してからトレースを開始するまでの遅れ時間tdを計時し、ステップS9及びステップS10の制御手順が非同期通信を介してトレースデータと遅れ時間tdをコントローラ3に送信する。
【0055】
これにより、非同期通信を介してトレースデータとともに遅れ時間tdを受信したコントローラ3は、当該コントローラ3自体が送信したトレーストリガの送信時刻tlを基準として、遅れ時間tdを考慮したデータの同期を取ることができる。つまり、コントローラ3はそれ自体の制御シーケンスにおけるどのタイミングでトレースデータがトレースされたものを認識でき、データ解析が容易となるようそのデータを整理してまとめることができる。この結果、より有用なデータの収集が可能となる。
【0056】
また、本実施形態では特に、コントローラ3は、トレーストリガを送信した際の送信時刻tlをステップS5で記憶し、サーボアンプ4から受信した遅れ時間tdと送信時刻tlに基づいて、各種データに含まれる各データ単位でトレース時刻(tl+td+n×Δt:カレンダ情報)を付与したロギングデータをステップS12とステップS13で生成する。これにより、コントローラ3は、受信したトレースデータを絶対時刻(いわゆるグローバル時刻)で整理したロギングデータとして加工し、データ解析への適用度をさらに向上できる。なお、以上においてロギングデータに付与するトレース時刻は、コントローラ3のカレンダIC12が生成する絶対時刻に基づいた送信時刻tlを基準としているが、これに限られない。他にも、コントローラ3自体が、カレンダIC12の所定基準時刻から独自に所定周期でカウンタ値のカウントを開始し、そのカウンタ値に基づいて生成された実時刻で送信時刻tl及びトレース時刻を計時してもよい。この場合、一般的に流通している既製品のカレンダIC12では計時し得ないμs程度のオーダーまで計時できる。
【0057】
また、本実施形態では特に、コントローラ3は、トレーストリガの送信後のステップS2でトレース設定情報をサーボアンプ4へ送信する。これにより、サーボアンプ4がどのようなサンプリング周期Δtやトレース開始条件で、どのような種類のデータをトレースすべきかなどのトレース処理の柔軟な設定が可能となる。そして、本実施形態では、このようなトレース設定の影響でどのようにトレース開始の遅れ時間tdが変動した場合でもデータを同期させることができる。なお、コントローラ3によるトレース設定情報の送信は、トレーストリガと同時に送信してもよい。
【0058】
また、本実施形態では特に、トレース設定情報は、データとして時系列データをトレースする際のサンプリング周期Δtが含まれており、ステップS12とステップS13でロギングデータを作成する際には遅れ時間td、送信時刻tl、及びサンプリング周期Δtに基づいてトレース時刻を付与する。これにより、サーボアンプ4がどのような時間間隔で時系列データをトレースするかを任意に設定でき、その時間間隔に対応した高い精度で時刻付与したロギングデータの生成が可能となる。
【0059】
なお、サーボアンプ4におけるステップS6からのカウンタ値のカウントアップ処理、すなわち遅れ時間tdの計時処理は、サンプリング周期Δtの最小設定値以下の時間周期で遅れ時間tdを計時することが望ましい。これにより、サンプリング周期Δtと同等以上に高い精度で時系列データのトレース開始タイミングtsを定義でき、ロギングデータの同期時刻精度を確保できる。
【0060】
また、本実施形態では特に、ステップS12及びステップS13の制御手順で、当該コントローラ3自体でトレースした各種制御指令やデータに対しても送信時刻tlを基準としたトレース時刻を付与してロギングデータに含める。これにより、サーボアンプ4を介さずに例えばI/Oポートからコントローラ3自体でトレースした各種制御指令やデータに対しても、トレーストリガの送信時刻tlを基準として同期させ、ロギングデータに含めることが可能となる。
【0061】
また、本実施形態では特に、トレーストリガは、同期通信中の特定タイミングで送受されるビット情報であることにより、サーボアンプ4はあらかじめ規定された正確な受信タイミングでトレーストリガの受信有無を簡易かつ迅速に認識でき、それだけ遅れ時間tdの計時精度を向上できる。
【0062】
なお、サーボアンプ4は、例えばモーション制御以外にも外部機器との通信を行うように所定の周期毎に所定の制御処理を実行する周期制御機能を有していてもよい。このようにサーボアンプ4が周期制御機能を有する場合であっても、同期通信の通信周期に依存する本実施形態のデータ同期機能は上記周期制御機能の影響を受けずにデータ同期の高い精度を維持可能である点で特に好適である。
【0063】
また、本実施形態では特に、サーボアンプ4はモータ5を駆動制御するモータ制御装置であって、コントローラ3はそのモータ制御装置に制御指令を送信する制御装置である。本実施形態のデータ同期機能は、サーボアンプ4がモータ制御装置であり、コントローラ3がその上位制御装置である場合に特に好適である。
【0064】
また、本実施形態では特に、コントローラ3に制御指令を送信可能であって、コントローラ3からロギングデータを受信可能なサーバ2を有している。これにより、ユーザがサーバ2を介して任意のタイミングで直接的にロギングを開始させたり、ロギングデータのデータ解析をサーバ2に分担させるなど利便性が向上する。
【0065】
また、本実施形態では特に、サーボアンプ4によるステップS9及びステップS10の制御手順が、非同期通信を介してトレースデータと遅れ時間tdをコントローラ3に送信する。これにより、例えば時系列データなどのデータ容量が大きいデータでもまとめて確実にコントローラ3へ送信できる。なお、例えばトレースデータのデータ容量が十分小さい場合(例えば1回だけデータをトレースする場合など)には、サーボアンプ4が同期通信を介してトレースデータと遅れ時間tdをコントローラ3へ送信してもよい。
【0066】
<変形例>
なお、開示の実施形態は、上記に限られるものではなく、その趣旨及び技術的思想を逸脱しない範囲内で種々の変形が可能である。以下、そのような変形例を説明する。
【0067】
<サーバがロギングデータを作成する場合>
上記実施形態では、コントローラ3が主体となってデータ収集とロギングデータの作成を行っていたが、これに限られない。例えば、上記
図4に対応する
図10に示すように、サーバ2が主体となってデータ収集とロギングデータの作成を行ってもよい。
【0068】
具体的には、コントローラ3による上記ステップS2に代えて、サーバ2がステップS21でトレース設定情報を送信してもよく、それを受信したサーボアンプ4がステップS22でトレース開始条件を満たすよう前準備の処理を開始する。また、コントローラ3の同期タスクによる上記ステップS23でトレーストリガを同期通信でサーボアンプ4に送信し、その送信時刻tlをステップS24でサーバ2へ送信する。そしてトレーストリガを受信したサーボアンプ4はステップS26でカウンタ値のカウントアップ処理を開始し、サーバ2によるステップS27でサーボアンプ4へトレース開始指令を送信する。
【0069】
その後にサーボアンプ4がトレース開始条件を全て満たした際にステップS28でトレース処理を行うとともに、カウンタ値のカウントアップ処理を終了する。そしてサーボアンプ4のステップS29及びステップS30で遅れ時間tdとトレースデータをサーバ2へ送信する。その遅れ時間tdとトレースデータを受信したサーバ2が、ステップS31とステップS32でデータ時刻補正とロギングデータの作成を行う。
【0070】
このようにサーバ2がデータ収集とロギングデータの作成を行うことでコントローラ3の処理負担が軽減され、余裕のあるモーション制御指令の生成と同期通信が可能となる。なお、同期通信を介したトレーストリガの送信はサーバ2とコントローラ3のいずれで行ってもよいが、その送信時刻tlの記憶はそのトレーストリガを送信したノード自体で行うことが望ましい。このように、コントローラ3又はサーバ2のいずれかのノードでトレーストリガの送信とその送信時刻tlの記憶の両方を行うことで、サーボアンプ4へトレーストリガを送信した際の送信時刻tlの正確性を担保でき、データ同期機能の精度を確保できる。なお、以上のようにサーバ2とコントローラ3が別体で構成する以外にも、サーバ2とコントローラ3が機器として一体に構成していてもよい。
【0071】
<エンコーダから延長して接続する外部機器からデータを収集する場合>
上記実施形態では、データを収集するのがサーボアンプ4とコントローラ3だけであったが、これに限られない。例えば、上記
図1に対応する
図11に示すように、エンコーダ10から延長して接続するセンサ13からデータ収集する場合にも同じデータ同期手法を適用できる。
【0072】
図11に示す例では、サーボアンプ4に接続するエンコーダ10がさらに駆動機械1に備えられたセンサ13にも接続しており、当該センサ13が検出したデータがエンコーダ10を介してサーボアンプ4に送信可能となっている。この場合には、サーボアンプ4がエンコーダ10を介してそのセンサ13がトレースしたデータを受信し、トレーストリガを受信してからそのセンサ13がトレースを開始するまでの遅れ時間も別途計時する。
【0073】
そしてサーボアンプ4は、当該サーボアンプ4のトレースデータと遅れ時間tdとはまた個別に、そのセンサ13のトレースデータとそれに対応する遅れ時間を別途コントローラ3へ送信する。この場合、コントローラ3はそれぞれの遅れ時間を考慮してそれぞれのトレースデータのデータ同期を取って、一つのロギングデータにまとめればよい。これにより、サーボアンプ4は、当該サーボアンプ4自体が直接的にトレースできないデータも取得でき、これに対しても同様に同期させることができる。
【0074】
なお、以上の説明において、「垂直」「平行」「平面」等の記載がある場合には、当該記載は厳密な意味ではない。すなわち、それら「垂直」「平行」「平面」とは、設計上、製造上の公差、誤差が許容され、「実質的に垂直」「実質的に平行」「実質的に平面」という意味である。
【0075】
また、以上の説明において、外観上の寸法や大きさ、形状、位置等が「同一」「同じ」「等しい」「異なる」等の記載がある場合は、当該記載は厳密な意味ではない。すなわち、それら「同一」「等しい」「異なる」とは、設計上、製造上の公差、誤差が許容され、「実質的に同一」「実質的に同じ」「実質的に等しい」「実質的に異なる」という意味である。
【0076】
また、以上既に述べた以外にも、上記実施形態や各変形例による手法を適宜組み合わせて利用しても良い。その他、一々例示はしないが、上記実施形態や各変形例は、その趣旨を逸脱しない範囲内において、種々の変更が加えられて実施されるものである。
【解決手段】モータ5を制御するサーボアンプ4と、同期通信及び非同期通信を介して通信可能に接続されたサーボアンプ4を制御するコントローラ3とを備える産業機器のデータ収集システム100であって、コントローラ3は、同期通信を介してサーボアンプ4へトレーストリガを送信するステップS4の制御手順を実行し、サーボアンプ4は、モータ5に関するトレースデータをトレースするステップS8の制御手順と、トレーストリガを受信してからトレースを開始するまでの遅れ時間tdを計時するステップS6の制御手順と、非同期通信を介してトレースデータと遅れ時間tdをコントローラ3に送信するステップS9、S10の制御手順と、を実行する。