特許第6960035号(P6960035)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 台達電子工業股▲ふん▼有限公司の特許一覧

特許6960035EtherCATプロトコルに基づくデータハンドシェイク方法
<>
  • 特許6960035-EtherCATプロトコルに基づくデータハンドシェイク方法 図000002
  • 特許6960035-EtherCATプロトコルに基づくデータハンドシェイク方法 図000003
  • 特許6960035-EtherCATプロトコルに基づくデータハンドシェイク方法 図000004
  • 特許6960035-EtherCATプロトコルに基づくデータハンドシェイク方法 図000005
  • 特許6960035-EtherCATプロトコルに基づくデータハンドシェイク方法 図000006
  • 特許6960035-EtherCATプロトコルに基づくデータハンドシェイク方法 図000007
  • 特許6960035-EtherCATプロトコルに基づくデータハンドシェイク方法 図000008
  • 特許6960035-EtherCATプロトコルに基づくデータハンドシェイク方法 図000009
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6960035
(24)【登録日】2021年10月12日
(45)【発行日】2021年11月5日
(54)【発明の名称】EtherCATプロトコルに基づくデータハンドシェイク方法
(51)【国際特許分類】
   H04L 12/28 20060101AFI20211025BHJP
【FI】
   H04L12/28 400
   H04L12/28 100F
