(57)【特許請求の範囲】
【請求項１】
複数の出力端子を有しており、プログラムに従って各出力端子にロボット制御用の信号を出力するロボット制御信号出力装置であって、
各出力端子への信号の出力タイミングを規定するプログラムの入力を受ける入力手段と、
入力された前記プログラムに基づいて、各出力タイミングの読み込みタイミングを指示する読み込みタイミングデータを作成する読み込みタイミングデータ作成手段と、
読み込みタイミングデータに従って、出力タイミングを読み込むバッファ手段と、
バッファ手段に読み込まれた出力タイミングに従って、各出力端子に信号を出力する信号出力手段、
を有しており、
読み込みタイミングデータ作成手段が、前記プログラムにおいて一定時間以上に亘って出力タイミングが存在しない非出力期間内に読み込みタイミングを設定することを特徴とするロボット制御信号出力装置。
【請求項２】
読み込みタイミングデータ作成手段は、バッファ手段が出力タイミングの読み込みを開始するより前に、前記プログラムに規定された全ての出力タイミングの読み込みタイミングを指示する読み込みタイミングデータを作成することを特徴とする請求項１に記載のロボット制御信号出力装置。
【請求項３】
読み込みタイミングデータ作成手段が、非出力期間の長さとバッファ手段の空き容量とに応じた数の出力タイミングの読み込みタイミングを、その非出力期間内に設定することを特徴とする請求項１または２に記載のロボット制御信号出力装置。
【請求項４】
前記プログラムに規定された出力タイミングが前記一定時間以下の時間間隔で連続して存在し、かつ、その連続する期間前の非出力期間内にその連続して存在する全ての出力タイミングの読み込みタイミングを設定できない場合に、読み込みタイミングデータ作成手段が、その連続する期間内に存在する少なくとも１つの出力タイミングを前または後にシフトさせて非出力期間を生成し、その生成した非出力期間内に読み込みタイミングを設定することを特徴とする請求項３に記載のロボット制御信号出力装置。
【請求項５】
読み込みタイミングデータ作成手段は、ロボット制御信号出力装置により出力される信号の出力タイミングの許容誤差範囲内で出力タイミングをシフトさせることを特徴とする請求項４に記載のロボット制御信号出力装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットやシミュレータ等に制御用の信号を出力するロボット制御信号出力装置に関する。詳細には、プログラムに従って各出力端子に信号を出力するロボット制御信号出力装置に関する。
【背景技術】
【０００２】
プログラムに従って各出力端子にロボット制御用の信号を出力するロボット制御信号出力装置が知られている。出力端子をロボットに接続することで、当該プログラムによってロボットを動作させることができる。また、出力端子をシミュレータ等に接続することで、当該プログラムによるロボットの動作をシミュレーションすることができる。
一般に、ロボット制御信号出力装置は、入力手段と、バッファ手段と、信号出力手段を有している。入力手段は、各出力端子に出力する信号の出力タイミングを規定するプログラムの入力を受ける。バッファ手段は、入力された前記プログラムに規定された各出力タイミングを読み込む。バッファ手段の記憶容量は小さいので、バッファ手段は、プログラムに規定された出力タイミングのうちの直近の一部の出力タイミングを読み込む。信号出力手段は、バッファ手段に読み込まれた出力タイミングに従って、出力端子に信号を出力する。バッファ手段に読み込まれた全ての出力タイミングで信号の出力を行うと、バッファ手段に新たに出力タイミングが読み込まれる。信号出力手段は、再度、バッファ手段に読み込まれた出力タイミングに従って信号を出力する。これによって、各出力端子に、プログラムに従って信号が出力される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−０７８５５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述したロボット制御信号出力装置では、バッファ手段に読み込まれた全ての出力タイミングでの信号の出力が終了したときに、新たな出力タイミングがバッファ手段に読み込まれる。この方式では、信号を頻繁に出力する必要があるタイミングで、バッファ手段への出力タイミングの読み込みが必要となる場合がある。この場合、短時間の間にバッファ手段への出力タイミングの読み込みとバッファ手段からの出力タイミングの読み出しを行わなければならないため、バッファ手段への負荷が過大となる。このため、プログラムで規定された出力タイミングよりも実際に信号が出力されるタイミングが遅れるという問題があった。
なお、特許文献１には、ＣＰＵ等の負荷を分散させる技術が開示されている。この技術を参考にして、ＣＰＵやバッファ手段の数を増やしたり高性能化することで、信号の出力の遅れを防止することも考えられる。しかしながら、この場合には、ロボット制御信号出力装置が大型化したり、高額化するという問題がある。
【０００５】
本発明は上述した実情を鑑みて創作されたものであり、構成部品を増やしたり高性能化することなく、信号の出力タイミングの遅れを防止することができるロボット制御信号出力装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
請求項１のロボット制御信号出力装置では、読み込みタイミングデータ作成手段が、各出力タイミングをバッファ手段へ読み込むタイミング（読み込みタイミング）を指示する読み込みタイミングデータを作成する。このとき、読み込みタイミングデータ作成手段は、プログラムにおいて一定時間以上に亘って出力タイミングが存在しない非出力期間内に読み込みタイミングを設定する。したがって、バッファ手段に出力タイミングを読み込むタイミングが、出力タイミングの連続する期間と重ならない。このように出力タイミングの読み込みタイミングが設定されるので、バッファ手段に過大な負荷がかかることが防止される。したがって、請求項１のロボット制御信号出力装置では、信号の出力タイミングの遅れを防止することができる。
【０００７】
請求項２のロボット制御信号出力装置では、出力タイミングを規定したプログラムが入力されると、バッファ手段への出力タイミングの読み込みを開始する前に、プログラムに規定された全ての出力タイミングの読み込みタイミングが決定される。すなわち、バッファ手段への出力タイミングの読み込みを開始するのに先立って、予め、全ての読み込みタイミングが決定される。このため、信号出力中に読み込みタイミングを決定するための演算が行われることがなく、信号出力中の負荷がより軽減される。
【０００８】
請求項３のロボット制御信号出力装置によれば、非出力期間内に、必要な数の出力タイミングをバッファ手段に読み込むことができる。すなわち、非出力期間が十分に長い場合には、そのときのバッファ手段の空き容量分の数の出力タイミングをバッファ手段に読み込むことができる。また、非出力期間がそれほど長くない場合には、その非出力期間中に読み込み可能な数の出力タイミングをバッファ手段に読み込むことができる。
【０００９】
請求項４のロボット制御信号出力装置では、出力タイミングが前記一定時間以下の時間間隔で連続して存在し、かつ、その連続する期間前の非出力期間内にその連続して存在する全ての出力タイミングの読み込みタイミングを設定できない場合（すなわち、読み込みタイミングを設定する必要があるにもかかわらず非出力期間が存在しない場合）に、読み込みタイミングデータ作成手段が、その連続する期間内に存在する少なくとも１つの出力タイミングを前または後にシフトさせて非出力期間を生成する。そして、生成した非出力期間内に読み込みタイミングを設定する。したがって、出力タイミングが連続する場合でも、適切にバッファ手段に出力タイミングを読み込むことができる。
【００１０】
請求項５のロボット制御信号出力装置では、読み込みタイミングデータ作成手段が、ロボット制御信号出力装置により出力される信号の出力タイミングの許容誤差範囲内で出力タイミングをシフトさせる。このため、出力タイミングをシフトさせたにも係わらず、元のプログラムで規定されたものと実質的に同一のタイミングで信号を出力することができる。
【図面の簡単な説明】
【００１１】
【図１】ロボット制御信号出力装置１０のブロック図。
【図２】ロボット制御信号出力装置１０が実行する処理を示すフローチャート。
【図３】ロボット制御信号出力装置１０に入力されるタイムチャートの一例を示すグラフ。
【図４】ステップＳ６の詳細を示すフローチャート。
【図５】ロボット制御信号出力装置１０に入力されるタイムチャートの一例を示すグラフ。
【図６】図５のタイムチャートの読み込み期間Ｐ１１を変更した読み込み期間Ｐ１１２を示すグラフ。
【図７】ロボット制御信号出力装置１０に入力されるタイムチャートの一例を示すグラフ。
【図８】拡大した読み込み期間Ｐ２０を示すグラフ。
【図９】図５のタイムチャートの読み込み期間Ｐ１１を変更した読み込み期間Ｐ１１３を示すグラフ。
【発明を実施するための形態】
【実施例】
【００１２】
実施例に係るロボット制御信号出力装置について説明する。図１は、ロボット制御信号出力装置１０の概略構成を示すブロック図である。ロボット制御信号出力装置１０は、外部接続インタフェース１２と、記憶装置１４と、制御装置１６と、バッファ１８と、出力インタフェース２０を有している。
【００１３】
外部接続インタフェース１２には、光学メディアドライブ、ＦＬＡＳＨメモリドライブ等のデータ読み取り装置や、ハードディスク等の記憶装置などの外部装置を接続することができる。ロボット制御信号出力装置１０には、外部接続インタフェース１２に接続された外部装置から種々のデータが入力される。
記憶装置１４は、ＲＯＭやＲＡＭ等により構成されており、種々のデータを記憶することができる。記憶装置１４には、信号出力プログラム等が記憶されている。
バッファ１８は、ＲＡＭ等の記憶装置により構成されている。バッファ１８は、信号の出力タイミングを記憶する。
出力インタフェース２０は、複数の端子２２を有している。各端子２２は、ロボットのアクチュエータに接続されている。各端子２２には、ロボットの動作を制御するためのロボット制御信号が出力される。
制御装置１６は、ＣＰＵ等により構成されており、各種の演算を実行する。制御装置１６は、外部接続インタフェース１２、記憶装置１４、バッファ１８、及び、出力インタフェース２０と接続されている。制御装置１６は、これらの装置を制御する。
【００１４】
最初に、ロボット制御信号出力装置１０の動作の概要について説明する。ロボット制御信号出力装置１０は、記憶装置１４に記憶されている信号出力プログラムを実行することで、図２のフローチャートに示す処理を実行する。図２のステップＳ２に示すように、ロボット制御信号出力装置１０には、タイムチャートプログラムが入力される。タイムチャートプログラムは、外部接続インタフェース１２を通じて、外部から入力される。タイムチャートプログラムは、各端子２２に出力する信号の出力タイミングを規定したプログラムである。タイムチャートプログラムの入力を受けると、ロボット制御信号出力装置１０は、タイムチャートプログラムから信号の出力タイミングを示す出力タイミングデータを抽出する（ステップＳ４）。そして、抽出した出力タイミングデータに基づいて再生用データを作成する（ステップＳ６）。再生用データは、出力タイミングデータをバッファ１８に読み込むための読み込みタイミングを規定したデータである。再生用データを作成した後にユーザが信号出力指示の操作を行うと、ロボット制御信号出力装置１０は、再生用データに従って、各端子２２に信号を出力する（ステップＳ８）。すなわち、再生用データに規定された読み込みタイミングに従ってバッファ１８に出力タイミングデータを読み込み、バッファ１８に読み込んだ出力タイミングデータに従って各端子２２に信号を出力する。これらの信号によって、各端子２２に接続されているロボットのアクチュエータを動作させることができる。
【００１５】
次に、ロボット制御信号出力装置１０の詳細な動作について説明する。なお、ロボット制御信号出力装置１０は多数の端子２２のそれぞれに信号を出力するが、説明を分かり易くする為に、以下では２つの端子２２ａ、２２ｂに信号を出力するものとして説明する。図示しない入力装置によりユーザが所定の操作を行うことで、制御装置１６は、図２のフローチャートに示す処理を実行する。
【００１６】
ステップＳ２では、制御装置１６は、タイムチャートプログラムの入力待ちの状態となる。タイムチャートプログラムは、外部接続インタフェース１２を介して、制御装置１６に入力される。
タイムチャートプログラムは、例えば、端子２２ａ、２２ｂに出力する信号を指令するデータである。図３は、タイムチャートプログラムにより規定された信号の指令値を例示するグラフである。図３のパルスＳ２２ａは、端子２２ａに出力する信号の指令値を示しており、パルスＳ２２ｂは、端子２２ｂに出力する信号の指令値を示している。図３に示すように、パルスＳ２２ａ、Ｓ２２ｂは、信号「０」と信号「１」との間で変化する。図３中のタイミングｔ１〜ｔ１２は、端子２２ａまたは２２ｂへの信号の出力タイミングを示している。例えば、タイミングｔ１は、端子２２ａへの信号「１」の出力タイミング（すなわち、パルスＳ２２ａを、信号「０」から信号「１」に切り換えるタイミング）を示しており、タイミングｔ２は、端子２２ａへの信号「０」の出力タイミング（すなわち、パルスＳ２２ａを、信号「１」から信号「０」に切り換えるタイミング）を規定している。
【００１７】
タイムチャートプログラムの入力を受けると、制御装置１６は、図２のステップＳ４において、パルスＳ２２ａ、Ｓ２２ｂから信号の出力タイミングデータを抽出し、時間順にソートする。例えば、図３の例では、出力タイミングデータが、以下のように抽出される。
ｔ１（Ｓ２２ａ＝１），ｔ２（Ｓ２２ａ＝０），ｔ３（Ｓ２２ｂ＝１），ｔ４（Ｓ２２ａ＝１，Ｓ２２ｂ＝０），ｔ５（Ｓ２２ａ＝０，Ｓ２２ｂ＝１），ｔ６（Ｓ２２ｂ＝０），ｔ７（Ｓ２２ａ＝１）・・・・
なお、上記の通り、出力タイミングデータは、出力タイミングと、パルス名（すなわち、信号出力対象の端子２２を特定する名称）と、出力する信号の値（すなわち、「０」か「１」か）を示すデータである（上記出力タイミングデータにおいて、括弧内は、パルス名と出力する信号の値を示している）。以下では、同じ参照番号を用いて、出力タイミングデータと出力タイミングを説明する場合がある。
【００１８】
出力タイミングデータを抽出すると、制御装置１６は、図２のステップＳ６において、再生用データを作成する。再生用データは、各出力タイミングデータをバッファ１８に読み込むための読み込みタイミングを規定したデータである。ステップＳ６の再生用データ作成処理では、制御装置１６は、図４に示すフローチャートを実行する。
【００１９】
図４のステップＳ２０では、制御装置１６は、ステップＳ４で抽出した出力タイミングデータに基づいて、読み込み期間を設定する。読み込み期間は、出力タイミングデータをバッファ１８に読み込むための期間である。後述するように、読み込み期間内には各出力タイミングデータに対する読み込みタイミングが設定される。ステップＳ２０では、未だ読み込みタイミングが設定されていない出力タイミングの中で最も早い出力タイミングの直前の出力タイミングが存在しない期間に読み込み期間が設定される。すなわち、読み込みタイミングが設定されていない出力タイミングの中で最も早い出力タイミングと、その直前の出力タイミングとの間の期間が、読み込み期間として設定される。
ステップＳ２２では、制御装置１６は、ステップＳ２０で設定した読み込み期間が、１つの出力タイミングデータをバッファ１８に読み込むために必要な時間（以下では、最小時間という）より長いか否かを判定する。読み込み期間が最小時間以下である場合には、制御装置１６は、ステップ２４〜Ｓ３０で読み込み期間を調整した後に、ステップＳ３４を実行する。読み込み期間が最小時間より長い場合には、制御装置１６は、ステップＳ２４〜Ｓ３０をスキップして、ステップＳ３４を実行する。
ステップＳ３４では、制御装置１６は、読み込み期間内に、その読み込み期間の直後の出力タイミングを有する出力タイミングデータの読み込みタイミングを設定する。ステップＳ３４では、制御装置１６は、バッファ１８の空き容量と、読み込み期間の長さに基づいて、読み込み期間内に読み込みタイミングを設定する出力タイミングデータの数を決定する。すなわち、制御装置１６は、読み込み期間が十分に長ければ、バッファ１８の空き容量分の数の出力タイミングデータの読み込みタイミングをその読み込み期間内に設定し、バッファ１８の空き容量があっても読み込み期間がそれほど長くなければ、その読み込み期間の長さに応じた数の出力タイミングデータの読み込みタイミングをその読み込み期間内に設定する。
ステップＳ３４が終了したら、制御装置１６は、ステップＳ３６で全ての出力タイミングデータについて読み込みタイミングを設定したか否かを判定する。全ての出力タイミングデータについて読み込みタイミングを設定していない場合には、再度、ステップＳ２０からの処理を実行する。制御装置１６は、ステップＳ２０〜Ｓ３６の処理を繰り返し実行し、早い時間帯から順番に、全ての出力タイミングデータの読み込みタイミングを設定する。これにより、再生用データを完成させる。
【００２０】
ステップＳ２０〜Ｓ３６の処理の具体例について説明する。図３に示すタイムチャートプログラムが入力された場合において、最初のステップＳ２０では、制御装置１６は、最初の出力タイミングｔ１の直前の期間を読み込み期間Ｐ１として設定する。最初の出力タイミングｔ１より前には出力タイミングが存在しないので、十分に長い読み込み期間Ｐ１を設定することができる。したがって、制御装置１６は、ステップＳ２２でＹＥＳと判定し、ステップＳ３４を実行する。
ステップＳ３４では、制御装置１６は、読み込み期間Ｐ１内に、読み込み期間Ｐ１の直後の出力タイミングデータの読み込みタイミングを設定する。このとき、読み込み期間Ｐ１が十分に長いので、制御装置１６は、バッファ１８の空き容量分の数の出力タイミングデータの読み込みタイミングを読み込み期間Ｐ１内に設定する。本実施例では、バッファ１８が読み込み可能な最大の出力タイミングデータ数は５つである。また、読み込み期間Ｐ１は最初の読み込み期間であるので、読み込み期間Ｐ１の開始時にバッファ１８は空である。したがって、このときのバッファ１８は、出力タイミングデータ５つ分の空き容量を有している。このため、制御装置１６は、読み込み期間Ｐ１内に、読み込み期間Ｐ１直後の５つの出力タイミングデータｔ１〜ｔ５の読み込みタイミングを設定する（図３においては、読み込み期間内に読み込みタイミングが設定された出力タイミングデータを「ＲＥＡＤ＝」の文字列により示している）。その後、制御装置１６は、ステップＳ３６でＮＯと判定し、ステップＳ２０を再度実行する。
【００２１】
２回目のステップＳ２０では、制御装置１６は、未だ読み込みタイミングが設定されていない出力タイミングの中で最も早い出力タイミングｔ６の直前の期間（すなわち、出力タイミングｔ５と出力タイミングｔ６の間の期間）を読み込み期間Ｐ２として設定する。読み込み期間Ｐ２は、最小時間より長いので、制御装置１６は、ステップＳ２２でＹＥＳと判定し、ステップＳ３４を実行する。
ステップＳ３４では、制御装置１６は、読み込み期間Ｐ２内に、読み込み期間Ｐ２の直後の出力タイミングデータの読み込みタイミングを設定する。ここでは、読み込み期間Ｐ２の長さが４つの出力タイミングデータを読み込み可能な長さであるので、制御装置１６は、読み込み期間Ｐ２内に、４つの出力タイミングデータｔ６〜ｔ９の読み込みタイミングを設定する。
【００２２】
上述したようにして、制御装置１６は、ステップＳ２０〜Ｓ３６を繰り返し実行する。これにより、図３の読み込み期間Ｐ３等のように読み込み期間が順次設定され、各読み込み期間内に出力タイミングデータの読み込みタイミングが設定されていく。
【００２３】
また、図５は、読み込み期間Ｐ１０内に出力タイミングデータｔ４１〜ｔ４５の読み込みタイミングが設定された後に、ステップＳ２０で設定される読み込み期間Ｐ１１（出力タイミングｔ４５と出力タイミングｔ４６の間の期間）を示している。この場合、読み込み期間Ｐ１１は極めて短く、最小時間より短い。したがって、制御装置１６は、ステップＳ２２でＮＯと判定し、ステップＳ２４を実行する。
ステップＳ２４では、制御装置１６は、前々回のステップＳ２０で設定した読み込み期間（以下では、前の読み込み期間という）内に読み込みタイミングが設定されている出力タイミングデータの数を減少させて、直前のステップＳ２０で設定した読み込み期間（以下では、対象の読み込み期間という）を変更する。図５の例では、前の読み込み期間Ｐ１０内に５つの出力タイミングデータｔ４１〜ｔ４５の読み込みタイミングが設定されている。したがって、制御装置１６は、読み込み期間Ｐ１０内に読み込みタイミングが設定されている出力タイミングデータの数を１つ減少させる。すなわち、読み込み期間Ｐ１０内に読み込みタイミングが設定されている出力タイミングデータから出力タイミングデータｔ４５を除外する。これによって、対象の読み込み期間Ｐ１１を、図６に示すように、読み込み期間Ｐ１１２に変更する。
次に、制御装置１６は、ステップＳ２６で、新たに設定した読み込み期間が、最小時間より長いか否かを判定する。新たに設定した読み込み期間が最小時間より長い場合には、制御装置１６は、ステップＳ３４を実行する。したがって、新たに設定された読み込み期間内に読み込みタイミングが設定される。図６の例では、読み込み期間Ｐ１１２が最小時間より長いので、制御装置１６は、ステップＳ３４で読み込み期間Ｐ１１２内に出力タイミングデータｔ４５〜ｔ４７の読み込みタイミングを設定する。
また、制御装置１６は、新たに設定した読み込み期間が最短時間以下である場合には、ステップＳ２８で、前の読み込み期間で読み込む出力タイミングデータ数が１つであるか否かを判定する。前の読み込み期間で読み込む出力タイミングデータ数が２つ以上である場合には、再度ステップＳ２４を実行して、前の読み込み期間で読み込む出力タイミングデータ数をさらに１つ減少させる。これにより、対象の読み込み期間をさらに変更する。対象の読み込み期間が最短時間より長くなるか、前の読み込み期間で読み込む出力タイミングデータ数が１つになるまで、ステップＳ２４〜Ｓ２８の処理が繰り返される。
【００２４】
ステップＳ２４で前の読み込み期間内に読み込む出力タイミングデータ数を１つにまで減少させても対象の読み込み期間が最小時間より長くならない場合には、ステップＳ２８でＹＥＳと判定される。この場合、ステップＳ３０が行われる。
ステップＳ３０では、制御装置１６は、最初に、前の読み込み期間内に読み込みタイミングが設定されている出力タイミングデータの数を元に戻す。すなわち、対象の読み込み期間を元の読み込み期間（すなわち、ステップＳ２０で設定した読み込み期間）に戻す。
次に、制御装置１６は、対象の読み込み期間を拡大させる。例えば、図７に示すように、前の読み込み期間Ｐ１９内に出力タイミングデータｔ８１〜ｔ８５の読み込みタイミングが設定されており、対象の読み込み期間Ｐ２０（出力タイミングｔ８５と出力タイミングｔ８６の間の期間）が最小時間以下である場合には、読み込み期間Ｐ２０を前後に拡大して、読み込み期間Ｐ２０を最小時間より長くする。読み込み期間Ｐ２０を拡大すると、読み込み期間Ｐ２０と出力タイミングｔ８５、ｔ８６が重なる。次に、制御装置１６は、拡大させた読み込み期間と重なる出力タイミングを、読み込み期間の前または後にシフトさせる。拡大前の読み込み期間の前に存在していた出力期間は、拡大後の読み込み期間の前側にシフトされ、拡大前の読み込み期間の後に存在していた出力期間は、拡大後の読み込み期間の後側にシフトされる。例えば、図７の例では、読み込み期間Ｐ２０の拡大後に、図８に示すように、出力タイミングｔ８５が前側にシフトされ、出力タイミングｔ８６が後側にシフトされる。これにより、読み込み期間Ｐ２０と出力タイミングｔ８５、ｔ８６との重なりが解消する。なお、出力タイミングは、ロボット制御信号出力装置１０に要求される精度（信号の出力タイミングの精度）の範囲内でシフトさせる。すなわち、ユーザにより求められる信号の出力タイミングの精度には、一定の許容誤差が存在する。制御装置１６は、その許容誤差範囲内で出力タイミングをシフトさせる。したがって、シフトさせた後の信号は、シフトさせる前の信号と実質的に同等な信号である。その後、ステップＳ３４が実行されて、拡大させた読み込み期間内に読み込みタイミングが設定される。
【００２５】
以上のように、ステップＳ２０〜Ｓ３６が繰り返し実行されることで、各出力タイミングデータをバッファに読み込むための読み込みタイミングを規定した再生用データが生成される。
【００２６】
再生用データを生成すると、制御装置１６は、ユーザの入力待ち状態となる。図示しない入力装置によって、ユーザから信号出力開始の指示が入力されると、制御装置１６は図２のステップＳ８を実行する。ステップＳ８では、制御装置１６は、ステップＳ６で作成した再生用データに従って、端子２２ａ、２２ｂに信号を出力する。より詳細には、再生用データで規定されている読み込みタイミングになった時に、対応する出力タイミングデータがバッファ１８に読み込まれる。その後、バッファ１８に読み込まれた出力タイミングデータが示す出力タイミングになった時に、制御装置１６は、対応する信号を対応する端子２２ａ又は２２ｂに出力する。信号が出力されると、その出力された信号に対応する出力タイミングデータがバッファ１８から消去される。再生用データに従ったバッファ１８への出力タイミングデータの読み込みと、バッファ１８に読み込まれた出力タイミングデータに従った信号の出力とが、繰り返し実行される。したがって、入力されたタイムチャートプログラムに従って、端子２２ａ、２２ｂに信号が出力される。
【００２７】
以上に説明したように、このロボット制御信号出力装置１０では、ステップＳ８の実行前（すなわち、信号を出力する前）に全ての出力タイミングデータの読み込みタイミングが決定される。このため、信号出力中には出力タイミングデータの読み込みタイミングを演算する必要がなく、信号出力中における負荷が軽減される。また、このロボット制御信号出力装置１０では、バッファ１８への読み込みタイミングが出力タイミングと重ならないように設定される。より詳細には、非出力期間内（１つの出力タイミングデータをバッファ１８に読み込むのに必要な最小時間より長い時間に亘って出力タイミングが存在しない期間）に読み込み期間が設定され、その読み込み期間内に出力タイミングデータの読み込みタイミングが設定される。すなわち、バッファ１８へ出力タイミングデータを読み込むタイミングが、端子２２へ信号を出力するタイミングと重ならない。したがって、出力タイミングに遅れることなく信号を出力することができる。
【００２８】
なお、上述した実施例では、端子２２をロボットのアクチュエータに接続したが、端子２２をロボットの動作をシミュレートするシミュレータに接続してもよい。このような構成によっても、ロボット制御用信号出力装置によってロボットの動作確認を行うことができる。
【００２９】
また、実施例のステップＳ２４では、前の読み込み期間内に読み込む出力タイミングデータ数を減少させて、対象の読込み期間を変更した。しかしながら、前の読み込み期間内に読み込む出力タイミングデータ数を減少させずに、対象の読込み期間を変更してもよい。例えば、図５の場合においては、図９に示すように、前の読み込み期間Ｐ１０内に読み込む出力タイミングデータｔ４１〜ｔ４５を変更せずに、対象の読み込み期間Ｐ１０を読み込み期間Ｐ１１３に変更してもよい。この場合、読み込み期間Ｐ１１３の最初の段階でバッファ１８内に出力タイミングデータｔ４５が残っている。読み込み期間Ｐ１１３では３つの出力タイミングデータ４６〜ｔ４８を読み込むことができるので、読み込み期間Ｐ１１３が完了したときにバッファ１８内に４つの出力タイミングデータｔ４５〜ｔ４８が読み込まれていることになる。このため、図６の場合よりも早く出力タイミングデータをバッファ１８に読み込むことができる。
【００３０】
また、上述した実施例では、読み込み期間を設定し、その読み込み期間内に読み込みタイミングを設定する処理を、最初から順に行った。しかしながら、最初に非出力期間を全て抽出し、抽出した非出力期間内に最初から順に読み込みタイミングを設定してもよい。このように、出力タイミングが存在しない非出力期間内に読み込みタイミングを設定することができれば、何れの方法で読み込みタイミングを設定してもよい。
【００３１】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例をさまざまに変形、変更したものが含まれる。
本明細書または図面に説明した技術要素は、単独であるいは各種の組み合わせによって技術的有用性を発揮するものであり、出願時請求項記載の組み合わせに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【符号の説明】
【００３２】
１０：ロボット制御信号出力装置
１２：外部接続インタフェース
１４：記憶装置
１６：制御装置
１８：バッファ
２０：出力インタフェース
２２：端子
【図１】
0005446992.tif 000002
【図２】
0005446992.tif 000003
【図３】
0005446992.tif 000004
【図４】
0005446992.tif 000005
【図５】
0005446992.tif 000006
【図６】
0005446992.tif 000007
【図７】
0005446992.tif 000008
【図８】
0005446992.tif 000009
【図９】
0005446992.tif 000010