(57)【要約】【課題】マスタ装置がスレーブ装置に向けて複数の情報を異なる周期で送信する場合に、効率的な送信のスケジューリングを行う。【解決手段】メインコントローラ１００は、送信周期の異なる複数種類の位置制御情報の送信タイミングを示す混在テーブルを生成する。その後、メインコントローラ１００は、位置制御情報を送信する際に、送信対象の複数種類の位置制御情報に応じて、混在テーブルを選択し、当該混在テーブルに基づく送信タイミングで、位置制御情報を送信する。【選択図】図１
2018142825.tif 000002
【特許請求の範囲】
【請求項１】
通信路に接続されるスレーブ装置へ情報を送信するマスタ装置であって、
送信周期の異なる複数種類の情報の送信タイミングを示すテーブルを生成するテーブル生成手段と、
前記テーブル生成手段により生成された前記テーブルのうち、送信対象の前記複数種類の情報のそれぞれの送信周期に応じたテーブルを選択するテーブル選択手段と、
前記テーブル選択手段により選択された前記テーブルに基づく送信タイミングで、前記スレーブ装置へ前記複数種類の情報を送信する情報送信手段と、
を備えることを特徴とするマスタ装置。
【請求項２】
前記テーブル生成手段は、前記複数種類の情報のうち、最短の送信周期の情報の送信を優先するテーブルを生成することを特徴とする請求項１に記載のマスタ装置。
【請求項３】
前記テーブル生成手段は、前記最短の送信周期の情報の送信タイミングと空き時間とを含む第１のテーブルを生成し、前記第１のテーブルにおける空き時間に前記最短の送信周期の情報以外の情報の送信タイミングを設定した第２のテーブルを生成することを特徴とする請求項２に記載のマスタ装置。
【請求項４】
前記テーブル生成手段は、前記複数種類の情報のそれぞれの送信周期の最小公倍数に対応する数である複数の前記第１のテーブルのそれぞれにおける空き時間に前記最短の送信周期の情報以外の情報の送信タイミングを設定した前記第２のテーブルを生成することを特徴とする請求項３に記載のマスタ装置。
【請求項５】
前記テーブル生成手段は、前記複数種類の情報の送信タイミングと再送タイミングとを示す第３のテーブルを生成することを特徴とする請求項１〜４の何れか１項に記載のマスタ装置。
【請求項６】
前記テーブル生成手段は、前記テーブルに含まれる所定のエントリの時間を可変とすることにより、前記テーブルの周期を基準よりも小さな単位で設定可能であることを特徴とする請求項１に記載のマスタ装置。
【請求項７】
前記情報送信手段は、前記テーブルに基づく送信タイミングにおいて、送信すべき情報を送信した後に、他の情報を送信することを特徴とする請求項１に記載のマスタ装置。
【請求項８】
前記情報送信手段は、前記テーブルに基づく送信タイミングにおいて、送信すべき情報を送信した後に、再送用の情報を送信することを特徴とする請求項７に記載のマスタ装置。
【請求項９】
通信路に接続されるスレーブ装置へ情報を送信するマスタ装置における通信方法であって、
送信周期の異なる複数種類の情報の送信タイミングを示すテーブルを生成するテーブル生成ステップと、
前記テーブル生成ステップにおいて生成された前記テーブルのうち、送信対象の前記複数種類の情報のそれぞれの送信周期に応じたテーブルを選択するテーブル選択ステップと、
前記テーブル選択ステップにおいて選択された前記テーブルに基づく送信タイミングで、前記スレーブ装置へ前記複数種類の情報を送信する情報送信ステップと、
を含むことを特徴とする通信方法。
【請求項１０】
通信路に接続されるスレーブ装置へ情報を送信するマスタ装置としてのコンピュータを、
送信周期の異なる複数種類の情報の送信タイミングを示すテーブルを生成するテーブル生成手段、
前記テーブル生成手段により生成された前記テーブルのうち、送信対象の前記複数種類の情報のそれぞれの送信周期に応じたテーブルを選択するテーブル選択手段、
前記テーブル選択手段により選択された前記テーブルに基づく送信タイミングで、前記スレーブ装置へ前記複数種類の情報を送信する情報送信手段、
として機能させることを特徴とする通信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マスタ装置、通信方法及び通信プログラムに関する。
【背景技術】
【０００２】
ネットワークを介した複数の機械等の制御システムにおいては、マスタ装置がネットワークに接続されたスレーブ装置に対して、制御に必要な各種データを送信する（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】国際公開第２０１５／１３３１７５号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述した従来の制御システムでは、マスタ装置がスレーブ装置に向けて複数の情報を異なる周期で送信する場合に、効率的な送信のスケジューリングを行うことができない。
【０００５】
本発明は、問題点に鑑みてなされたものであり、マスタ装置がスレーブ装置に向けて複数の情報を異なる周期で送信する場合に、効率的な送信のスケジューリングを行うことを目的とする。
【課題を解決するための手段】
【０００６】
目的を達成するために、本発明の第１の観点に係るマスタ装置は、
通信路に接続されるスレーブ装置へ情報を送信するマスタ装置であって、
送信周期の異なる複数種類の情報の送信タイミングを示すテーブルを生成するテーブル生成手段と、
前記テーブル生成手段により生成された前記テーブルのうち、送信対象の前記複数種類の情報のそれぞれの送信周期に応じたテーブルを選択するテーブル選択手段と、
前記テーブル選択手段により選択された前記テーブルに基づく送信タイミングで、前記スレーブ装置へ前記複数種類の情報を送信する情報送信手段と、
を備えることを特徴とする。
【０００７】
前記テーブル生成手段は、前記複数種類の情報のうち、最短の送信周期の情報の送信を優先するテーブルを生成するようにしてもよい。
【０００８】
前記テーブル生成手段は、前記最短の送信周期の情報の送信タイミングと空き時間とを含む第１のテーブルを生成し、前記第１のテーブルにおける空き時間に前記最短の送信周期の情報以外の情報の送信タイミングを設定した第２のテーブルを生成するようにしてもよい。
【０００９】
前記テーブル生成手段は、前記複数種類の情報のそれぞれの送信周期の最小公倍数に対応する数である複数の前記第１のテーブルのそれぞれにおける空き時間に前記最短の送信周期の情報以外の情報の送信タイミングを設定した前記第２のテーブルを生成するようにしてもよい。
【００１０】
前記テーブル生成手段は、前記複数種類の情報の送信タイミングと再送タイミングとを示す第３のテーブルを生成するようにしてもよい。
【００１１】
前記テーブル生成手段は、前記テーブルに含まれる所定のエントリの時間を可変とすることにより、前記テーブルの周期を基準よりも小さな単位で設定可能であるようにしてもよい。
【００１２】
前記情報送信手段は、前記テーブルに基づく送信タイミングにおいて、送信すべき情報を送信した後に、他の情報を送信するようにしてもよい。
【００１３】
前記情報送信手段は、前記テーブルに基づく送信タイミングにおいて、送信すべき情報を送信した後に、再送用の情報を送信するようにしてもよい。
【００１４】
目的を達成するために、本発明の第２の観点に係る通信方法は、
通信路に接続されるスレーブ装置へ情報を送信するマスタ装置における通信方法であって、
送信周期の異なる複数種類の情報の送信タイミングを示すテーブルを生成するテーブル生成ステップと、
前記テーブル生成ステップにおいて生成された前記テーブルのうち、送信対象の前記複数種類の情報のそれぞれの送信周期に応じたテーブルを選択するテーブル選択ステップと、
前記テーブル選択ステップにおいて選択された前記テーブルに基づく送信タイミングで、前記スレーブ装置へ前記複数種類の情報を送信する情報送信ステップと、
を含むことを特徴とする。
【００１５】
目的を達成するために、本発明の第３の観点に係る通信プログラムは、
通信路に接続されるスレーブ装置へ情報を送信するマスタ装置としてのコンピュータを、
送信周期の異なる複数種類の情報の送信タイミングを示すテーブルを生成するテーブル生成手段、
前記テーブル生成手段により生成された前記テーブルのうち、送信対象の前記複数種類の情報のそれぞれの送信周期に応じたテーブルを選択するテーブル選択手段、
前記テーブル選択手段により選択された前記テーブルに基づく送信タイミングで、前記スレーブ装置へ前記複数種類の情報を送信する情報送信手段、
として機能させることを特徴とする。
【発明の効果】
【００１６】
本発明によれば、マスタ装置がスレーブ装置に向けて複数の情報を異なる周期で送信する場合に、効率的な送信のスケジューリングを行うことができる。
【図面の簡単な説明】
【００１７】
【図１】実施形態に係る通信システムの概略構成を示す図である。
【図２】実施形態に係るメインコントローラの詳細構成を示す図である。
【図３】実施形態に係るドライバの詳細構成を示す図である。
【図４】実施形態に係るシリアルデータの伝送態様の一例を示す図である。
【図５】実施形態に係る位置制御情報の送信タイミングの一例を示す図である。
【図６】実施形態に係る位置制御情報の基本テーブルの一例を示す図である。
【図７】実施形態に係る混在テーブルの一例を示す図である。
【図８】実施形態に係る混在テーブルの一例を示す図である。
【図９】実施形態に係るメインコントローラ内の制御部の構成を示す図である。
【図１０】実施形態に係るメインコントローラによる位置制御情報の送信及び再送の動作を示すフローチャートである。
【発明を実施するための形態】
【００１８】
以下、本発明の実施形態について図面を参照しながら詳細に説明する。
【００１９】
図１は、実施形態に係るモータ制御システムの概略構成を示す図である。図１に示す通信システムとしてのモータ制御システム１は、ロボットとしてのアクチュエータ等に搭載されるモータ３００ａ１、３００ａ２、３００ａ３、３００ａ４、３００ｂ１、３００ｂ２、３００ｂ３、３００ｂ４（以下、モータ３００ａ１〜３００ｂ４をまとめて適宜「モータ３００」と称する）を制御するものである。モータ制御システム１は、マスタ装置としてのメインコントローラ１００と、スレーブ装置としてのドライバユニット２００ａ及びドライバユニット２００ｂ（以下、ドライバユニット２００ａ及びドライバユニット２００ｂをまとめて適宜「ドライバユニット２００」と称する）と、ネットワーク４００とを含んで構成される。
【００２０】
メインコントローラ１００、ドライバユニット２００ａ及びドライバユニット２００ｂは、ネットワーク４００に接続される。ネットワーク４００は、リング構成のネットワークトポロジを有する通信路である。実施形態では、ネットワーク４００がリング構成のネットワークトポロジを有することにより、メインコントローラ１００が送信する情報は、ネットワーク４００を介してドライバユニット２００ａ及びドライバユニット２００ｂへ順次伝送されて、再びメインコントローラ１００へ戻ることが可能である。
【００２１】
実施形態において、メインコントローラ１００は、ロボット内の可動部の位置を制御する位置制御を行うことができ、当該ロボットの可動部を駆動するモータ３００ａ１〜３００ｂ４を制御するための制御情報として位置制御情報を送信する。ドライバユニット２００ａ及び２００ｂは、位置制御情報を受信して、当該位置制御情報に基づいてモータ３００ａ１〜３００ｂ４を制御する。また、ドライバユニット２００ａ及び２００ｂは、位置制御情報の受信に対する応答として、当該位置制御情報をロボットの可動部の位置を示す位置データに置き換えてメインコントローラ１００へ返信する。また、ドライバユニット２００ａ及び２００ｂは、位置制御情報が正常に受信することができなかった場合には、受信異常が生じている位置制御情報を、受信異常が生じている旨を示す無効情報に置き換えてメインコントローラ１００へ返信する。メインコントローラ１００は、無効情報が返信された場合や、送信した位置制御情報に対する応答がない場合には、位置制御情報の再送を行う。
【００２２】
上述した位置制御情報の送受信に先立って、メインコントローラ１００は、位置制御情報の送信タイミングを示すテーブルを生成、選択する処理（テーブル処理）を行う。テーブル処理の詳細については後述する。
【００２３】
図２は、実施形態に係るメインコントローラ１００の詳細構成を示す図である。図２に示すメインコントローラ１００は、制御部１０２、メモリ１０４、通信制御部１０６、通信インタフェース（Ｉ／Ｆ）１０８、通信インタフェース（Ｉ／Ｆ）１１０を含んで構成される。
【００２４】
制御部１０２は、例えばＣＰＵ（Central Processing Unit）によって構成される。制御部１０２は、メモリ１０４に記憶されたプログラムに従ってソフトウェア処理を実行することにより、ロボット内の可動部の位置を制御する処理や、配置判別処理を行うことが可能である。
【００２５】
メモリ１０４は、例えばＲＡＭ（Random Access Memory）やＲＯＭ（Read Only Memory）である。メモリ１０４は、位置制御に用いられる各種情報（プログラム等）を記憶する。通信制御部１０６は、通信Ｉ／Ｆ１１０を介したドライバユニット２００ａとの通信や、通信Ｉ／Ｆ１０８を介したドライバユニット２００ｂとの通信を行う。
【００２６】
図３は、実施形態に係るドライバユニット２００ａの詳細構成を示す図である。図３に示すドライバユニット２００ａは、制御部２０２、メモリ２０４、通信制御部２０６、通信インタフェース（Ｉ／Ｆ）２０８、通信インタフェース（Ｉ／Ｆ）２１０を含んで構成される。
【００２７】
制御部２０２は、例えばＣＰＵ（Central Processing Unit）によって構成される。制御部２０２は、メモリ２０４に記憶されたプログラムに従ってソフトウェア処理を実行することにより、配置判別処理を行う。また、制御部２０２は、メモリ２０４に記憶されたプログラムに従ってソフトウェア処理を実行することにより、位置制御情報に基づいて、モータ３００ａ１を制御するドライバであるモータ制御部２１２ａ、モータ３００ａ２を制御するドライバであるモータ制御部２１２ｂ、モータ３００ａ３を制御するドライバであるモータ制御部２１２ｃ、モータ３００ａ４を制御するドライバであるモータ制御部２１２ｄの機能を実現する。
【００２８】
メモリ２０４は、例えばＲＡＭやＲＯＭである。メモリ２０４は、各種情報（プログラム等）を記憶する。通信制御部２０６は、通信Ｉ／Ｆ２０８を介したメインコントローラ１００との通信や、通信Ｉ／Ｆ２１０を介したドライバユニット２００ｂとの通信を行う。
【００２９】
ドライバユニット２００ｂの構成は、図３に示すドライバユニット２００ａの構成と同様である。制御部２０２は、メモリ２０４に記憶されたプログラムに従ってソフトウェア処理を実行することにより、配置判別処理を行う。また、制御部２０２は、メモリ２０４に記憶されたプログラムに従ってソフトウェア処理を実行することにより、位置制御情報に基づいて、モータ３００ｂ１を制御するドライバであるモータ制御部２１２ａ、モータ３００ｂ２を制御するドライバであるモータ制御部２１２ｂ、モータ３００ｂ３を制御するドライバであるモータ制御部２１２ｃ、モータ３００ｂ４を制御するドライバであるモータ制御部２１２ｄの機能を実現する。また、通信制御部２０６は、通信Ｉ／Ｆ２０８を介したドライバユニット２００ａとの通信や、通信Ｉ／Ｆ２１０を介したメインコントローラ１００との通信を行う。
【００３０】
メインコントローラ１００、ドライバユニット２００ａ、ドライバユニット２００ｂの相互の通信では、送信側がパラレルのデータを伝送単位であるシリアルのデータに変換してネットワーク４００へ出力し、受信側が入力されたシリアルのデータをパラレルのデータに戻す。例えば、図４に示すメインコントローラ１００内の通信Ｉ／Ｆ１１０とドライバユニット２００ａ内の通信Ｉ／Ｆ２０８との間の通信では、メインコントローラ１００内の通信Ｉ／Ｆ１１０は、パラレルのデータを２２ビットのシリアルのデータに変換してネットワーク４００へ出力する。一方、通信Ｉ／Ｆ２０８は、ネットワーク４００を伝送されたシリアルのデータを入力してパラレルのデータに戻す。
【００３１】
次に、テーブル処理について説明する。本実施形態において、ドライバユニット２００ａにおけるモータ３００ａ１〜３００ａ４の位置制御の周期は、１００［μｓ］である。このため、メインコントローラ１００がドライバユニット２００ａに対する位置制御情報（位置制御情報Ａ）のみを送信する場合の送信周期は、図５（ａ）に示すように１００［μｓ］となる。また、ドライバユニット２００ｂにおけるモータ３００ｂ１〜３００ｂ４の位置制御の周期は、１０００［μｓ］であるものとする。このため、メインコントローラ１００がドライバユニット２００ｂに対する位置制御情報（位置制御情報Ｂ）のみを送信する場合の送信周期は、図５（ｂ）に示すように１０００［μｓ］となる。
【００３２】
一方、メインコントローラ１００が位置制御情報Ａと位置制御情報Ｂとを混在して送信する場合には、ドライバユニット２００ａにおけるモータ３００ａ１〜３００ａ４の位置制御の周期の方がドライバユニット２００ｂにおけるモータ３００ｂ１〜３００ｂ４の位置制御の周期より短く、時間的な条件が厳しい。このことに鑑み、メインコントローラ１００は、位置制御情報Ａを位置制御情報Ｂよりも優先して送信することが望ましい。そこで、メインコントローラ１００は、図５（ｃ）に示すように、概念的には位置制御情報Ａの送信周期である１００［μｓ］の期間において、位置制御情報Ａを優先して送信し、空き時間に位置制御情報Ｂを分割して送信する。
【００３３】
メインコントローラ１００内の制御部１０２は、位置制御情報Ａの送信周期である１００［μｓ］の期間において、位置制御情報Ａを優先して送信し、空き時間に位置制御情報Ｂを分割して送信するという条件を満たすように、位置制御情報の送信タイミングを示すテーブルを生成する。以下において、０．４［μｓ］の時間（送信時間）に送信される情報を１ブロックとした場合、位置制御情報Ａは、４２個のブロックからなり、位置制御情報Ｂは、１２８個のブロックからなるものとする。
【００３４】
具体的には、制御部１０２は、まず、位置制御情報Ａの送信タイミングを示すテーブル（位置制御情報Ａ基本テーブル）を生成する。図６は、位置制御情報Ａ基本テーブルの一例を示す図である。
【００３５】
図６に示す位置制御情報Ａ基本テーブルは、位置制御情報Ａの送信周期である１００［μｓ］の期間において、どの期間にどの情報を送信するかを示すテーブルである。エントリは、０．４［μｓ］の時間（送信時間）に相当するものであり、当該送信時間において１個のブロックが送信可能である。ＳＹＮＣコードのように１ワード単位のコードであれば、２０ワードを送信可能である。従って、位置制御情報Ａ基本テーブルに含まれる２５０個のエントリは、位置制御情報Ａの送信周期である１００［μｓ］の期間に相当し、当該期間において２５０個のブロックが送信可能である。
【００３６】
図６に示す位置制御情報Ａ基本テーブルにおいて、時間順に説明すると、エントリＳＹＮＣは、空データの期間であり、２個存在する。エントリＳＴＲＴ０は、位置制御情報Ａの送信周期である１００［μｓ］の期間の開始を示すデータの期間であり、１個存在する。エントリＳＥＮＤＰ−Ａは、初回送信の場合の位置制御情報Ａの期間であり、４２個存在する。エントリＳＥＮＤＰ−Ａにおいては、位置制御情報Ａを構成するブロックを順番に送信する送信方法の指定と、位置制御情報Ａを構成するブロックのうち、特定のブロックのみを送信する送信方法の指定が可能である。特定のブロックのみを送信する送信方法の指定は、例えばエラーが発生しやすい箇所に敷設されたケーブルを伝送されるブロック等の送信に用いられる。エントリ空きは、この時点では目的が特定されていない期間であり、１５個存在する。エントリＲＳＥＮＤＰ−Ａは、再送の場合の位置制御情報Ａの期間であり、１２５個存在する。エントリＲＳＥＮＤＰ−Ａにおいては、位置制御情報Ａを構成する未受信のブロックを順番に送信する。
【００３７】
エントリ空きは、この時点では目的が特定されていない期間であり、１５個存在する。エントリ空き＋ＤＭＡは、この時点では目的が特定されていない期間と同期用のデータの期間であり、４８個存在する。エントリＳＹＮＣは、空データの期間であり、１個存在する。エントリＳＹＮＣ＋ＨＳは、空データの期間とタイミング信号ＨＳの期間であり、１個存在する。なお、制御周期を一定に保ちつつ、テーブルの切替が可能となるように、テーブル内に切替先の他のテーブルの情報（テーブルが記憶される記憶部のアドレス情報等）を含み、テーブルの切替を指示するための命令（ＪＵＭＰ命令）を含ませるようにしてもよい。
【００３８】
位置制御情報Ａ基本テーブルを生成した後、制御部１０２は、位置制御情報Ａ基本テーブル内の一部を位置制御情報Ｂに置き換えることにより、位置制御情報Ａと位置制御情報Ｂとを混在して送信する場合の送信タイミングを示すテーブル（混在テーブル）を生成する。図７は、混在テーブルαの一例を示す図であり、図８は、混在テーブルβの一例を示す図である。
【００３９】
混在テーブルα及び混在テーブルβは、位置制御情報Ａ基本テーブルと同様、位置制御情報Ａの送信周期である１００［μｓ］の期間において、どの期間にどの情報を送信するかを示すテーブルである。また、混在テーブルα及び混在テーブルβにおいては、位置制御情報Ａ基本テーブルと同様、エントリは、０．４［μｓ］の時間（送信時間）に相当するものであり、当該送信時間において１個のブロックが送信される。従って、混在テーブルα及び混在テーブルβに含まれる２５０個のエントリは、位置制御情報Ａの送信周期である１００［μｓ］の期間に相当し、当該期間において２５０個のブロックが送信可能である。
【００４０】
混在テーブルαは、位置制御情報Ａと位置制御情報Ｂとを混在して送信する場合の最後の１００［μｓ］以外の期間に対応するテーブルであり、混在テーブルβは、位置制御情報Ａと位置制御情報Ｂとを混在して送信する場合の最後の１００［μｓ］の期間に対応するテーブルである。
【００４１】
本実施形態では、位置制御情報Ａの送信周期は１００［μｓ］であり、位置制御情報Ｂの送信周期は１０００［μｓ］である。従って、メインコントローラ１００が位置制御情報Ａと位置制御情報Ｂとを混在して送信を開始した場合、双方の送信終了が一致するタイミングは１００［μｓ］と１０００［μｓ］との最小公倍数である１０００［μｓ］である。このため、メインコントローラ１００が位置制御情報Ａと位置制御情報Ｂとを混在して送信する場合には、１０００［μｓ］の期間に対応するように、９個の混在テーブルαと１個の混在テーブルβとが必要となり、エントリの合計は２５００個となり、当該期間において２５００個のブロックが送信可能である。
【００４２】
図７に示す混在テーブルαにおいて、時間順に説明すると、エントリＳＹＮＣは、空データの期間であり、２個存在する。エントリＳＴＲＴ０は、位置制御情報Ａの送信周期である１００［μｓ］の期間の開始を示すデータの期間であり、１個存在する。但し、９個の混在テーブルαのうち、先頭の混在テーブルαにおいては、エントリＳＴＲＴ０はエントリＳＴＲＴ１に置き換えられる。エントリＳＥＮＤＰ−Ａは、初回送信の場合の位置制御情報Ａの期間であり、４２個存在する。エントリＳＥＮＤＰ−Ｂ／ＲＳＥＮＤＰ−Ｂは、初回送信あるいは再送の場合の位置制御情報Ｂの期間であり、１５個存在する。エントリＳＥＮＤＰ−Ｂ／ＲＳＥＮＤＰ−Ｂにおいては、初回送信の場合の位置制御情報Ｂを構成するブロックを順番に送信する送信方法の指定と、初回送信の場合の位置制御情報Ｂを構成するブロックのうち、特定のブロックのみを送信する送信方法の指定が可能であるとともに、再送の場合の位置制御情報Ｂを構成する未受信のブロックを順番に送信する。エントリ空きは、この時点では目的が特定されていない期間であり、１５個存在する。エントリＲＳＥＮＤＰ−Ａは、再送の場合の位置制御情報Ａの期間であり、１２５個存在する。エントリＳＥＮＤＰ−Ｂ／ＲＳＥＮＤＰ−Ｂは、初回送信あるいは再送の場合の位置制御情報Ｂの期間であり、１５個存在する。
【００４３】
エントリ空き＋ＤＭＡは、この時点では目的が特定されていない期間と同期用のデータの期間であり、４８個存在する。エントリＳＹＮＣは、空データの期間であり、１個存在する。エントリＳＹＮＣ＋ＨＳは、空データの期間とタイミング信号ＨＳの期間であり、１個存在する。
【００４４】
図８に示す混在テーブルβにおいて、時間順に説明すると、エントリＳＹＮＣは、空データの期間であり、２個存在する。エントリＳＴＲＴ０は、位置制御情報Ａの送信周期である１００［μｓ］の期間の開始を示すデータの期間であり、１個存在する。エントリＳＥＮＤＰ−Ａは、初回送信の場合の位置制御情報Ａの期間であり、４２個存在する。エントリＳＥＮＤＰ−Ｂ／ＲＳＥＮＤＰ−Ｂは、初回送信あるいは再送の場合の位置制御情報Ｂの期間であり、１５個存在する。エントリ空きは、この時点では目的が特定されていない期間であり、１５個存在する。エントリＲＳＥＮＤＰ−Ａは、再送の場合の位置制御情報Ａの期間であり、１２５個存在する。エントリＳＥＮＤＰ−Ｂ／ＲＳＥＮＤＰ−Ｂは、初回送信あるいは再送の場合の位置制御情報Ｂの期間であり、１５個存在する。エントリ空き＋ＤＭＡは、この時点では目的が特定されていない期間とタイミング信号ＤＭＡの期間であり、４８個存在する。エントリＳＹＮＣは、空データの期間であり、１個存在する。エントリＳＹＮＣ＋ＥＯＴ＋ＨＳ＋ＶＳは、空データの期間とＪＵＭＰ命令ＥＯＴ、タイミング信号、タイミング信号ＶＳの期間であり、１個存在する。
【００４５】
図５に示す位置制御情報Ａ基本テーブルと図７に示す混在テーブルα及び図８に示す混在テーブルβとを比較すると、制御部１０２は、位置制御情報Ａ基本テーブルにおけるエントリ空きを、エントリＳＥＮＤＰ−Ｂに置き換えて、混在テーブルα、βを生成している。位置制御情報Ａのみが送信される場合の空き時間に位置制御情報Ｂが割り当てられることにより、位置制御情報Ａと位置制御情報Ｂとが混在して送信されることになる。また、制御部１０２は、位置制御情報Ａ基本テーブルにおけるエントリＳＹＮＣ＋ＨＳを、ＳＹＮＣ＋ＥＯＴ＋ＨＳ＋ＶＳに置き換えて、混在テーブルβを生成している。
【００４６】
制御部１０２は、生成した混在テーブルα及び混在テーブルβの情報を後述するテーブル保持部４０４に記憶させる。また、制御部１０２は、送信周期の異なる複数種類の位置制御情報の組み合わせに応じて、上述と同様の手法により混在テーブルを生成してテーブル保持部４０４に記憶させる。その後、制御部１０２は、送信対象となる複数種類の位置制御情報のそれぞれの送信周期に応じて、メモリ１０４に記憶された混在テーブルを選択し、当該混在テーブルに基づく送信タイミングに従って、上述した手順で位置制御情報の送信や再送を行う。
【００４７】
具体的には、メインコントローラ１００内の制御部１０２には、図９に示すように、スケジュール回路４０２、テーブル保持部４０４、受信検出情報保持部４０６、送信回路４０８及び受信回路４１０の各機能が構成される。
【００４８】
スケジュール回路４０２は、テーブル保持部４０４に保持されている混在テーブルを読み出す。更に、スケジュール回路４０２は、混在テーブル内の各エントリに応じたタイミングで、当該エントリに対応するブロック等の送信を、送信回路４０８を介して行う。具体的には、スケジュール回路４０２は、混在テーブルに設定されているエントリＳＥＮＤＰ−Ａに応じたタイミングで、位置制御情報Ａ内のブロックの送信を行い、エントリＳＥＮＤＰ−Ｂに応じたタイミングで、位置制御情報Ｂ内のブロックの送信を行う。更に、スケジュール回路４０２は、受信検出情報保持部４０６において、送信した位置制御情報Ａ、Ｂを構成する各ブロックの識別情報であるブロックＮｏ毎に、送信済みであることを示すフラグ「１」を設定する。
【００４９】
ドライバユニット２００ａ内の制御部２０２は、位置制御情報Ａ、Ｂについて、正常に受信することができなかったブロックを無効情報のブロックに置き換えて、ドライバユニット２００ｂへ送信する。同様に、ドライバユニット２００ｂ内の制御部２０２は、位置制御情報Ａ、Ｂについて、正常に受信することができなかったブロックを無効情報のブロックに置き換えて、メインコントローラ１００へ送信する。
【００５０】
メインコントローラ１００内の制御部１０２に構成されたスケジュール回路４０２は、正常に受信することができたブロックのブロックＮｏをスケジュール回路４０２へ出力する。スケジュール回路４０２は、受信検出情報保持部４０６において、送信済みであることを示すフラグ「１」のうち、受信回路４１０からのブロックＮｏに対応するフラグを「０」に設定する。フラグ「０」は、対応するブロックがドライバユニット２００ａ、２００ｂにおいて正常に受信されたことを示す。
【００５１】
ＲＥＳＥＮＤＰエントリの期間中に、スケジュール回路４０２は、受信検出情報保持部４０６において、フラグ「１」が存在するか否かを判定する。フラグ「１」が存在する場合、対応するブロックは、ドライバユニット２００ａ、２００ｂにおいて正常に受信されていないことを示す。このため、スケジュール回路４０２は、当該フラグ「１」に対応するブロックの再送を行う。具体的には、スケジュール回路４０２は、混在テーブルに設定されているエントリＲＳＥＮＤＰ−Ａに応じたタイミングで、位置制御情報Ａ内のブロックの再送を行い、エントリＳＥＮＤＰ−Ｂに応じたタイミングで、位置制御情報Ｂ内のブロックの再送を行う。
【００５２】
また、スケジュール回路４０２は、所定の周期で、受信検出情報保持部４０６内のフラグのリセットを行う。例えば、上述したように、送信周期が１００［μｓ］の位置制御情報Ａと送信周期が１０００［μｓ］の位置制御情報Ｂとを混在して送信する場合には、スケジュール回路４０２は、位置制御情報Ａについては、エントリＳＴＲＴ０とエントリＳＴＲＴ１とに応じたタイミングで、受信検出情報保持部４０６内のフラグのリセット（例えばフラグの削除）を行い、位置制御情報Ｂについては、エントリＳＴＲＴ１に応じたタイミングで、受信検出情報保持部４０６内のフラグのリセットを行う。
【００５３】
図１０は、メインコントローラ１００による位置制御情報の送信及び再送の動作を示すフローチャートである。ＳＥＮＤＰ−Ａのエントリの期間中に、メインコントローラ１００内の制御部１０２に構成されたスケジュール回路４０２は、受信検出情報保持部４０６内のフラグを参照して、位置制御情報Ａを送信済みであるか否かを判定する（ステップＳ１０１）。位置制御情報Ａを送信済みでない場合には（ステップＳ１０１；ＮＯ）、スケジュール回路４０２は、位置制御情報Ａを送信して（ステップＳ１０２）、次のエントリの処理に移行する。一方、位置制御情報Ａを送信済みである場合には（ステップＳ１０１；ＹＥＳ）、ＲＥＳＥＮＤＰ−Ａのエントリの期間中の処理に移行する。
【００５４】
ＲＥＳＥＮＤＰ−Ａのエントリの期間中に、スケジュール回路４０２は、受信検出情報保持部４０６内のフラグを参照して、ドライバユニット２００が位置制御情報Ａを受信済みであるか否かを判定する（ステップＳ２０１）。位置制御情報Ａを受信済みでない場合には（ステップＳ２０１；ＮＯ）、スケジュール回路４０２は、位置制御情報Ａを再送して（ステップＳ２０２）、次のエントリの処理に移行する。一方、ドライバユニット２００が位置制御情報Ａを受信済みである場合には（ステップＳ２０１；ＹＥＳ）、ＳＥＮＤＰ−Ｂのエントリの期間中の処理に移行する。
【００５５】
ＳＥＮＤＰ−Ｂのエントリの期間中に、スケジュール回路４０２は、受信検出情報保持部４０６内のフラグを参照して、位置制御情報Ｂを送信済みであるか否かを判定する（ステップＳ３０１）。位置制御情報Ｂを送信済みでない場合には（ステップＳ３０１；ＮＯ）、スケジュール回路４０２は、位置制御情報Ｂを送信して（ステップＳ３０２）、次のエントリの処理に移行する。一方、位置制御情報Ｂを送信済みである場合には（ステップＳ３０１；ＹＥＳ）、ＲＥＳＥＮＤＰ−Ｂのエントリの期間中の処理に移行する。
【００５６】
ＲＥＳＥＮＤＰ−Ｂのエントリの期間中に、スケジュール回路４０２は、受信検出情報保持部４０６内のフラグを参照して、ドライバユニット２００が位置制御情報Ｂを受信済みであるか否かを判定する（ステップＳ４０１）。位置制御情報Ｂを受信済みでない場合には（ステップＳ４０１；ＮＯ）、スケジュール回路４０２は、位置制御情報Ｂを再送して（ステップＳ４０２）、次のエントリの処理に移行する。一方、位置制御情報Ｂを受信済みである場合には（ステップＳ４０１；ＹＥＳ）、スケジュール回路４０２は、ＳＹＮＣを送信し（ステップＳ４０３）、次のエントリの処理に移行する。このように、前倒しで他のエントリを実行することにより、周期内において、より多くの期間に再送を実行することが可能となる。これにより周期当たりのエラーレートを下げることが可能となる。
【００５７】
上述したように、実施形態のモータ制御システム１において、メインコントローラ１００は、送信周期の異なる複数種類の位置制御情報の送信タイミングを示す混在テーブルを生成する。その後、メインコントローラ１００は、位置制御情報を送信する際に、送信対象の複数種類の位置制御情報に応じて、混在テーブルを選択し、当該混在テーブルに基づく送信タイミングで、位置制御情報を送信する。混在テーブルが用いられることにより、効率的な送信のスケジューリングを行うことができる。
【００５８】
また、メインコントローラ１００は、送信周期が１００［μｓ］の位置制御情報Ａと送信周期が１０００［μｓ］の位置制御情報Ｂとを混在して送信する場合の送信タイミングを示す混在テーブルα、βを生成する際には、まず、短い送信周期の位置制御情報Ａの送信タイミングを示す位置制御情報Ａ基本テーブルを生成する。更に、メインコントローラ１００は、位置制御情報Ａ基本テーブル内のエントリ空きを位置制御情報Ｂに置き換えることにより、混在テーブルα、βを生成する。これにより、位置制御情報Ａの送信及び再送を行いつつ、空きのタイミングで位置制御情報Ｂの送信及び再送を行うことができ、時間の有効利用を図ることができる。また、時間的な条件が厳しい位置制御情報Ａを位置制御情報Ｂよりも優先して送信するとの条件の下で、位置制御情報Ａと位置制御情報Ｂとを混在して送信することが可能となる。
【００５９】
また、位置制御情報Ａと位置制御情報Ｂとを混在して送信を開始した場合、双方の送信終了が一致するタイミングは１００［μｓ］と１０００［μｓ］との最小公倍数である１０００［μｓ］であることに鑑み、メインコントローラ１００は、１０００［μｓ］の期間に対応するように、９個の混在テーブルαと１個の混在テーブルβとを生成する。これにより、位置制御情報Ａと位置制御情報Ｂとを混在して送信する場合の送信の繰り返し周期に相当する最小の数の混在テーブルを生成するのみでよく、処理負担の軽減や混在テーブルを記憶する際に必要となる記憶容量を削減することができる。
【００６０】
以上、実施形態について説明したが、本発明は上述の実施形態に限定されるものではない。
【００６１】
例えば、上述した実施形態では、１つのエントリは、０．４［μｓ］の時間（送信時間）に相当するものとしたが、１つのエントリの時間は可変であってもよい。例えば、メインコントローラ１００内の制御部１０２は、エントリＳＹＮＣを、０．４［μｓ］、０．２［μｓ］、０．１［μｓ］の何れかの時間とすることができる。最小では、２０［ｎｓ］を設定可能である。このように、エントリの時間を可変とすることで、テーブルの周期を小さな刻みで設定可能となる。また、１／３、１／７などの２と５以外の素数を分母に含む割り切れない数値で表される周期であっても小さな違いの周期を組み合わせることにより、周期を実現することができる。具体的には、１／６００［ｓ］を周期とするとき１．６６６６．．．［ｍｓ］を実現しなければならないが、単純なエントリの羅列では実現出来ない。１６６６．７［μｓ］のテーブルを３個つなげ、最後の１つだけ１６６６．６［μｓ］に縮めれば、平均１／６００［μｓ］の周期を実現することが可能となる。
【００６２】
また、上述した実施形態では、混在テーブルαと混在テーブルβとの合計のエントリ数は２５００個となり、データ長が長い。このため、メインコントローラ１００は、周知のデータ圧縮の手法等を用いることにより、混在テーブルα及び混在テーブルβの全体のデータ長を削減するようにしてもよい。
【００６３】
また、上述した実施形態では、メインコントローラ１００は、送信周期が短い位置制御情報Ａが優先して送信されるように混在テーブルα、βを生成した。しかし、例えば、送信周期が最長の位置制御情報の送信周期が、送信周期が最短の位置制御情報の送信周期の２倍未満であるような場合や、全ての種類の位置制御情報の送信周期が同一である場合には、メインコントローラ１００は、何れの位置制御情報を優先して送信するように混在テーブルを生成してもよい。
【００６４】
また、上述した実施形態では、送信周期の異なる２種類の位置制御情報が混在して送信される場合の混在テーブルの生成について説明したが、３種類以上の位置制御情報が混在して送信される場合にも、同様に本発明を適用することができる。例えば、３種類の位置制御情報が混在して生成される場合、メインコントローラ１００は、最短の送信周期の位置制御情報についての基本テーブルを生成し、当該基本テーブルにおけるエントリ空きを２番目に短い送信周期の位置制御情報に置き換え、更に、エントリ空きの余りを最長の送信周期の位置制御情報に置き換えるようにしてもよい。
【００６５】
また、上述した実施形態では、モータ制御システム１は、２個のドライバユニット２００ａ及び２００ｂを含む構成とし、第２の実施形態では、モータ制御システム２は、４個のドライバユニット２００ａ〜２００ｄを含む構成としたが、ドライバユニット２００の数はこれに限定されない。
【００６６】
また、上述した実施形態では、マスタ装置としてのメインコントローラ１００とスレーブ装置としてのドライバユニット２００ａ等とが固定されているが、メインコントローラ１００とドライバユニット２００との双方の機能を実現可能な複数の装置によって通信システムを構成し、適宜、複数の装置の何れの装置がメインコントローラ１００となり、他の装置がドライバユニット２００になるようにしてもよい。
【００６７】
更に、メインコントローラ１００は、複数のドライバユニット２００のうち、一部のドライバユニット２００との間で情報の通信を行うようにしてもよい。
【００６８】
また、上述した実施形態では、モータ制御システムについて説明したが、これに限定されず、マスタ装置と複数のスレーブ装置とが通信路に接続され、マスタ装置から複数のスレーブ装置へ情報を送信する通信システムの構成であれば、本発明を適用することができる。
【００６９】
本発明は、本発明の広義の精神と範囲を逸脱することなく、様々な実施形態及び変形が可能とされるものである。上述した実施形態は、本発明を説明するためのものであり、本発明の範囲を限定するものではない。
【符号の説明】
【００７０】
１、２  モータ制御システム
１００  メインコントローラ
１０２、２０２  制御部
１０４、２０４  メモリ
１０６、２０６  通信制御部
１０８、１１０、２０８、２１０  通信Ｉ／Ｆ
２００ａ、２００ｂ、２００ｃ、２００ｄ  ドライバユニット
２１２ａ、２１２ｂ、２１２ｃ、２１２ｄ  モータ制御部
３００ａ１、３００ａ２、３００ａ３、３００ａ４、３００ｂ１、３００ｂ２、３００ｂ３、３００ｂ４  モータ
４００  ネットワーク
４０２  スケジュール回路
４０４  テーブル保持部
４０６  受信検出情報保持部
４０８  送信回路
４１０  受信回路
【図１】
2018142825.tif 000003
【図２】
2018142825.tif 000004
【図３】
2018142825.tif 000005
【図４】
2018142825.tif 000006
【図５】
2018142825.tif 000007
【図６】
2018142825.tif 000008
【図７】
2018142825.tif 000009
【図８】
2018142825.tif 000010
【図９】
2018142825.tif 000011
【図１０】
2018142825.tif 000012