【請求項の数】11
【全頁数】19
(21)【出願番号】特願2020-193136(P2020-193136)
(22)【出願日】2020年11月20日
(65)【公開番号】特開2021-87219(P2021-87219A)
(43)【公開日】2021年6月3日
【審査請求日】2020年11月20日
(31)【優先権主張番号】201911173568.2
(32)【優先日】2019年11月26日
(33)【優先権主張国】CN
(73)【特許権者】
【識別番号】502330713
【氏名又は名称】台達電子工業股▲ふん▼有限公司
【氏名又は名称原語表記】DELTA ELECTRONICS, INC.
(74)【代理人】
【識別番号】110000383
【氏名又は名称】特許業務法人 エビス国際特許事務所
(72)【発明者】
【氏名】楊 博元
(72)【発明者】
【氏名】周 子豪
【審査官】 野元 久道
(56)【参考文献】
【文献】 特開2010−278897(JP,A)
【文献】 国際公開第2013/005535(WO,A1)
【文献】 米国特許出願公開第2016/0242057(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/28
(57)【特許請求の範囲】
【請求項1】
EtherCATスレーブコントローラー(EtherCAT Slave Controller,ESC)を有するEtherCATスレーブ機器に応用されるEtherCATプロトコルに基づくデータハンドシェイク方法であって、
第1受信パスを介して直前のデータ処理機器からデータパケットを受信するステップaと、
前記EtherCATスレーブコントローラーが、前記データパケットから前記EtherCATスレーブ機器の自己データを取得するか、又は前記データパケットに前記EtherCATスレーブ機器のフィードバックデータを挿入して、処理後データパケットを生成するステップbと、
第1送信パスを介して前記処理後データパケットを直後のスレーブ機器に伝送するステップcと、
第2受信パスを介して前記直後のスレーブ機器からリターンパケットを受信するとともに、第2送信パスを介して前記リターンパケットを前記直前のデータ処理機器に送り返すステップdと、
前記データパケット、前記処理後データパケット及び前記リターンパケットのうち少なくとも1つに対してパケット分配プログラムを実行して、コンテンツの少なくとも一部が前記データパケット、前記処理後データパケット又は前記リターンパケットと同じであるバックアップパケットを生成するステップeと、
前記EtherCATスレーブコントローラーが前記バックアップパケットを解析してその他のスレーブ機器の指定アプリケーションデータをフィルタリングし保存するステップfと、を含むEtherCATプロトコルに基づくデータハンドシェイク方法。
【請求項2】
前記EtherCATスレーブ機器は入力ポート及び出力ポートを更に含み、
前記第1受信パスが、前記EtherCATスレーブ機器の内部の第1受信ライン(Rx1)及び前記EtherCATスレーブ機器と前記直前のデータ処理機器との間の接続ラインを含み、
前記第1送信パスは、前記EtherCATスレーブ機器の内部の第1送信ライン(Tx1)及び前記EtherCATスレーブ機器と前記直後のスレーブ機器との間の接続ラインを含み、
前記第2受信パスは、前記EtherCATスレーブ機器の内部の第2受信ライン(Rx2)及び前記EtherCATスレーブ機器と前記直後のスレーブ機器との間の接続ラインを含み、
前記第2送信パスは、前記EtherCATスレーブ機器の内部の第2送信ライン(Tx2)及び前記EtherCATスレーブ機器と前記直前のデータ処理機器との間の接続ラインを含み、
前記EtherCATスレーブコントローラーは、
前記第1受信ラインを介して前記入力ポートに接続されて前記データパケットを受信し、
前記第1送信ラインを介して前記出力ポートに接続されて前記処理後データパケットを伝送し、
前記第2受信パスを介して前記出力ポートに接続されて前記リターンパケットを受信し、
前記第2送信ラインを介して前記入力ポートに接続されて前記リターンパケットを伝送し、
前記ステップeでは、前記第1受信ライン、前記第1送信ライン、前記第2受信ライン又は前記第2送信ラインに設置されたパケット分配モジュールを用い、前記パケット分配プログラムを実行して前記バックアップパケットを生成する請求項1に記載のEtherCATプロトコルに基づくデータハンドシェイク方法。
【請求項3】
前記EtherCATスレーブコントローラーは第1MACユニット及び第2MACユニットを有し、
前記パケット分配モジュールは第3MACユニットを有し、
前記パケット分配プログラムにおいて、前記入力ポートと前記第1受信ラインを介して前記データパケットを前記第1MACユニット及び前記第3MACユニットに同時に伝送するか、前記第2MACユニットを用いて前記第1送信ラインを介して前記処理後データパケットを前記直後のスレーブ機器のアドレス及び前記第3MACユニットに同時に伝送するか、前記出力ポートと前記第2受信ラインを介して前記リターンパケットを前記第2MACユニット及び前記第3MACユニットに同時に伝送するか、または前記第1MACユニットを用いて前記第2送信ラインを介して前記リターンパケットを前記直前のデータ処理機器のアドレス及び前記第3MACユニットに同時に伝送する請求項2に記載のEtherCATプロトコルに基づくデータハンドシェイク方法。
【請求項4】
前記ステップeにおいて、前記パケット分配モジュールは、前記データパケット、前記処理後データパケット又は前記リターンパケットを直接コピーし、前記EtherCATスレーブ機器の内部メモリに保存して、前記バックアップパケットを生成する請求項2に記載のEtherCATプロトコルに基づくデータハンドシェイク方法。
【請求項5】
前記直前のデータ処理機器が、EtherCATマスタ機器又はその他のEtherCATスレーブ機器である請求項1に記載のEtherCATプロトコルに基づくデータハンドシェイク方法。
【請求項6】
前記EtherCATスレーブ機器が、フィールドプログラマブルゲートアレイ(Field Programmable Gate Array,FPGA)、特定用途向け集積回路(Application Specific Integrated Circuit,ASIC)又はマイクロコントローラーユニット(Micro Controller Unit,MCU)により実現される請求項1に記載のEtherCATプロトコルに基づくデータハンドシェイク方法。
【請求項7】
前記ステップfが、
前記バックアップパケットを取得するステップf1と、
前記バックアップパケットがEtherCATパケットであるか否かを判断するステップf2と、
前記バックアップパケットが周期性パケットであるか否かを判断するステップf3と、
前記バックアップパケットがEtherCATパケットではなく、又は前記バックアップパケットが非周期性パケットである場合、前記バックアップパケットを破棄するステップf4と、
前記バックアップパケットがEtherCATパケットであり且つ前記周期性パケットである場合、前記バックアップパケットを解析するステップf5と、を含む請求項1に記載のEtherCATプロトコルに基づくデータハンドシェイク方法。
【請求項8】
前記ステップfが、更に、
前記EtherCATスレーブ機器とハンドシェイクを行うその他のスレーブ機器の関連データが位置するデータ領域を判断するステップf6と、
前記バックアップパケットから前記データ領域の全てのデータを取得するステップf7と、
取得したデータをフィルタリングして前記指定アプリケーションデータを抽出するステップf8と、を含む請求項7に記載のEtherCATプロトコルに基づくデータハンドシェイク方法。
【請求項9】
前記EtherCATスレーブ機器は、サーボドライバに応用され、
前記指定アプリケーションデータが少なくともその他のスレーブ機器の位置フィードバックデータ、速度フィードバックデータ又はトルクフィードバックデータを含む請求項8に記載のEtherCATプロトコルに基づくデータハンドシェイク方法。
【請求項10】
前記EtherCATスレーブ機器は、前記EtherCATスレーブコントローラーに接続される入力ポート及び出力ポートを更に含み、
前記入力ポートは、第1接続ラインを介して前記直前のデータ処理機器に接続され、
前記出力ポートは、第2接続ラインを介して前記直後のスレーブ機器に接続され、
前記ステップeにおいて、前記第1接続ライン又は前記第2接続ライン上にあるパケット分配処理チップを用い、前記パケット分配プログラムを実行して、前記バックアップパケットを生成する請求項1に記載のEtherCATプロトコルに基づくデータハンドシェイク方法。
【請求項11】
前記ステップaから前記ステップfが、いずれも1回の通信周期内で完了する請求項1に記載のEtherCATプロトコルに基づくデータハンドシェイク方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データハンドシェイク方法に関し、特にEtherCATプロトコルに基づくデータハンドシェイク方法に関する。
【背景技術】
【0002】
イーサキャット(Ethernet for Control Automation Technology, EtherCAT)は、イーサネットに基づく通信プロトコルであり、通信機能が高速且つリアルタイムであるため、高精度の工業自動化が求められる産業の中で益々重視され支持されている。
【0003】
図1は、EtherCATアーキテクチャにおけるパケット送信の概略図である。図1に示すように、一本のEtherCATバスは、使用されるネットワークトポロジーの違いに基づき、一つのEtherCATマスタ機器1及び一つ以上のEtherCATスレーブ機器2を備える。EtherCATパケット3は、マスタ機器1から発せられた後、全てのスレーブ機器2に送信される。各スレーブ機器2は、前記パケット3を受信すると、それぞれパケット3から自己に関連するデータを抽出するか、又はマスタ機器1に返信する必要があるフィードバックデータをパケット3内に挿入してから、パケット3を直後のスレーブ機器2に伝送する。パケット3が最後のスレーブ機器2に伝送された時、処理後のパケット3はそれまでに通過した全てのスレーブ機器2に沿ってマスタ機器1に送り返されることにより、一つの通信周期が完了する。
【0004】
EtherCATプロトコルの標準アーキテクチャによると、各スレーブ機器2のコントローラーは同一通信周期内で受信したパケット3からのみ自己データを取得でき、その他のスレーブ機器2のデータを同時に取得することができない。即ち、各スレーブ機器2は同一通信周期内で作動に必要なすべてのデータを取得できないため、下位アプリケーションにおいて同期が不正確になるという問題が生じる。
【0005】
例えば、EtherCATバスが加工装置(図示せず)のサーボドライバに使用される場合、加工装置の加工作業時、常に複数の軸が同期して作動することが求められ(各軸はそれぞれ一つのEtherCATスレーブ機器2に対応する)、各軸が関連する軸(すなわち同期して作動する軸)のデータを取得できない場合、制御コマンドがマスタ機器1から発せられてから各スレーブ機器2に到着するまでに時間差があるため、各軸を正確に同期して作動させることができない。これにより、加工装置の機構が作動時に相互に引き合うという問題が生じ、結果として加工装置のエネルギーを消耗し、温度が上昇し耐用年数が短くなることで、加工品質に影響を及ぼす。
【0006】
従来技術においては、各軸を正確に同期して作動させるために、一般的に、直後の通信周期内でその他のコマンドパケットを各軸に送信することにより、各軸はそれぞれ関連する軸のデータを取得し、且つ全ての軸がいずれも必要なデータを取得してから、同期して作動させる。この方法によって、同期して作動させるという目的を実現できるが、総加工時間を延長させるため、加工速度が低下し、加工コストの上昇が生じる。また、通信周期によって、使用されるコマンドパケットが異なるため、データが不正確になる可能性がある。
【発明の概要】
【発明が解決しようとする課題】
【0007】
本発明の主な目的は、EtherCATプロトコルの標準アーキテクチャを変更しない条件で、EtherCATスレーブ機器が追加のコマンドパケットを必要とせずに自己データ及びその他のスレーブ機器の関連データを同時に取得することが可能な、EtherCATプロトコルに基づくデータハンドシェイク方法を提供することである。
【課題を解決するための手段】
【0008】
前記目的を達成するために、本発明のデータハンドシェイク方法は、主にEtherCATスレーブ機器に応用される方法であって、直前の機器からデータパケットを受信するステップと、前記データパケットから自己データを取得するか又は前記データパケットにフィードバックデータを挿入して、処理後データパケットを生成するステップと、前記処理後データパケットを直後の機器に伝送するステップと、前記直後の機器から送り返されたリターンパケットを受信するステップと、前記リターンパケットを前記直前の機器に伝送するステップと、前記データパケット、前記処理後データパケット及び前記リターンパケットのうちの少なくとも一つに対してパケット分配プログラムを実行して、コンテンツの少なくとも一部が前記データパケット、前記処理後データパケット又は前記リターンパケットと同じであるバックアップパケットを生成するステップと、前記バックアップパケットを解析するステップと、前記バックアップパケットからその他のスレーブ機器の指定アプリケーションデータをフィルタリングするステップと、を含む。
【0009】
従来技術と比べて、本発明の技術的効果は、EtherCATスレーブ機器が標準のEtherCATプロトコルを変更せず、伝送したパケットのコンテンツに影響を与えない条件で、追加のコマンドパケットを必要とせずに自己データ及びその他のスレーブ機器の関連データを同時に取得できることである。また、パケット分配プログラムという技術的手段に基づき、更に同一通信周期内で自己データ及びその他のスレーブ機器の関連データを同時に取得することができる。これにより、EtherCATの下位アプリケーションにおいて、複数のEtherCATスレーブ機器の同期制御を正確に実行するという技術目標を達成する。
【図面の簡単な説明】
【0010】
図1】EtherCATアーキテクチャにおけるパケット伝送の概略図である。
図2】本発明のEtherCATスレーブ機器のブロック図の実施例1である。
図3】本発明のハンドシェイクフローチャートの実施例1である。
図4】本発明のEtherCATスレーブ機器のブロック図の実施例2である。
図5】本発明のパケット分配処理構造図の実施例1である。
図6】本発明のパネル検出器の概略図の実施例1である。
図7】ガントリ軸の電流値の概略図の実施例1である。
図8】本発明のパケット処理フローチャート図の実施例1である。
【発明を実施するための形態】
【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】
なお、上記説明は本発明の好ましい実施形態に過ぎず、本発明の請求の範囲を限定するためのものではなく、本発明の内容に基づく等価変更は、いずれも本発明の請求の範囲内に含まれる。
【符号の説明】
【0078】
1 EtherCATマスタ機器
2 EtherCATスレーブ機器
3 EtherCATパケット
4 EtherCATスレーブ機器
41 EtherCATスレーブコントローラー
411 第1MACユニット
412 第2MACユニット
42 入力ポート
43 出力ポート
44 自己データ交換モジュール
45 自己機能実現モジュール
46 パケット分配モジュール
47 指定データ取得モジュール
48 補助機能実現モジュール
51 第3MACユニット
52 内部メモリ
6 EtherCATスレーブ機器
61 第1接続ライン
62 第2接続ライン
7 パケット分配処理チップ
8 パネル検出器
81 ガントリ主軸
82 ガントリ従軸
83 横軸
84 縦軸
85 画像センサー
86 光源
9 被検出パネル
I1a 第1主軸電流
I1b 第1従軸電流
I2a 第2主軸電流
I2b 第2従軸電流
P1 データパケット
P2 処理後データパケット
P3 リターンパケット
P4 バックアップパケット
P5 コントローラーパケット
Rx1 第1受信ライン
Rx2 第2受信ライン
Tx1 第1送信ライン
Tx2 第2送信ライン
S10〜S24 ハンドシェイクステップ
S220〜S234 パケット処理ステップ
図1
図2
図3
図4
図5
図6
図7
図8