(57)【要約】【課題】モータ制御システムにおける物理的又は処理的なコストを軽減する。【解決手段】モータ制御システム（１）の上位通信路（８０）は、モータを制御するモータ制御装置（２０）の上位通信ポート（２４Ａ）と、モータ制御装置（２０）に指示を送る上位コントローラ（１０）と、を接続する。下位通信路（９０）は、モータ制御装置（２０）の下位通信ポート（２４Ｃ）に接続され、モータ（３０）の回転角を検出する回転角検出器（４０）と、回転角とは異なるモータ（３０）又はモータ（３０）に関連する産業機器に関する関連情報を出力するための出力機器（５０，６０，７０）と、を直列で接続する。モータ制御装置（２０）は、下位通信路（９０）を介して取得した回転角と関連情報とに基づいて所定の処理を実行し、当該処理の実行結果を、上位通信路（８０）を介して上位コントローラ（１０）に送信する。【選択図】図１
2020048410.tif 000002
【特許請求の範囲】
【請求項１】
モータを制御するモータ制御装置と、
前記モータ制御装置の通信ポートに接続され、前記モータに関する情報を出力するための複数の機器を直列で接続する通信路と、
を有し、
各機器は、少なくとも１つの他の機器とは異なる周期で、前記情報を送信する情報送信部を有する、
モータ制御システム。
【請求項２】
各機器の前記情報送信部は、他機の前記情報送信部の送信タイミングに基づいて定まる送信タイミングで、前記情報を送信する、
請求項１に記載のモータ制御システム。
【請求項３】
各機器は、少なくとも１つの他の機器とは異なるデータ長の伝送フレームに、前記情報を格納して送信する情報送信部を有する、
請求項１又は２に記載のモータ制御システム。
【請求項４】
各機器は、前記情報を検出するセンサが接続される複数のインタフェースを含み、
前記モータ制御装置は、前記通信ポートから、各機器が情報を出力するインタフェースを識別するための指令を送信する指令送信部を含み、
各機器は、前記通信路を介して受信した前記指令が示すインタフェースに基づいて、自機の応答のデータ長を決定するデータ長決定部を有する、
請求項３に記載のモータ制御システム。
【請求項５】
前記モータ制御装置は、前記複数の機器の全体と通信する場合、前記通信ポートから全体宛ての全体指令を送信する指令送信部を有し、
各機器は、前記全体指令を受信した場合、前記情報を含む応答を送信する応答送信部を有し、
前記指令送信部は、一部の前記機器と通信する場合、前記通信ポートから前記一部の機器宛てに、前記一部の機器の動作を制御する個別指令を送信する、
請求項１〜４の何れかに記載のモータ制御システム。
【請求項６】
前記個別指令は、前記一部の機器の設定情報を更に含み、
各機器は、前記個別指令を受信した場合、前記設定情報をメモリに記録する設定情報記録部を更に有する、
請求項５の何れかに記載のモータ制御システム。
【請求項７】
前記応答送信部は、他機宛ての前記個別指令を受信した場合、前記情報を含む応答を送信する、
請求項５又は６に記載のモータ制御システム。
【請求項８】
前記個別指令は、前記一部の機器の動作を制御するコマンドを含み、
各機器は、自機宛ての前記個別指令を受信した場合、前記コマンドを実行するコマンド実行部を更に有する、
請求項５〜７の何れかに記載のモータ制御システム。
【請求項９】
前記モータ制御システムは、複数の前記モータ制御装置を有し、
前記複数の機器は、各モータ制御装置に対応する機器を含み、
前記通信路は、最上位のモータ制御装置の通信ポートに接続され、下位のモータ制御装置と、前記複数の機器と、を直列で接続し、
各モータ制御装置は、自機に対応する機器から受信した前記情報に基づいて、前記所定の処理を実行する、
請求項１〜８の何れかに記載のモータ制御システム。
【請求項１０】
前記最上位のモータ制御装置は、前記通信ポートから、前記下位のモータ制御装置宛てに、指令の要否に関する問い合わせを送信する指令送信部を有し、
前記下位のモータ制御装置は、前記通信路を介して受信した前記問い合わせに対する回答を送信する回答送信部を有し、
前記指令送信部は、前記通信路を介して受信した回答に基づいて、前記通信ポートから、前記下位のモータ制御装置に対応する機器宛ての指令を代理で送信する、
請求項９に記載のモータ制御システム。
【請求項１１】
モータを制御するモータ制御装置の通信ポートに接続され、前記モータに関する情報を出力するための複数の機器を直列で接続する通信路を介して通信し、
各機器は、少なくとも１つの他の機器とは異なる周期で、前記情報を送信する、
モータ制御システムの通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モータ制御システム及びモータ制御システムの通信方法に関する。
【背景技術】
【０００２】
特許文献１には、複数のセンサがそれぞれ別個の通信路でインタフェース部と接続されており、各センサの検出信号が、上位コントローラとモータ制御装置とを接続するネットワークを介して、上位コントローラやモータ制御装置に送信されるシステムが記載されている。特許文献２には、モータ制御装置内の通信部を介して、モータ制御装置のパラメータを設定したりモニタしたりするための周辺装置を接続するシステムが記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平８−２４１１１１号公報
【特許文献２】特開平１０−１０５２０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明が解決しようとする課題は、モータ制御システムにおける物理的又は処理的なコストを軽減することである。
【課題を解決するための手段】
【０００５】
本発明の一側面に係るモータ制御システムは、モータを制御するモータ制御装置と、前記モータ制御装置の上位通信ポートと、前記モータ制御装置に指示を送る上位コントローラと、を接続する上位通信路と、前記モータ制御装置の下位通信ポートに接続され、前記モータの回転角を検出する回転角検出器と、前記回転角とは異なる前記モータ又は前記モータに関連する産業機器に関する関連情報を出力するための出力機器と、を含む複数の機器を直列で接続する下位通信路と、を有し、前記モータ制御装置は、前記下位通信路を介して受信した前記回転角と前記関連情報とに基づいて所定の処理を実行し、当該処理の実行結果を、前記上位通信路を介して前記上位コントローラに送信する。
【０００６】
また、本発明の一側面に係るモータ制御システムでは、前記モータ制御装置は、第１の通信プロトコルに基づいて、前記上位通信路を介して前記上位コントローラと通信し、前記第１の通信プロトコルとは異なる第２の通信プロトコルに基づいて、前記下位通信路を介して前記回転角検出器及び前記出力機器と通信する。
【０００７】
また、本発明の一側面に係るモータ制御システムでは、前記モータ制御装置は、第１の通信周期に基づいて、前記上位通信路を介して前記上位コントローラと通信し、前記第１の通信周期とは異なる第２の通信周期に基づいて、前記下位通信路を介して前記回転角検出器及び前記出力機器と通信する。
【０００８】
また、本発明の一側面に係るモータ制御システムでは、前記モータ制御装置は、前記複数の機器の全体と通信する場合、前記下位通信ポートから全体宛ての全体指令を送信する指令送信部を有し、各機器は、前記全体指令を受信した場合、前記回転角又は前記関連情報を含む応答を送信する応答送信部を有し、前記指令送信部は、一部の前記機器と通信する場合、前記下位通信ポートから前記一部の機器宛てに、前記一部の機器の動作を制御する個別指令を送信する。
【０００９】
また、本発明の一側面に係るモータ制御システムでは、前記個別指令は、前記一部の機器の設定情報を更に含み、各機器は、前記個別指令を受信した場合、前記設定情報をメモリに記録する設定情報記録部を更に有する。
【００１０】
また、本発明の一側面に係るモータ制御システムでは、前記応答送信部は、他機宛ての前記個別指令を受信した場合、前記回転角又は前記関連情報を含む応答を送信する。
【００１１】
また、本発明の一側面に係るモータ制御システムでは、前記個別指令は、前記一部の機器の動作を制御するコマンドを含み、各機器は、自機宛ての前記個別指令を受信した場合、前記コマンドを実行するコマンド実行部を更に有する。
【００１２】
また、本発明の一側面に係るモータ制御システムでは、前記モータ制御システムは、複数の前記モータ制御装置を有し、前記複数の機器は、各モータ制御装置に対応する前記回転角検出器を含み、前記上位通信路は、最上位のモータ制御装置の上位通信ポートに接続され、前記下位通信路は、前記最上位のモータ制御装置の下位通信ポートに接続され、下位のモータ制御装置と、前記複数の機器と、を直列で接続し、各モータ制御装置は、自機に対応する機器から受信した少なくとも前記回転角に基づいて、前記所定の処理を実行する。
【００１３】
また、本発明の一側面に係るモータ制御システムでは、前記最上位のモータ制御装置は、前記下位通信ポートから、前記下位のモータ制御装置宛てに、指令の要否に関する問い合わせを送信する指令送信部を有し、前記下位のモータ制御装置は、前記下位通信路を介して受信した前記問い合わせに対する回答を送信する回答送信部を有し、前記指令送信部は、前記下位通信路を介して受信した回答に基づいて、前記下位通信ポートから、前記下位のモータ制御装置に対応する機器宛ての指令を代理で送信する。
【００１４】
また、本発明の一側面に係るモータ制御システムでは、各機器は、少なくとも１つの他の機器とは異なる周期で、前記回転角又は前記関連情報を送信する情報送信部を有する。
【００１５】
また、本発明の一側面に係るモータ制御システムでは、各機器の前記情報送信部は、他機の前記情報送信部の送信タイミングに基づいて定まる送信タイミングで、前記回転角又は前記関連情報を送信する。
【００１６】
また、本発明の一側面に係るモータ制御システムでは、各機器は、少なくとも１つの他の機器とは異なるデータ長の伝送フレームに、前記回転角又は前記関連情報を格納して送信する情報送信部を有する。
【００１７】
また、本発明の一側面に係るモータ制御システムでは、各機器は、前記回転角又は前記関連情報を検出するセンサが接続される複数のインタフェースを含み、前記モータ制御装置は、前記下位通信ポートから、各機器が情報を出力するインタフェースを識別するための指令を送信する指令送信部を含み、各機器は、前記下位通信路を介して受信した前記指令が示すインタフェースに基づいて、自機の応答のデータ長を決定するデータ長決定部を有する。
【００１８】
また、本発明の一側面に係るロボットシステムでは、上記の何れかに記載のモータ制御システムと、ロボットと、を含む。
【００１９】
また、本発明の一側面に係るモータ制御システム又はロボットシステムでは、前記モータ制御システムは、複数チャンネルの下位通信路を有し、各チャンネルでは、複数の機器が直列で接続され、定周期通信が行われており、前記モータ制御装置は、各チャンネルの周期を同期させる通信同期部を更に有する。
【００２０】
また、本発明の一側面に係るモータ制御システム又はロボットシステムでは、各機器は、前記モータ制御装置又は自機を識別する識別情報を記憶する識別情報記憶部を含み、前記モータ制御装置は、前記下位通信路を介して受信した各機器の前記識別情報に基づいて、前記モータを制御するかを決定する制御決定部を更に有する。
【００２１】
また、本発明の一側面に係るモータ制御システムでは、前記下位のモータ制御装置は、複数の通信ポートと、前記複数の通信ポートのうち、前記最上位のモータ制御装置が送信した指令を受信した通信ポートを判定する通信ポート判定部と、前記通信ポート判定部の判定結果に基づいて、前記複数の通信ポートのうち、所定の抵抗値又はインピーダンスを有する素子と接続する通信ポートを切り替える切替制御部と、を有する。
【００２２】
また、本発明の一側面に係るモータ制御システムの通信方法では、モータを制御するモータ制御装置の上位通信ポートと、前記モータ制御装置に指示を送る上位コントローラと、を接続する上位通信路を介して通信し、前記モータ制御装置の下位通信ポートに接続され、前記モータの回転角を検出する回転角検出器と、前記回転角とは異なる前記モータ又は前記モータに関連する産業機器に関する関連情報を出力するための出力機器と、を含む複数の機器を直列で接続する下位通信路を介して通信し、前記モータ制御装置は、前記下位通信路を介して受信した前記回転角と前記関連情報とに基づいて所定の処理を実行し、当該処理の実行結果を、前記上位通信路を介して前記上位コントローラに送信する。
【００２３】
また、本発明の一側面に係るモータ制御システムでは、モータを制御するモータ制御装置と、前記モータ制御装置と、前記モータ制御装置に指示を送る上位コントローラと、を接続する上位通信路と、前記モータ制御装置の下位通信ポートに接続され、前記モータの回転角を検出する回転角検出器と、前記回転角とは異なる前記モータ又は前記モータに関連する産業機器に関する関連情報を出力するための出力機器と、を含む複数の機器を直列で接続する下位通信路と、を有し、前記モータ制御装置は、前記下位通信路により取得した前記回転角と前記関連情報とに基づいて、前記上位コントローラに関する負荷を低減する低減手段を有する。
【発明の効果】
【００２４】
上記発明によれば、モータ制御システムにおける物理的又は処理的なコストを軽減することができる。
【図面の簡単な説明】
【００２５】
【図１】実施形態１に係るモータ制御システムの全体構成を示す図である。
【図２】実施形態２のモータ制御システムの全体構成を示す図である。
【図３】マスタ装置で実現される機能を示す機能ブロック図である。
【図４】スレーブ機器で実現される機能を示す機能ブロック図である。
【図５】全体指令のデータフォーマットの一例を示す図である。
【図６】個別指令のデータフォーマットを示す図である。
【図７】１対Ｎ通信及び１対１通信が行われる様子の一例を示す図である。
【図８】応答の伝送フレームの形式を示す図である。
【図９】マスタ装置の処理を示すフローチャートである。
【図１０】スレーブ機器の処理を示すフローチャートである。
【図１１】実施形態３のモータ制御システムの全体構成を示す図である。
【図１２】モニタ装置の機能ブロック図である。
【図１３】Ｍ対Ｎ通信が行われる様子の一例を示す図である。
【図１４】マスタ装置の処理を示すフローチャートである。
【図１５】モニタ装置の処理を示すフローチャートである。
【図１６】ロボットシステムの一例を示す図である。
【図１７】下位通信路におけるデータ交換周期の説明図である。
【図１８】下位通信路におけるデータ交換周期の説明図である。
【図１９】下位通信路におけるデータ交換周期の説明図である。
【図２０】下位通信路におけるデータ交換周期の説明図である。
【図２１】実施形態５のスレーブ機器の物理構成を示す図である。
【図２２】実施形態５におけるスレーブ機器の機能ブロック図である。
【図２３】実施形態５における応答のデータフォーマットを示す図である。
【図２４】実施形態６におけるマスタ装置の機能ブロック図である。
【図２５】実施形態７のスレーブ機器の機能ブロック図である。
【図２６】実施形態７のマスタ装置の機能ブロック図である。
【図２７】実施形態８のモニタ装置の物理構成を示す図である。
【図２８】実施形態８のモニタ装置の機能ブロック図である。
【発明を実施するための形態】
【００２６】
［１．実施形態１］
本発明の発明者の見地によれば、モータ制御システムにおける稼働状況のセンシングは近年ますます重要度を増しているが、センサ数を増やすと、配線数などの物理的なコストや通信量又は処理負荷などの処理的なコストが増加してしまう。特に、リアルタイムでセンシングが行われる場合はこれらのコストが増大する傾向がある。そこで本発明の発明者は、モータ制御システムにおけるこれらのコストを軽減するために鋭意研究開発を行った結果、新規かつ独創的なモータ制御システム等に想到した。以降、本実施形態に係るモータ制御システム等を詳細に説明する。
【００２７】
図１は、実施形態１に係るモータ制御システムの全体構成を示す図である。図１に示すように、モータ制御システム１は、上位コントローラ１０、モータ制御装置２０、モータ３０、エンコーダ４０、トルクセンサ５０、Ｉ／Ｏ機器６０、温度センサ７０、上位通信路８０、及び下位通信路９０を含む。
【００２８】
上位コントローラ１０は、モータ制御システム１全体の動作を制御するコンピュータである。例えば、上位コントローラ１０は、所定のタイミングでモータ制御装置２０に指令を送信したり、モータ制御装置２０からデータを受信したりする。上位コントローラ１０は、プロセッサ１１、メモリ１２、通信制御部１３、及び通信ポート１４Ａ，１４Ｂを含む。
【００２９】
プロセッサ１１は、制御用の集積回路であり、例えば、ＣＰＵやマイクロコントローラ等である。プロセッサ１１は、図示しない作業用ＲＡＭを有するようにしてよい。メモリ１２は、一般的な情報記憶媒体である。メモリ１２は、不揮発性メモリであり、例えば、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、及びハードディスク等である。メモリ１２は、プログラムや各種データを記憶する。
【００３０】
通信制御部１３は、一般的な通信用集積回路である。例えば、通信制御部１３は、ＡＳＩＣ（Application Specific Integrated Circuit）等の専用の集積回路により構成されてよい。通信ポート１４Ａは、インターネットなどの外部ネットワーク用の通信インタフェースであり、通信ポート１４Ｂは、モータ制御装置２０と通信するための通信インタフェースである。
【００３１】
モータ制御装置２０は、モータ３０へ電流・電圧等を出力するアンプを制御するコンピュータである。一般的に、サーボモータを制御するモータ制御装置２０は、サーボコントローラ又はサーボアンプなどと呼ばれるものである。なお、モータ制御装置２０は、モータを制御する機器であればよく、例えば、インバータであってもよい。モータ制御装置２０は、プロセッサ２１、メモリ２２、通信制御部２３、上位通信ポート２４Ａ、電力出力部２４Ｂ、及び下位通信ポート２４Ｃを含む。
【００３２】
プロセッサ２１、メモリ２２、及び通信制御部２３のハードウェア構成は、それぞれプロセッサ１１、メモリ１２、及び通信制御部１３と同様であってよい。上位通信ポート２４Ａは、上位通信路８０用の通信インタフェースである。電力出力部２４Ｂは、電源線３０Ａを介してモータ３０に電力を出力する。下位通信ポート２４Ｃは、下位通信路９０用の通信インタフェースである。
【００３３】
なお、モータ制御装置２０では、プロセッサ２１、メモリ２２、及び通信制御部２３が２重化されていてもよい。２重化される場合、一方を通信制御及びセンサ解析で用いて他方はモータ制御で用いるようにしてもよいし、特に用途を分担しなくてもよい。また、図１では、モータ３０を１つとしているが、複数のモータ３０がモータ制御装置２０に接続され、１台のモータ制御装置２０が複数のモータ３０を制御してもよい。
【００３４】
エンコーダ４０は、モータ３０の回転角を検出する回転角検出器である。エンコーダ４０は、例えば、光学式エンコーダであってもよいし、磁気式エンコーダであってもよい。モータ制御装置２０から印加された電圧又は電流に応じて、モータ３０が回転する。エンコーダ４０は、モータ３０の回転角をモータ制御装置２０に送信する。なお、本実施形態では、回転角検出器としてエンコーダ４０を説明するが、モータ３０の回転角を検出可能なセンサを用いればよく、例えばレゾルバを用いてもよい。
【００３５】
トルクセンサ５０は、モータ３０のトルクを検出するセンサである。トルクセンサ５０は、例えば、非接触式トルクセンサであってもよいし、接触式トルクセンサであってもよい。トルクセンサ５０は、モータ３０のトルクをモータ制御装置２０に送信する。
【００３６】
Ｉ／Ｏ機器６０は、センサなどの他の機器と接続するための汎用的な入出力ユニットである。Ｉ／Ｏ機器６０は、複数の入出力コネクタが備えられている。Ｉ／Ｏ機器６０は、モータ制御システム１において不足している入出力コネクタを増設するために用いられ、例えば、圧力センサやファイバセンサなどの各種センサが接続されているようにしてよい。Ｉ／Ｏ機器６０は、自身に接続されたセンサから入力された情報をモータ制御装置２０に送信する。
【００３７】
温度センサ７０は、モータ３０又はその付近の温度を検出するセンサである。温度センサ７０は、例えば、測温抵抗体式センサが用いられてもよいし、熱電対式センサが用いられてもよい。温度センサ７０は、モータ３０又はその付近の温度をモータ制御装置２０に送信する。
【００３８】
上位通信路８０は、任意の通信規格の通信線であり、例えば、半二重通信路であってもよいし全二重通信路であってもよい。上位通信路８０は、モータ制御装置２０の上位通信ポート２４Ａと、モータ制御装置２０に指示を送る上位コントローラ１０と、を接続する。即ち、上位通信路８０の一端は、上位コントローラ１０の通信ポート１４Ｂに接続され、他端は、モータ制御装置２０の上位通信ポート２４Ａに接続されることになる。なお、上位通信路８０は、その中間にハブなどの中継機器を含んでいてもよい。上位通信路８０は、上位コントローラ１０がモータ制御装置２０に指令を送信したり、モータ制御装置２０がモータ３０の制御結果や各センサの検出結果などを上位コントローラ１０に送信したりするために用いられる。
【００３９】
下位通信路９０は、任意の通信規格の通信線であり、例えば、半二重通信路であってもよいし全二重通信路であってもよい。下位通信路９０は、上位通信路８０と同じ規格の通信線が用いられてもよいし、上位通信路８０とは異なる規格の通信線が用いられてもよい。下位通信路９０は、モータ制御装置２０の下位通信ポート２４Ｃに接続され、モータ３０の回転角を検出するエンコーダ４０と、回転角とは異なるモータ３０又はモータ３０に関連する産業機器に関する関連情報を出力するための出力機器の一例であるトルクセンサ５０、Ｉ／Ｏ機器６０、及び温度センサ７０と、を直列で接続する。なお、モータ３０に付随するエンコーダ４０の他に、モータ３０の回転角を検出するセンサをＩ／Ｏ機器６０に接続してもよい。
【００４０】
モータ３０に関連する産業機器は、例えば、モータ３０に関する物理量を検出するセンサ、又は、当該センサが検出した情報を出力するＩ／Ｏ機器やＡ／Ｄ機器などの産業機器である。図１に示すトルクセンサ５０などの出力機器は、モータ３０に関連する産業機器の一例に相当する。
【００４１】
関連情報は、モータ３０又はモータ３０に関連する産業機器の状態に関する情報のうち、回転角ではない情報を意味する。関連情報は、モータ３０又はモータ３０に関連する産業機器の状態に応じて変化する情報であり、例えば、センサにより検出可能な情報であればよい。例えば、関連情報は、モータ３０のトルク、モータ３０の温度、モータ３０が移動させるアームなど物体の位置、当該物体に対する圧力、又は、これらを検出するセンサの状態（例えば、温度）などの情報である。
【００４２】
なお、モータ３０に関する関連情報は、例えば、モータ３０に対する出力制御や制御用パラメータの調整に用いられたり、モータ３０の異常の有無の判断又はモータ３０の寿命（残りの耐用期間）の予測に用いられたりする。一方、モータ３０に関連する産業機器に関する関連情報（例えば、センサの温度）は、例えば、当該産業機器の異常の有無の判断又は当該産業機器の寿命（残りの耐用期間）の予測に用いられたり、当該産業機器の設定値の判断に用いられたりする。
【００４３】
図１に示すように、下位通信路９０では、各機器は、自身の上位及び下位の少なくとも一方に他の機器が接続されており、本実施形態では、その接続順位は、モータ制御装置２０が最上位であり、エンコーダ４０、トルクセンサ５０、Ｉ／Ｏ機器６０、温度センサ７０の順になる。言い換えれば、下位通信路９０では、各機器がいわゆるマルチドロップ接続（あるいはカスケード接続又はデイジーチェーン接続であってもよい。）された状態となっており、例えば、上位の機器と下位の機器が１対１接続された状態となる。なお、上位とは、指令を送り応答を受け取る側であり、下位とは、指令を受け取り応答を送る側である。下位通信路９０は、モータ制御装置２０の通信ポートのうち、上位通信ポート２４Ａではなく、エンコーダ４０などの機器用の下位通信ポート２４Ｃに接続されている。
【００４４】
なお、下位通信路９０上の各機器の接続順位は、予めモータ制御装置２０のメモリ２２や各機器のメモリ内に記憶されているようにしてよい。更に、各機器は、上位通信ポートと下位通信ポートを有しており、上位通信ポートから受信した情報を下位通信ポートから送信し、下位通信ポートから受信した情報を上位通信ポートから転送するようにしてもよい。即ち、各機器は、特に接続順位を識別する情報を記憶せず自身の接続順位を意識せずに、情報を転送するようにしてもよい。
【００４５】
上位通信路８０と下位通信路９０は、それぞれ別ネットワークであり、モータ制御装置２０は、これら別ネットワークを仲介するゲートウェイとしての役割を果たす。例えば、上位通信路８０と下位通信路９０は、互いに通信プロトコル及び通信周期の少なくとも一方が異なるようにしてもよい。通信プロトコル又は通信周期の何れか一方のみが異なっていてもよいが、本実施形態では、これら両方が異なる場合を説明する。
【００４６】
例えば、モータ制御装置２０は、第１の通信プロトコルに基づいて、上位通信路８０を介して上位コントローラ１０と通信し、第１の通信プロトコルとは異なる第２の通信プロトコルに基づいて、下位通信路９０を介してエンコーダ４０などの機器と通信する。本実施形態では、第１の通信プロトコルが、種々の産業機器で利用される一般的な通信プロトコルであり、第２の通信プロトコルが、センサ類やＩ／Ｏ機器などの通信に特化した専用の通信プロトコルである場合を説明する。第１の通信プロトコルと第２の通信プロトコルとは、通信を確立するための通信手順や送受信される通信データのフォーマットなどが互いに異なる。
【００４７】
また例えば、モータ制御装置２０は、第１の通信周期に基づいて、上位通信路８０を介して上位コントローラ１０と通信し、第１の通信周期とは異なる第２の通信周期に基づいて、下位通信路９０を介してエンコーダ４０などの機器と通信する。第１の通信周期と第２の通信周期は、互いの時間的な長さが異なっていればよいが、本実施形態では、第２の通信周期が、第１の通信周期よりも短いものとする。例えば、第１の通信周期は数百μｓ程度であり、第２の通信周期は数十μｓ程度であってよい。この場合、第１の通信周期の開始時点と第２の通信周期の開始時点を合わせるために、第１の通信周期が第２の通信周期の整数倍となるようにしてもよい。
【００４８】
モータ制御装置２０は、第２の通信周期ごとに、下位通信路９０の各機器に対して指令を送信し、当該指令を受けた各機器からのレスポンスとして、回転角や関連情報を受信する。例えば、通信周期が開始されると、モータ制御装置２０は、所定フォーマットの指令を下位通信路９０に送信する。この指令は、下位通信路９０の各機器がレスポンスを返すためのものであり、接続順位が上位の機器から下位の機器に順番に転送される。例えば、下位通信路９０における接続順位がｎ番目（ｎは２以上の整数）の機器は、接続順位がｎ−１番目の機器から指令を受信すると、接続順位がｎ＋１番目の機器に指令を転送することになる。接続順位が最下位の機器は、転送相手がいないので、指令を受信するだけで転送はしない。
【００４９】
図１の例では、モータ制御装置２０が、接続順位が１つ下のエンコーダ４０に指令を送信すると、エンコーダ４０は、受信した指令を接続順位が１つ下のトルクセンサ５０に送信する。トルクセンサ５０は、受信した指令を接続順位が１つ下のＩ／Ｏ機器６０に送信し、Ｉ／Ｏ機器６０は、受信した指令を接続順位が１つ下の温度センサ７０に送信する。このようにして、最上位のモータ制御装置２０が送信した指令を、最下位の温度センサ７０までの各機器に受信させることができる。
【００５０】
下位通信路９０上の各機器は、受信した指令に応じて、回転角や関連情報をモータ制御装置２０に対して送信する。例えば、エンコーダ４０、トルクセンサ５０、及び温度センサ７０のように、自身が検出した情報をモータ制御装置２０に送信してもよいし、Ｉ／Ｏ機器６０のように、自身に接続されたセンサが検出した情報を取得してモータ制御装置２０に送信してもよい。なお、各機器は、指令を受信したことに応じて、回転角や関連情報を取得して送信してもよいし、予め取得して自身のメモリに保持しておいた回転角や関連情報を、指令を受信したことに応じて読み出して送信してもよい。
【００５１】
回転角や関連情報は、下位通信路９０において、接続順位が下位の機器から上位の機器に順番に転送される。例えば、接続順位がｎ番目の機器は、自身が検出又は取得した情報と、接続順位がｎ＋１番目の機器から受信した情報と、を接続順位がｎ−１番目の機器に送信することになる。接続順位が最上位の機器は、転送相手がいないので、情報を受信するだけで転送はしない。ただし、本実施形態では、最上位の機器がモータ制御装置２０なので、任意のタイミングで、受信した情報を上位通信路８０を介して上位コントローラ１０に転送してもよい。
【００５２】
図１の例では、温度センサ７０は、指令に応じて、自身が検出した温度を接続順位が１つ上のＩ／Ｏ機器６０に送信する。Ｉ／Ｏ機器６０は、自身の入出力コネクタに接続された各センサが検出した関連情報と、受信した温度と、を接続順位が１つ上のトルクセンサ５０に送信する。トルクセンサ５０は、自身が検出したトルクと、受信した関連情報・温度と、を接続順位が１つ上のエンコーダ４０に送信する。エンコーダ４０は、自身が検出した回転角と、受信したトルク・関連情報・温度と、を接続順位が１つ上のモータ制御装置２０に送信する。
【００５３】
このようにすることで、モータ制御装置２０は、下位通信路９０に接続された各機器が出力した情報を取得できる。なお、本実施形態では、モータ制御装置２０が指令を送信してから各機器が出力した情報を受信し終わるまでは、１通信周期内で完了するようになっている。即ち、モータ制御装置２０は、通信周期が訪れるたびに指令を送信して、各機器が出力した情報を受信することができる。
【００５４】
モータ制御装置２０は、下位通信路９０を介して取得したモータ３０の回転角及び関連情報に基づいて、所定の処理を実行し、当該処理の実行結果を、上位通信路８０を介して上位コントローラ１０に送信する。所定の処理は、回転角や関連情報の集計処理や解析処理であり、モータ制御システム１が利用される場面に応じて適宜決定すればよい。例えば、所定の処理は、回転角や関連情報をメモリ２２に蓄積する処理であってもよいし、回転角や関連情報の統計値を算出する処理であってもよい。この場合、モータ制御装置２０は、メモリ２２に蓄積した回転角や関連情報を上位コントローラ１０に送信したり、算出した統計値を上位コントローラ１０に送信したりする。
【００５５】
他にも例えば、モータ制御システム１を利用して樹脂などの射出成形が行われる場合であれば、モータ制御装置２０は、Ｉ／Ｏ機器６０を介して取得した圧力情報を集計したり解析したりして、上位コントローラ１０に送信するようにしてもよい。なお、モータ制御装置２０は、下位通信路９０を介して取得したモータ３０の回転角や関連情報を、上位コントローラ１０に送信するためでなく、自身のために用いてもよい。例えば、モータ制御装置２０は、Ｉ／Ｏ機器６０を介して取得した圧力情報を解析してモータ３０に対する出力を決定する処理を実行し、樹脂を押し出す圧力を調整するようにしてもよい。
【００５６】
上位コントローラ１０は、モータ制御装置２０から受信した上記処理の実行結果に基づいて、例えば、モータ制御装置２０に対して指示を送ったり、受信した実行結果をログとしてメモリ１２に蓄積したりする。なお、上位コントローラ１０は、予め定められた処理を実行すればよく、他にも例えば、受信した実行結果を、通信ポート１４Ａを介してサーバなどにアップロードしてもよいし、受信した実行結果に基づいてアラートを出力してもよい。
【００５７】
以上説明したモータ制御システム１によれば、下位通信路９０にエンコーダ４０などの各機器を直列で接続することにより、例えば、上位コントローラ１０やモータ制御装置２０に複数のセンサがそれぞれ個別の通信路で接続されている場合に比べて、モータ制御システム１の配線数を減らすことができる。更に、エンコーダ４０などの各機器は、上位コントローラ１０経由でモータ制御装置２０に情報を送信するのではなく、モータ制御装置２０に直接的に情報を送信するので、モータ制御装置２０による処理を高速化することができる。また、モータ制御装置２０が、モータ３０の回転角及び関連情報に基づいて所定の処理を実行することで、上位コントローラ１０の処理負荷を軽減することができる。例えば、上位通信路８０にエンコーダ４０などの各機器が接続されており、上位コントローラ１０に対して関連情報などが直接的に送信される場合、上位コントローラ１０は、自身で所定の処理を行ったり、受信した関連情報を転送したりしなければならないが、モータ制御装置２０側で所定の処理を実行することで、上位コントローラ１０の処理負荷を軽減することができる。更に、上位コントローラ１０側で解析処理などが必要になった場合、モータ制御装置２０のメモリ２２に関連情報を蓄積しておけば、上位通信路８０を介してモータ制御装置２０に関連情報などを要求し、必要に応じて解析処理などを上位コントローラ１０側で実行することができる。また例えば、上位コントローラ１０が多数のモータ制御装置２０を制御する場合には、上位通信路８０における通信量が増大するが、エンコーダ４０などの各機器を、各モータ制御装置２０側の下位通信路９０に接続することで、上位コントローラ１０が多数のモータ制御装置２０を制御する場合であっても、上位通信路８０の通信量が増大することを防止することができる。また、モータ制御装置２０内で所定の処理を実行することでモータ制御システム１全体を効率的に利用することができる。このため、モータ制御システム１は、物理的又は処理的なコストを軽減することができる。
【００５８】
また、上位通信路８０の通信プロトコルと下位通信路９０の通信プロトコルとを異ならせることにより、例えば、下位通信路９０に専用の通信プロトコルを導入することができるので、上位通信路８０と同じ一般的な通信プロトコルを利用する場合に比べて、処理の高速化を図ることができる。
【００５９】
また、上位通信路８０の通信周期と下位通信路９０の通信周期とを異ならせることにより、モータ制御システム１内で通信周期が異なるネットワークを共存させることができる。例えば、下位通信路９０の通信周期を上位通信路８０の通信周期よりも短くすれば、モータ制御装置２０が回転角や関連情報を、より頻繁に取得することができるようになるので、トルク変化や温度変化などをより迅速に検知することができるようになる。更に、モータ制御装置２０が、下位通信路９０を介して取得した回転角や関連情報の検出結果を、まとめて上位コントローラ１０に送信することができるので、回転角や関連情報の送信漏れを防止することもできる。
【００６０】
なお、本発明は、以上に説明した実施の形態に限定されるものではない。本発明の趣旨を逸脱しない範囲で、適宜変更可能である。
【００６１】
例えば、モータ制御装置２０は、関連情報を出力する出力機器（例えば、トルクセンサ５０、Ｉ／Ｏ機器６０、温度センサ７０等）に対して、当該出力機器の制御に関する設定値を送信してもよい。例えば、設定値は、上記出力機器が有するセンシング機能のＯＮ／ＯＦＦの設定、上記出力機器が検出する物理量（例えば、トルクの大きさ、温度等）に対して上記出力機器が異常と判断する場合に用いる閾値などである。他にも例えば、上記設定値は、モータ制御装置２０が第２の通信周期ごとに上記出力機器に送信する指令に含まれるものであってもよく、この設定値を受信した上記出力機器は、受信した設定値を当該出力機器が有するメモリに書き込むようにしてよい。各出力機器は、当該出力機器のメモリに書き込まれた設定値に基づいて動作し、関連情報を出力することになる。なお、モータ制御装置２０は、このような設定値をエンコーダ４０に対して送信するようにしてもよい。この場合、エンコーダ４０は、自身のメモリに設定値を記憶して回転角の検出及び送信を実行することになる。
【００６２】
また例えば、実施形態では、下位通信路９０において直列的に接続される出力機器として、トルクセンサ５０、Ｉ／Ｏ機器６０、及び温度センサ７０を説明したが、関連情報を出力可能な出力機器が接続されるようにすればよく、他のセンサなどが接続されてもよい。先述したように、回転角を検出するセンサがＩ／Ｏ機器６０に接続されていてもよい。例えば、モータ制御システム１をロボットシステムに適用する場合には、モータ３０が移動させるロボットアームの加速度を検出する加速度センサやロボットアームの指先に備えられた力覚センサが下位通信路９０に接続されているようにしてもよい。他にも例えば、モータ制御システム１においてＡ／Ｄ機器が不足しているときの増設用のＡ／Ｄ機器が下位通信路９０に接続されているようにしてもよい。この場合、Ａ／Ｄ機器は、アナログ信号を出力する出力機器（例えば、アナログ信号を出力する圧力センサアンプなど）に接続されており、当該出力機器が出力したアナログ信号をデジタル信号に変換してモータ制御装置２０に対して出力することになる。
【００６３】
また例えば、説明の簡略化のために、上位コントローラ１０が１台のモータ制御装置２０と接続され、モータ制御装置２０が１つのモータ３０を制御する場合を説明したが、モータ制御システム１に含まれるモータ制御装置２０及びモータ３０は、それぞれ複数であってよい。例えば、上位コントローラ１０が複数のモータ制御装置２０に指示を送ってもよいし、１台のモータ制御装置２０が複数のモータ３０を制御してもよい。更に、上位コントローラ１０は、複数台あってもよい。この場合、通信ポート１４Ｂ、上位通信ポート２４Ａ、及び電力出力部２４Ｂは、それぞれ複数あってもよい。また、モータ制御装置２０に接続される下位通信路９０は、複数であってもよい。即ち、モータ制御装置２０は、下位通信ポート２４Ｃを複数有しており、直列的に接続された機器群（図１の場合、エンコーダ４０、トルクセンサ５０、Ｉ／Ｏ機器６０、及び温度センサ７０の４つをまとめて１つの機器群とする）を複数接続可能であってもよい。この場合、下位通信路９０が複数存在することになるが、これら複数の下位通信路９０は、エンコーダ用の通信路と、その他のセンサなどの出力機器用の通信路と、を使い分けるようにしてもよい。
【００６４】
［２．実施形態２］
次に、モータ制御システム１の別実施形態について説明する。以降の実施形態では、実施形態１で説明したモータ制御装置を、マスタ装置と記載し、実施形態１で説明した回転角検出器又は出力機器を、スレーブ機器と記載する。
【００６５】
本発明者の見地によれば、モータ制御装置にエンコーダなどの複数のスレーブ機器を直列に接続したモータ制御システムは、省配線を実現できるが、その一方で、モータ制御装置は、スレーブ機器全体に対する指令と、個別のスレーブ機器の動作を制御と、を同時に行うことができない。一方、モータ制御装置と各スレーブ機器を直接的に接続すれば、モータ制御装置が個別の機器の動作を制御することはできるが、スレーブ機器の数だけ通信路の本数が必要なので、配線数が増加してしまう。そこで本発明の発明者は、省配線を実現しつつ、スレーブ機器全体に対する指令と個別のスレーブ機器の動作制御とを実現するために鋭意研究開発を行った結果、新規かつ独創的なモータ制御システム等に想到した。以降、実施形態２に係るモータ制御システム等を詳細に説明する。
【００６６】
［２−１．実施形態２の全体構成］
図２は、実施形態２のモータ制御システム１の全体構成を示す図である。図２に示すように、モータ制御システム１は、マスタ装置Ｍ１と、複数のスレーブ機器Ｓ１〜Ｓ４（以降、これらをまとめて単にスレーブ機器Ｓともいう。）と、を含む。実施形態１と同様、各スレーブ機器Ｓは、下位通信路９０により直列に接続されている。
【００６７】
マスタ装置Ｍ１のハードウェア構成は、実施形態１で説明したモータ制御装置２０と同様であってよい。図２に示す上位通信ポートＰＡは、上位通信ポート２４Ａと同様であってよく、下位通信ポートＰＢは、下位通信ポート２４Ｃと同様であってよい。実施形態２では、マスタ装置Ｍ１が２つのモータ３０を制御する場合を説明する。なお、ここでは、マスタ装置Ｍ１のうち上位通信ポートＰＡ及び下位通信ポートＰＢ以外の構成と、２つのモータ３０と、は図示を省略する。
【００６８】
例えば、スレーブ機器Ｓ１は、Ｉ／Ｏ機器であり、実施形態１で説明したＩ／Ｏ機器６０と同様であってよい。例えば、スレーブ機器Ｓ２及びＳ３は、それぞれ実施形態１で説明したエンコーダ４０と同様であってよい。スレーブ機器Ｓ２は、１つ目のモータの回転角を検出し、スレーブ機器Ｓ３は、２つ目のモータの回転角を検出する。スレーブ機器Ｓ４は、実施形態１で説明したトルクセンサ５０と同様であってよく、例えば２つ目のモータのトルクを検出する。
【００６９】
実施形態１でも説明した通り、各スレーブ機器Ｓは、上位通信ポートＰＡと、下位通信ポートＰＢと、を有する。スレーブ機器Ｓ１の上位通信ポートＰＡは、マスタ装置Ｍ１の下位通信ポートＰＢと下位通信路９０により接続されている。スレーブ機器Ｓ１の下位通信ポートＰＢは、下位のスレーブ機器Ｓ２の上位通信ポートＰＡと下位通信路９０により接続されている。同様に、スレーブ機器Ｓ２の下位通信ポートＰＢは、下位のスレーブ機器Ｓ３の上位通信ポートＰＡと下位通信路９０により接続され、スレーブ機器Ｓ３の下位通信ポートＰＢは、下位のスレーブ機器Ｓ４の上位通信ポートＰＡと下位通信路９０により接続されている。スレーブ機器Ｓ４は、接続順位が最下位なので、下位通信ポートＰＢには、他の機器は接続されない。
【００７０】
実施形態２のモータ制御システム１では、マスタ装置Ｍ１は、スレーブ機器Ｓの全体宛ての通信と、一部のスレーブ機器Ｓ宛ての通信と、を使い分けることができるようになっている。更に、マスタ装置Ｍ１は、各スレーブ機器Ｓから回転角や関連情報を受信するだけでなく、特定のスレーブ機器Ｓに対して情報を書き込むことができるようになっている。以降、これらの構成の詳細を説明する。
【００７１】
［２−２．実施形態２のモータ制御システムで実現される機能］
図３は、マスタ装置Ｍ１で実現される機能を示す機能ブロック図であり、図４は、スレーブ機器Ｓで実現される機能を示す機能ブロック図である。図３及び図４に示すように、マスタ装置Ｍ１では、例えば、指令送信部１００、応答受信部１０１、処理実行部１０２、及び情報送信部１０３が実現され、スレーブ機器Ｓでは、例えば、指令受信部２００、指令転送部２０１、アドレス判定部２０２、コマンド実行部２０３、応答送信部２０４、応答受信部２０５、及び応答転送部２０６が実現される。
【００７２】
指令送信部１００は、複数のスレーブ機器Ｓの全体と通信する場合、下位通信ポートＰＢから全体宛ての全体指令を送信する。一方、指令送信部１００は、一部のスレーブ機器Ｓと通信する場合、下位通信ポートＰＢから一部のスレーブ機器の動作を制御する個別指令を送信する。
【００７３】
全体指令は、全てのスレーブ機器Ｓに対して共通の指令であり、例えば、各スレーブ機器Ｓが同期を取るための同期指令がその一例である。以降、指令送信部１００が全体指令を送るときの通信方式を、１対Ｎ通信という。Ｎは、２以上の整数であり、例えば、下位通信路９０におけるスレーブ機器Ｓの台数である。
【００７４】
個別指令は、全スレーブ機器Ｓのうちの特定のスレーブ機器Ｓに対する指令である。例えば、個別指令は、特定のスレーブ機器Ｓに対するコマンドやパラメータなどを含んでよい。指令送信部１００は、Ｎよりも少ない台数のスレーブ機器Ｓに対する個別指令を送信し、本実施形態では、１台のスレーブ機器Ｓに対する個別指令を送信する。以降、指令送信部１００が任意の１台のスレーブ機器Ｓに個別指令を送るときの通信方式を、１対１通信という。
【００７５】
全体指令及び個別指令は、通信プロトコルで定められたデータフォーマットの伝送フレームで送信されるようにすればよい。全体指令と個別指令とは、同じデータフォーマットであってもよいが、本実施形態ではこれらが異なるデータフォーマットである場合を説明する。
【００７６】
図５は、全体指令のデータフォーマットの一例を示す図である。即ち、図５は、１対Ｎ通信における指令の伝送フレームを示す。図５に示すように、１対Ｎ通信用の指令は、アドレス部Ａ、通信周期カウンタ部ＣＴ、及びチェックコード部ＣＲＣを含む。
【００７７】
アドレス部Ａは、指令の宛先情報を含む。例えば、１対Ｎ通信では、マスタ装置Ｍ１が全スレーブ機器Ｓと通信するので、宛先情報として、全スレーブ機器Ｓに共通のブロードキャストアドレスがアドレス部Ａに格納される。なお、アドレス部Ａは、指令の送信元情報を含んでもよい。例えば、送信元情報として、マスタ装置Ｍ１のアドレスがアドレス部Ａに格納されるようにしてよい。また、宛先情報や送信元情報は、それぞれ宛先と送信元を識別可能な情報であればよく、アドレス以外であってもよい。例えば、マスタ装置Ｍ１やスレーブ機器Ｓのシリアル番号などが、宛先情報や送信元情報として用いられてもよい。宛先情報と送信元情報とは、マスタ装置Ｍ１やスレーブ機器Ｓに一意の情報が用いられてよい。
【００７８】
通信周期カウンタＣＴは、通信周期が何周期目であるかを識別するための情報である。下位通信路９０では、定周期通信が行われる。通信周期カウンタＣＴは、通信周期ごとにインクリメントされる。詳細は後述の別実施形態で説明するが、通信周期カウンタＣＴは、各スレーブ機器Ｓがいつ応答を返すかを特定するために利用され、例えば、各スレーブ機器Ｓが通信周期をまたいで応答を返す場合に用いられる。本実施形態では各スレーブ機器Ｓの応答が毎通信周期行われる場合を説明するので、通信周期カウンタＣＴは全体指令から省略してもよい。
【００７９】
チェックコードＣＲＣは、全体指令の誤り符号検出で用いられるコード情報である。誤り符号検出自体は、公知の種々の手法を適用可能であり、例えば、任意のビット数の巡回冗長検査を利用してよい。
【００８０】
図６は、個別指令のデータフォーマットを示す図である。即ち、図６は、１対１通信における指令の伝送フレームを示す。図６に示すように、個別指令は、アドレス部Ａ、通信周期カウンタ部ＣＴ、データ部ＤＴ１、及びチェックコード部ＣＲＣを含む。アドレス部Ａ及びデータ部ＤＴ１以外は、全体指令と同じであってよい。
【００８１】
アドレス部Ａは、全体指令と同様、宛先情報を含む。ただし、宛先情報としては、ブロードキャストアドレスではなく、指令の対象となるスレーブ機器Ｓのアドレスが格納される。別の言い方をすれば、宛先情報として、１対１通信における通信相手のスレーブ機器Ｓのアドレスが格納される。例えば、スレーブ機器Ｓ１との１対１通信であれば、アドレス部Ａには、スレーブ機器Ｓ１のアドレスが格納される。同様に、スレーブ機器Ｓ２〜Ｓ４の各々との１対１通信であれば、アドレス部Ａには、スレーブ機器Ｓ２〜Ｓ４の何れかのアドレスが格納される。また、個別指令のアドレス部Ａは、全体指令と同様、送信元情報を含んでもよい。
【００８２】
なお、マスタ装置Ｍ１は、自機のアドレス、ブロードキャストアドレス、及び各スレーブ機器Ｓのアドレスを、予めメモリ２２に記憶しているものとする。各スレーブ機器Ｓのアドレスは、固定値であってもよいし、初期化時などの任意のタイミングでマスタ装置Ｍ１が動的に割り当てるようにしてもよい。例えば、マスタ装置Ｍ１は、所定の割り当てルールのもとで、上位のスレーブ機器Ｓから順番に、１番、２番・・・のような数値（ＩＤ）をアドレスとして割り当てるようにしてよい。マスタ装置Ｍ１は、各スレーブ機器Ｓに割り当てたアドレスをメモリ２２に記録する。
【００８３】
データ部ＤＴ１は、個別指令の指令内容を格納するデータ領域である。データ部ＤＴ１は、一部のスレーブ機器Ｓに実行させるコマンドを含んでよく、例えば、コマンドの種類を示す数値が格納される。コマンドは、一部のスレーブ機器Ｓの動作を制御するための任意のコマンドであってよく、例えば、設定情報の書き込みコマンドであってもよい。なお、設定情報とは、スレーブ機器Ｓに設定する情報であり、例えば、スレーブ機器Ｓのパラメータなどの設定値である。データ部ＤＴ１が設定情報の書き込みコマンドを含む場合、データ部ＤＴ１には、一部のスレーブ機器Ｓの設定情報を更に含んでよい。
【００８４】
また、個別指令のデータ部ＤＴ１に含まれるコマンドは、上記の例に限られず、例えば、スレーブ機器Ｓが有するセンサ機能の有効／無効を切り替えるコマンドであってもよい。他にも例えば、スレーブ機器ＳがＩ／Ｏ機器であり、複数種類のセンサが接続されている場合は、スレーブ機器Ｓは複数種類の情報を出力可能なので、スレーブ機器Ｓが出力する情報を切り替えるコマンドであってもよい。更に例えば、スレーブ機器Ｓが所定のアラーム機能を有する場合には、アラームの閾値を変更するコマンドであってもよい。
【００８５】
本実施形態では、各スレーブ機器Ｓは、全体指令を受信すると自動的に所定の応答を返すようになっているので、全体指令には、特にスレーブ機器Ｓに実行させるコマンドなどを含まなくてよい。このため、図５に示すように全体指令は、データ部ＤＴ１を含まず、その分だけデータ長が短くなり、下位通信路９０における通信量を削減できるようになっている。
【００８６】
図７は、１対Ｎ通信及び１対１通信が行われる様子の一例を示す図である。以降、図７を参照しつつ、マスタ装置Ｍ１及びスレーブ機器Ｓの各機能の詳細を説明する。図７に示すように、例えば、１対Ｎ通信をする通信周期Ｔｃｙｃが到来すると、マスタ装置Ｍ１の指令送信部１００は、スレーブ機器Ｓ１に全体指令を送信する（ステップＳＴ１）。
【００８７】
スレーブ機器Ｓ１において、指令受信部２００は、上位通信ポートＰＡから、マスタ装置Ｍ１が送信した全体指令を受信すると、指令転送部２０１は、下位のスレーブ機器Ｓに、指令受信部２００が受信した全体指令を転送する（ステップＳＴ２）。指令転送部２０１は、上位通信ポートＰＡから受信した全体指令を、そのまま下位通信ポートＰＢから転送すればよい。以降、ステップＳＴ３及びステップＳＴ４に示すように、スレーブ機器Ｓ２及びＳ３の指令転送部２０１は、上位から受信した全体指令を下位に転送することになる。なお、最下位のスレーブ機器Ｓ４は、転送相手がいないので、指令転送部２０１は含まれないようにしてよい。
【００８８】
各スレーブ機器Ｓでは、指令を受信すると、アドレス判定部２０２は、指令受信部２００が受信した指令にブロードキャストアドレス又は自機アドレスが含まれるかを判定する。即ち、アドレス判定部２０２は、受信した指令のアドレス部Ａに、ブロードキャストアドレスが格納されているか、自機アドレスが格納されているか、これらの何れも格納されていないか、を判定する。アドレス判定部２０２がアドレスを判定するのは、全体宛ての全体指令であるか、自機宛ての個別指令であるか、又は、他機宛ての個別指令であるかを特定するためである。
【００８９】
なお、各スレーブ機器Ｓのメモリには、予めブロードキャストアドレスと自機アドレスが記憶されているものとする。例えば、自機アドレスが動的に割り当てられる場合、各スレーブ機器Ｓは、マスタ装置Ｍ１が自機に割り当てたアドレスをメモリ内に保持するようにすればよい。本実施形態では、各スレーブ機器Ｓのメモリには、他機アドレスが記憶されていないものとするが、他機アドレスが記憶されていてもよい。他機アドレスがメモリに記憶されている場合、アドレス判定部２０２は、メモリに記憶された他機アドレスがアドレス部Ａに格納されているかを判定するようにしてもよい。
【００９０】
各スレーブ機器Ｓの応答送信部２０４は、アドレス判定部２０２の判定結果に基づいて、応答を送信する。図８は、応答の伝送フレームの形式を示す図である。なお、本実施形態では、全体指令に対する応答と、個別指令に対する応答と、が同じ形式である場合を説明するが、これらの形式は異なっていてもよい。図８に示すように、応答は、アドレス部Ａ、データ部ＤＴ２、及びチェックコード部ＣＲＣを含む。アドレス部Ａ及びデータ部ＤＴ２以外は、指令で説明した内容と同様である。
【００９１】
アドレス部Ａには、応答の送信元情報が格納される。例えば、送信元情報として、応答を送信するスレーブ機器Ｓのアドレスがアドレス部Ａに格納される。なお、アドレス部Ａは、応答の宛先情報を含むようにしてもよい。この場合、宛先情報として、マスタ装置Ｍ１のアドレスが格納されるようにしてよい。
【００９２】
データ部ＤＴ２は、指令に対する応答内容を示すデータ部分である。例えば、応答送信部２０４は、全体指令を受信した場合、回転角又は関連情報を含む応答を送信するので、データ部ＤＴには、回転角又は関連情報が格納される。
【００９３】
図７に戻り、ステップＳＴ１〜ステップＳＴ４により全体指令が送信された場合、各スレーブ機器Ｓのアドレス判定部２０２は、全体指令のアドレス部Ａにブロードキャストアドレスが格納されていると判定し、応答送信部２０４は、全体指令に対する応答を送信する。以降、全体指令に対する応答を、通常応答と記載する。
【００９４】
例えば、スレーブ機器Ｓ１の応答送信部２０４は、自機が出力する関連情報がデータ部ＤＴ２に格納された通常応答を送信する（ステップＳＴ５）。なお、スレーブ機器Ｓ１は、予め関連情報を取得したメモリに記録しておき、ステップＳＴ５において、メモリに記録した関連情報を読み出して通常応答に格納してもよいし、受信した全体指令に応じて関連情報を取得して通常応答に格納してもよい。同様に、ステップＳＴ６〜ステップＳＴ８に示すように、各スレーブ機器Ｓ２〜Ｓ４の応答送信部２０４は、自機が出力する回転角又は関連情報がデータ部ＤＴ２に格納された通常応答を送信する。
【００９５】
更に、ステップＳＴ９〜ステップＳＴ１４に示すように、スレーブ機器Ｓ１〜スレーブ機器Ｓ３においては、応答受信部２０５が下位通信ポートＰＢから下位のスレーブ機器Ｓの通常応答を受信すると、応答転送部２０６は、受信した通常応答を上位通信ポートＰＡから転送することになる。
【００９６】
マスタ装置Ｍ１においては、応答受信部１０１は、下位通信ポートＰＢから、各スレーブ機器Ｓの応答を受信する。図７に示す例では、応答受信部１０１は、応答受信部１０１は、最上位のスレーブ機器Ｓ１の通常応答を直接的に受信するとともに、下位のスレーブ機器Ｓ２〜Ｓ４の通常応答を、スレーブ機器Ｓ１〜Ｓ３を介して間接的に受信することになる。応答受信部１０１は、応答を受信すると、メモリ２２に応答を展開する。なお、応答にスレーブ機器Ｓの送信元情報を含める場合には、マスタ装置Ｍ１は、応答受信部１０１が受信した応答を取り込むかを判定するために、応答に自機アドレスが含まれるかを判定してもよい。
【００９７】
マスタ装置Ｍ１の処理実行部１０２は、応答受信部１０１が受信した情報に基づいて所定の処理を実行し、情報送信部１０３は、処理実行部１０２の実行結果を、上位通信ポートＰＡから上位コントローラ１０に送信する。なお、これらの処理は、実施形態１で説明したものと同様であってよい。
【００９８】
以上の処理が、１対Ｎ通信における各通信周期Ｔｃｙｃで実行される。次に、１対１通信の通信周期Ｔｃｙｃにおける通信の流れを説明する。ここでは、スレーブＳ１に対する個別指令が送信される場合を説明する。図７に示すように、１対１通信をする通信周期Ｔｃｙｃが到来すると、マスタ装置Ｍ１の指令送信部１００は、スレーブ機器Ｓ１宛ての個別指令を送信する（ステップＳＴ１５）。この個別指令のアドレス部Ａには、スレーブ機器Ｓ１のアドレスが格納されており、データ部ＤＴ１には、スレーブ機器Ｓ１が実行すべきコマンドや設定すべき設定情報が格納されている。
【００９９】
ステップＳＴ１６〜ステップＳＴ１８に示すように、個別指令が転送される処理は、ステップＳＴ２〜ステップＳＴ４と同様である。ただし、スレーブ機器Ｓ１のアドレス判定部２０２は、個別指令に自機アドレスが含まれると判定するので、コマンド実行部２０３は、個別指令のデータ部ＤＴ１に含まれるコマンドを実行する。即ち、コマンド実行部２０３は、自機宛ての個別指令を受信した場合、当該個別指令に応じたコマンドを実行することになる。
【０１００】
先述したように、コマンドは、設定情報を書き込むためのコマンドであってよいので、コマンド実行部２０３は、自機宛ての指令を受信した場合、設定情報をメモリに記録することになる。即ち、本実施形態では、コマンド実行部２０３は、本発明に係る設定情報記録部としても機能する。設定情報がメモリに記録されると、スレーブ機器Ｓは、当該記録された設定情報に基づいて動作することになる。
【０１０１】
個別指令に対する応答は、コマンド実行部２０３によるコマンドの実行結果を含むようにしてよい。以降、この応答を個別応答と記載する。スレーブ機器Ｓ１の応答送信部２０４は、コマンド実行部２０３の実行結果がデータ部ＤＴ２に格納された個別応答を送信する（ステップＳＴ１９）。ステップＳＴ１９では、応答送信部２０４は、例えば、アドレス部Ａに、送信元情報として自機アドレスを格納し、宛先情報としてマスタ装置Ｍ１のアドレスを格納する。なお、マスタ装置Ｍ１が個別応答を受信した場合の処理は、通常応答を受信した場合の処理と同様であってよい。
【０１０２】
なお、スレーブ機器Ｓ１宛ての個別指令をスレーブ機器Ｓ２〜Ｓ４が受信した場合、スレーブ機器Ｓ２〜Ｓ４は、特に応答を返さなくてもよいが、本実施形態では、通常応答を返すものとする。即ち、スレーブ機器Ｓ２〜Ｓ４の応答送信部２０４は、他機宛ての個別指令を受信した場合、回転角又は関連情報を含む通常応答を送信することになる。このため、ステップＳＴ２０〜ステップＳＴ２８に示すように、スレーブ機器Ｓ２〜Ｓ４の通常応答がマスタ装置Ｍ１まで転送される。スレーブ機器Ｓ２〜Ｓ４に対する１対１通信も、上記と同様の処理により時刻される。以降、モータ制御システム１では、１対Ｎ通信と、スレーブ機器Ｓ１〜Ｓ４の何れかとの１対１通信と、が繰り返されることになる。
【０１０３】
［２−３．モータ制御システムで実行される処理］
次に、モータ制御システム１で実行される処理の流れを説明する。モータ制御システム１では、電源投入後にマスタ装置Ｍ１とスレーブ装置Ｓとの間でアドレスの割り当てなどの初期化処理が実行されるが、ここでは、初期化処理が完了した後のマスタ装置Ｍ１とスレーブ装置Ｓの動作について説明する。
【０１０４】
図９は、マスタ装置Ｍ１の処理を示すフローチャートである。図９では、通信周期ごとに実行される処理を示す。図９に示すように、まず、指令送信部１００は、全体指令と個別指令の何れを送信するかを判定する（ステップＳＴ１００）。即ち、ステップＳＴ１００では、指令送信部１００は、１対Ｎ通信をするか１対１通信をするかを決定する。ステップＳＴ１００においては、指令送信部１００は、所定の条件に基づいて、全体指令を送信するか個別指令を送信するかを決定するようにすればよい。
【０１０５】
例えば、ステップＳＴ１００においては、指令送信部１００は、任意のスレーブ機器Ｓから受信した回転角又は関連情報が閾値を超えた場合に、指令送信部１００は、当該スレーブ機器Ｓに対して個別指令を送信すると決定するようにしてもよいし、スレーブ機器Ｓごとに１対１通信するタイミングが予め定められており、指令送信部１００は、当該タイミングが到来した場合にスレーブ機器Ｓとの１対１通信をすると決定し、それ以外の場合は１対Ｎ通信をすると決定するようにしてもよい。
【０１０６】
ステップＳＴ１００において全体指令を送信すると判定された場合（ステップＳＴ１００；全体指令）、指令送信部１００は、下位通信ポートＰＢから下位通信路９０に、全体指令を送信する（ステップＳＴ１０１）。ステップＳＴ１０１においては、指令送信部１００は、メモリ２２に記憶したブロードキャストアドレス及び通信周期カウンタを読み出して、これらの値に基づいてＣＲＣ値を決定し、指令の伝送フレームに格納して送信する。その後、マスタ装置Ｍ１は、スレーブ機器Ｓからの応答を待つことになる。
【０１０７】
一方、ステップＳＴ１００において個別指令を送信すると判定された場合（ステップＳＴ１００；１対１通信）、指令送信部１００は、下位通信ポートＰＢから下位通信路９０に、個別指令を送信する（ステップＳＴ１０２）。ステップＳＴ１０２においては、指令送信部１００は、個別指令の通信相手として決定されたスレーブ機器Ｓのアドレス及び通信周期カウンタをメモリ２２から読み出し、通信相手に実行させるコマンド及び設定情報を決定する。指令送信部１００は、通信相手のスレーブ機器Ｓから受信した回転角又は関連情報に基づいてコマンドや設定情報を決定してもよいし、予めメモリ２２内に定められたコマンド及び設定情報を取得してもよい。そして、マスタ装置Ｍ１は、これらの値に基づいてＣＲＣ値を決定し、個別指令に含まれる各情報を決定する。
【０１０８】
ステップＳＴ１０１又はステップＳＴ１０２の処理が実行された後は、応答受信部１０１は、下位通信ポートＰＢから応答を受信したかを判定する（ステップＳＴ１０３）。応答を受信したと判定された場合（ステップＳＴ１０３；Ｙ）、当該応答はメモリ２２に展開され、処理実行部１０２は、所定の処理を実行する（ステップＳＴ１０４）。その後、任意のタイミングで情報送信部１０３は、上位通信ポートＰＡから上位コントローラ１０に処理実行部１０２の実行結果を送信することになる。なお、マスタ装置Ｍ１は、受信した応答のアドレス部Ａに自機アドレスが格納されているかを判定し、メモリ２２に応答を展開するかを決めるようにしてもよい。
【０１０９】
一方、ステップＳＴ１０３において応答を受信したと判定されない場合（ステップＳＴ１０３；Ｎ）、通信周期が終了したかが判定される（ステップＳＴ１０５）。通信周期が終了したと判定されない場合（ステップＳＴ１０５；Ｎ）、再びステップＳＴ１０３に戻り、応答の受信が待ち受けられる。通信周期が終了したと判定された場合（ステップＳＴ１０５；Ｙ）、次の通信周期の処理が実行される。
【０１１０】
図１０は、スレーブ機器Ｓの処理を示すフローチャートである。図１０に示すように、指令受信部２００は、上位通信ポートＰＡから指令を受信したかを判定する（ステップＳＴ２００）。指令を受信したと判定された場合（ステップＳＴ２００；Ｙ）、指令転送部２０１は、下位通信ポートＰＢから、受信した指令を転送する（ステップＳＴ２０１）。Ｓ２０１においては、指令転送部２０１は、下位通信ポートＰＢから、１つ下位のスレーブ機器Ｓに指令を転送することになる。
【０１１１】
アドレス判定部２０２は、受信した指令のアドレス部Ａを参照する（ステップＳＴ２０２）。アドレス部Ａにブロードキャストアドレスが格納されている場合（ステップＳＴ２０２；ブロードキャスト）、又は、アドレス部Ａにブロードキャストアドレスも自機アドレスも格納されていない場合（ステップＳＴ２０２；他機アドレス）、応答送信部２０４は、通常応答をするために、自機の出力対象となる回転角又は関連情報を取得する（ステップＳＴ２０３）。
【０１１２】
一方、アドレス部Ａに自機アドレスが格納されている場合（ステップＳＴ２０２；自機アドレス）、コマンド実行部２０３は、受信した指令のデータ部ＤＴ１に含まれるコマンドを実行する（ステップＳＴ２０４）。例えば、設定情報の書き込みコマンドがデータ部ＤＴ１に格納されている場合、コマンド実行部２０３は、設定情報を自機のメモリに書き込み、その実行結果を応答送信部２０４に渡す。
【０１１３】
応答送信部２０４は、上位通信ポートＰＡから、Ｓ１３における取得結果又はＳ１４における実行結果に基づいて、応答を送信する（ステップＳＴ２０５）。ステップＳＴ２０５においては、応答送信部２０４は、アドレス部Ａの送信元情報として自機アドレスを格納し、宛先情報としてマスタ装置Ｍ１のアドレスを格納する。そして、応答送信部２０４は、ステップＳＴ２０３における取得結果又はステップＳＴ２０４における実行結果をデータ部ＤＴ２に格納することになる。
【０１１４】
応答受信部２０５は、下位通信ポートＰＢから、下位のスレーブ機器Ｓの応答を受信したかを判定する（ステップＳＴ２０６）。下位通信ポートＰＢから応答を受信したと判定された場合（ステップＳＴ２０６；Ｙ）、応答送信部２０４は、受信した応答を上位通信ポートＰＡから転送する（ステップＳＴ２０７）。応答を受信しないと判定された場合（ステップＳＴ２０６；Ｎ）、ステップＳＴ２００に戻り、次の指令の受信が待ち受けられる。
【０１１５】
実施形態２のモータ制御システム１によれば、下位通信路９０においてスレーブ機器Ｓが直列に接続されているので、省配線を実現することができ、かつ、マスタ装置Ｍ１は、状況によって全体指令と個別指令を使い分けるので、マスタ装置Ｍ１による全体指令と個別のスレーブ機器Ｓの動作制御とを実現することができる。例えば、マスタ装置Ｍ１は、スレーブ機器Ｓの動作を変更すべきと判定した場合に、当該スレーブ機器Ｓに対する個別指令を送信することで、スレーブ機器Ｓに最適な動作を実行させることができる。
【０１１６】
また、個別指令には、当該個別指令の宛先となるスレーブ機器Ｓの設定情報が含まれるので、マスタ装置Ｍ１が各スレーブ機器Ｓに個別に設定情報を設定することができる。このため、各スレーブ機器Ｓの設定情報をマスタ装置Ｍ１側で管理することができる。更に、マスタ装置Ｍ１がスレーブ機器Ｓの設定情報を変更すべきと判定した場合に、当該スレーブ機器Ｓの設定情報を変更して動作させることができる。
【０１１７】
また、マスタ装置Ｍ１は、一部のスレーブ機器Ｓに個別指令を送った場合に、通信相手ではない他のスレーブ機器Ｓから何も情報を受信しないのではなく、他のスレーブ機器Ｓから回転角又は関連情報を受信することができる。このため、マスタ装置Ｍ１は、１対１通信が行われる場合であっても、最新の回転角又は関連情報を取得することができ、上位コントローラ１０に最新の情報を提供したり、次の通信周期で個別指令を送信するスレーブ機器Ｓを選択したりすることができる。
【０１１８】
また、マスタ装置Ｍ１が個別指令に含めたコマンドを、一部のスレーブ機器Ｓに実行させることができる。このため、スレーブ機器Ｓに個別に実行させるコマンドを、マスタ装置Ｍ１側で決定することができる。更に、マスタ装置Ｍ１がスレーブ機器Ｓから取得した回転角又は関連情報に応じたコマンドを個別指令に含めることもできるようになる。
【０１１９】
なお、個別指令は、１台のスレーブ機器Ｓ宛てとして説明したが、複数台のスレーブ機器Ｓの各々に対する指令を含んだ１つの指令であってもよい。個別指令は、実施形態２で説明したように１つだけのスレーブ機器Ｓに対する指令であってもよいし、何れか２つ又は３つだけに対する指令であってもよい。即ち、個別指令は、Ｎよりも少ない台数のスレーブ機器Ｓに対する指令であればよい。
【０１２０】
また例えば、全体指令と個別指令がアドレス部Ａにより識別可能にする場合を説明したが、指令に含まれる情報に基づいて、全体指令と個別指令とを識別可能にすればよい。例えば、全体指令用のフラグ情報を利用して全体指令が識別されるようにしてもよいし、個別指令用のフラグ情報を利用して個別指令が識別されるようにしてもよい。更に、指令にコマンドを含む場合を個別指令とし、指令にコマンドを含まない場合を全体指令としてもよい。更に、アドレス部Ａがデータを含まないＮＵＬＬである場合に全体指令としてもよい。更に、全体指令がアドレス部Ａを含まないようにしてもよい。全体指令と個別指令との識別方法は、任意の方法を通信プロトコルで定めておけばよい。
【０１２１】
［３．実施形態３］
実施形態２では、モータ制御システム１に含まれるモータ制御装置が１台である場合を説明したが、モータ制御システム１は、複数のモータ制御装置を有してもよい。この場合、これら複数のモータ制御装置が、実施形態２のスレーブ機器のように直列で接続されていてもよい。実施形態３では、最上位のモータ制御装置をマスタ装置と記載し、下位のモータ制御装置をモニタ装置と記載する。なお、実施形態３では、実施形態２と同様、実施形態１の回転角検出器又は出力機器は、スレーブ機器と記載する。
【０１２２】
本発明者の見地によれば、モータ制御システムが複数のモータ制御装置を含む場合、各モータ制御装置に対して直列にスレーブ機器を接続したとしても、モータ制御装置の数だけ下位通信路のチャンネルが必要になり、配線数が増加してしまう。そこで本発明の発明者は、モータ制御システムが複数のモータ制御装置を有する場合に省配線を実現するために鋭意研究開発を行った結果、新規かつ独創的なモータ制御システム等に想到した。以降、実施形態３に係るモータ制御システム等を詳細に説明する。
【０１２３】
［３−１．実施形態３の全体構成］
図１１は、実施形態３のモータ制御システム１の全体構成を示す図である。図１１に示すように、モータ制御システム１は、マスタ装置Ｍ１、モニタ装置Ｍ２，Ｍ３、及び複数のスレーブ機器Ｓ５〜Ｓ８（以降、これらをまとめて単にスレーブ機器Ｓともいう。）と、を含む。図１１に示すように、モニタ装置Ｍ２，Ｍ３と各スレーブ機器Ｓとは、下位通信路９０により直列に接続されている。
【０１２４】
モニタ装置Ｍ２，Ｍ３のハードウェア構成は、マスタ装置Ｍ１と同様であってよい。なお、実施形態３では、マスタ装置Ｍ１及びモニタ装置Ｍ２，Ｍ３は、それぞれ１つずつモータを制御する。即ち、図１１では図示を省略しているが、モータ制御システム１は、３つのモータを含むことになる。
【０１２５】
本実施形態では、モータ制御システム１の複数のスレーブ機器Ｓは、各モータ制御装置（マスタ装置Ｍ１とモニタ装置Ｍ２，Ｍ３）に対応するエンコーダと、少なくとも１つのモータ制御装置に対応する出力機器と、を含む。例えば、スレーブ機器Ｓ５は、モニタ装置Ｍ３が制御するモータのトルク情報を検出するトルクセンサであり、スレーブ機器Ｓ６は、モニタ装置Ｍ３が制御するモータの回転角を検出するエンコーダである。また例えば、スレーブ機器Ｓ７は、モニタ装置Ｍ２が制御するモータの回転角を検出するエンコーダであり、スレーブ機器Ｓ８は、マスタ装置Ｍ１が制御するモータの回転角を検出するエンコーダである場合を説明する。
【０１２６】
各スレーブ機器Ｓは、１系統の下位通信路９０により直列に接続されているが、スレーブ機器Ｓ５，Ｓ６は、モニタ装置Ｍ３に対して情報を出力し、スレーブ機器Ｓ７は、モニタ装置Ｍ２に対して情報を出力し、スレーブ機器Ｓ８は、マスタ装置Ｍ１に対して情報を出力する。別の言い方をすれば、マスタ装置Ｍ１、モニタ装置Ｍ２，Ｍ３、及び各スレーブ機器Ｓは、下位通信路９０により物理的に接続されているが、マスタ装置Ｍ１とスレーブ機器Ｓ８とが論理的に接続され、モニタ装置Ｍ２とスレーブ機器Ｓ７とが論理的に接続され、モニタ装置Ｍ３とスレーブ機器Ｓ５，Ｓ６とが論理的に接続されていることになる。
【０１２７】
なお、上位通信路８０は、最上位のモータ制御装置であるマスタ装置Ｍ１の上位通信ポートＰＡに接続される。一方、下位通信路９０は、最上位のモータ制御装置であるマスタ装置Ｍ１の下位通信ポートＰＢに接続され、下位のモータ制御装置であるモニタ装置Ｍ２，Ｍ３と、複数のスレーブ機器Ｓと、を直列で接続することになる。具体的には、モニタ装置Ｍ２の上位通信ポートＰＡは、上位のマスタ装置Ｍ１と下位通信路９０で接続され、モニタ装置Ｍ２の下位通信ポートＰＢは、下位のモニタ装置Ｍ３と下位通信路９０で接続される。モニタ装置Ｍ３の上位通信ポートＰＡは、上位のモニタ装置Ｍ２と下位通信路９０で接続され、モニタ装置Ｍ３の下位通信ポートＰＢは、最上位のスレーブ機器Ｓ５と下位通信路９０で接続される。スレーブ機器Ｓの接続は、実施形態２で説明した通りである。
【０１２８】
実施形態３では、複数のモータ制御装置であるマスタ装置Ｍ１及びモニタ装置Ｍ２，Ｍ３と、複数のスレーブ機器Ｓ５〜Ｓ８と、が通信をすることになるので、この通信方式を、Ｍ対Ｎ通信と記載する。Ｍは、２以上の整数であり、例えば、モータ制御システム１に含まれるモータ制御装置の数を示す。
【０１２９】
［３−２．実施形態３のモータ制御システムで実現される機能］
マスタ装置Ｍ１と各スレーブ機器Ｓの機能ブロック図は、図３及び図４で示したものと同様であってよい。モニタ装置Ｍ２，Ｍ３の機能ブロック図は、マスタ装置Ｍ１の機能ブロック図とは異なる。
【０１３０】
図１２は、モニタ装置Ｍ２，Ｍ３の機能ブロック図である。先述したように、モニタ装置Ｍ２，Ｍ３は、自機で指令を送信しないので、指令送信部１００は含まず、処理実行部１０２、情報送信部１０３、指令受信部１０４、指令転送部１０５、アドレス判定部１０６、応答受信部１０７、応答転送部１０８、及び回答送信部１０９を含む。以降、各機能の詳細を、実施形態２と同じように、モータ制御システム１で送受信されるデータの流れを参照しながら説明する。
【０１３１】
図１３は、Ｍ対Ｎ通信が行われる様子の一例を示す図である。図１３に示すように、例えば、ある通信周期Ｔｃｙｃにおいて、マスタ装置Ｍ１の指令送信部１００は、全体指令を送信する（ステップＳＴ３００）。全体指令の形式は、実施形態２と同様であってよい。なお、マスタ装置Ｍ１及びモニタ装置Ｍ２，Ｍ３の各々のメモリには、自機に対応するスレーブ機器Ｓのアドレスが格納されているものとする。更に、各スレーブ機器Ｓのメモリには、自機に対応するマスタ装置Ｍ１又はモニタ装置Ｍ２，Ｍ３のアドレスが格納されているものとする。
【０１３２】
下位のモニタ装置Ｍ２においては、指令受信部１０４は、上位通信ポートＰＡから全体指令を受信すると、指令転送部１０５は、受信した全体指令を下位通信ポートＰＢから転送する（ステップＳＴ３０１）。指令受信部１０４及び指令転送部１０５の機能は、スレーブ機器Ｓの指令受信部２００及び指令転送部２０１と同様であってよい。
【０１３３】
なお、モニタ装置Ｍ２においては、指令受信部１０４が指令を受信すると、アドレス判定部１０６は、指令に自機アドレスが含まれるかを判定する。全体指令は、ブロードキャストアドレスを含み、自機アドレスは含まないので、図１３に示すように、モニタ装置Ｍ２は、全体指令に対して特に応答はしない。なお、モニタ装置Ｍ３の指令受信部１０４、指令転送部１０５、及びアドレス判定部１０６の処理は、モニタ装置Ｍ２と同様であってよい。
【０１３４】
以降、ステップＳＴ３０２〜ステップＳＴ３０５に示すように、全体指令が転送される流れは、実施形態２のステップＳＴ２〜ステップＳＴ４と同様であってよい。また、ステップＳＴ３０６に示すように、各スレーブ機器Ｓが通常応答を送信及び転送する流れは、実施形態２のステップＳＴ５〜ステップＳＴ１４と同様であってよい。ただし、各スレーブ機器Ｓは、マスタ装置Ｍ１及びモニタ装置Ｍ２，Ｍ３のうち自機に対応するもののアドレスを応答のアドレスＡに格納することになる。なお、スレーブ機器Ｓ５，Ｓ６は、マスタ装置Ｍ１のアドレスを自機のメモリに記憶しており、スレーブ機器Ｓ７は、モニタ装置Ｍ２のアドレスを自機のメモリに記憶しており、スレーブ機器Ｓ８は、モニタ装置Ｍ３のアドレスを自機のメモリに記憶しているものとする。
【０１３５】
モニタ装置Ｍ３においては、応答受信部１０７は、下位通信ポートＰＢから応答を受信すると、応答転送部１０８は、上位通信ポートＰＡから応答を転送する（ステップＳＴ３０７）。モニタ装置Ｍ３のアドレス判定部１０６は、受信した応答の送信元情報に基づいて、自機に取り込む応答であるかを判定する。例えば、モニタ装置Ｍ３は、自機に対応するスレーブ機器Ｓ５，Ｓ６のアドレスをメモリ２２に記憶しているものとする。アドレス判定部１０６は、自機に対応するスレーブ機器Ｓ５，Ｓ６のアドレスが送信元情報に格納されているかを判定する。自機に対応するスレーブ機器Ｓ５，Ｓ６のアドレスが送信元情報に格納されていると判定された場合、その応答は、自機に対応するスレーブ機器Ｓ５，Ｓ６の応答なので、当該応答を処理実行部１０２に渡す。なお、スレーブ機器Ｓからの応答に宛先情報を含める場合には、アドレス判定部１０６は、宛先情報が自機アドレスを示すかを判定し、自機に取り込む応答かどうかを判定してもよい。処理実行部１０２及び情報送信部１０３の処理は、実施形態２で説明したものと同じである。
【０１３６】
なお、ステップＳＴ３０８に示すように、モニタ装置Ｍ２のアドレス判定部１０６、応答受信部１０７、及び応答転送部１０８の処理は、モニタ装置Ｍ３と同様であってよい。また、マスタ装置Ｍ１が応答を受信した後の処理は、実施形態２と同様である。
【０１３７】
次に、Ｍ対Ｎ通信において、マスタ装置Ｍ１がモニタ装置Ｍ２の代理で指令を送信する場合の流れを例に挙げて、各機能を説明する。図１３に示すように、例えば、マスタ装置Ｍ１の指令送信部１００は、下位通信ポートＰＢから、下位のモニタ装置Ｍ２宛てに、指令の要否に関する問い合わせである個別指令を送信する（ステップＳＴ３０９）。この個別指令の形式は、実施形態２で説明した形式（図６）と同様であってよい。例えば、マスタ装置Ｍ１の指令送信部１００は、モニタ装置Ｍ２のアドレスがアドレス部Ａに格納された個別指令を、下位通信ポートＰＢから送信する。
【０１３８】
モニタ装置Ｍ２においては、指令受信部１０４は、上位通信ポートＰＡから個別指令を受信し、指令転送部１０５は、受信した個別指令を転送する（ステップＳＴ３１０）。モニタ装置Ｍ２では、アドレス判定部１０６は、個別指令に自機アドレスが含まれているかを判定する。ここでは、個別指令に自機アドレスが含まれているので、モニタ装置Ｍ２の回答送信部１０９は、下位通信路９０を介して受信した問い合わせに対する回答である個別応答を送信する（ステップＳＴ３１１）。
【０１３９】
ステップＳＴ３１１で送信される個別応答には、スレーブ機器Ｓ７に対する指令の有無を識別する情報と指令内容を示す情報が格納される。指令内容としては、スレーブ機器Ｓ７に実行させるコマンドであってもよいし、メモリに書き込む設定情報であってもよい。コマンドや設定情報を決定する方法は、実施形態２の１対１通信時の方法と同様であってよい。回答送信部１０９は、予め定められた条件に基づいて指令の有無を判定すればよく、例えば、所定の通信周期が訪れたか、前回指令を送信してから所定時間が経過したか、スレーブ機器Ｓ７から受信した回転角が所定値であるか等に基づいて指令の要否を判定してもよい。なお、回答送信部１０９は、特に指令の要否を判定することなく、マスタ装置Ｍ１から問い合わせを受信した場合に、毎回指令する旨の回答をするようにしてもよい。
【０１４０】
マスタ装置Ｍ１においては、応答受信部１０１が回答を受信すると、指令送信部１００は、受信した回答に基づいて、代理で指令を送信するかを決定する。例えば、指令送信部１００は、指令が必要である旨の情報が回答に含まれていた場合、代理で指令を送信すると判定する。代理の指令は、次の通信周期以降で送信されるようにすればよい。なお、ステップＳＴ３１２に示すように、モニタ装置Ｍ３及びスレーブ機器Ｓの動作は、ステップＳＴ３０２〜ステップＳＴ３０８と同様であってよい。
【０１４１】
次の通信周期Ｔｃｙｃが訪れると、マスタ装置Ｍ１の指令送信部１００は、下位通信路９０を介して受信した回答に基づいて、下位通信ポートＰＢから、下位のモニタ装置Ｍ２に対応するスレーブ機器Ｓ６宛ての個別指令を代理で送信する（ステップＳＴ３１３）。例えば、指令送信部１００は、指令のアドレス部Ａの宛先にスレーブ機器Ｓ６のアドレスを格納し、回答に含まれるコマンドや設定情報をデータ部ＤＴ１に格納して、モニタ装置Ｍ２の代わりに指令を送信することになる。
【０１４２】
以降、ステップＳＴ３１４において、スレーブ機器Ｓ６宛ての個別指令が転送される様子は、実施形態２で説明した１対１通信の流れと同様となる。個別指令のアドレス部Ａには、スレーブ機器Ｓ６宛てのアドレスが含まれているので、スレーブ機器Ｓ６においては、アドレス判定部２０２は自機宛ての指令であると判定することになる。この場合、スレーブ機器Ｓ６において、コマンド実行部２０３は指令に含まれるコマンドを実行し、応答のアドレス部Ａにモニタ装置Ｍ２のアドレスを格納し、コマンドの実行結果をデータ部ＤＴ２に格納した応答を送信する。
【０１４３】
なお、マスタ装置Ｍ１は、モニタ装置Ｍ３に対しても同様にして、指令の要否を問い合わせて、モニタ装置Ｍ３から受信した回答に基づいて、モニタ装置Ｍ３の代理で、スレーブ機器Ｓ５又はスレーブ機器Ｓ６宛ての指令を送信することになる。また、マスタ装置Ｍ１が、自機に対応するスレーブ機器Ｓ８に指令を送信する場合は、実施形態２で説明した１対１通信と同様の流れで個別指令が送信される。
【０１４４】
［３−３．モータ制御システムで実行される処理］
次に、モータ制御システム１で実行される処理の流れを説明する。スレーブ機器Ｓの処理の流れは、実施形態２と同様である。ここでは、ここでは、初期化処理が完了した後のマスタ装置Ｍ１とモニタ装置Ｍ２，Ｍ３の動作を説明する。
【０１４５】
図１４は、マスタ装置Ｍ１の処理を示すフローチャートである。図１４に示すように、指令送信部１００は、全体指令、モニタ装置Ｍ２，Ｍ３への問い合わせである個別指令、又はスレーブ機器Ｓへの個別指令の何れを送信するかを判定する（ステップＳＴ４００）。指令送信部１００は、予め定められた方法に基づいて、これらの何れを送信するかを判定すればよい。例えば、指令送信部１００は、定期的にモニタ装置Ｍ２，Ｍ３に指令の要否を問い合わせるようにしてもよいし、スレーブ機器Ｓ８から受信した回転角が所定値であった場合にスレーブ機器Ｓ８への個別指令を送信するようにしてもよい。更に、指令送信部１００は、前の通信周期において、モニタ装置Ｍ２，Ｍ３から指令不要の回答を受信した場合に全体指令をするようにしてもよいし、前の通信周期において、モニタ装置Ｍ２，Ｍ３から指令要の回答を受信した場合に、代理で個別指令をするようにしてもよい。
【０１４６】
ステップＳＴ４００において全体指令を送信すると判定された場合（ステップＳＴ４００；全体指令）のステップＳＴ４０１の処理は、ステップＳＴ１０１と同様であってよい。一方、ステップＳＴ４００においてモニタ装置Ｍ２，Ｍ３への問い合わせの個別指令を送信すると判定された場合（ステップＳＴ４００；問い合わせ）、指令送信部１００は、問い合わせの個別指令を送信する（ステップＳＴ４０２）。ステップＳＴ４０２においては、指令送信部１００は、モニタ装置Ｍ２，Ｍ３のうち問い合わせ先のアドレスをアドレス部Ａに格納した個別指令を送信する。なお、個別指令のデータ部ＤＴ１には、特に何も格納されないようにしてもよいし、指令要否の問い合わせであることを識別する情報が含まれていてもよい。
【０１４７】
一方、ステップＳＴ４００においてスレーブ機器Ｓ８への個別指令を送信すると判定された場合（ステップＳＴ４０１；個別指令）のステップＳＴ４０３は、ステップＳＴ１０２と同様であってよい。続くステップＳＴ４０４〜ステップＳＴ４０５は、それぞれステップＳＴ１０３〜ステップＳＴ１０４と同様である。ステップＳＴ４０５において、自機アドレスが格納されていると判定された場合（ステップＳＴ４０５；Ｙ）、マスタ装置Ｍ１のアドレス判定部１０６は、モニタ装置Ｍ２，Ｍ３の回答かを判定する（ステップＳＴ４０５）。ステップＳＴ４０５においては、アドレス判定部１０６は、応答の送信元情報がモニタ装置Ｍ２，Ｍ３のアドレスであるかを判定することになる。
【０１４８】
モニタ装置Ｍ２，Ｍ３からの回答ではないと判定された場合（ステップＳＴ４０５；Ｎ）のステップＳＴ４０６は、ステップＳＴ１０５と同様であってよい。一方、モニタ装置Ｍ２，Ｍ３からの回答であると判定された場合（ステップＳＴ４０５；Ｙ）、マスタ装置Ｍ１は、回答を参照して、代理送信が必要かを判定する（ステップＳＴ４０７）。例えば、応答のデータ部ＤＴ１に指令の要否が格納されている。
【０１４９】
代理送信が必要であると判定された場合（ステップＳＴ４０７；Ｙ）、マスタ装置Ｍ１は、次の通信周期において代理で指令を送信すると決定する（ステップＳＴ４０８）。この場合、指令送信部１００は、次の通信周期の個別指令を生成してもよい。例えば、指令送信部１００は、代理送信の宛先となるスレーブ機器Ｓを特定する。このスレーブ機器Ｓは、回答に含まれていてもよいし、回答の送信元情報が示すモニタ装置Ｍ２，Ｍ３に対応するスレーブ機器Ｓを特定するようにしてもよい。なお、ステップＳＴ４０９は、ステップＳＴ１０６と同様であってよい。
【０１５０】
図１５は、モニタ装置Ｍ２の処理を示すフローチャートである。図１５に示すように、指令受信部１０４は、上位通信ポートＰＡから指令を受信したかを判定する（ステップＳＴ５００）。指令を受信したと判定された場合（ステップＳＴ５００；Ｙ）、指令転送部１０５は、下位通信ポートＰＢから、受信した指令を転送する（ステップＳＴ５０１）。
【０１５１】
アドレス判定部１０６は、受信した指令のアドレス部Ａに自機アドレスが格納されているかを判定する（ステップＳＴ５０２）。アドレス部Ａに自機アドレスが格納されている場合（ステップＳＴ５０２；自機アドレス）、回答送信部１０９は、上位通信ポートＰＡから、指令の要否に関する回答を送信する（ステップＳＴ５０３）。ステップＳＴ５０３においては、回答送信部１０９は、アドレス部Ａの送信元情報として自機アドレスを格納し、宛先情報としてマスタ装置Ｍ１のアドレスを格納する。データ部ＤＴ２には、回答内容が格納されるようにしてよい。
【０１５２】
応答受信部１０７は、下位通信ポートＰＢから、応答を受信したかを判定する（ステップＳＴ５０４）。応答を受信したと判定された場合（ステップＳＴ５０４；Ｙ）、アドレス判定部１０６は、送信元情報が自機に対応するスレーブ機器Ｓ７のアドレスであるかを判定する（ステップＳＴ５０５）。自機に対応するスレーブ機器Ｓ７のアドレスであると判定された場合（ステップＳＴ５０５；Ｙ）、アドレス判定部１０６は、メモリ２２に応答を取り込む（ステップＳＴ５０６）。
【０１５３】
応答転送部１０８は、受信した応答を上位通信ポートＰＡから転送する（ステップＳＴ５０７）。一方、応答を受信したと判定されない場合（ステップＳＴ５０４；Ｎ）、ステップＳＴ５００の処理に戻る。
【０１５４】
以上説明した実施形態３によれば、モータ制御システム１がマスタ装置Ｍ１及びモニタ装置Ｍ２，Ｍ３という複数のモータ制御装置を有する場合に、下位通信路９０において、これらを直列に接続することで省配線が可能になる。更に、下位通信路９０では、スレーブ機器Ｓも直列に接続されており、マスタ装置Ｍ１及びモニタ装置Ｍ２，Ｍ３は、自機に対応するスレーブ機器Ｓ以外のスレーブ機器Ｓから応答を受信するが、アドレス部Ａを参照することで、自機に対応するスレーブＳの応答を特定して所定の処理を実行することができる。
【０１５５】
また、最上位のマスタ装置Ｍ１は、下位のモニタ装置Ｍ２，Ｍ３の代理で指令を送信することによって、モータ制御システム１における指令を管理することができる。例えば、下位のモニタ装置Ｍ２，Ｍ３が勝手に指令を送信すると、応答が集中してしまい、通信周期内に応答が間に合わない可能性があるが、最上位のマスタ装置Ｍ１が下位のモニタ装置Ｍ２，Ｍ３の指令を管理することで、そのような状況の発生を防止することができる。
【０１５６】
［４．実施形態４］
本発明者の見地によれば、下位通信路に直列に接続されたスレーブ機器の中には、頻繁に情報を取得する必要のある重要度の高いものもあれば、それほど頻繁に情報を取得しなくてもよい重要度の低いものもある。例えば、ロボットシステムのように多数のセンサが必要なシステムにモータ制御システムを適用した場合には、スレーブ機器間での重要度の差が大きくなる傾向がある。しかし、全スレーブ機器のデータ伝送周期が同じである場合、重要度の高い情報を頻繁に取得できなくなってしまったり、重要度の低い情報を頻繁に取得するために通信量が増加したりする可能性がある。そこで本発明の発明者は、全機器で同じ周期を使用するのではなく、スレーブ機器に応じた周期を設定するために鋭意研究開発を行った結果、新規かつ独創的なモータ制御システム等に想到した。以降、実施形態４に係るモータ制御システム等を詳細に説明する。
【０１５７】
実施形態４では、モータ制御システム１をロボットシステムに適用した例を説明する。図１６は、ロボットシステムの一例を示す図である。図１６に示すように、ロボットシステムＲＳは、モータ制御システム１と、ロボットＲ１，Ｒ２と、を含む。なお、実施形態４のモータ制御システム１は、１台のマスタ装置Ｍ１を含むものとして説明する。
【０１５８】
マスタ装置Ｍ１は、複数の下位通信ポートＰＢ１〜ＰＢ５（以降、これらをまとめて単に下位通信ポートＰＢともいう。）と、複数チャンネルの下位通信路９０−１〜９０−５（以降、これらをまとめて単に下位通信路９０ともいう。）と、を含む。実施形態１〜３と同様に、各下位通信路９０には、複数のスレーブ機器Ｓが直列で接続されるようにしてよいが、下位通信路９０−５のように、１台のスレーブ機器Ｓ５０だけ接続されるものが含まれていてもよい。
【０１５９】
なお、ここでは、ロボットＲ１内に３台のモータが含まれており、ロボットＲ２内に１つのモータが含まれている場合を説明する。
【０１６０】
下位通信路９０−１には、スレーブ機器Ｓ１０〜Ｓ１４が直列に接続される。ここでは、スレーブ機器Ｓ１０〜Ｓ１４の各々は、エンコーダではなく、Ｉ／Ｏ機器やＡ／Ｄ機器などの出力機器とする。このため、下位通信路９０−１は、出力機器用の通信路ということができる。このように、モータ制御システム１には、エンコーダではない出力機器のみが直列に接続される下位通信路９０−１が含まれているようにしてもよい。
【０１６１】
下位通信路９０−２には、スレーブ機器Ｓ２０〜Ｓ２２が直列に接続される。例えば、スレーブ機器Ｓ２０は、Ｉ／Ｏ機器などの入出力機器であり、スレーブ機器Ｓ２１は、ロボットＲ１内の各モータの回転角を検出するエンコーダを含む。本実施形態では、ロボットＲ１は３台のモータを含むので、スレーブ機器Ｓ２１は、３台のエンコーダを含む。スレーブ機器Ｓ２２は、例えば加速度センサや角加速度センサなどの複数のセンサを含む。
【０１６２】
下位通信路９０−３には、スレーブ機器Ｓ３０〜Ｓ３１が直列に接続される。例えば、スレーブ機器Ｓ３０はＩ／Ｏ機器であり、スレーブ機器Ｓ３１は、ロボットＲ２内のモータの回転角を検出するエンコーダである。下位通信路９０−４には、スレーブ機器Ｓ４０とスレーブ機器Ｓ３０とが直列に接続される。例えば、スレーブ機器Ｓ４０は、Ｉ／Ｏ機器やＡ／Ｄ機器である。なお、下位通信路９０−４は、下位通信路９０−１と同様、エンコーダを含まないので、出力機器用の通信路といえる。
【０１６３】
実施形態１〜３では、スレーブ機器Ｓのデータ交換周期が同じである場合を説明したが、実施形態４では、複数のデータ交換周期が存在する場合を説明する。例えば、モータの回転角のような重要度が比較的高い情報は、データ交換周期を短く設定して頻繁にマスタ装置Ｍ１に送信し、Ｉ／Ｏ機器に接続された温度センサが検出する温度のように、マスタ装置Ｍ１にそれほど頻繁に送信しなくてもよい情報については、データ交換周期を長く設定するようにしてもよい。
【０１６４】
実施形態４の機能ブロック図は、実施形態２又は３と同様であってよい。例えば、各スレーブ機器Ｓの応答送信部２０４が、指令受信部２００が受信した指令に応じて応答を送信する点は同様であってよい。実施形態４では、各スレーブ機器Ｓの応答送信部２０４は、少なくとも１つの他のスレーブ機器Ｓとは異なるデータ交換周期で、回転角又は関連情報を送信する。即ち、ある１つの下位通信路９０において、複数のデータ交換周期が混在していることになる。各スレーブ機器Ｓのデータ交換周期は、予めスレーブ機器Ｓ内のメモリに記憶される。各スレーブ機器Ｓの応答送信部２０４は、自機のデータ交換周期ごとに、回転角又は出力情報を送信する。
【０１６５】
例えば、応答送信部２０４は、他機の応答送信部２０４の送信タイミングに基づいて定まる送信タイミングで、回転角又は関連情報を含む応答を送信するようにしてよい。各スレーブ機器Ｓの応答送信部２０４は、指令に含まれる通信周期カウンタ部ＣＴに基づいて、応答の送信タイミングであるかを判定する。例えば、スレーブ機器Ｓごとに応答の送信タイミングが定められており、応答送信部２０４は、通信周期カウンタ部ＣＴが示す値が自機の送信タイミングを示している場合に応答を送信する。
【０１６６】
以降、下位通信路９０−１〜９０−４の各々のデータ交換周期を例に挙げながら、実施形態４における応答送信部２０４の機能を説明する。
【０１６７】
図１７は、下位通信路９０−１におけるデータ交換周期の説明図である。図１７に示すように、例えば、下位通信路９０−１では、スレーブ機器Ｓ１０のデータ交換周期が１２５μｓであり、スレーブ機器Ｓ１１〜Ｓ１４のデータ交換周期は５００μｓとする。また、下位通信路９０−１の通信周期Ｔｃｙｃ１は、６２．５μｓとする。なお、図１７では、図示を省略しているが、通信周期Ｔｃｙｃ１ごとに、マスタ装置Ｍ１の指令送信部１００は、全体指令を送信しているものとする。
【０１６８】
下位通信路９０−１では、１通信周期Ｔｃｙｃ１あたり１台のスレーブ機器Ｓの応答送信部２０４が応答を送信する。各通信周期Ｔｃｙｃ１で応答を送信するスレーブ機器Ｓは、予め定められている。ここでは、８周期が１サイクル（５００μｓ）として定められており、例えば、１周期目、３周期目、５周期目、及び７周期目において、スレーブ機器Ｓ１０の応答送信部２０４が応答を送信する。その合間の周期において、他のスレーブ機器Ｓ１０の応答送信部２０４が応答を送信するようになっており、例えば、２周期目ではスレーブ機器Ｓ１１の応答送信部２０４が応答を送信し、４周期目ではスレーブ機器Ｓ１２の応答送信部２０４が応答を送信し、６周期目ではスレーブ機器Ｓ１３の応答送信部２０４が応答を送信し、８周期目ではスレーブ機器Ｓ１４の応答送信部２０４が応答を送信する。以降、次のサイクルの１周期目からは、上記の順番で応答が送信される。
【０１６９】
先述したように、各スレーブ機器Ｓのメモリには、応答の送信タイミングを識別するための送信タイミング情報が記憶されている。各スレーブ機器Ｓの応答送信部２０４は、送信タイミング情報に基づいて、自機の応答の送信タイミングであるかを判定する。応答送信部２０４は、自機の応答の送信タイミングであると判定した場合に応答を送信する。例えば、送信タイミング情報は、何周期目で応答を送信するかを示す情報であってよい。更に、送信タイミング情報は、１サイクルの中の開始時点から何μｓ後に応答を送信するかを示す情報であってもよい。この場合、例えば、各スレーブ機器Ｓの応答送信部２０４は、指令に含まれる通信周期カウンタＣＴと、送信タイミング情報と、に基づいて、自機の応答の送信タイミングであるかを判定する。
【０１７０】
例えば、スレーブ機器Ｓ１０の応答送信部２０４は、通信周期カウンタＣＴと自機の送信タイミング情報とに基づいて、サイクル内の１周期目、３周期目、５周期目、又は７周期目であるかを判定し、何れかの周期であれば自機の応答の送信タイミングであると判定する。また例えば、スレーブ機器Ｓ１１の応答送信部２０４は、通信周期カウンタＣＴと自機の送信タイミング情報とに基づいて、サイクル内の２周期目であるかを判定し、スレーブ機器Ｓ１２の応答送信部２０４は、通信周期カウンタＣＴと自機の送信タイミング情報とに基づいて、サイクル内の４周期目であるかを判定する。また例えば、スレーブ機器Ｓ１３の応答送信部２０４は、通信周期カウンタＣＴと自機の送信タイミング情報とに基づいて、サイクル内の６周期目であるかを判定し、スレーブ機器Ｓ１４の応答送信部２０４は、通信周期カウンタＣＴと自機の送信タイミング情報とに基づいて、サイクル内の８周期目であるかを判定する。スレーブ機器Ｓ１０〜Ｓ１４の応答送信部２０４は、自機の応答の送信タイミングではないと判定した場合は、応答を送信せず、自機の応答の送信タイミングであると判定した場合に、回転角や関連情報を含む通常応答を送信することになる。
【０１７１】
図１８は、下位通信路９０−２におけるデータ交換周期の説明図である。図１８に示すように、例えば、下位通信路９０−２では、スレーブ機器Ｓ２０〜Ｓ２２のデータ交換周期が６２．５μｓであるが、スレーブＳ２２は、４種類のデータを順次送信するものとする。下位通信路９０−２の通信周期Ｔｃｙｃ２を６２．５μｓとすると、スレーブＳ２２は、１通信周期Ｔｃｙｃ２ごとに１種類ずつデータを送信するため、実際のデータ交換周期は４通信周期分Ｔｃｙｃ２の２５０μｓとなる。
【０１７２】
下位通信路９０−２では、１通信周期Ｔｃｙｃ２内で各スレーブ機器Ｓの応答送信部２０４が応答を送信する。例えば、各スレーブ機器Ｓの送信タイミング情報に、毎通信周期Ｔｃｙｃ２で応答を送信するように定められているようにしてもよいし、特に送信タイミング情報を記憶せずに、各スレーブ機器Ｓの応答送信部２０４は、指令を受信するたびに応答を送信してもよい。なお、スレーブ機器Ｓ２１は、３台のエンコーダを含むので、３つ分の回転角のそれぞれが応答として送信されることになる。
【０１７３】
先述したようにスレーブ機器Ｓ２２の応答送信部２０４は、各通信周期Ｔｃｙｃ２において、４種類のデータのうち何れか１つを送信する。各通信周期Ｔｃｙｃ２で送信するデータの種類は予め定められているようにしてよい。例えば、４通信周期Ｔｃｙｃ２を１サイクルとすると、スレーブ機器Ｓ２２の応答送信部２０４は、１サイクル内で４種類のデータの各々を所定の順番で送信する。どのデータをどの通信周期Ｔｃｙｃ２で送信するかが送信タイミング情報に定められているようにしてよい。スレーブ機器Ｓ２２の応答送信部２０４は、送信タイミング情報に基づいて、現在の通信周期Ｔｃｙｃ２で送信すべきデータを特定し、当該データを含む応答を送信することになる。
【０１７４】
例えば、図１８に示すように、スレーブ機器Ｓ２２の応答送信部２０４がデータＡ、データＢ、データＣ、及びデータＤの４種類を送信可能とすると、各サイクルの１周期目でデータＡを送信し、２周期目でデータＢを送信し、３周期目でデータＣを送信し、４周期目でデータＤを送信する旨が送信タイミング情報に定められているようにしてよい。応答送信部２０４は、指令に含まれる通信周期カウンタＣＴを参照して、現在の周期で送信できデータの種類を特定し、当該種類のデータを送信することになる。
【０１７５】
図１９は、下位通信路９０−３におけるデータ交換周期の説明図である。図１９に示すように、例えば、下位通信路９０−３では、スレーブ機器Ｓ３０及びＳ３１のデータ交換周期はともに６２．５μｓである。このように、下位通信路９０の中には、データ交換周期が同じものが含まれていてもよい。図１９に示すように、下位通信路９０−３の通信周期Ｔｃｙｃ３は、データ交換周期と同じ６２．５μｓである。このため、スレーブ機器Ｓ３０及びＳ３１は、毎通信周期Ｔｃｙｃ３ごとに応答を送信することになる。この場合の応答送信部２０４の処理は、実施形態２又は３で説明したものと同様であってよい。
【０１７６】
図２０は、下位通信路９０−４におけるデータ交換周期の説明図である。図２０に示すように、例えば、下位通信路９０−４では、スレーブ機器Ｓ４０のデータ交換周期は５００μｓであり、スレーブ機器Ｓ３０のデータ交換周期は１２５μｓである。下位通信路９０−４の通信周期Ｔｃｙｃ４は、６２．５μｓとする。なお、スレーブ機器Ｓ３０のように、下位通信路９０の系統によりデータ伝送周期が異なるものが含まれていてもよい。
【０１７７】
下位通信路９０−４では、どのスレーブ機器Ｓも応答を返さない通信周期Ｔｃｙｃ４が存在する。例えば、８周期を１サイクルとすると、４周期目、６周期目、及び８周期目は、下位通信路９０−４のどのスレーブ機器Ｓも応答を返さない周期となる。例えば、あるサイクルの１周期目、３周期目、５周期目、及び７周期目では、スレーブ機器Ｓ４１の応答送信部２０４が応答を送信し、２周期目では、スレーブ機器Ｓ４０の応答送信部２０４が応答を送信する。
【０１７８】
下位通信路９０−４においても、下位通信路９０−１〜９０−３と同様、各スレーブ機器Ｓのメモリには、応答の送信タイミングを識別するための送信タイミング情報が記憶されているようにしてよい。例えば、スレーブ機器Ｓ４０の応答送信部２０４は、通信周期カウンタＣＴと自機の送信タイミング情報とに基づいて、サイクル内の２周期目であるかを判定し、２周期目であれば自機の応答の送信タイミングであると判定する。また例えば、スレーブ機器Ｓ４１の応答送信部２０４は、通信周期カウンタＣＴと自機の送信タイミング情報とに基づいて、サイクル内の１周期目、３周期目、５周期目、又は７周期目であるかを判定することになる。
【０１７９】
実施形態４によれば、全スレーブ機器Ｓで同じデータ伝送周期を使用するのではなく、スレーブ機器Ｓに応じたデータ伝送周期を設定することができる。例えば、マスタ装置Ｍ１に頻繁に伝えるべき回転角などの情報は、データ伝送周期を短く設定し、そこまで頻繁に受信しなくても良い情報は、データ伝送周期を長く設定することができ、情報の重要度に応じた周期を設定することができる。その結果、下位通信路９０における通信量を削減することもできる。
【０１８０】
また、ある特定の期間に各スレーブ機器Ｓの回転角などの送信タイミングが集中すると、周期の短いスレーブ機器Ｓの情報が受信できなくなってしまう可能性があるが、各スレーブ機器Ｓの回転角などの送信タイミングを、他機の送信タイミングに基づいて決定することで、このような状況の発生を防止することができる。
【０１８１】
また、モータ制御システム１をロボットシステムＲＳに適用することで、センサ類が比較的多いロボットシステムＲＳにおける物理的又は処理的なコストを軽減することができる。
【０１８２】
なお、実施形態４において、最も長いデータ伝送周期は、最も短いデータ伝送周期の整数倍であってよい。そして、最も長いデータ伝送周期の開始時点と、最も短いデータ伝送周期の開始時点と、を合わせるようにしてもよい。更に、データ伝送周期は、任意の長さに設定可能であるが、ある時点にデータの送信タイミングが集中すると１通信周期内に応答を受信しきれなくなるので、１通信周期内に送信可能なデータ量を超えないように、スレーブ機器Ｓで互いにずらした送信タイミングが設定されるようにしてよい。
【０１８３】
［５．実施形態５］
本発明者の見地によれば、下位通信路に直列に接続されたスレーブ機器の中には、出力する情報のデータサイズが大きいものもあれば少ないものもある。しかし、全スレーブ機器で応答のデータ部が共通のデータ長である場合、データ部に実際に格納するデータサイズが大かろうが小さかろうが応答の伝送フレーム全体のデータ長は変わらない。このため、データサイズが小さいものを応答に含めるときには、使用していない部分のデータ長も増えてしまい、下位通信路の通信量が増加してしまう。そこで本発明の発明者は、スレーブ機器に応じたデータ長の応答を送信するために鋭意研究開発を行った結果、新規かつ独創的なモータ制御システム等に想到した。以降、実施形態５に係るモータ制御システム等を詳細に説明する。
【０１８４】
モータ制御システム１は、実施形態２で説明したように１対Ｎ通信が可能な接続形態であってもよいし、実施形態３で説明したようにＭ対Ｎ通信が可能な接続形態であってもよい。更に、実施形態４で説明したようにモータ制御システム１をロボットシステムＲＳに適用してもよい。ここでは、説明の簡略化のため、１台のマスタ装置Ｍ１が複数のスレーブ機器Ｓと通信する場合を説明する。マスタ装置Ｍ１の物理構成は、実施形態１〜３と同様であってよいが、本実施形態では、スレーブ機器Ｓの物理構成が実施形態１〜３とは異なる。
【０１８５】
図２１は、実施形態５のスレーブ機器Ｓの物理構成を示す図である。図２１に示すように、スレーブ機器Ｓは、回転角又は関連情報を検出するセンサが接続される複数のインタフェースＩＦ１〜ＩＦ４（以降、これらをまとめて単にインタフェースＩＦともいう。）を含む。例えば、図２１に示すスレーブ機器Ｓがエンコーダである場合、エンコーダであるスレーブ機器Ｓが複数のインタフェースＩＦを含むことになる。即ち、本実施形態のスレーブ機器Ｓは、エンコーダやトルクセンサとして機能しつつ、Ｉ／Ｏ機器としての機能も有する。
【０１８６】
例えば、インタフェースＩＦ１，ＩＦ２は、Ａ／Ｄ機器であってよい。また例えば、インタフェースＩＦ３，ＩＦ４は、シリアル通信が可能なインタフェースである。各インタフェースＩＦは、出力情報を検出する出力機器が接続される。このため、スレーブ機器Ｓがエンコーダである場合、回転角だけではなく、インタフェースＩＦに接続する出力機器に応じた任意の種類の情報を取得可能となる。
【０１８７】
スレーブ機器Ｓは、インタフェースＩＦごとに有効／無効を切り替えることができる。スレーブ機器Ｓは、有効であるインタフェースＩＦに接続された出力機器から関連情報を取得し、無効であるインタフェースＩＦに接続された出力機器からは関連情報を取得しないようにしてよい。インタフェースＩＦの有効／無効は、マスタ装置Ｍ１の指令に含まれる設定情報に示されてよい。このため、例えば、マスタ装置Ｍ１は、スレーブ機器Ｓに対して個別指令を送信することによって、スレーブ機器Ｓの各インタフェースＩＦの有効／無効を切り替えることができるようになっている。
【０１８８】
また、本実施形態では、インタフェースＩＦごとに、取得するデータのデータサイズが関連付けられている。インタフェースＩＦとデータサイズとの関係は、予めスレーブ機器Ｓのメモリに記憶されているようにしてよい。各インタフェースＩＦで取得可能なデータサイズは、共通であってもよいし、互いに異なっていてもよい。例えば、インタフェースＩＦ１，ＩＦ２は２バイトのデータを取得し、インタフェースＩＦ３，ＩＦ４は４バイトのデータを取得するなどのようにしてよい。また、各インタフェースＩＦに関連付けられるデータサイズは、当該インタフェースＩＦに接続する出力機器の種類に応じて異なってもよい。
【０１８９】
次に、実施形態５におけるモータ制御システム１の機能について説明する。マスタ装置Ｍ１の機能ブロックは、実施形態２〜４の何れかで説明したものと同様であってよい。ただし、マスタ装置Ｍ１の指令送信部１００は、下位通信ポートから、各スレーブ機器Ｓが情報を出力するインタフェースを識別するための指令を送信する。例えば、指令送信部１００は、各スレーブ機器Ｓ宛ての個別指令のデータ部ＤＴ１に、当該スレーブ機器ＳのインタフェースＩＦの有効／無効を設定するためのコマンドを含める。例えば、当該コマンドには、スレーブ機器Ｓの複数のインタフェースＩＦごとに、有効又は無効の何れかが指定されている。
【０１９０】
マスタ装置Ｍ１は、任意のタイミングで、インタフェースＩＦの有効／無効のコマンドを個別指令に含めて送信すればよい。例えば、マスタ装置Ｍ１は、初期化時に、各スレーブ機器Ｓに対して、インタフェースＩＦの有効／無効のコマンドを個別指令に含めて送信するようにしてよい。
【０１９１】
図２２は、実施形態５におけるスレーブ機器Ｓの機能ブロック図である。図２２に示すように、スレーブ機器Ｓは、データ長決定部２０７が実現される。データ長決定部２０７は、下位通信路９０を介して受信した個別指令が示すインタフェースＩＦに基づいて、自機の応答のデータ長を決定する。例えば、データ長決定部２０７は、個別指令において有効とされているインタフェースＩＦに基づいて、応答のデータ長を変化させる。本実施形態では、応答のデータ長は可変となっている。
【０１９２】
図２３は、実施形態５における応答のデータフォーマットを示す図である。図２３に示すように、実施形態５の応答は、実施形態２で説明した各項目に加えて、データ長Ｌを含む。データ長Ｌは、応答のデータ長を示す数値が格納される。そして、データ部ＤＴ２のデータ長は可変であり、データ長決定部２０７が決定したデータ長となるようにデータ部ＤＴのデータ長が決定される。
【０１９３】
例えば、各スレーブ機器Ｓの指令受信部２００が自機宛ての個別指令を受信した場合、データ長決定部２０７は、個別指令に含まれるコマンドを実行して、自機の複数のインタフェースＩＦの有効／無効を設定する。そして、データ長決定部２０７は、有効にしたインタフェースＩＦに関連付けられたデータサイズに基づいて、応答のデータ長を決定する。データ長決定部２０７が決定したデータ長は、応答のデータ長Ｌに格納される。
【０１９４】
例えば、図２１に示すスレーブ機器Ｓにおいて、インタフェースＩＦ１，ＩＦ３のみが有効となった場合、データ長決定部２０７は、インタフェースＩＦ１に関連付けられた２バイトと、インタフェースＩＦ３に関連付けられた４バイトと、を合わせた６バイトがデータ部ＤＴ２に格納されるように、応答のデータ長を決定する。他の場合も同様に、データ長決定部２０７は、有効になったインタフェースＩＦに関連付けられたバイト数の合計値に基づいて、応答のデータ長を決定することになる。
【０１９５】
各スレーブ機器Ｓの応答送信部２０４は、データ長決定部２０７が決定したデータ長の応答を送信する。応答送信部２０４は、有効になったインタフェースＩＦが取得した情報を応答のデータ部ＤＴ２に格納し、応答を送信することになる。なお、この応答は、全体指令に対する通常応答であってよい。
【０１９６】
各スレーブ機器Ｓの応答送信部２０４は、少なくとも１つの他のスレーブ機器Ｓとは異なるデータ長の伝送フレームに、回転角又は関連情報を格納して送信することになる。別の言い方をすれば、全てのスレーブ機器Ｓの応答のデータ長は、複数のデータ長を含む。即ち、データ長が同じスレーブ機器Ｓの数は、下位通信路９０に接続されたスレーブ機器Ｓの総数台数よりも小さい。なお、全てのスレーブ機器Ｓの応答のデータ長が互いに異なってもよい。スレーブ機器Ｓの台数をＮとすると、データ長が同じスレーブ機器がＮより少なければよい。
【０１９７】
上記のように、下位通信路９０においては、各スレーブ機器Ｓが有するインタフェースＩＦは異なっていてよいし、インタフェースＩＦに関連付けられたバイト数も異なっていてよい。更に、有効になるインタフェースＩＦは、スレーブ機器Ｓに応じて異なっていてもよい。このため、下位通信路９０では、応答のデータ長が２種類以上のものが混在していることになる。
【０１９８】
実施形態５によれば、スレーブ機器Ｓに応じたデータ長の伝送フレームを用いて応答するので、実データの部分に比べて応答全体のデータ長が大きすぎるような状態が発生することを防止でき、必要最低限のデータ長の伝送フレームで応答することができる。このため、下位通信路９０における通信量を削減することができる。
【０１９９】
また、マスタ装置Ｍ１が各スレーブ機器Ｓから情報を得たいインタフェースＩＦに応じて伝送フレームのデータ長が決まるので、データ長を必要最小限に抑えることができ、より効果的に通信量を削減することができる。更に、マスタ装置Ｍ１側で得たい情報を指示することができる。
【０２００】
なお、実施形態５では、スレーブ機器Ｓが複数のインタフェースＩＦを有する場合を説明したが、スレーブ機器Ｓは、特に図２１のようなインタフェースＩＦを有している必要はない。例えば、スレーブ機器Ｓは、自身の出力モードを複数種類持っており、出力モードごとにデータ長が異なるようにしてよい。この場合、データ長決定部２０７は、指令で指定されたモードに関連付けられたデータ長に基づいて、応答のデータ長を決定することにある。
【０２０１】
［６．実施形態６］
本発明者の見地によれば、モータ制御装置の下位通信路が複数チャンネル存在し、各チャンネルから得た情報に基づいて処理が実行される場合に、各チャンネルの通信周期がばらばらだと、他のチャンネルの通信周期の終了を待ってから処理を実行しなければならず、処理効率が悪い。そこで本発明の発明者は、複数チャンネルが存在する場合に効率の良い処理を実行するために鋭意研究開発を行った結果、新規かつ独創的なモータ制御システム等に想到した。以降、実施形態６に係るモータ制御システム等を詳細に説明する。
【０２０２】
実施形態６では、モータ制御システム１は、複数チャンネルの下位通信路９０を有し、各チャンネルでは、複数のスレーブ機器Ｓが直列で接続され、定周期通信が行われている場合を説明する。なお、下位通信路９０のチャンネルごとに定周期通信の周期が異なっていてもよいが、ここでは同じとする。なお、実施形態６の全体構成は、実施形態４で説明した図１６と同様であってよい。
【０２０３】
マスタ装置Ｍ１は、複数の下位通信路９０のうちの何れかのスレーブ機器Ｓから取得した関連情報に基づいて、他の下位通信路９０のスレーブ機器Ｓへの個別指令を送信することがある。例えば、マスタ装置Ｍ１の指令送信部１００は、図１６に示す下位通信路９０−１のスレーブ機器Ｓ１４の圧力センサで検出した圧力情報に基づいて、下位通信路９０−２のスレーブ機器Ｓ２１の設定情報を書き込むための個別指令を送信するようにしてよい。他にも例えば、マスタ装置Ｍ１の指令送信部１００は、ロボットＲ１の下位通信路９０−１，９０−２のスレーブ機器Ｓから受信した情報に基づいて、ロボットＲ２の下位通信路９０−３，９０−４のスレーブ機器Ｓに個別指令を送信するようにしてもよい。この場合、下位通信路９０で同期が取れていないと処理効率が下がってしまうので、同期を取るようにしている。
【０２０４】
図２４は、実施形態６におけるマスタ装置Ｍ１の機能ブロック図である。図２４に示すように、マスタ装置Ｍ１は、通信同期部１１０を更に有する。通信同期部１１０は、各チャンネルの周期を同期させる。例えば、通信同期部１１０は、各チャンネルの通信周期の開始タイミングを合わせる。通信同期部１１０は、所定の同期信号を各下位通信路９０に送信することによって、チャンネル間での同期をとる。同期がとれた場合、マスタ装置Ｍ１が各チャンネルのスレーブ機器Ｓから情報を受信するタイミングも合わせることができる。
【０２０５】
実施形態６によれば、各チャンネルの周期を同期させて処理を実行することができるので、マスタ装置Ｍ１に効率の良い処理を実行させることができる。
【０２０６】
［７．実施形態７］
本発明者の見地によれば、Ｍ対Ｎ通信の接続形態の場合に、マスタ装置がスレーブ機器のアドレスを動的に割り当てると、メンテナンス時などにスレーブ機器を取り外したときに、本来はモニタ装置の制御対象ではないスレーブ機器に、当該モニタ装置の制御対象としてのアドレスが割り当てられてしまうことがある。そこで本発明の発明者は、制御対象の機器を確実に制御させるために鋭意研究開発を行った結果、新規かつ独創的なモータ制御システム等に想到した。以降、実施形態７に係るモータ制御システム等を詳細に説明する。
【０２０７】
実施形態７では、モータ制御システム１が、図１１のＭ対Ｎ通信の接続形態である場合を説明する。マスタ装置Ｍ１は、初期化時に、上位から順番にアドレス（ＩＤ）を割り当てる。例えば、電源投入時は、モニタ装置Ｍ２，Ｍ３及びスレーブ機器Ｓの上位通信ポートＰＡはオンであり、下位通信ポートＰＢはオフであるものとする。また、モニタ装置Ｍ２，Ｍ３及びスレーブ機器Ｓのリピート機能はオフであるものとする。なお、マスタ装置Ｍ１の下位通信ポートＰＢはオンである。
【０２０８】
この場合、電源投入後は、マスタ装置Ｍ１は、モニタ装置Ｍ２のみと通信可能な状態となる。例えば、マスタ装置Ｍ１は、自機が通信可能なモニタ装置Ｍ２に、「１」のアドレスを割り当てる。モニタ装置Ｍ２は、アドレスが割り当てられると、下位通信ポートＰＢをオンにする。この状態になると、マスタ装置Ｍ１は、モニタ装置Ｍ３と通信可能な状態となる。マスタ装置Ｍ１は、通信可能になったモニタ装置Ｍ３に、「２」のアドレスを割り当てる。モニタ装置Ｍ３は、アドレスが割り当てられると、下位通信ポートＰＢをオンにする。以降同様に、マスタ装置Ｍ１は、上位から順番にアドレスを割り当てることになる。
【０２０９】
例えば、メンテナンス時などに、スレーブ機器Ｓ５，Ｓ６が取り外されたとして、モニタ装置Ｍ３の下位通信ポートＰＢと、スレーブ機器Ｓ７の上位通信ポートＰＡと、が下位通信路９０で接続されたとする。この場合、モータ制御システム１の電源が投入されると、マスタ装置Ｍ１は、上位から順番にアドレスを割り当てることになる。このため、通常であれば「５」が割り当てられるスレーブ機器Ｓ７に「３」が割り当てられ、通常であれば「６」が割り当てられるスレーブ機器Ｓ８に「４」が割り当てられることになる。アドレス「３」と「４」は、もともとスレーブ機器Ｓ５，Ｓ６のアドレスなので、モニタ装置Ｍ２は、スレーブ機器Ｓ７，Ｓ８が自機に対応するものとみなしてしまうことになる。これを防止するために、スレーブ機器Ｓは、自身に対応するマスタ装置Ｍ１又はモニタ装置Ｍ２，Ｍ３の識別情報を記憶するようにしている。
【０２１０】
図２５は、実施形態７のスレーブ機器Ｓの機能ブロック図である。図２５に示すように、スレーブ機器Ｓは、識別情報記憶部２０８を含む。識別情報記憶部２０８は、マスタ装置Ｍ１又はモニタ装置Ｍ２，Ｍ３を識別する識別情報を記憶する。例えば、識別情報は、マスタ装置Ｍ１又はモニタ装置Ｍ２，Ｍ３のシリアル番号である。なお、識別情報は、マスタ装置Ｍ１又はモニタ装置Ｍ２，Ｍ３を一意に識別できる情報であればよい。
【０２１１】
例えば、固有のアドレスがマスタ装置Ｍ１又はモニタ装置Ｍ２，Ｍ３に割り当てられているのであれば、アドレスを識別情報として用いてもよい。識別情報は、予めスレーブ機器Ｓに接続したコンピュータによりスレーブ機器Ｓのメモリに記録されるようにすればよい。このコンピュータは、メンテナンスのために用いられるものであってよい。識別情報記憶部２０８は、コンピュータにより指定された、マスタ装置Ｍ１とモニタ装置Ｍ２，Ｍ３のうち制御対象となるものの識別情報を記憶することになる。
【０２１２】
図２６は、実施形態７のマスタ装置Ｍ１の機能ブロック図である。図２６に示すように、マスタ装置Ｍ１は、制御決定部１１１を含む。制御決定部１１１は、下位通信路９０を介して受信した各機器の識別情報に基づいて、モータを制御するかを決定する。制御決定部１１１は、下位通信路９０を介して受信した各機器の識別情報が自機を示すかを判定する。制御決定部１１１は、自機を示さないと判定された場合、モータを制御せず、自機を示すと判定された場合、モータを制御すると決定する。なお、制御決定部１１１は、モニタ装置Ｍ２，Ｍ３にも備えられていてよい。
【０２１３】
実施形態７によれば、スレーブ機器Ｓから受信した識別情報に基づいてモータを制御するかを決定するので、マスタ装置Ｍ１及びモニタ装置Ｍ２，Ｍ３が制御対象のモータを確実に制御することができる。このため、例えば、メンテナンス時などに一部のスレーブ機器Ｓを取り外したとしても、モータ制御装置とスレーブ機器Ｓとが正しい組み合わせで制御をさせることができる。
【０２１４】
なお、各スレーブ機器Ｓの識別情報記憶部２０８は、自機の識別情報を記憶してもよい。この場合、マスタ装置Ｍ１及びモニタ装置Ｍ２，３のメモリには、自機の制御対象となるスレーブ機器Ｓの識別情報が記憶されているものとする。制御決定部１１１は、各スレーブ機器Ｓから受信した識別情報が自機アドレスであるかを判定することになる。
【０２１５】
［８．実施形態８］
本発明者の見地によれば、モータ制御装置の上位通信ポートと下位通信ポートとを予め区別して設けていることがあるが、メンテナンス時などに、下位通信路を上位通信ポートに接続してしまったり、上位通信路を下位通信ポートに接続してしまったりする。そこで本発明の発明者は、通信ポートの区別をなくすために鋭意研究開発を行った結果、新規かつ独創的なモータ制御システム等に想到した。以降、実施形態８に係るモータ制御システム等を詳細に説明する。
【０２１６】
図２７は、実施形態８のモニタ装置Ｍ２，Ｍ３の物理構成を示す図である。図２７に示すように、モニタ装置Ｍ２，Ｍ３は、スイッチＳＡ，ＳＢと、所定の抵抗値又はインピーダンスを有する素子ｒ１，ｒ２と、を有する。なお、ここでは、素子ｒ１，ｒ２が電気抵抗である場合を説明するが、電流を流れにくくするための素子であればよく、他にも例えば、コイルやコンデンサなどであってもよいし、これらの組み合わせであってもよい。各通信ポートＰＣ１，ＰＣ２は、上位と下位の区別がなされておらず、同じ物理的構成の通信ポートである。スイッチＳＡは、通信ポートＰＣ１に接続された下位通信路９０と、素子ｒ１と、を接続するためのものである。スイッチＳＢは、通信ポートＰＣ２に接続された下位通信路９０と、素子ｒ２と、を接続するためのものである。なお、ここでは、素子ｒ１，ｒ２は、下位側の通信ポートに接続されることにより、下位通信路９０上のノイズを低減させる。
【０２１７】
図２８は、実施形態８のモニタ装置Ｍ２，Ｍ３の機能ブロック図である。図２８に示すように、実施形態８では、通信ポート判定部１１２と切替制御部１１３が更に実現される。通信ポート判定部１１２は、複数の通信ポートのうち、マスタ装置Ｍ１が送信した指令を受信した通信ポートを判定する。例えば、通信ポート判定部１１２は、複数の通信ポートのうち、先に情報を受信した方を判定することになる。
【０２１８】
切替制御部１１３は、通信ポート判定部１１２の判定結果に基づいて、複数の通信ポートのうち、素子ｒ１，ｒ２と接続する通信ポートを切り替える。通信ポートＰＣ１，ＰＣ２の何れか一方が素子と接続することになる。ここでは下位側の通信ポートに素子ｒ１，ｒ２を接続するものとする。例えば、切替制御部１１３は、指令を受信した通信ポートではない方の通信ポート（下位側の通信ポート）の下位通信路９０に素子が接続されるように、スイッチを切り替える。また例えば、切替制御部１１３は、指令を受信した通信ポートの下位通信路９０に素子が接続されるように、スイッチを切り替えるようにしてよい。各スレーブ装置Ｓは、上位側に素子が接続される状態、又は、下位側に素子が接続される状態の何れかの状態となる。例えば、図２７に示す場合、モニタ装置Ｍ２の通信ポートＰＣ２に素子ｒ２が接続され、モニタ装置Ｍ３の通信ポートＰＣ１に素子ｒ１が接続されると、モニタ装置Ｍ２，Ｍ３を接続する下位通信路９０に２つの素子が接続されることになる。この状態になると、下位通信路９０上のノイズを十分に低減できないことがあり、図２７に示すように、モニタ装置Ｍ２，Ｍ３の各々において、上位及び下位のうち、素子を接続する方を合わせることにより、効果的にノイズを低減することができるようになる。
【０２１９】
実施形態８によれば、上位通信ポートと下位通信ポートの区別を不要にすることができ、メンテナンス性を向上させることができる。
【０２２０】
［その他変形例］
また例えば、上記説明した実施形態１〜８を組み合わせてもよい。
【０２２１】
また例えば、モータ制御装置は、下位通信路９０により取得した回転角と関連情報とに基づいて、上位コントローラ１０に関する負荷を低減する低減手段を有するようにしてよい。ここでの負荷とは、処理的な負荷と通信的な負荷を意味する。例えば、モータ制御装置は、下位のスレーブ機器Ｓ等と上位コントローラ１０との間に配置され、上位コントローラ１０との間に配置されセンシングデータ等の解析をすることによって、上位通信路８０への通信量を削減したり、上位コントローラ１０の処理負荷を低減したりするという機能を有することになる。即ち、スレーブ機器Ｓの応答が全て上位通信路８０に送信されるのではなく、一部の応答のみが上位通信路８０に送信されるので、モータ制御装置は、通信量を削減することができ、上位コントローラ１０が実行する処理を代わりに実行するため、処理負荷を軽減することができる。
【０２２２】
また、以上説明した実施形態は具体例として示したものであり、本明細書にて開示される発明をこれら具体例の構成やデータ格納例そのものに限定するものではない。当業者はこれら開示された実施形態に種々の変形、例えば、物理的構成の形状や数、データ構造、処理の実行順を変更したりしてもよい。本明細書にて開示される発明の技術的範囲は、そのようになされた変形をも含むものと理解すべきである。
【符号の説明】
【０２２３】
１  モータ制御システム、１０  上位コントローラ、１１，２１  プロセッサ、１２，２２  メモリ、１３，２３  通信制御部、１４Ａ，１４Ｂ  通信ポート、２４Ａ  上位通信ポート、２４Ｂ  電力出力部、２４Ｃ  下位通信ポート、２０  モータ制御装置、３０
モータ、３０Ａ  電源線、４０  エンコーダ、５０  トルクセンサ、６０  Ｉ／Ｏ機器、７０  温度センサ、８０  上位通信路、９０  下位通信路、Ｍ１  マスタ装置、Ｍ２，Ｍ３  モニタ装置、Ｓ，Ｓ１，Ｓ２，Ｓ３，Ｓ４，Ｓ５，Ｓ６，Ｓ７，Ｓ１０，Ｓ１１，Ｓ１２，Ｓ１３，Ｓ１４，Ｓ２０，Ｓ２１，Ｓ２２，Ｓ３０，Ｓ３１，Ｓ４０，Ｓ５０  スレーブ機器、ＰＡ  上位通信ポート、ＰＢ  下位通信ポート、１００  指令送信部、１０１  応答受信部、１０２  処理実行部、１０３  情報送信部、１０４  指令受信部、１０５  指令転送部、１０６  アドレス判定部、１０７  応答受信部、１０８  応答転送部、１０９  回答送信部、１１０  通信同期部、１１１  制御決定部、１１２  通信ポート判定部、１１３  切替制御部、２００  指令受信部、２０１  指令転送部、２０２  アドレス判定部、２０３  コマンド実行部、２０４  応答送信部、２０５  応答受信部、２０６  応答転送部、２０７  データ長決定部、２０８  識別情報記憶部、ＩＦ  インタフェース、Ｒ１，Ｒ２  ロボット、ＲＳ  ロボットシステム。
【図１】
2020048410.tif 000003
【図２】
2020048410.tif 000004
【図３】
2020048410.tif 000005
【図４】
2020048410.tif 000006
【図５】
2020048410.tif 000007
【図６】
2020048410.tif 000008
【図７】
2020048410.tif 000009
【図８】
2020048410.tif 000010
【図９】
2020048410.tif 000011
【図１０】
2020048410.tif 000012
【図１１】
2020048410.tif 000013
【図１２】
2020048410.tif 000014
【図１３】
2020048410.tif 000015
【図１４】
2020048410.tif 000016
【図１５】
2020048410.tif 000017
【図１６】
2020048410.tif 000018
【図１７】
2020048410.tif 000019
【図１８】
2020048410.tif 000020
【図１９】
2020048410.tif 000021
【図２０】
2020048410.tif 000022
【図２１】
2020048410.tif 000023
【図２２】
2020048410.tif 000024
【図２３】
2020048410.tif 000025
【図２４】
2020048410.tif 000026
【図２５】
2020048410.tif 000027
【図２６】
2020048410.tif 000028
【図２７】
2020048410.tif 000029
【図２８】
2020048410.tif 000030
【手続補正書】
【提出日】令和2年1月9日(2020.1.9)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
モータと、
前記モータの位置情報を検出するエンコーダと、
前記エンコーダに着脱可能に接続される第１接続部、前記位置情報とは異なる状態を検出するセンサが接続される第２接続部、及び前記第１接続部を介して前記エンコーダから出力されるエンコーダ信号及び前記第２接続部を介して前記センサから出力されるセンサ信号を伝送する通信ケーブルが接続される第３接続部を有する機器と、
前記通信ケーブルを介して送信される前記エンコーダ信号、前記センサ信号及びコントローラから送信される駆動指令に基づいて前記モータを駆動制御するモータ制御装置と、
を有するモータ制御システム。
【請求項２】
前記通信ケーブルは、前記機器の前記第３接続部に接続されるコネクタを備え、前記エンコーダは、前記機器の前記第１接続部に着脱可能に接続されるコネクタを備え、前記通信ケーブルの前記コネクタは、前記エンコーダの前記コネクタに接続可能である、
請求項１に記載のモータ制御システム。
【請求項３】
前記機器は、前記エンコーダ信号及び前記センサ信号の少なくともいずれかをシリアル信号に変換する、
請求項１又は２に記載のモータ制御システム。
【請求項４】
前記機器は、前記エンコーダ信号及び前記センサ信号を異なる系統のシリアル通信で前記モータ制御装置に送信する、
請求項１から３のいずれか一項に記載のモータ制御システム。
【請求項５】
前記機器は、前記エンコーダ信号及び前記センサ信号を複合し、１系統のシリアル通信で前記モータ制御装置に送信する、
請求項３に記載のモータ制御システム。
【請求項６】
前記機器は、前記第２接続部に接続された前記センサの接続状況を判別し、判別された接続状況を、前記通信ケーブルを介して前記モータ制御装置に送信する、
請求項１から５のいずれか一項に記載のモータ制御システム。
【請求項７】
前記モータ制御装置は、前記機器で判別された前記接続状況に基づき、前記モータ制御装置と前記機器との間の通信仕様を設定する、
請求項６に記載のモータ制御システム。
【請求項８】
モータの位置情報を検出するエンコーダに着脱可能に接続される第１接続部と、
前記位置情報とは異なる状態を検出するセンサが接続される第２接続部と、
前記第１接続部を介して前記エンコーダから出力されるエンコーダ信号及び前記第２接続部を介して前記センサから出力されるセンサ信号の少なくともいずれかを前記モータを駆動制御するモータ制御装置に伝送する通信ケーブルが接続される第３接続部と、
を有する機器。
【請求項９】
前記エンコーダ信号及び前記センサ信号をシリアル信号に変換し、前記第２接続部に接続された前記センサの接続状況を判別し、前記第３接続部及び前記通信ケーブルを介して前記センサの前記接続状況を前記モータ制御装置へ送信する、
請求項８に機器。
【請求項１０】
モータの位置情報を検出するエンコーダと前記モータに電流を供給するモータ制御装置との間が前記エンコーダに接続可能なコネクタを備える通信ケーブルを介して着脱可能に接続され、前記モータ制御装置は前記通信ケーブルを介して送信される前記エンコーダの検出信号に基づいて、前記モータに供給する前記電流を調整して駆動制御を行うモータ制御システムを含む産業用装置の診断方法であって、
前記通信ケーブルと前記エンコーダとの間に、第１〜第３接続部を有する機器を、前記第１接続部に前記エンコーダを接続し、前記第２接続部に前記モータの位置情報とは異なる状態を検出するセンサを接続し、前記第３接続部に前記通信ケーブルの前記コネクタを接続することで接続するステップと、
前記機器及び前記通信ケーブルを介して、前記エンコーダの前記検出信号を前記エンコーダから前記モータ制御装置へ送信するステップと、
前記機器及び前記通信ケーブルを介して、前記センサの検出信号を前記センサから前記モータ制御装置へ送信するステップと、
前記エンコーダの前記検出信号と前記センサの前記検出信号とに基づいて前記産業用装置を診断するステップと
を有する産業用装置の診断方法。
【請求項１１】
前記エンコーダの前記検出信号及び前記センサの前記検出信号をシリアル信号に変換し、前記機器及び前記通信ケーブルを介して前記モータ制御装置へ送信するステップを有する、
請求項１０に記載の産業用装置の診断方法。
【請求項１２】
前記位置情報は、前記モータの回転である、
請求項１から７のいずれか一項に記載のモータ制御システム。
【請求項１３】
前記モータ制御装置は、サーボアンプである、
請求項１から７のいずれか一項又は請求項１２に記載のモータ制御システム。