(57)【要約】【課題】情報伝送を迅速に行う。【解決手段】メインコントローラ１００は、モータ３００ａ１等を制御するための位置制御情報を複数回送信する。ドライバユニット２００ａ及びドライバユニット２００ｂは、受信した位置制御情報に受信異常の箇所が含まれる場合には、当該受信異常の箇所を無効情報に置き換えて後段に送信する。メインコントローラ１００は、受信異常の箇所が無効情報に置き換えられた位置制御情報を受信した場合には、位置制御情報のうち、当該無効情報の箇所に対応する位置制御情報を再送する。【選択図】図１
2017011706.tif 000002
【特許請求の範囲】
【請求項１】
通信路と、
前記通信路に接続されるマスタ装置と、
前記通信路に接続される複数のスレーブ装置と、
を備える通信システムであって、
前記マスタ装置は、
前記複数のスレーブ装置宛ての情報を所定期間内に複数回送信可能な第１の情報送信手段を備え、
前記スレーブ装置は、
前記マスタ装置又は前段のスレーブ装置からの情報を受信する第１の情報受信手段と、
前記第１の情報受信手段により情報が受信される毎に、受信された前記情報における受信異常の箇所を無効情報に置き換えた情報を後段のスレーブ装置又は前記マスタ装置へ送信する第２の情報送信手段と、
を備えることを特徴とする通信システム。
【請求項２】
前記マスタ装置は、
前記スレーブ装置からの情報を受信する第２の情報受信手段と、
前記第２の情報受信手段により受信された情報に前記無効情報が含まれる場合に、前記第１の情報送信手段によって送信された情報のうち、前記無効情報の箇所に対応する情報を再送する情報再送手段と、
を備えることを特徴とする請求項１に記載の通信システム。
【請求項３】
前記マスタ装置は、
前記スレーブ装置からの情報を受信する第２の情報受信手段と、
前記第１の情報送信手段によって送信された情報のうち、前記第２の情報受信手段により正常に受信された情報以外の情報を再送する情報再送手段と、
を備えることを特徴とする請求項１に記載の通信システム。
【請求項４】
前記第１の情報送信手段により送信される情報は、複数のスレーブ装置に接続されるモータを制御するための制御情報であることを特徴とする請求項２又は３に記載の通信システム。
【請求項５】
前記情報再送手段は、前記モータの制御周期において少なくとも一度は前記制御情報の再送が可能であることを特徴とする請求項４に記載の通信システム。
【請求項６】
前記第２の情報送信手段は、前記第１の情報受信手段により情報が受信される毎に、受信された前記情報における受信正常の箇所を受信正常であることを示す応答情報に置き換えた情報を後段のスレーブ装置又は前記マスタ装置へ送信することを特徴とする請求項１〜５の何れか１項に記載の通信システム。
【請求項７】
前記第２の情報送信手段は、前記第１の情報受信手段により情報が正常に受信される毎に、受信された前記情報に受信正常を示す情報を設定して、後段のスレーブ装置又は前記マスタ装置へ送信することを特徴とする請求項１〜５の何れか１項に記載の通信システム。
【請求項８】
前記第１の情報送信手段は、送信すべき情報が存在しない場合に、正式な情報ではない旨を示す情報を含んだ第１の擬似情報を送信し、
前記第２の情報送信手段は、送信すべき情報が存在しない場合に、正式な情報ではない旨を示す情報を含んだ第２の擬似情報を送信することを特徴とする請求項１〜７の何れか１項に記載の通信システム。
【請求項９】
前記マスタ装置は、
前記第２の情報受信手段により受信された情報を記憶する記憶手段を備え、
前記記憶手段において情報が記憶される期間は変更可能であることを特徴とする請求項２又は３に記載の通信システム。
【請求項１０】
通信路と、
前記通信路に接続されるマスタ装置と、
前記通信路に接続される複数のスレーブ装置と、
を備える通信システムにおける通信方法であって、
前記マスタ装置が、前記複数のスレーブ装置宛ての情報を所定期間内に複数回送信可能な第１の情報送信ステップと、
前記スレーブ装置が、前記マスタ装置又は前段のスレーブ装置からの情報を受信する第１の情報受信ステップと、
前記スレーブ装置が、前記第１の情報受信ステップにおいて情報が受信される毎に、受信された前記情報における受信異常の箇所を無効情報に置き換えた情報を後段のスレーブ装置又は前記マスタ装置へ送信する第２の情報送信ステップと、
を含むことを特徴とする通信方法。
【請求項１１】
前記マスタ装置が、前記スレーブ装置からの情報を受信する第２の情報受信ステップと、
前記マスタ装置が、前記第２の情報受信ステップにおいて受信された情報に前記無効情報が含まれる場合に、前記第１の情報送信ステップにおいて送信された情報のうち、前記無効情報の箇所に対応する情報を再送する情報再送ステップと、
を含むことを特徴とする請求項１０に記載の通信方法。
【請求項１２】
前記マスタ装置が、前記スレーブ装置からの情報を受信する第２の情報受信ステップと、
前記マスタ装置が、前記第１の情報送信ステップにおいて送信された情報のうち、前記第２の情報受信ステップにおいて正常に受信された情報以外の情報を再送する情報再送ステップと、
を含むことを特徴とする請求項１０に記載の通信方法。
【請求項１３】
通信路と、
前記通信路に接続されるマスタ装置と、
前記通信路に接続される複数のスレーブ装置と、
を備える通信システムとしてのコンピュータを、
前記マスタ装置において、前記複数のスレーブ装置宛ての情報を所定期間内に複数回送信可能な第１の情報送信手段、
前記スレーブ装置において、前記マスタ装置又は前段のスレーブ装置からの情報を受信する第１の情報受信手段、
前記スレーブ装置において、前記第１の情報受信手段により情報が受信される毎に、受信された前記情報における受信異常の箇所を無効情報に置き換えた情報を後段のスレーブ装置又は前記マスタ装置へ送信する第２の情報送信手段、
として機能させることを特徴とする通信プログラム。
【請求項１４】
前記コンピュータを、
前記マスタ装置において、前記スレーブ装置からの情報を受信する第２の情報受信手段、
前記マスタ装置において、前記第２の情報受信手段により受信された情報に前記無効情報が含まれる場合に、前記第１の情報送信手段によって送信された情報のうち、前記無効情報の箇所に対応する情報を再送する情報再送手段、
として機能させることを特徴とする請求項１３に記載の通信プログラム。
【請求項１５】
前記コンピュータを、
前記マスタ装置において、前記スレーブ装置からの情報を受信する第２の情報受信手段、
前記マスタ装置において、前記第１の情報送信手段によって送信された情報のうち、前記第２の情報受信手段により正常に受信された情報以外の情報を再送する情報再送手段、
として機能させることを特徴とする請求項１３に記載の通信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信システム、通信方法及び通信プログラムに関する。
【背景技術】
【０００２】
ロボットに搭載されたモータの制御においては、当該ロボットに搭載されたモータに供給される電流の制御や、モータの駆動に伴うロボットの位置の制御が行われる（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−１５２６１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述した従来のモータの制御の手法では、メインコントローラがモータを接続する複数のドライバに対して制御情報を送信し、個々のドライバがその制御情報に基づいて接続されたモータを制御する。この際、メインコントローラは、１のドライバに対して制御情報を送信し、当該ドライバからの正常に受信した旨の応答情報を受信した場合に、他の１のドライバに対して制御情報を送信するという手順が用いられる。このため、全てのドライバが制御情報を受信するまでに時間を要するという問題があった。
【０００５】
本発明は、問題点に鑑みてなされたものであり、情報伝送を迅速に行うことを目的とする。
【課題を解決するための手段】
【０００６】
目的を達成するために、本発明の第１の観点に係る通信システムは、
通信路と、
前記通信路に接続されるマスタ装置と、
前記通信路に接続される複数のスレーブ装置と、
を備える通信システムであって、
前記マスタ装置は、
前記複数のスレーブ装置宛ての情報を所定期間内に複数回送信可能な第１の情報送信手段を備え、
前記スレーブ装置は、
前記マスタ装置又は前段のスレーブ装置からの情報を受信する第１の情報受信手段と、
前記第１の情報受信手段により情報が受信される毎に、受信された前記情報における受信異常の箇所を無効情報に置き換えた情報を後段のスレーブ装置又は前記マスタ装置へ送信する第２の情報送信手段と、
を備えることを特徴とする。
【０００７】
前記マスタ装置は、
前記スレーブ装置からの情報を受信する第２の情報受信手段と、
前記第２の情報受信手段により受信された情報に前記無効情報が含まれる場合に、前記第１の情報送信手段によって送信された情報のうち、前記無効情報の箇所に対応する情報を再送する情報再送手段と、
を備えるようにしてもよい。
【０００８】
前記マスタ装置は、
前記スレーブ装置からの情報を受信する第２の情報受信手段と、
前記第１の情報送信手段によって送信された情報のうち、前記第２の情報受信手段により正常に受信された情報以外の情報を再送する情報再送手段と、
を備えるようにしてもよい。
【０００９】
前記第１の情報送信手段により送信される情報は、複数のスレーブ装置に接続されるモータを制御するための制御情報であるようにしてもよい。
【００１０】
前記情報再送手段は、前記モータの制御周期において少なくとも一度は前記制御情報の再送が可能であるようにしてもよい。
【００１１】
前記第２の情報送信手段は、前記第１の情報受信手段により情報が受信される毎に、受信された前記情報における受信正常の箇所を受信正常であることを示す応答情報に置き換えた情報を後段のスレーブ装置又は前記マスタ装置へ送信するようにしてもよい。
【００１２】
前記第２の情報送信手段は、前記第１の情報受信手段により情報が正常に受信される毎に、受信された前記情報に受信正常を示す情報を設定して、後段のスレーブ装置又は前記マスタ装置へ送信するようにしてもよい。
【００１３】
前記第１の情報送信手段は、送信すべき情報が存在しない場合に、正式な情報ではない旨を示す情報を含んだ第１の擬似情報を送信し、
前記第２の情報送信手段は、送信すべき情報が存在しない場合に、正式な情報ではない旨を示す情報を含んだ第２の擬似情報を送信するようにしてもよい。
【００１４】
前記マスタ装置は、
前記第２の情報受信手段により受信された情報を記憶する記憶手段を備え、
前記記憶手段において情報が記憶される期間は変更可能であるようにしてもよい。
【００１５】
目的を達成するために、本発明の第２の観点に係る通信方法は、
通信路と、
前記通信路に接続されるマスタ装置と、
前記通信路に接続される複数のスレーブ装置と、
を備える通信システムにおける通信方法であって、
前記マスタ装置が、前記複数のスレーブ装置宛ての情報を所定期間内に複数回送信可能な第１の情報送信ステップと、
前記スレーブ装置が、前記マスタ装置又は前段のスレーブ装置からの情報を受信する第１の情報受信ステップと、
前記スレーブ装置が、前記第１の情報受信ステップにおいて情報が受信される毎に、受信された前記情報における受信異常の箇所を無効情報に置き換えた情報を後段のスレーブ装置又は前記マスタ装置へ送信する第２の情報送信ステップと、
を含むことを特徴とする。
【００１６】
前記マスタ装置が、前記スレーブ装置からの情報を受信する第２の情報受信ステップと、
前記マスタ装置が、前記第２の情報受信ステップにおいて受信された情報に前記無効情報が含まれる場合に、前記第１の情報送信ステップにおいて送信された情報のうち、前記無効情報の箇所に対応する情報を再送する情報再送ステップと、
を含むようにしてもよい。
【００１７】
前記マスタ装置が、前記スレーブ装置からの情報を受信する第２の情報受信ステップと、
前記マスタ装置が、前記第１の情報送信ステップにおいて送信された情報のうち、前記第２の情報受信ステップにおいて正常に受信された情報以外の情報を再送する情報再送ステップと、
を含むようにしてもよい。
【００１８】
目的を達成するために、本発明の第３の観点に係る通信プログラムは、
通信路と、
前記通信路に接続されるマスタ装置と、
前記通信路に接続される複数のスレーブ装置と、
を備える通信システムとしてのコンピュータを、
前記マスタ装置において、前記複数のスレーブ装置宛ての情報を所定期間内に複数回送信可能な第１の情報送信手段、
前記スレーブ装置において、前記マスタ装置又は前段のスレーブ装置からの情報を受信する第１の情報受信手段、
前記スレーブ装置において、前記第１の情報受信手段により情報が受信される毎に、受信された前記情報における受信異常の箇所を無効情報に置き換えた情報を後段のスレーブ装置又は前記マスタ装置へ送信する第２の情報送信手段、
として機能させることを特徴とする。
【００１９】
前記コンピュータを、
前記マスタ装置において、前記スレーブ装置からの情報を受信する第２の情報受信手段、
前記マスタ装置において、前記第２の情報受信手段により受信された情報に前記無効情報が含まれる場合に、前記第１の情報送信手段によって送信された情報のうち、前記無効情報の箇所に対応する情報を再送する情報再送手段、
として機能させるようにしてもよい。
【００２０】
前記コンピュータを、
前記マスタ装置において、前記スレーブ装置からの情報を受信する第２の情報受信手段、
前記マスタ装置において、前記第１の情報送信手段によって送信された情報のうち、前記第２の情報受信手段により正常に受信された情報以外の情報を再送する情報再送手段、
として機能させるようにしてもよい。
【発明の効果】
【００２１】
本発明によれば、情報伝送を迅速に行うことができる。
【図面の簡単な説明】
【００２２】
【図１】第１の実施形態に係る通信システムの概略構成を示す図である。
【図２】第１の実施形態に係るメインコントローラの詳細構成を示す図である。
【図３】第１の実施形態に係るドライバの詳細構成を示す図である。
【図４】第１の実施形態における位置制御情報の伝送態様の一例を示す図である。
【図５】第１の実施形態における位置制御情報の構成の一例を示す図である。
【図６】第１の実施形態における位置制御情報の伝送及び再送の態様の一例を示す図である。
【図７】第１の実施形態における位置制御情報の伝送及び再送の態様の一例を示す図である。
【図８】第２の実施形態に係る通信システムの概略構成を示す図である。
【図９】第２の実施形態における位置制御情報の構成の一例を示す図である。
【図１０】第２の実施形態における位置制御情報の伝送及び再送の態様の一例を示す図である。
【図１１】第２の実施形態における位置制御情報の伝送及び再送の態様の一例を示す図である。
【図１２】第２の実施形態における位置制御情報の伝送及び再送の態様の一例を示す図である。
【発明を実施するための形態】
【００２３】
以下、本発明の実施形態について図面を参照しながら詳細に説明する。
【００２４】
（第１の実施形態）
図１は、第１の実施形態に係るモータ制御システムの概略構成を示す図である。図１に示す通信システムとしてのモータ制御システム１は、ロボットとしてのアクチュエータ等に搭載されるモータ３００ａ１、３００ａ２、３００ａ３、３００ａ４、３００ｂ１、３００ｂ２、３００ｂ３、３００ｂ４（以下、モータ３００ａ１〜３００ｂ４をまとめて適宜「モータ３００」と称する）を制御するものである。モータ制御システム１は、マスタ装置としてのメインコントローラ１００と、スレーブ装置としてのドライバユニット２００ａ及びドライバユニット２００ｂ（以下、ドライバユニット２００ａ及びドライバユニット２００ｂをまとめて適宜「ドライバユニット２００」と称する）と、ネットワーク４００とを含んで構成される。
【００２５】
メインコントローラ１００、ドライバユニット２００ａ及びドライバユニット２００ｂは、ネットワーク４００に接続される。ネットワーク４００は、リング構成のネットワークトポロジを有する通信路である。第１の実施形態では、ネットワーク４００がリング構成のネットワークトポロジを有することにより、メインコントローラ１００が送信する情報は、ネットワーク４００を介してドライバユニット２００ａ及びドライバユニット２００ｂへ順次伝送されて、再びメインコントローラ１００へ戻ることが可能である。
【００２６】
第１の実施形態において、メインコントローラ１００は、ロボット内の可動部の位置を制御する位置制御を行うことができ、当該ロボットの可動部を駆動するモータ３００ａ１〜３００ｂ４を制御するための制御情報として位置制御情報を送信する。ドライバユニット２００ａ及び２００ｂは、位置制御情報を受信して、当該位置制御情報に基づいてモータ３００ａ１〜３００ｂ４を制御する。また、ドライバユニット２００ａ及び２００ｂは、位置制御情報の受信に対する応答として、当該位置制御情報をロボットの可動部の位置を示す位置データに置き換えてメインコントローラ１００へ返信する。また、ドライバユニット２００ａ及び２００ｂは、位置制御情報が正常に受信することができなかった場合には、受信異常が生じている位置制御情報を、受信異常が生じている旨を示す無効情報に置き換えてメインコントローラ１００へ返信する。メインコントローラ１００は、無効情報が返信された場合には、当該無効情報に対応する位置制御情報の再送を行う。具体的な処理は後述する。
【００２７】
メインコントローラ１００は、位置制御において、ネットワーク４００を介して、前段のドライバユニット２００ａに対して、モータ３００ａ１〜３００ｂ４を制御するための制御情報として、ロボット内の可動部の位置を制御する位置制御情報を送信する。
【００２８】
ドライバユニット２００ａは、メインコントローラ１００からの位置制御情報を受信する。ドライバユニット２００ａは、受信した位置制御情報のうち、ドライバユニット２００ａ宛てのモータ３００ａ１〜３００ａ４を制御するための制御情報に受信異常がない場合には、当該モータ３００ａ１〜３００ａ４を制御するための制御情報を取り込んで、モータ３００ａ１〜３００ａ４を制御する。また、ドライバユニット２００ａは、メインコントローラ１００から受信した位置制御情報を後段のドライバユニット２００ｂへ送信する。この際、受信異常が発生した場合には、ドライバユニット２００ａは、後述する無効情報置換処理を行ってから位置制御情報を後段のドライバユニット２００ｂへ送信する。
【００２９】
ドライバユニット２００ｂは、ドライバユニット２００ａからの位置制御情報を受信すると、ドライバユニット２００ａと同様に、受信した位置制御情報のうち、ドライバユニット２００ｂ宛てのモータ３００ｂ１〜３００ｂ４を制御するための制御情報に受信異常がない場合には、当該モータ３００ｂ１〜３００ｂ４を制御するための制御情報を取り込んで、モータ３００ｂ１〜３００ｂ４を制御する。また、ドライバユニット２００ｂは、メインコントローラ１００から受信した位置制御情報をメインコントローラ１００へ送信する。この際、受信異常が発生した場合には、ドライバユニット２００ｂは、後述する無効情報置換処理を行ってから位置制御情報をメインコントローラ１００へ送信する。
【００３０】
メインコントローラ１００は、ドライバユニット２００ｂからの位置制御情報を受信すると、当該位置制御情報の内容に基づいて、受信異常の有無を判定し、受信異常がある場合には、後述する位置制御情報の再送処理を行う。
【００３１】
図２は、第１の実施形態に係るメインコントローラ１００の詳細構成を示す図である。図２に示すメインコントローラ１００は、制御部１０２、メモリ１０４、通信制御部１０６、通信インタフェース（Ｉ／Ｆ）１０８、通信インタフェース（Ｉ／Ｆ）１１０を含んで構成される。
【００３２】
制御部１０２は、例えばＣＰＵ（Central Processing Unit）によって構成される。制御部１０２は、メモリ１０４に記憶されたプログラムに従ってソフトウェア処理を実行することにより、ロボット内の可動部の位置を制御する位置制御を行うことが可能である。
【００３３】
メモリ１０４は、例えばＲＡＭ（Random Access Memory）やＲＯＭ（Read Only Memory）である。メモリ１０４は、位置制御に用いられる各種情報（プログラム等）を記憶する。通信制御部１０６は、通信Ｉ／Ｆ１１０を介したドライバユニット２００ａとの通信や、通信Ｉ／Ｆ１０８を介したドライバユニット２００ｂとの通信を行う。
【００３４】
図３は、第１の実施形態に係るドライバユニット２００ａの詳細構成を示す図である。図３に示すドライバユニット２００ａは、制御部２０２、メモリ２０４、通信制御部２０６、通信インタフェース（Ｉ／Ｆ）２０８、通信インタフェース（Ｉ／Ｆ）２１０を含んで構成される。
【００３５】
制御部２０２は、例えばＣＰＵ（Central Processing Unit）によって構成される。制御部２０２は、メモリ２０４に記憶されたプログラムに従ってソフトウェア処理を実行することにより、位置制御情報に基づいて、モータ３００ａ１を制御するドライバであるモータ制御部２１２ａ、モータ３００ａ２を制御するドライバであるモータ制御部２１２ｂ、モータ３００ａ３を制御するドライバであるモータ制御部２１２ｃ、モータ３００ａ４を制御するドライバであるモータ制御部２１２ｄの機能を実現する。
【００３６】
メモリ２０４は、例えばＲＡＭ（Random Access Memory）やＲＯＭ（Read Only Memory）である。メモリ２０４は、各種情報（プログラム等）を記憶する。通信制御部２０６は、通信Ｉ／Ｆ２０８を介したメインコントローラ１００との通信や、通信Ｉ／Ｆ２１０を介したドライバユニット２００ｂとの通信を行う。
【００３７】
ドライバユニット２００ｂの構成は、図３に示すドライバユニット２００ａの構成と同様である。但し、制御部２０２は、メモリ２０４に記憶されたプログラムに従ってソフトウェア処理を実行することにより、位置制御情報に基づいて、モータ３００ｂ１を制御するドライバであるモータ制御部２１２ａ、モータ３００ｂ２を制御するドライバであるモータ制御部２１２ｂ、モータ３００ｂ３を制御するドライバであるモータ制御部２１２ｃ、モータ３００ｂ４を制御するドライバであるモータ制御部２１２ｄの機能を実現する。また、通信制御部２０６は、通信Ｉ／Ｆ２０８を介したドライバユニット２００ａとの通信や、通信Ｉ／Ｆ２１０を介したメインコントローラ１００との通信を行う。
【００３８】
メインコントローラ１００、ドライバユニット２００ａ、ドライバユニット２００ｂの相互の通信では、送信側がパラレルのデータをシリアルのデータに変換してネットワーク４００へ出力し、受信側が入力されたシリアルのデータをパラレルのデータに戻す。例えば、図４に示すメインコントローラ１００内の通信Ｉ／Ｆ１１０とドライバユニット２００ａ内の通信Ｉ／Ｆ２０８との間の通信では、メインコントローラ１００内の通信Ｉ／Ｆ１１０は、パラレルのデータをシリアルのデータに変換してネットワーク４００へ出力する。一方、通信Ｉ／Ｆ２０８は、ネットワーク４００を伝送されたシリアルのデータを入力してパラレルのデータに戻す。
【００３９】
図５は、第１の実施形態における位置制御情報の構成の一例を示す図である。図５（Ａ）に示すように、位置制御情報は、複数のブロックにより構成され、空データであるＳＹＮＣと、ドライバユニット２００ａ宛ての制御情報である４つのブロックＵｎｉｔ１−Ｂｌｏｃｋ０、Ｕｎｉｔ１−Ｂｌｏｃｋ１、Ｕｎｉｔ１−Ｂｌｏｃｋ２及びＵｎｉｔ１−Ｂｌｏｃｋ３と、ドライバユニット２００ｂ宛ての制御情報である４つのブロックＵｎｉｔ２−Ｂｌｏｃｋ０、Ｕｎｉｔ２−Ｂｌｏｃｋ１、Ｕｎｉｔ２−Ｂｌｏｃｋ２及びＵｎｉｔ２−Ｂｌｏｃｋ３と、フッタのブロックであるＳＹＮＣとにより構成される。
【００４０】
ドライバユニット２００ａ宛ての位置制御情報である４つのブロックＵｎｉｔ１−Ｂｌｏｃｋ０、Ｕｎｉｔ１−Ｂｌｏｃｋ１、Ｕｎｉｔ１−Ｂｌｏｃｋ２及びＵｎｉｔ１−Ｂｌｏｃｋ３は、ブロックＵｎｉｔ１−Ｂｌｏｃｋ０がモータ３００ａ１の位置制御情報、ブロックＵｎｉｔ１−Ｂｌｏｃｋ１がモータ３００ａ２の位置制御情報、ブロックＵｎｉｔ１−Ｂｌｏｃｋ２がモータ３００ａ３の位置制御情報、ブロックＵｎｉｔ１−Ｂｌｏｃｋ３がモータ３００ａ４の位置制御情報である。また、ドライバユニット２００ｂ宛ての制御情報である４つのブロックＵｎｉｔ２−Ｂｌｏｃｋ０、Ｕｎｉｔ２−Ｂｌｏｃｋ１、Ｕｎｉｔ２−Ｂｌｏｃｋ２及びＵｎｉｔ２−Ｂｌｏｃｋ３は、ブロックＵｎｉｔ２−Ｂｌｏｃｋ０がモータ３００ｂ１の位置制御情報、ブロックＵｎｉｔ２−Ｂｌｏｃｋ１がモータ３００ｂ２の位置制御情報、ブロックＵｎｉｔ２−Ｂｌｏｃｋ２がモータ３００ｂ３の制御情報、ブロックＵｎｉｔ２−Ｂｌｏｃｋ３がモータ３００ｂ４の制御情報である。
【００４１】
各ブロックは、更に複数のデータにより構成される。具体的には、図５（Ｂ）に示すように、ブロックは、宛先を含むヘッダ（header）のデータと、位置制御情報の複数のデータ１〜ｎと、デリミター（delimiter）のデータにより構成される。
【００４２】
次に、図６及び図７を参照しつつ、ロボット内の可動部の位置を制御する位置制御の詳細について説明する。図６及び図７は、第１の実施形態におけるメインコントローラ１００、ドライバユニット２００ａ、ドライバユニット２００ｂにおける時間経過に伴う位置制御情報の送信及び受信の状況を示す。
【００４３】
時刻０．００（μｓ）において、メインコントローラ１００内の制御部１０２は、通信制御部１０６及び通信Ｉ／Ｆ１１０、ネットワーク４００を介して、ドライバユニット２００ａに向けて位置制御情報Ａを送信する。位置制御情報Ａの送信に要する時間は３．４１（μｓ）である。
【００４４】
位置制御情報Ａの送信に連続して、時刻３．４１（μｓ）において、メインコントローラ１００内の制御部１０２は、通信制御部２０６及び通信Ｉ／Ｆ１１０を介して、ドライバユニット２００ａに向けて位置制御情報Ｂを送信する。位置制御情報Ｂは位置制御情報Ａと同一内容であり、送信に要する時間も同一の３．４１（μｓ）である。
【００４５】
時刻３．４１（μｓ）よりも後において、ドライバユニット２００ａ内の制御部２０２は、ネットワーク４００、通信Ｉ／Ｆ２０８、通信制御部２０６を介して、メインコントローラ１００からの位置制御情報Ａを受信する。更に、制御部２０２は、無効情報置換処理を行う。具体的には、制御部２０２は、位置制御情報の各ブロック内のデータ毎にチェックサム等を用いて誤り検出（受信異常の検出）を行う。また、制御部１０２は、位置制御情報の各ブロック内のデータ毎に、当該データに含まれるパリティを用いて誤り検出を行ったり、位置制御情報のブロック毎に当該ブロックの最後に付加されているデリミター内のＣＲＣ（Cyclic Redundancy Code）を用いて誤り検出を行うこともできる。
【００４６】
検出の結果、ドライバユニット２００ａ宛ての位置制御情報であるデータが正常に受信された場合には、制御部２０２は、正常に受信されたデータを、ロボットの可動部の位置を示す位置データ等を含む応答データに置き換える。例えば、図５（Ｃ）では、ドライバユニット２００ａ宛ての位置制御情報であるデータ１〜ｎが全て正常に受信されて、応答データ１〜ｎに置き換えられる。このとき、例えば、制御部１０２は、位置制御情報のブロックのヘッダ（header）に設けられているＡＣＫのビットを１に設定する。これにより、ブロック内のデータ１〜ｎが全て正常に受信されたことを示す。また、ドライバユニット２００ａ宛ての位置制御情報である１のブロック内の全てのデータが正常に受信された場合には、その位置制御情報に基づいてモータ３００ａ１等の制御が行われる。具体的には、モータ３００ａ１の位置制御情報である１のブロック内の全てのデータが正常に受信された場合には、制御部２０２内のモータ制御部２１２ａは、位置制御情報に基づいて、モータ３００ａ１を制御し、モータ３００ａ２の位置制御情報である１のブロック内の全てのデータが正常に受信された場合には、モータ制御部２１２ｂは、位置制御情報に基づいて、モータ３００ａ２を制御し、モータ３００ａ３の位置制御情報である１のブロック内の全てのデータが正常に受信された場合には、モータ制御部２１２ｃは、位置制御情報に基づいて、モータ３００ａ３を制御し、モータ３００ａ４の位置制御情報である１のブロック内の全てのデータが正常に受信された場合には、モータ制御部２１２ｄは、位置制御情報に基づいて、モータ３００ａ４を制御する。なお、ドライバユニット２００ｂ宛ての位置制御情報であるデータが正常に受信された場合には、制御部２０２は、そのデータの置き換えは行わない。
【００４７】
一方、検出の結果、ドライバユニット２００ａ宛てやドライバユニット２００ｂ宛ての位置制御情報であるデータの何れかに受信異常が生じている場合には、制御部２０２は、受信異常が生じているデータを、予め定められた受信異常が生じている旨を示す無効情報のデータ（ｅｒｒｏｒ）に置き換える。更に、制御部２０２は、ドライバユニット２００ａ宛ての位置制御情報である１のブロック内のデータにおける、受信異常が生じているデータ以降のデータについては、受信異常の検出及び置き換えは行われてもよいし、行われなくてもよい。例えば、図５（Ｄ）では、ブロックＵｎｉｔ１−Ｂｌｏｃｋ３内のデータ１は正常に受信されているが、データ２に受信異常が生じているため、データ１は応答データ１に置き換えられ、データ２は、無効情報のデータ（ｅｒｒｏｒ）に置き換えられる。データ３以降については置き換えは行われない。また、制御部２０２は、ドライバユニット２００ｂ宛ての位置制御情報である１のブロック内のデータにおける、受信異常が生じているデータ以降のデータについては、受信異常の検出は行なわない。
【００４８】
また、例えば、図６においては、位置制御情報Ａのドライバユニット２００ａ宛てのブロックのうち、ブロックＵｎｉｔ１−Ｂｌｏｃｋ０、Ｕｎｉｔ１−Ｂｌｏｃｋ１、Ｕｎｉｔ１−Ｂｌｏｃｋ２内の全てのデータは正常に受信されている。このため、制御部２０２は、正常受信されたブロックＵｎｉｔ１−Ｂｌｏｃｋ０、Ｕｎｉｔ１−Ｂｌｏｃｋ１、Ｕｎｉｔ１−Ｂｌｏｃｋ２内の全てのデータを応答データに置き換える。更に、位置制御情報ＡのブロックＵｎｉｔ１−Ｂｌｏｃｋ０、Ｕｎｉｔ１−Ｂｌｏｃｋ１、Ｕｎｉｔ１−Ｂｌｏｃｋ２は正常に受信していることを示すブロック（正常受信ブロック）になる。図６及び図７では、正常受信ブロックは、斜線で示されている。一方、位置制御情報ＡのブロックＵｎｉｔ１−Ｂｌｏｃｋ３、Ｕｎｉｔ２−Ｂｌｏｃｋ２内の位置制御情報のデータに受信異常が生じているため、制御部２０２は、その受信異常のデータを無効情報のデータ（ｅｒｒｏｒ）に置き換える。更に、位置制御情報ＡのブロックＵｎｉｔ１−Ｂｌｏｃｋ３、Ｕｎｉｔ２−Ｂｌｏｃｋ２は、無効情報のデータを含むブロックであるＥｒｒｏｒ  Ｂｌｏｃｋになる。
【００４９】
その後、制御部２０２は、通信制御部２０６、通信Ｉ／Ｆ２１０及びネットワーク４００を介して、ドライバユニット２００ｂに向けて無効情報変換処理後の位置制御情報Ａを送信する。
【００５０】
位置制御情報Ａの受信に連続して、時刻６．８２（μｓ）よりも後において、ドライバユニット２００ａ内の制御部２０２は、ネットワーク４００、通信Ｉ／Ｆ２０８、通信制御部２０６を介して、メインコントローラ１００からの位置制御情報Ｂを受信する。更に、制御部２０２は、位置制御情報Ａの受信時と同様に位置制御情報Ｂについても無効情報置換処理を行う。具体的な処理は上述と同様である。
【００５１】
例えば、図６においては、位置制御情報Ｂのドライバユニット２００ａ宛てのブロックのうち、ブロックＵｎｉｔ１−Ｂｌｏｃｋ０、Ｕｎｉｔ１−Ｂｌｏｃｋ２、Ｕｎｉｔ１−Ｂｌｏｃｋ３内の全てのデータは正常に受信されている。このため、制御部２０２は、正常受信されたブロックＵｎｉｔ１−Ｂｌｏｃｋ０、Ｕｎｉｔ１−Ｂｌｏｃｋ２、Ｕｎｉｔ１−Ｂｌｏｃｋ３内のデータを応答データに置き換える。更に、位置制御情報ＢのブロックＵｎｉｔ１−Ｂｌｏｃｋ０、Ｕｎｉｔ１−Ｂｌｏｃｋ２、Ｕｎｉｔ１−Ｂｌｏｃｋ３は正常受信ブロックになる。一方、位置制御情報ＢのブロックＵｎｉｔ１−Ｂｌｏｃｋ１、Ｕｎｉｔ２−Ｂｌｏｃｋ０内のデータに受信異常が生じているため、制御部２０２は、その受信異常のデータを無効情報のデータ（ｅｒｒｏｒ）に置き換える。更に、位置制御情報ＢのブロックＵｎｉｔ１−Ｂｌｏｃｋ１、Ｕｎｉｔ２−Ｂｌｏｃｋ０は、無効情報のデータを含むブロックであるＥｒｒｏｒ  Ｂｌｏｃｋになる。
【００５２】
その後、制御部２０２は、通信制御部２０６、通信Ｉ／Ｆ２１０及びネットワーク４００を介して、ドライバユニット２００ｂに向けて無効情報変換処理後の位置制御情報Ｂを送信する。
【００５３】
時刻６．８２（μｓ）よりも後において、ドライバユニット２００ｂ内の制御部２０２は、ドライバユニット２００ａ、ネットワーク４００、通信Ｉ／Ｆ２０８、通信制御部２０６を介して、ドライバユニット２００ａからの位置制御情報Ａを受信する。更に、制御部２０２は、無効情報置換処理を行う。具体的な処理は、上述と同様である。
【００５４】
例えば、図７においては、位置制御情報Ａのドライバユニット２００ｂ宛てのブロックのうち、ブロックＵｎｉｔ２−Ｂｌｏｃｋ１、Ｕｎｉｔ２−Ｂｌｏｃｋ３内の全てのデータは正常に受信されている。このため、制御部２０２は、位置制御情報ＡのブロックＵｎｉｔ２−Ｂｌｏｃｋ１、Ｕｎｉｔ２−Ｂｌｏｃｋ３内のデータを応答データに置き換える。更に、位置制御情報ＡのブロックＵｎｉｔ２−Ｂｌｏｃｋ１、Ｕｎｉｔ２−Ｂｌｏｃｋ３は正常受信ブロックになる。一方、位置制御情報ＡのブロックＵｎｉｔ２−Ｂｌｏｃｋ０内のデータに受信異常が生じているため、制御部２０２は、その受信異常のデータを無効情報のデータ（ｅｒｒｏｒ）に置き換える。更に、位置制御情報ＡのブロックＵｎｉｔ２−Ｂｌｏｃｋ０は、無効情報のデータを含むブロックであるＥｒｒｏｒ  Ｂｌｏｃｋになる。
【００５５】
その後、制御部２０２は、通信制御部２０６及び通信Ｉ／Ｆ２１０、ドライバユニット２００ａ、ネットワーク４００を介して、メインコントローラ１００に向けて無効情報変換処理後の位置制御情報Ａを送信する。
【００５６】
位置制御情報Ａの受信に連続して、時刻１０．２３（μｓ）よりも後において、ドライバユニット２００ｂ内の制御部２０２は、ドライバユニット２００ａ、ネットワーク４００、通信Ｉ／Ｆ２０８、通信制御部２０６を介して、ドライバユニット２００ａからの位置制御情報Ｂを受信する。更に、制御部２０２は、位置制御情報Ａの受信時と同様に位置制御情報Ｂについても無効情報置換処理を行う。具体的な処理は上述と同様である。
【００５７】
例えば、図７においては、位置制御情報Ｂのドライバユニット２００ｂ宛てのブロックのうち、ブロックＵｎｉｔ２−Ｂｌｏｃｋ３内の全てのデータは正常に受信されている。このため、制御部２０２は、位置制御情報ＢのブロックＵｎｉｔ２−Ｂｌｏｃｋ３内のデータを応答データに置き換える。更に、位置制御情報ＢのブロックＵｎｉｔ２−Ｂｌｏｃｋ３は正常受信ブロックになる。一方、位置制御情報ＢのブロックＵｎｉｔ２−Ｂｌｏｃｋ１、Ｕｎｉｔ２−Ｂｌｏｃｋ２内のデータに受信異常が生じているため、制御部２０２は、その受信異常のデータを無効情報のデータ（ｅｒｒｏｒ）に置き換える。更に、位置制御情報ＢのブロックＵｎｉｔ２−Ｂｌｏｃｋ１、Ｕｎｉｔ２−Ｂｌｏｃｋ２は、無効情報のデータを含むブロックであるＥｒｒｏｒ  Ｂｌｏｃｋになる。
【００５８】
その後、制御部２０２は、通信制御部２０６及び通信Ｉ／Ｆ２１０、ドライバユニット２００ａ、ネットワーク４００を介して、メインコントローラ１００に向けて無効情報変換処理後の位置制御情報Ｂを送信する。
【００５９】
時刻１０．２３（μｓ）よりも後において、メインコントローラ１００内の制御部１０２は、ドライバユニット２００ａ、ネットワーク４００、通信Ｉ／Ｆ１０８、通信制御部１０６を介して、ドライバユニット２００ｂからの位置制御情報Ａを受信する。
【００６０】
更に、制御部２０２は、再送処理を行う。具体的には、制御部１０２は、受信した位置制御情報Ａ内にＥｒｒｏｒ  Ｂｌｏｃｋが含まれているか否かを判定する。Ｅｒｒｏｒ  Ｂｌｏｃｋが含まれていない場合には、再送処理は行われない。一方、Ｅｒｒｏｒ  Ｂｌｏｃｋが含まれている場合、制御部１０２は、Ｅｒｒｏｒ  Ｂｌｏｃｋの箇所に対応する、ドライバユニット２００ａ宛てやドライバユニット２００ｂ宛ての位置制御情報であるデータのみを含んだ再送位置制御情報を生成する。
【００６１】
例えば、図７においては、位置制御情報Ａ内のＥｒｒｏｒ  Ｂｌｏｃｋの箇所に対応するブロック、換言すれば、内部のデータの受信異常の結果、Ｅｒｒｏｒ  Ｂｌｏｃｋに置き換えられたブロックは、Ｕｎｉｔ１−Ｂｌｏｃｋ３、Ｕｎｉｔ２−Ｂｌｏｃｋ０、Ｕｎｉｔ２−Ｂｌｏｃｋ２である。このため、制御部１０２は、ブロックＵｎｉｔ１−Ｂｌｏｃｋ３、Ｕｎｉｔ２−Ｂｌｏｃｋ０、Ｕｎｉｔ２−Ｂｌｏｃｋ２を含んだ再送位置制御情報を生成する。その後、時刻１３．６４（μｓ）において、制御部１０２は、通信制御部１０６及び通信Ｉ／Ｆ１１０、ネットワーク４００を介して、ドライバユニット２００ａに向けて再送位置制御情報を複数回連続して送信する。再送位置制御情報の送信に要する時間は、位置制御情報の送信に要する時間である３．４１（μｓ）以下である。再送位置制御情報は、位置制御情報と同様にドライバユニット２００ａ及びドライバユニット２００ｂへ転送され、受信される。
【００６２】
位置制御情報Ａの受信に連続して、時刻１３．６４（μｓ）よりも後において、メインコントローラ１００内の制御部１０２は、ドライバユニット２００ａ、ネットワーク４００、通信Ｉ／Ｆ１１０、通信制御部１０６を介して、ドライバユニット２００ｂからの位置制御情報Ｂを受信する。更に、制御部２０２は、再送処理を行う。具体的には、制御部１０２は、受信した位置制御情報Ｂ内にＥｒｒｏｒ  Ｂｌｏｃｋが含まれているか否かを判定する。Ｅｒｒｏｒ  Ｂｌｏｃｋが含まれていない場合には、再送処理は行われない。一方、Ｅｒｒｏｒ  Ｂｌｏｃｋが含まれている場合、制御部１０２は、当該Ｅｒｒｏｒ  Ｂｌｏｃｋの箇所が過去に受信した位置制御情報ＡにおいてもＥｒｒｏｒ  Ｂｌｏｃｋとなっているか否かを判定する。
【００６３】
位置制御情報ＢにおけるＥｒｒｏｒ  Ｂｌｏｃｋの箇所が過去に受信した位置制御情報ＡにおいてはＥｒｒｏｒ  Ｂｌｏｃｋとなっていない場合には、既にドライバユニット２００ａやドライバユニット２００ｂは、当該Ｅｒｒｏｒ  Ｂｌｏｃｋの箇所に対応する、ドライバユニット２００ａ宛てやドライバユニット２００ｂ宛ての位置制御情報のブロックを正常に受信していることを意味する。このため、制御部１０２は、位置制御情報ＢにおけるＥｒｒｏｒ  Ｂｌｏｃｋの箇所が過去に受信した位置制御情報ＡにおいてはＥｒｒｏｒ  Ｂｌｏｃｋとなっていない場合には、当該Ｅｒｒｏｒ  Ｂｌｏｃｋの箇所に対応する、ドライバユニット２００ａ宛てやドライバユニット２００ｂ宛ての位置制御情報のブロックを再送対象から除外する。
【００６４】
一方、位置制御情報ＢにおけるＥｒｒｏｒ  Ｂｌｏｃｋの箇所が過去に受信した位置制御情報ＡにおいてもＥｒｒｏｒ  Ｂｌｏｃｋとなっている場合には、未だにドライバユニット２００ａやドライバユニット２００ｂは、当該Ｅｒｒｏｒ  Ｂｌｏｃｋの箇所に対応する、ドライバユニット２００ａ宛てやドライバユニット２００ｂ宛ての位置制御情報であるブロックを正常に受信していないことを意味する。このため、制御部１０２は、位置制御情報ＢにおけるＥｒｒｏｒ  Ｂｌｏｃｋの箇所が過去に受信した位置制御情報ＡにおいてもＥｒｒｏｒ  Ｂｌｏｃｋとなっている場合には、当該Ｅｒｒｏｒ  Ｂｌｏｃｋの箇所に対応する、ドライバユニット２００ａ宛てやドライバユニット２００ｂ宛ての位置制御情報であるブロックを再送対象として新たな再送位置制御情報を生成する。
【００６５】
例えば、図７においては、位置制御情報Ｂ内のＥｒｒｏｒ  Ｂｌｏｃｋの箇所に対応するブロック、換言すれば、内部のデータの受信異常の結果、Ｅｒｒｏｒ  Ｂｌｏｃｋに置き換えられたブロックは、ブロックＵｎｉｔ１−Ｂｌｏｃｋ１、Ｕｎｉｔ２−Ｂｌｏｃｋ０、Ｕｎｉｔ２−Ｂｌｏｃｋ１、Ｕｎｉｔ２−Ｂｌｏｃｋ２である。これらのうち、ブロックＵｎｉｔ１−Ｂｌｏｃｋ１、Ｕｎｉｔ２−Ｂｌｏｃｋ１については、過去に受信した位置制御情報ＡにおいてＥｒｒｏｒ  Ｂｌｏｃｋに置き換えられていない。すなわち、既にドライバユニット２００ａやドライバユニット２００ｂは、ブロックＵｎｉｔ１−Ｂｌｏｃｋ１、Ｕｎｉｔ２−Ｂｌｏｃｋ１を正常に受信している。一方、ブロックＵｎｉｔ２−Ｂｌｏｃｋ０、Ｕｎｉｔ２−Ｂｌｏｃｋ２については、過去に受信した位置制御情報ＡにおいてもＥｒｒｏｒ  Ｂｌｏｃｋに置き換えられている。すなわち、未だにドライバユニット２００ａやドライバユニット２００ｂは、ブロックＵｎｉｔ２−Ｂｌｏｃｋ０、Ｕｎｉｔ２−Ｂｌｏｃｋ２を正常に受信していない。このため、制御部１０２は、ブロックＵｎｉｔ１−Ｂｌｏｃｋ１、Ｕｎｉｔ２−Ｂｌｏｃｋ１を再送対象から除外して、ブロックＵｎｉｔ２−Ｂｌｏｃｋ０、Ｕｎｉｔ２−Ｂｌｏｃｋ２のみを含んだ新たな再送位置制御情報を生成する。
【００６６】
その後、制御部１０２は、それまでの複数回連続して送信していた再送位置制御情報の送信を停止し、通信制御部１０６及び通信Ｉ／Ｆ１１０、ネットワーク４００を介して、ドライバユニット２００ａに向けて新たな再送位置制御情報を複数回連続して送信する。新たな再送位置制御情報は、再送位置制御情報と同様にドライバユニット２００ａ及びドライバユニット２００ｂへ転送され、受信される。
【００６７】
上述した位置制御情報の送信及び受信、ドライバユニット２００ａ、２００ｂにおける無効情報置換処理、メインコントローラ１００における再送処理は、位置制御の周期である１０００（μｓ）の期間において繰り返し行われる。
【００６８】
（第２の実施形態）
図８は、第２の実施形態に係るモータ制御システムの概略構成を示す図である。図８に示す通信システムとしてのモータ制御システム２は、モータ３００を制御するものである。モータ制御システム２は、マスタ装置としてのメインコントローラ１００と、スレーブ装置としてのドライバユニット２００ａ及びドライバユニット２００ｂと、ハブ５００と、ネットワーク６００、６０１、６０２とを含んで構成される。なお、第１の実施形態と同様の構成には同一の符号が付されている。
【００６９】
メインコントローラ１００は、ネットワーク６００を介してハブ５００に接続される。ドライバユニット２００ａは、ネットワーク６０１を介してハブ５００に接続される。ドライバユニット２００ｂは、ネットワーク６０２を介してハブ５００に接続される。ネットワーク６００は、メインコントローラ１００を中心として当該メインコントローラ１００にドライバユニット２００ａ及びドライバユニット２００ｂが接続されるスター構成のネットワークトポロジを有する通信路である。第２の本実施形態では、ネットワーク６００がスター構成のネットワークトポロジを有することにより、メインコントローラ１００が送信する情報は、ネットワーク６００、ハブ５００、ネットワーク６０１を介して、ドライバユニット２００ａへ伝送され、ネットワーク６００、ハブ５００、ネットワーク６０２を介して、ドライバユニット２００ａへ伝送される。また、ドライバユニット２００ａが送信する情報は、ネットワーク６０１、ハブ５００、ネットワーク６００を介して、メインコントローラ１００へ伝送され、ドライバユニット２００ｂが送信する情報は、ネットワーク６０２、ハブ５００、ネットワーク６００を介して、メインコントローラ１００へ伝送される。
【００７０】
第１の実施形態と同様、第２の実施形態において、メインコントローラ１００は、ロボット内の可動部の位置を制御する位置制御を行うことができ、当該ロボットの可動部を駆動するモータ３００ａ１〜３００ｂ４を制御するための制御情報として位置制御情報を送信する。ドライバユニット２００ａ及び２００ｂは、位置制御情報を受信して、当該位置制御情報に基づいてモータ３００ａ１〜３００ｂ４を制御する。また、ドライバユニット２００ａ及び２００ｂは、位置制御情報の受信に対する応答として、当該位置制御情報をロボットの可動部の位置を示す位置データに置き換えてメインコントローラ１００へ返信する。また、ドライバユニット２００ａ及び２００ｂは、位置制御情報が正常に受信することができなかった場合には、受信異常が生じている位置制御情報を、受信異常が生じている旨を示す無効情報に置き換えてメインコントローラ１００へ返信する。メインコントローラ１００は、無効情報が返信された場合には、当該無効情報に対応する位置制御情報の再送を行う。具体的な処理は後述する。
【００７１】
メインコントローラ１００は、位置制御において、ネットワーク６００、ハブ５００、ネットワーク６０１、６０２を介して、ドライバユニット２００ａ及びドライバユニット２００ｂに対して、モータ３００ａ１〜３００ｂ４を制御するための制御情報として、ロボット内の可動部の位置を制御する位置制御情報を送信する。
【００７２】
ドライバユニット２００ａは、メインコントローラ１００からの位置制御情報を受信する。ドライバユニット２００ａは、受信した位置制御情報のうち、ドライバユニット２００ａ宛てのモータ３００ａ１〜３００ａ４を制御するための制御情報に受信異常がない場合には、当該モータ３００ａ１〜３００ａ４を制御するための制御情報を取り込んで、モータ３００ａ１〜３００ａ４を制御する。また、ドライバユニット２００ａは、メインコントローラ１００へ位置制御情報を送り返す。この際、受信異常が発生した場合には、ドライバユニット２００ａは、後述する無効情報置換処理を行ってから位置制御情報をメインコントローラ１００へ送信する。
【００７３】
同様に、ドライバユニット２００ｂは、メインコントローラ１００からの位置制御情報を受信する。ドライバユニット２００ｂは、受信した位置制御情報のうち、ドライバユニット２００ｂ宛てのモータ３００ｂ１〜３００ｂ４を制御するための制御情報に受信異常がない場合には、当該モータ３００ｂ１〜３００ｂ４を制御するための制御情報を取り込んで、モータ３００ｂ１〜３００ｂ４を制御する。また、ドライバユニット２００ｂは、メインコントローラ１００へ位置制御情報を送り返す。この際、受信異常が発生した場合には、ドライバユニット２００ｂは、後述する無効情報置換処理を行ってから位置制御情報をメインコントローラ１００へ送信する。
【００７４】
メインコントローラ１００は、ドライバユニット２００ａ及びドライバユニット２００ｂからの位置制御情報を受信すると、当該位置制御情報の内容に基づいて、受信正常の判定を行い、受信正常以外のデータがある場合には、後述する位置制御情報の再送処理を行う。
【００７５】
第２の実施形態において、メインコントローラ１００、ドライバユニット２００ａ及びドライバユニット２００ｂは、図２、３に示す第１の実施形態における詳細構成と同様である。但し、メインコントローラ１００内の通信Ｉ／Ｆ１０８、１１０は、ネットワーク６００を介してハブ５００に接続される。また、ドライバユニット２００ａ内の通信Ｉ／Ｆ２０８、２１０は、ネットワーク６０１を介してハブ５００に接続され、ドライバユニット２００ｂ内の通信Ｉ／Ｆ２０８、２１０は、ネットワーク６０２を介してハブ５００に接続される。
【００７６】
また、第２の実施形態では、第１の実施形態と同様、メインコントローラ１００、ドライバユニット２００ａ、ドライバユニット２００ｂの相互の通信では、送信側がパラレルのデータをシリアルのデータに変換してネットワーク４００へ出力し、受信側が入力されたシリアルのデータをパラレルのデータに戻す。
【００７７】
図９は、第２の実施形態における位置制御情報の構成の一例を示す図である。図９（Ａ）に示すように、位置制御情報は、複数のブロックにより構成され、新しい転送期間の始まりを示すＳＴＲＴと、ドライバユニット２００ａ宛ての制御情報である４つのブロックＵｎｉｔ１−Ｂｌｏｃｋ０、Ｕｎｉｔ１−Ｂｌｏｃｋ１、Ｕｎｉｔ１−Ｂｌｏｃｋ２及びＵｎｉｔ１−Ｂｌｏｃｋ３と、ドライバユニット２００ｂ宛ての制御情報である４つのブロックＵｎｉｔ２−Ｂｌｏｃｋ０、Ｕｎｉｔ２−Ｂｌｏｃｋ１、Ｕｎｉｔ２−Ｂｌｏｃｋ２及びＵｎｉｔ２−Ｂｌｏｃｋ３とにより構成される。
【００７８】
ドライバユニット２００ａ宛ての位置制御情報である４つのブロックＵｎｉｔ１−Ｂｌｏｃｋ０、Ｕｎｉｔ１−Ｂｌｏｃｋ１、Ｕｎｉｔ１−Ｂｌｏｃｋ２及びＵｎｉｔ１−Ｂｌｏｃｋ３は、ブロックＵｎｉｔ１−Ｂｌｏｃｋ０がモータ３００ａ１の位置制御情報、ブロックＵｎｉｔ１−Ｂｌｏｃｋ１がモータ３００ａ２の位置制御情報、ブロックＵｎｉｔ１−Ｂｌｏｃｋ２がモータ３００ａ３の位置制御情報、ブロックＵｎｉｔ１−Ｂｌｏｃｋ３がモータ３００ａ４の位置制御情報である。また、ドライバユニット２００ｂ宛ての制御情報である４つのブロックＵｎｉｔ２−Ｂｌｏｃｋ０、Ｕｎｉｔ２−Ｂｌｏｃｋ１、Ｕｎｉｔ２−Ｂｌｏｃｋ２及びＵｎｉｔ２−Ｂｌｏｃｋ３は、ブロックＵｎｉｔ２−Ｂｌｏｃｋ０がモータ３００ｂ１の位置制御情報、ブロックＵｎｉｔ２−Ｂｌｏｃｋ１がモータ３００ｂ２の位置制御情報、ブロックＵｎｉｔ２−Ｂｌｏｃｋ２がモータ３００ｂ３の制御情報、ブロックＵｎｉｔ２−Ｂｌｏｃｋ３がモータ３００ｂ４の制御情報である。
【００７９】
各ブロックは、更に複数のデータにより構成される。具体的には、図９（Ｂ）に示すように、ブロックは、宛先を含むヘッダ（header）のデータと、位置制御情報の複数のデータ１〜ｎと、デリミター（delimiter）のデータ０、１と、ＳＹＮＣとにより構成される。
【００８０】
次に、図１０〜図１２を参照しつつ、ロボット内の可動部の位置を制御する位置制御の詳細について説明する。図１０〜１２は、第２の実施形態におけるメインコントローラ１００、ドライバユニット２００ａ、ドライバユニット２００ｂにおける時間経過に伴う位置制御情報の送信及び受信の状況を示す。図１０〜１２において、図面の下に向けて時間経過を示す。また、図１０〜１２において示される期間は、位置制御の周期である１０００（μｓ）の期間よりも十分短い時間である。
【００８１】
図１０及び図１１に示すように、まず、メインコントローラ１００内の制御部１０２は、通信制御部１０６及び通信Ｉ／Ｆ１１０、ネットワーク６００を介して、ハブ５００に向けて、位置制御情報Ｐを送信する。ハブ５００は、受信した位置制御情報Ｐを、ネットワーク６０１を介してドライバユニット２００ａに向けて送信するとともに、ネットワーク６０２を介してドライバユニット２００ｂに向けて送信する。
【００８２】
位置制御情報Ｐの送信に続いて、メインコントローラ１００内の制御部１０２は、通信制御部２０６及び通信Ｉ／Ｆ１１０を介して、ハブ５００に向けて、再送１回目の位置制御情報Ｓ１を送信する。ハブ５００は、受信した位置制御情報Ｓ１を、ネットワーク６０１を介してドライバユニット２００ａに向けて送信するとともに、ネットワーク６０２を介してドライバユニット２００ｂに向けて送信する。位置制御情報Ｓは位置制御情報Ａと同一内容であり、送信に要する時間も同一である。
【００８３】
図１０に示すように、ドライバユニット２００ａ内の制御部２０２は、ネットワーク６０１、通信Ｉ／Ｆ２０８、通信制御部２０６を介して、メインコントローラ１００からの位置制御情報Ｐを受信する。更に、制御部２０２は、位置制御情報Ｐについて、無効情報置換処理を行う。具体的には、位置制御情報Ｐの各ブロック内のデータ毎にチェックサム等を用いて誤り検出（受信異常の検出）を行う。また、制御部１０２は、位置制御情報Ｐの各ブロック内のデータ毎に、当該データに含まれるパリティを用いて誤り検出を行ったり、位置制御情報Ｐのブロック毎に当該ブロックに付加されているデリミター内のＣＲＣを用いて誤り検出を行うこともできる。
【００８４】
検出の結果、位置制御情報Ｐのうち、ドライバユニット２００ａ宛ての各ブロックについて、データが正常に受信された場合には、制御部２０２は、正常に受信されたデータを、ロボットの可動部の位置を示す位置データ等を含む応答データに置き換える。例えば、１のブロック内のデータ１〜ｎが全て正常に受信された場合には、応答データ１〜ｎに置き換えられる。このとき、例えば、制御部１０２は、位置制御情報のブロックのヘッダ（header）に設けられているＡＣＫのビットを１に設定する。これにより、ブロック内のデータ１〜ｎが全て正常に受信されたことを示す。また、位置制御情報Ｐのうち、ドライバユニット２００ａ宛ての１のブロック内の全てのデータが正常に受信された場合には、そのデータに基づいてモータ３００ａ１等の制御が行われる。具体的には、モータ３００ａ１の位置制御情報である１のブロック内の全てのデータが正常に受信された場合には、制御部２０２内のモータ制御部２１２ａは、当該データに基づいて、モータ３００ａ１を制御し、モータ３００ａ２の位置制御情報である１のブロック内の全てのデータが正常に受信された場合には、モータ制御部２１２ｂは、当該データに基づいて、モータ３００ａ２を制御し、モータ３００ａ３の位置制御情報である１のブロック内の全てのデータが正常に受信された場合には、モータ制御部２１２ｃは、当該データに基づいて、モータ３００ａ３を制御し、モータ３００ａ４の位置制御情報である１のブロック内の全てのデータが正常に受信された場合には、モータ制御部２１２ｄは、当該データに基づいて、モータ３００ａ４を制御する。
【００８５】
一方、検出の結果、位置制御情報Ｐの各ブロック内のデータの何れかに受信異常が生じている場合には、制御部２０２は、受信異常が生じているデータを、予め定められた受信異常が生じている旨を示す無効情報のデータ（ｅｒｒｏｒ）に置き換える。１のブロック内のデータにおける、受信異常が生じているデータ以降のデータについては、受信異常の検出や置き換えは行われてもよいし、行われなくてもよい。例えば、ブロックＵｎｉｔ１−Ｂｌｏｃｋ３内のデータ１は正常に受信されているが、データ２に受信異常が生じている場合には、データ１は応答データ１に置き換えられ、データ２は、無効情報のデータ（ｅｒｒｏｒ）に置き換えられる。データ３以降については受信異常の検出や置き換えは行われてもよいし、行われなくてもよい。
【００８６】
また、例えば、図１０においては、位置制御情報Ｐのドライバユニット２００ａ宛てのブロックのうち、ブロックＵｎｉｔ１−Ｂｌｏｃｋ０、Ｕｎｉｔ１−Ｂｌｏｃｋ１、Ｕｎｉｔ１−Ｂｌｏｃｋ２内の全てのデータは正常に受信されている。このため、制御部２０２は、正常受信されたブロックＵｎｉｔ１−Ｂｌｏｃｋ０、Ｕｎｉｔ１−Ｂｌｏｃｋ１、Ｕｎｉｔ１−Ｂｌｏｃｋ２内の全てのデータを応答データに置き換える。これにより、位置制御情報ＰのブロックＵｎｉｔ１−Ｂｌｏｃｋ０、Ｕｎｉｔ１−Ｂｌｏｃｋ１、Ｕｎｉｔ１−Ｂｌｏｃｋ２は正常に受信していることを示すブロック（正常受信ブロック）になる。図１０〜図１２では、正常受信ブロックは、斜線で示されている。一方、位置制御情報ＰのブロックＵｎｉｔ１−Ｂｌｏｃｋ３内の位置制御情報のデータに受信異常が生じているため、制御部２０２は、その受信異常のデータを無効情報のデータ（ｅｒｒｏｒ）に置き換える。これにより、位置制御情報ＡのブロックＵｎｉｔ１−Ｂｌｏｃｋ３は、無効情報のデータを含むブロックであるＥｒｒｏｒ  Ｂｌｏｃｋになる。また、ブロックＵｎｉｔ２−Ｂｌｏｃｋ０〜Ｕｎｉｔ２−Ｂｌｏｃｋ３については、Ｕｎｉｔ２−Ｂｌｏｃｋ２内の位置制御情報のデータに受信異常が生じているため、制御部２０２は、その受信異常のデータを無効情報のデータ（ｅｒｒｏｒ）に置き換える。
【００８７】
その後、制御部２０２は、通信制御部２０６、通信Ｉ／Ｆ２１０、ネットワーク６０１、ハブ５００及びネットワーク６００を介して、メインコントローラ１００に向けて無効情報変換処理後の位置制御情報ＰＡを送信する。位置制御情報ＰＡは、Ｕｎｉｔ１−Ｂｌｏｃｋ０、Ｕｎｉｔ１−Ｂｌｏｃｋ１、Ｕｎｉｔ１−Ｂｌｏｃｋ２、Ｕｎｉｔ１−Ｂｌｏｃｋ３を置き換えたデータ、及び、Ｕｎｉｔ２のデータからなる。
【００８８】
位置制御情報Ｐの受信に続いて、ドライバユニット２００ａ内の制御部２０２は、ネットワーク６０１、通信Ｉ／Ｆ２０８、通信制御部２０６を介して、メインコントローラ１００からの再送１回目の位置制御情報Ｓ１を受信する。更に、制御部２０２は、再送１回目の位置制御情報Ｓ１を取り込み、上述と同様に位置制御情報Ｓ１についても無効情報置換処理を行う。具体的な処理は上述と同様である。
【００８９】
例えば、図１０においては、位置制御情報Ｓ１のドライバユニット２００ａ宛てのブロックのうち、ブロックＵｎｉｔ１−Ｂｌｏｃｋ０、Ｕｎｉｔ１−Ｂｌｏｃｋ２、Ｕｎｉｔ１−Ｂｌｏｃｋ３内の全てのデータは正常に受信されている。このため、制御部２０２は、正常受信されたブロックＵｎｉｔ１−Ｂｌｏｃｋ０、Ｕｎｉｔ１−Ｂｌｏｃｋ２、Ｕｎｉｔ１−Ｂｌｏｃｋ３内のデータを応答データに置き換える。これにより、位置制御情報ＢのブロックＵｎｉｔ１−Ｂｌｏｃｋ０、Ｕｎｉｔ１−Ｂｌｏｃｋ２、Ｕｎｉｔ１−Ｂｌｏｃｋ３は正常受信ブロックになる。一方、位置制御情報ＢのブロックＵｎｉｔ１−Ｂｌｏｃｋ１内のデータに受信異常が生じているため、制御部２０２は、その受信異常のデータを無効情報のデータ（ｅｒｒｏｒ）に置き換える。これにより、位置制御情報ＢのブロックＵｎｉｔ１−Ｂｌｏｃｋ１は、無効情報のデータを含むブロックであるＥｒｒｏｒ  Ｂｌｏｃｋになる。また、ブロックＵｎｉｔ２−Ｂｌｏｃｋ０〜Ｕｎｉｔ２−Ｂｌｏｃｋ３については、Ｕｎｉｔ２−Ｂｌｏｃｋ０内の位置制御情報のデータに受信異常が生じているため、制御部２０２は、その受信異常のデータを無効情報のデータ（ｅｒｒｏｒ）に置き換える。
【００９０】
その後、制御部２０２は、通信制御部２０６、通信Ｉ／Ｆ２１０、ネットワーク６０１、ハブ５００及びネットワーク６００を介して、メインコントローラ１００に向けて無効情報変換処理後の位置制御情報ＳＡ１送信する。位置制御情報ＳＡ１は、ドライバユニット２００ａ宛ての位置制御情報であるブロックＵｎｉｔ１−Ｂｌｏｃｋ０、Ｕｎｉｔ１−Ｂｌｏｃｋ１、Ｕｎｉｔ１−Ｂｌｏｃｋ２、Ｕｎｉｔ１−Ｂｌｏｃｋ３を置き換えたデータ、及び、Ｕｎｉｔ２のデータからなる。
【００９１】
ドライバユニット２００ｂ内の制御部２０２においても、ドライバユニット２００ａ内の制御部２０２と同様の処理が行われる。すなわち、図１１に示すように、ドライバユニット２００ｂ内の制御部２０２は、ネットワーク６０２、通信Ｉ／Ｆ２０８、通信制御部２０６を介して、メインコントローラ１００からの位置制御情報Ｐを受信する。更に、制御部２０２は、位置制御情報Ｐについて、無効情報置換処理を行う。具体的には、制御部２０２は、位置制御情報Ｐの各ブロック内のデータ毎にチェックサム等を用いて誤り検出（受信異常の検出）を行う。また、制御部１０２は、位置制御情報Ｐの各ブロック内のデータ毎に、当該データに含まれるパリティを用いて誤り検出を行ったり、位置制御情報Ｐのブロック毎に当該ブロックに付加されているデリミター内のＣＲＣを用いて誤り検出を行うこともできる。
【００９２】
検出の結果、位置制御情報Ｐのうち、ドライバユニット２００ｂ宛ての各ブロックについて、データが正常に受信された場合には、制御部２０２は、正常に受信されたデータを、ロボットの可動部の位置を示す位置データ等を含む応答データに置き換える。また、位置制御情報Ｐのうち、ドライバユニット２００ｂ宛ての１のブロック内の全てのデータが正常に受信された場合には、当該データに基づいてモータ３００ｂ１等の制御が行われる。
【００９３】
一方、検出の結果、位置制御情報Ｐの各ブロック内のデータの何れかに受信異常が生じている場合には、制御部２０２は、受信異常が生じているデータを、予め定められた受信異常が生じている旨を示す無効情報のデータ（ｅｒｒｏｒ）に置き換える。１のブロック内のデータにおける、受信異常が生じているデータ以降のデータについては、受信異常の検出や置き換えは行われてもよいし、行われなくてもよい。
【００９４】
また、例えば、図１１においては、位置制御情報Ｐのドライバユニット２００ｂ宛てのブロックのうち、ブロックＵｎｉｔ２−Ｂｌｏｃｋ０、Ｕｎｉｔ２−Ｂｌｏｃｋ２、Ｕｎｉｔ２−Ｂｌｏｃｋ３内の全てのデータは正常に受信されている。このため、制御部２０２は、正常受信されたブロックＵｎｉｔ２−Ｂｌｏｃｋ０、Ｕｎｉｔ２−Ｂｌｏｃｋ２、Ｕｎｉｔ２−Ｂｌｏｃｋ３内の全てのデータを応答データに置き換える。これにより、位置制御情報ＰのブロックＵｎｉｔ２−Ｂｌｏｃｋ０、Ｕｎｉｔ２−Ｂｌｏｃｋ２、Ｕｎｉｔ２−Ｂｌｏｃｋ３は正常に受信していることを示すブロック（正常受信ブロック）になる。一方、位置制御情報ＰのブロックＵｎｉｔ２−Ｂｌｏｃｋ１内の位置制御情報のデータに受信異常が生じているため、制御部２０２は、その受信異常のデータを無効情報のデータ（ｅｒｒｏｒ）に置き換える。これにより、位置制御情報ＰのブロックＵｎｉｔ２−Ｂｌｏｃｋ１は、無効情報のデータを含むブロックであるＥｒｒｏｒ  Ｂｌｏｃｋになる。また、ブロックＵｎｉｔ１−Ｂｌｏｃｋ０〜Ｕｎｉｔ１−Ｂｌｏｃｋ３については、Ｕｎｉｔ１−Ｂｌｏｃｋ２内の位置制御情報のデータに受信異常が生じているため、制御部２０２は、その受信異常のデータを無効情報のデータ（ｅｒｒｏｒ）に置き換える。
【００９５】
その後、制御部２０２は、通信制御部２０６、通信Ｉ／Ｆ２１０、ネットワーク６０２、ハブ５００及びネットワーク６００を介して、メインコントローラ１００に向けて無効情報変換処理後の位置制御情報ＰＢを送信する。位置制御情報ＰＢは、ドライバユニット２００ｂ宛ての位置制御情報であるブロックＵｎｉｔ２−Ｂｌｏｃｋ０、Ｕｎｉｔ２−Ｂｌｏｃｋ１、Ｕｎｉｔ２−Ｂｌｏｃｋ２、Ｕｎｉｔ２−Ｂｌｏｃｋ３を置き換えたデータ、及び、Ｕｎｉｔ１のデータからなる。
【００９６】
位置制御情報Ｐの受信に続いて、ドライバユニット２００ｂ内の制御部２０２は、ネットワーク６０２、通信Ｉ／Ｆ２０８、通信制御部２０６を介して、メインコントローラ１００からの再送１回目の位置制御情報Ｓ１を受信する。更に、制御部２０２は、再送１回目の位置制御情報Ｓ１を取り込み、上述と同様に位置制御情報Ｓ１についても無効情報置換処理を行う。具体的な処理は上述と同様である。
【００９７】
例えば、図１１においては、位置制御情報Ｓ１のドライバユニット２００ｂ宛てのブロックのうち、ブロックＵｎｉｔ２−Ｂｌｏｃｋ０、Ｕｎｉｔ２−Ｂｌｏｃｋ１、Ｕｎｉｔ２−Ｂｌｏｃ２内の全てのデータは正常に受信されている。このため、制御部２０２は、正常受信されたブロックＵｎｉｔ２−Ｂｌｏｃｋ０、Ｕｎｉｔ２−Ｂｌｏｃｋ１、Ｕｎｉｔ２−Ｂｌｏｃｋ２内のデータを応答データに置き換える。これにより、位置制御情報Ｓ１のブロックＵｎｉｔ２−Ｂｌｏｃｋ０、Ｕｎｉｔ２−Ｂｌｏｃｋ１、Ｕｎｉｔ１−Ｂｌｏｃｋ２は正常受信ブロックになる。一方、位置制御情報Ｓ１のブロックＵｎｉｔ２−Ｂｌｏｃｋ３内のデータに受信異常が生じているため、制御部２０２は、その受信異常のデータを無効情報のデータ（ｅｒｒｏｒ）に置き換える。これにより、位置制御情報Ｓ１のブロックＵｎｉｔ２−Ｂｌｏｃｋ３は、無効情報のデータを含むブロックであるＥｒｒｏｒ  Ｂｌｏｃｋになる。また、ブロックＵｎｉｔ１−Ｂｌｏｃｋ０〜Ｕｎｉｔ１−Ｂｌｏｃｋ３については、Ｕｎｉｔ１−Ｂｌｏｃｋ１内の位置制御情報のデータに受信異常が生じているため、制御部２０２は、その受信異常のデータを無効情報のデータ（ｅｒｒｏｒ）に置き換える。
【００９８】
その後、制御部２０２は、通信制御部２０６、通信Ｉ／Ｆ２１０、ネットワーク６０２、ハブ５００及びネットワーク６００を介して、メインコントローラ１００に向けて無効情報変換処理後の位置制御情報ＳＢ１を送信する。位置制御情報ＳＢ１は、ドライバユニット２００ｂ宛ての位置制御情報であるブロックＵｎｉｔ２−Ｂｌｏｃｋ０、Ｕｎｉｔ２−Ｂｌｏｃｋ１、Ｕｎｉｔ２−Ｂｌｏｃｋ２、Ｕｎｉｔ２−Ｂｌｏｃｋ３を置き換えたデータ、及び、Ｕｎｉｔ１のデータからなる。
【００９９】
ハブ５００は、ドライバユニット２００ａからの位置制御情報を受信した場合、Ｕｎｉｔ１のブロックのみを抽出してメインコントローラ１００へ転送する。また、ハブ５００は、ドライバユニット２００ｂからの位置制御情報を受信した場合、Ｕｎｉｔ２のブロックのみを抽出してメインコントローラ１００へ転送する。そして、図１２に示すように、メインコントローラ１００内の制御部１０２は、ドライバユニット２００ａが送信した位置制御情報ＰＡのうち、Ｕｎｉｔ１のブロックからなる位置制御情報ＰＡＡを受信し、ドライバユニット２００ｂが送信した位置制御情報ＰＢのうち、Ｕｎｉｔ２のブロックからなる位置制御情報ＰＢＢを受信する。
【０１００】
更に、制御部１０２は、再送処理を行う。具体的には、まず、制御部１０２は、位置制御情報ＰＡＡ及び位置制御情報ＰＢＢが正常受信されているか否かを判定する。ここで、正常受信とはＥｒｒｏｒ  Ｂｌｏｃｋを含まない位置制御情報を受信することを意味する。正常受信された場合には、再送処理は行われない。一方、位置制御情報ＰＡＡ及び位置制御情報ＰＢＢが受信されていない場合には、制御部１０２は、結果的に位置制御情報Ｓ１と同一のデータを再送用の位置制御情報として送信する。また、受信された位置制御情報ＰＡＡ及び位置制御情報ＰＢＢにＥｒｒｏｒ  Ｂｌｏｃｋが含まれている場合、制御部１０２は、Ｅｒｒｏｒ  Ｂｌｏｃｋの箇所に対応する位置制御情報であるデータのみを含んだ再送用の位置制御情報を生成する。
【０１０１】
例えば、図１２においては、位置制御情報ＰＡＡ及び位置制御情報ＰＢＢ内のＥｒｒｏｒ  Ｂｌｏｃｋの箇所に対応するブロック、換言すれば、内部のデータの受信異常の結果、Ｅｒｒｏｒ  Ｂｌｏｃｋに置き換えられたブロックは、Ｕｎｉｔ１−Ｂｌｏｃｋ３、Ｕｎｉｔ２−Ｂｌｏｃｋ１である。このため、制御部１０２は、ブロックＵｎｉｔ１−Ｂｌｏｃｋ３、Ｕｎｉｔ２−Ｂｌｏｃｋ１を含んだ再送２回目の位置制御情報Ｓ２を生成する。その後、制御部１０２は、再送１回目の位置制御情報Ｓ１に続いて、ハブ５００に向けて再送２回目の位置制御情報Ｓ２を送信する。なお、図１２における再送１回目の位置制御情報Ｓ１と、図１０及び図１１における再送１回目の位置制御情報Ｓ１は、同一である。ハブ５００は、位置制御情報Ｓ２を、ドライバユニット２００ａ及びドライバユニット２００ｂへ転送する。ドライバユニット２００ａ及びドライバユニット２００ｂは、位置制御情報Ｓ２を受信する（図１０、図１１では省略）。更に、制御部１０２は、次の再送処理が開始されるまで、再送２回目の位置制御情報Ｓ２と同一の位置制御情報の送信を繰り返す。図１２では、再送３回目の位置制御情報Ｓ３及び再送４回目の位置制御情報Ｓ４は、再送２回目の位置制御情報Ｓ２と同一である。
【０１０２】
続いて、メインコントローラ１００内の制御部１０２は、ハブ５００から位置制御情報ＳＡ１Ａを受信する。位置制御情報ＳＡ１Ａは、位置制御情報Ｓ１を受信したドライバユニット２００ａが無効情報置換処理を行って送信した位置制御情報のうち、Ｕｎｉｔ１のブロックのみからなるデータである。
【０１０３】
更に、制御部１０２は、再送処理を行う。具体的には、まず、制御部１０２は、位置制御情報ＳＡ１Ａが正常受信されているか否かを判定する。正常受信された場合には、再送処理は行われない。一方、位置制御情報ＳＡ１Ａが受信されていない場合には、制御部１０２は、位置制御情報Ｓ２と同一のデータを再送用の位置制御情報として送信する。また、受信された位置制御情報ＳＡ１ＡにＥｒｒｏｒ  Ｂｌｏｃｋが含まれている場合、制御部１０２は、Ｅｒｒｏｒ  Ｂｌｏｃｋの箇所に対応する位置制御情報であるブロックのうち、それまでに送信した再送用の位置制御情報内のＵｎｉｔ１のブロックと重複するか否かを判定する。重複しない場合には、制御部１０２は、それまでに送信した再送用の位置制御情報のうち、Ｕｎｉｔ１のブロックを除外した新たな再送用の位置制御情報を生成する。一方、重複する場合には、制御部１０２は、それまでに送信した再送用の位置制御情報の再送を繰り返す。例えば、図１２においては、位置制御情報ＳＡ１Ａ内のＥｒｒｏｒ  Ｂｌｏｃｋの箇所に対応するブロックは、Ｕｎｉｔ１−Ｂｌｏｃｋ１であり、それまでに送信した再送用の位置制御情報Ｓ２〜Ｓ４内のＵｎｉｔ１−Ｂｌｏｃｋ３とは重複しない。このため、制御部１０２は、それまで送信した位置制御情報Ｓ２〜Ｓ４からＵｎｉｔ１−Ｂｌｏｃｋ３を除外し、Ｕｎｉｔ２−Ｂｌｏｃｋ１のみを含んだ再送５回目の位置制御情報Ｓ５を生成する。そして、制御部１０２は、再送４回目の位置制御情報Ｓ４に続いて、ハブ５００に向けて再送５回目の位置制御情報Ｓ５を送信する。ハブ５００は、位置制御情報Ｓ５を、ドライバユニット２００ａ及びドライバユニット２００ｂへ転送する。ドライバユニット２００ａ及びドライバユニット２００ｂは、位置制御情報Ｓ５を受信する。更に、制御部１０２は、次の再送処理が開始されるまで、再送５回目の位置制御情報Ｓ５と同一の位置制御情報の送信を繰り返す。図１２では、再送６回目の位置制御情報Ｓ６は、再送５回目の位置制御情報Ｓ５と同一である。
【０１０４】
位置制御情報ＳＡ１Ａの受信に続いて、メインコントローラ１００内の制御部１０２は、ハブ５００から位置制御情報ＳＢ１Ｂを受信する。位置制御情報ＳＢ１Ｂは、位置制御情報Ｓ１を受信したドライバユニット２００ｂが無効情報置換処理を行って送信した位置制御情報のうち、Ｕｎｉｔ２のブロックのみからなるデータである。
【０１０５】
更に、制御部１０２は、再送処理を行う。具体的には、まず、制御部１０２は、位置制御情報ＳＢ１Ｂが正常受信されているか否かを判定する。正常受信された場合には、再送処理は行われない。一方、位置制御情報ＳＢ１Ｂが受信されていない場合には、制御部１０２は、位置制御情報Ｓ２と同一のデータを再送用の位置制御情報として送信する。また、受信された位置制御情報ＳＢ１ＢにＥｒｒｏｒ  Ｂｌｏｃｋが含まれている場合、制御部１０２は、Ｅｒｒｏｒ  Ｂｌｏｃｋの箇所に対応する位置制御情報であるブロックのうち、それまでに送信した再送用の位置制御情報内のＵｎｉｔ２のブロックと重複するか否かを判定する。そして、重複しない場合には、制御部１０２は、それまでに送信した再送用の位置制御情報のうち、Ｕｎｉｔ２のブロックを除外した新たな再送用の位置制御情報を生成する。一方、重複する場合には、制御部１０２は、それまでに送信した再送用の位置制御情報の再送を繰り返す。例えば、図１２においては、位置制御情報ＳＢ１Ｂ内のＥｒｒｏｒ  Ｂｌｏｃｋの箇所に対応するブロックは、Ｕｎｉｔ２−Ｂｌｏｃｋ３であり、それまでに送信した再送用の位置制御情報Ｓ２〜Ｓ４内のＵｎｉｔ２−Ｂｌｏｃｋ１とは重複しない。このため、制御部２０２は、それまで送信した位置制御情報Ｓ５〜Ｓ６からＵｎｉｔ２−Ｂｌｏｃｋ１を除外する。これにより、再送用の位置制御情報はなくなり、再送が終了する。すなわち、ドライバユニット２００ａ及びドライバユニット２００ｂが位置制御情報を全て正常に受信したことになる。
【０１０６】
その後も、メインコントローラ１００内の制御部１０２は、ハブ５００から位置制御情報を受信する。図１２においては、位置制御情報ＳＡ２Ａ、ＳＢ２Ｂ、ＳＡ３Ａ、ＳＢ３Ｂ、ＳＡ４Ａ、ＳＢ４Ｂ、ＳＢ５Ｂ、ＳＢ６Ｂが受信される。位置制御情報ＳＡ２Ａは、位置制御情報Ｓ２を受信したドライバユニット２００ａが無効情報置換処理を行って送信した位置制御情報のうち、Ｕｎｉｔ１のブロックのみからなるデータである。位置制御情報ＳＢ２Ｂは、位置制御情報Ｓ２を受信したドライバユニット２００ｂが無効情報置換処理を行って送信した位置制御情報のうち、Ｕｎｉｔ２のブロックのみからなるデータである。位置制御情報ＳＡ３Ａは、位置制御情報Ｓ３を受信したドライバユニット２００ａが無効情報置換処理を行って送信した位置制御情報のうち、Ｕｎｉｔ１のブロックのみからなるデータである。位置制御情報ＳＢ３Ｂは、位置制御情報Ｓ３を受信したドライバユニット２００ｂが無効情報置換処理を行って送信した位置制御情報のうち、Ｕｎｉｔ２のブロックのみからなるデータである。位置制御情報ＳＡ４Ａは、位置制御情報Ｓ４を受信したドライバユニット２００ａが無効情報置換処理を行って送信した位置制御情報のうち、Ｕｎｉｔ１のブロックのみからなるデータである。位置制御情報ＳＢ４Ｂは、位置制御情報Ｓ４を受信したドライバユニット２００ｂが無効情報置換処理を行って送信した位置制御情報のうち、Ｕｎｉｔ２のブロックのみからなるデータである。位置制御情報ＳＢ５Ｂは、位置制御情報Ｓ５を受信したドライバユニット２００ｂが無効情報置換処理を行って送信した位置制御情報のうち、Ｕｎｉｔ２のブロックのみからなるデータである。位置制御情報ＳＢ６Ｂは、位置制御情報Ｓ６を受信したドライバユニット２００ｂが無効情報置換処理を行って送信した位置制御情報のうち、Ｕｎｉｔ２のブロックのみからなるデータである。
【０１０７】
上述したように、第１の実施形態のモータ制御システム１において、メインコントローラ１００は、モータ３００を制御するための位置制御情報を複数回送信する。ドライバユニット２００ａ及びドライバユニット２００ｂは、受信した位置制御情報を構成するブロックに受信異常のデータが含まれる場合には、当該受信異常のデータを無効情報のデータ（ｅｒｒｏｒ）に置き換えて、無効情報のデータを含むブロックをＥｒｒｏｒ  Ｂｌｏｃｋとして、後段に送信する。メインコントローラ１００は、Ｅｒｒｏｒ  Ｂｌｏｃｋを受信した場合には、位置制御情報のうち、当該Ｅｒｒｏｒ  Ｂｌｏｃｋの箇所に対応するブロックを再送対象として再送位置制御情報を送信する。
【０１０８】
また、上述したように、第２の実施形態のモータ制御システム２において、メインコントローラ１００は、モータ３００を制御するための位置制御情報を複数回送信する。ドライバユニット２００ａ及びドライバユニット２００ｂは、受信した位置制御情報を構成するブロックに受信異常のデータが含まれる場合には、当該受信異常のデータを無効情報のデータ（ｅｒｒｏｒ）に置き換えて、無効情報のデータを含むブロックをＥｒｒｏｒ  Ｂｌｏｃｋとして、メインコントローラ１００へ送信する。メインコントローラ１００は、ドライバユニット２００ａ及びドライバユニット２００ｂからの位置制御情報を正常受信できなかった場合、具体的には、位置制御情報を受信することができなかった場合には、それまで送信していた再送用の位置制御情報の送信を繰り返し、受信した位置制御情報にＥｒｒｏｒ  Ｂｌｏｃｋが含まれる場合には、位置制御情報のうち、当該Ｅｒｒｏｒ  Ｂｌｏｃｋの箇所に対応するブロックを再送対象として再送位置制御情報を送信する。
【０１０９】
第１の実施形態におけるモータ制御システム１及び第２の実施形態のモータ制御システム２と、従来のようにメインコントローラが、１のドライバに対して位置制御情報を送信し、当該ドライバからの正常に受信した旨の応答情報を受信した場合に、他の１のドライバに対して位置制御情報を送信するという手順が用いられる場合と比較すると、第１及び第２の実施形態では、メインコントローラ１００は、全てのドライバユニット２００ａ、２００ｂ宛ての位置制御情報を連続して送信するため、全てのドライバユニット２００ａ、２００ｂが位置制御情報を受信するまでに要する時間を短縮し、更に、モータ３００ａ１〜３００ｂ４の制御に要する時間を短縮することができる。
【０１１０】
また、位置制御情報内のドライバユニット２００ａ宛て及びドライバユニット２００ｂ宛ての位置制御情報を構成するブロック内のデータに受信異常が生じた場合には、受信異常が生じたデータを含むブロックのみが再送されるため、再送に要する時間を短縮し、更には、ネットワーク４００の負荷を軽減することができる。
【０１１１】
更には、位置制御情報内のドライバユニット２００ａ宛て及びドライバユニット２００ｂ宛ての位置制御情報を構成するブロック内のデータに受信異常が生じていても、過去に同一内容の位置制御情報の通信において、ドライバユニット２００ａ及びドライバユニット２００ｂが当該データを含むブロックを正常に受信している場合には、当該ブロックについては再送対象から除外される。このため、再送に要する時間を短縮し、更には、ネットワーク４００の負荷を軽減することができる。
【０１１２】
また、位置制御情報の送信及び受信、ドライバユニット２００ａ、２００ｂにおける無効情報置換処理、メインコントローラ１００における再送処理は、位置制御の周期の期間において繰り返し行われるため、ドライバユニット２００ａ及びドライバユニット２００ｂが位置制御情報を正常に受信し、位置制御の周期の期間内にモータ３００ａ１〜３００ｂ４の制御を実行する確実性を向上することができる。
【０１１３】
以上、実施形態について説明したが、本発明は上述の実施形態に限定されるものではない。
【０１１４】
例えば、第１の実施形態において、第２の実施形態と同様、メインコントローラ１００は、ドライバユニット２００ａ及びドライバユニット２００ｂからの位置制御情報を正常受信できなかった場合、具体的には、位置制御情報を受信することができなかった場合には、それまで送信していた再送用の位置制御情報の送信を繰り返し、受信した位置制御情報にＥｒｒｏｒ  Ｂｌｏｃｋが含まれる場合には、位置制御情報のうち、当該Ｅｒｒｏｒ  Ｂｌｏｃｋの箇所に対応するブロックを再送対象として再送位置制御情報を送信するようにしてもよい。
【０１１５】
また、例えば、位置制御のみならず、モータ３００ａ１〜３００ｂ４へ供給される電流の制御（電流制御）が行われてもよい。電流制御の周期は、例えば、１００（μｓ）である。この周期で電流制御が行われる場合であっても、図６及び図７と同様に、制御情報である電流制御情報の送信に要する時間が３．４１（μｓ）であり、時刻１３．６４（μｓ）において、再送の電流制御情報を送信可能であり、更に、再送電流制御情報の送信に要する時間が、電流御情報の送信に要する時間である３．４１（μｓ）以下であれば、電流制御情報の送信及び受信、ドライバユニット２００ａにおける無効情報置換処理、メインコントローラ１００における再送処理は、電流制御の周期の期間において繰り返し行われることが可能であり、モータ制御システム１を位置制御と電流制御とで共用することができる。
【０１１６】
また、上述した実施形態では、モータ制御システム１は、２つのドライバユニット２００ａ、２００ｂを含む構成としたが、ドライバユニット２００の数はこれに限定されない。制御情報の伝送時間やメインコントローラ１００及びドライバユニット２００における処理遅延を考慮して、モータの制御の周期の期間において、複数回の制御情報の送信が可能であり、少なくとも一度の再送処理が行われることが可能な構成であればよい。
【０１１７】
また、ドライバに接続されるモータ３００の数は４つに限定されず、１〜３つでもよいし、５つ以上でもよい。
【０１１８】
また、モータ３００の制御情報は、位置制御情報や電流制御情報に限定されない。更には、メインコントローラ１００とドライバユニット２００との間で伝送される情報は、モータ３００の制御情報以外の情報でもよい。
【０１１９】
また、ネットワーク４００は、図１の構成に限定されず、リング構成のネットワークトポロジを有していればよい。更には、ネットワーク４００は、物理的にリング構成であってもよいし、物理的に二重構成であってもよいし、ネットワークトポロジ上で二重構成であってもよい。また、ネットワーク６００、６０１、６０２は、図８の構成に限定されず、スター構成のネットワークトポロジを有していればよい。更には、ネットワーク６００、６０１、６０２は、物理的にスター構成であってもよいし、物理的に二重構成であってもよいし、ネットワークトポロジ上で二重構成であってもよい。更に、伝送周期の異なる複数種類の情報がメインコントローラ１００とドライバユニット２００との間で伝送されるようにしてもよい。この場合、１の伝送周期の情報伝送と、当該１の伝送周期の倍数となる複数の伝送周期の情報伝送との混在が容易に可能となる。また、２つの伝送周期の最小公倍数が２つの周期と大きくかけ離れなければ混在は可能である。
【０１２０】
また、メインコントローラ１００とドライバユニット２００とは、それぞれ所定の周期到来する伝送タイミングにおいて情報伝送を行うが、伝送タイミングまでに内部の処理が終了せず、伝送すべき情報が準備できない場合がある。このよう場合には、以下のような処理が行われる。
【０１２１】
例えば、メインコントローラ１００において伝送タイミングまでに内部の処理が終了しない場合、当該メインコントローラ１００内の制御部１０２は、伝送タイミングにおいて、正式な情報ではない旨を示す情報として、所定位置のビット（ダミーデータのビット）を１に設定した情報をドライバユニット２００へ送信する。ドライバユニット２００内の制御部２０２は、ダミーデータのビットが１に設定された情報を正常に受信した場合、当該情報を取り込まずに、正常受信したことを示す情報として、情報内の所定位置のビット（ＡＣＫのビット）を１に設定してメインコントローラ１００へ送信する。
【０１２２】
また、例えば、ドライバユニット２００において伝送タイミングまでに内部の処理が終了しない場合、当該ドライバユニット２００内の制御部２０２は、伝送タイミングにおいて、ダミーデータのビットを１に設定した情報をメインコントローラ１００へ送信する。メインコントローラ１００内の制御部１０２は、ダミーデータのビットが１に設定された情報を正常に受信した場合、正式な情報の送信、又は、再送を行う。
【０１２３】
また、ネットワーク４００等に接続されるドライバユニット２００の数やケーブルの長さ、情報のエラーの発生等により、メインコントローラ１００が情報を送信してからドライバユニット２００からの情報を取り込むまでの時間が変化し、メインコントローラ１００が誤動作することが考えられる。ドライバユニット２００の数やケーブルの長さが固定である試験環境において、このようなメインコントローラ１００が情報を送信してからドライバユニット２００からの情報を取り込むまでの時間の変化を再現すべく、メインコントローラ１００内にバッファ（図示しない）を設ける。制御部１０２は、バッファ内に滞留する時間（滞留時間）を、想定するドライバユニット２００の数、ケーブルの長さ等によって変化させる。制御部１０２は、ドライバユニット２００からの情報が受信されてバッファに記憶されてからの時間が設定した滞留時間となったタイミングで、バッファ内の情報を取り込む。これにより、固定された試験環境下においても、様々な状況下でメインコントローラ１００において誤動作が発生するか否かを確認可能とすることができる。
【０１２４】
また、第１の実施形態では、図５に示す位置制御情報の構成としたが、図９に示す構成でもよい。一方、第２の実施形態では、図９に示す位置制御情報の構成としたが、図５に示す構成でもよい。
【０１２５】
また、第１の実施形態では、図６に示すように、メインコントローラ１００が位置制御情報を送信完了した後にドライバユニット２００ａが位置制御情報の受信を開始し、図７に示すように、ドライバユニット２００ａが位置制御情報を送信完了した後にドライバユニット２００ｂが位置制御情報の受信を開始するようにした。しかしながら、送信完了と受信開始のタイミングはドライバユニット２００の数やケーブルの長さ等によって異なるものである。例えば、第１の実施形態において、第２の実施形態の図１０等に示すように、メインコントローラ１００が位置制御情報を送信完了する前に、ドライバユニット２００ａが位置制御情報の受信を開始し、ドライバユニット２００ａが位置制御情報を送信完了する前に、後にドライバユニット２００ｂが位置制御情報の受信を開始するようにしてもよい。
【０１２６】
一方、第２の実施形態では、図１０、図１１に示すように、メインコントローラ１００が位置制御情報を送信完了する前にドライバユニット２００ａ、２００ｂが位置制御情報の受信を開始するようにした。しかし、例えば、第２の実施形態において、第１の実施形態の図６に示すように、メインコントローラ１００が位置制御情報を送信完了した後に、ドライバユニット２００ａ、２００ｂが位置制御情報の受信を開始するようにしてもよい。
【０１２７】
また、上述した実施形態では、マスタ装置としてのメインコントローラ１００とスレーブ装置としてのドライバユニット２００ａ、２００ｂとが固定されているが、メインコントローラ１００とドライバユニット２００との双方の機能を実現可能な複数の装置によって通信システムを構成し、適宜、複数の装置の何れの装置がメインコントローラ１００となり、他の装置がドライバユニット２００になるようにしてもよい。
【０１２８】
更に、メインコントローラ１００は、複数のドライバユニット２００のうち、一部のドライバユニット２００との間で情報の通信や再送時の情報の通信を行うようにしてもよい。
【０１２９】
また、上述した実施形態では、モータ制御システムについて説明したが、これに限定されず、マスタ装置と複数のスレーブ装置とが通信路に接続され、マスタ装置から複数のスレーブ装置へ情報を送信する通信システムの構成であれば、本発明を適用することができる。
【０１３０】
本発明は、本発明の広義の精神と範囲を逸脱することなく、様々な実施形態及び変形が可能とされるものである。上述した実施形態は、本発明を説明するためのものであり、本発明の範囲を限定するものではない。
【符号の説明】
【０１３１】
１、２  モータ制御システム
１００  メインコントローラ
１０２、２０２  制御部
１０４、２０４  メモリ
１０６、２０６  通信制御部
１０８、１１０、２０８、２１０  通信Ｉ／Ｆ
２００ａ、２００ｂ  ドライバユニット
２１２ａ、２１２ｂ、２１２ｃ、２１２ｄ  モータ制御部
３００ａ１、３００ａ２、３００ａ３、３００ａ４、３００ｂ１、３００ｂ２、３００ｂ３、３００ｂ４  モータ
４００、６００、６０１、６０２  ネットワーク
５００  ハブ
【図１】
2017011706.tif 000003
【図２】
2017011706.tif 000004
【図３】
2017011706.tif 000005
【図４】
2017011706.tif 000006
【図５】
2017011706.tif 000007
【図６】
2017011706.tif 000008
【図７】
2017011706.tif 000009
【図８】
2017011706.tif 000010
【図９】
2017011706.tif 000011
【図１０】
2017011706.tif 000012
【図１１】
2017011706.tif 000013
【図１２】
2017011706.tif 000014