(58)【調査した分野】(Int.Cl.,DB名)
EtherCATスレーブコントローラー(EtherCAT Slave Controller,ESC)を有するEtherCATスレーブ機器に応用されるEtherCATプロトコルに基づくデータハンドシェイク方法であって、
第1受信パスを介して直前のデータ処理機器からデータパケットを受信するステップaと、
前記EtherCATスレーブコントローラーが、前記データパケットから前記EtherCATスレーブ機器の自己データを取得するか、又は前記データパケットに前記EtherCATスレーブ機器のフィードバックデータを挿入して、処理後データパケットを生成するステップbと、
第1送信パスを介して前記処理後データパケットを直後のスレーブ機器に伝送するステップcと、
第2受信パスを介して前記直後のスレーブ機器からリターンパケットを受信するとともに、第2送信パスを介して前記リターンパケットを前記直前のデータ処理機器に送り返すステップdと、
前記データパケット、前記処理後データパケット及び前記リターンパケットのうち少なくとも1つに対してパケット分配プログラムを実行して、コンテンツの少なくとも一部が前記データパケット、前記処理後データパケット又は前記リターンパケットと同じであるバックアップパケットを生成するステップeと、
前記EtherCATスレーブコントローラーが前記バックアップパケットを解析してその他のスレーブ機器の指定アプリケーションデータをフィルタリングし保存するステップfと、を含むEtherCATプロトコルに基づくデータハンドシェイク方法。
前記ステップeにおいて、前記パケット分配モジュールは、前記データパケット、前記処理後データパケット又は前記リターンパケットを直接コピーし、前記EtherCATスレーブ機器の内部メモリに保存して、前記バックアップパケットを生成する請求項2に記載のEtherCATプロトコルに基づくデータハンドシェイク方法。
前記直前のデータ処理機器が、EtherCATマスタ機器又はその他のEtherCATスレーブ機器である請求項1に記載のEtherCATプロトコルに基づくデータハンドシェイク方法。
前記EtherCATスレーブ機器が、フィールドプログラマブルゲートアレイ(Field Programmable Gate Array,FPGA)、特定用途向け集積回路(Application Specific Integrated Circuit,ASIC)又はマイクロコントローラーユニット(Micro Controller Unit,MCU)により実現される請求項1に記載のEtherCATプロトコルに基づくデータハンドシェイク方法。
【発明を実施するための形態】
【0011】
以下、図面を参照しながら、本発明の好ましい実施例を詳しく説明する。
【0012】
本発明は、主にEtherCATバス上にあるEtherCATスレーブ機器に応用され、複数のEtherCATスレーブ機器間でEtherCATマスタ機器の介入も、追加のコマンドパケットも必要としない条件で、データを同期させることが可能なイーサキャット(Ethernet for Control Automation Technology, EtherCAT)プロトコルに基づくデータハンドシェイク方法(以下、ハンドシェイク方法という)を示す。且つ、一部の実施例においては更に、同一通信周期内でデータを直接同期させることができる。これにより、通信速度を保証しながら、同期率を効果的に向上させる。
【0013】
図2は本発明のEtherCATスレーブ機器のブロック図の実施例1である。
図2は、相互に直列接続される形で、EtherCATパケットを伝送する複数のEtherCATスレーブ機器4(以下、スレーブ機器4という)を示す。
【0014】
上述したように、本発明は、EtherCATプロトコルの標準アーキテクチャを変更しない条件で、追加のコマンドパケットを必要とせずに、複数のスレーブ機器4のデータ同期が可能であることを一つの技術的特徴とする。必要に応じて、複数のスレーブ機器4は更に同一通信周期内でデータを同期させることが可能であり、且つ同期の過程でマスタ機器の介入を必要としない。
【0015】
具体的には、一つのマスタ機器(図示せず)は、EtherCATプロトコルの標準アーキテクチャに基づき、複数のスレーブ機器4に直列接続される。パケット送信プログラムにおいて、マスタ機器は一つのEtherCATパケットをEtherCATバス上にある各スレーブ機器4に順に伝送し、各スレーブ機器4はそれぞれパケット内から自己データを抽出するか、又はフィードバックデータをパケット内に挿入する。パケットリターンプログラムにおいて、EtherCATバス上にある最後のスレーブ機器4は、処理されたEtherCATパケットを上流側へ伝送し、上流側の全てのスレーブ機器4を介してEtherCATパケットをマスタ機器に送り返す。一般的に、EtherCATパケットがマスタ機器から発せられてからマスタ機器に送り返されるまでの時間を、「一つの通信周期」と称する。
【0016】
図2に示すように、スレーブ機器4は主に入力ポート42、出力ポート43、及びこれらを接続するEtherCATスレーブコントローラー(EtherCAT Slave Controller,ESC)41を備える。本実施例においては、スレーブ機器4は入力ポート42を介して直前のデータ処理機器(図示しないマスタ機器又はスレーブ機器)に接続され、且つEtherCATバス上の出力ポート43を介して直後のスレーブ機器4に接続される。
【0017】
パケット伝送プログラムにおいて、スレーブ機器4は第1受信パスを介して、直前のデータ処理機器(例えば、直前のスレーブ機器4)からデータパケットP1を受信する。スレーブ機器4は、内部のEtherCATスレーブコントローラー41を介して、データパケットP1を処理後データパケットP2に処理して変換し、且つEtherCATバス上の第1送信パスを介して処理後データパケットP2を直後のスレーブ機器4に伝送する。
【0018】
パケットリターンプログラムにおいて、スレーブ機器4は第2受信パスを介して、直後のスレーブ機器4からリターンパケットP3を受信し、且つ第2送信パスを介してリターンパケットP3を直前のデータ処理機器に伝送する。
【0019】
図2に示すように、前記第1受信パスは、少なくとも直前のデータ処理機器と入力ポート42との間の接続ライン及び入力ポート42とEtherCATスレーブコントローラー41との間の第1受信ライン(Rx1)を含む。前記第1送信パスは、少なくともEtherCATスレーブコントローラー41と出力ポート43との間の第1送信ライン(Tx1)及び出力ポート43と直後のスレーブ機器4との間の接続ラインを含む。前記第2受信パスは、少なくとも直後のスレーブ機器4と出力ポート43との間の接続ライン及び出力ポート43とEtherCATスレーブコントローラー41との間の第2受信ライン(Rx2)を含む。前記第2送信パスは、少なくともEtherCATスレーブコントローラー41と入力ポート42との間の第2送信ライン(Tx2)及び入力ポート42と直前のデータ処理機器との間の接続ラインを含む。
【0020】
本発明は、スレーブ機器4が、上記第1受信パス、第1送信パス、第2受信パス又は第2送信パスを介して、受信・伝送するEtherCATパケットに対してパケット分配プログラムを実行し、且つパケット分配プログラムにより生成されるパケット内からその他のスレーブ機器4の関連データを直接抽出することを一つの技術的特徴とする。これにより、各スレーブ機器4は追加のコマンドパケットを必要としない条件で、自己データ及びその他のスレーブ機器4(主に同期して作動させる必要がある一つ又は複数のスレーブ機器4)の関連データ(主に同期作動に関連するデータ)を同時に取得することが可能である。且つ、各スレーブ機器4は更に同一通信周期内で前記自己データ及び関連するスレーブ機器4のデータを取得することが可能であり、それにより正確に同期するという目的を達成する。
【0021】
図3は本発明のハンドシェイクフローチャートの実施例1である。
図3は本発明のハンドシェイク方法の各実行ステップを示す。且つ、前記ハンドシェイク方法は、主に
図2に示す一つ以上のスレーブ機器4に利用される。
【0022】
本発明のハンドシェイク方法において、まず、スレーブ機器4は入力ポート42に接続される直前のデータ処理機器から第1受信パスを介してデータパケットP1を受信する(ステップS10)。具体的には、ステップS10において、スレーブ機器4の入力ポート42は外部ラインを介して直前のデータ処理機器からデータパケットP1を受信し、スレーブ機器4のEtherCATスレーブコントローラー41は内部ラインを介して入力ポート42から前記データパケットP1を受信する。つまり、前記第1受信パスは、直前のデータ処理機器と入力ポート42との間の接続ライン及びEtherCATスレーブコントローラー41の前記第1受信ライン(Rx1)を含む。
【0023】
ステップS10が完了すると、EtherCATスレーブコントローラー41はデータパケットP1からスレーブ機器4の自己データを取得するか、又は送り返されるフィードバックデータをデータパケットP1内に挿入し、それによりデータパケットP1を処理後データパケットP2に変換する(ステップS12)。前記処理後データパケットP2を生成した後、スレーブ機器4は更に第1送信パスを介して処理後データパケットP2を出力ポート43に接続された直後のスレーブ機器4に伝送する(ステップS14)。
【0024】
具体的には、ステップS14において、EtherCATスレーブコントローラー41は内部ラインを介して処理後データパケットP2を出力ポート43に伝送し、更に出力ポート43は外部ラインを介して処理後データパケットP2を直後のスレーブ機器4に伝送する。つまり、前記第1送信パスは、前記EtherCATスレーブコントローラー41の前記第1送信パス(Tx1)と、出力ポート43と直後のスレーブ機器4との間の接続ラインを含む。
【0025】
パケットリターンプログラムにおいて、スレーブ機器4は、更に第2受信パスを介して出力ポート43に接続された直後のスレーブ機器4からリターンパケットP3を受信する(ステップS16)。且つ、本実施例においては、スレーブ機器4のEtherCATスレーブコントローラー41はリターンパケットP3を処理せず、第2送信パスを介して前記リターンパケットP3を入力ポート42に接続された直前のデータ処理機器に直接伝送する(ステップS18)。パケットリターンプログラムの最後に、前記リターンパケットP3はEtherCATバス上にあるマスタ機器(図示せず)に伝送される。
【0026】
本実施例においては、ステップS16において、スレーブ機器4の出力ポート43は外部ラインを介して直後のスレーブ機器4からリターンパケットP3を受信し、スレーブ機器4のEtherCATスレーブコントローラー41は内部ラインを介して出力ポート43から前記リターンパケットP3を受信する。つまり、前記第2受信パスは、直後のスレーブ機器4と出力ポート43との間の接続ライン、及びEtherCATスレーブコントローラー41の前記第2受信ライン(Rx2)を含む。ステップS18において、スレーブ機器4のEtherCATスレーブコントローラー41は内部ラインを介してリターンパケットP3を入力ポート42に伝送し、入力ポート42は外部ラインを介してリターンパケットP3を直前のデータ処理機器に伝送する。つまり、前記第2送信パスは、EtherCATスレーブコントローラー41の前記第2送信ライン(Tx2)、及び入力ポート42と直前のデータ処理機器との間の接続ラインを含む。
【0027】
本発明は、スレーブ機器4が、ステップS10で伝送されるデータパケットP1、ステップS14で伝送される処理後データパケットP2、ステップS16で伝送されるリターンパケットP3、及びステップS18で伝送されるリターンパケットP3のうち少なくとも1つに対してパケット分配プログラムを実行して、前記データパケットP1、処理後データパケットP2、又はリターンパケットP3に基づきバックアップパケットP4を生成する(ステップS20)ことを一つの技術的特徴とする。
【0028】
実施例において、スレーブ機器4は前記ステップS10、S14、S16又はS18においてデータパケットP1、処理後データパケットP2又はリターンパケットP3の一部のコンテンツを抽出して前記バックアップパケットP4を生成する。本実施例において、バックアップパケットP4のコンテンツの一部は、前記データパケットP1、処理後データパケットP2又はリターンパケットP3と同じである。
【0029】
その他の実施例においては、スレーブ機器4は、前記第1受信パス、第1送信パス、第2受信パス又は第2送信パスを介してデータパケットP1、処理後データパケットP2、又はリターンパケットP3を前記バックアップパケットP4として直接コピーする。本実施例においては、バックアップパケットP4のコンテンツは前記データパケットP1、処理後データパケットP2又はリターンパケットP3と同じである。
【0030】
ステップS20が完了すると、スレーブ機器4はEtherCATスレーブコントローラー41を介してバックアップパケットP4を解析することで、EtherCATバス上にあるその他のスレーブ機器の指定アプリケーションデータをフィルタリングして保存する(ステップS22)。ステップS22が完了すると、スレーブ機器4は前記ステップS12において取得した自己データに基づき自己の機能を実現できるだけでなく、前記自己データとステップS22において取得した指定アプリケーションデータを組み合わせて、補助機能を実現する(ステップS24)。これにより、複数のスレーブ機器4間の同期作動の機能を向上させる。
【0031】
なお、本発明において同一通信周期とは、パケットがマスタ機器から発せられてから、EtherCATバス上にある全てのスレーブ機器4を通過し、最終的にマスタ機器に送り返されるまでの時間を意味する。実施例において、前記ステップS10からステップS24までは同一通信周期内で完了する。その他の実施例において、前記ステップS10からステップS18まで、及びステップS20からステップS24までは、2つ以上の通信周期内で完了する。
【0032】
図2に戻り、前記スレーブ機器4は更に自己データ交換モジュール44、自己機能実現モジュール45、パケット分配モジュール46、指定データ取得モジュール47及び補助機能実現モジュール48を含む。実施例において、上記モジュール44〜48は、例えばICのようなハードウェア部品により実現される。その他の実施例において、上記モジュール44〜48は、予めプログラムされ且つチップに書き込まれているファームウェアにより実現することができるが、これに限定されない。
【0033】
実施例において、本発明のスレーブ機器4は、フィールドプログラマブルゲートアレイ(Field Programmable Gate Array,FPGA)、特定用途向け集積回路(Application Specific Integrated Circuit,ASIC)又はマイクロコントローラーユニット(Micro Controller Unit,MCU)により実現される。EtherCATバスの利用者は、ファームウェアを介して上記各モジュール44〜48の各機能を実現し、且つファームウェアをFPGA、ASIC又はMCUに書き込んで、チップのEtherCATスレーブコントローラー41と組み合わせることで、本発明のハンドシェイク方法を実現する。
【0034】
具体的に、自己データ交換モジュール44は、主にEtherCATスレーブコントローラー41が自己データパケットP1から抽出したデータを取得するためのものである。且つ、スレーブ機器4は、デジタル信号プロセッサ(Digital Signal Processor,DSP)の通信インターフェースを介して自己データ交換モジュール44から前記データを取得する。これにより、自己機能実現モジュール45は前記データに基づきスレーブ機器4の下位機能を実現することができる。
【0035】
例えば、本発明のスレーブ機器4は、パネル検出器、コンピュータ数値制御装置(Computer Numerical Controller,CNC)、多軸ロボットなどの装置の複数のドライバに利用されることにより、装置にある複数の軸を制御することができる。上記データに基づき、各スレーブ機器4は、各ドライバに割り当てられているそれぞれの作動を、自己機能実現モジュール45を介して対応して実行することができる。実施例において、上記データは、例えば該ドライバに対するスレーブ機器4の位置フィードバックデータ、速度フィードバックデータ又はトルクフィードバックデータであってもよいが、これに限定されない。
【0036】
本発明において、前記パケット分配モジュール46は、該第1受信パス、該第1送信パス、該第2受信パス又は該第2送信パス上に設置されてもよい。
【0037】
図2に示す実施例において、前記パケット分配モジュール46は、前記第1受信ライン(Rx1)、第1送信ライン(Tx1)、第2受信ライン(Rx2)又は第2送信ライン(Tx2)即ちスレーブ機器4の内部に設置され、前記パケット(データパケットP1、処理後データパケットP2及びリターンパケットP3を含む)のコンテンツを抽出するか、又はこれらのパケットP1〜P3を直接コピーして前記バックアップパケットP4を生成する。しかしながら、後述するように、その他の実施例において、前記パケット分配モジュール46は、スレーブ機器4の外部に設置される。
【0038】
前記指定データ取得モジュール47は、パケット分配モジュール46から前記バックアップパケットP4を取得するとともに、スレーブ機器4の初期設定値に基づきバックアップパケットP4内からその他のスレーブ機器4の指定アプリケーションデータを取得する。
【0039】
更に具体的に、利用者は、スレーブ機器4が起動する前に、予め各スレーブ機器4の初期設定値を設定することができ、例えば同期作動を必要とするなどの該スレーブ機器4に関連する一つ又は複数のその他のスレーブ機器4を指定し、且つ必要なデータタイプを指定する。
【0040】
例えば、スレーブ機器4がパネル検出器のガントリ主軸に使用される場合、利用者は、指定データ取得モジュール47がバックアップパケットP4から、例えば位置フィードバックデータ、速度フィードバックデータ、又はトルクフィードバックデータなどの、ガントリ従軸に対応するスレーブ機器4の指定アプリケーションデータを取得するように、該スレーブ機器4の初期設定値を設定するが、これに限定されない。
【0041】
本実施例において、スレーブ機器4は、更に前記デジタル信号プロセッサの通信インターフェースを介して指定データ取得モジュール47から前記指定アプリケーションデータを取得することができる。これにより、補助機能実現モジュール48は、スレーブ機器4の自己データ及びその他のスレーブ機器4の指定アプリケーションデータを組み合わせることにより、複数のスレーブ機器4間の同期作動の性能を向上させるだけでなく、例えば複数のスレーブ機器4間の入力点/出力点をリアルタイムに制御するなどの拡張性のあるアプリケーションを実行することもできる。これにより、本発明は、連携関係のある複数のスレーブ機器4の正確な同期制御を実現する。
【0042】
なお、前記パケット分配モジュール46が第1受信ライン(Rx1)又は第1送信ライン(Tx1)上に設置される場合、出力ポート43を介してスレーブ機器4に接続された直後のスレーブ機器4は、フィードバックデータを前記データパケットP1又は処理後データパケットP2内に書き込んでいないため、パケット分配モジュール46が取得したバックアップパケットP4には直後のスレーブ機器4のデータが含まれない。つまり、スレーブ機器4が指定され、下流側に配置された一つ又は複数のスレーブ機器4のデータを取得する必要がある場合、前記パケット分配モジュール46は、第1受信ライン(Rx1)又は第1送信ライン(Tx1)上に設けることができず、第2受信ライン(Rx2)と第2送信ライン(Tx2)上にのみ設けることができる。
【0043】
しかしながら、EtherCATプロトコルの標準アーキテクチャに基づき、EtherCATスレーブコントローラー41は受信したリターンパケットP3に対していずれの動作も実行することができず、リターンパケットP3内にはEtherCATバス上にある全てのスレーブ機器4のフィードバックデータが既に含まれている。したがって、スレーブ機器4が上流側であるか下流側であるかを問わず一つ又は複数のスレーブ機器4との同期動作を必要とする場合、いずれも前記パケット分配モジュール46を第2受信ライン(Rx2)と第2送信ライン(Tx2)の位置上に直接設けることができる。
【0044】
図4は本発明のEtherCATスレーブ機器のブロック図の実施例2である。前述したように、本発明において、スレーブ機器4は、少なくともFPGA、ASIC又はMCUを介して実現される。
図4に示す実施例において、本発明のハンドシェイク方法をファームウェアとしてFPGAに書き込むことにより、前記スレーブ機器4はFPGAによって実現されるが、これに限定されない。
【0045】
図4に示すように、EtherCATスレーブコントローラー41には第1メディアアクセスコントロール(Media Access Control,MAC)ユニット411及び第2MACユニット412が設けられる。パケット送信プログラムにおいて、EtherCATスレーブコントローラー41がデータパケットP1を受信できるように、直前のデータ処理機器(マスタ機器又はスレーブ機器)は、データパケットP1を第1MACユニット411に送信することができる。EtherCATスレーブコントローラー41がデータパケットP1から自己データを取得するか、又はフィードバックデータをデータパケットP1に挿入して処理後データパケットP2を生成すると、第2MACユニット412を用いて処理後データパケットP2を直後のスレーブ機器に割り当てられるアドレスに送信することができる。
【0046】
パケットリターンプログラムにおいて、スレーブ機器4のEtherCATスレーブコントローラー41は、第2MACユニット412を用いて直後のスレーブ機器4から送り返されたリターンパケットP3を受信し、且つ更に第1MACユニット411を用いて該リターンパケットP3を直前のデータ処理機器(マスタ機器又はスレーブ機器)のアドレスに送信することにより、パケットリターンプログラムを完了させる。
【0047】
なお、スレーブ機器4がEtherCATバス上にある最後のスレーブ機器4である場合、そのEtherCATスレーブコントローラー41がパケットを下流側へ送信することは不要であるため、第2MACユニット412は不要である。具体的に、該スレーブ機器4は、処理後データパケットP2をリターンパケットP3として直接生成し、EtherCATスレーブコントローラー41の第1MACユニット411を用いてリターンパケットP3を直前のデータ処理機器(マスタ機器又はスレーブ機器)のアドレスに送り返すことにより、パケットリターンプログラムを起動する。
【0048】
本発明は、前記パケット分配モジュール46に第1MACユニット411及び第2MACユニット412と異なる第3MACユニット51が設置されることを一つの技術的特徴とする。
【0049】
実施例1において、前記パケット分配モジュール46はEtherCATスレーブコントローラー41の第1受信ライン(Rx1)上に設けられる。パケット分配プログラムを実行する場合、直前のデータ処理機器は入力ポート42を介してデータパケットP1をEtherCATスレーブコントローラー41の第1MACユニット411及びパケット分配モジュール46の第3MACユニット51に同時に伝送する。これにより、パケット分配モジュール46はパケットを前記バックアップパケットとして受信することにより、パケット分配プログラムを完了させる。
【0050】
実施例2において、前記パケット分配モジュール46は前記第1送信ライン(Tx1)上に設けられる。パケット分配プログラムを実行する場合、EtherCATスレーブコントローラー41は該第2MACユニット412を用いて処理後データパケットP2を直後のスレーブ機器のアドレス及びパケット分配モジュール46の第3MACユニット51に同時に伝送する。それにより、パケット分配モジュール46はパケットを前記バックアップパケットP4として受信することにより、パケット分配プログラムを完了させる。
【0051】
実施例3において、前記パケット分配モジュール46は前記第2受信ライン(Rx2)上に設けられる。パケット分配プログラムを実行する場合、直後のスレーブ機器4はリターンパケットP3をEtherCATスレーブコントローラー41の第2MACユニット412及びパケット分配モジュール46の第3MACユニット51に同時に伝送する。それにより、パケット分配モジュール46はパケットを前記バックアップパケットP4として受信することにより、パケット分配プログラムを完了させる。
【0052】
実施例4において、前記パケット分配モジュール46は前記第2送信ライン(Tx2)上に設けられる。パケット分配プログラムを実行する場合、EtherCATスレーブコントローラー41は該第1MACユニット411を用いてリターンパケットを直前のデータ処理機器のアドレス及びパケット分配モジュール46の第3MACユニット51に同時に伝送する。それにより、パケット分配モジュール46はパケットを前記バックアップパケットP4として受信することにより、パケット分配プログラムを完了させる。
【0053】
実施例1において、前記パケット送信プログラム、パケットリターンプログラム及びパケット分配プログラムは1回の通信周期内で完了する。その他の実施例において、前記パケット送信プログラムとパケットリターンプログラムは1回の通信周期内で完了し、前記パケット分配プログラムは別の通信周期内で完了する。
【0054】
なお、パケット分配モジュール46が前記バックアップパケットP4を取得した場合、バックアップパケットP4をスレーブ機器4の内部メモリ52内に書き込んで保存するか、又は指定データ取得モジュール47がバックアップパケットP4から指定アプリケーションデータをフィルタリングして取得し、更に指定アプリケーションデータを内部メモリ52内に書き込むことができるが、これに限定されない。
【0055】
その他の実施例(例えば、スレーブ機器4がASIC又はMCUによって実現される場合)において、前記パケット分配モジュール46は前記いずれのパス上に設けられてもよく、且つEtherCATスレーブコントローラー41が前記データパケットP1、処理後データパケットP2又はリターンパケットP3を送受信する前に、各パケットP1〜P3を内部メモリ52に直接コピーし保存し、前記バックアップパケットP4を直接生成する。特に、前述したものは本発明の複数の具体的な実施形態に過ぎず、これらに限定されない。
【0056】
前述したように、本発明のパケット分配プログラムは、第1受信パス、第1送信パス、第2受信パス又は第2送信パスにおいて実現される。
図2及び
図4に示すように、前記パケット分配モジュール46はスレーブ機器4の内部にファームウェアによる方法で実現される。具体的には、
図2及び
図4に示す実施例において、パケット分配モジュール46は、第1受信パスの第1受信ライン(Rx1)、第1送信パスの第1送信ライン(Tx1)、第2受信パスの第2受信ライン(Rx2)又は第2送信パスの第2送信ライン(Tx2)に設けられる。特に、その他の実施例において、前記パケット分配プログラムは、スレーブ機器4の外部にハードウェアによる方法で実現される。
【0057】
図5は本発明のパケット分配処理構造図の実施例1である。
図5に示す実施例において、前記パケット分配プログラムは、EtherCATスレーブ機器6の外部で実現されてもよく、且つ実装したパケット分配処理チップ7によって実現される。
図5に示すように、具体的には、前記パケット分配処理チップ7は、プリント回路基板(図示せず)に設けることができ、プリント回路基板を介してパケット分配プログラムの実行に必要なスレーブ機器6に電気的に接続される。
【0058】
なお、複数のスレーブ機器6がパケット分配プログラムを実行する必要がある場合、ユーザは、各スレーブ機器6のそれぞれに対して個別のパケット分配処理チップ7を設けるか、又は一つのパケット分配処理チップ7を複数のスレーブ機器6に同時に電気的に接続することにより、複数のスレーブ機器6に同時にパケット分配プログラムを実行させることができるが、これらに限定されない。
【0059】
図5に示すように、前記パケット分配処理チップ7は、スレーブ機器6と直前のデータ処理機器(例えば、マスタ機器又はスレーブ機器6)との間の第1接続ライン61(つまり、前記第1受信パスの一部、又は第2送信パスの一部)に接続されてもよく、スレーブ機器6と直後のスレーブ機器6との間の第2接続ライン62(つまり、前記第1送信パスの一部、又は第2受信パスの一部)に接続されてもよい。
【0060】
本実施例において、パケット分配処理チップ7には本発明のハンドシェイク方法を実行するファームウェアが実装されるため、接続されたスレーブ機器6に前記パケット分配プログラムを実行させて前記バックアップパケットP4を生成し、且つバックアップパケットP4からその他のスレーブ機器の指定アプリケーションデータを取得することができる。そのハンドシェイク方法については、説明を省略する。
【0061】
図6は、パネル検出器の概略図の実施例1であり、
図7は、ガントリ軸の電流値の概略図の実施例1である。
【0062】
図6に示すように、パネル検出器8は、主にY軸方向に沿って移動可能なガントリ主軸81及びガントリ従軸82を有する。ガントリ主軸81及びガントリ従軸82にはX軸方向に平行である横軸83が延設される。横軸83にはZ軸方向に平行である縦軸84が設置される。縦軸84の一端には、被検出パネル9の画像を取り込むための画像センサー85が設置される。且つ縦軸84の片側に更に画像の品質を向上させるための光源86が設置される。
【0063】
実施例において、ガントリ主軸81とガントリ従軸82のサーボドライバは、EtherCATスレーブ機器(例えば、上述の
図2のスレーブ機器4)によって実現される。これにより、2つのスレーブ機器4は、それぞれガントリ主軸81とガントリ従軸82の作動を制御する。画像センサー85と光源86を駆動してY軸方向に移動させるために、ガントリ主軸81とガントリ従軸82は同期して作動する必要があるため、各スレーブ機器4が同一通信周期内で追加のコマンドパケットを必要とせずに別のスレーブ機器4のデータを直接取得し且つ作動を補償できるか否かは、パネル検出器8の検出品質に影響する。
【0064】
図7(a)は、ガントリ主軸81が作動する時の電流値の変化を示し、本発明のハンドシェイク方法を使用しない場合の第1主軸電流I1a、及びそれを使用する場合の第2主軸電流I2aを含む。
図7(b)は、ガントリ従軸82が作動する時の電流値の変化を示し、本発明のハンドシェイク方法を使用しない場合の第1従軸電流I1b、及びそれを使用する場合の第2従軸電流I2bを含む。
【0065】
本発明のハンドシェイク方法を使用しない場合、ガントリ主軸81を制御するためのスレーブ機器4は、ガントリ従軸82を制御するためのスレーブ機器4のデータを取得できず、その逆も同様である。パネル検出器8の上位制御部(図示せず)がガントリ主軸81とガントリ従軸82を制御して作動させる場合、発せられた制御コマンドには時間差があるため、ガントリ主軸81の動作速度はガントリ従軸82の動作速度に先行する。
図7に示すように、ガントリ主軸81が作動しても、ガントリ従軸82はまだ始動していないため、ガトリン主軸81が作動すると、ガントリ従軸82を引いて、大きな第1主軸電流I1aを生成する。これに対して、ガントリ従軸82はガントリ主軸81に引かれてから始動するため、作動時、ガントリ主軸81とは逆方向に出力して、逆方向の第1従軸電流I1bを生成する。
【0066】
前述したように、本発明のハンドシェイク方法を使用しない場合、ガントリ主軸81をガントリ従軸82と正確に同期して作動させることができないため、パネル検出器8は、エネルギー消費が大きくなるだけでなく、作動時にガントリ主軸81とガントリ従軸82との引き合いによるぶれが激しくなり、検出品質が低下し、耐用年数に影響を及ぼす。
【0067】
本発明のハンドシェイク方法を使用した場合、ガントリ主軸81を制御するためのスレーブ機器4とガントリ従軸82を制御するためのスレーブ機器4との間は、同一通信周期内で追加のコマンドパケットを必要とせずに相手側のデータを直接取得することができる。これにより、各スレーブ機器4は、制御コマンドを受信した時に作動補償を完了させることができる。例えば、ガントリ主軸81を制御するためのスレーブ機器4は、作動前に、ガントリ従軸82を制御するためのスレーブ機器4の関連データ(例えば位置フィードバックデータ、速度フィードバックデータ及びトルクフィードバックデータ等)を取得するとともに、前記データに基づき制御コマンドを変更して、ガントリ主軸81の作動を補償することができる。
【0068】
パネル検出器8の上位制御部が、ガントリ主軸81とガントリ従軸82を制御して作動させる場合、制御コマンドを各スレーブ機器4に発するが、各スレーブ機器4は、別のスレーブ機器4の上記データに基づいて制御コマンドを補償することができる。
図7から分かるように、本実施例においては、ガントリ主軸81の作動をガントリ従軸82に合わせるため、穏やかで且つ同一の第2主軸電流I2aと第2従軸電流I2bをそれぞれ発生させる。
図7から分かるように、本発明のハンドシェイク方法により、複数のスレーブ機器4の最適化された同期作用を実現し、無駄なエネルギー消費を削減するとともに、装置の作動がスムーズになり、耐用年数を引き上げる。
【0069】
前述したように、スレーブ機器4は、パケット分配モジュール46を介してバックアップパケットP4を取得した後、主に指定データ取得モジュール47を用いてバックアップパケットP4を解析し、不要なデータ(例えば、指定されていないデータ)をフィルタリングして除去し、必要なデータ(即ち、指定されているデータ)のみを保持する。
【0070】
図8は本発明のパケット処理フローチャート図の実施例1である。
図8を参照しながら、
図3に示すステップS22即ちバックアップパケットP4を解析して必要なデータをフィルタリングする方法を説明する。
【0071】
図8に示すように、まず、スレーブ機器4は、パケット分配プログラムによって生成されたバックアップパケットP4を取得し(ステップS220)、次に、バックアップパケットP4がEtherCATパケットであるか否かを判断する(ステップS222)。バックアップパケットP4がEtherCATパケットではない場合、バックアップパケットP4にはEtherCATバス上にあるその他のスレーブ機器4のデータが含まれていないため、スレーブ機器4は該バックアップパケットP4を直接破棄する(ステップS224)。
【0072】
バックアップパケットP4がEtherCATパケットである場合、スレーブ機器4は更に、該バックアップパケットP4が周期性パケットであるか否かを判断する(ステップS226)。前述したように、本発明は、複数のスレーブ機器4が同一通信周期内で追加のコマンドパケットを必要とせずにその他のスレーブ機器4のデータを直接取得することにより同期効果を最適化することを一つの目的とする。バックアップパケットP4が周期性パケットではなく、非周期性パケットである場合、該バックアップパケットP4は本発明の上記目的を実現することができないため、スレーブ機器4は該バックアップパケットP4を破棄する(ステップS224)。
【0073】
本実施例において、上記ステップS222とステップS226の間には実行の順序を問わない。
【0074】
バックアップパケットP4がEtherCATパケットであり、且つ周期性パケットである場合、スレーブ機器4は、利用者が予め設定した初期設定値(図示せず)に基づきバックアップパケットP4を解析することにより、利用者が指定した一つ又は複数のスレーブ機器4の指定データを取得する。
【0075】
バックアップパケットP4を解析する時、スレーブ機器4は主に初期設定値のコンテンツに基づいて、ハンドシェイクを行う必要がある一つ又は複数のスレーブ機器4のID(例えば個数、番号及び位置等)を確認し、且つ更にこれらスレーブ機器4の関連データを記録するための前記バックアップパケットP4のデータ領域を識別する(ステップS228)。次に、スレーブ機器4は、バックアップパケットP4から前記データ領域内のすべてのデータを取得する(ステップS230)とともに、取得したデータから初期設定値に記録されている指定アプリケーションデータをフィルタリングする(ステップS232)。実施例において、前記指定アプリケーションデータは、例えば位置フィードバックデータ、速度フィードバックデータ、トルクフィードバックデータであってもよいが、これに限定されない。
【0076】
ステップS232が完了すると、スレーブ機器4は、取得した指定アプリケーションデータを前記内部メモリ52に保存するか、又は指定アプリケーションデータに基づきEtherCATスレーブコントローラー41が必要とするフォーマットに適合したコントローラーパケットP5を生成する(ステップS234)。EtherCATスレーブコントローラー41は、スレーブ機器4の下位の機能(例えばパネル検出器、CNCコントローラー、ロボット等の装置の軸制御)を実現する場合、前記指定アプリケーションデータ/コントローラーパケットP5を介して、連携関係があるその他のスレーブ機器4との同期制御を最適化することにより、装置のエネルギー消費を削減するとともに品質を向上させる。
【0077】
なお、上記説明は本発明の好ましい実施形態に過ぎず、本発明の請求の範囲を限定するためのものではなく、本発明の内容に基づく等価変更は、いずれも本発明の請求の範囲内に含まれる。