(57)【要約】  制御システムは、通信ネットワークによって互いに結合されたコントローラを含み、マスターコントローラからスレーブコントローラへ通信ネットワークを介して送信される情報は、スレーブコントローラにおけるイベントタイマをマスターコントローラのイベントタイマに同期させるために、スレーブコントローラにおけるタイミング修正をするために使われる。各コントローラによって生成されたイベントの発生のタイミングの正確さは、短い時間範囲で、好適には、特定のアプリケーションおよびシステムに依存ずる数ミリ秒以内で、同期化される。
2008531318.tif 000002
【特許請求の範囲】
【請求項１】
コントローラを同期させるシステムであって、
定期的な間隔で生成されたマスターティックカウントをインクリメントし、前記マスターティックカウントがターゲットティックカウントと一致したときにイベント情報を実行する第１のコントローラと、
定期的な間隔で生成されたインクリメントされたシャドウティックカウントを前記マスターティックカウントに関連して調整し、前記シャドウティックカウントがターゲットのティックカウントと一致したときに第２のイベント情報を実行する第２のコントローラであって、前記第１のコントローラおよび前記第２のコントローラの各前記実行は互いに同期する第２のコントローラと、
前記第１のコントローラおよび前記第２のコントローラを相互接続する通信ネットワークと、
を備えることを特徴とするシステム。
【請求項２】
前記第１のコントローラは、前記マスターカウントを保持するカウンタをさらに備え、前記第１のコントローラはさらに、前記第１のコントローラにおいてイベントが発生するターゲットティックカウントを判定し、前記マスターティックカウントが前記ターゲットティックカウントと一致する前に前記ターゲットティックカウントを前記第１のイベント情報に関連付ける請求項１に記載のシステム。
【請求項３】
前記第２のコントローラはさらに、定期的な間隔で前記シャドウティックカウントをインクリメントし、前記第２のコントローラにおいてイベントが発生するターゲットシャドウティックカウントを判定し、前記シャドウティックカウントが前記ターゲットティックカウントと一致する前に前記ターゲットシャドウティックカウントを前記第２のイベント情報に関連付ける請求項１に記載のシステム。
【請求項４】
前記第１のコントローラは、前記マスターカウントを保持するカウンタをさらに備え、前記第１のコントローラはさらに、前記第１のコントローラにおいてイベントが発生するターゲットティックカウントを判定し、前記マスターティックカウントが前記ターゲットティックカウントと一致する前に前記ターゲットティックカウントを前記第１のイベント情報に関連付け、
前記第２のコントローラはさらに、定期的な間隔で前記シャドウティックカウントをインクリメントし、前記第２のコントローラにおいてイベントが発生するターゲットシャドウティックカウントを判定し、前記シャドウティックカウントが前記ターゲットティックカウントと一致する前に前記ターゲットシャドウティックカウントを前記第２のイベント情報に関連付ける請求項１に記載のシステム。
【請求項５】
前記第１のコントローラの制御の下で動作する第１のロボットアクチュエータと、前記第２のコントローラの制御の下で動作する第２のロボットアクチュエータと、をさらに備える請求項１に記載のシステム。
【請求項６】
前記通信ネットワークは、有線ネットワークおよび無線ネットワークのうちの少なくとも１つである請求項１に記載のシステム。
【請求項７】
コントローラを相互接続するシステムにおいて、各コントローラにおけるイベントの発生を同期させる方法であって、前記方法は
第１のクロックによって生成されるティックカウントをマスターコントローラにおいて保持するステップａと、
前記マスターコントローラにおける前記ティックカウントについてスレーブコントローラから前記マスターコントローラへ問合せを送付するステップｂと、
前記マスターコントローラにおける前記ティックカウントを含む応答を前記マスターコントローラから前記スレーブコントローラへ送付するステップｃと、
前記スレーブコントローラにおけるシャドウティックカウントを、前記マスターコントローラから送付された前記ティックカウントに基づいて調整するステップｄと、
第２のクロックによってティックが生成されたとき、前記スレーブコントローラにおける前記シャドウティックカウントをインクリメントするステップｅと、
前記マスターコントローラにおいてイベントが発生すべきターゲットティックカウントと、前記スレーブコントローラにおいてイベントが発生すべきターゲットシャドウティックカウントと、を規定するステップｆと、
前記ティックカウントが前記ターゲットティックカウントと一致したとき、前記マスターコントローラを使ってイベントを命令するステップｇと、
前記シャドウティックカウントが前記ターゲットシャドウティックカウントと一致したとき、前記スレーブコントローラを使ってイベントを命令するステップｈと、
を備えることを特徴とする方法。
【請求項８】
前記ステップｂは、前記スレーブコントローラから前記問合せが送付される時間を判定することをさらに備え、
前記ステップｄは、
前記応答を前記スレーブコントローラで受信する時間を判定することと、
前記マスターコントローラから受信した前記ティックカウントと前記スレーブコントローラにおける前記ティックカウントの差、プラス、前記スレーブコントローラからの前記問合せの送信開始から前記スレーブコントローラでの前記応答の受信終了までの期間長さの半分、によって前記スレーブコントローラにおける前記シャドウティックカウントを調整することと、を備える請求項７に記載の方法。
【請求項９】
前記スレーブコントローラ上の前記第２のクロックによって生成されたティックカウントを前記スレーブコントローラに保持するステップをさらに備え、
前記ステップｅは、前記第２のクロックによって生成されたティックを使って前記シャドウティックカウントをインクリメントすることをさらに備える請求項７に記載の方法。
【請求項１０】
前記ステップｈは、
将来のイベントにおいて前記マスターコントローラで実行されるイベント情報を識別するステップと、
前記イベント情報を対応するターゲットティックカウントに関連付けるステップと、
前記マスターコントローラにおいて前記ターゲットティックカウントが発生した時に、前記マスターコントローラを使って前記対応するターゲットティックカウントに関連付けられた前記イベント情報を実行するステップと、をさらに備える請求項７に記載の方法。
【請求項１１】
前記ステップｇは、
将来のイベントにおいて前記スレーブコントローラで実行されるイベント情報を識別するステップと、
前記イベント情報を対応するターゲットシャドウティックカウントに関連付けるステップと、
前記スレーブコントローラにおいて前記ターゲットティックカウントが発生した時に、前記スレーブコントローラを使って前記対応するターゲットシャドウティックカウントに関連付けられた前記イベント情報を実行するステップと、をさらに備える請求項７に記載の方法。
【請求項１２】
前記ステップｂは、
前記スレーブコントローラにおける最後の調整の後に、所望の間隔の長さを、前記スレーブコントローラにおける前記シャドウティックカウントの前の調整から判定することと、
前記スレーブコントローラにおける前記最後の調整を開始するときから始まる現在の周期の長さ時間を判定することと、
前記現在の周期の長さと前記所望の間隔の長さから部分的なティック調整を判定することと、をさらに備える請求項７に記載の方法。
【請求項１３】
前記ステップｂは、
前記スレーブコントローラにおける最後の調整の後に、間隔長さの平均を、前記スレーブコントローラにおける前記シャドウティックカウントの前の調整から繰り返し判定することと、
前記スレーブコントローラにおける前記シャドウティックカウントの前の調整から前記前の調整の大きさの平均を繰り返し判定することと、
前記間隔長さの平均および前記前の調整の大きさ平均から部分的なティック調整を判定するステップと、をさらに備える請求項７に記載の方法。
【請求項１４】
複数のコントローラによって生成されるイベントを同期させる方法であって、
前記方法は、
通信ネットワークにマスターコントローラを接続するステップａと、
前記通信ネットワークにスレーブコントローラを接続するステップｂと、
前記通信ネットワークを使って、各コントローラにおいてインクリメントされたティックカウントの同期させるステップｃと、
イベントが発生するターゲットティックカウントを各コントローラにおいて判定するステップｄと、
次のイベントで実行されるべき、前記マスターコントローラおよび前記スレーブコントローラにおけるイベント情報を準備するステップｅと、
各前記コントローラにおける前記ティックカウントが前記ターゲットティックカウントと一致したとき、前記マスターコントローラおよび前記スレーブコントローラにおける各前記イベント情報を実行するステップｆと、
を備えることを特徴とする方法。
【請求項１５】
前記ステップｂは、前記通信ネットワークに複数のスレーブコントローラを接続することをさらに備え、
前記ステップｃは、前記次のイベントで実行されるべき、各前記スレーブコントローラにおけるイベント情報を準備することをさらに備え、
前記ステップｆは、各前記コントローラにおける前記ティックカウントが前記ターゲットティックカウントと一致したとき、各前記スレーブコントローラにおける各前記イベント情報を実行することをさらに備える請求項１４に記載の方法。
【請求項１６】
ロボットアクチュエータは、前記コントローラのうちの少なくとも１つのコントローラの制御に従うものであり、
前記ステップｆは、前記少なくとも１つのコントローラにおける前記ティックカウントが前記ターゲットティックカウントと一致したとき、前記少なくとも１つのコントローラにおける各前記イベント情報の実行に応答して、前記ロボットアクチュエータの動作を制御することをさらに備える請求項１４に記載の方法。
【請求項１７】
複数のロボットアクチュエータは、各前記コントローラの制御に従うものであり、
前記ステップｆは、各前記コントローラにおける前記ティックカウントが前記ターゲットティックカウントと一致したとき、前記マスターコントローラおよび前記スレーブコントローラにおける各前記イベント情報の実行に応答して、前記ロボットアクチュエータの動作を制御することをさらに備える請求項１４に記載の方法。
【請求項１８】
前記ステップｅは、
前記マスターコントローラにおける前記ティックカウントについて前記スレーブコントローラから前記マスターコントローラへ問合せを送付するステップと、
前記マスターコントローラの前記ティックカウントを含む応答を前記マスターコントローラから前記スレーブコントローラへ送付するステップと、
前記マスターコントローラから送付された前記ティックカウントに基づいて前記スレーブコントローラのティックカウントを調整するステップと、をさらに備える請求項１４に記載の方法。
【請求項１９】
前記ステップｅは、前記ティックカウントが前記ターゲットティックカウントと一致する前に、前記通信ネットワークを介して前記マスターコントローラから送付されたイベント情報を前記スレーブコントローラで受信するステップをさらに備える請求項１４に記載の方法。
【請求項２０】
前記ステップｃは、
前記ターゲットティックカウントの基準を各前記イベント情報とするステップと、
前記ティックカウントが前記ターゲットティックカウントと一致する前に、前記通信ネットワークを介して前記マスターコントローラから送付された前記イベント情報を前記スレーブコントローラで受信するステップと、請求項１４に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して言えばネットワークに接続された電子コントローラから発行されたコマンドのタイミングを協調させることに関する。より具体的に言えば、本発明は、コントローラからのコマンドに応答する、ロボットのようなアクチュエータによって実行されるアクションもしくはイベントに関連するものであり、このコマンドは、少なくとも１つの他のコントローラによって生成されるコマンドと同期する。
【背景技術】
【０００２】
ロボットシステムはより洗練されてきており、与えられたタスクに対して複数のロボットが連携して動作するというニーズがある。例えば、もし１台のロボットが加工中の製品をホールドして別のロボットがその製品に処理を施している場合、両方のロボットの動作は、正確に協調させてそのタスクを効果的に達成するようにしなければならない。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ロボットマニピュレータの緊密な連携を達成する従来の方法は、同じコントローラのハードウェアにこれらを接続することである。この技術は、運動軸や自由度の数が限定されているものに適用され得る。ロボットマニピュレータとサーボシステムのグループについて考えられ得る全ての順列と組合せをロボット製造業者が提供することは難しい。
【０００４】
このような欠点を克服するために、複数のコントローラを、ロボットマニピュレータのマルチアームシステムを制御するのに使うことができる。ネットワーク化されたコントローラの自由度ゆえに、システムにおける各コントローラおよびマニピュレータは一般的なものでよく、システムにおけるロボットの数をとても多くすることができる。各コントローラは、独立したタイミングシステムを必要としており、これはこのやり方の主たる欠点である。マルチロボットシステムの性能を十分に発揮するためには、共通の時間基準が好ましい。
【０００５】
いくつかの従来技術のシステムは、ハードウェアを使うことによって共通のタイミングを提供するが、ロボットコントローラの全てのクロックを相互接続することを必要とする技術である。ある１つのメカニズムでは、ＩＥＥＥ−１５８８で具体化されており、ハードウェアで共通のタイミングを提供する特定のメカニズムを使っている。従来技術の別のメカニズムでは、高精度のクロック回路を伴う。これら各々に必要なハードウェアは、専用のものであり、高価である。
【課題を解決するための手段】
【０００６】
通信ネットワークによって相互接続された電子コントローラ間において数マイクロ秒以内で正確にタイミングを協調させるためにハードウェアを使うことができるが、工業ロボットを制御するシステムにおいては精度は必要ない
【０００７】
本発明は、標準的な多目的通信ネットワークを介してソフトウェアでコントローラ間において共通タイミング情報を提供する。特別なハードウェアは必要ない。各コントローラ上のクロックは、正確である必要はなく、また、他のコントローラ上のクロックと独立に動くことができる。スレーブコントローラすなわちシャドウ(Shadow)コントローラは、マスターコントローラと通信して周期的にタイミング修正を決定するが、このタイミング修正は、スレーブコントローラのシャドウティックカウント(shadow tick count)を更新するのに使われる。この技術により、ネットワーク化された各コントローラによって生成されたイベントコマンド信号を、互いに数マイクロ秒以内で同期させることができる。
【０００８】
本発明による方法およびシステムは、ロボットのコントローラに適用することができ、また、電子コマンド信号に応答する他のアクチュエータおよびマニピュレータに適用することができる。
【０００９】
本発明による方法は、通信ネットワークによって相互接続されたコントローラのシステムにおけるイベントの発生を同期させる。この方法は、各コントローラ上のクロックによって生成される各ティックカウントをマスターコントローラおよびスレーブコントローラ上に保持するステップを含む。将来イベントが発生することになるターゲットティックカウントが規定される。スレーブコントローラは、マスターコントローラの現在のティックカウントについてマスターコントローラに問合せを繰り返し送付し、マスターコントローラは、マスターコントローラにおける現在のティックカウンタでスレーブコントローラに対して応答する。マスターコントローラから送信された現在のティックカウントと問合せに対する応答の送信期間の長さとに基づいて、スレーブコントローラにおけるシャドウティックカウンタが規定され、スレーブコントローラ上のクロックティックによってインクリメントされる。マスターコントローラは、マスターコントローラにおいてターゲットティックカウンタが発生したときにイベントを命令し、スレーブコントローラは、シャドウティックカウントがターゲットティックカウンタと一致したときにイベントを命令する。
【００１０】
本発明の他の利点とともに上記のことは、添付の図面を参照したとき、以下の好適な実施例についての詳細な説明から容易に理解されよう。
【発明を実施するための最良の形態】
【００１１】
図１を参照すると、本発明によるシステムは、通信ネットワーク１６によって相互接続された、Ｎ台（Ｎは特に限定されない）のロボットコントローラ１０、１２および１４を含んでいる。この通信ネットワーク１６は、無線、光もしくは有線のネットワークでよい。コントローラ１０はマスターコントローラであり、コントローラ１２および１４はシャドウコントローラである。図１は、各ロボットコントローラ１０、１２および１４がそれぞれ１つのロボット１８、２０および２２と通信するシステムを例示しているが、各コントローラはいくつかのロボットと通信してもよい。各コントローラに関連するロボットの動作は、コマンドによって制御されるが、このコマンドは、好適には各コントローラから繰り返し発行され、関連するロボットへ送付される電気信号の形式である。システムは、システム内のロボットがそのそれぞれのコントローラからのコマンドをほぼ同時に受信するよう、各コントローラ１０、１２および１４からのコマンドの発行を協調させ、これによって、各ロボットの動作は同期が取られ、システム内の他のロボットの動作と協調する。
【００１２】
本発明ではロボットシステムに関して議論しているが、本発明は、それぞれが少なくとも１つのアクチュエータを制御するような複数のコントローラから発行されたコマンドに応答して実質的に同時に反応する他の種類のアクチュエータの制御にも適用することができる。
【００１３】
各コントローラ１０、１２および１４は、ロボットコマンドを生成するコマンド機能２４、２６および２８を有している。コマンド機能２４、２６および２８は、互いに独立であり、コントローラの制御の下、ロボットが特定のロケーションへ動くように指示するコマンドのシーケンスであるロボット制御プログラムを実行する。各コマンドに応答するロボットの動作はイベントと呼ばれる。
【００１４】
各ロボットは、連接した関節によって接続される分割されたセグメント上に支持される終端を有するアームを有するが、この関節は、コントローラからのコマンドに応答して電気モータが駆動したとき回転する。関節の連接によって、ロボットのアームの終端が、あるロケーションへ動く。ロボット制御プログラムは、多くの場合、ロボットアームに取り付けられた、グリッパやプロセス用機器などの付加機器に対して命令する。塗料吹き付け器や溶接機などのようなプロセス用機器の場合、ロボット動作とプロセスとは密接に関係している。例えば、塗料吹き付け器は、動いているロボットアームが、塗料を塗るべき加工中の製品の近くの所定のロケーションに来たときに塗料を正確にスプレーするように動作しなければならない。
【００１５】
図２は、マスターコントローラ１０および１つのシャドウコントローラ１２の詳細を例示しているが、このシステムは、限定されない台数のシャドウコントローラを含んでもよく、この方法は、限定されない台数のシャドウコントローラに適用してもよい。アクチュエータコマンドの正確なタイミング調整を容易にするために、各コントローラに常駐するコンピュータ読み取り可能なコード化されたソフトウェアは、ティックカウンタ３０および３２を提供する。このティックカウンタ３０および３２は、データバス３４および３６によって水晶クロックに結合される。各カウンタ３０および３２は、ティック(tick)すなわちおよそ数秒ごとの間隔で各クロック３８および４０によって生成される信号のカウントを保持する。各コントローラ１０、１４および１６のコマンドに応答して発生するイベントの全ては、各コントローラのティックカウントもしくはシャドウティックカウントに基づいて同期化される。
【００１６】
各ティックカウンタ３０および３２は、ある整数を提供するが、この整数は、ティックカウンタ３０において特定のカウントが発生したときのマスターコントローラ１０によって、およびシャドウティックカウンタお３２において特定のカウントが発生したときのシャドウコントローラ１２によって、実行されるべきイベントに関するイベント情報にタグ付けするのにロボットコマンドシステムによって使われる。イベント情報４２および４４には、ロボットアームが次のイベントにて動くべきロケーションを含んでもよく、コントローラのメモリ４６および４８に常駐される。関係するイベントに対応してターゲットティックでタグ付けされたイベント情報は、対応のコントローラのメモリ４６および４８内にあり、ここでは参照符号５０および５２で表される。
【００１７】
ロボットコマンド機能２４および２６は、将来イベントが発生することになるターゲットティックカウント５３および５５を予測することができる。イベント情報４４は、イベントが発生する前に通信ネットワーク１６を介してスレーブコントローラ１２へ連絡される。標準の通信ネットワークは１２ミリ秒を超え得るレイテンシを有するので、イベントの前にイベント情報を準備することが必要である。イベントに対する準備によって、全てのコントローラが、カウンタがターゲットティックに到達する前に、イベント情報をタグ付けしておき、ターゲットティックカウントでトリガさせる準備をしておくことができる。
【００１８】
図１に示すように、マスターコントローラ１０はティックマスター機能５４を含んでおり、スレーブコントローラ１２および１４はそれぞれティックシャドウ機能５６および５８を含んでいる。これら機能５４、５６および５８は、スレーブコントローラにおけるティックカウント３２がマスターコントローラにおけるティックカウント３０と同じであることを保証するものである。ロボットおよびプロセス工程を各コントローラにおいて同期する必要があるとき、基準ティックカウントは、各コントローラにおいて同じティックカウントでイベントが発生することを確実にするものである。
【００１９】
ティック予測ソフトウェアは、システムワイドのイベントが発生するターゲットティックカウントを繰り返し判定する。ティック予測ソフトウェアは、システムワイドのイベントのそれぞれに対してイベント情報およびデータを生成し、その情報およびデータにそれぞれターゲットティックカウントをタグ付けする。そのデータは、全てのコントローラに送付されるが、各ターゲットティックカウントが発生するまでホールドされている。現在のティックカウントがターゲットティックカウントと一致すると、イベントはトリガされ、タグ付けされた情報およびデータが同じティックで全コントローラロボットにおいて実行される。
【００２０】
スレーブコントローラ１２および１４はそれぞれティック問合せ機能６０および６２を提供するが、このティック問合せ機能６０および６２は、マスターコントローラ１０上のティック問合せ応答機能６４にネットワーク１６経由でメッセージを送付する。スレーブコントローラからの現在のティックカウントについての問合せに応答して、マスターコントローラ１０は、スレーブコントローラ１２および１４に対してマスターティックカウント３０の現在の値を送付する。
【００２１】
問合せ機能６０および６２は、問合せの送信で始まり応答の受信で終わる送信期間長さを計算するために、各スレーブコントローラから送付された問合せの正確な時間と、各スレーブコントローラにおいて受信された応答の正確な時間とを使う。もし送信期間が所定の期間よりも長いならば、応答のティックカウントは無視され、新しい問合せが直ちに送付される。各スレーブコントローラにおいて受信されたマスターティックカウント応答および送信期間長さに基づいて、各スレーブコントローラに対してシャドウティックカウント調整が、マスターティックカウントとスレーブティックカウントとの差、プラス、送信期間長さの半分で計算される。この修正すなわち調整が、各スレーブコントローラ上のシャドウティックカウント３３を判定するために、各スレーブコントローラ１２および１４上の現在のティックカウント３２に適用される。シャドウティックカウント３３は、その後、スレーブコントローラ１２上のクロック４０によって生成された各ティックによってインクリメントされる。
【００２２】
コントローラ１０、１２および１４の同期を維持するために、各コントローラ上のティックカウント３０および３２は、自律的に更新を続け、そしてシャドウティックカウント３３は、現時点の各調整値によって調整され、スレーブコントローラ１２および１４において自律的に更新する。マスターコントローラ１０におけるターゲットティックカウント５３に到達する前に、ターゲットティックカウントに対応するイベントコマンド情報４２は、プログラムコマンド２４において識別され、次のターゲットティックカウントにタグ付けされている（参照符号５０）。マスターコントローラ１０においてタグ付けされたイベントコマンド情報４２は、到達すべき次のターゲットティックカウントの準備としてメモリ４６に保持される。ティックカウント３０とターゲットティックカウント５３とが一致したとき（参照符号７２）、マスターコントローラ１０は、ターゲットのティックカウンタ５３に対応するタグ付けされたイベントコマンド情報４２の実行７４を命令する。
【００２３】
同様に、各スレーブコントローラ１２および１４におけるそれぞれのシャドウティックカウントに到達する前に、各ターゲットシャドウティックカウントに対応するイベントコマンド情報４４は、プログラムコマンド２６において識別され、それぞれのターゲットのシャドウティックカウントにタグ付けされている（参照符号５２）。各スレーブコントローラ１２および１４におけるタグ付けされたイベントコマンド情報４４は、到達すべきターゲットティックカウントの準備としてメモリ４８に保持される。スレーブコントローラ１２におけるシャドウティックカウント３３とターゲットティックカウント５５とが一致したとき（参照符号７６）、スレーブコントローラ１２は、ターゲットのティックカウント５５に対応するタグ付けされたイベントコマンド情報４４の実行７８を命令する。
【００２４】
コントローラ１０、１２および１４上のクロック３８および４０内の電子水晶発振器は正確ではない。標準の低コストのハードウェアシステムは、５万分の１以内の精度であるので、時間が経てば、ティックシャドウカウント３３は、マスターティックカウント３０に対してドリフトするであろう。このドリフトに対応するために、ティックカウント問合せがマスターコントローラ１０へ周期的に送付される。ティックシャドウ機能５６および５８は、このクロックドリフトに対処するためにティックシャドウカウント３３を徐々に調整することができる。
【００２５】
クロックドリフトはいくらか一定の割合で続くので、ティックカウントの調整が一定の間隔で発生する。典型的な具体例では、スレーブコントローラ１２および１４におけるティックカウントを、約２分の動作ごとに１ティックカウントによって調整してもよい。スレーブコントローラ１２および１４上のティック問合せ／調整機能６０および６２は、ティックカウント調整を監視し履歴データにアクセスして、調整間の平均時間および最後の調整が行われてからの作動期間長さを判定する。この情報から、スレーブコントローラ１２および１４は、次のティックカウント調整が必要となる時刻を推定する。その時にスレーブコントローラからのティックカウント問合せがマスターコントローラへ送付される。
【００２６】
この推定値は、必要な調整の大きさに加えてティックの位相を計算するのに使われる。ティックマッチ７２はティックカウント３０が変化したときに発生し、ティックマッチ７６はティックカウント３２が変化したときに発生する。全てのコントローラは独立したティックカウンタ３０および３２を有しているので、マスターコントローラ１０におけるティックカウント３０とスレーブコントローラ１２および１４におけるシャドウティックカウント３３は、同時にはインクリメントしない。このインクリメントが一致しないことにより、イベントが各コントローラでトリガされたときには±１ティックの誤差が発生し得る。最良のケースでは、２つのコントローラ上にティックが正確に同時にインクリメントし、誤差はゼロであり、ティックは“一致”していると言える。最悪のケースでは、マスターコントローラにおけるティックが誤差１ティックになる直前もしくはなった直後にシャドウコントローラにおけるティックがインクリメントする。本発明のシステムでは、位相誤差を半ティックもしくはそれ以下に低減するために、クロックドリフトを監視する。
【００２７】
本発明は、イーサネット（登録商標）などのような標準の低コストネットワークの非決定論的な性質(non-deterministic nature)の問題を解決しようとするものである。ティックカウントごとに対してティック問合せを実行することは非実用的である。例えば、ティックカウンタは、２ミリ秒ごとにインクリメントしてもよいが、しかし、標準の通信ネットワークを経由してちょうど１つのメッセージを送付するのと同じ１２ミリ秒であってもよい。
【００２８】
特許法の条文にしたがって、本発明は、好適な実施例を表すとされるもので開示されている。しかし、本発明は、本発明の精神および範囲を逸脱することなく、例示かつ記載された以外のように実行することができる点に注意すべきである。
【図面の簡単な説明】
【００２９】
【図１】本発明を適用するシステムの一般的な概略図である。
【図２】図１のマスターコントローラおよび１台のスレーブコントローラの概略的なブロック図である。
【図１】
2008531318.tif 000003
【図２】
2008531318.tif 000004
【国際調査報告】
2008531318.tif 000005
2008531318.tif 000006