(57)【要約】【課題】互いに制御軸数が異なる複数種類のマスタ装置と互いに制御軸数が異なる複数種類のスレーブ装置とを組み合わせて制御できる制御システムを提供すること。【解決手段】或る制御軸数ｍのマスタ装置１０１を、その制御軸数と同数の要素からなるマスタ情報Ｍｍを用いて制御するマスタ装置制御部２０と、或る制御軸数ｎのスレーブ装置１０２を、その制御軸数と同数の要素からなるスレーブ情報Ｓｎを用いて制御するスレーブ装置制御部４０とを備える。受信したマスタ情報Ｍｍの要素数に応じて予め定められた割り付けの仕方に基づいて、一定数の要素からなる抽象化マスタ情報ＡＭ６を作成する抽象化マスタ情報作成部３１を備える。スレーブ装置制御部４０は、抽象化マスタ情報ＡＭ６に含まれた一定数の要素から、スレーブ情報Ｓｎの要素数ｎに応じて予め定められた抽出の仕方に基づいて、スレーブ情報Ｓｎの要素数ｎに応じた数の要素を抽出し、スレーブ情報Ｓｎを作成する。【選択図】図１
2019136855.tif 000002
【特許請求の範囲】
【請求項１】
マスタ装置とスレーブ装置とを組み合わせて制御する制御システムであって、
互いに制御軸数が異なる複数種類のマスタ装置のうち或る制御軸数のマスタ装置を、その制御軸数と同数の要素からなるマスタ情報を用いて制御するマスタ装置制御部と、
互いに制御軸数が異なる複数種類のスレーブ装置のうち或る制御軸数のスレーブ装置を、その制御軸数と同数の要素からなるスレーブ情報を用いて制御するスレーブ装置制御部と、
上記マスタ装置制御部から上記マスタ情報を逐次受信して、受信したマスタ情報の要素数に応じて予め定められた割り付けの仕方に基づいて、一定数の要素からなる抽象化マスタ情報を作成する抽象化マスタ情報作成部とを備え、
上記スレーブ装置制御部は、上記抽象化マスタ情報作成部から上記抽象化マスタ情報を逐次受信して、受信した抽象化マスタ情報に含まれた上記一定数の要素から、上記スレーブ情報の要素数に応じて予め定められた抽出の仕方に基づいて、上記スレーブ情報の要素数に応じた数の要素を抽出し、さらに、上記抽出した要素が示す値を用いて上記スレーブ情報を作成することを特徴とする制御システム。
【請求項２】
請求項１に記載の制御システムにおいて、
互いに要素数が異なるマスタ情報毎に、上記マスタ情報の要素から上記抽象化マスタ情報の上記一定数の要素への割り付けの仕方を、それぞれ要素同士の対応表として格納している割付設定記憶部を備えたことを特徴とする制御システム。
【請求項３】
請求項２に記載の制御システムにおいて、
上記割付設定記憶部の上記対応表は、上記抽象化マスタ情報の上記一定数の要素のうち、上記マスタ情報の要素が割り付けられる要素毎に、その要素に関する倍率を対応付けて格納していることを特徴とする制御システム。
【請求項４】
請求項２または３に記載の制御システムにおいて、
上記対応表における上記抽象化マスタ情報の上記一定数の要素は、並進の自由度を表す要素と、回転の自由度を表す要素とを含み、
上記マスタ情報の要素が並進の自由度を表すとき、その要素は上記抽象化マスタ情報のうち並進の自由度を表す要素に割り付けられる一方、上記マスタ情報の要素が回転の自由度を表すとき、その要素は上記抽象化マスタ情報のうち回転の自由度を表す要素に割り付けられることを特徴とする制御システム。
【請求項５】
請求項１から４までのいずれか一つに記載の制御システムにおいて、
上記抽象化マスタ情報の上記一定数の要素からの抽出の仕方を格納している抽出設定記憶部を備えたことを特徴とする制御システム。
【請求項６】
請求項５に記載の制御システムにおいて、
上記抽出設定記憶部は、互いに要素数が異なるスレーブ情報毎に、上記抽出の仕方をそれぞれリストとして格納していることを特徴とする制御システム。
【請求項７】
請求項５または６に記載の制御システムにおいて、
上記スレーブ装置制御部は、上記抽象化マスタ情報の上記一定数の要素のうち、上記抽出の仕方に応じて抽出すべき要素を参照して、その要素に上記マスタ情報の要素が割り付けられていないとき、警告を発することを特徴とする制御システム。
【請求項８】
マスタ装置とスレーブ装置とを組み合わせて制御する制御システムの一部をなし、互いに制御軸数が異なる複数種類のスレーブ装置のうち或る制御軸数のスレーブ装置を、その制御軸数と同数の要素からなるスレーブ情報を用いて制御するスレーブ装置制御部であって、
上記制御システムは、
互いに制御軸数が異なる複数種類のマスタ装置のうち或る制御軸数のマスタ装置を、その制御軸数と同数の要素からなるマスタ情報を用いて制御するマスタ装置制御部を備え、
上記スレーブ装置制御部は、
上記マスタ情報の要素数に関わらず、一定数の要素からなる抽象化マスタ情報を逐次受信して、受信した抽象化マスタ情報に含まれた上記一定数の要素から、上記スレーブ情報の要素数に応じて予め定められた抽出の仕方に基づいて、上記スレーブ情報の要素数に応じた数の要素を抽出する情報抽出部と、
上記情報抽出部が抽出した要素が示す値を用いて上記スレーブ情報を作成するスレーブ情報作成部とを備えたことを特徴とするスレーブ装置制御部。
【請求項９】
請求項８に記載のスレーブ装置制御部において、
上記抽象化マスタ情報の上記一定数の要素からの抽出の仕方を格納している抽出設定記憶部を備えたことを特徴とするスレーブ装置制御部。
【請求項１０】
請求項９に記載のスレーブ装置制御部において、
上記抽出設定記憶部は、互いに要素数が異なるスレーブ情報毎に、上記抽出の仕方をそれぞれリストとして格納していることを特徴とするスレーブ装置制御部。
【請求項１１】
請求項９または１０に記載のスレーブ装置制御部において、
上記情報抽出部は、上記抽象化マスタ情報の上記一定数の要素のうち、上記抽出の仕方に応じて抽出すべき要素を参照して、その要素に上記マスタ情報の要素が割り付けられていないとき、警告を発することを特徴とするスレーブ装置制御部。
【請求項１２】
マスタ装置とスレーブ装置とを組み合わせて制御する制御システムのための制御方法であって、
上記制御システムは、
互いに制御軸数が異なる複数種類のマスタ装置のうち或る制御軸数のマスタ装置を、その制御軸数と同数の要素からなるマスタ情報を用いて制御するマスタ装置制御部と、
互いに制御軸数が異なる複数種類のスレーブ装置のうち或る制御軸数のスレーブ装置を、その制御軸数と同数の要素からなるスレーブ情報を用いて制御するスレーブ装置制御部とを備え、
上記制御方法は、
上記マスタ装置制御部から上記マスタ情報を逐次受信し、
受信したマスタ情報の要素数に応じて予め定められた割り付けの仕方に基づいて、一定数の要素からなる抽象化マスタ情報を作成し、
上記抽象化マスタ情報に含まれた上記一定数の要素から、上記スレーブ情報の要素数に応じて予め定められた抽出の仕方に基づいて、上記スレーブ情報の要素数に応じた数の要素を抽出し、さらに、
上記抽出した要素が示す値を用いて上記スレーブ情報を作成することを特徴とする制御方法。
【請求項１３】
請求項１２に記載の制御方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は制御システムに関し、より詳しくは、マスタ装置とスレーブ装置とを組み合わせて制御する制御システムに関する。また、この発明は、そのような制御システムの一部をなすスレーブ装置制御部に関する。この発明は、そのような制御システムのための制御方法およびプログラムに関する。
【背景技術】
【０００２】
従来、例えば特許文献１（特開平６−７１５８０号公報）に開示されているように、特定の制御軸数をもつマスターアーム（マスタ装置）と特定の制御軸数をもつスレーブアーム（スレーブ装置）とを協調して制御する双腕ロボットの同期制御方法が知られている。
【０００３】
また、特許文献２（特開２００２−１９２４８６号公報）に開示されているように、特定の制御軸数をもつコンベヤ（マスタ装置）に載って移動するワークを、特定の制御軸数をもつロボット（スレーブ装置）に追従させるロボット制御方法が知られている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平６−７１５８０号公報
【特許文献２】特開２００２−１９２４８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、いずれの従来例でも、特定の制御軸数をもつマスタ装置と特定の制御軸数をもつスレーブ装置との組み合わせに限定した制御方法になっている。このため、マスタ装置の種類に依存してスレーブ装置の種類、可能な動作などが制限される。つまり、制御の汎用性に乏しいという問題がある。
【０００６】
そこで、この発明の課題は、互いに制御軸数が異なる複数種類のマスタ装置と互いに制御軸数が異なる複数種類のスレーブ装置とを組み合わせて制御できる制御システムを提供することにある。また、この発明の課題は、そのような制御システムの一部をなし、互いに制御軸数が異なる複数種類のスレーブ装置を制御できるスレーブ装置制御部、そのような制御システムのための制御方法およびプログラムを提供することにある。
【課題を解決するための手段】
【０００７】
上記課題を解決するため、この開示の制御システムは、
マスタ装置とスレーブ装置とを組み合わせて制御する制御システムであって、
互いに制御軸数が異なる複数種類のマスタ装置のうち或る制御軸数のマスタ装置を、その制御軸数と同数の要素からなるマスタ情報を用いて制御するマスタ装置制御部と、
互いに制御軸数が異なる複数種類のスレーブ装置のうち或る制御軸数のスレーブ装置を、その制御軸数と同数の要素からなるスレーブ情報を用いて制御するスレーブ装置制御部と、
上記マスタ装置制御部から上記マスタ情報を逐次受信して、受信したマスタ情報の要素数に応じて予め定められた割り付けの仕方に基づいて、一定数の要素からなる抽象化マスタ情報を作成する抽象化マスタ情報作成部とを備え、
上記スレーブ装置制御部は、上記抽象化マスタ情報作成部から上記抽象化マスタ情報を逐次受信して、受信した抽象化マスタ情報に含まれた上記一定数の要素から、上記スレーブ情報の要素数に応じて予め定められた抽出の仕方に基づいて、上記スレーブ情報の要素数に応じた数の要素を抽出し、さらに、上記抽出した要素が示す値を用いて上記スレーブ情報を作成することを特徴とする。
【０００８】
本明細書で、マスタ装置またはスレーブ装置の「種類」とは、制御軸数が互いに異なるものだけでなく、制御軸の属性（並進と回転）が互いに異なるものを含んでいる。
【０００９】
また、予め定められた「割り付けの仕方」とは、或る要素数のマスタ情報に含まれたいずれの要素を、抽象化マスタ情報の一定数の要素（例えば、６要素）のうちのいずれに割り付けるか、を示す対応の仕方を意味する。この割り付けの仕方は、マスタ情報の要素数が例えば１、２、３、４、５または６のように異なれば、それに応じてそれぞれ異なって定められる。
【００１０】
また、予め定められた「抽出の仕方」とは、抽象化マスタ情報に含まれた上記一定数の要素から、いずれの要素を抽出するか、を示す仕方を意味する。抽出される要素の数は、作成すべきスレーブ情報の要素数に応じた数となる。
【００１１】
また、「マスタ情報」の各要素、「スレーブ情報」の各要素は、それぞれ逐次値が更新され、それによって、それぞれマスタ装置の各軸、スレーブ装置の各軸が駆動される。
【００１２】
この開示の制御システムでは、マスタ装置制御部は、或る制御軸数（例えば１、２、３、４、５または６）のマスタ装置を、その制御軸数と同数の要素からなるマスタ情報を用いて制御する。抽象化マスタ情報作成部は、上記マスタ装置制御部から上記マスタ情報を逐次受信して、受信したマスタ情報の要素数に応じて予め定められた割り付けの仕方に基づいて、一定数の要素からなる抽象化マスタ情報を作成する。つまり、上記マスタ情報の要素（要素数は６以下の様々な自然数であり得る）から、共通に上記一定数の要素からなる抽象化マスタ情報を作成する。スレーブ装置制御部は、上記抽象化マスタ情報作成部から上記抽象化マスタ情報を逐次受信して、受信した抽象化マスタ情報に含まれた上記一定数の要素から、上記（自らが制御すべきスレーブ装置のための）スレーブ情報の要素数に応じて予め定められた抽出の仕方に基づいて、上記スレーブ情報の要素数に応じた数の要素を抽出し、さらに、抽出した要素が示す値を用いて上記スレーブ情報を作成する。そして、上記スレーブ装置制御部は、作成したスレーブ情報を用いて上記スレーブ装置を制御する。すなわち、上記スレーブ装置制御部は、上記スレーブ装置を、その制御軸数と同数の要素からなるスレーブ情報を用いて制御する。
【００１３】
上述の動作によれば、マスタ情報の要素数（すなわち、マスタ装置の制御軸数）にかかわらず、上記一定数の要素からなる抽象化マスタ情報が逐次作成される。また、スレーブ情報の要素数（すなわち、スレーブ装置の制御軸数）にかかわらず、上記抽象化マスタ情報から上記スレーブ装置を制御するためのスレーブ情報が逐次作成される。したがって、互いに制御軸数が異なる複数種類のマスタ装置と互いに制御軸数が異なる複数種類のスレーブ装置とを組み合わせて制御することができる。
【００１４】
一実施形態の制御システムでは、互いに要素数が異なるマスタ情報毎に、上記マスタ情報の要素から上記抽象化マスタ情報の上記一定数の要素への割り付けの仕方を、それぞれ要素同士の対応表として格納している割付設定記憶部を備えたことを特徴とする。
【００１５】
この一実施形態の制御システムでは、上記抽象化マスタ情報作成部は、上記割付設定記憶部が格納している上記要素同士の対応表を参照することによって、上記マスタ情報の要素から、上記抽象化マスタ情報を迅速に作成できる。
【００１６】
一実施形態の制御システムでは、上記割付設定記憶部の上記対応表は、上記抽象化マスタ情報の上記一定数の要素のうち、上記マスタ情報の要素が割り付けられる要素毎に、その要素に関する倍率を対応付けて格納していることを特徴とする。
【００１７】
この一実施形態の制御システムでは、例えば上記抽象化マスタ情報作成部が上記抽象化マスタ情報を作成する際に、上記抽象化マスタ情報の上記一定数の要素のうち、上記マスタ情報の要素が割り付けられた要素毎に、その要素の値にそれぞれ上記対応する倍率を乗算する。これによって、それぞれその要素の値を適切な単位で表し、その要素の値に物理的な意味を持たせることができる。
【００１８】
一実施形態の制御システムでは、
上記対応表における上記抽象化マスタ情報の上記一定数の要素は、並進の自由度を表す要素と、回転の自由度を表す要素とを含み、
上記マスタ情報の要素が並進の自由度を表すとき、その要素は上記抽象化マスタ情報のうち並進の自由度を表す要素に割り付けられる一方、上記マスタ情報の要素が回転の自由度を表すとき、その要素は上記抽象化マスタ情報のうち回転の自由度を表す要素に割り付けられることを特徴とする。
【００１９】
この一実施形態の制御システムでは、上記マスタ情報の要素を上記抽象化マスタ情報の上記一定数の要素に割り付ける割り付けの仕方が、比較的簡単に定められる。
【００２０】
一実施形態の制御システムでは、上記抽象化マスタ情報の上記一定数の要素からの抽出の仕方を格納している抽出設定記憶部を備えたことを特徴とする。
【００２１】
この一実施形態の制御システムでは、上記スレーブ装置制御部は、上記抽出設定記憶部が格納している抽出の仕方を参照することによって、上記抽象化マスタ情報の上記一定数の要素から、上記スレーブ情報の要素数に応じた数の要素を迅速に抽出できる。
【００２２】
一実施形態の制御システムでは、上記抽出設定記憶部は、互いに要素数が異なるスレーブ情報毎に、上記抽出の仕方をそれぞれリストとして格納していることを特徴とする。
【００２３】
この一実施形態の制御システムでは、上記スレーブ装置制御部は、上記抽出設定記憶部が格納しているリストを参照することによって、上記抽象化マスタ情報の上記一定数の要素から、上記スレーブ情報の要素数に応じた数の要素を迅速に抽出できる。
【００２４】
一実施形態の制御システムでは、上記スレーブ装置制御部は、上記抽象化マスタ情報の上記一定数の要素のうち、上記抽出の仕方に応じて抽出すべき要素を参照して、その要素に上記マスタ情報の要素が割り付けられていないとき、警告を発することを特徴とする。
【００２５】
この一実施形態の制御システムでは、上記スレーブ装置制御部は、上記抽象化マスタ情報の上記一定数の要素のうち、上記抽出の仕方に応じて抽出すべき要素を参照する。ここで、上記参照した要素（抽出すべき要素）に上記マスタ情報の要素が割り付けられていないとき、何らかの異常が発生したと考えられる。そこで、上記スレーブ装置制御部は、上記参照した要素（抽出すべき要素）に上記マスタ情報の要素が割り付けられていないとき、警告を発する。これにより、制御システムの保守担当者等は、迅速に適切な対策をとることができる。
【００２６】
別の局面では、この開示のスレーブ装置制御部は、
マスタ装置とスレーブ装置とを組み合わせて制御する制御システムの一部をなし、互いに制御軸数が異なる複数種類のスレーブ装置のうち或る制御軸数のスレーブ装置を、その制御軸数と同数の要素からなるスレーブ情報を用いて制御するスレーブ装置制御部であって、
上記制御システムは、
互いに制御軸数が異なる複数種類のマスタ装置のうち或る制御軸数のマスタ装置を、その制御軸数と同数の要素からなるマスタ情報を用いて制御するマスタ装置制御部を備え、
上記スレーブ装置制御部は、
上記マスタ情報の要素数に関わらず、一定数の要素からなる抽象化マスタ情報を逐次受信して、受信した抽象化マスタ情報に含まれた上記一定数の要素から、上記スレーブ情報の要素数に応じて予め定められた抽出の仕方に基づいて、上記スレーブ情報の要素数に応じた数の要素を抽出する情報抽出部と、
上記情報抽出部が抽出した要素が示す値を用いて上記スレーブ情報を作成するスレーブ情報作成部とを備えたことを特徴とする。
【００２７】
上述の制御システムでは、マスタ装置制御部は、或る制御軸数（例えば１、２、３、４、５または６）のマスタ装置を、その制御軸数と同数の要素からなるマスタ情報を用いて制御する。ここで、この開示のスレーブ装置制御部では、情報抽出部は、上記マスタ情報の要素数（６以下の様々な自然数であり得る）に関わらず、一定数の要素からなる抽象化マスタ情報を逐次受信して、受信した抽象化マスタ情報に含まれた上記一定数の要素から、上記（自らが制御すべきスレーブ装置のための）スレーブ情報の要素数に応じて予め定められた抽出の仕方に基づいて、上記スレーブ情報の要素数に応じた数の要素を抽出する。さらに、スレーブ情報作成部は、上記情報抽出部が抽出した要素が示す値を用いて上記スレーブ情報を作成する。そして、上記スレーブ装置制御部は、作成したスレーブ情報を用いて上記スレーブ装置を制御する。すなわち、上記スレーブ装置制御部は、上記スレーブ装置を、その制御軸数と同数の要素からなるスレーブ情報を用いて制御する。
【００２８】
上述の動作によれば、スレーブ情報の要素数（すなわち、スレーブ装置の制御軸数）にかかわらず、上記抽象化マスタ情報から上記スレーブ装置を制御するためのスレーブ情報が逐次作成される。したがって、互いに制御軸数が異なる複数種類のスレーブ装置を制御することができる。
【００２９】
一実施形態のスレーブ装置制御部では、上記抽象化マスタ情報の上記一定数の要素からの抽出の仕方を格納している抽出設定記憶部を備えたことを特徴とする。
【００３０】
この一実施形態のスレーブ装置制御部では、上記情報抽出部は、上記抽出設定記憶部が格納している抽出の仕方を参照することによって、上記抽象化マスタ情報の上記一定数の要素から、上記スレーブ情報の要素数に応じた数の要素を迅速に抽出できる。
【００３１】
一実施形態の制御システムでは、上記抽出設定記憶部は、互いに要素数が異なるスレーブ情報毎に、上記抽出の仕方をそれぞれリストとして格納していることを特徴とする。
【００３２】
この一実施形態の制御システムでは、上記スレーブ装置制御部は、上記抽出設定記憶部が格納しているリストを参照することによって、上記抽象化マスタ情報の上記一定数の要素から、上記スレーブ情報の要素数に応じた数の要素を迅速に抽出できる。
【００３３】
一実施形態のスレーブ装置制御部では、上記情報抽出部は、上記抽象化マスタ情報の上記一定数の要素のうち、上記抽出の仕方に応じて抽出すべき要素を参照して、その要素に上記マスタ情報の要素が割り付けられていないとき、警告を発することを特徴とする。
【００３４】
この一実施形態のスレーブ装置制御部では、上記情報抽出部は、上記抽象化マスタ情報の上記一定数の要素のうち、上記抽出の仕方に応じて抽出すべき要素を参照する。ここで、上記参照した要素（抽出すべき要素）に上記マスタ情報の要素が割り付けられていないとき、何らかの異常が発生したと考えられる。そこで、上記情報抽出部は、上記参照した要素（抽出すべき要素）に上記マスタ情報の要素が割り付けられていないとき、警告を発する。これにより、スレーブ装置制御部および／または制御システムの保守担当者等は、迅速に適切な対策をとることができる。
【００３５】
さらに別の局面では、この開示の制御方法は、マスタ装置とスレーブ装置とを組み合わせて制御する制御システムのための制御方法であって、
上記制御システムは、
互いに制御軸数が異なる複数種類のマスタ装置のうち或る制御軸数のマスタ装置を、その制御軸数と同数の要素からなるマスタ情報を用いて制御するマスタ装置制御部と、
互いに制御軸数が異なる複数種類のスレーブ装置のうち或る制御軸数のスレーブ装置を、その制御軸数と同数の要素からなるスレーブ情報を用いて制御するスレーブ装置制御部とを備え、
上記制御方法は、
上記マスタ装置制御部から上記マスタ情報を逐次受信し、
受信したマスタ情報の要素数に応じて予め定められた割り付けの仕方に基づいて、一定数の要素からなる抽象化マスタ情報を作成し、
上記抽象化マスタ情報に含まれた上記一定数の要素から、上記スレーブ情報の要素数に応じて予め定められた抽出の仕方に基づいて、上記スレーブ情報の要素数に応じた数の要素を抽出し、さらに、
上記抽出した要素が示す値を用いて上記スレーブ情報を作成することを特徴とする。
【００３６】
この開示の制御方法によれば、互いに制御軸数が異なる複数種類のマスタ装置と互いに制御軸数が異なる複数種類のスレーブ装置とを組み合わせて制御することができる。
【００３７】
さらに別の局面では、この開示のプログラムは、上記制御方法をコンピュータに実行させるためのプログラムである。
【００３８】
この開示のプログラムをコンピュータに実行させることによって、上記制御方法を実施することができる。
【発明の効果】
【００３９】
以上より明らかなように、この開示の制御システム、制御方法およびプログラムによれば、互いに制御軸数が異なる複数種類のマスタ装置と互いに制御軸数が異なる複数種類のスレーブ装置とを組み合わせて制御することができる。また、この開示のスレーブ装置制御部によれば、互いに制御軸数が異なる複数種類のスレーブ装置を制御することができる。
【図面の簡単な説明】
【００４０】
【図１】この発明の一実施形態のロボット制御システムのブロック構成を示す図である。
【図２】マスタ装置またはスレーブ装置として用いられる各種ロボットの外観を示す図である。図２（Ａ）は１軸の装置としてのベルトコンベアを示し、図２（Ｂ）は２軸の装置としてのＸ−Ｙテーブルを示し、また、図２（Ｃ）は６軸ロボットを示している。
【図３】図３（Ａ）は上記ロボット制御システムの割付設定記憶部の記憶内容を模式的に示す図である。図３（Ｂ）は上記ロボット制御システムの抽出設定記憶部の記憶内容を模式的に示す図である。
【図４】上記割付設定記憶部に記憶された或る割付設定対応表における、マスタ情報の要素から抽象化マスタ情報の６要素への割り付けの仕方を説明する図である。
【図５】上記割付設定記憶部に記憶された別の割付設定対応表における、マスタ情報の要素から抽象化マスタ情報の６要素への割り付けの仕方を説明する図である。
【図６】上記割付設定記憶部に記憶されたさらに別の割付設定対応表における、マスタ情報の要素から抽象化マスタ情報の６要素への割り付けの仕方を説明する図である。
【図７】上記ロボット制御システムの中央制御部において、マスタ情報の要素から抽象化マスタ情報を作成する一実施形態の制御方法のフローを示す図である。
【図８】図８（Ａ）は割付設定対応表の形式を示す図である。図８（Ｂ）は、その割付設定対応表に基づいて作成される抽象化マスタ情報の形式を示す図である。
【図９】上記ロボット制御システムのスレーブ装置制御部において、抽象化マスタ情報からスレーブ情報を作成する一実施形態の制御方法のフローを示す図である。
【図１０】上記のスレーブ装置制御部において、或る抽出設定リストに基づいて抽出される抽出情報の内容を模式的に示す図である。
【図１１】上記スレーブ装置制御部において、別の抽出設定リストに基づいて抽出される抽出情報の内容を模式的に示す図である。
【図１２】上記スレーブ装置制御部において、さらに別の抽出設定リストに基づいて抽出される抽出情報の内容を模式的に示す図である。
【図１３】図１３（Ａ）は、上記抽出情報を用いて、更新されたスレーブ情報を算出するのに用いられるカムテーブルを例示する図である。図１３（Ｂ）は、上記抽出情報を用いて、更新されたスレーブ情報を算出するのに用いられるカムプロファイル曲線を例示する図である。
【図１４】図１４（Ａ）は、マスタ装置に対してスレーブ装置がとるべき一定の相対的な位置と向きを表す行列Ｒを示す図である。図１４（Ｂ）は、上記抽象化マスタ情報から抽出された、一定周期で逐次更新される抽出情報を表す行列Ｍを示す図である。図１４（Ｃ）は、行列Ｍと行列Ｒの積として算出される、スレーブ装置１０２−６のための指令値（位置と向き）を表す行列Ｓを示す図である。
【図１５】上記ロボット制御システムのマスタ装置制御部と中央制御部がともに一つの筐体に収容され、スレーブ装置制御部が別の筐体に収容された態様を示す図である。
【図１６】上記ロボット制御システムのマスタ装置制御部が一つの筐体に収容され、中央制御部とスレーブ装置制御部がともに別の筐体に収容された態様を示す図である。
【図１７】上記ロボット制御システムのマスタ装置制御部、中央制御部、スレーブ装置制御部がそれぞれ互いに別の筐体に収容された態様を示す図である。
【発明を実施するための形態】
【００４１】
以下、この発明の実施の形態を、図面を参照しながら詳細に説明する。
【００４２】
図１は、この発明の一実施形態のロボット制御システム１０のブロック構成を示している。このロボット制御システム１０は、マスタ装置１０１とスレーブ装置１０２とを組み合わせて制御するために工夫されたシステムである。以下では、簡単のため、マスタ装置１０１とスレーブ装置１０２に関して、「制御軸」を単に「軸」と呼び、「制御軸数」を単に「軸数」と呼ぶ。
【００４３】
マスタ装置１０１としては、図２（Ａ）に示すような１軸の装置としてのベルトコンベア、図２（Ｂ）に示すような２軸の装置としてのＸ−Ｙテーブル、図２（Ｃ）に示すような６軸ロボットなど、互いに軸数が異なる複数種類の装置のうち或る軸数ｍ（例えばｍ＝１、２、３、４、５または６）の装置が対象となる。同様に、スレーブ装置１０２としても、互いに軸数が異なる複数種類の装置のうち或る軸数ｎ（例えばｎ＝１、２、３、４、５または６）の装置が対象となる。
【００４４】
図１に示すように、このロボット制御システム１０は、この例では、１つの筐体（１点鎖線で示す）１０Ａ内に搭載されたマスタ装置制御部２０、中央制御装置としての中央制御部３０、スレーブ装置制御部４０、および、ユーザプログラム記憶部５０を備えている。
【００４５】
ユーザプログラム記憶部５０には、マスタ装置１０１を制御するためのプログラムとしてマスタ装置制御命令５１が格納されている。また、ユーザプログラム記憶部５０には、スレーブ装置１０２をマスタ装置１０１と同期させるためのプログラムとしてスレーブ装置同期命令５２が格納されている。
【００４６】
マスタ装置制御部２０は、マスタ装置制御命令５１を制御指示ＭＣＣとして受けて、或る軸数ｍのマスタ装置１０１を、その軸数ｍと同数ｍの要素からなるマスタ情報Ｍｍを用いて制御する。すなわち、マスタ装置制御部２０は、マスタ装置１０１へマスタ情報Ｍｍとしてｍ軸分の指令値ＣＶｍを送信し、マスタ装置１０１からｍ軸分の現在値ＣＶｍ′を受信して、マスタ装置１０１を制御する。マスタ情報Ｍｍの各要素は、それぞれ、この例では一定周期で逐次値が更新され、それによって、それぞれマスタ装置１０１の各軸が駆動される。
【００４７】
スレーブ装置制御部４０は、概略、スレーブ装置同期命令５２を制御指示ＳＣＣとして受けて、後述の抽象化マスタ情報ＡＭ６に基づいて、或る軸数ｎのスレーブ装置１０２を制御するためのスレーブ情報Ｓｎを作成する（具体的な作成の仕方については後述する。）。スレーブ情報Ｓｎは、制御すべきスレーブ装置１０２の軸数ｎと同数ｎの要素、すなわち、ｎ軸分の指令値ＣＶｎを含む。スレーブ装置制御部４０は、そのスレーブ情報Ｓｎを用いてスレーブ装置１０２を制御する。
【００４８】
中央制御部３０は、抽象化マスタ情報作成部３１をなす割付設定対応表選択部３２、軸情報割付部３３および倍率適用部３４と、割付設定記憶部３５とを備えている。
【００４９】
抽象化マスタ情報作成部３１は、概略、マスタ装置制御部２０からマスタ情報Ｍｍ（特に、現在値ＣＶｍ′）を逐次受信して、受信したマスタ情報Ｍｍの要素数ｍに応じて予め定められた割り付けの仕方に基づいて、一定数の要素、この例では６要素からなる抽象化マスタ情報ＡＭ６を作成する。つまり、マスタ情報Ｍｍの要素（要素数ｍは６以下の様々な自然数であり得る）から、共通に６要素からなる抽象化マスタ情報ＡＭ６を作成する。図８（Ｂ）に例示するように、抽象化マスタ情報ＡＭ６は、並進の自由度を表す３要素であるＸ（Ｘ軸の位置）、Ｙ（Ｙ軸の位置）およびＺ（Ｚ軸の位置）と、回転の自由度を表す３要素であるＹａｗ（ヨー角の値）、Ｐｉｔｃｈ（ピッチ角の値）およびＲｏｌｌ（ロール角の値）とを含む。
【００５０】
割付設定記憶部３５は、図３（Ａ）に例示するように、互いに種類が異なるマスタ情報Ｍｍ毎に、マスタ情報Ｍｍの要素から抽象化マスタ情報ＡＭ６の６要素への割り付けの仕方を、この例ではそれぞれ要素同士の割付設定対応表ＡＳＴ１，ＡＳＴ２，…，ＡＳＴ６（この例では、ＡＳＴ１，ＡＳＴ２，…，ＡＳＴ６を符号ＡＳＴで総称する。）として格納している。この例では、マスタ情報Ｍｍの種類とは、要素数ｍが互いに異なるものだけでなく、その要素の属性（並進と回転）が互いに異なるものを含んでいる。各割付設定対応表ＡＳＴは、「抽象化マスタ情報内の要素」欄と、「マスタ装置内の軸番号」欄と、「倍率」欄とを含んでいる。「抽象化マスタ情報内の要素」欄は、抽象化マスタ情報ＡＭ６の６要素であるＸ，Ｙ，Ｚ，Ｙａｗ，Ｐｉｔｃｈ，Ｒｏｌｌを表している。「マスタ装置内の軸番号」欄は、それらの６要素にそれぞれ対応されるべきマスタ情報Ｍｍの要素を軸番号で表している。「倍率」欄は、上記６要素のうち、マスタ情報Ｍｍの要素が割り付けられる要素毎に、その要素に関する倍率を対応付けて格納している。これは、その要素の値を適切な単位で表し、その要素の値に物理的な意味を持たせるためである。なお、割付設定対応表ＡＳＴに、倍率に代えて、または、倍率に加えて、マスタ情報Ｍｍの要素の値に対して加算または減算されるべきオフセット値（一定値）を格納しておいてもよい。
【００５１】
例えば、割付設定対応表ＡＳＴ１は、図４（Ａ）に示すように、マスタ装置１０１が１軸（軸Ａ０）の並進移動を行うベルトコンベア１０１−１である場合に、マスタ情報Ｍｍの１要素から抽象化マスタ情報ＡＭ６の６要素への割り付けの仕方を定めている。すなわち、図４（Ａ）中の軸Ａ０を、この例では図４（Ｂ）中に示す抽象化マスタ情報ＡＭ６のＸ軸に対応させている。この理由は、「製造ラインの進行方向はＸ軸」のような統一ルールを決めることで、製造ライン全体の設計が簡素化されるからである。これにより、図４（Ｃ）に示すように、抽象化マスタ情報ＡＭ６の要素Ｘに、軸Ａ０が割り付けられている。この例では、抽象化マスタ情報ＡＭ６の残りの要素Ｙ，Ｚ，Ｙａｗ，Ｐｉｔｃｈ，Ｒｏｌｌは、値０に固定されている。また、この例では、図４（Ｄ）に示すように、ベルトコンベア１０１−１の軸Ａ０は１００パルスで１ｍｍ移動する仕様、つまり、０．０１ｍｍ／パルスになっている。これに応じて、抽象化マスタ情報ＡＭ６の要素Ｘに、倍率０．０１が対応付けて格納されている。
【００５２】
また、割付設定対応表ＡＳＴ２は、図５（Ａ）に示すように、マスタ装置１０１が２軸（軸Ａ０と軸Ａ１）の並進移動を行うＸ−Ｙテーブル１０１−２である場合に、マスタ情報Ｍｍの２要素から抽象化マスタ情報ＡＭ６の６要素への割り付けの仕方を定めている。すなわち、図５（Ａ）中の軸Ａ０，Ａ１を、この例ではそれぞれ図５（Ｂ）中に示す抽象化マスタ情報ＡＭ６のＸ軸，Ｙ軸に対応させている。これにより、図５（Ｃ）に示すように、抽象化マスタ情報ＡＭ６の要素Ｘ，Ｙに、それぞれ軸Ａ０，Ａ１が割り付けられている。この例では、抽象化マスタ情報ＡＭ６の残りの要素Ｚ，Ｙａｗ，Ｐｉｔｃｈ，Ｒｏｌｌは、値０に固定されている。また、この例では、図５（Ｄ）に示すように、Ｘ−Ｙテーブル１０１−２の軸Ａ０は５０パルスで１ｍｍ移動する仕様、つまり、０．０２ｍｍ／パルスになっている。また、Ｘ−Ｙテーブル１０１−２の軸Ａ１は１００パルスで１ｍｍ移動する仕様、つまり、０．０１ｍｍ／パルスになっている。これに応じて、抽象化マスタ情報ＡＭ６の要素Ｘ，Ｙに、それぞれ倍率０．０２，０．０１が対応付けて格納されている。
【００５３】
また、割付設定対応表ＡＳＴ６は、図６（Ａ）に示すように、マスタ装置１０１が３軸（Ｘ，Ｙ，Ｚ）の並進と３軸（Ｙａｗ，Ｐｉｔｃｈ，Ｒｏｌｌ）の回転を行う６軸ロボット１０１−６である場合に、マスタ情報Ｍｍの６要素から抽象化マスタ情報ＡＭ６の６要素への割り付けの仕方を定めている。この例では、図６（Ｂ）に示すように、抽象化マスタ情報ＡＭ６の６要素Ｘ，Ｙ，Ｚ，Ｙａｗ，Ｐｉｔｃｈ，Ｒｏｌｌに、それぞれマスタ情報Ｍｍの６軸Ｘ，Ｙ，Ｚ，Ｙａｗ，Ｐｉｔｃｈ，Ｒｏｌｌをそのまま対応させている。抽象化マスタ情報ＡＭ６の各要素に関して、倍率は１．０が格納されている。マスタ装置１０１が６軸Ｘ，Ｙ，Ｚ，Ｙａｗ，Ｐｉｔｃｈ，Ｒｏｌｌを有する場合、この割り付けの仕方が最も簡単になる。
【００５４】
上の各例から分かるように、マスタ情報Ｍｍの要素Ｘ，Ｙ，Ｚが並進の自由度を表すとき、その要素Ｘ，Ｙ，Ｚは抽象化マスタ情報ＡＭ６のうち並進の自由度を表す３要素Ｘ，Ｙ，Ｚのいずれかに割り付けられる一方、マスタ情報Ｍｍの要素Ｙａｗ，Ｐｉｔｃｈ，Ｒｏｌｌが回転の自由度を表すとき、その要素Ｙａｗ，Ｐｉｔｃｈ，Ｒｏｌｌは抽象化マスタ情報ＡＭ６のうち回転の自由度を表す３要素Ｙａｗ，Ｐｉｔｃｈ，Ｒｏｌｌのいずれかに割り付けられる。これにより、割り付けの仕方が、比較的簡単に定められる。
【００５５】
図７は、中央制御部３０において、マスタ情報Ｍｍの要素から抽象化マスタ情報ＡＭ６を作成する一実施形態の制御方法のフローを示している。
【００５６】
まず、割付設定対応表選択部３２によって、マスタ装置制御部２０からマスタ情報Ｍｍ（特に、現在値ＣＶｍ′）を取得して（図７のステップＳ１０１）、マスタ情報Ｍｍの種類に応じた割付設定対応表ＡＳＴを選択する（図７のステップＳ１０２）。
【００５７】
この例では、マスタ装置１０１が２軸（軸Ａ０と軸Ａ１）の並進移動を行うＸ−Ｙテーブル１０１−２であるのに応じて、図８（Ａ）に示すように、割付設定対応表ＡＳＴ２（図５（Ｃ）に示したもの）を選択するものとする。
【００５８】
次に、軸情報割付部３３によって、図８（Ｂ）に示すような抽象化マスタ情報ＡＭ６の６行分のループを開始する（図７のステップＳ１０３）。そして、抽象化マスタ情報ＡＭ６の注目行について、図８（Ａ）に示す割付設定対応表ＡＳＴ２の該当行（注目行と同じ番号の行）を参照して（図７のステップＳ１０４）、マスタ装置１０１の軸が割り付けられているか否かを判断する（図７のステップＳ１０５）。ここで、マスタ装置１０１の軸が割り付けられていれば（図７のステップＳ１０５でＹＥＳ）、マスタ情報Ｍｍから対応する要素の値を取得する（図７のステップＳ１０６）。さらに、倍率適用部３４によって、その要素の値に、割付設定対応表ＡＳＴ２の該当行に設定されている倍率を乗算する（図７のステップＳ１０７）。続いて、その乗算後の値を、抽象化マスタ情報ＡＭ６の注目行にセットする（図７のステップＳ１０９）。
【００５９】
例えば、抽象化マスタ情報ＡＭ６の注目行が第１行であるとき、図８（Ａ）に示す割付設定対応表の該当行（第１行）を参照すると、マスタ装置１０１の軸Ａ０が割り付けられている。そこで、マスタ情報Ｍｍから対応する要素の値（軸Ａ０の現在値）を取得する。さらに、その要素の値に、割付設定対応表ＡＳＴ２の該当行（第１行）に設定されている倍率（この例では、０．０２）を乗算する。これにより、その要素の値に物理的な意味を持たせることができる。続いて、抽象化マスタ情報ＡＭ６の注目行（第１行）に、その乗算後の値（この例では、図８（Ｂ）中に「○○○」で表されている。）をセットする。
【００６０】
また、抽象化マスタ情報ＡＭ６の注目行が第２行であるとき、図８（Ａ）に示す割付設定対応表の該当行（第２行）を参照すると、マスタ装置１０１の軸Ａ１が割り付けられている。そこで、マスタ情報Ｍｍから対応する要素の値（軸Ａ１の現在値）を取得する。さらに、その要素の値に、割付設定対応表ＡＳＴ２の該当行（第２行）に設定されている倍率（この例では、０．０１）を乗算する。これにより、その要素の値に物理的な意味を持たせることができる。続いて、抽象化マスタ情報ＡＭ６の注目行（第２行）に、その乗算後の値（この例では、図８（Ｂ）中に「△△△」で表されている。）をセットする。
【００６１】
なお、予め割付設定対応表ＡＳＴに、倍率に代えて、または、倍率に加えて、オフセット値（一定値）を格納しておき、マスタ情報Ｍｍの要素の値に対してそのオフセット値を加算または減算してもよい。
【００６２】
一方、図７のステップＳ１０５で、マスタ装置１０１の軸が割り付けられていなければ（図７のステップＳ１０５でＮＯ）、軸情報割付部３３によって、割付設定対応表ＡＳＴ２の該当行に設定されている固定値を取得する（図７のステップＳ１０８）。続いて、抽象化マスタ情報ＡＭ６の注目行に、その固定値をセットする（図７のステップＳ１０９）。
【００６３】
例えば、抽象化マスタ情報ＡＭ６の注目行が第３行であるとき、図８（Ａ）に示す割付設定対応表の該当行（第３行）を参照すると、マスタ装置１０１の軸が割り付けられていない。そこで、割付設定対応表ＡＳＴ２の該当行（第３行）に設定されている固定値「０」を取得する。続いて、抽象化マスタ情報ＡＭ６の注目行（第３行）に、その固定値「０」をセットする。
【００６４】
このようにして、抽象化マスタ情報ＡＭ６の６行分のループを終了すると（図７のステップＳ１１０）、図８（Ｂ）に示すような抽象化マスタ情報ＡＭ６が作成される。
【００６５】
この例では、抽象化マスタ情報ＡＭ６の６要素Ｘ，Ｙ，Ｚ，Ｙａｗ，Ｐｉｔｃｈ，Ｒｏｌｌの値は、それぞれ、「○○○」、「△△△」、「０」、「０」、「０」、「０」になっている。
【００６６】
以下では、固定値「０」と区別するため、「○○○」、「△△△」のようなマスタ情報Ｍｍに由来して取得された値（倍率が乗算された値、オフセット値が加算または減算された値などを含む。）を「取得値」と呼ぶ。なお、抽象化マスタ情報ＡＭ６の各行に、取得値がセットされているか否かを表すフラグを付しておいてもよい。
【００６７】
上の例では、マスタ装置１０１が２軸（軸Ａ０と軸Ａ１）の並進移動を行うＸ−Ｙテーブル１０１−２であるのに応じて、割付設定対応表ＡＳＴ２（図５（Ｃ）に示したもの）を選択するものとした。しかしながら、これに限られるものではない。マスタ装置１０１が１軸（軸Ａ０）の並進移動を行うベルトコンベア１０１−１であるのに応じて、図４（Ｃ）に示した割付設定対応表ＡＳＴ１を選択してもよい。また、マスタ装置１０１が３軸（Ｘ，Ｙ，Ｚ）の並進と３軸（Ｙａｗ，Ｐｉｔｃｈ，Ｒｏｌｌ）の回転を行う６軸ロボット１０１−６であるのに応じて、図６（Ｂ）に示した割付設定対応表ＡＳＴ６を選択してもよい。いずれの場合も、割付設定対応表ＡＳＴに基づいて、６要素からなる抽象化マスタ情報ＡＭ６を作成することができる。
【００６８】
このようにして、中央制御部３０（抽象化マスタ情報作成部３１）は、マスタ情報Ｍｍの要素（要素数ｍは６以下の様々な自然数であり得る）から、共通に６要素からなる抽象化マスタ情報ＡＭ６を作成する。抽象化マスタ情報作成部３１は、割付設定対応表ＡＳＴを参照することによって、マスタ情報Ｍｍの要素から、抽象化マスタ情報ＡＭ６を迅速に作成できる。中央制御部３０は、作成した抽象化マスタ情報ＡＭ６を、スレーブ情報Ｓｎの作成のために図１中に示すスレーブ装置制御部４０へ提供する。
【００６９】
図１中に示すように、スレーブ装置制御部４０は、情報抽出部４１と、スレーブ情報作成部４２をなす軌跡更新部４３および指令値計算部４４と、抽出設定記憶部４５と、抽出設定リスト選択部４６とを備えている。
【００７０】
情報抽出部４１は、概略、抽象化マスタ情報作成部３１から抽象化マスタ情報ＡＭ６を逐次受信して、受信した抽象化マスタ情報ＡＭ６に含まれた６要素から、後述の予め定められた抽出の仕方に基づいて、このスレーブ装置制御部４０が制御すべきスレーブ装置１０２のためのスレーブ情報Ｓｎの要素数ｎに応じた数の要素を抽出する。
【００７１】
抽出設定記憶部４５は、図３（Ｂ）に例示するように、互いに種類が異なるスレーブ情報Ｓｎ毎に、抽象化マスタ情報ＡＭ６の６要素からの、スレーブ情報Ｓｎの要素数ｎに応じた抽出の仕方を、それぞれ抽出設定リストＥＸＬ１，ＥＸＬ２，…，ＥＸＬ６（この例では、ＥＸＬ１，ＥＸＬ２，…，ＥＸＬ６を符号ＥＸＬで総称する。）として格納している。この例では、スレーブ情報Ｓｎの種類とは、要素数ｎが互いに異なるものだけでなく、その要素の属性（並進と回転）が互いに異なるものを含んでいる。各抽出設定リストＥＸＬは、「抽象化マスタ情報内の要素」欄と、「スレーブ装置で使用」欄と、「警告」欄とを含んでいる。「抽象化マスタ情報内の要素」欄は、抽象化マスタ情報ＡＭ６の６要素であるＸ，Ｙ，Ｚ，Ｙａｗ，Ｐｉｔｃｈ，Ｒｏｌｌを表している。「スレーブ装置で使用」欄は、それらの６要素がそれぞれ抽出すべき要素であるか否か、つまり、（このスレーブ装置制御部４０が制御すべき）スレーブ装置１０２で使用すべきか否かを、「あり」または「なし」で表している。「警告」欄は、抽象化マスタ情報ＡＭ６の６要素のうち、上記「スレーブ装置で使用」欄が「あり」の要素について、何らかの異常によって、抽象化マスタ情報ＡＭ６のその要素（抽出すべき要素）にマスタ情報Ｍｍ由来の要素（取得値）が割り付けられていないとき、警告を発すべきか否かを、「あり」または「なし」で表している。「警告」欄の符号「−」は、警告を発すべきか否かが定められていないことを表している。
【００７２】
例えば、抽出設定リストＥＸＬ１は、図１０に示すように、制御すべきスレーブ装置１０２が１軸のスレーブ装置１０２−１（例えば、１軸の電子カム若しくは電子ギア、または、図２（Ａ）に示したようなベルトコンベア）である場合のものであり、抽象化マスタ情報ＡＭ６の６要素であるＸ，Ｙ，Ｚ，Ｙａｗ，Ｐｉｔｃｈ，Ｒｏｌｌに対応する「スレーブ装置で使用」欄の設定は、それぞれ「あり」、「なし」、「なし」、「なし」、「なし」、「なし」になっている。また、「警告」欄の設定は、それぞれ「なし」、「−」、「−」、「−」、「−」、「−」になっている。
【００７３】
また、抽出設定リストＥＸＬ２は、図１１に示すように、制御すべきスレーブ装置１０２が２軸のスレーブ装置１０２−２（例えば、図２（Ｂ）に示したようなＸ−Ｙテーブル）である場合のものであり、抽象化マスタ情報ＡＭ６の６要素であるＸ，Ｙ，Ｚ，Ｙａｗ，Ｐｉｔｃｈ，Ｒｏｌｌに対応する「スレーブ装置で使用」欄の設定は、それぞれ「あり」、「あり」、「なし」、「なし」、「なし」、「なし」になっている。また、「警告」欄の設定は、それぞれ「なし」、「あり」、「−」、「−」、「−」、「−」になっている。
【００７４】
また、抽出設定リストＥＸＬ６は、図１２に示すように、制御すべきスレーブ装置１０２が６軸のスレーブ装置１０２−６（例えば、図２（Ｃ）に示したような６軸ロボット）である場合のものであり、抽象化マスタ情報ＡＭ６の６要素であるＸ，Ｙ，Ｚ，Ｙａｗ，Ｐｉｔｃｈ，Ｒｏｌｌに対応する「スレーブ装置で使用」欄の設定は、それぞれ「あり」、「あり」、「あり」、「あり」、「あり」、「あり」になっている。また、「警告」欄の設定は、それぞれ「あり」、「あり」、「あり」、「なし」、「なし」、「なし」になっている。
【００７５】
図９は、スレーブ装置制御部４０において、抽象化マスタ情報ＡＭ６からスレーブ情報Ｓｎを作成する一実施形態の制御方法のフローを示している。
【００７６】
まず、抽出設定リスト選択部４６によって、抽出設定記憶部４５が格納している抽出設定リストＥＸＬ１，ＥＸＬ２，…，ＥＸＬ６のうち、このスレーブ装置制御部４０が制御すべきスレーブ装置１０２のためのスレーブ情報Ｓｎの種類に応じた抽出設定リストＥＸＬを選択する（図９のステップＳ２０１）。
【００７７】
例えば、制御すべきスレーブ装置１０２が１軸のスレーブ装置１０２−１（例えば、１軸の電子カム若しくは電子ギア、または、図２（Ａ）に示したようなベルトコンベア）である場合は、図１０中に示した抽出設定リストＥＸＬ１が選択される。また、制御すべきスレーブ装置１０２が２軸のスレーブ装置１０２−２（例えば、図２（Ｂ）に示したようなＸ−Ｙテーブル）である場合は、図１１中に示した抽出設定リストＥＸＬ２が選択される。また、制御すべきスレーブ装置１０２が６軸のスレーブ装置１０２−６（例えば、図２（Ｃ）に示したような６軸ロボット）である場合は、図１２中に示した抽出設定リストＥＸＬ６が選択される。
【００７８】
次に、情報抽出部４１によって、中央制御部３０（抽象化マスタ情報作成部３１）から抽象化マスタ情報ＡＭ６を受信して取得する（図９のステップＳ２０２）。
【００７９】
次に、情報抽出部４１によって、図８（Ｂ）に示すような抽象化マスタ情報ＡＭ６の６行分のループを開始する（図９のステップＳ２０３）。そして、抽象化マスタ情報ＡＭ６における注目行について、抽出設定リストＥＸＬの該当行（注目行と同じ番号の行）の「スレーブ装置で使用」欄を参照して、スレーブ装置１０２で使用すべき要素であるか否かを判断する（ステップＳ２０４）。ここで、スレーブ装置１０２で使用すべき要素であれば（ステップＳ２０４でＹＥＳ）、さらに、抽象化マスタ情報ＡＭ６の注目行にマスタ情報Ｍｍ由来の取得値がセットされているか否かを判断する（ステップＳ２０５）。この判断は、例えば、抽象化マスタ情報ＡＭ６の注目行の値が取得値と固定値とのいずれであるかを識別することによって行う。なお、予め抽象化マスタ情報ＡＭ６の各行に取得値がセットされているか否かを表すフラグを付しておき、この判断の便宜を図ってもよい。ここで、抽象化マスタ情報ＡＭ６の注目行に取得値がセットされていれば（ステップＳ２０５でＹＥＳ）、その注目行にセットされている取得値を必要情報として抽出する（ステップＳ２０６）。一方、抽象化マスタ情報ＡＭ６の注目行に取得値がセットされていなければ（ステップＳ２０５でＮＯ）、抽出設定リストＥＸＬの該当行の「警告」欄を参照して、警告を発すべきか否かを判断する（ステップＳ２０７）。ここで、警告を発すべきであれば（ステップＳ２０７でＹＥＳ）、情報抽出部４１は警告を発する（ステップＳ２０８）。警告を発する仕方としては、例えば、スレーブ装置１０２に設けられたＬＥＤ（発光ダイオード）ランプを点滅させる、スレーブ装置１０２の処理を異常として停止させる、イベント履歴に残すなど、様々な仕方がある。これにより、中央制御部３０、スレーブ装置制御部４０および／またはロボット制御システム１０の保守担当者等は、迅速に適切な対策をとることができる。なお、抽出設定リストＥＸＬの該当行の「警告」欄を参照した結果、警告を発すべきでなければ（ステップＳ２０７でＮＯ）、情報抽出部４１は警告を発しない。その後、抽象化マスタ情報ＡＭ６における注目行を次の行に進める。このようにして、抽象化マスタ情報ＡＭ６の６行分のループを終了する（ステップＳ２０９）。
【００８０】
すると、正常に終了した場合、例えば、図１０中に示した抽出設定リストＥＸＬ１を選択した例では、同図中に示すように、抽象化マスタ情報ＡＭ６の１つの要素Ｘに対応して、１つの要素からなる抽出情報Ｅｎ１が得られる。その要素の取得値は「Ｘ軸取得値」と表されている。また、図１１中に示した抽出設定リストＥＸＬ２を選択した例では、同図中に示すように、抽象化マスタ情報ＡＭ６の２つの要素Ｘ，Ｙに対応して、２つの要素からなる抽出情報Ｅｎ２が得られる。それらの要素の取得値は、それぞれ「Ｘ軸取得値」、「Ｙ軸取得値」と表されている。また、図１２中に示した抽出設定リストＥＸＬ６を選択した例では、同図中に示すように、抽象化マスタ情報ＡＭ６の６つの要素Ｘ，Ｙ，Ｚ，Ｙａｗ，Ｐｉｔｃｈ，Ｒｏｌｌに対応して、６つの要素からなる抽出情報Ｅｎ６が得られる。それらの要素の取得値は、それぞれ「Ｘ軸取得値」、「Ｙ軸取得値」、「Ｚ軸取得値」、「Ｙａｗ軸取得値」、「Ｐｉｔｃｈ軸取得値」、「Ｒｏｌｌ軸取得値」と表されている。
【００８１】
このように、それぞれスレーブ情報Ｓｎの要素数ｎに応じた数の要素からなる抽出情報Ｅｎ１、Ｅｎ２、またはＥｎ６（これらを抽出情報Ｅｎと総称する。）が得られる。つまり、スレーブ装置制御部４０は、抽出設定記憶部４５が格納している抽出設定リストＥＸＬを参照することによって、抽象化マスタ情報ＡＭ６の６要素から、スレーブ情報Ｓｎの要素数ｎに応じた数の要素を迅速に抽出できる。
【００８２】
この後、図９のステップＳ２１０で、スレーブ情報作成部４２をなす軌跡更新部４３によって、抽出情報Ｅｎ（抽出した要素が示す値）を用いて、スレーブ装置１０２のための軌跡ＴＲ（スレーブ情報Ｓｎの要素数ｎに応じた数の要素からなる）を更新して求める。さらに、図９のステップＳ２１１で、その軌跡ＴＲに応じた指令値（スレーブ情報Ｓｎの要素数ｎに応じた数の要素からなる）を計算して出力する。このようにして、スレーブ情報作成部４２は、この例ではマスタ情報Ｍｍの更新に同期した一定周期で逐次、スレーブ情報Ｓｎを作成する。
【００８３】
例えば、１要素からなる抽出情報Ｅｎ１の「Ｘ軸取得値」である変位Ｔ（現在位置をｘとする。）に応じて、１軸のスレーブ装置１０２−１である電子カムの更新された指令値（位置）ｙを算出するものとする。カムプロファイル１周分のマスタ移動量をＴとすると、カムの位相ｐ＝ｘｍｏｄＴという関係がある（ｘｍｏｄＴは、ｘをＴで割り算した余りを意味している。）。予め、カム曲線を表す関数ｙ＝ｆ（ｐ）が設定されているものとする。その場合、スレーブ装置１０２−１の更新された指令値（位置）ｙを、ｙ＝ｆ（ｐ）によって算出する。算出に際しては、例えば図１３（Ａ）に示すような、位相ｐと変位ｙとの対応関係を表すカムテーブルを用意し、指令値（位置）ｙを算出してもよい。このカムテーブルの行間に相当する指令値（位置）ｙは、線形補間で算出され得る。または、指令値（位置）ｙは、図１３（Ｂ）に示すような、カムの１周分にわたって定義されたカムプロファイル曲線ｙ＝ｆ（ｐ）を用いて算出してもよい。
【００８４】
また、マスタ装置１０１が６軸ロボットである場合において、６要素からなる抽出情報Ｅｎ６に応じて、６軸のスレーブ装置１０２−６の更新された軌跡を指令値（位置と向き）として算出するものとする。ここで、抽出情報Ｅｎ６（抽象化マスタ情報ＡＭ６と同じ）の位置と向きを基準として、一定の相対的な位置と向きを保つようにスレーブ装置１０２−６を制御するものとする。この場合、図１４（Ａ）に示すように、予め、その一定の相対的な位置と向きを行列Ｒで表現して設定しておく。ここで、図１４（Ｂ）に示すように、一定周期で逐次更新される抽出情報Ｅｎ６（抽象化マスタ情報ＡＭ６と同じ）を行列Ｍで表現する。すると、図１４（Ｃ）に示すように、スレーブ装置１０２−６のための指令値（位置と向き）は、行列Ｓ＝Ｍ・Ｒとして、つまり、行列Ｍと行列Ｒとの積として算出される。これにより、スレーブ装置１０２−６は、マスタ装置１０１に対して、３次元空間での回転を含む追従を行うことができる。
【００８５】
このようにして、スレーブ装置制御部４０は、スレーブ情報Ｓｎの要素数ｎに応じた数の要素からなるスレーブ情報Ｓｎを作成し、作成したスレーブ情報Ｓｎを用いてスレーブ装置１０２を制御する。すなわち、スレーブ装置制御部４０は、スレーブ装置１０２を、その軸数ｎと同数ｎの要素からなるスレーブ情報Ｓｎを用いて制御する。
【００８６】
上述の動作によれば、マスタ情報Ｍｍの要素数ｍ（すなわち、マスタ装置１０１の軸数ｍ）にかかわらず、６要素からなる抽象化マスタ情報ＡＭ６が逐次作成される。また、スレーブ情報Ｓｎの要素数ｎ（すなわち、スレーブ装置１０２の軸数ｎ）にかかわらず、抽象化マスタ情報ＡＭ６からスレーブ装置１０２を制御するためのスレーブ情報Ｓｎが逐次作成される。したがって、互いに軸数ｍが異なる複数種類のマスタ装置１０１と互いに軸数ｎが異なる複数種類のスレーブ装置１０２とを組み合わせて制御することができる。
【００８７】
例えば、或る軸数ｍのマスタ装置１０１が別の軸数のマスタ装置に切り替えられた場合、および／または、或る軸数ｎのスレーブ装置１０２が別の軸数のスレーブ装置に切り替えられた場合に、このロボット制御システム１０によれば、それらの切り替えられたマスタ装置および／またはスレーブ装置を組み合わせて直ちに制御することができる。
【００８８】
このロボット制御システム１０は、実質的にコンピュータ装置（例えば、プログラマブルロジックコントローラ（programmable logic controller；PLC）など）によって構成され得る。例えば、マスタ装置制御部２０、中央制御部３０の抽象化マスタ情報作成部３１、スレーブ装置制御部４０の情報抽出部４１、スレーブ情報作成部４２および抽出設定リスト選択部４６は、プログラムに従って動作するプロセッサによって構成される。また、割付設定記憶部３５、抽出設定記憶部４５およびユーザプログラム記憶部５０は、不揮発性半導体メモリなどの記憶装置によって構成される。したがって、図７によって説明した中央制御部３０における制御方法、図９によって説明したスレーブ装置制御部４０における制御方法は、それぞれ、コンピュータに実行させるためのプログラムとして構成されるのが望ましい。さらに、図７によって説明した中央制御部３０における制御方法と、図９によって説明したスレーブ装置制御部４０における制御方法とは、連続した一つのプログラムとして構成されてもよい。また、それらのプログラムは、それぞれコンピュータ読み取り可能な非一時的（non-transitory）な記録媒体に記録されるのが望ましい。その場合、記録媒体に記録されたそれらのプログラムをコンピュータ装置に読み取らせ、実行させることによって、上述の制御方法を実施することができる。
【００８９】
上述の実施形態では、図１に示したように、ロボット制御システム１０をなすマスタ装置制御部２０、中央制御装置としての中央制御部３０、スレーブ装置制御部４０、および、ユーザプログラム記憶部５０が１つの筐体（１点鎖線で示す）１０Ａに搭載されているものとした。しかしながら、これに限られるものではない。
【００９０】
例えば、図１５に示すように、ロボット制御システム１０をなすマスタ装置制御部２０と中央制御部３０がともに一つの筐体１１Ａに収容され、スレーブ装置制御部４０が別の筐体１１Ｂに収容されていてもよい。この例では、筐体１１Ａにユーザプログラム記憶部５０Ａが設けられ、マスタ装置制御命令５１とスレーブ装置同期命令５２を格納している。筐体１１Ａ，１１Ｂ間のスレーブ装置同期命令５２、抽象化マスタ情報ＡＭ６の送受信は、それぞれの筐体１１Ａ，１１Ｂに搭載された図示しない通信部によって例えばＥｔｈｅｒＣＡＴ（登録商標）（Ethernet for Control Automation Technology）を介して行われる。この図１５の態様は、システムの規模を分散させるのに適する。特に、マスタ装置１０１の軸数ｍがスレーブ装置１０２の軸数ｎよりも小さい場合に適する。
【００９１】
また、図１６に示すように、ロボット制御システム１０をなすマスタ装置制御部２０が一つの筐体１２Ａに収容され、中央制御部３０とスレーブ装置制御部４０がともに別の筐体１２Ｂに収容されていてもよい。この例では、筐体１２Ｂにユーザプログラム記憶部５０Ｂが設けられ、マスタ装置制御命令５１とスレーブ装置同期命令５２を格納している。筐体１２Ａ，１２Ｂ間のマスタ装置制御命令５１、マスタ情報Ｍｍの送受信は、それぞれの筐体１２Ａ，１２Ｂに搭載された図示しない通信部によって行われる。この図１６の態様は、システムの規模を分散させるのに適する。特に、マスタ装置１０１の軸数ｍがスレーブ装置１０２の軸数ｎよりも大きい場合に適する。
【００９２】
また、図１７に示すように、ロボット制御システム１０をなすマスタ装置制御部２０、中央制御部３０、スレーブ装置制御部４０がそれぞれ互いに別の筐体１３Ａ，１３Ｃ，１３Ｂに収容されていてもよい。この例では、筐体１３Ｃにユーザプログラム記憶部５０Ｃが設けられ、マスタ装置制御命令５１とスレーブ装置同期命令５２を格納している。筐体１３Ａ，１３Ｃ間のマスタ装置制御命令５１、マスタ情報Ｍｍの送受信、および、筐体１３Ｃ，１３Ｂ間のスレーブ装置同期命令５２、抽象化マスタ情報ＡＭ６の送受信は、それぞれの筐体１３Ａ，１３Ｃ，１３Ｂに搭載された図示しない通信部によって行われる。この図１７の態様は、さらにシステムの規模を分散させるのに適する。
【００９３】
なお、上の例では、抽象化マスタ情報ＡＭ６は代表的に６要素からなるものとしたが、これに限られるものではない。例えば４軸の水平多関節ロボットを主に制御する場合、抽象化マスタ情報が４要素（Ｘ，Ｙ，Ｚ，Ｙａｗ）からなっていてもよい。
【００９４】
また、この発明の制御システムは、いわゆるロボット（例えば図２（Ｃ）に示したような６軸ロボット）を制御対象として含む場合に限られず、マスタ装置１０１が例えば図２（Ａ）に示したようなベルトコンベアであり、かつ、スレーブ装置１０２が例えば図２（Ｂ）に示したようなＸ−Ｙテーブルである場合にも、適用され得る。
【００９５】
以上の実施形態は例示であり、この発明の範囲から離れることなく様々な変形が可能である。上述した複数の実施の形態は、それぞれ単独で成立し得るものであるが、実施の形態同士の組みあわせも可能である。また、異なる実施の形態の中の種々の特徴も、それぞれ単独で成立し得るものであるが、異なる実施の形態の中の特徴同士の組みあわせも可能である。
【符号の説明】
【００９６】
１０  ロボット制御システム
２０  マスタ装置制御部
３０  中央制御部
３１  抽象化マスタ情報作成部
３５  割付設定記憶部
４０  スレーブ装置制御部
４１  情報抽出部
４２  スレーブ情報作成部
４５  抽出設定記憶部
ＡＳＴ，ＡＳＴ１，ＡＳＴ２，…，ＡＳＴ６  割付設定対応表
ＥＸＬ，ＥＸＬ１，ＥＸＬ２，…，ＥＸＬ６  抽出設定リスト
【図１】
2019136855.tif 000003
【図２】
2019136855.tif 000004
【図３】
2019136855.tif 000005
【図４】
2019136855.tif 000006
【図５】
2019136855.tif 000007
【図６】
2019136855.tif 000008
【図７】
2019136855.tif 000009
【図８】
2019136855.tif 000010
【図９】
2019136855.tif 000011
【図１０】
2019136855.tif 000012
【図１１】
2019136855.tif 000013
【図１２】
2019136855.tif 000014
【図１３】
2019136855.tif 000015
【図１４】
2019136855.tif 000016
【図１５】
2019136855.tif 000017
【図１６】
2019136855.tif 000018
【図１７】
2019136855.tif 000019