(57)【特許請求の範囲】
【請求項１】
第１時計部から出力される時刻情報に基づいて第１制御対象物を制御するマスタ制御装置と、
前記マスタ制御装置とネットワークを介して接続され、前記マスタ制御装置から送信される制御情報および第２時計部から出力される時刻情報に基づいて前記第１制御対象物と異なる第２制御対象物を制御するスレーブ制御装置とを備え、
前記マスタ制御装置は、第１モータドライバと、前記第１モータドライバに指令を与えて前記第１制御対象物を動作させる第１コントローラとを有し、
前記スレーブ制御装置は、第２モータドライバと、前記第２モータドライバに指令を与えて前記第２制御対象物を動作させる第２コントローラとを有し、
前記マスタ制御装置から送信された前記制御情報が前記スレーブ制御装置を通過する時刻をサンプリングした結果に基づき、前記第１コントローラの前記第１時計部の時刻情報と前記第２コントローラの前記第２時計部の時刻情報との時刻同期を行うことを特徴とする制御システム。
【請求項２】
請求項１に記載の制御システムであって、
前記スレーブ制御装置は、前記マスタ制御装置から送信される前記制御情報からのデータ読出および前記制御情報へのデータ書込を行った後で前記マスタ制御装置に戻し、
前記マスタ制御装置は、前記制御情報に基づいて前記時刻同期を行う制御システム。
【請求項３】
請求項２に記載の制御システムであって、
前記スレーブ制御装置は複数設けられ、前記マスタ制御装置から送信される前記制御情報を順番に通過させた後で折り返して逆の順番で通過させて前記マスタ制御装置に戻し、
前記第１時計部および複数の前記第２時計部のうちの一の時計部を基準時計部とし、前記基準時計部以外の時計部を前記基準時計部に対して時刻同期させる制御システム。
【請求項４】
請求項３に記載の制御システムであって、
前記基準時計部は、前記マスタ制御装置の前記第１時計部である制御システム。
【請求項５】
請求項３に記載の制御システムであって、
前記基準時計部は、前記マスタ制御装置からの前記制御情報を最初に受信するスレーブ制御装置の前記第２時計部である制御システム。
【請求項６】
請求項１ないし５のいずれか一項に記載の制御システムであって、
前記マスタ制御装置は、前記第２制御対象物の動作に関連する動作指令を前記制御情報に含めて送信し、前記スレーブ制御装置の全てが前記制御情報から前記動作指令を読み取った後で、第１割込信号を発生させて前記第１制御対象物の動作を開始し、
前記スレーブ制御装置は前記第１割込信号と同期して第２割込信号を発生させて前記第２制御対象物の動作を開始する制御システム。
【請求項７】
請求項６に記載の制御システムであって、
前記スレーブ制御装置は、前記マスタ制御装置から送信される前記制御情報からのデータ読出および前記制御情報へのデータ書込を行った後で前記制御情報を前記マスタ制御装置に戻し、
前記マスタ制御装置は、前記制御情報が前記マスタ制御装置から前記スレーブ制御装置に送信されてから前記マスタ制御装置に戻る１サイクルの半分の時間が経過するまで、前記第１割込信号の発生を禁止する制御システム。
【請求項８】
第１モータドライバと、前記第１モータドライバに指令を与えて第１制御対象物を動作させる第１コントローラとを有するマスタ制御装置により前記第１制御対象物を制御するとともに、第２モータドライバと、前記第２モータドライバに指令を与えて第２制御対象物を動作させる第２コントローラとを有し、前記マスタ制御装置とネットワークを介して接続されたスレーブ制御装置により前記第１制御対象物と異なる前記第２制御対象物を制御する制御方法であって、
第１時計部から出力される時刻情報に基づいて前記マスタ制御装置による前記第１制御対象物の制御を行う工程と、
前記マスタ制御装置から制御情報を送信する工程と、
前記マスタ制御装置から送信される制御情報および第２時計部から出力される時刻情報に基づいて前記第２制御対象物の制御を行う工程と、
前記マスタ制御装置から送信された前記制御情報が前記スレーブ制御装置を通過する時刻をサンプリングした結果に基づき、前記第１コントローラの前記第１時計部の時刻情報と前記第２コントローラの前記第２時計部の時刻情報とを時刻同期させる工程と
を備えることを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、マスタ制御装置により第１制御対象物を制御するとともに、当該マスタ制御装置とネットワークを介して接続されるスレーブ制御装置により第１制御対象物と異なる第２制御対象物を制御する制御システムおよび制御方法、ならびに当該制御技術に適した拡張ボードに関するものである。
【背景技術】
【０００２】
ＰＬＣ（=Programmable Logic Controller）やＩＰＣ（=Industrial PC ）などのマスタがネットワークを介して単一または複数の制御対象（スレーブ）を制御する制御システムが従来より数多く提供されている。例えば特許文献１に記載の制御システムでは、リアルタイムＥｔｈｅｒｎｅｔであるＥｔｈｅｒＣＡＴ（登録商標）を用いて、単一のマスタと複数のスレーブ（サーボアンプとサーボモータとを有するロボット）とを接続してリングトポロジを構築している。マスタおよびスレーブは２つの通信ポートを有し、これらを接続していくことでリングトポロジが構成され、マスタで作成された制御パケットが上記通信ポートを介して順番に全てのスレーブを通過し、さらに折り返して上記と逆の順番で再びマスタに返る。これを１サイクルとして繰り返して行われ、各スレーブは制御パケットに含まれる動作指令を読み出してロボットを制御する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第５３９４２８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
近年、ロボットをコントロールするコントローラを複数台ネットワークにより相互に接続してリングトポロジを構築するとともに、それら複数のコントローラの１台をマスタとして機能させることで、ＰＬＣやＩＰＣを用いることなく各ロボットを制御する制御システムが検討されている。ＥｔｈｅｒＣＡＴを用いる場合、スレーブとなるコンローラ同士についてはＥｔｈｅｒＣＡＴのディストリビュートクロック（=Distributed clock）を使用することで同期させることができるが、現状では、マスタとして機能するコントローラとスレーブとなるコントローラとを同期させるための構成は用意されていない。その結果、ロボットなどの第１制御対象物の動作を制御するコントローラをマスタとして機能させるとともに当該マスタを１台あるいは複数台のスレーブと接続してネットワーク・トポロジを構成した制御システムでは、第１制御対象物と、スレーブに接続されるロボットなどの第２制御対象物とを同期して動作させることは困難であった。
【０００５】
この発明は、上記課題に鑑みなされたものであり、マスタ制御装置により第１制御対象物を制御するとともに、当該マスタ制御装置とネットワークを介して接続されるスレーブ制御装置により第１制御対象物と異なる第２制御対象物を制御する制御システムにおいて第１制御対象物と第２制御対象物とを容易に同期させることができる制御技術、ならびに当該制御技術に適した拡張ボードを提供することを目的とする。
【課題を解決するための手段】
【０００６】
この発明の第１態様は、制御システムであって、第１時計部から出力される時刻情報に基づいて第１制御対象物を制御するマスタ制御装置と、マスタ制御装置とネットワークを介して接続され、マスタ制御装置から送信される制御情報および第２時計部から出力される時刻情報に基づいて第１制御対象物と異なる第２制御対象物を制御するスレーブ制御装置とを備え、第１時計部の時刻情報と第２時計部の時刻情報との時刻同期を行うことを特徴としている。
【０００７】
また、この発明の第２態様は、マスタ制御装置により第１制御対象物を制御するとともに、マスタ制御装置とネットワークを介して接続されるスレーブ制御装置により第１制御対象物と異なる第２制御対象物を制御する制御方法であって、第１時計部から出力される時刻情報に基づいてマスタ制御装置による第１制御対象物の制御を行う工程と、マスタ制御装置から制御情報を送信する工程と、マスタ制御装置から送信される制御情報および第２時計部から出力される時刻情報に基づいて第２制御対象物の制御を行う工程と、第１時計部の時刻情報と第２時計部の時刻情報とを時刻同期させる工程とを備えることを特徴としている。
【０００８】
さらに、この発明の第３態様は、第１制御対象物を制御するマスタ制御装置に装着自在な拡張ボードであって、第１制御対象物を制御するための時刻情報を出力する第１時計部と、マスタ制御装置とネットワークを介して接続されるスレーブ制御装置により第１制御対象物と異なる第２制御対象物を制御するための制御情報をスレーブ制御装置に送信する通信部と、スレーブ制御装置に設けられて第２制御対象物を制御するための時刻情報を出力する、第２時計部の時刻情報と、第１時計部の時刻情報とを時刻同期させる時刻同期部とを備えることを特徴としている。
【発明の効果】
【０００９】
このように構成された発明では、マスタ制御装置は第１時計部を有しており第１時計部から出力される時刻情報に基づいて第１制御対象物を制御するとともに、スレーブ制御装置はマスタ制御装置から送信される制御情報および第２時計部から出力される時刻情報に基づいて第２制御対象物を制御する。そして、第１時計部の時刻情報と第２時計部の時刻情報とは時刻同期される。したがって、第１制御対象物と第２制御対象物とを容易に、しかも正確に同期して動作させることができる。
【図面の簡単な説明】
【００１０】
【図１】本発明にかかる制御システムの第１実施形態を示す図である。
【図２】図１に示す制御システムを構成するマスタ制御装置および第１スレーブ制御装置の構成を示すブロック図である。
【図３】図１に示す制御システムの制御方法を模式的に示す図である。
【図４】本発明にかかる制御システムの第２実施形態を構成するマスタ制御装置および第１スレーブ制御装置の構成を示すブロック図である。
【図５】図４に示す制御システムの制御方法を模式的に示す図である。
【図６】本発明にかかる制御システムの第３実施形態を構成するマスタ制御装置および第１スレーブ制御装置の構成を示すブロック図である。
【発明を実施するための形態】
【００１１】
図１は本発明にかかる制御システムの第１実施形態を示す図であり、図２は図１に示す制御システムを構成するマスタ制御装置および第１スレーブ制御装置の構成を示すブロック図である。この制御システム１は、図１に示すように、４台のロボットＲＢ１〜ＲＢ４を同期して動作させて所望の処理を行う。これらのロボットＲＢ１〜ＲＢ４はそれぞれマスタ制御装置２、第１スレーブ制御装置３、第２スレーブ制御装置４および第３スレーブ制御装置５に接続されている。また、マスタ制御装置２と第１スレーブ制御装置３とがＥｔｈｅｒｎｅｔポートを介してネットワークケーブル６で接続され、第１スレーブ制御装置３と第２スレーブ制御装置４とがＥｔｈｅｒｎｅｔポートを介してネットワークケーブル６で接続され、さらに第２スレーブ制御装置４と第３スレーブ制御装置５とがＥｔｈｅｒｎｅｔポートを介してネットワークケーブル６で接続されている。こうして、４台の制御装置２〜５がライン接続されてライントポロジが形成されている。なお、ネットワーク・トポロジの態様はこれに限定されるものではなく、スタートポロジやツリートポロジ等の他のトポロジでネットワークを構成してもよい。
【００１２】
これら４台の制御装置のうちスレーブ制御装置３〜５はいずれも同一構成を有しているため、ここでは第１スレーブ制御装置３の構成について説明し、その他のスレーブ制御装置４、５については同一または相当符号を付して構成説明を省略する。
【００１３】
第１スレーブ制御装置３は、図２に示すように、ロボットコントローラ３１と、モータドライバ３２と、拡張ポート３３とを有している。そして、当該拡張ポート３３にスレーブボード３４が装着されていない、あるいは当該拡張ポート３３にスレーブボード３４が装着されているもののスレーブボード３４上のスイッチ部３５の切替設定によりスレーブボード３４による通信が無効となるように設定されている場合、ロボットコントローラ３１は単独でロボットＲＢ２をコントロールする。すなわち、ロボットコントローラ３１の演算処理部３１１が記憶部３１２に予め記憶されているプログラムにしたがってロボットの動作に関連する指令データ、つまり動作指令をモータドライバ３２に与えてロボットＲＢ２を上記プログラムに応じた動作させる。
【００１４】
一方、拡張ポート３３にスレーブボード３４が装着されるとともにスイッチ部３５の切替設定によりスレーブボード３４による通信が有効となるように設定されている場合には、ロボットコントローラ３１によるロボットＲＢ２の独立制御は行われず、同期制御が行われる。つまり、後述するようにマスタ制御装置２から送信されてくるＥｔｈｅｒＣＡＴパケット（以下、単に「パケット」という）に含まれる動作指令がロボットコントローラ３１を介してモータドライバ３２に与えられ、ロボットＲＢ２を他のロボットＲＢ１、ＲＢ３、ＲＢ４と同期して動作させる。なお、本実施形態では、ロボットコントローラ３１は単独制御と同期制御との切替をソフトウェアにより行っている。
【００１５】
また、同期制御を行うために、スレーブボード３４にはスレーブコントローラ３６が搭載されている。このスレーブコントローラ３６は、ＣＰＵ（=Central Processing Unit）により構成される演算処理部３６１と、演算処理部３６１で行われる時刻同期機構や割込発生機能に必要な各種データ等を記憶する記憶部３６２と、２つの通信部３６３、３６４とを備えている。この演算処理部３６１はカウンタ３６５を有しており、当該カウンタ３６５によるカウント値がロボットＲＢ２の動作タイミングを決定するための時刻情報となっており、カウンタ３６５は時計部として機能する。また、演算処理部３６１は、他のスレーブコントローラのカウンタと時刻同期させるための時刻同期機能ブロック３６６、およびロボットＲＢ２を他のロボットＲＢ１、ＲＢ３、ＲＢ４と同期して動作させるための割込信号Ｓｙｎｃを発生させてロボットコントローラ３１に与える割込発生機能ブロック３６７としても機能する。
【００１６】
通信部３６３、３６４はいずれもＥｔｈｅｒｎｅｔポートとして機能するものであり、通信部３６３はマスタ制御装置２内の通信部とネットワークケーブル６で接続されるとともに、通信部３６４は第２スレーブ制御装置４内の通信部とネットワークケーブル６で接続されている。これによって、次に説明するマスタ制御装置２から送信されるパケットを受信し、それを第２スレーブ制御装置４に送信する。また、第３スレーブ制御装置５で折り返されたパケットを第２スレーブ制御装置４を介して受信し、それをマスタ制御装置２に戻す。
【００１７】
マスタ制御装置２は、図２に示すように、ロボットコントローラ２１と、モータドライバ２２と、拡張ポート２３とを有している。そして、第１スレーブ制御装置３と同様に、当該拡張ポート２３にマスタボード２４が装着されていない場合、ロボットコントローラ２１の演算処理部２１１が記憶部２１２に予め記憶されているプログラムにしたがって動作指令をモータドライバ２２に与えてロボットＲＢ１を上記プログラムに応じた動作させる。つまり、このような場合、ロボットコントローラ２１が単独でロボットＲＢ１をコントロールする。なお、第１スレーブ制御装置３と同様にスイッチ部を設け、当該スイッチ部の設定による単独制御を実行可能に構成してもよい。また、マスタ制御装置２における単独制御と同期制御との切替を、上記したようなハードウェア的なアプローチ以外にも、ソフトウェア的なアプローチによって行うように構成してもよい。例えばマスタ制御装置２を制御するための各種パラメータ項目の中に上記単独制御を行うか否かに関連する項目を追加し、上記項目をロボットコントローラ２１がチェックして単独制御および同期制御のうちのいずれ一方を行うように構成してもよい。
【００１８】
一方、拡張ポート２３にマスタボード２４が装着されている場合には、ロボットコントローラ２１によるロボットＲＢ１の独立制御は行われず、同期制御が行われる。つまり、マスタ制御装置２の演算処理部２１１はプログラムを解析してロボットＲＢ１を制御するための動作指令のみならず、その他のロボットＲＢ２〜ＲＢ４を制御するための動作指令を発生させる。そして、マスタボード２４に搭載されたマスタコントローラ２５はロボットＲＢ２〜ＲＢ４を動作させるための動作指令が書き込まれたパケットを作成し、同マスタボード２４上でマスタコントローラ２５と並んで搭載されたスレーブコントローラ２６を介して第１スレーブ制御装置３に送信する。このようにマスタボード２４を拡張ポート２３に装着することでロボットコントローラ２１と協働してＰＬＣやＩＰＣと同様のマスタ機能を果たす。より詳しくは、マスタコントローラ２５およびスレーブコントローラ２６は以下のように構成されている。
【００１９】
マスタコントローラ２５は、ＣＰＵにより構成される演算処理部２５１と、記憶部２５２と、通信部２５３とを有している。これらのうち演算処理部２５１は、ＥｔｈｅｒＣＡＴ通信機能ブロックとして機能し、ロボットコントローラ２１から与えられる動作指令をパケットに書き込んでＥｔｈｅｒＣＡＴ通信によってスレーブ制御装置３〜５に送信し、また戻ってくるパケットを受信する。なお、当該パケットを作成するにあたって、例えば各ロボットＲＢ２〜ＲＢ４を適正に動作させるために必要となる動作指令の種類、データ構成やデータ値に関連する情報等（以下「パケット作成用基本情報」という）が必要となるが、パケット作成用基本情報はロボットＲＢ２〜ＲＢ４のメーカや機種などに応じて準備され、予め記憶部２５２に記憶されている。
【００２０】
こうして演算処理部２５１で作成されたパケットは通信部２５３を介してスレーブコントローラ２６に送信される。このスレーブコントローラ２６はスレーブボード３４に搭載されたスレーブコントローラ３６と同一の構成を有している。つまり、スレーブコントローラ２６は、カウンタ２６５、時刻同期機能ブロック２６６および割込発生機能ブロック２６７を有する演算処理部２６１と、演算処理部２６１で行われる時刻同期機構や割込発生機能に必要な各種データ等を記憶する記憶部２６２と、２つの通信部２６３、２６４とを備えている。演算処理部２６１のカウンタ２６５によるカウント値はロボットＲＢ１の動作タイミングを決定するための時刻情報となる。また、演算処理部２６１の時刻同期機能ブロック２６６は他のスレーブコントローラのカウンタと時刻同期させる。さらに、割込発生機能ブロック２６７はロボットＲＢ１を他のロボットＲＢ２〜ＲＢ４と同期して動作させるための割込信号Ｓｙｎｃを発生させる。
【００２１】
通信部２６３、２６４はいずれもＥｔｈｅｒｎｅｔポートとして機能するものであり、通信部２６３はマスタコントローラ２５の通信部２５３と接続されるとともに、通信部２６４は第１スレーブ制御装置３の通信部３６３とネットワークケーブル６で接続されている。これによって、マスタコントローラ２５で作成されたパケットがスレーブコントローラ２６を介して第１スレーブ制御装置３に送信され、第３スレーブ制御装置５で折り返されたパケットがスレーブコントローラ２６を介してマスタコントローラ２５に戻される。  次に、上記のように構成された制御システム１におけるロボットＲＢ１〜ＲＢ４の制御方法について図３を参照しつつ説明する。
【００２２】
図３は図１に示す制御システムの制御方法を模式的に示す図である。制御システム１では、マスタ制御装置２の拡張ポート２３にマスタボード２４が装着され、第１スレーブ制御装置３の拡張ポート３３に対してスレーブボード３４が装着され、さらに第２スレーブ制御装置４および第３スレーブ制御装置５の各々に対してもスレーブボード３４と同一構成のスレーブボードが拡張ポートに装着されている。そして、以下の説明する手順で制御システム１が装置各部を制御して、ロボットコントローラ２１の記憶部２１２に記憶されたプログラムにしたがってロボットＲＢ１〜ＲＢ４が同期して動作して所望の処理が実行される。
【００２３】
当該プログラムは、制御システム１全体の動作を規定したものであり、予め記憶部２１２に記憶されている。このプログラムをロボットコントローラ２１が記憶部２１２から読み出し、さらに当該プログラムに基づく演算処理を所定タイミング、例えば一定間隔で行うことで各ロボットＲＢ１〜ＲＢ４を動作させるための動作指令を適宜作成する（図３中の演算処理）。
【００２４】
これらの動作指令のうちロボットＲＢ２〜ＲＢ４を駆動するモータドライバに与えるべき動作指令を書き込んだ、パケットをマスタコントローラ２５が作成し（図３中のパケット作成）、送信する（図３中の送信）。当該パケットはマスタ制御装置２、スレーブ制御装置３〜５の順番で各スレーブコントローラを通過していく。また、パケットは第３スレーブ制御装置５で折り返され、スレーブ制御装置５〜３およびマスタ制御装置２の順番で各スレーブコントローラを通過してマスタ制御装置２のマスタコントローラ２５に戻る。このように、ＥｔｈｅｒＣＡＴでは、これを「１サイクル」とし、各スレーブコントローラは、パケットの通過中にパケットの受信、パケットに対する入出力処理およびパケットの送信を行う。例えばスレーブ制御装置３のスレーブコントローラ３６は上記入出力処理により第１スレーブ制御装置３に接続されたロボットＲＢ２を駆動するための動作指令を受け取り、ロボットコントローラ３１に与える。すると、ロボットコントローラ３１は当該動作指令を後述する割込信号Ｓｙｎｃを受け付けるまで保持する。なお、第２スレーブ制御装置４および第３スレーブ制御装置５においても、第１スレーブ制御装置３と同様の処理が実行される。これによって、ロボットコントローラ２１の演算処理によって作成された動作指令が各スレーブ制御装置３〜５に与えられる。
【００２５】
また、本実施形態では、マスタ制御装置２、スレーブ制御装置３〜５の各々にカウンタが設けられており、これらを利用して制御装置２〜５の時刻同期が行われる。すなわち、上記したサイクリックなパケットの伝達が一定間隔で行われ、各スレーブコントローラではパケットの通過の際に時刻情報（カウンタでのカウント値）をサンプリングする。そして、それらの時刻情報に基づいて各スレーブコントローラがカウンタのカウント値を更新して時刻同期処理を行う。
【００２６】
さらに、各スレーブコントローラは時刻同期処理されたカウンタから出力される時刻情報（カウント値）に基づいて割込信号Ｓｙｎｃをロボットコントローラに出力する。例えばマスタ制御装置２では、図３の最上欄に示すように、スレーブコントローラ２６から出力された割込信号Ｓｙｎｃに基づいてロボットコントローラ２１は一時的に保持しているロボットＲＢ１の動作指令をモータドライバ２２に送ってロボットＲＢ１の駆動を開始する。また、第１スレーブ制御装置３では、図３の上から２段目の欄に示すように、ロボットコントローラ３１はパケットにより伝達されてきたロボットＲＢ２の動作指令を一時的に保持しているが、スレーブコントローラ３６からの割込信号Ｓｙｎｃが受けると、上記動作指令をモータドライバ３２に送ってロボットＲＢ２の駆動を開始する。その他のスレーブ制御装置４、５においても、スレーブ制御装置３と同様の同期処理が行われる。こうして、ロボットＲＢ１〜ＲＢ４は互いに同期して動作する。
【００２７】
ここで、スレーブ制御装置３〜５の全てに動作指令が伝達されていない間に、割込信号Ｓｙｎｃが出力されると、全ロボットＲＢ１〜ＲＢ４を同期して動作させることができない。そこで、本実施形態では、演算処理により作成された動作指令を書き込んだパケットが第３スレーブ制御装置５で折り返されるタイミングＴ（図３参照）までの間、割込信号Ｓｙｎｃの出力を禁止している。つまり、動作指令を書き込んだパケットの送信直後から少なくとも１サイクルの半分の時間が経過したタイミングＴよりも後で割込信号Ｓｙｎｃを出力するように構成している。これにより、各制御装置２〜５で割込信号Ｓｙｎｃが発生した時点においては、各ロボットコントローラに対して動作指令が与えられており、ロボットＲＢ１〜ＲＢ４の同期動作を確実に実行することができる。
【００２８】
以上のように、本実施形態によれば、マスタ制御装置２は複数のロボットコントローラのうちの１台にマスタボード２４を装着することでマスタ制御装置２として機能させている。つまり、マスタ制御装置２のロボットコントローラ２１が記憶部２１２中のプログラムを解析して各ロボットＲＢ１〜ＲＢ４の動作指令を作成するとともに、ロボットＲＢ２〜ＲＢ４の動作指令についてはＥｔｈｅｒＣＡＴによりスレーブ制御装置３〜５に与えている。また、各制御装置２〜５では、カウンタのカウント値（時刻情報）と動作指令に基づいてロボットＲＢ１〜ＲＢ４が動作するが、各制御装置２〜５にはスレーブコントローラが設けられてカウント値の同期、つまり時刻同期が行われている。このように本実施形態の技術的特徴の一つは次の点にある。本実施形態では、スレーブ制御装置３〜５間での時刻同期は従来技術と同様にして行われているが、マスタ制御装置２にスレーブコントローラ２６を設けてマスタ制御装置２とスレーブ制御装置３〜５との間で時刻同期を行うという特有の構成を設けている。このため、ロボットＲＢ２〜ＲＢ４間のみならず、これらとロボットＲＢ１とを容易に、しかも正確に同期して動作させることが可能となっている。
【００２９】
また、本実施形態では、上記タイミングＴを過ぎた後、つまり動作指令が全ロボットコントローラに行き渡った状態で各ロボットコントローラに割込信号Ｓｙｎｃを出力している。そのため、ロボットＲＢ１〜ＲＢ４の動作をより高精度に、かつ、より確実に同期させることが可能となっている。
【００３０】
また、本実施形態では、スレーブ制御装置３〜５に接続されるロボットＲＢ２〜ＲＢ４を動作させるためのプログラムを個別に作成し、予め記憶部に記憶させていく必要はなく、マスタ制御装置２のロボットコントローラ２１に制御システム１全体の動作を記述したプログラムをロボットコントローラ２１の記憶部２１２に書き込むことのみで複数台のロボットを動作させることができる。したがって、プログラムの作成、制御システム１の管理および動作をロボットコントローラ２１へのアクセスのみで行うことができ、ユーザ負担を大幅に低減することができるとともに、プログラムのバックアップの容易化を図ることができる。
【００３１】
図４は本発明にかかる制御システムの第２実施形態を構成するマスタ制御装置および第１スレーブ制御装置の構成を示すブロック図である。また、図５は図４に示す制御システムの制御方法を模式的に示す図である。第２実施形態が第１実施形態と大きく相違する点は、マスタ制御装置２ではスレーブコントローラ２６の構成がマスタコントローラ２５に組み込まれており、マスタコントローラ２５の演算処理部２５１は、第１実施形態中のカウンタ２６５、時刻同期機能ブロック２６６および割込発生機能ブロック２６７と同様の構成、つまりカウンタ２５５、時刻同期機能ブロック２５６および割込発生機能ブロック２５７を有している。また、通信部２５３はネットワークケーブル６により第１スレーブ制御装置３の通信部３６３と接続されてＥｔｈｅｒｎｅｔポートとして機能する。なお、その他の構成は第１実施形態と同一である。したがって、以下においては同一構成については、同一符号を付して構成説明を省略する。
【００３２】
このように構成された制御システム１では、以下の説明する手順で制御システム１が装置各部を制御して、ロボットコントローラ２１の記憶部２１２に記憶されたプログラムにしたがってロボットＲＢ１〜ＲＢ４が同期して動作して所望の処理が実行される。
【００３３】
ロボットコントローラ２１は、予め記憶部２１２に記憶されているプログラムを読み出し、当該プログラムにしたがって演算処理を行い、各ロボットＲＢ１〜ＲＢ４を制御するための動作指令を適宜作成する（図５中の演算処理）。
【００３４】
これらの動作指令のうちロボットＲＢ２〜ＲＢ４を駆動するモータドライバに与えるべき動作指令を書き込んだ、パケットをマスタコントローラ２５が作成し（図５中のパケット作成）、送信する（図５中の送信）。当該パケットはスレーブ制御装置３〜５の順番で各スレーブコントローラを通過していく。また、パケットは第３スレーブ制御装置５で折り返され、スレーブ制御装置５〜３の順番でスレーブコントローラを通過してマスタ制御装置２のマスタコントローラ２５に戻る。ＥｔｈｅｒＣＡＴでは、これを「１サイクル」とし、各スレーブコントローラは、パケットの通過中にパケットの受信、パケットに対する入出力処理およびパケットの送信を行う。また、スレーブ制御装置３〜５毎に、第１実施形態と同様に、スレーブコントローラは上記入出力処理により当該スレーブ制御装置に接続されるロボットを駆動するための動作指令を受け取り、ロボットコントローラに与える。なお、各ロボットコントローラは、当該動作指令を後述する割込信号Ｓｙｎｃを受け付けるまで保持する。
【００３５】
また、本実施形態においても、マスタ制御装置２、スレーブ制御装置３〜５の各々にカウンタが設けられており、これらを利用して制御装置２〜５の時刻同期が行われる。すなわち、上記したサイクリックなパケットの伝達が一定間隔で行われ、各スレーブコントローラではパケットの通過の際に時刻情報（カウンタでのカウント値）がサンプリングされる。そして、それらの時刻情報に基づいてスレーブ制御装置３〜５では各スレーブコントローラがカウンタのカウント値を更新して時刻同期処理を行うとともに、マスタ制御装置２では上記スレーブコントローラと同様に時刻同期機能ブロック２６６を有するマスタコントローラ２５がカウンタ２５５のカウント値を更新して時刻同期処理を行う。
【００３６】
さらに、各スレーブ制御装置３〜５では、第１実施形態と同様に、スレーブコントローラが時刻同期処理されたカウンタから出力される時刻情報（カウント値）に基づいて割込信号Ｓｙｎｃをロボットコントローラに出力する。一方、マスタ制御装置２では、上記スレーブコントローラと同様に割込発生機能ブロック２６７を有するマスタコントローラ２５が時刻同期処理されたカウンタから出力される時刻情報（カウント値）に基づいて割込信号Ｓｙｎｃをロボットコントローラ２１に出力する。
【００３７】
こうした割込信号Ｓｙｎｃをトリガーとして、第１実施形態と同様に、各制御装置２〜５では割込信号Ｓｙｎｃに基づいてロボットコントローラがロボットの動作指令をモータドライバに送ってロボットの駆動を開始する。
【００３８】
以上のように、第２実施形態においても、第１実施形態と同様に、マスタ制御装置２とスレーブ制御装置３〜５との間で時刻同期を行っており、全ロボットＲＢ１〜ＲＢ４を容易に、しかも正確に同期して動作させることができる。また、上記タイミングＴを過ぎた後、つまり動作指令が全ロボットコントローラに行き渡った状態で各ロボットコントローラに割込信号Ｓｙｎｃを出力してロボット動作の開始を制御している。このため、ロボットＲＢ１〜ＲＢ４の動作をより高精度に、かつ、より確実に同期させることが可能となっている。さらに、第２実施形態では、マスタコントローラ２５にスレーブコントローラの機能を装備させているため、マスタボード２４の構成を簡素化することができ、マスタボード２４の小型化および低価格化が可能となっている。
【００３９】
このように、上記第１実施形態および第２実施形態では、マスタ制御装置２に接続されるロボットＲＢ１が本発明の「第１制御対象物」の一例に相当するとともにスレーブ制御装置３〜５に接続されるロボットＲＢ２〜ＲＢ４が本発明の「第２制御対象物」の一例に相当している。また、上記第１実施形態および第２実施形態では、パケットが本発明の「制御情報」の一例に相当している。また、上記第１実施形態および第２実施形態では、マスタボード２４が本発明の「拡張ボード」の一例に相当している。
【００４０】
また、第１実施形態では、マスタ制御装置２のスレーブコントローラ２６のカウンタ２６５が本発明の「第１時計部」の一例に相当するとともにスレーブ制御装置３〜５のスレーブコントローラのカウンタが本発明の「第２時計部」の一例に相当している。また、第１実施形態では、スレーブコントローラ２６から出力される割込信号Ｓｙｎｃが本発明の「第１割込信号」の一例に相当するとともにスレーブ制御装置３〜５のスレーブコントローラから出力される割込信号Ｓｙｎｃが本発明の「第２割込信号」の一例に相当している。さらに、第１実施形態では、時刻同期機能ブロック２６６を有する演算処理部２６１が本発明の「時刻同期部」の一例に相当している。
【００４１】
また、第２実施形態では、マスタ制御装置２のマスタコントローラ２５のカウンタ２５５が本発明の「第１時計部」の一例に相当するとともにスレーブ制御装置３〜５のスレーブコントローラのカウンタが本発明の「第２時計部」の一例に相当している。また、第２実施形態では、マスタコントローラ２５から出力される割込信号Ｓｙｎｃが本発明の「第１割込信号」の一例に相当するとともにスレーブ制御装置３〜５のスレーブコントローラから出力される割込信号Ｓｙｎｃが本発明の「第２割込信号」の一例に相当している。さらに、第２実施形態では、時刻同期機能ブロック２５６を有する演算処理部２５１が本発明の「時刻同期部」の一例に相当している。
【００４２】
なお、本発明は上記した実施形態に限定されるものではなく、その趣旨を逸脱しない限りにおいて上述したもの以外に種々の変更を行うことが可能である。例えば、上記第１実施形態および第２実施形態では、マスタボード２４を拡張ポート２３に装着することでマスタ制御装置２を構成しているが、図６に示すように、マスタ制御装置２においてマスタコントローラ２５およびスレーブコントローラ２６の構成をロボットコントローラ２１に組み込んでもよい（第３実施形態）。この第３実施形態では、ロボットコントローラ２１の演算処理部２１１が、ＥｔｈｅｒＣＡＴ通信機能ブロック、カウンタ、時刻同期機能ブロックおよび割込発生機能ブロックと同様の機能を有する。この場合、マスタ制御装置２の構成を簡素化することができ、マスタボード２４の小型化および低価格化が可能となっている。なお、記憶部２１２は、プログラムの以外に、パケット作成用基本情報、時刻同期機構や割込発生機能に必要な各種データ等を記憶する。また、同図中の符号２７は「通信部」であり、ネットワークケーブル６により第１スレーブ制御装置３の通信部３６３と接続されてＥｔｈｅｒｎｅｔポートとして機能する。
【００４３】
また、上記実施形態では、マスタ制御装置２が有するカウンタ（第１時計部）のカウント値（時刻情報）と、スレーブ制御装置３〜５が有するカウンタ（第２時計部）のカウント値（時刻情報）とに基づいて時計部の時刻同期を行っている。すなわち、第１時計部および第２時計部のうちの一の時計部を基準時計部とし、これ以外の時計部を基準時計部に対して時刻同期させている。例えば第１実施形態では、マスタ制御装置２が有するカウンタ（スレーブコントローラ２６のカウンタ２６５）を基準時計部とし、スレーブ制御装置３〜５が有するカウンタのカウント値と基準時計部のカウント値との差をサイクリックに計算し、当該差に基づいてカウント値を更新することで時刻同期を行うことができる。また、第２実施形態や第３実施形態では、スレーブ制御装置３〜５のうち最もマスタ制御装置２に近接する第１スレーブ制御装置３が有するカウンタ３６５を基準時計部とし、その他のカウンタを時刻同期させることができる。
【００４４】
また、上記実施形態では、スレーブ制御装置を３台設けているが、スレーブ制御装置の個数はこれに限定されるものではなく、「１」、「２」あるいは「４」以上であってもよい。
【００４５】
また、上記実施形態では、同一構成のロボットＲＢ１〜ＲＢ４を制御対象物とする制御システム１に対して本発明を適用しているが、本発明の適用対象はこれに限定されるものではなく、制御対象物の組み合わせは任意である。例えばリニアコンベアおよびロボットをそれぞれ第１制御対象物および第２制御対象物とする制御システムに対して本発明を適用することで、リニアコンベアで搬送されるワークにロボットを並走させながらワークへの作業を良好に行うことも可能となる。さらに、第１制御対象物および第２制御対象物の提供メーカが異なる場合であっても、上記制御システム１を用いることで複数の制御対象物を良好に同期させながら連携して動作させることができ、上記制御システム１は優れた汎用性を有している。
【産業上の利用可能性】
【００４６】
この発明は、マスタ制御装置により第１制御対象物を制御するとともに、当該マスタ制御装置とネットワークを介して接続されるスレーブ制御装置により第１制御対象物と異なる第２制御対象物を制御する制御技術全般に適用することができる。
【符号の説明】
【００４７】
１…制御システム
２…マスタ制御装置
３…第１スレーブ制御装置
４…第２スレーブ制御装置
５…第３スレーブ制御装置
６…ネットワークケーブル
２４…マスタボード（拡張ボード）
２５…マスタコントローラ
３４…スレーブボード
２５５…カウンタ（第１時計部）
２６５，３６５…カウンタ（第２時計部）
２５６，２６６，３６６…時刻同期機能ブロック（時刻同期部）
２５３，２６４…通信部
ＲＢ１…ロボット（第１制御対象物）
ＲＢ２、ＲＢ３、ＲＢ４…ロボット（第２制御対象物）
Ｓｙｎｃ…割込信号
Ｔ…タイミング
【図１】
0006465620.tif 000002
【図２】
0006465620.tif 000003
【図３】
0006465620.tif 000004
【図４】
0006465620.tif 000005
【図５】
0006465620.tif 000006
【図６】
0006465620.tif 000007