(57)【要約】  【課題】  専用のケーブルを敷設しなくても、また、伝送遅延の計測やその結果に基づくコントローラ毎のタイミング調整をしなくても、連携動作のためにコントローラ間で処理プログラムの実行を同期させることが可能なモーション制御システムを提供する。【解決手段】  いずれか1台のコントローラにプログラムの実行開始のきっかけとなるイベントが発生すると、同コントローラはそのイベントとその発生時刻からなるトリガを他のコントローラに同報送信し、各コントローラはトリガに含まれるイベント発生時刻に所定の遅延時間を加えた遅延トリガを発生させ、これを起点に一連の処理プログラムを起動する。【選択図】図２
2007213474.tif 000002
【特許請求の範囲】
【請求項１】
複数台のコントローラがネットワークで接続されたモーション制御システムにおいて、
前記コントローラが、
前記モーション制御システム内で時計の時刻合わせを行う時計同期手段と、
前記時計同期手段で時刻合わせが行われた時刻を計時可能な時計モジュールと、
所定の処理プログラムを起動するきっかけとなるイベントの発生を検出し、その発生時刻を前記時計モジュールから取得し、前記イベントと前記イベントの発生時刻からなるトリガを発生させるトリガ検出手段と、
前記トリガを他のコントローラに同報送信するトリガ同報手段と、
同報送信された前記トリガを受信するトリガ受信手段と、
前記トリガに含まれている前記イベントの発生時刻に所定の遅延時間を加えた遅延トリガを発生させるトリガ遅延部と、
を有することを特徴とするモーション制御システム。
【請求項２】
前記イベントが、前記コントローラの外部から入力される外部信号であることを特徴とする請求項１に記載のモーション制御システム。
【請求項３】
前記イベントが、前記コントローラ内部で発生する内部信号であることを特徴とする請求項１に記載のモーション制御システム。
【請求項４】
前記時計同期手段が、ＩＥＥＥ１５８８であることを特徴とする請求項１ないし請求項３記載のモーション制御システム。
【請求項５】
前記時計同期手段が、ＩＥＥＥ１３９４にて同期のとられたＣＹＣＬＥ＿ＴＩＭＥ、ＢＵＳ＿ＴＩＭＥを利用することを特徴とする請求項１ないし請求項３に記載のモーション制御システム。
【請求項６】
前記コントローラが、
前記遅延トリガの発生時刻を起点とした相対時刻と該相対時刻に対応する前記処理プログラムを登録するタイムテーブルと、
前記相対時刻に到達する毎に該相対時刻に対応する前記処理プログラムを起動するタイムテーブル実行部と、
を有することを特徴とする請求項１ないし請求項５に記載のモーション制御システム。
【請求項７】
前記タイムテーブルと前記タイムテーブル実行部が、スクリプト言語、ラダー言語または汎用プログラミング言語で記述された条件判定文で構成されることを特徴とする請求項６に記載のモーション制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、工作機械や多関節ロボットなどに用いられるモーションコントローラをネットワークで接続し、複数台のコントローラが同期して動作するモーション制御システムに関する。
【背景技術】
【０００２】
製造機械、工作機械、産業用ロボット、自動搬送機械などモーションコントローラを搭載した産業用機械はすでに広く利用されているが、近年一層の高度な機械動作や高精度の動作のための多関節化など制御軸数の増加が必要とされるようになってきている。
例えば印刷機械では、制御軸数が少ない間は1台のコントローラで機械全体の制御を行えばよかったが、多色刷り印刷となり、印刷動作も高速化だけでなく高精度化が必要となり、さらに段取り換えなどの容易さの面から、各色・各印刷原版単位の印刷ユニットごとにコントローラが配置されるようになると、こうした印刷ユニット間で高速・高精度に同期をとった印刷動作が行われることが求められるようになってきた。
あるいは産業用多関節ロボットにおいては、従来から通常ロボット1台づつ個別に動作がプログラムされロボット間の連携のためには外部I/O信号の変化による処理シーケンスプログラムを組むことで、複数台のロボットがゆるやかな連携をとって処理を行うことが可能であった。
しかし最近では双腕型のロボットやいわゆるサービスロボットといわれるヒューマノイド型ロボットなど、右腕ユニットと左腕ユニット間、ハンドユニットと腕ユニット間、右足ユニットと左足ユニット間など、各ユニット同士の高度な連携処理が必要となってきている。
従来はこうしたすべてのユニットを1台のコントローラで制御することでユニット間連携動作のプログラムには問題なかったが、より滑らかで細かな動作をさせるためには、各ユニットの軸数も多軸化させユニット毎にコントローラをおいて制御を行う必要があり、こうしたモーションコントローラ同士をネットワークで結んで互いに同期をとりながら連携動作を行わせる必要性が出てきている。
【０００３】
従来コントローラ間での連携のためその処理を同期させる手段として、1台の同期信号発生装置から複数のコントローラ（ＣＮＣ）までそれぞれ独立した伝送ラインを張り、各コントローラの伝送遅延に見合ったタイミングで同期信号を送信するように調整を行うものがある（例えば、特許文献１参照）。
また、各コントローラの管理する時計情報の同期をとるために、マスタユニットが複数のスレーブユニットに対して時計情報を送信する手段を持ち、スレーブユニットがマスタユニットからスレーブユニットへの伝送遅延を加味して時計情報を調整する手段を持つものもある（例えば、特許文献２参照）。
図５において、Ｐ１００はマスタユニットとなるコントローラであり、内蔵されたクロックＰ１をカウンタＰ９でカウントして時計情報を生成し、ドライバＰ１０によりその時計情報を他のコントローラに同報送信する。Ｐ２００はスレーブユニットとなる複数のコントローラの一つを示しており、マスタユニットＰ１００から送信される時計情報をレシーバＰ１１で受信し内部の時計情報を補正し同期させる手段を持つ。さらに各コントローラ（Ｐ１００、Ｐ２００、・・・）はおのおのラダープログラム格納用メモリＰ６を持ち、そのラダープログラムは、条件判定文で時計情報を評価することによって実行を同期させることができる。
このように、従来のコントローラでは、送信側で伝送遅延を考慮したタイミングで同期信号を送信するという手段を持つか、または受信側で伝送遅延を考慮して時計情報を調整してコントローラ間で同期した時計情報を生成する手段を持って、それに基づいてコントローラ間の処理を同期させていた。
【特許文献１】特許第２８９８３８７号公報（第２頁、図１、図２）
【特許文献２】特許第３３８６７７７号公報（第１０、１１頁、図１、図９）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、コントローラ間の同期をとるために、マスタとスレーブの間に同期信号や時計情報を送信するためのケーブルを敷設しなければならない、マスタまたはスレーブが伝送遅延時間を計測して保持し送信または受信のタイミングを調整する手段を持たなければなければならない、同期信号または時計情報の送り手を１台のマスタに限定する必要があるためシステム構成がマスタ／スレーブ型に限定されてシステム構成の自由度が狭くなるという問題があった。
本発明はこのような問題点に鑑みてなされたものであり、コントローラ間ネットワークに接続された各コントローラの何れからも、コントローラ間の同期のための信号を容易に発生することが可能なモーション制御システムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記問題を解決するため、本発明は、次のようにしたのである。
請求項１に記載の発明は、複数台のコントローラがネットワークで接続されたモーション制御システムにおいて、
前記コントローラが、
前記モーション制御システム内で時計の時刻合わせを行う時計同期手段と、
前記時計同期手段で時刻合わせが行われた時刻を計時可能な時計モジュールと、
所定の処理プログラムを起動するきっかけとなるイベントの発生を検出し、その発生時刻を前記時計モジュールから取得し、前記イベントと前記イベントの発生時刻からなるトリガを発生させるトリガ検出手段と、
前記トリガを他のコントローラに同報送信するトリガ同報手段と、
同報送信された前記トリガを受信するトリガ受信手段と、
前記トリガに含まれている前記イベントの発生時刻に所定の遅延時間を加えた遅延トリガを発生させるトリガ遅延部と、
を有することを特徴としたものである。
【０００６】
請求項２に記載の発明は、請求項１記載のモーション制御システムにおいて、
前記イベントが、前記コントローラの外部から入力される外部信号であることを特徴としたものである。
【０００７】
請求項３に記載の発明は、請求項１記載のモーション制御システムにおいて、
前記イベントが、前記コントローラ内部で発生する内部信号であることを特徴としたものである。
【０００８】
請求項４に記載の発明は、請求項１乃至請求項３記載のモーション制御システムにおいて、前記時計同期手段が、ＩＥＥＥ１５８８であることを特徴としたものである。
【０００９】
請求項５に記載の発明は、請求項１乃至請求項３記載のモーション制御システムにおいて、
前記時計同期手段が、ＩＥＥＥ１３９４にて同期のとられたＣＹＣＬＥ＿ＴＩＭＥ、ＢＵＳ＿ＴＩＭＥを利用することを特徴としたものである。
【００１０】
請求項６に記載の発明は、請求項１乃至請求項５記載のモーション制御システムにおいて、
前記コントローラが、
前記遅延トリガの発生時刻を起点とした相対時刻と該相対時刻に対応する前記処理プログラムを登録するタイムテーブルと、
前記相対時刻に到達する毎に該相対時刻に対応する前記処理プログラムを起動するタイムテーブル実行部と、
を有することを特徴としたものである。
【００１１】
請求項７に記載の発明は、請求項６に記載のタイムテーブルとタイムテーブル実行部が、スクリプト言語、ラダー言語または汎用プログラミング言語で記述された条件判定文で構成されることを特徴としたものである。
【発明の効果】
【００１２】
請求項１ないし請求項５に記載の発明によると、コントローラ間に専用のケーブルを敷設することなく、また、各コントローラ間の伝送遅延に応じた補正をすることなく、各コントローラの時刻合わせを行うことができる。そして、いずれかのコントローラで検出されたイベントの発生時刻から所定の遅延時間が経過した時に、各コントローラ間で同期のとれた遅延トリガを発生させることができる。
また請求項６、請求項７に記載の発明によると、各コントローラ間で同期のとれた遅延トリガを起点として一連の処理プログラムに起動をかけることができるので、コントローラ間にわたる連携動作を容易に実現することができる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の方法の具体的実施例について、図に基づいて説明する。
【実施例１】
【００１４】
図１は、本発明の方法を実施する複数台のモーションコントローラからなるモーションシステムの構成を示すシステム構成図である。図において複数台のコントローラ１ｉ（ｉ＝１、２、・・・ｎ、ｎは２以上の整数）はコントローラ間ネットワーク５で接続されている。また各コントローラ１ｉは、それぞれにモーションネットワーク４ｉを経由してサーボ２ｉｊ（ｊ＝１、２、・・・ｍ、ｍは２以上の整数）を制御し、例えばロボットアームなど多軸ユニットの制御を行っている。そしてコントローラ間ネットワーク５を介して、多軸ユニット間の連携動作を、コントローラ毎にあらかじめプログラムしているタイムテーブルによって、行わせることができる。
【００１５】
図２は本発明の方法を実施するコントローラ内部の機能ブロック図である。図において各コントローラ１ｉは、絶対時刻を計時している時計モジュール１３ｉ、コントローラ間で該時計モジュール１３ｉの同期を取るための時計同期手段１２ｉ、システム同期動作の実行開始のためのイベントを検出し、その発生時刻を時計モジュール１３ｉから取得し、このイベントと発生時刻からなるトリガを発生させるトリガ検出手段１１ｉ、該トリガを他のコントローラに同報送信するトリガ同報手段１０ｉ、他のコントローラが検出し同報送信してきたトリガを受信するトリガ受信手段１４ｉ、内部でトリガが発生した際、または、他のコントローラから同報送信されたトリガを受信した際、その発生時刻に所定の遅延を加えて遅延トリガを発生させるトリガ遅延部１５ｉ、システムの同期動作のためコントローラ毎に、実行すべき処理プログラムが相対時刻でスケジューリングされているタイムテーブル１７ｉ、前記遅延トリガが発生した際に、遅延トリガ発生時刻を起点としてタイムテーブル１７ｉに記載された相対時刻に従って処理プログラムを起動するタイムテーブル実行部１６ｉ、タイムテーブル実行部から起動された処理プログラムを実際に実行する処理プログラム実行部１８ｉ、処理プログラムを格納しておく処理プログラム格納部１９ｉから構成される。
【００１６】
図３は２台のコントローラ１１、１ｉのタイムテーブル１７１、１７ｉの例、およびそれに基いて処理プログラムが同期して起動され実行される状態を示すタイミングチャートの例である。
また、図４はコントローラのトリガ遅延部１５ｉにおける遅延トリガ発生の処理フローと、タイムテーブル実行部１６ｉにおけるタイムテーブル１７ｉの解析と実行の処理フローとを示すフローチャートである。
図２を用いて、コントローラ１１、１ｉの動作の概要を説明し、詳細を図３、図４を使って説明する。（時計同期手段は公知技術を使うので具体的な説明は省略する。）
【００１７】
はじめに、コントローラ１１がトリガ検出手段１１１が同期動作のきっかけとなるイベントを検出すると、時計モジュール１３１からコントローラ間で同期のとれた現在時刻（絶対時刻）を取得し、前記イベントとその発生時刻からなるトリガを発生し、それの他のコントローラへの同報送信をトリガ同報手段１０１に依頼する。また、同時に自コントローラ１１内のトリガ遅延部１５１にトリガを通知する。
トリガ同報手段１０１はコントローラ間ネットワーク５を経由して他の全てのコントローラにトリガを同報送信する。
前記トリガを受信したコントローラ１ｉのトリガ受信手段１４ｉは自コントローラ１ｉ内のトリガ遅延部１５ｉに前記トリガを転送する。
前記トリガを受けた各コントローラのトリガ遅延部１５１、１５ｉでは、図４（１）のフローに従って遅延トリガの発生を行い、前記遅延トリガをタイムテーブル実行部１６１、１６ｉに転送する。
遅延トリガを受けた各コントローラのタイムテーブル実行部１６１、１６ｉは図４（２）のフローに従っておのおのあらかじめ作成されているタイムテーブル１７１、１７ｉを実行する。
【００１８】
その実行の一例のタイムチャートを図３（３）に示している。コントローラ１１では０８：１２：５０に実行開始のイベントを検出すると、トリガ遅延部１５１は、そのイベントを検出した時刻に所定の遅延時間（本実施例では５秒）を加算した時刻０８：１２：５５に遅延トリガを発生する。
遅延トリガを受けたタイムテーブル実行部１６１は、タイムテーブル１７１に従って処理プログラムを起動する。まず、図３（１）のタイムテーブルの処理ステップ０に登録されているｐｒｏｃ１１を、遅延トリガ発生時刻０８：１２：５５＋相対処理時刻００：００：００＝０８：１２：５５に起動する。以後同様に、各処理ステップ１、２、３・・・に起動するように登録されている処理ｐｒｏｃ２１、ｐｒｏｃ３１、ｐｒｏｃ４１をそれぞれ遅延トリガ発生時刻０８：１２：５５に相対処理時刻００：００：１０、００：００：１５、００：００：３５を加算した時刻０８：１３：０５、０８：１３：１０、０８：１３：３０に起動する。
なお、処理プログラムの実行そのものは、処理プログラム実行部１８１で行われる。
【００１９】
コントローラ１ｉにおいては、トリガ受信手段１４ｉが、トリガを０８：１２：５０より伝送遅延分遅れて受信し、トリガ遅延部１５ｉに転送する。
トリガ遅延部１５ｉは図４（１）に示す通り、Ｓ１０００にて同報送信されたトリガが有るか判定し、トリガ発生の通知を受けた時点で、Ｓ１００１にて通知を受けたトリガ検出時刻に所定の遅延時間：Ｔｄｅｌａｙ（本実施例では５秒）を加算した遅延トリガ通知時刻：Ｔｂａｓｅを算出し、Ｓ１００２にて時計モジュール１３ｉの示す現在時刻が該Ｔｂａｓｅになったかどうか判定し、Ｔｂａｓｅに達した時、すなわちコントローラ１１の場合と同じ０８：１２：５５に遅延トリガを発生させ、Ｓ１００３にてタイムテーブル実行部１６ｉに遅延トリガを転送する。
【００２０】
タイムテーブル実行部１６ｉでは図４（２）に示す通り、Ｓ１１００にてタイムテーブル１７ｉの実行ポインタＰを０に初期化した後、Ｓ１１０１にて遅延トリガを受信したかを判定しており、遅延トリガを受信していれば、Ｓ１１０２にて時計モジュール１３ｉの示す現在時刻が、実行ポインタＰに対応した処理ステップに登録された相対処理時刻をトリガに含まれているイベントの発生時刻に加算した時刻になったかどうかを判定し、イベントの発生時刻に相対処理時刻を加算した時刻に達すればＳ１１０３にて処理ステップに登録された対応する処理プロセスを起動し、Ｓ１１０４にて実行ポインタＰをインクリメントする。全ての処理プログラムの起動が完了しているかをＳ１１０５で判定し、全ての処理プログラムの起動が完了している場合には再度遅延トリガの発生を待つ。
なお、処理プログラムの実行そのものは、処理プログラム実行部１８iで行われる。
【００２１】
このようにして、図３（２）のタイムテーブル１７ｉに登録されたの処理プログラムｐｒｏｃ１ｉ、ｐｒｏｃ２ｉ、ｐｒｏｃ３ｉ、ｐｒｏｃ４ｉが、図３（３）に示すように、タイムテーブル１７ｉに登録された相対時刻に起動される。
なお、処理プログラムの実行は、処理プログラム実行部１８ｉにて行われる。
このように、各コントローラは、遅延トリガを発生させる時刻を同じにすることができるので、この遅延トリガが発生させた時刻を起点にして、互いに同期して処理プログラムを実行させることができる。
【実施例２】
【００２２】
実施例１で示したトリガを発生させるきっかけとなるイベントは、ユーザ任意のコントローラに取り付けた同期動作開始のボタン押下やＩ／Ｏ接点入力などの外部信号であってもよいが、また任意のコントローラにおける処理や演算の結果に従って変化する内部信号であってもよい。
【実施例３】
【００２３】
実施例１では、処理プログラムの起動をコントローラ間で同期させるしくみとして、起動の相対時刻とそれに対応する処理プログラムを表形式で登録する事例を示した。
これに代わる方法として、モーションコントローラ用プログラミング言語であるスクリプトベースのプログラミング言語やラダー言語、Ｃ言語などの汎用プログラミング言語を用いて、その条件判定文によって起動すべき相対時刻に達したか否かを判定し、起動すべき相対時刻に達した時に、当該処理プログラムを起動することも可能である。
【実施例４】
【００２４】
実施例１では時計モジュール１３ｉのコントローラ間同期を確保するための時計同期手段１２ｉの具体的手段について述べなかったが、ＩＥＥＥ１５８８に規定された技術によってイーサネット(登録商標)で接続された機器間の時計を極めて精密に同期あわせする手法や、ＩＥＥＥ１３９４に規定されたＣＹＣＬＥ＿ＴＩＭＥレジスタ、ＢＵＳ＿ＴＩＭＥレジスタのようにＩｓｏｃｈｒｏｎｏｕｓ通信モードのＣｙｃｌｅ  Ｓｔａｒｔパケットを利用したネットワーク同期の手法を利用することができる。これらの手法は、公知であるので、具体的な説明は省略する。
【産業上の利用可能性】
【００２５】
本発明はモーションコントローラに限らず、同期の取れた時計を持ちネットワークで接続されたインテリジェントな機器同士の連携動作全般に適用できるので、他の制御機器、ネットワーク家電やネットワークロボット同士の同期運転などに適用できる。
【図面の簡単な説明】
【００２６】
【図１】本発明の方法を適用するモーションシステムのシステム構成図
【図２】本発明の方法を適用するコントローラの機能ブロック図
【図３】本発明の実施例となるタイムテーブル例と実行されたタイミングチャート例
【図４】本発明の要部の処理手順を示すフローチャート
【図５】従来の方法を適用したモーションシステムのシステム構成図
【符号の説明】
【００２７】
１ｉ  コントローラ
２ｉｊ  サーボ
３ｉｊ  モータ
４ｉ  モーションネットワーク
５  コントローラ間ネットワーク
１０ｉ  トリガ同報手段
１１ｉ  トリガ検出手段
１２ｉ  時計同期手段
１３ｉ  時計モジュール
１４ｉ  トリガ受信手段
１５ｉ  トリガ遅延部
１６ｉ  タイムテーブル実行部
１７ｉ  タイムテーブル
１８ｉ  処理プログラム実行部
１９ｉ  処理プログラム格納部
（ただし、ｉ＝１、２、・・・ｎ、ｊ＝１、２、・・・ｍ）
【図１】
2007213474.tif 000003
【図２】
2007213474.tif 000004
【図３】
2007213474.tif 000005
【図４】
2007213474.tif 000006
【図５】
2007213474.tif 000007