(57)【要約】【課題】マスタ装置とスレーブ装置との間で、的確な通信を行う。【解決手段】ＳＬＷの通信において、メインコントローラ１００は、ＧＳＬビットの集合内のＵＳＣに、ＳＬＷの宛先として、特定のドライバユニットのユニット番号、全てのドライバユニットを示すユニット番号１２７、送信すべきデータが存在しない場合に巡回の通信を行う場合のユニット番号０を設定する。一方、ドライバユニット２００ａ、２００ｂにおいては、ＵＳＣに自ユニット番号や１２７が含まれる場合には、ＧＳＬ−非同期シリアルビットの集合がＣＰＵに取り込まれる。【選択図】図１
2018137574.tif 000002
【特許請求の範囲】
【請求項１】
通信路と、
前記通信路に接続されるマスタ装置と、
前記通信路に接続される複数のスレーブ装置と、
を備える通信システムであって、
前記マスタ装置は、
非同期通信用データ部と同期通信用データ部とにより構成され、前記同期通信用データ部に宛先を含んだデータを送信するマスタ送信手段を備え、
前記スレーブ装置は、
前記マスタ装置又は前段のスレーブ装置からのデータを受信するスレーブ受信手段と、
前記スレーブ受信手段により受信されたデータにおける前記同期通信用データ部に含まれる宛先に応じて、前記スレーブ受信手段により受信されたデータにおける前記非同期通信用データ部のデータを取り込むことが可能なデータ取り込み手段と、
前記非同期通信用データ部のデータを設定するデータ設定手段と、
前記非同期通信用データ部に、前記スレーブ受信手段により受信されたデータにおける前記非同期通信用データ部のデータ、又は、前記データ設定手段により設定されたデータを含み、前記同期通信用データ部に、前記スレーブ受信手段により受信されたデータにおける前記同期通信用データ部のデータを含んだデータを後段のスレーブ装置又は前記マスタ装置へ送信するスレーブ送信手段と、
を備え、
前記マスタ装置は、
後段のスレーブ装置からのデータを受信するマスタ受信手段を備えることを特徴とする通信システム。
【請求項２】
前記マスタ装置は、特定のスレーブ装置の識別情報を示す第１の宛先、全てのスレーブ装置を示す第２の宛先、前記スレーブ装置が送信元となる通信を可能とするための第３の宛先を設定可能である宛先設定手段を備えることを特徴とする請求項１に記載の通信システム。
【請求項３】
前記データ取り込み手段は、前記スレーブ受信手段により受信されたデータにおける前記同期通信用データ部に自身の識別情報を示す前記第１の宛先が含まれる場合に、前記スレーブ受信手段により受信されたデータにおける前記非同期通信用データ部のデータを取り込むことを特徴とする請求項２に記載の通信システム。
【請求項４】
前記データ取り込み手段は、前記スレーブ受信手段により受信されたデータにおける前記同期通信用データ部に前記第２の宛先が含まれる場合に、前記スレーブ受信手段により受信されたデータにおける前記非同期通信用データ部のデータを取り込むことを特徴とする請求項２に記載の通信システム。
【請求項５】
前記マスタ送信手段は、前記非同期通信用データ部に前記通信路における前記スレーブ装置の配置を判別可能とする配置情報を含み、前記同期通信用データ部に前記第２の宛先を含んだデータを送信し、
前記データ設定手段は、前記スレーブ受信手段により受信されたデータにおける前記非同期通信用データ部に含まれる前記配置情報に自身の識別情報を付加し、
前記マスタ装置は、前記マスタ受信手段により受信されたデータの前記非同期通信用データ部に含まれる前記配置情報における前記識別情報の順序に応じて、前記スレーブ装置の配置を判別する配置判別手段を備えることを特徴とする請求項４に記載の通信システム。
【請求項６】
前記マスタ送信手段は、情報の最後を示す終端情報を前記配置情報として含んだデータを送信し、
前記データ設定手段は、前記終端情報の直前に自身の識別情報を付加することを特徴とする請求項５に記載の通信システム。
【請求項７】
前記データ設定手段は、前記スレーブ受信手段により受信されたデータにおける前記同期通信用データ部に前記第３の宛先が含まれる場合に、前記非同期通信用データ部に送信すべきデータを設定することを特徴とする請求項２に記載の通信システム。
【請求項８】
前記スレーブ送信手段は、前記スレーブ受信手段により受信されたデータにおける前記同期通信用データ部に、自身の識別情報を示す前記第１の宛先、前記第２の宛先、及び、前記第３の宛先以外の宛先が含まれる場合に、前記スレーブ受信手段により受信されたデータを後段のスレーブ装置又は前記マスタ装置へ送信する請求項２に記載の通信システム。
【請求項９】
通信路と、
前記通信路に接続されるマスタ装置と、
前記通信路に接続される複数のスレーブ装置と、
を備える通信システムにおける通信方法であって、
前記マスタ装置が、非同期通信用データ部と同期通信用データ部とにより構成され、前記同期通信用データ部に宛先を含んだデータを送信するマスタ送信ステップと、
前記スレーブ装置が、前記マスタ装置又は前段のスレーブ装置からのデータを受信するスレーブ受信ステップと、
前記スレーブ装置が、前記スレーブ受信ステップにおいて受信されたデータにおける前記同期通信用データ部に含まれる宛先に応じて、前記スレーブ受信ステップにおいて受信されたデータにおける前記非同期通信用データ部のデータを取り込むことが可能なデータ取り込みステップと、
前記スレーブ装置が、前記非同期通信用データ部のデータを設定するデータ設定ステップと、
前記スレーブ装置が、前記非同期通信用データ部に、前記スレーブ受信ステップにおいて受信されたデータにおける前記非同期通信用データ部のデータ、又は、前記データ設定ステップにおいて設定されたデータを含み、前記同期通信用データ部に、前記スレーブ受信ステップにおいて受信されたデータにおける前記同期通信用データ部のデータを含んだデータを後段のスレーブ装置又は前記マスタ装置へ送信するスレーブ送信ステップと、
前記マスタ装置が、後段のスレーブ装置からのデータを受信するマスタ受信ステップと、
を含むことを特徴とする通信方法。
【請求項１０】
通信路と、
前記通信路に接続されるマスタ装置と、
前記通信路に接続される複数のスレーブ装置と、
を備える通信システムとしてのコンピュータを、
前記マスタ装置において、非同期通信用データ部と同期通信用データ部とにより構成され、前記同期通信用データ部に宛先を含んだデータを送信するマスタ送信手段、
前記スレーブ装置において、前記マスタ装置又は前段のスレーブ装置からのデータを受信するスレーブ受信手段、
前記スレーブ装置において、前記スレーブ受信手段により受信されたデータにおける前記同期通信用データ部に含まれる宛先に応じて、前記スレーブ受信手段により受信されたデータにおける前記非同期通信用データ部のデータを取り込むことが可能なデータ取り込み手段、
前記スレーブ装置において、前記非同期通信用データ部のデータを設定するデータ設定手段、
前記スレーブ装置において、前記非同期通信用データ部に、前記スレーブ受信手段により受信されたデータにおける前記非同期通信用データ部のデータ、又は、前記データ設定手段により設定されたデータを含み、前記同期通信用データ部に、前記スレーブ受信手段により受信されたデータにおける前記同期通信用データ部のデータを含んだデータを後段のスレーブ装置又は前記マスタ装置へ送信するスレーブ送信手段、
前記マスタ装置において、後段のスレーブ装置からのデータを受信するマスタ受信手段、
として機能させることを特徴とする通信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信システム、通信方法及び通信プログラムに関する。
【背景技術】
【０００２】
ネットワークを介した複数の機械等の制御システムにおいては、マスタ装置がネットワークに接続された複数のスレーブ装置に対して、制御に必要な各種データを送信する（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】国際公開第２０１５／１３３１７５号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述した従来の制御システムでは、マスタ装置とスレーブ装置との間で、的確な通信を行うことができない場合がある。
【０００５】
本発明は、問題点に鑑みてなされたものであり、マスタ装置とスレーブ装置との間で、的確な通信を行うことを目的とする。
【課題を解決するための手段】
【０００６】
目的を達成するために、本発明の第１の観点に係る通信システムは、
通信路と、
前記通信路に接続されるマスタ装置と、
前記通信路に接続される複数のスレーブ装置と、
を備える通信システムであって、
前記マスタ装置は、
非同期通信用データ部と同期通信用データ部とにより構成され、前記同期通信用データ部に宛先を含んだデータを送信するマスタ送信手段を備え、
前記スレーブ装置は、
前記マスタ装置又は前段のスレーブ装置からのデータを受信するスレーブ受信手段と、
前記スレーブ受信手段により受信されたデータにおける前記同期通信用データ部に含まれる宛先に応じて、前記スレーブ受信手段により受信されたデータにおける前記非同期通信用データ部のデータを取り込むことが可能なデータ取り込み手段と、
前記非同期通信用データ部のデータを設定するデータ設定手段と、
前記非同期通信用データ部に、前記スレーブ受信手段により受信されたデータにおける前記非同期通信用データ部のデータ、又は、前記データ設定手段により設定されたデータを含み、前記同期通信用データ部に、前記スレーブ受信手段により受信されたデータにおける前記同期通信用データ部のデータを含んだデータを後段のスレーブ装置又は前記マスタ装置へ送信するスレーブ送信手段と、
を備え、
前記マスタ装置は、
後段のスレーブ装置からのデータを受信するマスタ受信手段を備えることを特徴とする。
【０００７】
前記マスタ装置は、特定のスレーブ装置の識別情報を示す第１の宛先、全てのスレーブ装置を示す第２の宛先、前記スレーブ装置が送信元となる通信を可能とするための第３の宛先を設定可能である宛先設定手段を備えるようにしてもよい。
【０００８】
前記データ取り込み手段は、前記スレーブ受信手段により受信されたデータにおける前記同期通信用データ部に自身の識別情報を示す前記第１の宛先が含まれる場合に、前記スレーブ受信手段により受信されたデータにおける前記非同期通信用データ部のデータを取り込むようにしてもよい。
【０００９】
前記データ取り込み手段は、前記スレーブ受信手段により受信されたデータにおける前記同期通信用データ部に前記第２の宛先が含まれる場合に、前記スレーブ受信手段により受信されたデータにおける前記非同期通信用データ部のデータを取り込むようにしてもよい。
【００１０】
前記マスタ送信手段は、前記非同期通信用データ部に前記通信路における前記スレーブ装置の配置を判別可能とする配置情報を含み、前記同期通信用データ部に前記第２の宛先を含んだデータを送信し、
前記データ設定手段は、前記スレーブ受信手段により受信されたデータにおける前記非同期通信用データ部に含まれる前記配置情報に自身の識別情報を付加し、
前記マスタ装置は、前記マスタ受信手段により受信されたデータの前記非同期通信用データ部に含まれる前記配置情報における前記識別情報の順序に応じて、前記スレーブ装置の配置を判別する配置判別手段を備えるようにしてもよい。
【００１１】
前記マスタ送信手段は、情報の最後を示す終端情報を前記配置情報として含んだデータを送信し、
前記データ設定手段は、前記終端情報の直前に自身の識別情報を付加するようにしてもよい。
【００１２】
前記データ設定手段は、前記スレーブ受信手段により受信されたデータにおける前記同期通信用データ部に前記第３の宛先が含まれる場合に、前記非同期通信用データ部に送信すべきデータを設定するようにしてもよい。
【００１３】
前記スレーブ送信手段は、前記スレーブ受信手段により受信されたデータにおける前記同期通信用データ部に、自身の識別情報を示す前記第１の宛先、前記第２の宛先、及び、前記第３の宛先以外の宛先が含まれる場合に、前記スレーブ受信手段により受信されたデータを後段のスレーブ装置又は前記マスタ装置へ送信するようにしてもよい。
【００１４】
目的を達成するために、本発明の第２の観点に係る通信方法は、
通信路と、
前記通信路に接続されるマスタ装置と、
前記通信路に接続される複数のスレーブ装置と、
を備える通信システムにおける通信方法であって、
前記マスタ装置が、非同期通信用データ部と同期通信用データ部とにより構成され、前記同期通信用データ部に宛先を含んだデータを送信するマスタ送信ステップと、
前記スレーブ装置が、前記マスタ装置又は前段のスレーブ装置からのデータを受信するスレーブ受信ステップと、
前記スレーブ装置が、前記スレーブ受信ステップにおいて受信されたデータにおける前記同期通信用データ部に含まれる宛先に応じて、前記スレーブ受信ステップにおいて受信されたデータにおける前記非同期通信用データ部のデータを取り込むことが可能なデータ取り込みステップと、
前記スレーブ装置が、前記非同期通信用データ部のデータを設定するデータ設定ステップと、
前記スレーブ装置が、前記非同期通信用データ部に、前記スレーブ受信ステップにおいて受信されたデータにおける前記非同期通信用データ部のデータ、又は、前記データ設定ステップにおいて設定されたデータを含み、前記同期通信用データ部に、前記スレーブ受信ステップにおいて受信されたデータにおける前記同期通信用データ部のデータを含んだデータを後段のスレーブ装置又は前記マスタ装置へ送信するスレーブ送信ステップと、
前記マスタ装置が、後段のスレーブ装置からのデータを受信するマスタ受信ステップと、
を含むことを特徴とする。
【００１５】
目的を達成するために、本発明の第３の観点に係る通信プログラムは、
通信路と、
前記通信路に接続されるマスタ装置と、
前記通信路に接続される複数のスレーブ装置と、
を備える通信システムとしてのコンピュータを、
前記マスタ装置において、非同期通信用データ部と同期通信用データ部とにより構成され、前記同期通信用データ部に宛先を含んだデータを送信するマスタ送信手段、
前記スレーブ装置において、前記マスタ装置又は前段のスレーブ装置からのデータを受信するスレーブ受信手段、
前記スレーブ装置において、前記スレーブ受信手段により受信されたデータにおける前記同期通信用データ部に含まれる宛先に応じて、前記スレーブ受信手段により受信されたデータにおける前記非同期通信用データ部のデータを取り込むことが可能なデータ取り込み手段、
前記スレーブ装置において、前記非同期通信用データ部のデータを設定するデータ設定手段、
前記スレーブ装置において、前記非同期通信用データ部に、前記スレーブ受信手段により受信されたデータにおける前記非同期通信用データ部のデータ、又は、前記データ設定手段により設定されたデータを含み、前記同期通信用データ部に、前記スレーブ受信手段により受信されたデータにおける前記同期通信用データ部のデータを含んだデータを後段のスレーブ装置又は前記マスタ装置へ送信するスレーブ送信手段、
前記マスタ装置において、後段のスレーブ装置からのデータを受信するマスタ受信手段、
として機能させることを特徴とする。
【発明の効果】
【００１６】
本発明によれば、マスタ装置とスレーブ装置との間で、的確な通信を行うことが可能となる。
【図面の簡単な説明】
【００１７】
【図１】実施形態に係るモータ制御システムの概略構成を示す図である。
【図２】実施形態に係るメインコントローラの詳細構成を示す図である。
【図３】実施形態に係るＳＬＷの構成の一例を示す図である。
【図４】実施形態に係るドライバユニットの詳細構成を示す図である。
【図５】実施形態に係るドライバユニット内の通信制御部の詳細構成を示す図である。
【図６】実施形態に係るシリアルデータの伝送態様の一例を示す図である。
【図７】実施形態に係るＧＳＬ−非同期シリアルビットの構成の第１の例を示す図である。
【図８】実施形態に係るＧＳＬ−非同期シリアルビットの構成の第２の例を示す図である。
【図９】実施形態に係るＧＳＬ−非同期シリアルビットの構成の第３の例を示す図である。
【図１０】実施形態に係るメインコントローラの通信時の動作の第１の例を示すフローチャートである。
【図１１】実施形態に係るメインコントローラの通信時の動作の第２の例を示すフローチャートである。
【図１２】実施形態に係るメインコントローラの通信時の動作の第３の例を示すフローチャートである。
【図１３】実施形態に係るドライバユニットの通信時の動作の一例を示すフローチャートである。
【発明を実施するための形態】
【００１８】
以下、本発明の実施形態について図面を参照しながら詳細に説明する。
【００１９】
図１は、実施形態に係る通信システムとしてのモータ制御システムの概略構成を示す図である。図１に示す通信システムとしてのモータ制御システム１は、ロボットとしてのアクチュエータ等に搭載されるモータ３００ａ１、３００ａ２、３００ａ３、３００ａ４、３００ｂ１、３００ｂ２、３００ｂ３、３００ｂ４（以下、モータ３００ａ１〜３００ｂ４をまとめて適宜「モータ３００」と称する）を制御するものである。モータ制御システム１は、マスタ装置としてのメインコントローラ１００と、スレーブ装置としてのドライバユニット２００ａ及びドライバユニット２００ｂ（以下、ドライバユニット２００ａ及びドライバユニット２００ｂをまとめて適宜「ドライバユニット２００」と称する）と、ネットワーク４００とを含んで構成される。
【００２０】
メインコントローラ１００、ドライバユニット２００ａ及びドライバユニット２００ｂは、ネットワーク４００に接続される。ネットワーク４００は、リング構成のネットワークトポロジを有する通信路である。実施形態では、ネットワーク４００がリング構成のネットワークトポロジを有することにより、メインコントローラ１００が送信する情報は、ネットワーク４００を介してドライバユニット２００ａ及びドライバユニット２００ｂへ順次伝送されて、再びメインコントローラ１００へ戻ることが可能である。
【００２１】
実施形態において、メインコントローラ１００は、ロボット内の可動部の位置を制御する位置制御を行うことができ、当該ロボットの可動部を駆動するモータ３００ａ１〜３００ｂ４を制御するための制御情報として位置制御情報を送信する。ドライバユニット２００ａ及び２００ｂは、位置制御情報を受信して、当該位置制御情報に基づいてモータ３００ａ１〜３００ｂ４を制御する。また、ドライバユニット２００ａ及び２００ｂは、位置制御情報の受信に対する応答として、当該位置制御情報をロボットの可動部の位置を示す位置データに置き換えてメインコントローラ１００へ返信する。メインコントローラ１００は、ドライバユニット２００ａ及び２００ｂからの情報を未受信である場合には、位置制御情報の再送を行う。
【００２２】
図２は、実施形態に係るメインコントローラ１００の詳細構成を示す図である。図２に示すメインコントローラ１００は、制御部１０２、メモリ１０４、通信制御部１０６を含んで構成される。
【００２３】
制御部１０２は、ＣＰＵ（Central Processing Unit）１５２を含んで構成される。制御部１０２は、メモリ１０４に記憶されたプログラムに従ってソフトウェア処理を実行することにより、通信時の各種処理を行うことが可能である。
【００２４】
メモリ１０４は、例えばＲＡＭ（Random Access Memory）やＲＯＭ（Read Only Memory）である。メモリ１０４は、位置制御に用いられる各種情報（プログラム等）を記憶する。
【００２５】
通信制御部１０６は、通信インタフェース（Ｉ／Ｆ）１０８、通信インタフェース（Ｉ／Ｆ）１１０、ＵＳＣ送信レジスタ１５４、ＵＳＣ受信レジスタ１５６、一致判定部１５８及びシリアル／パラレル変換部１６０を含んで構成される。
【００２６】
メインコントローラ１００とドライバユニット２００ａ及び２００ｂとの通信には、ＳＬＷと称される２２ビットのデータが用いられる。図３は、ＳＬＷの構成の一例を示す図である。ＳＬＷは、最上位ビットである非同期通信用データ部である高速シリアル回線（ＧＳＬ：Gigabit Serial Link）−非同期シリアルビットと、下位の２１ビットである同期通信用データ部であるＧＳＬビットとにより構成される。
【００２７】
ＣＰＵ１５２は、ドライバユニット２００ａやドライバユニット２００ｂへ送信すべきデータが存在する場合、宛先であるドライバユニット２００ａやドライバユニット２００ｂの識別情報であるユニット番号をＵＳＣ送信レジスタ１５４へ出力する。また、ＣＰＵ１５２は、全てのドライバユニット、すなわち、ドライバユニット２００ａ及びドライバユニット２００ｂの双方へ送信すべきデータが存在する場合、ユニット番号「１２７」をＵＳＣ送信レジスタ１５４へ出力する。また、ドライバユニット２００ａやドライバユニット２００ｂへ送信すべきデータが存在しない場合、周期的に、巡回の通信を行うべく、ユニット番号「０」をＵＳＣ送信レジスタ１５４へ出力する。ＵＳＣ送信レジスタ１５４は、入力されたユニット番号を通信Ｉ／Ｆ１１０及び一致判定部１５８へ出力する。
【００２８】
また、ＣＰＵ１５２は、コマンド等を含んだパラレルデータをシリアル／パラレル変換部１６０へ出力する。シリアル／パラレル変換部１６０は、入力されたパラレルデータをシリアルデータであるＧＳＬ−非同期シリアルビットの集合に変換して、通信Ｉ／Ｆ１１０へ出力する。
【００２９】
通信Ｉ／Ｆ１１０は、入力されたユニット番号をＧＳＬビットの集合内のＵＳＣと称される箇所に設定する。更に、通信Ｉ／Ｆ１１０は、１ビットのＧＳＬ−非同期シリアルビットと２１ビットのＧＳＬビットとからなるＳＬＷを複数構成し、この複数のＳＬＷを後段のドライバユニット２００ａへ送信する。なお、送信すべきデータが無く待機状態の場合には、ＧＳＬ−非同期シリアルビットは全て１となる。
【００３０】
一方、通信Ｉ／Ｆ１０８は、前段のドライバユニット２００ｂからの複数のＳＬＷを受信する。更に、通信Ｉ／Ｆ１０８は、複数のＳＬＷの内のＧＳＬビットの集合内のＵＳＣに含まれるユニット番号（ＵＳＣユニット番号）をＵＳＣ受信レジスタ１５６へ出力する。また、通信Ｉ／Ｆ１０８は、各ＳＬＷの内のＧＳＬ−非同期シリアルビットの集合をシリアル／パラレル変換部１６０へ出力する。
【００３１】
ＵＳＣ受信レジスタ１５６は、入力されたＵＳＣユニット番号を一致判定部１５８へ出力する。一致判定部１５８は、ＵＳＣ受信レジスタ１５６からのＵＳＣユニット番号と、ＵＳＣ送信レジスタ１５４からのユニット番号とが一致するか否かを判定し、判定結果をＣＰＵ１５２へ出力する。ＣＰＵ１５２は、一致判定部１５８から一致するとの判定結果が入力された場合には、通信Ｉ／Ｆ１１０が送信したＵＳＣを宛先であるドライバユニット２００ａやドライバユニット２００ｂが正常に受信したと判定する。
【００３２】
また、シリアル／パラレル変換部１６０は、通信Ｉ／Ｆ１０８からのＧＳＬ−非同期シリアルビットの集合をパラレルデータに変換してＣＰＵ１５２へ出力する。
【００３３】
図４は、実施形態に係るドライバユニット２００ａの詳細構成を示す図である。図４に示すドライバユニット２００ａは、制御部２０２、メモリ２０４、通信制御部２０６、通信インタフェース（Ｉ／Ｆ）２０８、通信インタフェース（Ｉ／Ｆ）２１０、ロータリースイッチ２１５ａ、２１５ｂを含んで構成される。
【００３４】
制御部２０２は、ＣＰＵを含んで構成される（後述する図５のＣＰＵ２５２）。制御部２０２は、メモリ２０４に記憶されたプログラムに従ってソフトウェア処理を実行することにより、通信時の各種処理を行う。また、制御部２０２は、メモリ２０４に記憶されたプログラムに従ってソフトウェア処理を実行することにより、位置制御情報に基づいて、モータ３００ａ１を制御するドライバであるモータ制御部２１２ａ、モータ３００ａ２を制御するドライバであるモータ制御部２１２ｂ、モータ３００ａ３を制御するドライバであるモータ制御部２１２ｃ、モータ３００ａ４を制御するドライバであるモータ制御部２１２ｄの機能を実現する。
【００３５】
メモリ２０４は、例えばＲＡＭやＲＯＭである。メモリ２０４は、各種情報（プログラム等）を記憶する。通信制御部２０６は、通信Ｉ／Ｆ２０８を介したメインコントローラ１００との通信や、通信Ｉ／Ｆ２１０を介したドライバユニット２００ｂとの通信を行う。
【００３６】
ロータリースイッチ２１５ａ、２１５ｂは、ドライバユニット２００ａの識別情報であるユニット番号を設定するものである。ロータリースイッチ２１５ａ、２１５ｂは、ユーザによって操作される。ロータリースイッチ２１５ａ、２１５ｂは、それぞれ１桁の番号を設定し、それぞれの１桁の番号の組み合わせがドライバユニット２００ａのユニット番号となる。本実施形態では、ドライバユニット２００ａ、２００ｂのユニット番号は１〜９９の何れかの値となる。なお、ユニット番号は、メモリ２０４内に保存されているものを読み出して使用してもよい。
【００３７】
ドライバユニット２００ｂの構成は、図４に示すドライバユニット２００ａの構成と同様である。制御部２０２は、メモリ２０４に記憶されたプログラムに従ってソフトウェア処理を実行することにより、通信時の各種処理を行う。また、制御部２０２は、メモリ２０４に記憶されたプログラムに従ってソフトウェア処理を実行することにより、位置制御情報に基づいて、モータ３００ｂ１を制御するドライバであるモータ制御部２１２ａ、モータ３００ｂ２を制御するドライバであるモータ制御部２１２ｂ、モータ３００ｂ３を制御するドライバであるモータ制御部２１２ｃ、モータ３００ｂ４を制御するドライバであるモータ制御部２１２ｄの機能を実現する。また、通信制御部２０６は、通信Ｉ／Ｆ２０８を介したドライバユニット２００ａとの通信や、通信Ｉ／Ｆ２１０を介したメインコントローラ１００との通信を行う。
【００３８】
図５は、ドライバユニット２００ａ内の通信制御部２０６の詳細構成を示す図である。通信制御部２０６は、ＧＳＬ−ＵＡＲＴレジスタ２５１、ＵＳＣユニット番号受信レジスタ２５４、自ユニット番号レジスタ２５６、判定部２５８、スイッチ２６０、２６２、２６４、２６６、２６８、２７０、ロック回路２７２を含んで構成される。
【００３９】
前段のメインコントローラ１００は、複数のＳＬＷを送信する。複数のＳＬＷにおいて、ＧＳＬビットの集合は、ＣＰＵ２５２に取り込まれることはない、一方、複数のＳＬＷにおいて、ＧＳＬビットの集合は、ＵＳＣユニット番号受信レジスタ２５４に入力される。ＵＳＣユニット番号受信レジスタ２５４は、複数のＳＬＷのＧＳＬビットの集合内のＵＳＣに含まれるＵＳＣユニット番号を記憶する。自ユニット番号レジスタ２５６は、ロータリースイッチ２１５ａ、２１５ｂにより設定された自身のユニット番号（自ユニット番号）を記憶する。判定部２５８は、ＵＳＣユニット番号受信レジスタ２５４に記憶されたＵＳＣユニット番号と自ユニット番号レジスタ２５６に記憶された自ユニット番号とが一致するか否かの判定、ＵＳＣユニット番号受信レジスタ２５４に記憶されたＵＳＣユニット番号が１２７であるか否かの判定、ＵＳＣユニット番号受信レジスタ２５４に記憶されたＵＳＣユニット番号が０であるか否かの判定、及び、ＵＳＣユニット番号受信レジスタ２５４に記憶されたＵＳＣユニット番号が自ユニット番号レジスタ２５６に記憶された自ユニット番号、１２７、０以外（Ｏｔｈｅｒｓ）であるか否かの判定を行う。
【００４０】
ＵＳＣユニット番号受信レジスタ２５４に記憶されたＵＳＣユニット番号と自ユニット番号レジスタ２５６に記憶された自ユニット番号とが一致する場合、前段から送信される複数のＳＬＷのＧＳＬ−非同期シリアルビットの集合は、ドライバユニット２００ａ宛てのデータである。この場合、判定部２５８は、スイッチ２６０、２６６のみをオンに設定する。これにより、前段から送信されるＳＬＷの集合内のＧＳＬ−非同期シリアルビットの集合は、ＧＳＬ−ＵＡＲＴレジスタ２５１に入力される。ＧＳＬ−ＵＡＲＴレジスタ２５１は、ＧＳＬ−非同期シリアルビットの集合をパラレルデータに変換してＣＰＵ２５２へ出力する。また、ＣＰＵ２５２は、ＧＳＬ−非同期シリアルビットの集合に対応するパラレルデータをＧＳＬ−ＵＡＲＴレジスタ２５１へ出力する。ＣＰＵ２５２からＧＳＬ−ＵＡＲＴレジスタ２５１へ入力されたＧＳＬ−非同期シリアルビットの集合は、スイッチ２６６を介して、ＧＳＬビットの集合とともに、複数のＳＬＷとして後段へ送信される。
【００４１】
ＵＳＣユニット番号受信レジスタ２５４に記憶されたＵＳＣユニット番号が１２７である場合も、前段のメインコントローラ１００から送信される複数のＳＬＷのＧＳＬ−非同期シリアルビットの集合は、ドライバユニット２００ａ宛てのデータである。この場合、判定部２５８は、スイッチ２６０、２６６のみをオンに設定する。これにより、前段から送信されるＳＬＷの集合内のＧＳＬ−非同期シリアルビットの集合は、ＧＳＬ−ＵＡＲＴレジスタ２５１に入力される。ＧＳＬ−ＵＡＲＴレジスタ２５１は、ＧＳＬ−非同期シリアルビットの集合をパラレルデータに変換してＣＰＵ２５２へ出力する。また、ＣＰＵ２５２は、ＧＳＬ−非同期シリアルビットの集合に対応するパラレルデータをＧＳＬ−ＵＡＲＴレジスタ２５１へ出力する。ＣＰＵ２５２からＧＳＬ−ＵＡＲＴレジスタ２５１へ入力されたＧＳＬ−非同期シリアルビットの集合は、スイッチ２６６を介して、ＧＳＬビットの集合とともに、複数のＳＬＷとして後段へ送信される。
【００４２】
ＵＳＣユニット番号受信レジスタ２５４に記憶されたＵＳＣユニット番号が自ユニット番号レジスタ２５６に記憶された自ユニット番号、１２７、０以外である場合のメインコントローラ１００から送信される複数のＳＬＷのＧＳＬ−非同期シリアルビットの集合は、ドライバユニット２００ａ以外のドライバユニット宛てのデータである。このため、判定部２５８は、スイッチ２６２のみをオンに設定する。これにより、前段のメインコントローラ１００から送信される複数のＳＬＷのＧＳＬ−非同期シリアルビットの集合は、ＣＰＵ２５２に取り込まれることなく、スイッチ２６２を介して、ＧＳＬビットの集合とともに、複数のＳＬＷとして後段へ送信される。
【００４３】
ＵＳＣユニット番号受信レジスタ２５４に記憶されたＵＳＣユニット番号が０である場合、ドライバユニット２００ａが主体的にデータ（例えば、故障発生、温度異常、冷却ファンの回転数の異常等を通知するためのデータ）を送信できる可能性がある。この場合、判定部２５８は、スイッチ２６４、２７０のみをオンに設定する。これにより、前段のメインコントローラ１００から送信される複数のＳＬＷのＧＳＬ−非同期シリアルビットの集合は、ロック回路２７２及びスイッチ２６８のＡ側へ入力される。前段から送信される複数のＳＬＷのＧＳＬ−非同期シリアルビットの集合は、通常は全てのビットが１であるが、他のドライバユニットが既に主体的にデータを送信している場合には、０のビットを含む。
【００４４】
ＣＰＵ２５２は、主体的にデータを送信する必要がある場合、ドライバユニット２００ａのユニット番号とを含んだパラレルデータをＧＳＬ−ＵＡＲＴレジスタ２５１へ出力する。ＧＳＬ−ＵＡＲＴレジスタ２５１は、入力されたパラレルデータをＧＳＬ−非同期シリアルビットの集合に変換してロック回路２７２及びスイッチ２６８のＢ側へ出力する。ＧＳＬ−非同期シリアルビットの集合には、０のビットが含まれることになる。
【００４５】
ロック回路２７２は、前段から送信される複数のＳＬＷのＧＳＬ−非同期シリアルビットの集合に０のビットが含まれるか否か、及び、ＧＳＬ−ＵＡＲＴレジスタ２５１からのＧＳＬ−非同期シリアルビットの集合に０のビットが含まれるか否かを判定する。
【００４６】
前段から送信される複数のＳＬＷのＧＳＬ−非同期シリアルビットの集合に０のビットが含まれず、ＧＳＬ−ＵＡＲＴレジスタ２５１からのＧＳＬ−非同期シリアルビットの集合に０のビットが含まれる場合、他のドライバユニットが主体的にデータを送信しておらず、ドライバユニット２００ａが主体的にデータを送信することが可能である。この場合、ロック回路２７２は、スイッチ２６８をＢ側に接続する。これにより、ＧＳＬ−ＵＡＲＴレジスタ２５１からのＧＳＬ−非同期シリアルビットの集合は、スイッチ２６８、２７０を介して、ＧＳＬビットの集合とともに、複数のＳＬＷとして後段へ送信される。
【００４７】
前段から送信される複数のＳＬＷのＧＳＬ−非同期シリアルビットの集合に０のビットが含まれ、ＧＳＬ−ＵＡＲＴレジスタ２５１からのＧＳＬ−非同期シリアルビットの集合に０のビットが含まれていない場合には、他のドライバユニットが主体的にデータを送信しており、ドライバユニット２００ａは主体的にデータを送信する必要がない。この場合、ロック回路２７２は、スイッチ２６８をＡ側に接続する。これにより、前段から送信されるＳＬＷの集合内のＧＳＬ−非同期シリアルビットの集合は、スイッチ２６８、２７０を介して、ＧＳＬビットの集合とともに、ＳＬＷの集合として後段へ送信される。
【００４８】
前段から送信される複数のＳＬＷのＧＳＬ−非同期シリアルビットの集合に０のビットが含まれ、ＧＳＬ−ＵＡＲＴレジスタ２５１からのＧＳＬ−非同期シリアルビットの集合に０のビットが含まれる場合には、他のドライバユニットが主体的にデータを送信しており、ドライバユニット２００ａは主体的にデータを送信する必要がある。この場合には、以下の何れかの処理が行われる。
【００４９】
ロック回路２７２は、ＧＳＬ−ＵＡＲＴレジスタ２５１からのＧＳＬ−非同期シリアルビットの集合の方が先に０を含むようになっていた場合には、スイッチ２６８をＢ側に接続する。これにより、ＧＳＬ−ＵＡＲＴレジスタ２５１からのＧＳＬ−非同期シリアルビットの集合は、スイッチ２６８、２７０を介して、ＧＳＬビットの集合とともに、複数のＳＬＷとして後段へ送信される。この状態は、ＵＳＣユニット番号受信レジスタ２５４に記憶されるＵＳＣユニット番号が０でなくなるまで継続されるか、ＧＳＬ−非同期シリアルビットがメインコントローラ１００に受信されるであろう時間よりも長い時間を経過後に解除される。
【００５０】
一方、ロック回路２７２は、前段から送信されるＳＬＷの集合内のＧＳＬ−非同期シリアルビットの集合の方が先に０を含むようになっていた場合には、スイッチ２６８をＡ側に接続する。これにより、前段から送信されるＳＬＷの集合内のＧＳＬ−非同期シリアルビットの集合は、スイッチ２６８、２７０を介して、ＧＳＬビットの集合とともに、複数のＳＬＷとして後段へ送信される。この状態は、ＵＳＣユニット番号受信レジスタ２５４に記憶されるＵＳＣユニット番号が０でなくなるまで継続されるか、ＧＳＬ−非同期シリアルビットがメインコントローラ１００に受信されるであろう時間よりも長い時間を経過後に解除される。
【００５１】
なお、ドライバユニット２００ｂにおいても上述と同様の処理が行われる。複数のドライバユニット２００が主体的にほぼ同時にＧＳＬ−非同期シリアルビットを０にした場合には、必ずしもそのドライバユニット２００自身の要求がコントローラ１００に受け付けられるわけではない。ＵＳＣユニット番号受信レジスタ２５４の値が０から他の値に変わったときに他のユニットの番号であれば自身の要求は失敗したものと見なし、次にＵＳＣユニット番号受信レジスタ２５４の値が０になったときに要求を再発行する。ネットワークの接続形式上、メインコントローラ１００の受信部に近いドライバユニットほど優先順位が高くなる。
【００５２】
メインコントローラ１００、ドライバユニット２００ａ、ドライバユニット２００ｂの相互の通信では、送信側がパラレルのデータを伝送単位であるシリアルのデータに変換してネットワーク４００へ出力し、受信側が入力されたシリアルのデータをパラレルのデータに戻す。例えば、図６に示すメインコントローラ１００内の通信Ｉ／Ｆ１１０とドライバユニット２００ａ内の通信Ｉ／Ｆ２０８との間の通信では、メインコントローラ１００内の通信Ｉ／Ｆ１１０は、パラレルのデータを２２ビットのシリアルのデータに変換してネットワーク４００へ出力する。一方、通信Ｉ／Ｆ２０８は、ネットワーク４００を伝送されたシリアルのデータを入力してパラレルのデータに戻す。
【００５３】
情報の送受信に先立って、モータ制御システム１は、電源投入時等の初期状態において、メインコントローラ１００とドライバユニット２００ａ及び２００ｂとの間で配置情報を送受信し、メインコントローラ１００がネットワーク４００におけるドライバユニット２００ａ及び２００ｂの配置を判別する処理（配置判別処理）を行う。
【００５４】
電源投入時等の初期状態において、メインコントローラ１００内の制御部１０２は、同期用のＳＹＮＣデータを生成し、ドライバユニット２００ａに向けて送信する。ドライバユニット２００ａ内の制御部２０２は、メインコントローラ１００からのＳＹＮＣデータを受信すると、当該ＳＹＮＣデータをドライバユニット２００ｂへ向けて送信する。ドライバユニット２００ｂ内の制御部２０２は、ドライバユニット２００ａからのＳＹＮＣデータを受信すると、当該ＳＹＮＣデータをメインコントローラ１００へ向けて送信する。メインコントローラ１００内の制御部１０２は、ドライバユニット２００ｂからのＳＹＮＣデータを受信した場合、ネットワーク４００に問題がないことを認識する。
【００５５】
次に、制御部１０２は、図７に示すように、複数のＳＬＷのそれぞれの最上位ビット（ＧＳＬ−非同期シリアルビット）の部分に、配置情報の終端を示すデリミター（ｄｅｌｉｍｔｅｒ）のビットを割り当てて、下位の２１ビット（ＧＳＬビット）の部分をＳＹＮＣデータと、宛先が全ての装置であることを示す「１２７」をＵＳＣに含んだデータ（ユニット判別用データ）を生成する。更に、制御部１０２は、ユニット判別用データを送信する。
【００５６】
ドライバユニット２００ａ内の制御部２０２は、通信Ｉ／Ｆ２０８及び通信制御部２０６を介して、ユニット判別用データを受信する。次に、制御部２０２は、ユニット判別用データを構成する複数のＧＳＬ−非同期シリアルビットの集合にデリミターが含まれることを認識する。デリミターであることを認識した場合、制御部２０２は、ロータリースイッチ２１５ａ、２１５ｂの設定に応じた、配置情報としてのドライバユニット２００ａのユニット番号を認識する。なお、ユニット番号の認識は、電源オン後のいつでもよい。
【００５７】
次に、制御部２０２は、ユニット判別用データを構成する複数のＧＳＬ−非同期シリアルビットの集合において、図８に示すように、デリミターより前にドライバユニット２００ａのユニット番号を割り当てる。これにより、ＧＳＬ−非同期シリアルビットにユニット判別用データにドライバユニット２００ａのユニット番号が含まれることになる。
【００５８】
次に、制御部２０２は、ユニット判別用データを、通信制御部２０６、通信Ｉ／Ｆ２１０及びネットワーク４００を介して、ドライバユニット２００ｂへ送信する。
【００５９】
ドライバユニット２００ｂ内の制御部２０２は、通信Ｉ／Ｆ２０８及び通信制御部２０６を介して、ユニット判別用データを受信する。次に、制御部２０２は、ユニット判別用データを構成する複数のＧＳＬ−非同期シリアルビットの集合にデリミターが含まれることを認識する。デリミターであることを認識した場合、制御部２０２は、ロータリースイッチ２１５ａ、２１５ｂの設定に応じた、ドライバユニット２００ｂのユニット番号を認識する。なお、ユニット番号の認識は、電源オン後のいつでもよい。
【００６０】
次に、制御部２０２は、ユニット判別用データを構成する複数のＧＳＬ−非同期シリアルビットの集合において、図９に示すように、デリミターとドライバユニット２００ａのユニット番号との間にドライバユニット２００ｂのユニット番号を割り当てる。これにより、ＧＳＬ−非同期シリアルビットにユニット判別用データにドライバユニット２００ｂのユニット番号が含まれることになる。
【００６１】
次に、制御部２０２は、ユニット判別用データを、通信制御部２０６、通信Ｉ／Ｆ２１０及びネットワーク４００を介して、メインコントローラ１００へ送信する。
【００６２】
メインコントローラ１００内の制御部１０２は、通信Ｉ／Ｆ１０８及び通信制御部１０６を介して、ユニット判別用データを受信する。次に、制御部１０２は、ユニット判別用データを構成する複数のＧＳＬ−非同期シリアルビットの集合にデリミターが含まれることを認識する。デリミターであることを認識した場合、デリミターの前に含まれるドライバユニット２００ａのユニット番号とドライバユニット２００ｂのユニット番号とを抽出する。更に、制御部１０２は、ユニット判別用データにおいて、並び順がドライバユニット２００ａのユニット番号、ドライバユニット２００ｂのユニット番号の順であることにより、ネットワーク４００において、２個のドライバユニットが存在し、前段にドライバユニット２００ａが接続され、後段にドライバユニット２００ｂが接続されていることを認識する。
【００６３】
制御部１０２は、上述した手順において、ネットワーク４００において、前段にドライバユニット２００ａが接続され、後段にドライバユニット２００ｂが接続されていることを認識する。
【００６４】
このようにして、メインコントローラ１００が、前段にドライバユニット２００ａが接続され、後段にドライバユニット２００ｂが接続されていることを認識した後に、メインコントローラ１００とドライバユニット２００ａ及び２００ｂとの間で、通信が行われる。以下、フローチャートを参照しつつ、通信時のメインコントローラ１００、ドライバユニット２００ａ及び２００ｂの動作を説明する。
【００６５】
図１０は、メインコントローラ１００の通信時の動作の第１の例を示すフローチャートである。図１０は、ドライバユニット２００ａやドライバユニット２００ｂへ送信すべきデータが存在せず、周期的に、巡回の通信を行う場合の動作である。この処理は巡回でなく、ＵＡＲＴ受信による割り込みによって開始されてもよい。
【００６６】
まず、ＣＰＵ１５２は、シリアル／パラレル変換部１６０にＧＳＬ−非同期シリアルビットの集合（ＵＡＲＴ受信データ）が存在するか否かを判定する（ステップＳ１０１）。ＵＡＲＴ受信データが存在しない場合には（ステップＳ１０１；ＮＯ）、一連の動作を終了する。一方、ＵＡＲＴ受信データが存在する場合には（ステップＳ１０１；ＹＥＳ）、ＣＰＵ１５２は、ＵＡＲＴ送信データとして読み出す（ステップＳ１０２）。次に、ＣＰＵ１５２は、ＵＳＣ受信レジスタ１５６に記憶されているＵＳＣユニット番号が０であるか否かを判定する（ステップＳ１０３）。ＵＳＣ受信レジスタ１５６に記憶されているＵＳＣユニット番号が０でない場合には（ステップＳ１０３；ＮＯ）、通信回線上の一時的なエラーであると認識し、一連の動作が終了する。一方、ＵＳＣ受信レジスタ１５６に記憶されているＵＳＣユニット番号が０である場合には（ステップＳ１０３；ＹＥＳ）、ＣＰＵ１５２は、ＵＡＲＴ受信データをシリアル／パラレル変換部１６０を介して通信Ｉ／Ｆ１１０へ出力する。通信Ｉ／Ｆ１１０は、入力されたＵＡＲＴ受信データを含んだ複数のＳＬＷを送信する（データ通信）（ステップＳ１０４）。
【００６７】
図１１は、メインコントローラ１００の通信時の動作の第２の例を示すフローチャートである。図１１は、送信すべきデータが存在する場合の動作である。
【００６８】
まず、ＣＰＵ１５２は、シリアル／パラレル変換部１６０にＧＳＬ−非同期シリアルビットの集合（ＵＡＲＴ受信データ）が存在するか否かを判定する（ステップＳ２０１）。ＵＡＲＴ受信データが存在しない場合には（ステップＳ２０１；ＮＯ）、ＣＰＵ１５２は、送るべきＧＳＬ−非同期シリアルビットの集合（ＵＡＲＴ送信データ）を、シリアル／パラレル変換部１６０を介して通信Ｉ／Ｆ１１０へ出力する。通信Ｉ／Ｆ１１０は、入力されたＵＡＲＴ送信データを含んだ複数のＳＬＷを送信する（データ通信）（ステップＳ２０２）。
【００６９】
一方、ＵＡＲＴ受信データが存在する場合には（ステップＳ２０１；ＹＥＳ）、ＣＰＵ１５２は、ＵＡＲＴ送信データとして読み出す（ステップＳ２０３）。次に、ＣＰＵ１５２は、ＵＳＣ受信レジスタ１５６に記憶されているＵＳＣユニット番号が０であるか否かを判定する（ステップＳ２０４）。ＵＳＣ受信レジスタ１５６に記憶されているＵＳＣユニット番号が０でない場合には（ステップＳ２０４；ＮＯ）、ステップＳ２０１以降の動作が繰り返される。一方、ＵＳＣ受信レジスタ１５６に記憶されているＵＳＣユニット番号が０である場合には（ステップＳ２０４；ＹＥＳ）、ＣＰＵ１５２は、ＵＡＲＴ受信データをシリアル／パラレル変換部１６０を介して通信Ｉ／Ｆ１１０へ出力する。通信Ｉ／Ｆ１１０は、入力されたＵＡＲＴ受信データを含んだＳＬＷの集合を送信する（データ通信）（ステップＳ２０５）。その後、ステップＳ２０１以降の動作が繰り返される。
【００７０】
図１２は、メインコントローラ１００の通信時の動作の第３の例を示すフローチャートである。図１２は、ドライバユニット２００ａやドライバユニット２００ｂへ送信すべきデータが存在する場合の動作である。
【００７１】
まず、ＣＰＵ１５２は、ＵＳＣ送信レジスタ１５４内のユニット番号Ａを読み出す（ステップＳ３０１）。次に、ＣＰＵ１５２は、ＵＳＣ受信レジスタ１５６内のＵＳＣユニット番号がユニット番号Ａと一致するか否かを判定する（ステップＳ３０２）。一致しない場合には（ステップＳ３０２；ＮＯ）、ステップＳ３０２の動作が繰り返される。一方、一致する場合には（ステップＳ３０２；ＹＥＳ）、ＣＰＵ１５２は、送るべきＧＳＬ−非同期シリアルビットの集合（ＵＡＲＴ送信データ）を、シリアル／パラレル変換部１６０を介して通信Ｉ／Ｆ１１０へ出力する。通信Ｉ／Ｆ１１０は、入力されたＵＡＲＴ送信データを含んだ複数のＳＬＷを送信する（データ通信）（ステップＳ３０３）。データ通信ステップＳ３０３におけるデータ通信は１つのデータの送信に留まらず、複数のデータをメインコントローラ１００とドライバユニット２００との間で送信、受信することである。一連の通信を終了した後、ＣＰＵ１５２は、ＵＳＣ送信レジスタ１５４内のユニット番号を０に設定する（ステップＳ３０４）。
【００７２】
図１３は、ドライバユニット２００ａ、２００ｂの通信時の動作の一例を示すフローチャートである。まず、判定部２５８は、ＵＳＣユニット番号受信レジスタ２５４に記憶されたＵＳＣユニット番号が０であるか、自ユニット番号又は１２７であるか、これら以外（Ｏｔｈｅｒｓ）であるか否かを判定する（ステップＳ４０１）。
【００７３】
ＵＳＣユニット番号受信レジスタ２５４に記憶されたＵＳＣユニット番号が０である場合（ステップＳ４０１；０）、ロック回路２７２は、前段から送信される複数のＳＬＷのＧＳＬ−非同期シリアルビットの集合に０のビットが含まれるか否かを判定する（ステップＳ４０２）。前段からのＧＳＬ−非同期シリアルビットの集合に０のビットが含まれていない場合（ステップＳ４０２；ＮＯ）、ロック回路２７２は、自身が送るべきデータがあるか否かを判定する（ステップＳ４０３）。ここで、ロック回路２７２は、ＧＳＬ−ＵＡＲＴレジスタ２５１からのＧＳＬ−非同期シリアルビットの集合に０のビットが含まれる場合、自身が送るべきデータがあると判定することができる。
【００７４】
自身が送るべきデータがある場合（ステップＳ４０３；ＹＥＳ）、ＧＳＬ−ＵＡＲＴレジスタ２５１からの自ユニット番号が設定されたＧＳＬ−非同期シリアルビットの集合は、ＧＳＬビットの集合とともに、複数のＳＬＷとして後段へ送信される（ステップＳ４０４）。
【００７５】
次に、判定部２５８は、ＵＳＣユニット番号受信レジスタ２５４に記憶されたＵＳＣユニット番号が０であるか、自ユニット番号であるか、これら以外（Ｏｔｈｅｒｓ）であるか否かを判定する（ステップＳ４０４ａ）。ＵＳＣユニット番号が０である場合には（ステップＳ４０４ａ；０）、ステップＳ４０４ａの動作が繰り返される。一方、ＵＳＣユニット番号が自ユニット番号である場合（ステップＳ４０４ａ；自ユニット番号）、メインコントローラ１００との間でデータ通信が行われる（ステップＳ４０４ｂ）。また、ＵＳＣユニット番号がＯｔｈｅｒｓである場合（ステップＳ４０４ａ；Ｏｔｈｅｒｓ）、判定部２５８は、ＵＳＣユニット番号が０であるか、０以外であるかを判定する（ステップＳ４０４ｃ）。ＵＳＣユニット番号が０以外である場合には（ステップＳ４０４ｃ；≠０）、ステップＳ４０４ｃの動作が繰り返される。一方、ＵＳＣユニット番号が０ある場合（ステップＳ４０４ｃ；０）、ステップＳ４０４以降の動作が繰り返される。
【００７６】
一方、ＵＳＣユニット番号受信レジスタ２５４に記憶されたＵＳＣユニット番号が自ユニット番号又は１２７である場合（ステップＳ４０１；自ユニット番号又は１２７）、ＧＳＬ−ＵＡＲＴレジスタ２５１は、前段からのＧＳＬ−非同期シリアルビットの集合をパラレルデータに変換してＣＰＵ２５２へ出力する。また、ＣＰＵ２５２は、ＧＳＬ−非同期シリアルビットの集合に対応するパラレルデータをＧＳＬ−ＵＡＲＴレジスタ２５１へ出力する。ＣＰＵ２５２からＧＳＬ−ＵＡＲＴレジスタ２５１へ入力されたＧＳＬ−非同期シリアルビットの集合は、ＧＳＬビットの集合とともに、複数のＳＬＷとして後段へ送信される（ステップＳ４０５）。
【００７７】
一方、ＵＳＣユニット番号受信レジスタ２５４に記憶されたＵＳＣユニット番号がＯｔｈｅｒｓである場合（ステップＳ４０１；Ｏｔｈｅｒｓ）、前段からのＧＳＬ−非同期シリアルビットの集合に０のビットが含まれる場合（ステップＳ４０２；ＹＥＳ）、自身が送るべきデータがない場合（ステップＳ４０３；ＮＯ）の何れかである場合には、前段からのＧＳＬ−非同期シリアルビットの集合は、ＣＰＵ２５２に取り込まれることなく、ＧＳＬビットの集合とともに、複数のＳＬＷとして後段へ送信される（ステップＳ４０６）。
【００７８】
上述したモータ制御システム１では、メインコントローラ１００とドライバユニット２００ａ、２００ｂとの間では、非同期通信用データ部であるＧＳＬ−非同期シリアルビットと同期通信用データ部であるＧＳＬビットからなるＳＬＷの通信が行われる。ＳＬＷの通信が行われることにより、メインコントローラ１００とドライバユニット２００ａ、２００ｂとが的確な通信を行うことができる。
【００７９】
具体的には、ＳＬＷの通信において、メインコントローラ１００は、ＧＳＬビットの集合内のＵＳＣに、ＳＬＷの宛先として、特定のドライバユニット２００のユニット番号、全てのドライバユニットを示すユニット番号１２７、送信すべきデータが存在しない場合に巡回の通信を行う場合のユニット番号０を設定する。
【００８０】
一方、ドライバユニット２００ａ、２００ｂにおいては、ＵＳＣに自ユニット番号や１２７が含まれる場合には、ＧＳＬ−非同期シリアルビットの集合がＣＰＵ２５２に取り込まれる。一方、ＵＳＣに自ユニット番号、１２７以外が含まれる場合には、ＧＳＬ−非同期シリアルビットの集合はＣＰＵ２５２に取り込まれない、このため、ＣＰＵ２５２は、不必要なデータを取り込むことがなく、誤動作の抑制を図ることができる。
【００８１】
また、ドライバユニット２００ａ、２００ｂは、ＵＳＣに０が含まれる場合には、主体的に情報を送信することが可能となり、メインコントローラ１００へ故障発生等の予期しない通知を行うことができる。
【００８２】
また、メインコントローラ１００は、デリミターを含むユニット判別用データを送信する。ドライバユニット２００ａは、ユニット判別用データにおいて、デリミターの前に配置情報としてのドライバユニット２００ａのユニット番号を割り当てて、ドライバユニット２００ｂへ送信する。ドライバユニット２００ｂは、ユニット判別用データにおいて、デリミターとドライバユニット２００ａのユニット番号との間に配置情報としてのドライバユニット２００ｂのユニット番号を割り当てて、メインコントローラ１００へ送信する。メインコントローラ１００は、ユニット判別用データ内のドライバユニット２００ａのユニット番号及びドライバユニット２００ｂのユニット番号が含まれることと並び順とにより、ネットワーク４００において、２個のドライバユニットが存在し、前段にドライバユニット２００ａが接続され、後段にドライバユニット２００ｂが接続されていることを認識することができる。
【００８３】
また、配置情報としてのデリミター及びユニット番号は、ＳＬＷの最上位ビットであるＧＳＬ−非同期シリアルビットに設定される。これにより、受信側は、受信したデータの最上位ビットのみを確認するのみでよく、ネットワークとして十分な設定がされてない時点での処理負担を軽減することができる。
【００８４】
以上、実施形態について説明したが、本発明は上述の実施形態に限定されるものではない。
【００８５】
例えば、上述した実施形態においては、ＵＳＣにユニット番号が設定される場合について説明したが、ユニット番号に加えて、モータ３００ａ１〜３００ａ４を制御するポートであるモータ制御部２１２ａ〜２１２ｄの識別情報等であるポート番号が用いられていてもよい。
【００８６】
また、上述した実施形態では、モータ制御システム１は、２個のドライバユニット２００ａ及び２００ｂを含む構成とし、第２の実施形態では、モータ制御システム２は、４個のドライバユニット２００ａ〜２００ｄを含む構成としたが、ドライバユニット２００の数はこれに限定されない。
【００８７】
また、上述した実施形態では、マスタ装置としてのメインコントローラ１００とスレーブ装置としてのドライバユニット２００ａ等とが固定されているが、メインコントローラ１００とドライバユニット２００との双方の機能を実現可能な複数の装置によって通信システムを構成し、適宜、複数の装置の何れの装置がメインコントローラ１００となり、他の装置がドライバユニット２００になるようにしてもよい。
【００８８】
更に、メインコントローラ１００は、複数のドライバユニット２００のうち、一部のドライバユニット２００との間で情報の通信を行うようにしてもよい。
【００８９】
また、上述した実施形態では、モータ制御システムについて説明したが、これに限定されず、マスタ装置と複数のスレーブ装置とが通信路に接続され、マスタ装置から複数のスレーブ装置へ情報を送信する通信システムの構成であれば、本発明を適用することができる。
【００９０】
本発明は、本発明の広義の精神と範囲を逸脱することなく、様々な実施形態及び変形が可能とされるものである。上述した実施形態は、本発明を説明するためのものであり、本発明の範囲を限定するものではない。
【符号の説明】
【００９１】
１、２  モータ制御システム
１００  メインコントローラ
１０２、２０２  制御部
１０４、２０４  メモリ
１０６、２０６  通信制御部
１０８、１１０、２０８、２１０  通信Ｉ／Ｆ
１５２、２５２  ＣＰＵ
１５４  ＵＳＣ送信レジスタ
１５６  ＵＳＣ受信レジスタ
１５８  一致判定部
１６０  シリアル／パラレル変換部
２００ａ、２００ｂ、２００ｃ、２００ｄ  ドライバユニット
２１２ａ、２１２ｂ、２１２ｃ、２１２ｄ  モータ制御部
２１５ａ、２１５ｂ  ロータリースイッチ
２５１  ＧＳＬ−ＵＡＲＴレジスタ
２５４ＵＳＣユニット番号受信レジスタ
２５６  自ユニット番号レジスタ
２５８  判定部
２６０、２６２、２６４、２６６、２６８、２７０  スイッチ
２７２  ロック回路
３００ａ１、３００ａ２、３００ａ３、３００ａ４、３００ｂ１、３００ｂ２、３００ｂ３、３００ｂ４  モータ
４００  ネットワーク
【図１】
2018137574.tif 000003
【図２】
2018137574.tif 000004
【図３】
2018137574.tif 000005
【図４】
2018137574.tif 000006
【図５】
2018137574.tif 000007
【図６】
2018137574.tif 000008
【図７】
2018137574.tif 000009
【図８】
2018137574.tif 000010
【図９】
2018137574.tif 000011
【図１０】
2018137574.tif 000012
【図１１】
2018137574.tif 000013
【図１２】
2018137574.tif 000014
【図１３】
2018137574.tif 000015