[1.実施形態1]
本発明の発明者の見地によれば、モータ制御システムにおける稼働状況のセンシングは近年ますます重要度を増しているが、センサ数を増やすと、配線数などの物理的なコストや通信量又は処理負荷などの処理的なコストが増加してしまう。特に、リアルタイムでセンシングが行われる場合はこれらのコストが増大する傾向がある。そこで本発明の発明者は、モータ制御システムにおけるこれらのコストを軽減するために鋭意研究開発を行った結果、新規かつ独創的なモータ制御システム等に想到した。以降、本実施形態に係るモータ制御システム等を詳細に説明する。
図1は、実施形態1に係るモータ制御システムの全体構成を示す図である。図1に示すように、モータ制御システム1は、上位コントローラ10、モータ制御装置20、モータ30、エンコーダ40、トルクセンサ50、I/O機器60、温度センサ70、上位通信路80、及び下位通信路90を含む。
上位コントローラ10は、モータ制御システム1全体の動作を制御するコンピュータである。例えば、上位コントローラ10は、所定のタイミングでモータ制御装置20に指令を送信したり、モータ制御装置20からデータを受信したりする。上位コントローラ10は、プロセッサ11、メモリ12、通信制御部13、及び通信ポート14A,14Bを含む。
プロセッサ11は、制御用の集積回路であり、例えば、CPUやマイクロコントローラ等である。プロセッサ11は、図示しない作業用RAMを有するようにしてよい。メモリ12は、一般的な情報記憶媒体である。メモリ12は、不揮発性メモリであり、例えば、ROM、EEPROM、フラッシュメモリ、及びハードディスク等である。メモリ12は、プログラムや各種データを記憶する。
通信制御部13は、一般的な通信用集積回路である。例えば、通信制御部13は、ASIC(Application Specific Integrated Circuit)等の専用の集積回路により構成されてよい。通信ポート14Aは、インターネットなどの外部ネットワーク用の通信インタフェースであり、通信ポート14Bは、モータ制御装置20と通信するための通信インタフェースである。
モータ制御装置20は、モータ30へ電流・電圧等を出力するアンプを制御するコンピュータである。一般的に、サーボモータを制御するモータ制御装置20は、サーボコントローラ又はサーボアンプなどと呼ばれるものである。なお、モータ制御装置20は、モータを制御する機器であればよく、例えば、インバータであってもよい。モータ制御装置20は、プロセッサ21、メモリ22、通信制御部23、上位通信ポート24A、電力出力部24B、及び下位通信ポート24Cを含む。
プロセッサ21、メモリ22、及び通信制御部23のハードウェア構成は、それぞれプロセッサ11、メモリ12、及び通信制御部13と同様であってよい。上位通信ポート24Aは、上位通信路80用の通信インタフェースである。電力出力部24Bは、電源線30Aを介してモータ30に電力を出力する。下位通信ポート24Cは、下位通信路90用の通信インタフェースである。
なお、モータ制御装置20では、プロセッサ21、メモリ22、及び通信制御部23が2重化されていてもよい。2重化される場合、一方を通信制御及びセンサ解析で用いて他方はモータ制御で用いるようにしてもよいし、特に用途を分担しなくてもよい。また、図1では、モータ30を1つとしているが、複数のモータ30がモータ制御装置20に接続され、1台のモータ制御装置20が複数のモータ30を制御してもよい。
エンコーダ40は、モータ30の回転角を検出する回転角検出器である。エンコーダ40は、例えば、光学式エンコーダであってもよいし、磁気式エンコーダであってもよい。モータ制御装置20から印加された電圧又は電流に応じて、モータ30が回転する。エンコーダ40は、モータ30の回転角をモータ制御装置20に送信する。なお、本実施形態では、回転角検出器としてエンコーダ40を説明するが、モータ30の回転角を検出可能なセンサを用いればよく、例えばレゾルバを用いてもよい。
トルクセンサ50は、モータ30のトルクを検出するセンサである。トルクセンサ50は、例えば、非接触式トルクセンサであってもよいし、接触式トルクセンサであってもよい。トルクセンサ50は、モータ30のトルクをモータ制御装置20に送信する。
I/O機器60は、センサなどの他の機器と接続するための汎用的な入出力ユニットである。I/O機器60は、複数の入出力コネクタが備えられている。I/O機器60は、モータ制御システム1において不足している入出力コネクタを増設するために用いられ、例えば、圧力センサやファイバセンサなどの各種センサが接続されているようにしてよい。I/O機器60は、自身に接続されたセンサから入力された情報をモータ制御装置20に送信する。
温度センサ70は、モータ30又はその付近の温度を検出するセンサである。温度センサ70は、例えば、測温抵抗体式センサが用いられてもよいし、熱電対式センサが用いられてもよい。温度センサ70は、モータ30又はその付近の温度をモータ制御装置20に送信する。
上位通信路80は、任意の通信規格の通信線であり、例えば、半二重通信路であってもよいし全二重通信路であってもよい。上位通信路80は、モータ制御装置20の上位通信ポート24Aと、モータ制御装置20に指示を送る上位コントローラ10と、を接続する。即ち、上位通信路80の一端は、上位コントローラ10の通信ポート14Bに接続され、他端は、モータ制御装置20の上位通信ポート24Aに接続されることになる。なお、上位通信路80は、その中間にハブなどの中継機器を含んでいてもよい。上位通信路80は、上位コントローラ10がモータ制御装置20に指令を送信したり、モータ制御装置20がモータ30の制御結果や各センサの検出結果などを上位コントローラ10に送信したりするために用いられる。
下位通信路90は、任意の通信規格の通信線であり、例えば、半二重通信路であってもよいし全二重通信路であってもよい。下位通信路90は、上位通信路80と同じ規格の通信線が用いられてもよいし、上位通信路80とは異なる規格の通信線が用いられてもよい。下位通信路90は、モータ制御装置20の下位通信ポート24Cに接続され、モータ30の回転角を検出するエンコーダ40と、回転角とは異なるモータ30又はモータ30に関連する産業機器に関する関連情報を出力するための出力機器の一例であるトルクセンサ50、I/O機器60、及び温度センサ70と、を直列で接続する。なお、モータ30に付随するエンコーダ40の他に、モータ30の回転角を検出するセンサをI/O機器60に接続してもよい。
モータ30に関連する産業機器は、例えば、モータ30に関する物理量を検出するセンサ、又は、当該センサが検出した情報を出力するI/O機器やA/D機器などの産業機器である。図1に示すトルクセンサ50などの出力機器は、モータ30に関連する産業機器の一例に相当する。
関連情報は、モータ30又はモータ30に関連する産業機器の状態に関する情報のうち、回転角ではない情報を意味する。関連情報は、モータ30又はモータ30に関連する産業機器の状態に応じて変化する情報であり、例えば、センサにより検出可能な情報であればよい。例えば、関連情報は、モータ30のトルク、モータ30の温度、モータ30が移動させるアームなど物体の位置、当該物体に対する圧力、又は、これらを検出するセンサの状態(例えば、温度)などの情報である。
なお、モータ30に関する関連情報は、例えば、モータ30に対する出力制御や制御用パラメータの調整に用いられたり、モータ30の異常の有無の判断又はモータ30の寿命(残りの耐用期間)の予測に用いられたりする。一方、モータ30に関連する産業機器に関する関連情報(例えば、センサの温度)は、例えば、当該産業機器の異常の有無の判断又は当該産業機器の寿命(残りの耐用期間)の予測に用いられたり、当該産業機器の設定値の判断に用いられたりする。
図1に示すように、下位通信路90では、各機器は、自身の上位及び下位の少なくとも一方に他の機器が接続されており、本実施形態では、その接続順位は、モータ制御装置20が最上位であり、エンコーダ40、トルクセンサ50、I/O機器60、温度センサ70の順になる。言い換えれば、下位通信路90では、各機器がいわゆるマルチドロップ接続(あるいはカスケード接続又はデイジーチェーン接続であってもよい。)された状態となっており、例えば、上位の機器と下位の機器が1対1接続された状態となる。なお、上位とは、指令を送り応答を受け取る側であり、下位とは、指令を受け取り応答を送る側である。下位通信路90は、モータ制御装置20の通信ポートのうち、上位通信ポート24Aではなく、エンコーダ40などの機器用の下位通信ポート24Cに接続されている。
なお、下位通信路90上の各機器の接続順位は、予めモータ制御装置20のメモリ22や各機器のメモリ内に記憶されているようにしてよい。更に、各機器は、上位通信ポートと下位通信ポートを有しており、上位通信ポートから受信した情報を下位通信ポートから送信し、下位通信ポートから受信した情報を上位通信ポートから転送するようにしてもよい。即ち、各機器は、特に接続順位を識別する情報を記憶せず自身の接続順位を意識せずに、情報を転送するようにしてもよい。
上位通信路80と下位通信路90は、それぞれ別ネットワークであり、モータ制御装置20は、これら別ネットワークを仲介するゲートウェイとしての役割を果たす。例えば、上位通信路80と下位通信路90は、互いに通信プロトコル及び通信周期の少なくとも一方が異なるようにしてもよい。通信プロトコル又は通信周期の何れか一方のみが異なっていてもよいが、本実施形態では、これら両方が異なる場合を説明する。
例えば、モータ制御装置20は、第1の通信プロトコルに基づいて、上位通信路80を介して上位コントローラ10と通信し、第1の通信プロトコルとは異なる第2の通信プロトコルに基づいて、下位通信路90を介してエンコーダ40などの機器と通信する。本実施形態では、第1の通信プロトコルが、種々の産業機器で利用される一般的な通信プロトコルであり、第2の通信プロトコルが、センサ類やI/O機器などの通信に特化した専用の通信プロトコルである場合を説明する。第1の通信プロトコルと第2の通信プロトコルとは、通信を確立するための通信手順や送受信される通信データのフォーマットなどが互いに異なる。
また例えば、モータ制御装置20は、第1の通信周期に基づいて、上位通信路80を介して上位コントローラ10と通信し、第1の通信周期とは異なる第2の通信周期に基づいて、下位通信路90を介してエンコーダ40などの機器と通信する。第1の通信周期と第2の通信周期は、互いの時間的な長さが異なっていればよいが、本実施形態では、第2の通信周期が、第1の通信周期よりも短いものとする。例えば、第1の通信周期は数百μs程度であり、第2の通信周期は数十μs程度であってよい。この場合、第1の通信周期の開始時点と第2の通信周期の開始時点を合わせるために、第1の通信周期が第2の通信周期の整数倍となるようにしてもよい。
モータ制御装置20は、第2の通信周期ごとに、下位通信路90の各機器に対して指令を送信し、当該指令を受けた各機器からのレスポンスとして、回転角や関連情報を受信する。例えば、通信周期が開始されると、モータ制御装置20は、所定フォーマットの指令を下位通信路90に送信する。この指令は、下位通信路90の各機器がレスポンスを返すためのものであり、接続順位が上位の機器から下位の機器に順番に転送される。例えば、下位通信路90における接続順位がn番目(nは2以上の整数)の機器は、接続順位がn−1番目の機器から指令を受信すると、接続順位がn+1番目の機器に指令を転送することになる。接続順位が最下位の機器は、転送相手がいないので、指令を受信するだけで転送はしない。
図1の例では、モータ制御装置20が、接続順位が1つ下のエンコーダ40に指令を送信すると、エンコーダ40は、受信した指令を接続順位が1つ下のトルクセンサ50に送信する。トルクセンサ50は、受信した指令を接続順位が1つ下のI/O機器60に送信し、I/O機器60は、受信した指令を接続順位が1つ下の温度センサ70に送信する。このようにして、最上位のモータ制御装置20が送信した指令を、最下位の温度センサ70までの各機器に受信させることができる。
下位通信路90上の各機器は、受信した指令に応じて、回転角や関連情報をモータ制御装置20に対して送信する。例えば、エンコーダ40、トルクセンサ50、及び温度センサ70のように、自身が検出した情報をモータ制御装置20に送信してもよいし、I/O機器60のように、自身に接続されたセンサが検出した情報を取得してモータ制御装置20に送信してもよい。なお、各機器は、指令を受信したことに応じて、回転角や関連情報を取得して送信してもよいし、予め取得して自身のメモリに保持しておいた回転角や関連情報を、指令を受信したことに応じて読み出して送信してもよい。
回転角や関連情報は、下位通信路90において、接続順位が下位の機器から上位の機器に順番に転送される。例えば、接続順位がn番目の機器は、自身が検出又は取得した情報と、接続順位がn+1番目の機器から受信した情報と、を接続順位がn−1番目の機器に送信することになる。接続順位が最上位の機器は、転送相手がいないので、情報を受信するだけで転送はしない。ただし、本実施形態では、最上位の機器がモータ制御装置20なので、任意のタイミングで、受信した情報を上位通信路80を介して上位コントローラ10に転送してもよい。
図1の例では、温度センサ70は、指令に応じて、自身が検出した温度を接続順位が1つ上のI/O機器60に送信する。I/O機器60は、自身の入出力コネクタに接続された各センサが検出した関連情報と、受信した温度と、を接続順位が1つ上のトルクセンサ50に送信する。トルクセンサ50は、自身が検出したトルクと、受信した関連情報・温度と、を接続順位が1つ上のエンコーダ40に送信する。エンコーダ40は、自身が検出した回転角と、受信したトルク・関連情報・温度と、を接続順位が1つ上のモータ制御装置20に送信する。
このようにすることで、モータ制御装置20は、下位通信路90に接続された各機器が出力した情報を取得できる。なお、本実施形態では、モータ制御装置20が指令を送信してから各機器が出力した情報を受信し終わるまでは、1通信周期内で完了するようになっている。即ち、モータ制御装置20は、通信周期が訪れるたびに指令を送信して、各機器が出力した情報を受信することができる。
モータ制御装置20は、下位通信路90を介して取得したモータ30の回転角及び関連情報に基づいて、所定の処理を実行し、当該処理の実行結果を、上位通信路80を介して上位コントローラ10に送信する。所定の処理は、回転角や関連情報の集計処理や解析処理であり、モータ制御システム1が利用される場面に応じて適宜決定すればよい。例えば、所定の処理は、回転角や関連情報をメモリ22に蓄積する処理であってもよいし、回転角や関連情報の統計値を算出する処理であってもよい。この場合、モータ制御装置20は、メモリ22に蓄積した回転角や関連情報を上位コントローラ10に送信したり、算出した統計値を上位コントローラ10に送信したりする。
他にも例えば、モータ制御システム1を利用して樹脂などの射出成形が行われる場合であれば、モータ制御装置20は、I/O機器60を介して取得した圧力情報を集計したり解析したりして、上位コントローラ10に送信するようにしてもよい。なお、モータ制御装置20は、下位通信路90を介して取得したモータ30の回転角や関連情報を、上位コントローラ10に送信するためでなく、自身のために用いてもよい。例えば、モータ制御装置20は、I/O機器60を介して取得した圧力情報を解析してモータ30に対する出力を決定する処理を実行し、樹脂を押し出す圧力を調整するようにしてもよい。
上位コントローラ10は、モータ制御装置20から受信した上記処理の実行結果に基づいて、例えば、モータ制御装置20に対して指示を送ったり、受信した実行結果をログとしてメモリ12に蓄積したりする。なお、上位コントローラ10は、予め定められた処理を実行すればよく、他にも例えば、受信した実行結果を、通信ポート14Aを介してサーバなどにアップロードしてもよいし、受信した実行結果に基づいてアラートを出力してもよい。
以上説明したモータ制御システム1によれば、下位通信路90にエンコーダ40などの各機器を直列で接続することにより、例えば、上位コントローラ10やモータ制御装置20に複数のセンサがそれぞれ個別の通信路で接続されている場合に比べて、モータ制御システム1の配線数を減らすことができる。更に、エンコーダ40などの各機器は、上位コントローラ10経由でモータ制御装置20に情報を送信するのではなく、モータ制御装置20に直接的に情報を送信するので、モータ制御装置20による処理を高速化することができる。また、モータ制御装置20が、モータ30の回転角及び関連情報に基づいて所定の処理を実行することで、上位コントローラ10の処理負荷を軽減することができる。例えば、上位通信路80にエンコーダ40などの各機器が接続されており、上位コントローラ10に対して関連情報などが直接的に送信される場合、上位コントローラ10は、自身で所定の処理を行ったり、受信した関連情報を転送したりしなければならないが、モータ制御装置20側で所定の処理を実行することで、上位コントローラ10の処理負荷を軽減することができる。更に、上位コントローラ10側で解析処理などが必要になった場合、モータ制御装置20のメモリ22に関連情報を蓄積しておけば、上位通信路80を介してモータ制御装置20に関連情報などを要求し、必要に応じて解析処理などを上位コントローラ10側で実行することができる。また例えば、上位コントローラ10が多数のモータ制御装置20を制御する場合には、上位通信路80における通信量が増大するが、エンコーダ40などの各機器を、各モータ制御装置20側の下位通信路90に接続することで、上位コントローラ10が多数のモータ制御装置20を制御する場合であっても、上位通信路80の通信量が増大することを防止することができる。また、モータ制御装置20内で所定の処理を実行することでモータ制御システム1全体を効率的に利用することができる。このため、モータ制御システム1は、物理的又は処理的なコストを軽減することができる。
また、上位通信路80の通信プロトコルと下位通信路90の通信プロトコルとを異ならせることにより、例えば、下位通信路90に専用の通信プロトコルを導入することができるので、上位通信路80と同じ一般的な通信プロトコルを利用する場合に比べて、処理の高速化を図ることができる。
また、上位通信路80の通信周期と下位通信路90の通信周期とを異ならせることにより、モータ制御システム1内で通信周期が異なるネットワークを共存させることができる。例えば、下位通信路90の通信周期を上位通信路80の通信周期よりも短くすれば、モータ制御装置20が回転角や関連情報を、より頻繁に取得することができるようになるので、トルク変化や温度変化などをより迅速に検知することができるようになる。更に、モータ制御装置20が、下位通信路90を介して取得した回転角や関連情報の検出結果を、まとめて上位コントローラ10に送信することができるので、回転角や関連情報の送信漏れを防止することもできる。
なお、本発明は、以上に説明した実施の形態に限定されるものではない。本発明の趣旨を逸脱しない範囲で、適宜変更可能である。
例えば、モータ制御装置20は、関連情報を出力する出力機器(例えば、トルクセンサ50、I/O機器60、温度センサ70等)に対して、当該出力機器の制御に関する設定値を送信してもよい。例えば、設定値は、上記出力機器が有するセンシング機能のON/OFFの設定、上記出力機器が検出する物理量(例えば、トルクの大きさ、温度等)に対して上記出力機器が異常と判断する場合に用いる閾値などである。他にも例えば、上記設定値は、モータ制御装置20が第2の通信周期ごとに上記出力機器に送信する指令に含まれるものであってもよく、この設定値を受信した上記出力機器は、受信した設定値を当該出力機器が有するメモリに書き込むようにしてよい。各出力機器は、当該出力機器のメモリに書き込まれた設定値に基づいて動作し、関連情報を出力することになる。なお、モータ制御装置20は、このような設定値をエンコーダ40に対して送信するようにしてもよい。この場合、エンコーダ40は、自身のメモリに設定値を記憶して回転角の検出及び送信を実行することになる。
また例えば、実施形態では、下位通信路90において直列的に接続される出力機器として、トルクセンサ50、I/O機器60、及び温度センサ70を説明したが、関連情報を出力可能な出力機器が接続されるようにすればよく、他のセンサなどが接続されてもよい。先述したように、回転角を検出するセンサがI/O機器60に接続されていてもよい。例えば、モータ制御システム1をロボットシステムに適用する場合には、モータ30が移動させるロボットアームの加速度を検出する加速度センサやロボットアームの指先に備えられた力覚センサが下位通信路90に接続されているようにしてもよい。他にも例えば、モータ制御システム1においてA/D機器が不足しているときの増設用のA/D機器が下位通信路90に接続されているようにしてもよい。この場合、A/D機器は、アナログ信号を出力する出力機器(例えば、アナログ信号を出力する圧力センサアンプなど)に接続されており、当該出力機器が出力したアナログ信号をデジタル信号に変換してモータ制御装置20に対して出力することになる。
また例えば、説明の簡略化のために、上位コントローラ10が1台のモータ制御装置20と接続され、モータ制御装置20が1つのモータ30を制御する場合を説明したが、モータ制御システム1に含まれるモータ制御装置20及びモータ30は、それぞれ複数であってよい。例えば、上位コントローラ10が複数のモータ制御装置20に指示を送ってもよいし、1台のモータ制御装置20が複数のモータ30を制御してもよい。更に、上位コントローラ10は、複数台あってもよい。この場合、通信ポート14B、上位通信ポート24A、及び電力出力部24Bは、それぞれ複数あってもよい。また、モータ制御装置20に接続される下位通信路90は、複数であってもよい。即ち、モータ制御装置20は、下位通信ポート24Cを複数有しており、直列的に接続された機器群(図1の場合、エンコーダ40、トルクセンサ50、I/O機器60、及び温度センサ70の4つをまとめて1つの機器群とする)を複数接続可能であってもよい。この場合、下位通信路90が複数存在することになるが、これら複数の下位通信路90は、エンコーダ用の通信路と、その他のセンサなどの出力機器用の通信路と、を使い分けるようにしてもよい。
[2.実施形態2]
次に、モータ制御システム1の別実施形態について説明する。以降の実施形態では、実施形態1で説明したモータ制御装置を、マスタ装置と記載し、実施形態1で説明した回転角検出器又は出力機器を、スレーブ機器と記載する。
本発明者の見地によれば、モータ制御装置にエンコーダなどの複数のスレーブ機器を直列に接続したモータ制御システムは、省配線を実現できるが、その一方で、モータ制御装置は、スレーブ機器全体に対する指令と、個別のスレーブ機器の動作を制御と、を同時に行うことができない。一方、モータ制御装置と各スレーブ機器を直接的に接続すれば、モータ制御装置が個別の機器の動作を制御することはできるが、スレーブ機器の数だけ通信路の本数が必要なので、配線数が増加してしまう。そこで本発明の発明者は、省配線を実現しつつ、スレーブ機器全体に対する指令と個別のスレーブ機器の動作制御とを実現するために鋭意研究開発を行った結果、新規かつ独創的なモータ制御システム等に想到した。以降、実施形態2に係るモータ制御システム等を詳細に説明する。
[2−1.実施形態2の全体構成]
図2は、実施形態2のモータ制御システム1の全体構成を示す図である。図2に示すように、モータ制御システム1は、マスタ装置M1と、複数のスレーブ機器S1〜S4(以降、これらをまとめて単にスレーブ機器Sともいう。)と、を含む。実施形態1と同様、各スレーブ機器Sは、下位通信路90により直列に接続されている。
マスタ装置M1のハードウェア構成は、実施形態1で説明したモータ制御装置20と同様であってよい。図2に示す上位通信ポートPAは、上位通信ポート24Aと同様であってよく、下位通信ポートPBは、下位通信ポート24Cと同様であってよい。実施形態2では、マスタ装置M1が2つのモータ30を制御する場合を説明する。なお、ここでは、マスタ装置M1のうち上位通信ポートPA及び下位通信ポートPB以外の構成と、2つのモータ30と、は図示を省略する。
例えば、スレーブ機器S1は、I/O機器であり、実施形態1で説明したI/O機器60と同様であってよい。例えば、スレーブ機器S2及びS3は、それぞれ実施形態1で説明したエンコーダ40と同様であってよい。スレーブ機器S2は、1つ目のモータの回転角を検出し、スレーブ機器S3は、2つ目のモータの回転角を検出する。スレーブ機器S4は、実施形態1で説明したトルクセンサ50と同様であってよく、例えば2つ目のモータのトルクを検出する。
実施形態1でも説明した通り、各スレーブ機器Sは、上位通信ポートPAと、下位通信ポートPBと、を有する。スレーブ機器S1の上位通信ポートPAは、マスタ装置M1の下位通信ポートPBと下位通信路90により接続されている。スレーブ機器S1の下位通信ポートPBは、下位のスレーブ機器S2の上位通信ポートPAと下位通信路90により接続されている。同様に、スレーブ機器S2の下位通信ポートPBは、下位のスレーブ機器S3の上位通信ポートPAと下位通信路90により接続され、スレーブ機器S3の下位通信ポートPBは、下位のスレーブ機器S4の上位通信ポートPAと下位通信路90により接続されている。スレーブ機器S4は、接続順位が最下位なので、下位通信ポートPBには、他の機器は接続されない。
実施形態2のモータ制御システム1では、マスタ装置M1は、スレーブ機器Sの全体宛ての通信と、一部のスレーブ機器S宛ての通信と、を使い分けることができるようになっている。更に、マスタ装置M1は、各スレーブ機器Sから回転角や関連情報を受信するだけでなく、特定のスレーブ機器Sに対して情報を書き込むことができるようになっている。以降、これらの構成の詳細を説明する。
[2−2.実施形態2のモータ制御システムで実現される機能]
図3は、マスタ装置M1で実現される機能を示す機能ブロック図であり、図4は、スレーブ機器Sで実現される機能を示す機能ブロック図である。図3及び図4に示すように、マスタ装置M1では、例えば、指令送信部100、応答受信部101、処理実行部102、及び情報送信部103が実現され、スレーブ機器Sでは、例えば、指令受信部200、指令転送部201、アドレス判定部202、コマンド実行部203、応答送信部204、応答受信部205、及び応答転送部206が実現される。
指令送信部100は、複数のスレーブ機器Sの全体と通信する場合、下位通信ポートPBから全体宛ての全体指令を送信する。一方、指令送信部100は、一部のスレーブ機器Sと通信する場合、下位通信ポートPBから一部のスレーブ機器の動作を制御する個別指令を送信する。
全体指令は、全てのスレーブ機器Sに対して共通の指令であり、例えば、各スレーブ機器Sが同期を取るための同期指令がその一例である。以降、指令送信部100が全体指令を送るときの通信方式を、1対N通信という。Nは、2以上の整数であり、例えば、下位通信路90におけるスレーブ機器Sの台数である。
個別指令は、全スレーブ機器Sのうちの特定のスレーブ機器Sに対する指令である。例えば、個別指令は、特定のスレーブ機器Sに対するコマンドやパラメータなどを含んでよい。指令送信部100は、Nよりも少ない台数のスレーブ機器Sに対する個別指令を送信し、本実施形態では、1台のスレーブ機器Sに対する個別指令を送信する。以降、指令送信部100が任意の1台のスレーブ機器Sに個別指令を送るときの通信方式を、1対1通信という。
全体指令及び個別指令は、通信プロトコルで定められたデータフォーマットの伝送フレームで送信されるようにすればよい。全体指令と個別指令とは、同じデータフォーマットであってもよいが、本実施形態ではこれらが異なるデータフォーマットである場合を説明する。
図5は、全体指令のデータフォーマットの一例を示す図である。即ち、図5は、1対N通信における指令の伝送フレームを示す。図5に示すように、1対N通信用の指令は、アドレス部A、通信周期カウンタ部CT、及びチェックコード部CRCを含む。
アドレス部Aは、指令の宛先情報を含む。例えば、1対N通信では、マスタ装置M1が全スレーブ機器Sと通信するので、宛先情報として、全スレーブ機器Sに共通のブロードキャストアドレスがアドレス部Aに格納される。なお、アドレス部Aは、指令の送信元情報を含んでもよい。例えば、送信元情報として、マスタ装置M1のアドレスがアドレス部Aに格納されるようにしてよい。また、宛先情報や送信元情報は、それぞれ宛先と送信元を識別可能な情報であればよく、アドレス以外であってもよい。例えば、マスタ装置M1やスレーブ機器Sのシリアル番号などが、宛先情報や送信元情報として用いられてもよい。宛先情報と送信元情報とは、マスタ装置M1やスレーブ機器Sに一意の情報が用いられてよい。
通信周期カウンタCTは、通信周期が何周期目であるかを識別するための情報である。下位通信路90では、定周期通信が行われる。通信周期カウンタCTは、通信周期ごとにインクリメントされる。詳細は後述の別実施形態で説明するが、通信周期カウンタCTは、各スレーブ機器Sがいつ応答を返すかを特定するために利用され、例えば、各スレーブ機器Sが通信周期をまたいで応答を返す場合に用いられる。本実施形態では各スレーブ機器Sの応答が毎通信周期行われる場合を説明するので、通信周期カウンタCTは全体指令から省略してもよい。
チェックコードCRCは、全体指令の誤り符号検出で用いられるコード情報である。誤り符号検出自体は、公知の種々の手法を適用可能であり、例えば、任意のビット数の巡回冗長検査を利用してよい。
図6は、個別指令のデータフォーマットを示す図である。即ち、図6は、1対1通信における指令の伝送フレームを示す。図6に示すように、個別指令は、アドレス部A、通信周期カウンタ部CT、データ部DT1、及びチェックコード部CRCを含む。アドレス部A及びデータ部DT1以外は、全体指令と同じであってよい。
アドレス部Aは、全体指令と同様、宛先情報を含む。ただし、宛先情報としては、ブロードキャストアドレスではなく、指令の対象となるスレーブ機器Sのアドレスが格納される。別の言い方をすれば、宛先情報として、1対1通信における通信相手のスレーブ機器Sのアドレスが格納される。例えば、スレーブ機器S1との1対1通信であれば、アドレス部Aには、スレーブ機器S1のアドレスが格納される。同様に、スレーブ機器S2〜S4の各々との1対1通信であれば、アドレス部Aには、スレーブ機器S2〜S4の何れかのアドレスが格納される。また、個別指令のアドレス部Aは、全体指令と同様、送信元情報を含んでもよい。
なお、マスタ装置M1は、自機のアドレス、ブロードキャストアドレス、及び各スレーブ機器Sのアドレスを、予めメモリ22に記憶しているものとする。各スレーブ機器Sのアドレスは、固定値であってもよいし、初期化時などの任意のタイミングでマスタ装置M1が動的に割り当てるようにしてもよい。例えば、マスタ装置M1は、所定の割り当てルールのもとで、上位のスレーブ機器Sから順番に、1番、2番・・・のような数値(ID)をアドレスとして割り当てるようにしてよい。マスタ装置M1は、各スレーブ機器Sに割り当てたアドレスをメモリ22に記録する。
データ部DT1は、個別指令の指令内容を格納するデータ領域である。データ部DT1は、一部のスレーブ機器Sに実行させるコマンドを含んでよく、例えば、コマンドの種類を示す数値が格納される。コマンドは、一部のスレーブ機器Sの動作を制御するための任意のコマンドであってよく、例えば、設定情報の書き込みコマンドであってもよい。なお、設定情報とは、スレーブ機器Sに設定する情報であり、例えば、スレーブ機器Sのパラメータなどの設定値である。データ部DT1が設定情報の書き込みコマンドを含む場合、データ部DT1には、一部のスレーブ機器Sの設定情報を更に含んでよい。
また、個別指令のデータ部DT1に含まれるコマンドは、上記の例に限られず、例えば、スレーブ機器Sが有するセンサ機能の有効/無効を切り替えるコマンドであってもよい。他にも例えば、スレーブ機器SがI/O機器であり、複数種類のセンサが接続されている場合は、スレーブ機器Sは複数種類の情報を出力可能なので、スレーブ機器Sが出力する情報を切り替えるコマンドであってもよい。更に例えば、スレーブ機器Sが所定のアラーム機能を有する場合には、アラームの閾値を変更するコマンドであってもよい。
本実施形態では、各スレーブ機器Sは、全体指令を受信すると自動的に所定の応答を返すようになっているので、全体指令には、特にスレーブ機器Sに実行させるコマンドなどを含まなくてよい。このため、図5に示すように全体指令は、データ部DT1を含まず、その分だけデータ長が短くなり、下位通信路90における通信量を削減できるようになっている。
図7は、1対N通信及び1対1通信が行われる様子の一例を示す図である。以降、図7を参照しつつ、マスタ装置M1及びスレーブ機器Sの各機能の詳細を説明する。図7に示すように、例えば、1対N通信をする通信周期Tcycが到来すると、マスタ装置M1の指令送信部100は、スレーブ機器S1に全体指令を送信する(ステップST1)。
スレーブ機器S1において、指令受信部200は、上位通信ポートPAから、マスタ装置M1が送信した全体指令を受信すると、指令転送部201は、下位のスレーブ機器Sに、指令受信部200が受信した全体指令を転送する(ステップST2)。指令転送部201は、上位通信ポートPAから受信した全体指令を、そのまま下位通信ポートPBから転送すればよい。以降、ステップST3及びステップST4に示すように、スレーブ機器S2及びS3の指令転送部201は、上位から受信した全体指令を下位に転送することになる。なお、最下位のスレーブ機器S4は、転送相手がいないので、指令転送部201は含まれないようにしてよい。
各スレーブ機器Sでは、指令を受信すると、アドレス判定部202は、指令受信部200が受信した指令にブロードキャストアドレス又は自機アドレスが含まれるかを判定する。即ち、アドレス判定部202は、受信した指令のアドレス部Aに、ブロードキャストアドレスが格納されているか、自機アドレスが格納されているか、これらの何れも格納されていないか、を判定する。アドレス判定部202がアドレスを判定するのは、全体宛ての全体指令であるか、自機宛ての個別指令であるか、又は、他機宛ての個別指令であるかを特定するためである。
なお、各スレーブ機器Sのメモリには、予めブロードキャストアドレスと自機アドレスが記憶されているものとする。例えば、自機アドレスが動的に割り当てられる場合、各スレーブ機器Sは、マスタ装置M1が自機に割り当てたアドレスをメモリ内に保持するようにすればよい。本実施形態では、各スレーブ機器Sのメモリには、他機アドレスが記憶されていないものとするが、他機アドレスが記憶されていてもよい。他機アドレスがメモリに記憶されている場合、アドレス判定部202は、メモリに記憶された他機アドレスがアドレス部Aに格納されているかを判定するようにしてもよい。
各スレーブ機器Sの応答送信部204は、アドレス判定部202の判定結果に基づいて、応答を送信する。図8は、応答の伝送フレームの形式を示す図である。なお、本実施形態では、全体指令に対する応答と、個別指令に対する応答と、が同じ形式である場合を説明するが、これらの形式は異なっていてもよい。図8に示すように、応答は、アドレス部A、データ部DT2、及びチェックコード部CRCを含む。アドレス部A及びデータ部DT2以外は、指令で説明した内容と同様である。
アドレス部Aには、応答の送信元情報が格納される。例えば、送信元情報として、応答を送信するスレーブ機器Sのアドレスがアドレス部Aに格納される。なお、アドレス部Aは、応答の宛先情報を含むようにしてもよい。この場合、宛先情報として、マスタ装置M1のアドレスが格納されるようにしてよい。
データ部DT2は、指令に対する応答内容を示すデータ部分である。例えば、応答送信部204は、全体指令を受信した場合、回転角又は関連情報を含む応答を送信するので、データ部DTには、回転角又は関連情報が格納される。
図7に戻り、ステップST1〜ステップST4により全体指令が送信された場合、各スレーブ機器Sのアドレス判定部202は、全体指令のアドレス部Aにブロードキャストアドレスが格納されていると判定し、応答送信部204は、全体指令に対する応答を送信する。以降、全体指令に対する応答を、通常応答と記載する。
例えば、スレーブ機器S1の応答送信部204は、自機が出力する関連情報がデータ部DT2に格納された通常応答を送信する(ステップST5)。なお、スレーブ機器S1は、予め関連情報を取得したメモリに記録しておき、ステップST5において、メモリに記録した関連情報を読み出して通常応答に格納してもよいし、受信した全体指令に応じて関連情報を取得して通常応答に格納してもよい。同様に、ステップST6〜ステップST8に示すように、各スレーブ機器S2〜S4の応答送信部204は、自機が出力する回転角又は関連情報がデータ部DT2に格納された通常応答を送信する。
更に、ステップST9〜ステップST14に示すように、スレーブ機器S1〜スレーブ機器S3においては、応答受信部205が下位通信ポートPBから下位のスレーブ機器Sの通常応答を受信すると、応答転送部206は、受信した通常応答を上位通信ポートPAから転送することになる。
マスタ装置M1においては、応答受信部101は、下位通信ポートPBから、各スレーブ機器Sの応答を受信する。図7に示す例では、応答受信部101は、応答受信部101は、最上位のスレーブ機器S1の通常応答を直接的に受信するとともに、下位のスレーブ機器S2〜S4の通常応答を、スレーブ機器S1〜S3を介して間接的に受信することになる。応答受信部101は、応答を受信すると、メモリ22に応答を展開する。なお、応答にスレーブ機器Sの送信元情報を含める場合には、マスタ装置M1は、応答受信部101が受信した応答を取り込むかを判定するために、応答に自機アドレスが含まれるかを判定してもよい。
マスタ装置M1の処理実行部102は、応答受信部101が受信した情報に基づいて所定の処理を実行し、情報送信部103は、処理実行部102の実行結果を、上位通信ポートPAから上位コントローラ10に送信する。なお、これらの処理は、実施形態1で説明したものと同様であってよい。
以上の処理が、1対N通信における各通信周期Tcycで実行される。次に、1対1通信の通信周期Tcycにおける通信の流れを説明する。ここでは、スレーブS1に対する個別指令が送信される場合を説明する。図7に示すように、1対1通信をする通信周期Tcycが到来すると、マスタ装置M1の指令送信部100は、スレーブ機器S1宛ての個別指令を送信する(ステップST15)。この個別指令のアドレス部Aには、スレーブ機器S1のアドレスが格納されており、データ部DT1には、スレーブ機器S1が実行すべきコマンドや設定すべき設定情報が格納されている。
ステップST16〜ステップST18に示すように、個別指令が転送される処理は、ステップST2〜ステップST4と同様である。ただし、スレーブ機器S1のアドレス判定部202は、個別指令に自機アドレスが含まれると判定するので、コマンド実行部203は、個別指令のデータ部DT1に含まれるコマンドを実行する。即ち、コマンド実行部203は、自機宛ての個別指令を受信した場合、当該個別指令に応じたコマンドを実行することになる。
先述したように、コマンドは、設定情報を書き込むためのコマンドであってよいので、コマンド実行部203は、自機宛ての指令を受信した場合、設定情報をメモリに記録することになる。即ち、本実施形態では、コマンド実行部203は、本発明に係る設定情報記録部としても機能する。設定情報がメモリに記録されると、スレーブ機器Sは、当該記録された設定情報に基づいて動作することになる。
個別指令に対する応答は、コマンド実行部203によるコマンドの実行結果を含むようにしてよい。以降、この応答を個別応答と記載する。スレーブ機器S1の応答送信部204は、コマンド実行部203の実行結果がデータ部DT2に格納された個別応答を送信する(ステップST19)。ステップST19では、応答送信部204は、例えば、アドレス部Aに、送信元情報として自機アドレスを格納し、宛先情報としてマスタ装置M1のアドレスを格納する。なお、マスタ装置M1が個別応答を受信した場合の処理は、通常応答を受信した場合の処理と同様であってよい。
なお、スレーブ機器S1宛ての個別指令をスレーブ機器S2〜S4が受信した場合、スレーブ機器S2〜S4は、特に応答を返さなくてもよいが、本実施形態では、通常応答を返すものとする。即ち、スレーブ機器S2〜S4の応答送信部204は、他機宛ての個別指令を受信した場合、回転角又は関連情報を含む通常応答を送信することになる。このため、ステップST20〜ステップST28に示すように、スレーブ機器S2〜S4の通常応答がマスタ装置M1まで転送される。スレーブ機器S2〜S4に対する1対1通信も、上記と同様の処理により時刻される。以降、モータ制御システム1では、1対N通信と、スレーブ機器S1〜S4の何れかとの1対1通信と、が繰り返されることになる。
[2−3.モータ制御システムで実行される処理]
次に、モータ制御システム1で実行される処理の流れを説明する。モータ制御システム1では、電源投入後にマスタ装置M1とスレーブ装置Sとの間でアドレスの割り当てなどの初期化処理が実行されるが、ここでは、初期化処理が完了した後のマスタ装置M1とスレーブ装置Sの動作について説明する。
図9は、マスタ装置M1の処理を示すフローチャートである。図9では、通信周期ごとに実行される処理を示す。図9に示すように、まず、指令送信部100は、全体指令と個別指令の何れを送信するかを判定する(ステップST100)。即ち、ステップST100では、指令送信部100は、1対N通信をするか1対1通信をするかを決定する。ステップST100においては、指令送信部100は、所定の条件に基づいて、全体指令を送信するか個別指令を送信するかを決定するようにすればよい。
例えば、ステップST100においては、指令送信部100は、任意のスレーブ機器Sから受信した回転角又は関連情報が閾値を超えた場合に、指令送信部100は、当該スレーブ機器Sに対して個別指令を送信すると決定するようにしてもよいし、スレーブ機器Sごとに1対1通信するタイミングが予め定められており、指令送信部100は、当該タイミングが到来した場合にスレーブ機器Sとの1対1通信をすると決定し、それ以外の場合は1対N通信をすると決定するようにしてもよい。
ステップST100において全体指令を送信すると判定された場合(ステップST100;全体指令)、指令送信部100は、下位通信ポートPBから下位通信路90に、全体指令を送信する(ステップST101)。ステップST101においては、指令送信部100は、メモリ22に記憶したブロードキャストアドレス及び通信周期カウンタを読み出して、これらの値に基づいてCRC値を決定し、指令の伝送フレームに格納して送信する。その後、マスタ装置M1は、スレーブ機器Sからの応答を待つことになる。
一方、ステップST100において個別指令を送信すると判定された場合(ステップST100;1対1通信)、指令送信部100は、下位通信ポートPBから下位通信路90に、個別指令を送信する(ステップST102)。ステップST102においては、指令送信部100は、個別指令の通信相手として決定されたスレーブ機器Sのアドレス及び通信周期カウンタをメモリ22から読み出し、通信相手に実行させるコマンド及び設定情報を決定する。指令送信部100は、通信相手のスレーブ機器Sから受信した回転角又は関連情報に基づいてコマンドや設定情報を決定してもよいし、予めメモリ22内に定められたコマンド及び設定情報を取得してもよい。そして、マスタ装置M1は、これらの値に基づいてCRC値を決定し、個別指令に含まれる各情報を決定する。
ステップST101又はステップST102の処理が実行された後は、応答受信部101は、下位通信ポートPBから応答を受信したかを判定する(ステップST103)。応答を受信したと判定された場合(ステップST103;Y)、当該応答はメモリ22に展開され、処理実行部102は、所定の処理を実行する(ステップST104)。その後、任意のタイミングで情報送信部103は、上位通信ポートPAから上位コントローラ10に処理実行部102の実行結果を送信することになる。なお、マスタ装置M1は、受信した応答のアドレス部Aに自機アドレスが格納されているかを判定し、メモリ22に応答を展開するかを決めるようにしてもよい。
一方、ステップST103において応答を受信したと判定されない場合(ステップST103;N)、通信周期が終了したかが判定される(ステップST105)。通信周期が終了したと判定されない場合(ステップST105;N)、再びステップST103に戻り、応答の受信が待ち受けられる。通信周期が終了したと判定された場合(ステップST105;Y)、次の通信周期の処理が実行される。
図10は、スレーブ機器Sの処理を示すフローチャートである。図10に示すように、指令受信部200は、上位通信ポートPAから指令を受信したかを判定する(ステップST200)。指令を受信したと判定された場合(ステップST200;Y)、指令転送部201は、下位通信ポートPBから、受信した指令を転送する(ステップST201)。S201においては、指令転送部201は、下位通信ポートPBから、1つ下位のスレーブ機器Sに指令を転送することになる。
アドレス判定部202は、受信した指令のアドレス部Aを参照する(ステップST202)。アドレス部Aにブロードキャストアドレスが格納されている場合(ステップST202;ブロードキャスト)、又は、アドレス部Aにブロードキャストアドレスも自機アドレスも格納されていない場合(ステップST202;他機アドレス)、応答送信部204は、通常応答をするために、自機の出力対象となる回転角又は関連情報を取得する(ステップST203)。
一方、アドレス部Aに自機アドレスが格納されている場合(ステップST202;自機アドレス)、コマンド実行部203は、受信した指令のデータ部DT1に含まれるコマンドを実行する(ステップST204)。例えば、設定情報の書き込みコマンドがデータ部DT1に格納されている場合、コマンド実行部203は、設定情報を自機のメモリに書き込み、その実行結果を応答送信部204に渡す。
応答送信部204は、上位通信ポートPAから、S13における取得結果又はS14における実行結果に基づいて、応答を送信する(ステップST205)。ステップST205においては、応答送信部204は、アドレス部Aの送信元情報として自機アドレスを格納し、宛先情報としてマスタ装置M1のアドレスを格納する。そして、応答送信部204は、ステップST203における取得結果又はステップST204における実行結果をデータ部DT2に格納することになる。
応答受信部205は、下位通信ポートPBから、下位のスレーブ機器Sの応答を受信したかを判定する(ステップST206)。下位通信ポートPBから応答を受信したと判定された場合(ステップST206;Y)、応答送信部204は、受信した応答を上位通信ポートPAから転送する(ステップST207)。応答を受信しないと判定された場合(ステップST206;N)、ステップST200に戻り、次の指令の受信が待ち受けられる。
実施形態2のモータ制御システム1によれば、下位通信路90においてスレーブ機器Sが直列に接続されているので、省配線を実現することができ、かつ、マスタ装置M1は、状況によって全体指令と個別指令を使い分けるので、マスタ装置M1による全体指令と個別のスレーブ機器Sの動作制御とを実現することができる。例えば、マスタ装置M1は、スレーブ機器Sの動作を変更すべきと判定した場合に、当該スレーブ機器Sに対する個別指令を送信することで、スレーブ機器Sに最適な動作を実行させることができる。
また、個別指令には、当該個別指令の宛先となるスレーブ機器Sの設定情報が含まれるので、マスタ装置M1が各スレーブ機器Sに個別に設定情報を設定することができる。このため、各スレーブ機器Sの設定情報をマスタ装置M1側で管理することができる。更に、マスタ装置M1がスレーブ機器Sの設定情報を変更すべきと判定した場合に、当該スレーブ機器Sの設定情報を変更して動作させることができる。
また、マスタ装置M1は、一部のスレーブ機器Sに個別指令を送った場合に、通信相手ではない他のスレーブ機器Sから何も情報を受信しないのではなく、他のスレーブ機器Sから回転角又は関連情報を受信することができる。このため、マスタ装置M1は、1対1通信が行われる場合であっても、最新の回転角又は関連情報を取得することができ、上位コントローラ10に最新の情報を提供したり、次の通信周期で個別指令を送信するスレーブ機器Sを選択したりすることができる。
また、マスタ装置M1が個別指令に含めたコマンドを、一部のスレーブ機器Sに実行させることができる。このため、スレーブ機器Sに個別に実行させるコマンドを、マスタ装置M1側で決定することができる。更に、マスタ装置M1がスレーブ機器Sから取得した回転角又は関連情報に応じたコマンドを個別指令に含めることもできるようになる。
なお、個別指令は、1台のスレーブ機器S宛てとして説明したが、複数台のスレーブ機器Sの各々に対する指令を含んだ1つの指令であってもよい。個別指令は、実施形態2で説明したように1つだけのスレーブ機器Sに対する指令であってもよいし、何れか2つ又は3つだけに対する指令であってもよい。即ち、個別指令は、Nよりも少ない台数のスレーブ機器Sに対する指令であればよい。
また例えば、全体指令と個別指令がアドレス部Aにより識別可能にする場合を説明したが、指令に含まれる情報に基づいて、全体指令と個別指令とを識別可能にすればよい。例えば、全体指令用のフラグ情報を利用して全体指令が識別されるようにしてもよいし、個別指令用のフラグ情報を利用して個別指令が識別されるようにしてもよい。更に、指令にコマンドを含む場合を個別指令とし、指令にコマンドを含まない場合を全体指令としてもよい。更に、アドレス部Aがデータを含まないNULLである場合に全体指令としてもよい。更に、全体指令がアドレス部Aを含まないようにしてもよい。全体指令と個別指令との識別方法は、任意の方法を通信プロトコルで定めておけばよい。
[3.実施形態3]
実施形態2では、モータ制御システム1に含まれるモータ制御装置が1台である場合を説明したが、モータ制御システム1は、複数のモータ制御装置を有してもよい。この場合、これら複数のモータ制御装置が、実施形態2のスレーブ機器のように直列で接続されていてもよい。実施形態3では、最上位のモータ制御装置をマスタ装置と記載し、下位のモータ制御装置をモニタ装置と記載する。なお、実施形態3では、実施形態2と同様、実施形態1の回転角検出器又は出力機器は、スレーブ機器と記載する。
本発明者の見地によれば、モータ制御システムが複数のモータ制御装置を含む場合、各モータ制御装置に対して直列にスレーブ機器を接続したとしても、モータ制御装置の数だけ下位通信路のチャンネルが必要になり、配線数が増加してしまう。そこで本発明の発明者は、モータ制御システムが複数のモータ制御装置を有する場合に省配線を実現するために鋭意研究開発を行った結果、新規かつ独創的なモータ制御システム等に想到した。以降、実施形態3に係るモータ制御システム等を詳細に説明する。
[3−1.実施形態3の全体構成]
図11は、実施形態3のモータ制御システム1の全体構成を示す図である。図11に示すように、モータ制御システム1は、マスタ装置M1、モニタ装置M2,M3、及び複数のスレーブ機器S5〜S8(以降、これらをまとめて単にスレーブ機器Sともいう。)と、を含む。図11に示すように、モニタ装置M2,M3と各スレーブ機器Sとは、下位通信路90により直列に接続されている。
モニタ装置M2,M3のハードウェア構成は、マスタ装置M1と同様であってよい。なお、実施形態3では、マスタ装置M1及びモニタ装置M2,M3は、それぞれ1つずつモータを制御する。即ち、図11では図示を省略しているが、モータ制御システム1は、3つのモータを含むことになる。
本実施形態では、モータ制御システム1の複数のスレーブ機器Sは、各モータ制御装置(マスタ装置M1とモニタ装置M2,M3)に対応するエンコーダと、少なくとも1つのモータ制御装置に対応する出力機器と、を含む。例えば、スレーブ機器S5は、モニタ装置M3が制御するモータのトルク情報を検出するトルクセンサであり、スレーブ機器S6は、モニタ装置M3が制御するモータの回転角を検出するエンコーダである。また例えば、スレーブ機器S7は、モニタ装置M2が制御するモータの回転角を検出するエンコーダであり、スレーブ機器S8は、マスタ装置M1が制御するモータの回転角を検出するエンコーダである場合を説明する。
各スレーブ機器Sは、1系統の下位通信路90により直列に接続されているが、スレーブ機器S5,S6は、モニタ装置M3に対して情報を出力し、スレーブ機器S7は、モニタ装置M2に対して情報を出力し、スレーブ機器S8は、マスタ装置M1に対して情報を出力する。別の言い方をすれば、マスタ装置M1、モニタ装置M2,M3、及び各スレーブ機器Sは、下位通信路90により物理的に接続されているが、マスタ装置M1とスレーブ機器S8とが論理的に接続され、モニタ装置M2とスレーブ機器S7とが論理的に接続され、モニタ装置M3とスレーブ機器S5,S6とが論理的に接続されていることになる。
なお、上位通信路80は、最上位のモータ制御装置であるマスタ装置M1の上位通信ポートPAに接続される。一方、下位通信路90は、最上位のモータ制御装置であるマスタ装置M1の下位通信ポートPBに接続され、下位のモータ制御装置であるモニタ装置M2,M3と、複数のスレーブ機器Sと、を直列で接続することになる。具体的には、モニタ装置M2の上位通信ポートPAは、上位のマスタ装置M1と下位通信路90で接続され、モニタ装置M2の下位通信ポートPBは、下位のモニタ装置M3と下位通信路90で接続される。モニタ装置M3の上位通信ポートPAは、上位のモニタ装置M2と下位通信路90で接続され、モニタ装置M3の下位通信ポートPBは、最上位のスレーブ機器S5と下位通信路90で接続される。スレーブ機器Sの接続は、実施形態2で説明した通りである。
実施形態3では、複数のモータ制御装置であるマスタ装置M1及びモニタ装置M2,M3と、複数のスレーブ機器S5〜S8と、が通信をすることになるので、この通信方式を、M対N通信と記載する。Mは、2以上の整数であり、例えば、モータ制御システム1に含まれるモータ制御装置の数を示す。
[3−2.実施形態3のモータ制御システムで実現される機能]
マスタ装置M1と各スレーブ機器Sの機能ブロック図は、図3及び図4で示したものと同様であってよい。モニタ装置M2,M3の機能ブロック図は、マスタ装置M1の機能ブロック図とは異なる。
図12は、モニタ装置M2,M3の機能ブロック図である。先述したように、モニタ装置M2,M3は、自機で指令を送信しないので、指令送信部100は含まず、処理実行部102、情報送信部103、指令受信部104、指令転送部105、アドレス判定部106、応答受信部107、応答転送部108、及び回答送信部109を含む。以降、各機能の詳細を、実施形態2と同じように、モータ制御システム1で送受信されるデータの流れを参照しながら説明する。
図13は、M対N通信が行われる様子の一例を示す図である。図13に示すように、例えば、ある通信周期Tcycにおいて、マスタ装置M1の指令送信部100は、全体指令を送信する(ステップST300)。全体指令の形式は、実施形態2と同様であってよい。なお、マスタ装置M1及びモニタ装置M2,M3の各々のメモリには、自機に対応するスレーブ機器Sのアドレスが格納されているものとする。更に、各スレーブ機器Sのメモリには、自機に対応するマスタ装置M1又はモニタ装置M2,M3のアドレスが格納されているものとする。
下位のモニタ装置M2においては、指令受信部104は、上位通信ポートPAから全体指令を受信すると、指令転送部105は、受信した全体指令を下位通信ポートPBから転送する(ステップST301)。指令受信部104及び指令転送部105の機能は、スレーブ機器Sの指令受信部200及び指令転送部201と同様であってよい。
なお、モニタ装置M2においては、指令受信部104が指令を受信すると、アドレス判定部106は、指令に自機アドレスが含まれるかを判定する。全体指令は、ブロードキャストアドレスを含み、自機アドレスは含まないので、図13に示すように、モニタ装置M2は、全体指令に対して特に応答はしない。なお、モニタ装置M3の指令受信部104、指令転送部105、及びアドレス判定部106の処理は、モニタ装置M2と同様であってよい。
以降、ステップST302〜ステップST305に示すように、全体指令が転送される流れは、実施形態2のステップST2〜ステップST4と同様であってよい。また、ステップST306に示すように、各スレーブ機器Sが通常応答を送信及び転送する流れは、実施形態2のステップST5〜ステップST14と同様であってよい。ただし、各スレーブ機器Sは、マスタ装置M1及びモニタ装置M2,M3のうち自機に対応するもののアドレスを応答のアドレスAに格納することになる。なお、スレーブ機器S5,S6は、マスタ装置M1のアドレスを自機のメモリに記憶しており、スレーブ機器S7は、モニタ装置M2のアドレスを自機のメモリに記憶しており、スレーブ機器S8は、モニタ装置M3のアドレスを自機のメモリに記憶しているものとする。
モニタ装置M3においては、応答受信部107は、下位通信ポートPBから応答を受信すると、応答転送部108は、上位通信ポートPAから応答を転送する(ステップST307)。モニタ装置M3のアドレス判定部106は、受信した応答の送信元情報に基づいて、自機に取り込む応答であるかを判定する。例えば、モニタ装置M3は、自機に対応するスレーブ機器S5,S6のアドレスをメモリ22に記憶しているものとする。アドレス判定部106は、自機に対応するスレーブ機器S5,S6のアドレスが送信元情報に格納されているかを判定する。自機に対応するスレーブ機器S5,S6のアドレスが送信元情報に格納されていると判定された場合、その応答は、自機に対応するスレーブ機器S5,S6の応答なので、当該応答を処理実行部102に渡す。なお、スレーブ機器Sからの応答に宛先情報を含める場合には、アドレス判定部106は、宛先情報が自機アドレスを示すかを判定し、自機に取り込む応答かどうかを判定してもよい。処理実行部102及び情報送信部103の処理は、実施形態2で説明したものと同じである。
なお、ステップST308に示すように、モニタ装置M2のアドレス判定部106、応答受信部107、及び応答転送部108の処理は、モニタ装置M3と同様であってよい。また、マスタ装置M1が応答を受信した後の処理は、実施形態2と同様である。
次に、M対N通信において、マスタ装置M1がモニタ装置M2の代理で指令を送信する場合の流れを例に挙げて、各機能を説明する。図13に示すように、例えば、マスタ装置M1の指令送信部100は、下位通信ポートPBから、下位のモニタ装置M2宛てに、指令の要否に関する問い合わせである個別指令を送信する(ステップST309)。この個別指令の形式は、実施形態2で説明した形式(図6)と同様であってよい。例えば、マスタ装置M1の指令送信部100は、モニタ装置M2のアドレスがアドレス部Aに格納された個別指令を、下位通信ポートPBから送信する。
モニタ装置M2においては、指令受信部104は、上位通信ポートPAから個別指令を受信し、指令転送部105は、受信した個別指令を転送する(ステップST310)。モニタ装置M2では、アドレス判定部106は、個別指令に自機アドレスが含まれているかを判定する。ここでは、個別指令に自機アドレスが含まれているので、モニタ装置M2の回答送信部109は、下位通信路90を介して受信した問い合わせに対する回答である個別応答を送信する(ステップST311)。
ステップST311で送信される個別応答には、スレーブ機器S7に対する指令の有無を識別する情報と指令内容を示す情報が格納される。指令内容としては、スレーブ機器S7に実行させるコマンドであってもよいし、メモリに書き込む設定情報であってもよい。コマンドや設定情報を決定する方法は、実施形態2の1対1通信時の方法と同様であってよい。回答送信部109は、予め定められた条件に基づいて指令の有無を判定すればよく、例えば、所定の通信周期が訪れたか、前回指令を送信してから所定時間が経過したか、スレーブ機器S7から受信した回転角が所定値であるか等に基づいて指令の要否を判定してもよい。なお、回答送信部109は、特に指令の要否を判定することなく、マスタ装置M1から問い合わせを受信した場合に、毎回指令する旨の回答をするようにしてもよい。
マスタ装置M1においては、応答受信部101が回答を受信すると、指令送信部100は、受信した回答に基づいて、代理で指令を送信するかを決定する。例えば、指令送信部100は、指令が必要である旨の情報が回答に含まれていた場合、代理で指令を送信すると判定する。代理の指令は、次の通信周期以降で送信されるようにすればよい。なお、ステップST312に示すように、モニタ装置M3及びスレーブ機器Sの動作は、ステップST302〜ステップST308と同様であってよい。
次の通信周期Tcycが訪れると、マスタ装置M1の指令送信部100は、下位通信路90を介して受信した回答に基づいて、下位通信ポートPBから、下位のモニタ装置M2に対応するスレーブ機器S6宛ての個別指令を代理で送信する(ステップST313)。例えば、指令送信部100は、指令のアドレス部Aの宛先にスレーブ機器S6のアドレスを格納し、回答に含まれるコマンドや設定情報をデータ部DT1に格納して、モニタ装置M2の代わりに指令を送信することになる。
以降、ステップST314において、スレーブ機器S6宛ての個別指令が転送される様子は、実施形態2で説明した1対1通信の流れと同様となる。個別指令のアドレス部Aには、スレーブ機器S6宛てのアドレスが含まれているので、スレーブ機器S6においては、アドレス判定部202は自機宛ての指令であると判定することになる。この場合、スレーブ機器S6において、コマンド実行部203は指令に含まれるコマンドを実行し、応答のアドレス部Aにモニタ装置M2のアドレスを格納し、コマンドの実行結果をデータ部DT2に格納した応答を送信する。
なお、マスタ装置M1は、モニタ装置M3に対しても同様にして、指令の要否を問い合わせて、モニタ装置M3から受信した回答に基づいて、モニタ装置M3の代理で、スレーブ機器S5又はスレーブ機器S6宛ての指令を送信することになる。また、マスタ装置M1が、自機に対応するスレーブ機器S8に指令を送信する場合は、実施形態2で説明した1対1通信と同様の流れで個別指令が送信される。
[3−3.モータ制御システムで実行される処理]
次に、モータ制御システム1で実行される処理の流れを説明する。スレーブ機器Sの処理の流れは、実施形態2と同様である。ここでは、ここでは、初期化処理が完了した後のマスタ装置M1とモニタ装置M2,M3の動作を説明する。
図14は、マスタ装置M1の処理を示すフローチャートである。図14に示すように、指令送信部100は、全体指令、モニタ装置M2,M3への問い合わせである個別指令、又はスレーブ機器Sへの個別指令の何れを送信するかを判定する(ステップST400)。指令送信部100は、予め定められた方法に基づいて、これらの何れを送信するかを判定すればよい。例えば、指令送信部100は、定期的にモニタ装置M2,M3に指令の要否を問い合わせるようにしてもよいし、スレーブ機器S8から受信した回転角が所定値であった場合にスレーブ機器S8への個別指令を送信するようにしてもよい。更に、指令送信部100は、前の通信周期において、モニタ装置M2,M3から指令不要の回答を受信した場合に全体指令をするようにしてもよいし、前の通信周期において、モニタ装置M2,M3から指令要の回答を受信した場合に、代理で個別指令をするようにしてもよい。
ステップST400において全体指令を送信すると判定された場合(ステップST400;全体指令)のステップST401の処理は、ステップST101と同様であってよい。一方、ステップST400においてモニタ装置M2,M3への問い合わせの個別指令を送信すると判定された場合(ステップST400;問い合わせ)、指令送信部100は、問い合わせの個別指令を送信する(ステップST402)。ステップST402においては、指令送信部100は、モニタ装置M2,M3のうち問い合わせ先のアドレスをアドレス部Aに格納した個別指令を送信する。なお、個別指令のデータ部DT1には、特に何も格納されないようにしてもよいし、指令要否の問い合わせであることを識別する情報が含まれていてもよい。
一方、ステップST400においてスレーブ機器S8への個別指令を送信すると判定された場合(ステップST401;個別指令)のステップST403は、ステップST102と同様であってよい。続くステップST404〜ステップST405は、それぞれステップST103〜ステップST104と同様である。ステップST405において、自機アドレスが格納されていると判定された場合(ステップST405;Y)、マスタ装置M1のアドレス判定部106は、モニタ装置M2,M3の回答かを判定する(ステップST405)。ステップST405においては、アドレス判定部106は、応答の送信元情報がモニタ装置M2,M3のアドレスであるかを判定することになる。
モニタ装置M2,M3からの回答ではないと判定された場合(ステップST405;N)のステップST406は、ステップST105と同様であってよい。一方、モニタ装置M2,M3からの回答であると判定された場合(ステップST405;Y)、マスタ装置M1は、回答を参照して、代理送信が必要かを判定する(ステップST407)。例えば、応答のデータ部DT1に指令の要否が格納されている。
代理送信が必要であると判定された場合(ステップST407;Y)、マスタ装置M1は、次の通信周期において代理で指令を送信すると決定する(ステップST408)。この場合、指令送信部100は、次の通信周期の個別指令を生成してもよい。例えば、指令送信部100は、代理送信の宛先となるスレーブ機器Sを特定する。このスレーブ機器Sは、回答に含まれていてもよいし、回答の送信元情報が示すモニタ装置M2,M3に対応するスレーブ機器Sを特定するようにしてもよい。なお、ステップST409は、ステップST106と同様であってよい。
図15は、モニタ装置M2の処理を示すフローチャートである。図15に示すように、指令受信部104は、上位通信ポートPAから指令を受信したかを判定する(ステップST500)。指令を受信したと判定された場合(ステップST500;Y)、指令転送部105は、下位通信ポートPBから、受信した指令を転送する(ステップST501)。
アドレス判定部106は、受信した指令のアドレス部Aに自機アドレスが格納されているかを判定する(ステップST502)。アドレス部Aに自機アドレスが格納されている場合(ステップST502;自機アドレス)、回答送信部109は、上位通信ポートPAから、指令の要否に関する回答を送信する(ステップST503)。ステップST503においては、回答送信部109は、アドレス部Aの送信元情報として自機アドレスを格納し、宛先情報としてマスタ装置M1のアドレスを格納する。データ部DT2には、回答内容が格納されるようにしてよい。
応答受信部107は、下位通信ポートPBから、応答を受信したかを判定する(ステップST504)。応答を受信したと判定された場合(ステップST504;Y)、アドレス判定部106は、送信元情報が自機に対応するスレーブ機器S7のアドレスであるかを判定する(ステップST505)。自機に対応するスレーブ機器S7のアドレスであると判定された場合(ステップST505;Y)、アドレス判定部106は、メモリ22に応答を取り込む(ステップST506)。
応答転送部108は、受信した応答を上位通信ポートPAから転送する(ステップST507)。一方、応答を受信したと判定されない場合(ステップST504;N)、ステップST500の処理に戻る。
以上説明した実施形態3によれば、モータ制御システム1がマスタ装置M1及びモニタ装置M2,M3という複数のモータ制御装置を有する場合に、下位通信路90において、これらを直列に接続することで省配線が可能になる。更に、下位通信路90では、スレーブ機器Sも直列に接続されており、マスタ装置M1及びモニタ装置M2,M3は、自機に対応するスレーブ機器S以外のスレーブ機器Sから応答を受信するが、アドレス部Aを参照することで、自機に対応するスレーブSの応答を特定して所定の処理を実行することができる。
また、最上位のマスタ装置M1は、下位のモニタ装置M2,M3の代理で指令を送信することによって、モータ制御システム1における指令を管理することができる。例えば、下位のモニタ装置M2,M3が勝手に指令を送信すると、応答が集中してしまい、通信周期内に応答が間に合わない可能性があるが、最上位のマスタ装置M1が下位のモニタ装置M2,M3の指令を管理することで、そのような状況の発生を防止することができる。
[4.実施形態4]
本発明者の見地によれば、下位通信路に直列に接続されたスレーブ機器の中には、頻繁に情報を取得する必要のある重要度の高いものもあれば、それほど頻繁に情報を取得しなくてもよい重要度の低いものもある。例えば、ロボットシステムのように多数のセンサが必要なシステムにモータ制御システムを適用した場合には、スレーブ機器間での重要度の差が大きくなる傾向がある。しかし、全スレーブ機器のデータ伝送周期が同じである場合、重要度の高い情報を頻繁に取得できなくなってしまったり、重要度の低い情報を頻繁に取得するために通信量が増加したりする可能性がある。そこで本発明の発明者は、全機器で同じ周期を使用するのではなく、スレーブ機器に応じた周期を設定するために鋭意研究開発を行った結果、新規かつ独創的なモータ制御システム等に想到した。以降、実施形態4に係るモータ制御システム等を詳細に説明する。
実施形態4では、モータ制御システム1をロボットシステムに適用した例を説明する。図16は、ロボットシステムの一例を示す図である。図16に示すように、ロボットシステムRSは、モータ制御システム1と、ロボットR1,R2と、を含む。なお、実施形態4のモータ制御システム1は、1台のマスタ装置M1を含むものとして説明する。
マスタ装置M1は、複数の下位通信ポートPB1〜PB5(以降、これらをまとめて単に下位通信ポートPBともいう。)と、複数チャンネルの下位通信路90−1〜90−5(以降、これらをまとめて単に下位通信路90ともいう。)と、を含む。実施形態1〜3と同様に、各下位通信路90には、複数のスレーブ機器Sが直列で接続されるようにしてよいが、下位通信路90−5のように、1台のスレーブ機器S50だけ接続されるものが含まれていてもよい。
なお、ここでは、ロボットR1内に3台のモータが含まれており、ロボットR2内に1つのモータが含まれている場合を説明する。
下位通信路90−1には、スレーブ機器S10〜S14が直列に接続される。ここでは、スレーブ機器S10〜S14の各々は、エンコーダではなく、I/O機器やA/D機器などの出力機器とする。このため、下位通信路90−1は、出力機器用の通信路ということができる。このように、モータ制御システム1には、エンコーダではない出力機器のみが直列に接続される下位通信路90−1が含まれているようにしてもよい。
下位通信路90−2には、スレーブ機器S20〜S22が直列に接続される。例えば、スレーブ機器S20は、I/O機器などの入出力機器であり、スレーブ機器S21は、ロボットR1内の各モータの回転角を検出するエンコーダを含む。本実施形態では、ロボットR1は3台のモータを含むので、スレーブ機器S21は、3台のエンコーダを含む。スレーブ機器S22は、例えば加速度センサや角加速度センサなどの複数のセンサを含む。
下位通信路90−3には、スレーブ機器S30〜S31が直列に接続される。例えば、スレーブ機器S30はI/O機器であり、スレーブ機器S31は、ロボットR2内のモータの回転角を検出するエンコーダである。下位通信路90−4には、スレーブ機器S40とスレーブ機器S30とが直列に接続される。例えば、スレーブ機器S40は、I/O機器やA/D機器である。なお、下位通信路90−4は、下位通信路90−1と同様、エンコーダを含まないので、出力機器用の通信路といえる。
実施形態1〜3では、スレーブ機器Sのデータ交換周期が同じである場合を説明したが、実施形態4では、複数のデータ交換周期が存在する場合を説明する。例えば、モータの回転角のような重要度が比較的高い情報は、データ交換周期を短く設定して頻繁にマスタ装置M1に送信し、I/O機器に接続された温度センサが検出する温度のように、マスタ装置M1にそれほど頻繁に送信しなくてもよい情報については、データ交換周期を長く設定するようにしてもよい。
実施形態4の機能ブロック図は、実施形態2又は3と同様であってよい。例えば、各スレーブ機器Sの応答送信部204が、指令受信部200が受信した指令に応じて応答を送信する点は同様であってよい。実施形態4では、各スレーブ機器Sの応答送信部204は、少なくとも1つの他のスレーブ機器Sとは異なるデータ交換周期で、回転角又は関連情報を送信する。即ち、ある1つの下位通信路90において、複数のデータ交換周期が混在していることになる。各スレーブ機器Sのデータ交換周期は、予めスレーブ機器S内のメモリに記憶される。各スレーブ機器Sの応答送信部204は、自機のデータ交換周期ごとに、回転角又は出力情報を送信する。
例えば、応答送信部204は、他機の応答送信部204の送信タイミングに基づいて定まる送信タイミングで、回転角又は関連情報を含む応答を送信するようにしてよい。各スレーブ機器Sの応答送信部204は、指令に含まれる通信周期カウンタ部CTに基づいて、応答の送信タイミングであるかを判定する。例えば、スレーブ機器Sごとに応答の送信タイミングが定められており、応答送信部204は、通信周期カウンタ部CTが示す値が自機の送信タイミングを示している場合に応答を送信する。
以降、下位通信路90−1〜90−4の各々のデータ交換周期を例に挙げながら、実施形態4における応答送信部204の機能を説明する。
図17は、下位通信路90−1におけるデータ交換周期の説明図である。図17に示すように、例えば、下位通信路90−1では、スレーブ機器S10のデータ交換周期が125μsであり、スレーブ機器S11〜S14のデータ交換周期は500μsとする。また、下位通信路90−1の通信周期Tcyc1は、62.5μsとする。なお、図17では、図示を省略しているが、通信周期Tcyc1ごとに、マスタ装置M1の指令送信部100は、全体指令を送信しているものとする。
下位通信路90−1では、1通信周期Tcyc1あたり1台のスレーブ機器Sの応答送信部204が応答を送信する。各通信周期Tcyc1で応答を送信するスレーブ機器Sは、予め定められている。ここでは、8周期が1サイクル(500μs)として定められており、例えば、1周期目、3周期目、5周期目、及び7周期目において、スレーブ機器S10の応答送信部204が応答を送信する。その合間の周期において、他のスレーブ機器S10の応答送信部204が応答を送信するようになっており、例えば、2周期目ではスレーブ機器S11の応答送信部204が応答を送信し、4周期目ではスレーブ機器S12の応答送信部204が応答を送信し、6周期目ではスレーブ機器S13の応答送信部204が応答を送信し、8周期目ではスレーブ機器S14の応答送信部204が応答を送信する。以降、次のサイクルの1周期目からは、上記の順番で応答が送信される。
先述したように、各スレーブ機器Sのメモリには、応答の送信タイミングを識別するための送信タイミング情報が記憶されている。各スレーブ機器Sの応答送信部204は、送信タイミング情報に基づいて、自機の応答の送信タイミングであるかを判定する。応答送信部204は、自機の応答の送信タイミングであると判定した場合に応答を送信する。例えば、送信タイミング情報は、何周期目で応答を送信するかを示す情報であってよい。更に、送信タイミング情報は、1サイクルの中の開始時点から何μs後に応答を送信するかを示す情報であってもよい。この場合、例えば、各スレーブ機器Sの応答送信部204は、指令に含まれる通信周期カウンタCTと、送信タイミング情報と、に基づいて、自機の応答の送信タイミングであるかを判定する。
例えば、スレーブ機器S10の応答送信部204は、通信周期カウンタCTと自機の送信タイミング情報とに基づいて、サイクル内の1周期目、3周期目、5周期目、又は7周期目であるかを判定し、何れかの周期であれば自機の応答の送信タイミングであると判定する。また例えば、スレーブ機器S11の応答送信部204は、通信周期カウンタCTと自機の送信タイミング情報とに基づいて、サイクル内の2周期目であるかを判定し、スレーブ機器S12の応答送信部204は、通信周期カウンタCTと自機の送信タイミング情報とに基づいて、サイクル内の4周期目であるかを判定する。また例えば、スレーブ機器S13の応答送信部204は、通信周期カウンタCTと自機の送信タイミング情報とに基づいて、サイクル内の6周期目であるかを判定し、スレーブ機器S14の応答送信部204は、通信周期カウンタCTと自機の送信タイミング情報とに基づいて、サイクル内の8周期目であるかを判定する。スレーブ機器S10〜S14の応答送信部204は、自機の応答の送信タイミングではないと判定した場合は、応答を送信せず、自機の応答の送信タイミングであると判定した場合に、回転角や関連情報を含む通常応答を送信することになる。
図18は、下位通信路90−2におけるデータ交換周期の説明図である。図18に示すように、例えば、下位通信路90−2では、スレーブ機器S20〜S22のデータ交換周期が62.5μsであるが、スレーブS22は、4種類のデータを順次送信するものとする。下位通信路90−2の通信周期Tcyc2を62.5μsとすると、スレーブS22は、1通信周期Tcyc2ごとに1種類ずつデータを送信するため、実際のデータ交換周期は4通信周期分Tcyc2の250μsとなる。
下位通信路90−2では、1通信周期Tcyc2内で各スレーブ機器Sの応答送信部204が応答を送信する。例えば、各スレーブ機器Sの送信タイミング情報に、毎通信周期Tcyc2で応答を送信するように定められているようにしてもよいし、特に送信タイミング情報を記憶せずに、各スレーブ機器Sの応答送信部204は、指令を受信するたびに応答を送信してもよい。なお、スレーブ機器S21は、3台のエンコーダを含むので、3つ分の回転角のそれぞれが応答として送信されることになる。
先述したようにスレーブ機器S22の応答送信部204は、各通信周期Tcyc2において、4種類のデータのうち何れか1つを送信する。各通信周期Tcyc2で送信するデータの種類は予め定められているようにしてよい。例えば、4通信周期Tcyc2を1サイクルとすると、スレーブ機器S22の応答送信部204は、1サイクル内で4種類のデータの各々を所定の順番で送信する。どのデータをどの通信周期Tcyc2で送信するかが送信タイミング情報に定められているようにしてよい。スレーブ機器S22の応答送信部204は、送信タイミング情報に基づいて、現在の通信周期Tcyc2で送信すべきデータを特定し、当該データを含む応答を送信することになる。
例えば、図18に示すように、スレーブ機器S22の応答送信部204がデータA、データB、データC、及びデータDの4種類を送信可能とすると、各サイクルの1周期目でデータAを送信し、2周期目でデータBを送信し、3周期目でデータCを送信し、4周期目でデータDを送信する旨が送信タイミング情報に定められているようにしてよい。応答送信部204は、指令に含まれる通信周期カウンタCTを参照して、現在の周期で送信できデータの種類を特定し、当該種類のデータを送信することになる。
図19は、下位通信路90−3におけるデータ交換周期の説明図である。図19に示すように、例えば、下位通信路90−3では、スレーブ機器S30及びS31のデータ交換周期はともに62.5μsである。このように、下位通信路90の中には、データ交換周期が同じものが含まれていてもよい。図19に示すように、下位通信路90−3の通信周期Tcyc3は、データ交換周期と同じ62.5μsである。このため、スレーブ機器S30及びS31は、毎通信周期Tcyc3ごとに応答を送信することになる。この場合の応答送信部204の処理は、実施形態2又は3で説明したものと同様であってよい。
図20は、下位通信路90−4におけるデータ交換周期の説明図である。図20に示すように、例えば、下位通信路90−4では、スレーブ機器S40のデータ交換周期は500μsであり、スレーブ機器S30のデータ交換周期は125μsである。下位通信路90−4の通信周期Tcyc4は、62.5μsとする。なお、スレーブ機器S30のように、下位通信路90の系統によりデータ伝送周期が異なるものが含まれていてもよい。
下位通信路90−4では、どのスレーブ機器Sも応答を返さない通信周期Tcyc4が存在する。例えば、8周期を1サイクルとすると、4周期目、6周期目、及び8周期目は、下位通信路90−4のどのスレーブ機器Sも応答を返さない周期となる。例えば、あるサイクルの1周期目、3周期目、5周期目、及び7周期目では、スレーブ機器S41の応答送信部204が応答を送信し、2周期目では、スレーブ機器S40の応答送信部204が応答を送信する。
下位通信路90−4においても、下位通信路90−1〜90−3と同様、各スレーブ機器Sのメモリには、応答の送信タイミングを識別するための送信タイミング情報が記憶されているようにしてよい。例えば、スレーブ機器S40の応答送信部204は、通信周期カウンタCTと自機の送信タイミング情報とに基づいて、サイクル内の2周期目であるかを判定し、2周期目であれば自機の応答の送信タイミングであると判定する。また例えば、スレーブ機器S41の応答送信部204は、通信周期カウンタCTと自機の送信タイミング情報とに基づいて、サイクル内の1周期目、3周期目、5周期目、又は7周期目であるかを判定することになる。
実施形態4によれば、全スレーブ機器Sで同じデータ伝送周期を使用するのではなく、スレーブ機器Sに応じたデータ伝送周期を設定することができる。例えば、マスタ装置M1に頻繁に伝えるべき回転角などの情報は、データ伝送周期を短く設定し、そこまで頻繁に受信しなくても良い情報は、データ伝送周期を長く設定することができ、情報の重要度に応じた周期を設定することができる。その結果、下位通信路90における通信量を削減することもできる。
また、ある特定の期間に各スレーブ機器Sの回転角などの送信タイミングが集中すると、周期の短いスレーブ機器Sの情報が受信できなくなってしまう可能性があるが、各スレーブ機器Sの回転角などの送信タイミングを、他機の送信タイミングに基づいて決定することで、このような状況の発生を防止することができる。
また、モータ制御システム1をロボットシステムRSに適用することで、センサ類が比較的多いロボットシステムRSにおける物理的又は処理的なコストを軽減することができる。
なお、実施形態4において、最も長いデータ伝送周期は、最も短いデータ伝送周期の整数倍であってよい。そして、最も長いデータ伝送周期の開始時点と、最も短いデータ伝送周期の開始時点と、を合わせるようにしてもよい。更に、データ伝送周期は、任意の長さに設定可能であるが、ある時点にデータの送信タイミングが集中すると1通信周期内に応答を受信しきれなくなるので、1通信周期内に送信可能なデータ量を超えないように、スレーブ機器Sで互いにずらした送信タイミングが設定されるようにしてよい。
[5.実施形態5]
本発明者の見地によれば、下位通信路に直列に接続されたスレーブ機器の中には、出力する情報のデータサイズが大きいものもあれば少ないものもある。しかし、全スレーブ機器で応答のデータ部が共通のデータ長である場合、データ部に実際に格納するデータサイズが大かろうが小さかろうが応答の伝送フレーム全体のデータ長は変わらない。このため、データサイズが小さいものを応答に含めるときには、使用していない部分のデータ長も増えてしまい、下位通信路の通信量が増加してしまう。そこで本発明の発明者は、スレーブ機器に応じたデータ長の応答を送信するために鋭意研究開発を行った結果、新規かつ独創的なモータ制御システム等に想到した。以降、実施形態5に係るモータ制御システム等を詳細に説明する。
モータ制御システム1は、実施形態2で説明したように1対N通信が可能な接続形態であってもよいし、実施形態3で説明したようにM対N通信が可能な接続形態であってもよい。更に、実施形態4で説明したようにモータ制御システム1をロボットシステムRSに適用してもよい。ここでは、説明の簡略化のため、1台のマスタ装置M1が複数のスレーブ機器Sと通信する場合を説明する。マスタ装置M1の物理構成は、実施形態1〜3と同様であってよいが、本実施形態では、スレーブ機器Sの物理構成が実施形態1〜3とは異なる。
図21は、実施形態5のスレーブ機器Sの物理構成を示す図である。図21に示すように、スレーブ機器Sは、回転角又は関連情報を検出するセンサが接続される複数のインタフェースIF1〜IF4(以降、これらをまとめて単にインタフェースIFともいう。)を含む。例えば、図21に示すスレーブ機器Sがエンコーダである場合、エンコーダであるスレーブ機器Sが複数のインタフェースIFを含むことになる。即ち、本実施形態のスレーブ機器Sは、エンコーダやトルクセンサとして機能しつつ、I/O機器としての機能も有する。
例えば、インタフェースIF1,IF2は、A/D機器であってよい。また例えば、インタフェースIF3,IF4は、シリアル通信が可能なインタフェースである。各インタフェースIFは、出力情報を検出する出力機器が接続される。このため、スレーブ機器Sがエンコーダである場合、回転角だけではなく、インタフェースIFに接続する出力機器に応じた任意の種類の情報を取得可能となる。
スレーブ機器Sは、インタフェースIFごとに有効/無効を切り替えることができる。スレーブ機器Sは、有効であるインタフェースIFに接続された出力機器から関連情報を取得し、無効であるインタフェースIFに接続された出力機器からは関連情報を取得しないようにしてよい。インタフェースIFの有効/無効は、マスタ装置M1の指令に含まれる設定情報に示されてよい。このため、例えば、マスタ装置M1は、スレーブ機器Sに対して個別指令を送信することによって、スレーブ機器Sの各インタフェースIFの有効/無効を切り替えることができるようになっている。
また、本実施形態では、インタフェースIFごとに、取得するデータのデータサイズが関連付けられている。インタフェースIFとデータサイズとの関係は、予めスレーブ機器Sのメモリに記憶されているようにしてよい。各インタフェースIFで取得可能なデータサイズは、共通であってもよいし、互いに異なっていてもよい。例えば、インタフェースIF1,IF2は2バイトのデータを取得し、インタフェースIF3,IF4は4バイトのデータを取得するなどのようにしてよい。また、各インタフェースIFに関連付けられるデータサイズは、当該インタフェースIFに接続する出力機器の種類に応じて異なってもよい。
次に、実施形態5におけるモータ制御システム1の機能について説明する。マスタ装置M1の機能ブロックは、実施形態2〜4の何れかで説明したものと同様であってよい。ただし、マスタ装置M1の指令送信部100は、下位通信ポートから、各スレーブ機器Sが情報を出力するインタフェースを識別するための指令を送信する。例えば、指令送信部100は、各スレーブ機器S宛ての個別指令のデータ部DT1に、当該スレーブ機器SのインタフェースIFの有効/無効を設定するためのコマンドを含める。例えば、当該コマンドには、スレーブ機器Sの複数のインタフェースIFごとに、有効又は無効の何れかが指定されている。
マスタ装置M1は、任意のタイミングで、インタフェースIFの有効/無効のコマンドを個別指令に含めて送信すればよい。例えば、マスタ装置M1は、初期化時に、各スレーブ機器Sに対して、インタフェースIFの有効/無効のコマンドを個別指令に含めて送信するようにしてよい。
図22は、実施形態5におけるスレーブ機器Sの機能ブロック図である。図22に示すように、スレーブ機器Sは、データ長決定部207が実現される。データ長決定部207は、下位通信路90を介して受信した個別指令が示すインタフェースIFに基づいて、自機の応答のデータ長を決定する。例えば、データ長決定部207は、個別指令において有効とされているインタフェースIFに基づいて、応答のデータ長を変化させる。本実施形態では、応答のデータ長は可変となっている。
図23は、実施形態5における応答のデータフォーマットを示す図である。図23に示すように、実施形態5の応答は、実施形態2で説明した各項目に加えて、データ長Lを含む。データ長Lは、応答のデータ長を示す数値が格納される。そして、データ部DT2のデータ長は可変であり、データ長決定部207が決定したデータ長となるようにデータ部DTのデータ長が決定される。
例えば、各スレーブ機器Sの指令受信部200が自機宛ての個別指令を受信した場合、データ長決定部207は、個別指令に含まれるコマンドを実行して、自機の複数のインタフェースIFの有効/無効を設定する。そして、データ長決定部207は、有効にしたインタフェースIFに関連付けられたデータサイズに基づいて、応答のデータ長を決定する。データ長決定部207が決定したデータ長は、応答のデータ長Lに格納される。
例えば、図21に示すスレーブ機器Sにおいて、インタフェースIF1,IF3のみが有効となった場合、データ長決定部207は、インタフェースIF1に関連付けられた2バイトと、インタフェースIF3に関連付けられた4バイトと、を合わせた6バイトがデータ部DT2に格納されるように、応答のデータ長を決定する。他の場合も同様に、データ長決定部207は、有効になったインタフェースIFに関連付けられたバイト数の合計値に基づいて、応答のデータ長を決定することになる。
各スレーブ機器Sの応答送信部204は、データ長決定部207が決定したデータ長の応答を送信する。応答送信部204は、有効になったインタフェースIFが取得した情報を応答のデータ部DT2に格納し、応答を送信することになる。なお、この応答は、全体指令に対する通常応答であってよい。
各スレーブ機器Sの応答送信部204は、少なくとも1つの他のスレーブ機器Sとは異なるデータ長の伝送フレームに、回転角又は関連情報を格納して送信することになる。別の言い方をすれば、全てのスレーブ機器Sの応答のデータ長は、複数のデータ長を含む。即ち、データ長が同じスレーブ機器Sの数は、下位通信路90に接続されたスレーブ機器Sの総数台数よりも小さい。なお、全てのスレーブ機器Sの応答のデータ長が互いに異なってもよい。スレーブ機器Sの台数をNとすると、データ長が同じスレーブ機器がNより少なければよい。
上記のように、下位通信路90においては、各スレーブ機器Sが有するインタフェースIFは異なっていてよいし、インタフェースIFに関連付けられたバイト数も異なっていてよい。更に、有効になるインタフェースIFは、スレーブ機器Sに応じて異なっていてもよい。このため、下位通信路90では、応答のデータ長が2種類以上のものが混在していることになる。
実施形態5によれば、スレーブ機器Sに応じたデータ長の伝送フレームを用いて応答するので、実データの部分に比べて応答全体のデータ長が大きすぎるような状態が発生することを防止でき、必要最低限のデータ長の伝送フレームで応答することができる。このため、下位通信路90における通信量を削減することができる。
また、マスタ装置M1が各スレーブ機器Sから情報を得たいインタフェースIFに応じて伝送フレームのデータ長が決まるので、データ長を必要最小限に抑えることができ、より効果的に通信量を削減することができる。更に、マスタ装置M1側で得たい情報を指示することができる。
なお、実施形態5では、スレーブ機器Sが複数のインタフェースIFを有する場合を説明したが、スレーブ機器Sは、特に図21のようなインタフェースIFを有している必要はない。例えば、スレーブ機器Sは、自身の出力モードを複数種類持っており、出力モードごとにデータ長が異なるようにしてよい。この場合、データ長決定部207は、指令で指定されたモードに関連付けられたデータ長に基づいて、応答のデータ長を決定することにある。
[6.実施形態6]
本発明者の見地によれば、モータ制御装置の下位通信路が複数チャンネル存在し、各チャンネルから得た情報に基づいて処理が実行される場合に、各チャンネルの通信周期がばらばらだと、他のチャンネルの通信周期の終了を待ってから処理を実行しなければならず、処理効率が悪い。そこで本発明の発明者は、複数チャンネルが存在する場合に効率の良い処理を実行するために鋭意研究開発を行った結果、新規かつ独創的なモータ制御システム等に想到した。以降、実施形態6に係るモータ制御システム等を詳細に説明する。
実施形態6では、モータ制御システム1は、複数チャンネルの下位通信路90を有し、各チャンネルでは、複数のスレーブ機器Sが直列で接続され、定周期通信が行われている場合を説明する。なお、下位通信路90のチャンネルごとに定周期通信の周期が異なっていてもよいが、ここでは同じとする。なお、実施形態6の全体構成は、実施形態4で説明した図16と同様であってよい。
マスタ装置M1は、複数の下位通信路90のうちの何れかのスレーブ機器Sから取得した関連情報に基づいて、他の下位通信路90のスレーブ機器Sへの個別指令を送信することがある。例えば、マスタ装置M1の指令送信部100は、図16に示す下位通信路90−1のスレーブ機器S14の圧力センサで検出した圧力情報に基づいて、下位通信路90−2のスレーブ機器S21の設定情報を書き込むための個別指令を送信するようにしてよい。他にも例えば、マスタ装置M1の指令送信部100は、ロボットR1の下位通信路90−1,90−2のスレーブ機器Sから受信した情報に基づいて、ロボットR2の下位通信路90−3,90−4のスレーブ機器Sに個別指令を送信するようにしてもよい。この場合、下位通信路90で同期が取れていないと処理効率が下がってしまうので、同期を取るようにしている。
図24は、実施形態6におけるマスタ装置M1の機能ブロック図である。図24に示すように、マスタ装置M1は、通信同期部110を更に有する。通信同期部110は、各チャンネルの周期を同期させる。例えば、通信同期部110は、各チャンネルの通信周期の開始タイミングを合わせる。通信同期部110は、所定の同期信号を各下位通信路90に送信することによって、チャンネル間での同期をとる。同期がとれた場合、マスタ装置M1が各チャンネルのスレーブ機器Sから情報を受信するタイミングも合わせることができる。
実施形態6によれば、各チャンネルの周期を同期させて処理を実行することができるので、マスタ装置M1に効率の良い処理を実行させることができる。
[7.実施形態7]
本発明者の見地によれば、M対N通信の接続形態の場合に、マスタ装置がスレーブ機器のアドレスを動的に割り当てると、メンテナンス時などにスレーブ機器を取り外したときに、本来はモニタ装置の制御対象ではないスレーブ機器に、当該モニタ装置の制御対象としてのアドレスが割り当てられてしまうことがある。そこで本発明の発明者は、制御対象の機器を確実に制御させるために鋭意研究開発を行った結果、新規かつ独創的なモータ制御システム等に想到した。以降、実施形態7に係るモータ制御システム等を詳細に説明する。
実施形態7では、モータ制御システム1が、図11のM対N通信の接続形態である場合を説明する。マスタ装置M1は、初期化時に、上位から順番にアドレス(ID)を割り当てる。例えば、電源投入時は、モニタ装置M2,M3及びスレーブ機器Sの上位通信ポートPAはオンであり、下位通信ポートPBはオフであるものとする。また、モニタ装置M2,M3及びスレーブ機器Sのリピート機能はオフであるものとする。なお、マスタ装置M1の下位通信ポートPBはオンである。
この場合、電源投入後は、マスタ装置M1は、モニタ装置M2のみと通信可能な状態となる。例えば、マスタ装置M1は、自機が通信可能なモニタ装置M2に、「1」のアドレスを割り当てる。モニタ装置M2は、アドレスが割り当てられると、下位通信ポートPBをオンにする。この状態になると、マスタ装置M1は、モニタ装置M3と通信可能な状態となる。マスタ装置M1は、通信可能になったモニタ装置M3に、「2」のアドレスを割り当てる。モニタ装置M3は、アドレスが割り当てられると、下位通信ポートPBをオンにする。以降同様に、マスタ装置M1は、上位から順番にアドレスを割り当てることになる。
例えば、メンテナンス時などに、スレーブ機器S5,S6が取り外されたとして、モニタ装置M3の下位通信ポートPBと、スレーブ機器S7の上位通信ポートPAと、が下位通信路90で接続されたとする。この場合、モータ制御システム1の電源が投入されると、マスタ装置M1は、上位から順番にアドレスを割り当てることになる。このため、通常であれば「5」が割り当てられるスレーブ機器S7に「3」が割り当てられ、通常であれば「6」が割り当てられるスレーブ機器S8に「4」が割り当てられることになる。アドレス「3」と「4」は、もともとスレーブ機器S5,S6のアドレスなので、モニタ装置M2は、スレーブ機器S7,S8が自機に対応するものとみなしてしまうことになる。これを防止するために、スレーブ機器Sは、自身に対応するマスタ装置M1又はモニタ装置M2,M3の識別情報を記憶するようにしている。
図25は、実施形態7のスレーブ機器Sの機能ブロック図である。図25に示すように、スレーブ機器Sは、識別情報記憶部208を含む。識別情報記憶部208は、マスタ装置M1又はモニタ装置M2,M3を識別する識別情報を記憶する。例えば、識別情報は、マスタ装置M1又はモニタ装置M2,M3のシリアル番号である。なお、識別情報は、マスタ装置M1又はモニタ装置M2,M3を一意に識別できる情報であればよい。
例えば、固有のアドレスがマスタ装置M1又はモニタ装置M2,M3に割り当てられているのであれば、アドレスを識別情報として用いてもよい。識別情報は、予めスレーブ機器Sに接続したコンピュータによりスレーブ機器Sのメモリに記録されるようにすればよい。このコンピュータは、メンテナンスのために用いられるものであってよい。識別情報記憶部208は、コンピュータにより指定された、マスタ装置M1とモニタ装置M2,M3のうち制御対象となるものの識別情報を記憶することになる。
図26は、実施形態7のマスタ装置M1の機能ブロック図である。図26に示すように、マスタ装置M1は、制御決定部111を含む。制御決定部111は、下位通信路90を介して受信した各機器の識別情報に基づいて、モータを制御するかを決定する。制御決定部111は、下位通信路90を介して受信した各機器の識別情報が自機を示すかを判定する。制御決定部111は、自機を示さないと判定された場合、モータを制御せず、自機を示すと判定された場合、モータを制御すると決定する。なお、制御決定部111は、モニタ装置M2,M3にも備えられていてよい。
実施形態7によれば、スレーブ機器Sから受信した識別情報に基づいてモータを制御するかを決定するので、マスタ装置M1及びモニタ装置M2,M3が制御対象のモータを確実に制御することができる。このため、例えば、メンテナンス時などに一部のスレーブ機器Sを取り外したとしても、モータ制御装置とスレーブ機器Sとが正しい組み合わせで制御をさせることができる。
なお、各スレーブ機器Sの識別情報記憶部208は、自機の識別情報を記憶してもよい。この場合、マスタ装置M1及びモニタ装置M2,3のメモリには、自機の制御対象となるスレーブ機器Sの識別情報が記憶されているものとする。制御決定部111は、各スレーブ機器Sから受信した識別情報が自機アドレスであるかを判定することになる。
[8.実施形態8]
本発明者の見地によれば、モータ制御装置の上位通信ポートと下位通信ポートとを予め区別して設けていることがあるが、メンテナンス時などに、下位通信路を上位通信ポートに接続してしまったり、上位通信路を下位通信ポートに接続してしまったりする。そこで本発明の発明者は、通信ポートの区別をなくすために鋭意研究開発を行った結果、新規かつ独創的なモータ制御システム等に想到した。以降、実施形態8に係るモータ制御システム等を詳細に説明する。
図27は、実施形態8のモニタ装置M2,M3の物理構成を示す図である。図27に示すように、モニタ装置M2,M3は、スイッチSA,SBと、所定の抵抗値又はインピーダンスを有する素子r1,r2と、を有する。なお、ここでは、素子r1,r2が電気抵抗である場合を説明するが、電流を流れにくくするための素子であればよく、他にも例えば、コイルやコンデンサなどであってもよいし、これらの組み合わせであってもよい。各通信ポートPC1,PC2は、上位と下位の区別がなされておらず、同じ物理的構成の通信ポートである。スイッチSAは、通信ポートPC1に接続された下位通信路90と、素子r1と、を接続するためのものである。スイッチSBは、通信ポートPC2に接続された下位通信路90と、素子r2と、を接続するためのものである。なお、ここでは、素子r1,r2は、下位側の通信ポートに接続されることにより、下位通信路90上のノイズを低減させる。
図28は、実施形態8のモニタ装置M2,M3の機能ブロック図である。図28に示すように、実施形態8では、通信ポート判定部112と切替制御部113が更に実現される。通信ポート判定部112は、複数の通信ポートのうち、マスタ装置M1が送信した指令を受信した通信ポートを判定する。例えば、通信ポート判定部112は、複数の通信ポートのうち、先に情報を受信した方を判定することになる。
切替制御部113は、通信ポート判定部112の判定結果に基づいて、複数の通信ポートのうち、素子r1,r2と接続する通信ポートを切り替える。通信ポートPC1,PC2の何れか一方が素子と接続することになる。ここでは下位側の通信ポートに素子r1,r2を接続するものとする。例えば、切替制御部113は、指令を受信した通信ポートではない方の通信ポート(下位側の通信ポート)の下位通信路90に素子が接続されるように、スイッチを切り替える。また例えば、切替制御部113は、指令を受信した通信ポートの下位通信路90に素子が接続されるように、スイッチを切り替えるようにしてよい。各スレーブ装置Sは、上位側に素子が接続される状態、又は、下位側に素子が接続される状態の何れかの状態となる。例えば、図27に示す場合、モニタ装置M2の通信ポートPC2に素子r2が接続され、モニタ装置M3の通信ポートPC1に素子r1が接続されると、モニタ装置M2,M3を接続する下位通信路90に2つの素子が接続されることになる。この状態になると、下位通信路90上のノイズを十分に低減できないことがあり、図27に示すように、モニタ装置M2,M3の各々において、上位及び下位のうち、素子を接続する方を合わせることにより、効果的にノイズを低減することができるようになる。
実施形態8によれば、上位通信ポートと下位通信ポートの区別を不要にすることができ、メンテナンス性を向上させることができる。
[その他変形例]
また例えば、上記説明した実施形態1〜8を組み合わせてもよい。
また例えば、モータ制御装置は、下位通信路90により取得した回転角と関連情報とに基づいて、上位コントローラ10に関する負荷を低減する低減手段を有するようにしてよい。ここでの負荷とは、処理的な負荷と通信的な負荷を意味する。例えば、モータ制御装置は、下位のスレーブ機器S等と上位コントローラ10との間に配置され、上位コントローラ10との間に配置されセンシングデータ等の解析をすることによって、上位通信路80への通信量を削減したり、上位コントローラ10の処理負荷を低減したりするという機能を有することになる。即ち、スレーブ機器Sの応答が全て上位通信路80に送信されるのではなく、一部の応答のみが上位通信路80に送信されるので、モータ制御装置は、通信量を削減することができ、上位コントローラ10が実行する処理を代わりに実行するため、処理負荷を軽減することができる。
また、以上説明した実施形態は具体例として示したものであり、本明細書にて開示される発明をこれら具体例の構成やデータ格納例そのものに限定するものではない。当業者はこれら開示された実施形態に種々の変形、例えば、物理的構成の形状や数、データ構造、処理の実行順を変更したりしてもよい。本明細書にて開示される発明の技術的範囲は、そのようになされた変形をも含むものと理解すべきである。