(57)【特許請求の範囲】
【請求項１】
複数ｎ段階の一連の動作を、メインプログラムと、該メインプログラムから分岐して前記ｎ段階の動作にそれぞれ対応したｎ個の動作プログラムを有するサブプログラムに基づいてロボットに実行させるロボットの実行処理システムにおいて、
前記ｎ段階のうちの最初からｉ番目の動作プログラムから始まってｎ番目の動作プログラムまでを連続的に実行するｎ個のサブプログラムと（ｉ＝１，２…，ｎ）、
前記メインプログラムから、前記ｎ個のサブプログラムのうちの１番目のサブプログラム（ｉ＝１）に分岐する分岐手段と、
前記サブプログラムで実行中の動作プログラムが何であるかを常時記録すると共に、ロボットの実行処理システムが一時的に停止した後再開するときに、前記分岐手段に対して、前記記録に基づいて、実行処理システムの一時停止で中断した動作プログラムから始まるサブプログラムを分岐先として変更指示する分岐指示手段とを具備したことを特徴とするロボットの実行処理システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、動作プログラムに基づいてロボットに所定の動作を実行させるロボットの実行処理システムに関するものである。
【０００２】
【従来の技術】
例えば、ロボットの実行処理システムは、ロボットが行なうｎ段階の一連の動作を各段階の動作毎にブロック化し、各ブロック毎のロボットの動作に対応した動作プログラムを有するサブプログラムを備え、メインプログラムにより所定の順番でサブプログラムを呼び出して実行するものがある。
【０００３】
以下、図２及び図３に基づいて、４気筒エンジンのバルブ装置の組付けを行なうロボットの実行処理システムについて説明する。
【０００４】
図２に示すように、この４気筒エンジンは、エンジンヘッド６の４つの各気筒に吸・排気孔  （Ｉｎ１〜Ｅｘ４）が１つずつあるもので、８つのバルブ装置８が組付けられる。（ここで、Ｉｎは吸気孔を示し、Ｅｘは排気孔を示し、Ｉｎ，Ｅｘに添えた数字はそれぞれ、気筒に設定された所定の順番を示す。以下、本明細書において同じ。）
ロボット２は、バルブ装置８を、各吸・排気孔に所定の順番で組付けるものである。例えば、気筒に設定された所定の順番で４つの吸気孔（Ｉｎ１〜Ｉｎ４）にそれぞれバルブ装置８を組付けた後、同じく気筒に設定された所定の順番で４つの排気孔（Ｅｘ１〜Ｅｘ４）にそれぞれバルブ装置８を組付けるものである。
【０００５】
コンピュータ４は、ロボット２に所定の動作を実行させる実行処理システムを備える。実行処理システムは、ロボット２の一連の動作を各吸・排気孔（Ｉｎ１〜Ｅｘ４）毎に、８つにブロック化した各動作プログラムに基づいて、ロボット２に各所定の動作を実行させる。以下、各吸・排気孔（Ｉｎ１〜Ｅｘ４）へバルブ装置８を組付けるロボットの一連の動作を、各吸・排気孔の動作毎にブロック化した各動作プログラムは、各吸・排気孔（Ｉｎ１〜Ｅｘ４）の記号に対応させて、それぞれＩｎ１，Ｉｎ２，Ｉｎ３，Ｉｎ４，Ｅｘ１，Ｅｘ２，Ｅｘ３，Ｅｘ４と表わす。
【０００６】
実行処理システムは、図３（Ｂ）に示す、ブロック化した８つサブプログラム（Ｓｕｂ１〜Ｓｕｂ８）と、図３（Ａ）に示す、サブプログラムを所定の順番で実行させるメインプログラムとを備える。
【０００７】
図３（Ｂ）に示すように、８つのサブプログラム（Ｓｕｂ１〜Ｓｕｂ８）は、動作プログラム（Ｉｎ１，Ｉｎ２，Ｉｎ３，Ｉｎ４，Ｅｘ１，Ｅｘ２，Ｅｘ３，Ｅｘ４）を、順番に各一つずつ備え、各動作プログラムの実行が完了した直後に、変数ｘの値をその次に実行する動作プログラムに対応する値に書き換えるプログラムを付加したものである。変数ｘは、サブプログラムとメインプログラムとの間で引数として処理されるものである。
【０００８】
図３（Ａ）に示すように、メインプログラムは、変数ｘの初期値を「１」に設定し、１番目のサブプログラムを呼び出した後、変数ｘの値に基づいて、対応する動作プログラムを有するサブプログラム（Ｓｕｂ１〜Ｓｕｂ８）を呼び出す分岐処理部１２を備える。
【０００９】
以下、上記ロボットの実行処理システムの処理を説明する。
【００１０】
図３（Ａ）に示すように、まず、メインプログラムは、変数ｘの初期値が「１」であることに基づく分岐処理により、サブプログラム（Ｓｕｂ１）を呼び出して実行する。これにより、ロボット２は、動作プログラム（Ｉｎ１）に基づく所定の動作を実行して、吸気孔（Ｉｎ１）にバルブ装置８を組付ける。その後、サブプログラム（Ｓｕｂ１）内で、動作プログラム（Ｉｎ１）の実行が完了した直後で、変数ｘの値が「２」に書換えられる。次に、メインプログラムは、変数ｘの値が「２」であることに基づく分岐処理により、サブプログラム（Ｓｕｂ２）を呼び出して実行し、以下同様に、サブプログラム（Ｓｕｂ３〜Ｓｕｂ８）を順番に呼び出して実行する。これにより、ロボット２は、所定の順番で各吸・排気孔（Ｉｎ１〜Ｅｘ４）にバルブ装置８の組付け作業を行なう。
【００１１】
また、この実行処理システムは、上述のようにサブプログラム中の動作プログラムの実行が完了した直後に、変数ｘの値を書換えることで、実行中の動作プログラムが何であるかを記録する。これにより、例えばロボット２がバルブ装置を組付ける作業中に動作不良を起した場合等で、何れかのサブプログラムの実行中に、当該サブプログラム中の動作プログラムで実行処理システムが一次的に停止した場合は、変数ｘの値が書換わらない。このため、その後、ロボットの作業を再開する場合に、メインプログラムは、変数ｘの値に基づく分岐処理により、当該実行が途中で中断した動作プログラムを有するサブプログラムから順番にサブプログラムを呼び出すことで、ロボット２の作業を再開することができる。
【００１２】
また、サブプログラム（Ｓｕｂ８）は、一連の動作プログラムの最後にあたる動作プログラム（Ｅｘ４）の実行が完了した後、変数ｘの値を「１」に書換えるので、一のエンジンヘッドにバルブ装置８の組付け作業が終了した場合に、エンジンヘッドを次のものに取替えると、メインプログラムは、変数ｘの値が「１」であることに基づく分岐処理により、サブプログラム（Ｓｕｂ１）を実行し、以下、サブプログラム内で書換わる変数ｘの値に基づく分岐処理により、サブプログラム（Ｓｕｂ２〜Ｓｕｂ８）を順番に実行する。このように、このロボットの実行処理システムは、メインプログラムが変数ｘの値に基づく分岐処理により、ロボット２がエンジンヘッド６にバルブ装置８を組付ける作業を繰返し行なうように構成している。
【００１３】
【発明が解決しようとする課題】
ところで、上述の実行処理システムは、例えば、図３（Ａ）示すように、一のエンジンヘッドにすべてのバルブ装置を組付ける間に、メインプログラムが各サブプログラムを呼び出すための分岐処理が合計８つある。この場合、メインプログラムがサブプログラムを呼び出す分岐処理を行なっている間は、ロボットの動作が一次的に停止する。このように、あるサブプログラムから次に実行されるサブプログラムへ分岐処理により移行する際に、ロボット２は一旦減速して停止し、その後再び加速するという動作をするため、ロボットの作業サイクルタイムが長くなっている。
【００１４】
そこで、本発明は、複数ｎ段階の一連の動作を、ブロック化した動作プログラムを順番にロボットに実行させるロボットの実行処理システムの作業サイクルタイムを短縮することを目的とする。
【００１５】
【課題を解決するための手段】
本発明に係るロボットの実行処理システムは、複数ｎ段階の一連の動作を、メインプログラムと、該メインプログラムから分岐して前記ｎ段階の動作にそれぞれ対応したｎ個の動作プログラムを有するサブプログラムに基づいてロボットに実行させるロボットの実行処理システムにおいて、前記ｎ段階のうちの最初からｉ番目の動作プログラムから始まってｎ番目の動作プログラムまでを連続的に実行するｎ個のサブプログラムと（ｉ＝１，２…，ｎ）、前記メインプログラムから、前記ｎ個のサブプログラムのうちの１番目のサブプログラム（ｉ＝１）に分岐する分岐手段と、前記サブプログラムで実行中の動作プログラムが何であるかを常時記録すると共に、ロボットの実行処理システムが一時的に停止した後再開するときに、前記分岐手段に対して、前記記録に基づいて、実行処理システムの一時停止で中断した動作プログラムから始まるサブプログラムを分岐先として変更指示する分岐指示手段とを具備したことを特徴とする。
【００１６】
【発明の実施の形態】
以下、本発明の一実施形態に係るロボットの実行処理システムについて図面に基づいて説明する。
【００１７】
図１及び図２に基づいて、本発明に係るロボットの実行処理システムを、４気筒エンジンのバルブ装置の組付けを行なうロボットの実行処理システムに適用した実施形態について説明する。
【００１８】
図２に示すように、この４気筒エンジンは、エンジンヘッド６の４つの気筒に吸・排気孔が１つずつあるもので、８つのバルブ装置が組付けられる。ロボット２がバルブ装置８を組付ける動作は、例えば、気筒に設定された所定の順番で４つの吸気孔（Ｉｎ１〜Ｉｎ４）にそれぞれバルブ装置８を組付けた後、同じく気筒に設定された所定の順番で４つの排気孔（Ｅｘ１〜Ｅｘ４）にそれぞれバルブ装置８を組付けるものである。このロボット２の一連の動作は、各吸・排気孔（Ｉｎ１〜Ｅｘ４）毎に８つにブロック化されており、コンピュータ４はブロック化された各動作プログラムを順番に実行してロボット２の動作を制御する。
【００１９】
各吸・排気孔（Ｉｎ１〜Ｅｘ４）へバルブ装置８を組付けるブロック化された動作プログラムを、各吸・排気孔（Ｉｎ１〜Ｅｘ４）の記号に対応させて、それぞれＩｎ１，Ｉｎ２，Ｉｎ３，Ｉｎ４，Ｅｘ１，Ｅｘ２，Ｅｘ３，Ｅｘ４と表わす。また、図１（Ａ），（Ｂ）中の変数ｘは、サブプログラムとメインプログラムとの間で引数として処理されるもので、サブプログラム中で実行中の動作プログラムが何れであるかを記録するものある。ここで、動作プログラムの「実行中」とは、当該動作プログラムの直前に実行された動作プログラムが完了した直後から、当該動作プログラムの実行が完了するまでの期間をいう。
【００２０】
コンピュータ４は、図１（Ａ）に示す、変数ｘの値に基づいて所定のサブプログラムを実行させるメインプログラムと、図１（Ｂ）に示す、メインプログラムから分岐して実行する８つサブプログラム（Ｓｕｂ１〜Ｓｕｂ８）とを備える。
【００２１】
図１（Ａ）に示すように、メインプログラムは、例えば、分岐手段又は分岐指示手段として、メインプログラム中に初期値を１として設定した変数ｘと、変数ｘの値に基づく分岐処理により、コンピュータ４に備えたサブプログラム（Ｓｕｂ１〜Ｓｕｂ８）の中から所定のサブプログラムを呼び出して実行する分岐処理部１０とを具備する。すなわち、メインプログラムは、例えば変数ｘが「”  ｋ”  」である場合に、対応するｋ番目の動作プログラムから始まるサブプログラム  （Ｓｕｂ”  ｋ”  ）を呼び出して実行する（ｋは、１以上８以下の整数である）。
【００２２】
図１（Ｂ）に示すように、各サブプログラム（Ｓｕｂ１〜Ｓｕｂ８）は、所定の順番で連続的に実行する動作プログラムと、実行中の動作プログラムが何れであるかを常時記録するように変数ｘの値を書き換えるプログラムとを連続的に構成したものである。
【００２３】
図１（Ｂ）に示すように、サブプログラム（Ｓｕｂ１〜Ｓｕｂ８）はそれぞれ以下のように構成する。なお、各サブプログラム内のＩｎ１乃至Ｅｘ４は、それぞれ対応する吸・排気孔のバルブ装置の組付けを行なう動作プログラムを示す。→は、その前後のプログラムが連続していることを示す。また、ｘ＝ｋは、変数ｘの値をｋに書換えるプログラムである。
【００２４】
サブプログラム（Ｓｕｂ１）は、Ｉｎ１→ｘ＝２→Ｉｎ２→ｘ＝３→Ｉｎ３→ｘ＝４→Ｉｎ４→ｘ＝５→Ｅｘ１→ｘ＝６→Ｅｘ２→ｘ＝７→Ｅｘ３→ｘ＝８→Ｅｘ４→ｘ＝１を順番に実行するように構成する。
【００２５】
サブプログラム（Ｓｕｂ２）は、Ｉｎ２→ｘ＝３→Ｉｎ３→ｘ＝４→Ｉｎ４→ｘ＝５→Ｅｘ１→ｘ＝６→Ｅｘ２→ｘ＝７→Ｅｘ３→ｘ＝８→Ｅｘ４→ｘ＝１を順番に実行するように構成する。
【００２６】
サブプログラム（Ｓｕｂ３）は、Ｉｎ３→ｘ＝４→Ｉｎ４→ｘ＝５→Ｅｘ１→ｘ＝６→Ｅｘ２→ｘ＝７→Ｅｘ３→ｘ＝８→Ｅｘ４→ｘ＝１に示すように構成する。
【００２７】
サブプログラム（Ｓｕｂ４）は、Ｉｎ４→ｘ＝５→Ｅｘ１→ｘ＝６→Ｅｘ２→ｘ＝７→Ｅｘ３→ｘ＝８→Ｅｘ４→ｘ＝１を順番に実行するように構成する。
【００２８】
サブプログラム（Ｓｕｂ５）は、Ｅｘ１→ｘ＝６→Ｅｘ２→ｘ＝７→Ｅｘ３→ｘ＝８→Ｅｘ４→ｘ＝１を順番に実行するように構成する。
【００２９】
サブプログラム（Ｓｕｂ６）は、Ｅｘ２→ｘ＝７→Ｅｘ３→ｘ＝８→Ｅｘ４→ｘ＝１を順番に実行するように構成する。
【００３０】
サブプログラム（Ｓｕｂ７）は、Ｅｘ３→ｘ＝８→Ｅｘ４→ｘ＝１を順番に実行するように構成する。
【００３１】
サブプログラム（Ｓｕｂ８）は、Ｅｘ４→ｘ＝１を順番に実行するように構成する。
【００３２】
すなわち、ｋ番目のサブプログラムは、ロボット２の８段階の動作のうち、最初からｋ番目の動作プログラムから始まって８番目の動作プログラムまでを連続的に実行する。また、実行中の動作プログラムが何れであるかを常時記録する変数ｘの値は、サブプログラム内で、各動作プログラムの実行が完了した直後に、次に実行される動作プログラムに対応する値に書換えられる。また、変数ｘは、各サブプログラム内でロボットの一連の動作の最後にあたる８番目の動作プログラム（Ｅｘ４）が完了した場合に、一連の動作の最初にあたる１番目の動作プログラム（Ｉｎ１）に対応する値「１」に書換えられる。
【００３３】
以下、上記ロボットの実行処理システムの処理を説明する。
【００３４】
図１（Ａ）に示すように、まず、メインプログラムは、変数ｘの値が初期値「１」であることに基づく分岐処理により、サブプログラム（Ｓｕｂ１）を呼び出して実行する。サブプログラム（Ｓｕｂ１）は、動作プログラム（Ｉｎ１〜Ｅｘ４）を所定の順番で連続的に実行し、各吸・排気孔（Ｉｎ１〜Ｅｘ４）に各バルブ装置８を組付ける動作を、ロボット２に実行させる。この場合に、サブプログラム（Ｓｕｂ１）内の各動作プログラム（Ｉｎ１〜Ｅｘ４）がすべて実行された場合は、それにより一つのエンジンヘッドに対する各バルブ装置８の組付けが終了する。この場合、１つのエンジンヘッドに付き分岐処理は１回である。
【００３５】
また、サブプログラム（Ｓｕｂ１）の実行中に、例えば、ロボット２が吸気孔（Ｉｎ３）にバルブ装置８を組付ける作業中に動作不良を起し、サブプログラム（Ｓｕｂ１）内の動作プログラム（Ｉｎ３）が実行途中で中断した場合など、ロボットの実行処理システムが一次的に停止した後は、その直前の動作プログラム（Ｉｎ２）の実行が完了した直後で、変数ｘの値が動作プログラム（Ｉｎ３）に対応する「３」に書換えられているので、その後ロボットの作業を再開する場合に、メインプログラムは分岐処理部１０において変数ｘの値が「３」であることに基づく分岐処理により、サブプログラム（Ｓｕｂ３）を呼び出して、動作の中断した動作プログラム（Ｉｎ３）から始まって以下の動作プログラム（Ｉｎ４〜Ｅｘ４）を連続的に実行してロボット２の作業を再開する。
【００３６】
また、この場合、さらにサブプログラム（Ｓｕｂ３）の実行中に、例えばロボット２が吸気孔（Ｅｘ１）にバルブ装置８を組付ける作業中に動作不良を起し、サブプログラム（Ｓｕｂ３）内の動作プログラム（Ｅｘ１）が実行途中で中断した場合は、その直前の動作プログラム（Ｉｎ４）の実行が完了した直後で、変数ｘの値が動作プログラム（Ｅｘ１）に対応した「５」に書換えられているので、その後ロボットの作業を再開する場合に、メインプログラムは変数ｘの値が  「５」であることに基づく分岐処理により、サブプログラム（Ｓｕｂ５）を呼び出して、動作の中断した動作プログラム（Ｅｘ５）から始まって以下の動作プログラムを連続的に実行してロボット２の作業を再開する。
【００３７】
このように、サブプログラムを実行中において、ロボットの実行処理システムが一次的に停止した場合は、その後再開する時に、メインプログラムは、分岐処理部１０において、実行中の動作プログラムが何れであるかを記録する変数ｘの値に基づく分岐処理を行ない、中断した動作プログラムから始まって以下の動作プログラムを連続的に実行するサブプログラムを呼び出してロボットの作業を再開することができる。
【００３８】
このような実行処理システムによれば、ロボット実行処理システムが一次停止しない場合において、一のエンジンヘッドにバルブ装置を組付ける場合のメインプログラムの分岐処理が、最初にサブプログラム（Ｓｕｂ１）を呼び出す１回の分岐処理のみで済み、かつ、サブプログラム  （Ｓｕｂ１）は各動作プログラム（Ｉｎ１〜Ｅｘ４）を連続的に実行するので、各ブロック化された作業間の減速・停止・再加速という動作が無くなって、ロボット２の動作がスムーズになり、ロボット２の作業サイクルタイムを短縮することができる。
【００３９】
また、サブプログラムの実行中に、例えばロボットの作業に動作不良が生じて当該サブプログラム内の何れかの動作プログラムで実行処理システムが一次停止した場合は、変数ｘが中断した動作プログラムが何れであるかを記録しており、メインプログラムはその変数ｘに基づく１回の分岐処理で、中断のあった動作プログラムから始まって以下の動作プログラムを連続的に実行する所定のサブプログラムを呼び出すので、分岐処理の回数を必要最小限に抑えることができ、かつ、そのサブプログラムは、各動作プログラムを連続的に実行するので、各ブロック化された作業間の減速・停止・再加速という動作が無くなって、ロボットの動作がスムーズになり、ロボットの作業サイクルタイムを短縮することができる。
【００４０】
また、各サブプログラムは、一連の動作プログラム（Ｉｎ１〜Ｅｘ４）の最後に当たる動作プログラム（Ｅｘ４）の実行が完了した直後に、変数ｘの値を最初に実行すべき動作プログラム  （Ｉｎ１）に対応する「１」に書換えるので、一のエンジンヘッドにバルブ装置８の組付け作業が終了した場合に、エンジンヘッドを次のものに取替えると、メインプログラムは、変数ｘの値が「１」であることに基づく分岐処理により、サブプログラム（Ｓｕｂ１）を実行する。このように、このロボットの実行処理システムは、メインプログラムが変数ｘの値に基づく分岐処理により、ロボット２がエンジンヘッド６にバルブ装置８を組付ける作業を繰返し行なうように構成している。
【００４１】
以上、本願発明の一実施形態に係るロボットの実行処理システムについて説明したが、本願発明は上記実施形態に限定されるものではなく、例えば、適用されるロボットの作業や、プログラム中の変数等は種々の変更が可能である。
【００４２】
【発明の効果】
本発明に係るロボットの実行処理システムは、ｎ段階のうちの最初からｉ番目の動作プログラムから始まってｎ番目の動作プログラムまでを連続的に実行するｎ個のサブプログラムと（ｉ＝１，２…，ｎ）、メインプログラムから、前記ｎ個のサブプログラムのうちの１番目のサブプログラム（ｉ＝１）に分岐する分岐手段と、サブプログラムで実行中の動作プログラムが何であるかを常時記録すると共に、ロボットの実行処理システムが一時的に停止した後再開するときに、分岐手段に対して、その記録に基づいて、実行処理システムの一時停止で中断した動作プログラムから始まるサブプログラムを分岐先として変更指示する分岐指示手段とを具備するので、以下の効果を有する。
【００４３】
▲１▼実行処理システムが一次停止しない場合において、メインプログラムの分岐処理が最初に１番目のサブプログラムを呼び出す１回の分岐処理のみで済み、かつ、１番目のサブプログラム実行中は各動作プログラムを連続的に実行するので、各ブロック化された作業間の減速・停止・再加速という動作が無くなって、ロボットの動作がスムーズになり、ロボットの作業サイクルタイムを短縮することができる。
【００４４】
▲２▼また、実行処理システムは、実行中の動作プログラムが何れであるかを常時記録し、実行途中で一次停止した実行処理システムを再開する場合に、メインプログラムは、その記録に基づく１回の分岐処理で、中断のあった動作プログラムから始まって以下の動作プログラムを連続的に実行する所定のサブプログラムを呼び出すので、分岐処理の回数を必要最小限に抑えることができ、かつ、そのサブプログラムは、各動作プログラムを連続的に実行するので、各ブロック化された作業間の減速・停止・再加速という動作が無くなって、ロボットの動作がスムーズなものとなり、ロボットの作業サイクルタイムを短縮することができる。
【図面の簡単な説明】
【図１】（Ａ）は、本発明の一実施形態に係るロボットの実行処理システムのメインプログラムの概要を示す図、（Ｂ）は、本発明の一実施形態に係るロボットの実行処理システムのサブプログラムの一覧を示す図。
【図２】４気筒エンジンのエンジンヘッドにバルブ装置を取付けるロボットの概略図。
【図３】（Ａ）は、ロボットの実行処理システムのメインプログラムの概要を示す図、  （Ｂ）は、本発明の一実施形態に係るロボットの実行処理システムのサブプログラムの一覧を示す図。
【符号の説明】
２  ロボット
４  コンピュータ
６  エンジンヘッド
８  バルブ装置
１０  分岐処理部
【図１】
0003568151.tif 000002
【図２】
0003568151.tif 000003
【図３】
0003568151.tif 000004