(57)【要約】 分散処理システム内のディジタルユニットの間で情報を交換するための方法であって、少なくとも一つのマスタノードおよびスレーブノードによって構成されるディジタルユニットを有し、情報参照を前記マスタノードから前記スレーブノードに転送するステップであって、前記情報参照が、前記マスタノードのクロック値によって規定されるサイクル時間間隔に対応するサンプリング時間によってサンプリングされるステップ、を含み、前記方法が、さらに、周期的参照時間間隔の間に前記マスタノードから前記スレーブノードに到達してサンプリングされる前記情報参照の数を推定するステップと、前記スレーブノードが次に続く参照時間間隔の間にマスタノード情報参照を再構築することが可能なように、マスタクロック値を再計算するために前記数を使用するステップと、を含む方法。【選択図】図１
2009506402.tif 000002
【特許請求の範囲】
【請求項１】
分散処理システム内のディジタルユニットの間で情報を交換するための方法であって、少なくとも一つのマスタノードおよびスレーブノードによって構成されるディジタルユニットを有し、情報参照を前記マスタノードから前記スレーブノードに転送するステップであって、前記情報参照が、前記マスタノードのクロック値によって規定されるサイクル時間間隔に対応するサンプリング時間によってサンプリングされるステップ、を含み、前記方法が、さらに、周期的参照時間間隔の間に前記マスタノードから前記スレーブノードに到達してサンプリングされる前記情報参照の数を推定するステップと、前記スレーブノードが次に続く参照時間間隔の間にマスタノード情報参照を再構築することが可能なように、マスタクロック値を再計算するために前記数を使用するステップと、を含む方法。
【請求項２】
請求項１に記載の方法であって、前記再計算が、線形補間によって、かつ、より多くのマスタノードサンプルを格納するためのバッファを用いて実現される、ことを特徴とする方法。
【請求項３】
請求項２に記載の方法であって、前記バッファが、ファーストイン−ファーストアウトタイプバッファである、ことを特徴とする方法。
【請求項４】
請求項１ないし３のいずれかに記載の方法であって、前記スレーブノードが、その動きが制御されるべき自動パッケージング機械のそれぞれの電気機械軸とリンクされる、ことを特徴とする方法。
【請求項５】
先行する請求項１ないし４のいずれかに記載の方法であって、前記情報参照が、少なくとも２、３の値を備え、この種の値のうちの１つが時間値である、ことを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散処理システム内のディジタルユニットの間で情報を交換するための方法に関する。
【０００２】
特に、本発明は自動機械、特に、有効範囲の限定を意味しないとはいえ、参照が本技術明細書において特になされる、自動パッケージング機械、の動作部品の動き制御に使用する分散ディジタル制御における通信課題を解決するために有利に適用されることができる。
【背景技術】
【０００３】
自動機械は、製品に直接作用する多くの作動ヘッドからなる複合多目的機構である。
【０００４】
この機械の良い挙動を得るために、そのすべての部品の間の正しい協調がきわめて重要である。
【０００５】
オートマティズムの初期の時期において、当初の機構は機械的な方法で、すなわち、主軸に接続され、かつ機構の他の要素に対する物理的な基準であった軌道を形成する、メインカムを通して、調整された。
【０００６】
近頃は、電気モータ、電力エレクトロニクスおよびディジタル制御および通信の進化のおかげで、これらの要素が制御される方法が高度に変化した。
【０００７】
基本のアーキテクチャが、添付図１に示される。
【０００８】
わかるように、自動機械の動き制御システムは分散処理システムである。
【０００９】
それは、情報を、共有通信バスを介して他のユニットと交換する、ノードと呼ばれるディジタルユニットによって構成される。
【００１０】
特に、１つのマスタノードＭ、すなわち中央ユニットと、制御されなければならない電気機械軸とリンクされる、多くの他のスレーブノードＳｉと、がある。
【００１１】
システムのすべてのディジタルノードが、公称時間間隔（いわゆる「サイクル時間」）によって特徴づけられる、それ自体の内部クロックによって繰り返し起動する時間駆動アルゴリズムを実行する。
【００１２】
一般に、最新の複合システムにおいて、各ディジタルノードは、それぞれ、それ自体のサイクル時間によって特徴づけられる、異なるアルゴリズム、「タスク」を、同じ時間に実行することができる（マルチタスクシステム）。この種のシステムに対して以下において考慮される通信および同期課題の一般化は、簡単である。マスタノードとスレーブノードとの間の通信の代わりに、マスタの特定のタスクとスレーブの特定のタスクとの間の通信が、考慮されるべきである。
【発明の開示】
【発明が解決しようとする課題】
【００１３】
ΔＴおよびΔｔｉをそれぞれマスタの、および、ｉ番目のスレーブのサイクル時間であるとする。通常、それらは等しく設計されているかまたは固定整数比率で同期される。実のところ、アクティブ同期がこのネットワークシステムによって提供されない場合、各ノードクロックが不正確性、ドリフトおよびジッターによって影響を受けるので、この「設計前提条件」は現実的でない。
【００１４】
マスタの主要な目的は全ての軸の調整であり、通常、スレーブノードにアクチュエータに対して追跡する速度または位置基準を提供して得られる。
【００１５】
実行時において、すべての参照はマスタのサイクル時間の期間に等しいサンプリング時間でサンプリングされる。
【００１６】
次いで、すべてのサンプルはディジタルバス経由でスレーブに送信されて、スレーブサイクル時間に等しいサンプリング時間でスレーブによって集められる。
【００１７】
サンプルの値が関連するだけでなく、この情報、それがデータ項目を直接備えていない場合でさえ、対応する瞬間もまた、関連する、ことを注記することが重要である。
【００１８】
さらに、この種の情報の交換モードは通信システムのインプリメンテーション、すなわちバスプロトコルに依存する。
【００１９】
とにかく、採用されたプロトコルがどんなものであっても、マスタが、データをブロードキャストする場合、スレーブは、変動する時間遅延でそれを得る。それで、より長い遅延とより短い遅延との間の差異をシステムのジッターとして規定することが可能である。最後に、伝送遅延が、ネットワーク上のデータ衝突またはトラフィック輻輳の類の問題が原因で増加する可能性がある。
【００２０】
本発明の目的は、したがって、上述の欠点を克服するための交換情報方法を提供することである。
【００２１】
特に、本発明の目的は、上記のように記載される分散処理システムの通信および同期伝送問題を解決することである。
【課題を解決するための手段】
【００２２】
本発明に従って、分散処理システム内のディジタルユニットの間で情報を交換するための方法であって、少なくとも一つのマスタノードおよびスレーブノードによって構成されるディジタルユニットを有し、前記スレーブノードに情報参照を前記マスタノードから転送するステップであって、前記情報参照が、前記マスタノードのクロック値によって規定されるサイクル時間間隔に対応するサンプリング時間によってサンプリングされるステップ、を含み、前記方法が、さらに、周期的参照時間間隔の間に前記マスタノードから前記スレーブノードに到達してサンプリングされる前記情報参照の数を推定するステップと、前記スレーブノードが次に続く参照時間間隔の間にマスタノード情報参照を再構築することが可能なように、マスタクロック値を再計算するために前記数を使用するステップと、を含むことを特徴とする方法が記述される。
【発明を実施するための最良の形態】
【００２３】
本発明の主目的は、マスタＭからスレーブＳｉへの所与の軌道のそれらの内在する時間的位置に対して、サンプルを転送することである。両方のノードの内部クロックが、いかなるドリフトまたはディジタル化誤差もなく、完全に同期する場合、図２に示すように伝送遅延およびジッターにもかかわらず、単純で効果的な通信が、得られることができる（ここでΔＴ／Δｔは２であり、および、クロック単位は完全に同調されると想定する）。
【００２４】
波形は、マスタの周知のサンプル時間ΔＴによってサンプリングされ（図２ａ）、次いで、それは上下限が既知である遅延およびジッターを有するスレーブに送信され（図２ｂ）、および、ここで、それ自体の短時間Δｔを有するスレーブによる補間を通してリサンプリングされて再構築され（図２ｃ）、固定遅延、Δｔの倍数だけが、伝送チャネルの非理想特性に対処するために導入されなければならない。
【００２５】
全てのこれらのステップは、スレーブがΔＴ／Δｔの値、マスタとスレーブクロック単位間の調整および最大伝送遅延を完全に知っていると想定してとられることができる。これらの仮説によって、スレーブは、マスタによって伝送される有効なデータが利用できる時およびその短時間を常に知っており、したがって、一貫性データ制御に対するニーズが、ない。
【００２６】
実際は、クロックの公称値はその実効値に完全に等しくない。
【００２７】
例えば、４ミリ秒が公称値である場合、実効値は、すなわち少しのドリフトおよび対応するドリフト率（図３に示される陰影をつけられた領域）によって、３．９９９９ミリ秒または４．００１ミリ秒である可能性がある。したがって、マスタおよびスレーブクロック間の実際の関係は、正確にわかっていない。
【００２８】
上述したトラブルを回避して、異なるノードクロック間のほぼ完全な同期を保証するために、適切な低レベルの同期システムがいくつかのディジタル通信バスによって提供されることができる。以下において、ノードクロック間の直接の同期がない、すなわち、各ノードクロックが他から独立に動作する場合が考慮される。
【００２９】
一般に、マスタサイクル時間とスレーブサイクル時間の間の関係は次の通りに書かれることができる：
2009506402.tif 000003
ここでｎ、ｍは整数値、およびΔｎは、間隔［０  １／ｍ［の数である。
【００３０】
制御システムの設計段階において、マスタサイクル時間とスレーブサイクル時間との間の公称関係は、次の通りに定義される：
2009506402.tif 000004
ここで再び、ｎＮｏｍおよびｍＮｏｍは整数であり、および、ΔｎＮｏｍは間隔［０１／ｍ［の数であり、通常、ｎＮｏｍは、簡単さのためにゼロに等しく設定されるｍＮｏｍより、目だつほど大きい。
【００３１】
以前に言及されたノードクロックの非理想的な性質に従って、以下の考察が導き出されることができる：
−ノードクロック不正確性が原因で、実測値ｎ、ｍ、ΔｎはそれぞれｎＮｏｍに正確に等しくなく、
−以下の理由で、値ｎ、ｍ、Δｎは一定でない：
−ノードクロックの長期周波数が、完全に一定でない、
−ジッターが、ノードクロックに影響を及ぼす。
【００３２】
マスタクロックとスレーブクロック間のジッターは、伝送遅延のジッターと同じ効果を決定し、したがって、スレーブノードの参照再構築における適切な遅延を想定して、図２に例示される手続きに従って容易に補償されることができる。
【００３３】
そうではなく、ドリフトエラーが時間の経過によって累算するので、図２に提案されるように、公称のものおよびその長期ドリフチングに関する実際のΔＴ／Δｔの不明な不一致は固定遅延によって補償されることができない。
【００３４】
この問題の起こりうる帰結は、データは、それが使用される前に上書きされる可能性があり、または、同じデータが二回使用される可能性があり、両方の場合において、速度軌道におけるスパイクおよび他の軸との同期外れを生じさせる、ことである。
同期問題を解決するために提案されるアルゴリズム
【００３５】
以下のアルゴリズムの目的は、データ転送上の不確実性（ジッター）があり、および、前記したように、２クロック間の関係は正確に既知のアプリオリでない、ことを知って、サンプリング時間ΔＴを有するマスタノードによって以前にサンプリングされた参照軌道を、サンプリング時間Δｔによって再構築することである。
【００３６】
さらに、また、以下の制約が、満たされなければならない：
−できるだけ最小限かつ一定の遅延による再構築、
−データロスまたは予測がない。
【００３７】
何よりもまず再構築がスレーブサイクル時間Δｔを使用して実行されるので、スレーブクロックがシステムの全体的な時間とみなされる（すなわち、他のクロックは、スレーブクロックに対して特徴づけられて表される）。
【００３８】
したがって、時間ベースはΔｔ粒度を有し、および、この種のクロックの各瞬間において、再構築された軌道サンプルが生成されなければならない。
【００３９】
伝送遅延およびジッター（伝送チャネルならびにマスタおよびスレーブクロック不正確性による）を管理するために、図２に示す適切な遅延が使用されることができる。
【００４０】
他方、（実際のΔＴ／Δｔが（ΔＴ／Δｔ）Ｎｏｍに等しくない事による）Δｔに対するΔＴのドリフトの影響に対処するために、（スレーブによって規定される全体的な時間に対する）マスタから来るデータの周期的再同期が、規定されなければならず、このようにしてデータフロー制御を導入する。
【００４１】
基本的考えは、どれくらい多数のデータサンプルが周期的参照時間ウィンドウ中にマスタからスレーブまで到達するかを推定することであり、この情報が、次いでマスタクロック値を再計算するためにスレーブによって使用されることができる。
【００４２】
マスタクロックのこの新しい局所的知識を使用して、スレーブは次に続く参照時間ウィンドウ中にマスタ参照軌道を再構築することが可能である。
【００４３】
スレーブサンプルの定数ｎを考慮し、および、ｎ＊Δｔの参照時間ウィンドウの長さを規定する。
【００４４】
説明を簡単にするため、マスタおよびスレーブが、完全な関係にあると仮定する、すなわち、等式ｎ＊Δｔ＝ｍ＊ΔＴが満たされ、スレーブのためになされるのと同様に、（ｎ＊Δｔ）／ｍに等しい粒度を有するマスタクロックを規定することが、可能である。
【００４５】
さらに、２つの時間ベースの起動時間は同じものであると仮定する。
【００４６】
図４は、ｎ＝４、ｍ＝３の単純な場合の参照時間ウィンドウ内の２クロック間の関係を示す。
【００４７】
それで、以下を規定することが可能である：
−ｍ、マスタによって提供されて、時間ウィンドウ内に使用されるサンプルの数、
−ｎ、時間ウィンドウ内にスレーブによって作成されるサンプルの数、
−ｉ、ｉ＝０，…，ｍを有する、マスタによって提供されて、時間ウィンドウ内に使用されるｉ番目のサンプル、
−ｓ、ｓ＝０，…，ｎを有する、時間ウィンドウ内にスレーブによる補間を通して作成されるｓ番目のサンプル、
−Ｔｉ、ｉ＊ΔＴに等しいｉ番目のサンプルの瞬間、
−ｔｓ、ｓ＊Δｔに等しいｓ番目のサンプルの瞬間。
【００４８】
アルゴリズムの初期化のために、ｎおよびｍに対する値が選択されなければならない。この選択はΔＴおよびΔｔの公称値に基づくことができ、および、それは等式ｎ＊Δｔ＝ｍ＊ΔＴを満たさなければならない。
【００４９】
ｎは、すべての参照時間ウィンドウに対して同じものであり、一方ｍはその推定によって変更される（が、それは所与の時間ウィンドウ内部で一定であるとみなされる）。
【００５０】
スレーブ参照軌道サンプルは、線形補間式を用いてマスタ元サンプルから始まって算出される。
【００５１】
一つ以上の補間された値を得るために２つの元サンプルを必要とするので、バッファがマスタサンプルを格納するためになければならない（図５を参照）。
【００５２】
このバッファは、ＦＩＦＯ（先入れ先出し）ポリシーを使用して管理され、新しいマスタサンプルが受信されるとすぐに、それはバッファの最後に格納され、新しいサンプルがスレーブサンプル計算に必要とされる場合、それはバッファの先頭から抜き出される。
【００５３】
バッファから抜き出される最後の２つのデータは、常に補間する２値であり、以下において、それらをｘｐｒｅｖｉｏｕｓ（例えば時間Ｔ１のサンプル）およびｘｎｅｘｔ（例えば時間Ｔ２のサンプル）と言う。
【００５４】
バッファのサンプルの数は、新しいサンプルがスレーブサンプル計算に必要とされる時に、バッファが決して空になる（バッファ不足）ことがないと保証するために、常に「十分に大きく」すべきであるが、参照軌道再構築における極端な遅延を回避するために、「大きすぎない」ようにすべきである。それで、維持するバッファ参照レベルをセットすることができる。
【００５５】
スレーブサンプル計算に対して現在のｘｐｒｅｖｉｏｕｓおよびｘｎｅｘｔ値を使用し続けるために満たされなければならない条件は、以下である：
2009506402.tif 000005
【００５６】
この条件が有効でなくなるとすぐに、新しいサンプルがバッファから抜き出されなければならず、および、ｘｐｒｅｖｉｏｕｓおよびｘｎｅｘｔはそれに応じて定義し直されなければならない。
【００５７】
ｔｓ＝ｓ＊Δｔ、Ｔｉ＝ｉΔＴおよびｎ＊Δｔ＝ｍ＊ΔＴを考慮して、以前の条件は、以下のように書き直されることができる：
2009506402.tif 000006
次に、
ｓ’＝ｓ・ｍ
および
ｉ’＝ｉ・ｎ
を定義して、ここでｓ＝０、．．．、ｎ、およびｉ＝０、．．．、ｍであり、
以前の条件は、以下のように書き直されることができる：
2009506402.tif 000007
【００５８】
前記したように、この条件が満たされる場合、ｓ番目の補間された値ｘｓがｘｎｅｘｔとｘｐｒｅｖｉｏｕｓマスタサンプル間の線形補間を通して得られることができる。
【００５９】
一旦参照時間ウィンドウの最後に到達すると、どれくらいのサンプルが次の時間ウィンドウ（新しいｍ値）で使用されるかの推定が、達成される、すなわち、それは次の時間ウィンドウの粒度を定義する。
【００６０】
この推定は、バッファレベルを監視して、標準の調整器（例えば速示式調整器）を使用してなされることができる。
【００６１】
特に、推定プロセスは２つの異なるステップに分けられることができる：
ａ）単純にどれくらいのデータが最後の時間ウィンドウの間に、受信されたかについて評価することによるｍ~の値の計算；
ｂ）前ｍ~値から始まり、およびバッファレベルがユーザー定義バッファ参照レベルの近くに維持されることを保証するために、補正係数を適用する、実際のｍ値の計算。
【００６２】
上記のステップａ）に関して、この計算はどれくらいの元の値が使用されたか、および、何がバッファレベルの変動であるか簡単に考慮することができる。
【００６３】
参照時間ウィンドウの終了のバッファレベルが時間ウィンドウの始まりのバッファレベルより大きい場合、受信データの数は使用されたデータより大きい。
【００６４】
ステップｂ）に関して、補正係数は実際のバッファレベルと参照バッファレベルとの間の差異に比例することができる。
【００６５】
必要に応じて、デッドゾーンの挿入が、考慮されることができる（すなわち、実際のバッファレベルと参照バッファレベルとの間の差異が所定の値より大きい場合だけ、補正係数は活性化されることができる）。
【００６６】
一旦新しいｍ値が利用できると、ｉおよびｓは０にリセットされることができ、および、このアルゴリズムは次の参照時間ウィンドウ内にスレーブサンプル計算を始めることができる。
【００６７】
２つのクロックが完全な関係にある場合、最初のｍ値推定の後、ｍ値は時間ウィンドウの全てに対して同じものであるだろう。
【００６８】
ジッターの、および、Δｎの存在は、１つの時間ウィンドウから他のものまで様々なｍを作り出す。
【００６９】
これらの変動の影響は、ｍがその値との関係でどれくらい増減するかに依存して、速度軌道が、少しのステップアップまたはダウンを有することである。これらの変動の影響を減らすために、「十分に大きい」ｎ値が、選択されるべきである。
【００７０】
実際、時間ウィンドウ中に累算される誤差は以降の時間ウィンドウで広げられる。
【００７１】
明らかに、ｍがより大きくなるほど、誤差の発生率はより低くなる。
アルゴリズムインプリメンテーション
【００７２】
このセクションの意図は、上記の同期アルゴリズムのインプリメンテーションを示すことである（図５を参照）。
【００７３】
このアルゴリズムインプリメンテーションは、２つの異なる手順に分けられることができる：
−マスタサンプルハンドラ手順
−スレーブサンプルハンドラ手順
【００７４】
マスタサンプルハンドラ手順は、新しい参照軌道サンプルがマスタからスレーブによって受信されるとすぐに（したがって、ΔＴの公称期間で）、実行されなければならない。基本的に、この手順はＦＩＦＯバッファのマスタサンプルの挿入の原因となる。
【００７５】
スレーブサンプルハンドラ手順は、スレーブサンプリング時間Δｔで（周期的に）実行されなければならない。
【００７６】
それがバッファからのマスタサンプル抽出、スレーブサンプル計算およびｍ値推定の原因となるので、この手順は最も重要である。
【００７７】
この手順は、同様にバッファレベルの制御の原因となる。
【００７８】
図６に従って、上記の手順の各々に対する単純なフローチャートが、示される。
アルゴリズム初期化
【００７９】
アルゴリズムの適切な初期化のために、以下の条件が満たされなければならない：
ｍ＝（Δｔｎｏｍ／ΔＴｎｏｍ）＊ｎ
ｉ’＝ｓ’＝０
【００８０】
デルタ＞０で、バッファレベル＝バッファ参照レベル＋デルタ、ここで、ｎおよびバッファ参照レベルはユーザー定義のパラメータである。
【図面の簡単な説明】
【００８１】
本発明は、交換情報装置の、好ましいが限定しない実施態様の概略図および図表を示す添付の図面を参照して、一例として記載され、そこにおいて：
【００８２】
【図１】分散処理システムの典型的なアーキテクチャを示す。
【図２】マスタのサンプリング（ａ）、データ転送（ｂ）およびスレーブのリサンプリング（ｃ）を示す模式図である。
【図３】実クロックのドリフト率を示す。
【図４】間隔時間ウィンドウの中のクロック間の関係を示す。
【図５】アルゴリズムインプリメンテーションを示す。
【図６ａ】マスタサンプルハンドラ手順の、図５のアルゴリズムインプリメンテーションの流れ図を示す。
【図６ｂ】スレーブサンプルハンドラ手順の、図５のアルゴリズムインプリメンテーションの流れ図を示す。
【符号の説明】
【００８３】
ΔTマスタのサイクル時間
Δtスレーブのサイクル時間
【図１】
2009506402.tif 000008
【図２】
2009506402.tif 000009
【図３】
2009506402.tif 000010
【図４】
2009506402.tif 000011
【図５】
2009506402.tif 000012
【図６ａ】
2009506402.tif 000013
【図６ｂ】
2009506402.tif 000014
【国際調査報告】
2009506402.tif 000015
2009506402.tif 000016
2009506402.tif 000017