(57)【特許請求の範囲】
【請求項１】
ロボット本体及びその周辺機器を制御するものであって、複数のプログラムに基づいて、複数のタスクを予め与えられた優先順位に従って実行するマルチタスク機能を備えたロボットコントローラにおいて、
停電等による電源遮断時に、その時点におけるタスク情報、ステータス情報、サーボ情報等の復電用のデータを記憶するバックアップ手段と、
電源回復時に、前記バックアップ手段により記憶されたバックアップデータに基づいて電源遮断時のタスク状態を復元させる復元手段と、
電源回復後の再起動時に、全てのプログラムが起動される間は、待ち状態を発生するダミータスクを優先順位を最も高くして実行するダミータスク実行手段とを具備することを特徴とするロボットコントローラ。
【請求項２】
前記復元手段は、ＯＳによるシステムリソースの決定後、前記バックアップデータに基づいて、主記憶装置のメモリ空間に対するタスク情報の合せ込みを行なうことを特徴とする請求項１記載のロボットコントローラ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のプログラムに基づいて、複数のタスクを優先順位に従って実行するマルチタスク機能を備えたロボットコントローラに関する。
【０００２】
【発明が解決しようとする課題】
近年、部品等の組立や加工を行なうロボットシステムにおいては、マルチタスク機能を備えたロボットコントローラが用いられてきている。このロボットコントローラは、複数のプログラムに基づいて、複数のタスクを優先順位に従って実行することにより、ロボット本体の各軸や、視覚装置やティーチングペンダント等の周辺機器を制御するようになっている。このマルチタスク機能により、各プログラムが機能別に単純化され、プログラミング作業を極めて容易に行なうことができる。
【０００３】
ところで、従来のロボットシステムにあっては、作業実行時に停電等が発生して電源が遮断されたときに、ロボットコントローラにおいて、全タスク（プログラム）の停止処理が行なわれてプログラムが初期化され、ロボット本体の停止処理が行なわれる。そして、電源が回復した後、ロボットシステムを再起動させるにあたっては、オペレータが、加工中のワーク等を取外すと共に、逐次的な逆動作により工程を戻してロボット本体を初期状態（原点位置）に戻す復帰作業を行なった上で、再起動操作を行なう必要があった。
【０００４】
しかしながら、上記従来のロボットコントローラにおいては、マルチタスク機能により複数のプログラム（タスク）を並行して実行させているため、再起動時に、競合するタスクの起動順序の調整ができず、電源遮断時のタスク状態を引継いでシステムを再開させることができない事情があった。そのため、ロボットシステムを再起動させるまでにオペレータによる復帰作業などを必要とし、時間がかかる欠点があった。また、電源遮断時に加工途中であったワークを無駄にしてしまう不具合もあった。
【０００５】
本発明は上記事情に鑑みてなされたもので、その目的は、マルチタスク機能を備えるものにあって、システムの動作時に電源遮断があった場合でも、電源の回復時に容易に停止時のタスク状態を引継いで再開させることができ、ひいてはオペレータによる面倒な復帰作業を不要とすると共に、無駄時間やワークの無駄をなくすことができるロボットコントローラを提供するにある。
【０００６】
【課題を解決するための手段】
上記目的を達成するために、本発明のロボットコントローラは、マルチタスク機能を備えるものにあって、停電等による電源遮断時に、バックアップ手段により、その時点におけるタスク情報、ステータス情報、サーボ情報等の復電用のデータを記憶させ、電源回復時に、復元手段により、バックアップ手段により記憶されたバックアップデータに基づいて電源遮断時のタスク状態を復元させると共に、電源回復後の再起動時に、全てのプログラムが起動される間は、ダミータスク実行手段により、待ち状態を発生するダミータスクを優先順位を最も高くして実行させるようにしたものである（請求項１の発明）。
【０００７】
これによれば、停電等による電源遮断が発生した後、電源回復時には、復元手段により、電源遮断時のタスク状態が復元されるようになる。ここで、その状態から単純に再起動をかけた場合には、競合するタスクの起動順序の調整ができなくなり、電源遮断時のタスク状態がうまく引継がれない虞がある。ところが、再起動時に、ダミータスク実行手段により、ダミータスクが実行されることにより、その間に全てのプログラムを起動させ、優先順位に応じたタスクスケジュールを完了させることができるので、ダミータスクの終了後に、電源遮断時のタスク状態を引継いでシステムを再開させることができる。
【０００８】
また、電源遮断時のタスク状態を復元するにあたり、タスク生成時のシステムリソースの決定（メモリアロケート）がＯＳ管理により行なわれる場合、主記憶装置のメモリ空間（各プログラムやデータのアドレス）が電源遮断前の状態と合致しなくなる虞があるが、バックアップデータに基づいて、主記憶装置のメモリ空間に対するタスク情報の合せ込みを行なうことにより（請求項２の発明）、プログラムカウンタやスタック内容を新たなメモリ空間用に展開することができ、混乱なくタスク状態を復元させることができる。
【０００９】
【発明の実施の形態】
以下、本発明を組立作業を行うロボットシステムに適用した一実施例について、図面を参照しながら説明する。まず、図１は、ロボットシステム１の全体構成を概略的に示しており、ここで、作業テーブル２上には組付治具３が載置され、その作業テーブル２の奥側にロボット本体４が設置されている。この場合、ロボット本体４は、水平多関節型ロボットから構成され、その先端に、第１及び第２のワーク５及び６を把持（チャック）するためのハンド７が設けられている。
【００１０】
前記作業テーブル２の右側には、コンベア装置８が２列に設けられており、夫々大形の第１のワーク５と、小形の第２のワーク６とを、その左端部の取出位置に搬送するようになっている。図示はしないが、このコンベア装置８の取出位置部分には、該取出位置にワーク５，６が供給されていることを検出するためのセンサが夫々設けられている。一方、作業テーブル２の左側には、組立てられた製品が収容されるパレット９が設けられている。また、前記作業テーブル２部分には、組み付け状態の検査を行うためのカメラなどの視覚装置１０が設けられている。
【００１１】
そして、本実施例に係るロボットコントローラ１１は、前記ロボット本体４の各軸のモータ１２（図２参照）及びハンド７を制御すると共に、シーケンサ１３を介して前記コンベア装置８を制御するようになっている。このとき、前記シーケンサ１３には、起動スイッチ等を有する操作盤１４が接続されている。また、前記ロボットコントローラ１１には、前記センサからの信号が入力されると共に、前記視覚装置１０からのデータが入力されるようになっている。さらに、図示はしないが、ロボットコントローラ１１には、ロボット本体４の手動操作用のティーチングペンダントや、プログラム入力用のパソコン等も接続されるようになっている。
【００１２】
図２は、ロボットコントローラ１１のハードウエア的構成を模式的に示している。このロボットコントローラ１１は、電源ボード１５、この電源ボード１５に接続されたマザーボード１６、このマザーボード１６に接続されたＣＰＵカード（メインボード）１７、このＣＰＵカード１７に接続され上記した周辺機器やセンサ等が接続されるＩ／Ｏカード１８を備えると共に、前記ロボット本体４の各軸のモータ１２等を制御するための、サーボカード１９、サーボハーネスボード２０、パワーボード２１等を備えて構成されている。
【００１３】
前記サーボカード１９は、ロボット本体４の各軸制御用のＣＰＵ２２や、外部とのデータの授受を行なうＤＰ（デュアルポート）ＲＡＭ２３等を備え、前記ＣＰＵカード１７から与えられた動作指令信号及び、各軸のモータ１２に付設されたエンコーダ３０からのフィードバック信号、電流フィードバック信号に基づいて、モータ制御信号をサーボハーネスボード２０に出力するようになっている。サーボハーネスボード２０は、ＰＷＭ信号を生成してパワーボード２１に出力し、該パワーボード２１に各軸毎（例えば８軸分）に設けられたインバータ回路２４が駆動されるようになっている。
【００１４】
そして、前記ＣＰＵカード１７は、カードＰＣ２５を備えると共に、外部とのデータの授受を行なうＤＰＲＡＭ２６、後述するバックアップデータを記憶するためのＳＲＡＭからなるバックアップＲＡＭ２７、前記パソコンから入力された後述するプログラム（ユーザプログラム）が記憶されるフラッシュＲＯＭ２８等を備えて構成されている。前記カードＰＣ２５は、ＣＰＵや主記憶装置としてのＤＲＡＭ２９（図８にイメージで示す）等を備えて構成されている。尚、本実施例では、ＯＳとして、組込み型リアルタイムＯＳ（ＶｘＷｏｒｋｓ（登録商標））が採用されている。
【００１５】
本実施例においては、ロボットコントローラ１１は、予め入力（記憶）されたユーザプログラム及び、ティーチングされた部品取出位置や組付け位置等のデータに基づいて、ロボットシステム１に次のような作業を行わせるようになっている。
【００１６】
すなわち、ロボット本体４により、コンベア装置８の取出位置に供給された第１のワーク５を取出して組付治具３上にセットし、次いで、コンベア装置８の取出位置に供給された第２のワーク６を、組付治具３上の第１のワーク５上に組付ける作業を２回繰返す。次に、視覚装置８により、組付け状態を検査（チェック）し、ＯＫの場合には、組付けた製品をロボット本体４によりパレット９に投入する。検査結果がＮＧの場合には、その製品をロボット本体４により不良品位置へ搬出する。そして、次のワーク５，６が取出位置に存在するかをセンサによりチェックし、１０秒間検出できないときには、アラームを出力してオペレータに報知する。
【００１７】
このとき、ロボットコントローラ１１は、上記のような作業を、マルチタスク機能により実現するようになっている。この場合、上記作業は、次の４つのプログラムから構成され、これらを優先順位の高い方から並べると、
ＰＲＯ＿ＭＡＩＮ      ：プログラム起動用メインプログラム
ＰＲＯ＿ＷＯＲＫ      ：コンベア上ワーク監視プログラム
ＰＲＯ＿ＭＯＶＥ      ：ワーク組付けプログラム
ＰＲＯ＿ＣＨＥＣＫ    ：組付状態チェックプログラム
【００１８】
また、プログラム（タスク）間のインターフェースをとるためのＩＯとして、
１１８：第１のワーク５取出位置に供給
１１９：第２のワーク６取出位置に供給
１２０：視覚チェック開始セマフォ
１２１：視覚チェック終了セマフォ
１２２：視覚チェックＯＫ／ＮＧ判断フラグ
が用いられる。さらに、カウンタとして、
Ｉ０００３：ワーク監視用秒数カウンタ
が用いられる。
【００１９】
図３は、プログラムの記述例の概略（各プログラムの詳しい中身の記述は省略）を示している。「ＰＲＯＧＲＡＭ  ＰＲＯ＿ＭＡＩＮ」でプログラム起動用のメインプログラムが動作されると、まず、「ＣＡＬＬ  ＩＮＩＴＩＡＬ」で各ＩＯ，カウンタが初期化され、次いで「ＲＵＮ  ＰＲＯ＿ＭＯＶＥ」でワーク組付けプログラムが起動され、「ＲＵＮ  ＰＲＯ＿ＣＨＥＣＫ」で組付状態チェックプログラムが起動され、「ＲＵＮ  ＰＲＯ＿ＷＯＲＫ」でコンベア上ワーク監視プログラムが起動される。最後に「ＥＮＤ」が記述される。
【００２０】
このとき、図４、図５、図６に示したフローチャートは、それぞれ、「ＰＲＯ＿ＭＯＶＥ」、「ＰＲＯ＿ＣＨＥＣＫ」、「ＰＲＯ＿ＷＯＲＫ」のプログラムによる処理手順を示している。また、図７には、これらプログラムによる、優先順位に従って実行されるマルチタスクの処理の流れを示している。尚、図７中の丸数字は、図４ないし図６のフローチャートの各ステップの左側に付した丸数字と対応している。
【００２１】
即ち、図４のワーク組付けプログラムにおいては、まず、ステップＳ１にてアーム使用権取得、速度設定等の初期化処理が行なわれる。そして、ステップＳ２にて、ＩＯ［１１８］がオンするつまり第１のワーク５が取出位置に来るのを待ち、取出位置に来たら、ステップＳ３にてその第１のワーク５を取出して組付治具３上にセットする。次いで、ステップＳ４にて、ＩＯ［１１９］がオンするつまり第２のワーク６が取出位置に来るのを待ち、取出位置に来たら、ステップＳ５にてその第２のワーク６を取出して組付治具３上の第１のワーク５に組付ける。このステップＳ４，Ｓ５は２回繰返される。
【００２２】
そして、ステップＳ６にて、ＩＯ［１２０］をセット（オン）させて製品のチェック開始を指示し、ＩＯ［１２１］がオンするつまり検査が終了するのを待つ。検査が終了すると、ＩＯ［１２１］をリセット（オフ）させる。次のステップＳ７では、ＩＯ［１２２］にて検査結果を判定し、ＯＫであった場合には、その製品をパレット９の所定位置に移動させ、ＮＧであった場合には、その製品を、不良品位置へ移動させる。
【００２３】
図５の組付状態チェックプログラムにおいては、まず、ステップＳ１１にて、ＩＯ［１２０］がセットされるつまり製品のチェック開始の指示を待ち、指示があったときには、次回のためにＩＯ［１２０］をリセットさせる。そして、ステップＳ１２にて、視覚装置１０による組付状態の検査を実行し、ステップＳ１３にて、その結果をＩＯ［１２２］にセットする。ステップＳ１４にて、ＩＯ［１２１］をオンさせて検査終了を知らせる。
【００２４】
図６のコンベア上ワーク監視プログラムにおいては、まず、ステップＳ２１にて、１秒間（１０００ｍｓ）待つことが行なわれ、１秒経過後に、ステップＳ２２にて、センサの検出に基づき第１及び第２のワーク５及び６が共に取出位置に来ていないかどうかが判断される。このとき、センサの検出に基づいて、ＩＯ  ［１１８］及びＩＯ［１１９］がオン，オフされる。そして、第１及び第２のワーク５及び６が共に取出位置にない場合には（ステップＳ２２にてＹｅｓ）、ステップＳ２３にてカウンタＩ０００３が１だけインクリメントされる。ワーク５，６が存在する場合（ステップＳ２２にてＮｏ）には、ステップＳ２４にて、カウンタＩ０００３がクリアされる。さらに、ステップＳ２５では、カウンタＩ０００３のカウント値により、１０秒が経過したかどうかが判断され、１０秒間ワーク５，６を検出できないときには（Ｙｅｓ）、ステップＳ２６にてアラームが出力される。
【００２５】
上記のようなプログラムにより、図７に示すようなマルチタスクの処理が行なわれる。このとき、詳しい説明は省略するが、プログラム起動用メインプログラムが実行されると、優先順位に従って各プログラムが実行され、例えば優先順位１番のコンベア上ワーク監視プログラムにおける１秒待ち（ステップＳ２１）の間に、優先順位２番のワーク組付けプログラムに移り、このワーク組付けプログラムに待ち時間が発生する（ステップＳ２）と、優先順位３番の組付状態チェックプログラムの実行に移り、それらワーク組付けプログラムあるいは組付状態チェックプログラムの実行中に、コンベア上ワーク監視プログラムの処理が発生すると、それら優先順位の低いプログラムが中断されて優先順位のより高いプログラムの実行に移行するといった処理の流れとなる。
【００２６】
このようなマルチタスク機能により、各プログラムが機能別に単純化されるので、オペレータによるプログラミング作業を極めて容易に行なうことができるのである。尚、図７には、ロボットシステム１の動作中にあるタイミングで停電等による電源遮断がなされたときの様子も示されており、ここでは、図４〜図６に☆で示した処理の実行中に電源遮断されたものとしている。また、後述するように、電源回復後の再起動時に、待ち時間を発生する（外部に対しては何もしない）ダミータスクが最も高い優先順位にて実行されるようになっている。
【００２７】
さて、本実施例においては、後の作用説明（フローチャート説明）にて詳述するように、前記ＣＰＵカード１７（カードＰＣ２５）は、そのソフトウエア的構成により、バックアップ手段、復元手段、ダミータスク実行手段として機能するようになっている。
【００２８】
即ち、ＣＰＵカード１７は、システムの動作時に停電等による電源遮断が発生すると、その時点におけるタスク情報、ステータス情報、サーボ情報等の復電用のバックアップデータをバックアップＲＡＭ２７に記憶するようになっている。そして、電源回復時に、バックアップＲＡＭ２７に記憶されたバックアップデータに基づいて電源遮断時のタスク状態を復元し、再起動時に、全てのプログラムが起動される間は、ダミータスクを優先順位を最も高くして実行するようになっている。
【００２９】
また、特に本実施例では、上記電源遮断時のタスク状態を復元するにあたり、ＯＳによるシステムリソースの決定（メモリアロケート）後、バックアップデータに基づいて、ＤＲＡＭ２９のメモリ空間に対するタスク情報の合せ込みを行なうようになっている。尚、このとき、図８（ａ）は、前記カードＰＣ２５内のＤＲＡＭ２９のメモリ空間の構成をイメージとして示しており、ＤＲＡＭ２９内には、各プログラム（ＰＲＯ１，ＰＲＯ２，ＰＲＯ３）が展開されていると共に、各プログラム用のデータ（スタック，ブレークポインタ等）が記憶され、また、各プログラムに対応してＰＣ（プログラムカウンタ）が設けられる。
【００３０】
次に、上記構成の作用について、図９ないし図１５も参照して述べる。上述のように、ロボットコントローラ１１は、図７に示すような流れにより各プログラム（タスク）を実行し、ロボットシステム１による作業が行なわれるのであるが、今、そのマルチタスク実行の途中（ロボット本体４の作業の途中）で、例えば図７に示すタイミングで（図４〜図６のフローチャートに星印を付した処理中）、停電等による電源遮断が発生したとする。図９ないし図１５のフローチャートは、電源遮断時から電源回復後の再起動時までにロボットコントローラ１１のＣＰＵカード１７が実行する処理の手順の概略（要点）を示している。
【００３１】
まず、図９は、電源遮断を検出した際の全体の処理手順の概要を示しており、電源遮断が検出されると、ステップＳ３１にて、ＯＳ管理により、プログラム情報（どういったプログラムが実行されているか等）がセーブされる。次のステップＳ３２では、「電源断エラー」処理、リクエストが実行される。この処理は、別タスクにて、実行されていた全てのタスクを停止させる内部処理が行なわれると共に、ロボット本体４及び周辺機器の停止処理が行なわれる。そして、全てのタスクの停止処理が行なわれると（ステップＳ３３にてＹｅｓ）、ステップＳ３４にて、復電源用のデータのバックアップ（バックアップＲＡＭ２７への記憶）が行なわれる。
【００３２】
図１０は、復電源用のデータのバックアップ（図９のステップＳ３４）の処理の詳しい手順を示している。即ち、まずステップＳ４１では、パラメータや実行プログラム数等の条件のチェックにより、復電が可か不可かがチェックされる。図示していないが、復電不可の場合には、そのまま処理を終了する。復電可の場合には、次のステップＳ４２にて、タスク情報がバックアップされる。このタスク情報は、タスク内容、タスク管理テーブル、ブレークポイント、スタック内容、実行中の行等の、復元に必要なプログラムとしての情報である。
【００３３】
次のステップＳ４３では、ロボット本体４や周辺機器を含めたＩＯ状態（動作状態）を示すスタック情報がバックアップされる。ステップＳ４４では、特殊命令への対応が行なわれる。ここでは、例えば通信途中等の復電不可となる特殊命令が実行中であるかどうかのチェックが行なわれ、図示はしないが、復電不可となる特殊命令の実行中であれば、復電不可として処理を終了する。ステップＳ４５では、ロボット本体４の各軸の速度、加速度、動作種類、現在位置、目標位置等の、軸動作の継続に必要なサーボ情報がバックアップされる。最後に、ステップＳ４６にて、復電可（バックアップ完了）を示すフラグがセットされ、処理を終了する。これにて、図８（ｂ）に示すように、バックアップＲＡＭ２７に復電用のデータ（バックアップデータ）が記憶されるのである。
【００３４】
さて、上記した電源遮断が回復すると、図１１及び図１２に示すようなタスク状態の復元の処理が実行される。即ち、図１１は、電源回復時における全体の処理手順の概要を示しており、電源が回復されると、ステップＳ５１にて、パラメータやデータセーブ済み等の復電可かどうかのチェックが行なわれる。復電可である場合には、ステップＳ５２にて、タスク状態（プログラム状態）の復元の処理が実行される。
【００３５】
図１２は、図１１のステップＳ５２のタスク状態の復元の処理の詳しい手順を示している。まず、ステップＳ６１にて、バックアップデータの読込みが行なわれ、次のステップＳ６２にて、復元させるタスクの初期化の処理が行なわれる。このタスクの初期化処理では、上記電源遮断時に起動していたタスク（プログラム）を一旦生成（ロード）し、ＯＳによりシステムリソース（メモリ空間への展開、配置等）を決定することが行なわれる。
【００３６】
しかして、このようにタスク生成時のシステムリソースの決定（メモリアロケート）がＯＳ管理により行なわれる場合、図８（ｃ）に示すように、ＤＲＡＭ２９（主記憶装置）のメモリ空間（各プログラムやデータのアドレス）が電源遮断前の状態と合致しなくなる虞がある。そこで、次のステップＳ６３では、バックアップデータに基づいて、ＤＲＡＭ２９のメモリ空間に対するタスク情報の合せ込みが行なわれる。このタスク情報の合せ込みは、図８にそのイメージを示すように、ＰＣ、スタック内容、スタックポインタ、タスク優先順位等のタスク状態の復元に必要な情報を、新たなメモリ空間のアドレスに変更する等により行なわれ、これにて、ＰＣやスタックを新たなメモリ空間用に調整することができ、混乱なくタスク状態を復元させることができるようになるのである。
【００３７】
次いで、ステップＳ６４では、ロボット本体４や周辺機器の動作に必要なサーボ情報の復元が行なわれる。ステップＳ６５では、実行中の行番号等の、ペンダントの表示等に関連する必要な表示用データの復元が行なわれる。ステップＳ６６では、ロボット本体４や周辺機器を含めたＩＯ状態（動作状態）を示すスタック情報が復元される。以上の処理により、電源遮断時に起動していたタスク（プログラムの実態）が復元され、起動待ち状態となるのである。
【００３８】
そして、この状態から、オペレータにより再起動の指示（例えば操作盤１４のスイッチ操作）がなされると、図１３〜図１５に示す起動処理が実行される。図１３に示すように、起動処理においては、まずステップＳ７１にて各種のチェック（停止キーが入っていない等）が行なわれる。ＮＧ時には、そのまま終了する。次に、ステップＳ７２にて、復電用のタスクの生成の処理が行なわれる。
【００３９】
図１４は、上記図１３におけるステップＳ７２の復電用タスクの生成の処理  （復元したタスクの起動）の詳細を示しており、まずステップＳ８１では、ダミータスクの生成，起動が行なわれる。このダミータスクは、復元した他のタスク（プログラム）よりも高い優先順位を有し、待ち時間を生成する（何もしない）タスクである。そして、このダミータスクの起動の後、ステップＳ８２にて、復元した他の複数のタスク（プログラム）の起動が順次行なわれる。この場合、タスクの起動順序を考慮する必要はなく、この起動の処理においては、ＯＳによってタスクスケジュールされるのみであって、プログラムは未だ走らない。
【００４０】
そして、復元した他の複数のタスクの起動が完了すると、ステップＳ８３にてダミータスクが削除される。従って、前記ダミータスクの実行による処理は、図１５に示す通りとなり、他の全てのタスクが起動されるまで、何もせずにループし続けるようになり（ステップＳ９１）、他の全てのタスクが起動が完了すると、復電用タスクによって削除されるようになる。
【００４１】
これにて、図７にも示すように、電源回復後の再起動時には、まず、優先順位が最も高いダミータスクが実行され、そのダミータスクの終了後、スケジュールされた各タスク（プログラム）が、優先順位に従って実行されるようになり、電源遮断時のタスク状態がそのまま引継がれた状態で制御が再開され、ロボットシステム１の中断時からの作業（図７の例では第２のワーク６の組付け）が継続して実行されるようになるのである。
【００４２】
このように本実施例のロボットコントローラ１１によれば、マルチタスク機能を備えるものにあって、システムの動作時に電源遮断があった場合でも、従来のような、プログラムが初期化され、ロボット本体を初期状態に戻した上で、再起動操作を行なう必要があったものと異なり、電源の回復時に容易に停止時のタスク状態を引継いで再開させることができるようになった。この結果、オペレータによる面倒な復帰作業を不要とすると共に、無駄時間やワーク５，６の無駄をなくすことができるという優れた効果を得ることができるものである。
【００４３】
尚、上記実施例では、ロボットシステムの一例として、ワーク５，６の組付け作業を行なうものに本発明を適用した場合を述べたが、本発明は、ロボット本体の構成や作業内容も含めて様々なロボットシステムを制御するロボットコントローラに適用することが可能である。この場合、各タスク（プログラム）についても種々変更されることは勿論である。また、ロボットコントローラのハードウエア構成や、ＯＳの種類などについても種々の変形が可能であるなど、本発明は要旨を逸脱しない範囲内で、適宜変更して実施し得るものである。
【図面の簡単な説明】
【図１】本発明の一実施例を示すもので、ロボットシステムの外観構成を概略的に示す斜視図
【図２】ロボットコントローラのハードウエア構成を概略的に示すブロック図
【図３】プログラムの記述例の概略を示す図
【図４】ワーク組付けプログラムによる処理手順を示すフローチャート
【図５】組付状態チェックプログラムによる処理手順を示すフローチャート
【図６】コンベア上ワーク監視プログラムによる処理手順を示すフローチャート
【図７】マルチタスクの処理の流れを示すタイムチャート
【図８】主記憶装置のメモリ空間に対するタスク情報の合せ込みのイメージを示す図
【図９】電源遮断時における処理手順を示すフローチャート
【図１０】データバックアップの詳細な手順を示すフローチャート
【図１１】電源回復時の処理手順を示すフローチャート
【図１２】タスク状態復元の詳細な手順を示すフローチャート
【図１３】起動処理の概略手順を示すフローチャート
【図１４】復電用タスク生成の詳細な手順を示すフローチャート
【図１５】ダミータスクの処理手順を示すフローチャート
【符号の説明】
図面中、１はロボットシステム、４はロボット本体、８はコンベア装置（周辺機器）、１０は視覚装置（周辺機器）、１１はロボットコントローラ、１７はＣＰＵカード、２５はカードＰＣ（復元手段，ダミータスク実行手段）、２７はバックアップＲＡＭ（バックアップ手段）を示す。
【図１】
0004131078.tif 000002
【図２】
0004131078.tif 000003
【図３】
0004131078.tif 000004
【図４】
0004131078.tif 000005
【図５】
0004131078.tif 000006
【図６】
0004131078.tif 000007
【図７】
0004131078.tif 000008
【図８】
0004131078.tif 000009
【図９】
0004131078.tif 000010
【図１０】
0004131078.tif 000011
【図１１】
0004131078.tif 000012
【図１２】
0004131078.tif 000013
【図１３】
0004131078.tif 000014
【図１４】
0004131078.tif 000015
【図１５】
0004131078.tif 000016