(57)【要約】【課題】  刻々と変化するネットワーク負荷状況に合わせた最適な最小限の遅延時間で同期動作が可能であると共に、ネットワーク異常時でも同期ずれを起こさないモーションコントロールシステムを提供する。【解決手段】  各モーションコントローラ１、５、６に、自分がマスタの場合通信遅れを予め設定された遅延監視周期で測定することを指令し、スレーブの場合測定結果をマスタに返す遅延監視処理部１３と、自分がマスタの場合同期動作時に遅延時間を現在の時間に加算した時間でモーション制御処理部１１およびスレーブに動作開始を指令し、スレーブの場合マスタから指令された時間でモーション制御処理部１１に動作開始を指令する同期制御処理部１４を備える。【選択図】    図１
2007226492.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを経由してパケットの送受信を行う通信処理部と、
モータを制御するモータドライバに動作を指令するモーション制御処理部と、
時間をカウントするタイマを有するモーションコントローラが非同期通信のネットワークに複数台接続され、前記複数のモーションコントローラ間で同期して動作するモーションコントロールシステムにおいて、
前記複数のモーションコントローラの１つをマスタとし他をスレーブとし、
前記各モーションコントローラに、自分がマスタの場合前記モーションコントローラ間の通信遅れを予め設定された遅延監視周期で測定することを指令し、スレーブの場合測定結果をマスタに返す遅延監視処理部と、
自分がマスタの場合同期動作時に前記遅延監視処理部で測定した時間を基に決定した遅延時間を現在の時間に加算した時間で前記モーション制御処理部およびスレーブに動作開始を指令し、スレーブの場合マスタから指令された時間で前記モーション制御処理部に動作開始を指令する同期制御処理部を備えることを特徴とするモーションコントロールシステム。
【請求項２】
前記同期制御処理部は、指定された時間内に処理を開始することができなかった場合、エラーとすることを特徴とする請求項１記載のモーションコントロールシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、非同期通信のネットワークに接続された複数のモーションコントローラを同期制御するモーションコントロールシステムに関する。
【背景技術】
【０００２】
従来のモーションコントロールシステムで非同期通信のネットワークに接続された複数のモーションコントローラをあるタイミングで同時に動作させる場合、モーションコントローラ同士の同期制御を行っている。
図８は、従来のモーションコントロールシステムを示す構成図である。
図において、第１モーションコントローラ２１と、第２モーションコントローラ２２、第ｎモーションコントローラ２３は、非同期通信のネットワーク７で接続されている。ここで、ｎは任意の複数で、任意の複数台がネットワークで接続されていることを表す。また、モーションコントローラ以外のネットワーク機器８も同様にネットワーク７に接続されている。
第１モーションコントローラ２１、第２モーションコントローラ２２、第ｎモーションコントローラ２３は、それぞれモータドライバ２とフィールドネットワーク４で接続され、モータドライバ２はモータ３を制御する。ここで、第１モーションコントローラ２１をマスタ、第２モーションコントローラ２２、第ｎモーションコントローラ２３をスレーブとして同期制御を行う。
【０００３】
第１モーションコントローラ２１内は、以下の構成となっている。
１０は、ネットワーク７における通信パケットの送信、受信処理を行う通信処理部である。
１１はモータドライバ２に動作を指令するモーション制御部である。
１２は時間をカウントするタイマである。
２４はスレーブのモーションコントローラがマスタに対しどのくらいの遅延時間で動作を開始するかを測定する遅延測定部である。
２５は同期をとるためモーション制御処理部の動作開始時間を調整するモーション制御時間調整部で、マスタのみに装備される。
【０００４】
次に第１モーションコントローラ２１が、第２モーションコントローラ２２、第ｎモーションコントローラ２３と同期して動作する手順について説明する。
まず、セットアップ作業において、マスタである第１モーションコントローラ２１の遅延測定部２４からからスレーブの第２モーションコントローラ２２、第ｎモーションコントローラ２３へダミーパケットを送信し、第２モーションコントローラ２２、第ｎモーションコントローラ２３から応答パケットを受信することで各モーションコントロール間の通信に要する時間を測定する。測定値の最大値の１／２の値が送信に要する最大の時間とみなされるので、この値にマージン値を加算した値を送信の遅延時間として第１モーションコントローラ２１の内部に記憶する。
【０００５】
そして、第１モーションコントローラ２１は、動作開始要求パケットを第２モーションコントローラ２２、第nモーションコントローラ２３に送信し、モーション制御時間調整部２５で記憶されている遅延時間だけ遅れてモーション制御処理部を動作させる。スレーブである第２モーションコントローラ２２、第nモーションコントローラ２３は動作開始要求パケット受信後すぐにモーション制御処理部１１が動作を開始することで同期をとる。このようにネットワークを介してモーションコントローラが同期する場合、マスタとなるモーションコントローラのモーション制御処理部の動作開始を遅らせることにより伝送の遅れを補正している。
また、他の従来技術としてモデムを利用した電話回線によるリモート操作制御における通信エラー待ち時間での遅延時間設定方法として特許文献１に示すような仕組みが考えられている。この仕組みは、起動時に通信遅延測定、及び待ち時間オーバー時に通信遅れを再測定し設定する仕組みである。
【特許文献１】特開２００１−３３３３２０号公報（第２−３頁、図４）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、ネットワークの負荷状況は接続されているネットワーク機器の利用状況により刻々と変化し、モーションコントローラ間の通信遅延時間も大きく変動することがあり、上述のように遅延時間をセットアップ時に測定した値のままで利用すると、この変動に対応するためセットアップ時に測定した時間に大きなマージン値を加算した値を遅延時間とする必要がある。このためモーションコントローラ間における同期動作であるモーション開始処理の遅延時間待ちが必要以上に長くなるという問題があった。
また、各モーションコントローラはマスタ、スレーブ共見込みで動作を開始するため、ネットワーク異常等で設定した遅延時間にパケットがスレーブに届かなかった場合でも異常検出ができず動作を継続してしまうという問題もあった。
本発明は、これらの問題に鑑みてなされたものであり、刻々と変化するネットワーク負荷状況に合わせた最適な最小限の遅延時間で同期動作が可能であると共に、ネットワーク異常時は動作を停止することができるモーションコントロールシステムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記問題を解決するため、本発明は、次のように構成したのである。
請求項１に記載の発明は、ネットワークを経由してパケットの送受信を行う通信処理部と、モータを制御するモータドライバに動作を指令するモーション制御処理部と、時間をカウントするタイマを有するモーションコントローラが非同期通信のネットワークに複数台接続され、前記複数のモーションコントローラ間で同期して動作するモーションコントロールシステムにおいて、前記複数のモーションコントローラの１つをマスタとし他をスレーブとし、前記各モーションコントローラに、自分がマスタの場合前記モーションコントローラ間の通信遅れを予め設定された遅延監視周期で測定することを指令し、スレーブの場合測定結果をマスタに返す遅延監視処理部と、自分がマスタの場合同期動作時に前記遅延監視処理部で測定した時間を基に決定した遅延時間を現在の時間に加算した時間で前記モーション制御処理部およびスレーブに動作開始を指令し、スレーブの場合マスタから指令された時間で前記モーション制御処理に動作開始を指令する同期制御処理部を備えることを特徴とするものである。
【０００８】
また、請求項２に記載の発明は、請求項１記載のモーションコントロールシステムにおいて、前記同期制御処理部は、指定された時間内に処理を開始することができなかった場合、エラーとすることを特徴とするものである。
【発明の効果】
【０００９】
請求項１に記載の発明によると、各モーションコントローラに、自分がマスタの場合モーションコントローラ間の通信遅れを予め設定された遅延監視周期で測定することを指令し、スレーブの場合測定結果をマスタに返す遅延監視処理部と、自分がマスタの場合同期動作時に遅延監視処理部で測定した時間を基に決定した遅延時間を現在の時間に加算した時間でモーション制御処理部およびスレーブに動作開始を指令し、スレーブの場合マスタから指令された時間でモーション制御処理部に動作開始を指令する同期制御処理部を備え、モーションコントローラ間の通信遅延時間を常に監視し変更するので、刻々と変化するネットワーク負荷状況に合わせた最適な最小限の遅延時間で同期動作が可能なモーションコントロールシステムを実現できる。
また、請求項２に記載の発明によると、同期制御処理部は、指定された時間内に処理を開始することができなかった場合、エラーとするので、ネットワーク異常時等で設定した遅延時間にパケットがスレーブに届かなかった場合モーションコントローラの動作を停止させることができる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の具体的実施例について、図に基づいて説明する。
【実施例１】
【００１１】
図１は、本発明のモーションコントロールシステムを示す構成図である。
図１において、第１モーションコントローラ１と、第２モーションコントローラ５、第ｎモーションコントローラ６は、非同期通信のネットワーク７で接続されている。本実施例ではネットワーク７としてＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）ネットワークを使用するものとする。また、モーションコントローラ以外のネットワーク機器８も同様にネットワーク７に接続されている。また、モーションコントローラ内のタイマ１２を合わせるために時刻同期サーバ１７がネットワーク７に接続されている。
第１モーションコントローラ１、第２モーションコントローラ５、第ｎモーションコントローラ６は、それぞれモータドライバ２とフィールドネットワーク４で接続され、モータドライバ２はモータ３を制御する。ここで、第１モーションコントローラ１をマスタ、第２モーションコントローラ５、第ｎモーションコントローラ６をスレーブとして同期制御を行う。
【００１２】
第１モーションコントローラ１内は、以下の構成となっている。
１０は、ネットワーク７における通信パケットの送信、受信処理を行う通信処理部である。
１１は、モータドライバ２に動作を指令するモーション制御部で、モーションコントローラ間で同期をとる場合、同期制御処理部１４から要求された指定時間に動作を開始する。
１２は時間をカウントするタイマである。
１３は、モーションコントローラ間の通信の遅延時間を監視測定する遅延監視処理部である。
１４はモーションコントローラ間の同期を制御する同期制御処理部で、自分のモーション制御処理部１１及び同期相手のモーションコントローラの同期制御処理部１４対し動作開始を要求する。
１５は、遅延監視処理部１３、同期制御処理部１４で使用される同期条件パラメータである。
１６は、モーションコントローラ間の同期情報が格納されている同期情報テーブルである。
第２モーションコントローラ５、第ｎモーションコントローラ６の内部も第１モーションコントローラ１と同様の構成となっていて、遅延監視処理部１３で通信の遅延時間を測定し、同期制御処理部１４で同期制御を行う。
【００１３】
図２は、同期条件パラメータ１５の内容を示す説明図である。
同期条件パラメータ１５として、自分がマスタかスレーブかの同期モード、遅延監視周期（ｍｓ）、遅延マージン（ｍｓ）、同期相手ＩＰアドレスの情報を持っている。また同期相手のＩＰアドレスにブロードキャスト用の特別なＩＰアドレスを設定することでネットワーク７上の全ての機器を同期相手とすることも可能である。これらのパラメータの値は予め図示しないキーボード等から、各モーションコントローラに設定しておく。
図３は、同期情報テーブル１６の内容を示す説明図である。同期情報テーブル１３として、同期対象モーションコントローラ毎のＩＰアドレスと遅延時間の情報が記憶されている。
本発明が従来と異なる点は、遅延監視周期により定期的にネットワークの遅延時間を監視する遅延監視処理部１３と、モーションコントローラ間の同期制御を行う同期制御処理部１４と、これらの処理に必要な同期条件パラメータ１５と、同期情報テーブル１６を備えた点である。
【００１４】
次に、遅延監視処理部１３よる遅延測定の動作を説明する。
遅延測定には遅延測定パケットとして、マスタからスレーブにタイマ時間の読み込みを要求する遅延測定要求パケットと、スレーブからマスタにタイマ時間を返す遅延測定応答パケットを使用する。
図４に遅延測定パケットの内容を示す。
図４（ａ）はマスタからスレーブに送信する遅延測定要求パケットで、図４（ｂ）はスレーブからマスタに送信する遅延測定応答パケットである。
遅延測定要求パケットは、ＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）ヘッダ部、遅延測定要求コード、送信時間からなり、遅延測定応答パケットは、ＴＣＰ／ＩＰヘッダ部、遅延測定応答コード、送信時間、受信時間からなる。送信時間、受信時間にはタイマ時間がそのまま入る。
【００１５】
図５は、遅延監視処理部１３の処理手順を示すフローチャートである。
ステップＳＴ１１で同期条件パラメータ１５の同期モードがマスタかどうかを判断し、マスタの場合、ステップＳＴ１２で遅延測定要求パケット送信タスクを起動し、遅延測定パケット受信イベント待ちループへ進む。遅延測定要求パケット送信タスクは、同期条件パラメータ１５の遅延監視周期と同期相手ＩＰアドレスの値に従って、遅延測定要求パケットを通信処理部１０を介してネットワーク経由でスレーブに送信する処理を周期的に行う。遅延測定パケット受信イベント待ちループ処理は、遅延測定パケット受信があると、ステップＳＴ１３でコードが遅延測定要求コードかどうかを判断し、遅延測定要求コードの場合ステップＳＴ１４でタイマ値を読み込み遅延測定応答パケットを作成し送信する。ステップＳＴ１４はスレーブ側の処理となる。遅延測定要求でない場合、つまり遅延測定応答コードの場合はステップＳＴ１５で受信パケットデータの受信時間より遅延を算出し、同期情報テーブル１６の遅延時間を更新する。ステップＳＴ１５はマスタ側の処理となる。そして再度遅延測定パケット受信待ちとなる。
【００１６】
次に、同期制御処理部１４による同期制御について説明する。
同期制御には同期動作開始パケットとして、マスタからスレーブに指定した時間での動作開始を要求する同期開始要求パケットと、スレーブからマスタに動作開始が正常に行われたかどうかを返す同期開始応答パケットを使用する。
図６に同期動作開始パケットの内容を示す。
図６（ａ）はマスタからスレーブに送信する同期開始要求パケットで、図６（ｂ）はスレーブからマスタに送信する同期開始応答パケットである。
同期開始要求パケットは、ＴＣＰ／ＩＰヘッダ部、同期開始要求コード、開始時間からなり、同期開始応答パケットは、ＴＣＰ／ＩＰヘッダ部、同期開始応答コード、開始時間、開始ステータス（０が正常、０以外が異常）からなる。
【００１７】
図７は同期制御処理部１４の処理手順を示すフローチャートである。
ステップＳＴ２１で同期条件パラメータ１５の同期モードがマスタかどうかを判断し、マスタの場合、ステップＳＴ２２で同期動作開始要求パケット送信タスクを起動し、同期動作開始パケット受信イベント待ちループへ進む。同期動作開始要求パケット送信タスクは、図示しないＩＯ信号またはモーションプログラム指令から同期動作開始を要求されると同期条件パラメータ１５の同期相手ＩＰアドレスの値に従って、同期開始要求パケットを通信処理部１０を介してネットワーク経由でスレーブに送信すると共に、自分のモーション制御処理部１１へ開始時間を通知する。なお、同期開始要求パケットにある開始時間の算出は、現在のタイマ時間に同期情報テーブル１６の遅延時間の最大値と同期条件パラメータの遅延マージン値を加算した値とする。マスタ、スレーブ共に自分のタイマ時間が開始時間になったときにモーション制御処理部の動作を開始する。
同期動作開始パケット受信イベント待ちループ処理は、同期動作開始パケット受信があると、ステップＳＴ２３で要求コードが同期開始要求コードかどうかを判断し、同期開始要求コードの場合、ステップＳＴ２４で受信パケットの開始要求時間が妥当かどうかを自分のタイマ時間と比較して判断する。開始要求時間がタイマ時間より大きく妥当な場合はステップＳＴ２５に進みモーション制御処理部１１へ開始時間を通知し、ステップＳＴ２６で同期開始処理が正常に動作したことを意味する開始ステータスが正常（０値を設定）の同期開始応答パケットを作成し送信する。モーション制御処理部１１は、開始時間になると動作を開始する。ステップＳＴ２４で開始要求時間がタイマ時間より小さく妥当でない場合、同期開始処理のエラーを意味する開始ステータスが異常（タイマ値を設定）の同期開始応答パケットを送信する。これは、ネットワークに異常が発生した場合や、異常でなくとも、思わぬ負荷がかかり同期がうまくいかなかった場合に同期ずれを起こして動作することを防ぐための処理である。この場合、ブロードキャスト送信して同期するモーションコントローラ全てに異常パケットを送信し、動作を停止することがより好ましい。ステップＳＴ２４〜ＳＴ２７はスレーブ側の処理となる。
一方、ステップＳＴ２３で要求コードが同期開始応答コードの場合、ステップＳＴ２８に進み、開始ステータスを判断し、エラーの場合はステップＳＴ２９で動作停止等のエラー処理を行う。ステップＳＴ２８〜ＳＴ２９はマスタ側の処理となる。
【００１８】
このように、各モーションコントローラに、自分がマスタの場合モーションコントローラ間の通信遅れを予め設定された遅延監視周期で測定することを指令し、スレーブの場合測定結果をマスタに返す遅延監視処理部と、自分がマスタの場合同期動作時に遅延監視処理部で測定した時間を基に決定した遅延時間を現在の時間に加算した時間でモーション制御処理部およびスレーブに動作開始を指令し、スレーブの場合マスタから指令された時間でモーション制御処理部に動作開始を指令する同期制御処理部を備え、モーションコントローラ間の通信遅延時間を常に監視し変更するので、刻々と変化するネットワーク負荷状況に合わせた最適な最小限の遅延時間で同期動作が可能なモーションコントロールシステムを実現できる。また、同期制御処理部は、指定された時間内に処理を開始することができなかった場合、エラーとするので、ネットワーク異常時等で設定した遅延時間にパケットがスレーブに届かなかった場合でもできなかった場合、エラーとするので、ネットワーク異常時等で設定した遅延時間にパケットがスレーブに届かなかった場合モーションコントローラの動作を停止させることができるのである。
【図面の簡単な説明】
【００１９】
【図１】本発明のモーションコントロールシステムを示す構成図
【図２】同期条件パラメータの内容を示す説明図
【図３】同期情報テーブルの内容を示す説明図
【図４】遅延測定パケットの内容を示す説明図
【図５】遅延監視処理部の処理手順を示すフローチャート
【図６】同期モーション開始パケットの内容を示す説明図
【図７】同期制御処理部の処理手順を示すフローチャート
【図８】従来のモーションコントロールシステムを示す構成図
【符号の説明】
【００２０】
１、２１  第１モーションコントローラ
２  モータドライバ
３  モータ
４  フィールドネットワーク
５、２２  第２モーションコントローラ
６、２３  第３モーションコントローラ
７  ネットワーク
８  ネットワーク機器
１０  通信処理部
１１  モーション制御処理部
１２  タイマ
１３  遅延監視処理部
１４  同期制御処理部
１５  同期条件パラメータ
１６  同期情報テーブル
１７  時刻同期サーバ
２４  遅延測定部
２５  モーション制御時間調整部
【図１】
2007226492.tif 000003
【図２】
2007226492.tif 000004
【図３】
2007226492.tif 000005
【図４】
2007226492.tif 000006
【図５】
2007226492.tif 000007
【図６】
2007226492.tif 000008
【図７】
2007226492.tif 000009
【図８】
2007226492.tif 000010