(57)【要約】【課題】  １つ以上の工業用ロボットを含む複数の制御対象機器を統括的に制御するシステムを構築可能とする制御装置を提供する。【解決手段】  設備制御装置にマルチタスクＯＳを搭載すると共に、そのＯＳ上で動作するシステムタスク群を予め搭載しておき、当該タスク群を構成する実行管理タスクが、ユーザプログラムであるロボット管理タスク群，ＰＬＣ処理タスクを実行管理して動作させることで、コンベア，ロボット，加工機などを統括的に制御する。そして、実行管理タスクは、ユーザプログラムを周期的に実行させるように管理して、ＰＬＣ処理タスクにおける一連の処理が連続的に実行される時間を検出し、ロボット管理タスク群の実行時間に対するＰＬＣ処理タスクの実行時間比率が、実行周期内において一定の割合以下となるように制御する。【選択図】  図１
2006048231.tif 000002
【特許請求の範囲】
【請求項１】
マルチタスクＯＳを搭載し、メーカによって作成されるシステムタスク群が前記マルチタスクＯＳ上で動作し、ユーザによって作成されるユーザプログラムが前記システムタスク群上で動作することで、１つ以上の工業用ロボットを含む複数の制御対象機器を統括的に制御するように構成される制御装置において、
前記ユーザプログラムが、
前記工業用ロボットの動作を制御するためのロボット管理タスクと、
前記工業用ロボット以外の制御対象機器の動作を夫々制御すると共に、各制御対象機器の動作状態を監視することで異常を検知すると、その異常が検知された制御対象機器の動作を安全側に移行させるように制御する統括制御タスクとで構成される場合に、
前記システムタスク群は、前記ユーザプログラムを周期的に実行させるように管理すると共に、前記統括制御タスクにおける一連の処理が連続的に実行される時間を検出し、前記ロボット管理タスクの実行時間に対する前記統括制御タスクの実行時間比率が、前記実行周期内において予め定めた一定の割合以下となるように制御する実行管理タスクを有することを特徴とする制御装置。
【請求項２】
前記実行管理タスクは、前記実行周期を所定の単位周期に基づいて設定し、前記単位周期内では前記実行時間比率を前記一定の割合以下に実現できない場合は、前記実行周期を前記単位周期の倍数で設定するように延長することを特徴とする請求項１記載の制御装置。
【請求項３】
前記実行管理タスクは、前記統括制御タスクの実行時間が上限を超えた場合は、当該タスクの起動を禁止することを特徴とする請求項２記載の制御装置。
【請求項４】
前記単位周期の冒頭においては、前記工業用ロボットを実際に動作させるためのサーボ処理が優先的に実行され、
前記実行管理タスクは、前記サーボ処理が実行された後に前記統括制御タスクを実行させ、前記統括制御タスクが実行された後に前記ロボット管理タスクを実行させることを特徴とする請求項２又は３記載の制御装置。
【請求項５】
１つ以上の工業用ロボットを含む複数の制御対象機器を統括的に制御するように構成される制御装置に搭載されて前記制御装置を構成するコンピュータによりマルチタスクＯＳ上で実行され、前記マルチタスクＯＳとユーザによって作成されるユーザプログラムとの中間に位置するシステムタスク群としてのコンピュータプログラムであって、
前記ユーザプログラムが、
前記工業用ロボットの動作を制御するためのロボット管理タスクと、
前記工業用ロボット以外の制御対象機器の動作を夫々制御すると共に、各制御対象機器の動作状態を監視することで異常を検知すると、その異常が検知された制御対象機器の動作を安全側に移行させるように制御する統括制御タスクとで構成される場合に、
前記ユーザプログラムを周期的に実行させるように管理すると共に、前記統括制御タスクにおける一連の処理が連続的に実行される時間を検出し、前記ロボット管理タスクの実行時間に対する前記統括制御タスクの実行時間比率が、前記実行周期内において予め定めた一定の割合以下となるように制御する機能を有していることを特徴とするコンピュータプログラム。
【請求項６】
前記実行周期を所定の単位周期に基づいて設定し、前記単位周期内では前記実行時間比率を前記一定の割合以下に実現できない場合は、前記実行周期を前記単位周期の倍数で設定するように延長させることを特徴とする請求項５記載のコンピュータプログラム。
【請求項７】
前記統括制御タスクの実行時間が上限を超えた場合は、当該タスクの起動を禁止させることを特徴とする請求項６記載のコンピュータプログラム。
【請求項８】
前記単位周期の冒頭においては、前記工業用ロボットを動作させるためのサーボ処理を優先的に実行させ、
前記サーボ処理を実行させた後に前記統括制御タスクを実行させ、前記統括制御タスクを実行させた後に前記ロボット管理タスクを実行させることを特徴とする請求項６又は７記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、１つ以上の工業用ロボットを含む複数の制御対象機器を統括的に制御するための制御装置、及びその制御装置に搭載されるシステムタスク群としてのコンピュータプログラムに関する。
【背景技術】
【０００２】
図７は、コンベアによって搬送されるワークを工業用ロボットを用いて加工する生産ライン１の一構成例を示す斜視図である。直線状のコンベア２は、行き用のコンベア２Ｆ，戻り用のコンベア２Ｂの２本からなり、行き用のコンベア２Ｆの途中部位にロボット３及び加工機４が配置されている。そして、ロボット３の僅かに上流には、パレット検出用のセンサ６が配置されている。また、加工機４の下流側隣には、ワーク供給装置７が配置されている。
【０００３】
上記構成における加工処理の流れを概略的に説明する。
（０）作業者によって生産ライン１の起動ボタンが操作されると、初期化処理として、各部に配置されている図示しないセンサの入力信号が参照され、安全状態がチェックされると共に、各ユニットにおけるアクチュエータなどの原位置が確認される。それらがＯＫであれば、電源やエアなどの供給が開始されてコンベア２が起動される。すると、コンベア２Ｆの上流側より、パレット８に載置されたワーク９が前工程より供給される。
（１）パレット８が、コンベア２Ｆ上を搬送され所定位置に到達したことがセンサ６により検出される。
（２）すると、ロボット３のハンドがワーク９上に移動して当該ワーク９を把持し、上昇させる。
（３）ロボット３は加工機４に問合せを行い、「投入ＯＫ」の応答があれば、把持したワーク９を加工機４の投入位置に移動させ、一旦ハンド切替えを行うと加工機４による加工済みのワーク９を把持し、再びハンド切替えを行って未加工のワーク９を投入位置に投入する。
（４）続いて、ロボット３は、加工済みのワーク９をコンベア２Ｆの下流側に移動させ、パレット８に載置する。尚、パレット８は、コンベア２Ｆの上流側と下流側との間を、図示しないリフタを介してコンベア２Ｆの下方側を移動して移送されるようになっている。
（５）次に、ロボット３は、ワーク供給装置７にハンドを移動させて当該装置７より供給される別のワーク１０をチャックすると、（４）のパレット位置まで移動させ、加工済みのワーク９にワーク１０を組み付ける。
（６）そして、コンベア２Ｆ上のワークストッパを解除して、組付け後のワーク１１が載置されたパレット８を下流側に搬出する。
その後、下流側においていつかの工程が実施された後、パレット８は戻り用のコンベア２Ｂに乗せ替えられて上流側に搬送される。
【０００４】
上記のような構成においては、ロボット３の他に、コンベア２や加工機４等も同時に制御する必要がある。また、各設備に配置されているセンサ６などによって出力される信号の状態も監視しながら、必要に応じてロボット３やコンベア２などを停止させるなどの制御も必要となる。
【０００５】
図８は、従来、上記のような生産ライン１について制御を行う制御系の構成を概略的に示すものである。即ち、ロボット３は専用のロボットコントローラ１２によって制御され、コンベア２についてはモーションコントローラ１３によって制御される。また、加工機４は加工機用制御装置１４によって制御される。
そして、これらのコントローラ１２〜１４は、プログラマブルロジックコントローラ（ＰＬＣ）１５によって統括的に制御されるようになっている。また、ＰＬＣ１５には、加工状態などを画像で監視するためのカメラ１６及びそのカメラ１６を制御する視覚コントローラ１７や、各種のセンサ６などによって入力される信号及びバルブ等へ出力される信号なども与えられている。また、図８と同様の制御系の構成は、例えば特許文献１に開示されている。
【０００６】
近年、製品コスト低減のため、設備コスト低減が強く望まれており、部品費低減や設計・調整工数の低減が必須となっている。コスト低減のためには、ハード的アプローチとして使用部品点数の削減（例えばＰＬＣ、視覚装置、操作盤の統合など）が有効である。また、ソフト的アプローチとしては、ソフトの汎用化・標準化（例えば、言語の統一など）が有効である。更に、システム的アプローチとしては、設備内で最も汎用的な装置であるロボットに機能を集約して設備をシンプル化することが有効であろう。
【０００７】
その１つのアプローチとして、特許文献１に開示されているように、ＰＬＣ機能の一部である通信管理機能をロボットコントローラに持たせることで、イニシャルコスト低減を実現する手段がある。しかし、より理想的な構成としては、ＰＬＣ本来の機能である設備制御機能をロボットコントローラに取り込むことが望ましい。
【特許文献１】特開２００１−９２５１７号公報，図４参照
【発明の開示】
【発明が解決しようとする課題】
【０００８】
ロボットコントローラにＰＬＣの設備管理・制御機能を搭載することを想定すると、ロボットの動作と設備管理・制御動作とを並列的に実行させる必要がある。そして、近年、ロボットに求められる機能は多様化しており、並列的に実行しなければならない処理が増加している。そのため、ロボットコントローラにはマルチタスクＯＳ（オペレーティングシステム）が搭載されているものが増加しており、複数の処理タスクを並列に実行可能な環境が整ってきている。
【０００９】
そして、上述したように制御機能の集約を図るためには、ロボットコントローラに搭載されているマルチタスクＯＳ上において、ロボット動作用のタスクと設備管理・制御用のタスクとを実行させるように構成することが最適であると考える。
ここで、設備管理・制御用タスクの内容を大別すると、一般に、以下の２つに分けることができる。１つは、設備全体が一元管理される自動モードにおいて、シーケンシャルに処理される設備動作タスク、もう１つは、設備のモードが上記自動モード、また、設備の各部を個別的に動作させる各個モードの如何にかかわらず、常時安全監視や異常処理、各動作タスクの起動条件の監視などを行う設備管理タスクである。
【００１０】
このような２種類のタスクを並存させる場合、必要時にのみ実行させれば良い設備動作タスクと、常時実行させなければならない設備管理タスクとをどのように調和させてシステムを成立させるかが重要となる。尚、前提条件として、設備管理タスクは、設備動作タスクよりも優先的に実行させる必要がある。尚、設備動作タスクをロボットコントローラに組み込むとすれば、ロボットの管理タスクも同じレベルのタスクとしてこれらの一部に含まれることになる。
【００１１】
通常、マルチタスク環境下では、優先的に実行させたいタスクにはその生成時に高い優先度を設定する。すると、生成された各タスクは、マルチタスクＯＳによって自動的に優先度順に実行されることになる。ここで問題となるのは、システムタスク以外のタスクを生成させるのは、コントローラを供給するメーカではなく、そのコントローラを使用するユーザが作成したプログラムによることである。即ち、ユーザプログラムがどのような処理になるのか、また、どのくらいの量になるのかはユーザによってまちまちである。
【００１２】
そのため、単純に設備管理タスクの優先度を高く設定するだけでは、その設備管理タスクの処理時間（プログラム量）が増大すると、設備動作タスクの処理時間が圧迫され、ＣＰＵによる処理時間が十分に与えられず、システムとして成立しなくなる危険性が高い。一方、これらのタスクの優先度を同じレベルに設定すると、例えば設備動作タスクの処理時間が増大すれば設備管理タスクの処理時間が圧迫されるため、同様の危険性がある。
【００１３】
本発明は上記事情に鑑みてなされたものであり、その目的は、１つ以上の工業用ロボットを含む複数の制御対象機器を統括的に制御するシステムを構築可能とする制御装置、及びその制御装置に搭載され、前記制御を適切に実行可能とするためのコンピュータプログラムを提供することにある。
【課題を解決するための手段】
【００１４】
請求項１記載の制御装置によれば、マルチタスクＯＳを搭載し、そのＯＳ上でユーザによって作成されるユーザプログラム（アプリケーションプログラム）を動作させることで、１つ以上の工業用ロボットを含む複数の制御対象機器を統括的に制御する。そして、マルチタスクＯＳとユーザプログラムとの間に位置するようなシステムタスク群を用意する。このシステムタスク群は、制御装置をユーザに供給するメーカによって作成され、予め搭載された状態で製品としての制御装置が出荷される。
【００１５】
そして、そのシステムタスク群には、少なくとも、ユーザプログラムを周期的に実行させるように管理して、統括制御タスクにおける一連の処理が連続的に実行される時間を検出し、前記ロボット管理タスクの実行時間に対する前記統括制御タスクの実行時間比率が、前記実行周期内において予め定めた一定の割合以下となるように制御する実行管理タスクを用意する。
【００１６】
即ち、ユーザによって作成される統括制御タスクの実行時間が様々に異なる場合でも、実行管理タスクにより、統括制御タスクとロボット管理タスクとの実行時間比率は周期的に一定の割合以下となるように管理される。従って、各制御対象機器を動作させて本来の処理動作を随時進めながら、その動作状態を監視して安全管理を図ることができる。そして、斯様なソフトウエア構成を採用すれば、ユーザは、ユーザプログラムを作成する際に、ロボット管理タスクと統括制御タスクとの優先順位をどのように設定するかについては意識する必要がなくなり、プログラムの作成をより簡単に行うことができる。また、ＰＬＣ本来の機能を取り込み、複数の制御対象機器を制御する装置が１つに統合されることで、コストを低下させることができると共に、１つ以上の工業用ロボットを含む複数の制御対象機器によって構成されるシステムの汎用性をより高めることができる。
【００１７】
請求項２記載の制御装置によれば、実行管理タスクは、実行周期を所定の単位周期に基づいて設定する。そして、単位周期内では、統括制御タスクとロボット管理タスクとの実行時間比率を一定の割合以下に実現できない場合は、実行周期を単位周期の倍数で設定するように延長する。従って、ユーザによってプログラミングされた統括制御タスクの実際の実行時間が長い場合でも、その長さに応じて、実行時間比率が一定の割合以下となるように実行周期を延長することができる。
【００１８】
請求項３記載の制御装置によれば、実行管理タスクは、統括制御タスクの実行時間が上限を超えた場合は当該タスクの起動を停止させる。即ち、統括制御タスクの実行時間が余りにも長い場合は、ユーザのプログラミングにミスがあるか、プログラムの設計仕様自体に誤りがある可能性が高い。従って、そのようなケースでは、ユーザプログラムの動作を停止させることで、ユーザにプログラムの内容を再検討させることが可能となる。
【００１９】
請求項４記載の制御装置によれば、単位周期の冒頭においては工業用ロボットを動作させるためのサーボ処理が優先的に実行され、実行管理タスクは、そのサーボ処理が実行された後に統括制御タスクを実行させ、統括制御タスクの実行後にロボット管理タスクを実行させる。即ち、実行周期が単位周期の倍数で延長された場合であっても、工業用ロボットのサーボ処理は単位周期毎に確実に実行される。従って、ロボットの動作が途中で滞るようなことはなく、単位周期毎に確実に動作を進めることができる。
【発明を実施するための最良の形態】
【００２０】
以下、本発明の一実施例について図１乃至図６を参照して説明する。尚、図７及び図８と同一部分には同一符号を付して説明を省略し、以下異なる部分についてのみ説明する。図５は、図８相当図であり、図７に示す生産ライン１と同様の構成を制御対象機器として、それらを本発明の設備制御装置２１によって制御する場合の構成を機能ブロック図で示すものである。即ち、設備制御装置２１は、コントローラ１２，１３，１７及びＰＬＣ１５に代わり、生産ライン１を構成するコンベア２，ロボット３，カメラ１６などを制御対象機器として統括的に制御するコントローラである。
【００２１】
また、図６は、設備制御装置２１の概略構成をソフトウエア的な構成を中心として概念的に示すものである。設備制御装置２１は、具体的には図示しないが、ＣＰＵやメモリ，ハードディスク，Ｉ／Ｏなどからなるハードウエア２２を備えて構成されている。また、ソフトウエア的な構成として、マルチタスクＯＳ（オペレーティングシステム）２３を備えている。マルチタスクＯＳ２３は、ハードウエア２２のＣＰＵによって実行され、ユーザによって作成されるユーザプログラムとハードウエア２２との間を仲介するように、設備制御装置２１の資源管理を行うものである。
【００２２】
そして、設備制御装置２１を製品として出荷するメーカは、マルチタスクＯＳ２３上で動作するアプリケーションプログラムの１つとしてシステムタスク群２６を作成し、そのシステムタスク群２６を予め搭載した状態で設備制御装置２１をユーザに供給するようになっている。システムタスク群２６は、ユーザが設備制御装置２１上でユーザプログラムを動作させ、様々な制御対象機器を制御する場合において、共通する基本的な制御内容（例えば、設備制御装置２１のマンマシンインターフェイス部分や、外部機器との通信処理に関するものなど）を実行して処理させるために搭載される。
【００２３】
ユーザは、ユーザプログラムとして、ロボット管理タスク群２４，ＰＬＣ処理タスク（統括制御タスク）２５を記述作成し、それらを設備制御装置２１のハードディスクなどにインストールすることで、マルチタスクＯＳ２３並びにシステムタスク群２６上において、ユーザプログラムをハードウエア２２のＣＰＵに実行させるようになっている。尚、コンピュータプログラムである各タスクに基づく処理を実際に実行する主体は、ハードウエア２２のＣＰＵであるが、何れのタスク群又はタスクが動作しているのかを明確にする都合上、以下においては各タスクが処理の主体であるように記述を行なう。
【００２４】
ロボット管理タスク群２４は、ロボット３を制御するための複数のタスクで構成されている。そして、ＰＬＣ処理タスク２５は、従来のＰＬＣ１５としての機能をソフトウエア的に実現すると共に、ロボット３以外の制御対象機器の動作を管理する機能を有している。即ち、コンベア２を制御するための搬送管理部２８，加工機４を制御装置１４を介して制御するための加工機管理部２９，視覚コントローラ１７に代わりカメラ１６を制御する視覚管理部３０などを備えている。
【００２５】
また、ＰＬＣ処理タスク２５は、設備監視処理部３２，設備全体制御処理部３３なども備えている。設備監視処理部３２は、カメラ１６の画像信号をパターン認識したり、各種センサ６などによって入力されるセンサ信号を参照することで、各制御対象機器の動作状態などを監視している。設備全体制御処理部３３は、ロボット管理タスク群２４並びにその他の管理部２８〜３０の実行を制御する。そして、前述したように生産ライン１に人が近付いた場合や、或いは設備の一部が破損する可能性がある状況が発生した場合には、設備監視処理部３２がその状態を検知し、設備全体制御処理部３３が生産ライン１の動作を安全側に移行させるように制御する。ここで、「安全側に移行させるように制御する」とは、生産ライン１の動作の一部若しくは全てを停止させたり、或いは、動作速度を低減させたりすることをいう。
【００２６】
そして、ＰＬＣ処理タスク２５は、ラダー言語やＳＦＣ（Sequential Function Chart），ＳＴ(Structured Text)言語など、従来のＰＬＣ１５などをプログラミングする際に使用されてきた言語、又はそれらの組み合わせによってシーケンシャルなプログラムとして記述されている。また、ＰＬＣ処理タスク２５を実行させるには、使用言語に対応してマルチタスクＯＳ２３上で動作するインタプリタを介して動作するようになっている。
【００２７】
次に、本実施例の作用について図１乃至図４も参照して説明する。図２は、設備制御装置２１に搭載されたシステムタスク群２６の一部をなす、実行管理タスク３４によって実行されるタスク実行管理制御の内容を示すフローチャートである。実行管理タスク３４はこのフローチャートに基づいて動作することで、ユーザプログラムとして作成されたＰＬＣ処理タスク２５及びロボット管理タスク群２４の実行を管理する。
尚、図２の制御を実行するための前提として、ハードウエア２２は、図４に示すように８ｍｓ周期でタイマ割り込みを発生させるようになっており、実行管理タスク３４は、そのタイマ割込みが発生する毎に実行されるようになっている。
【００２８】
また、図３は、ＰＬＣ処理タスク２５による処理内容を示すフローチャートである。先ず、この図３について説明する。ＰＬＣ処理タスク２５は、後述するように実行管理タスク３４によってセットされるＰＬＣ停止フラグがセット（ＯＮ）されているか否かを判断し（ステップＢ１）、セットされていれば（「ＹＥＳ」）そのまま処理を終了し、セットされていなければ（「ＮＯ」）、やはり実行管理タスク３４によってＰＬＣ処理タスク２５の起動が許可されるまで待機する（ステップＢ２）。
【００２９】
起動が許可されると（ステップＢ２，「ＹＥＳ」）、ＰＬＣ処理タスク２５は、開始処理としてＰＬＣ処理の開始時刻を記憶する（ステップＢ３）。それから、Ｉ／Ｏ入力処理（ステップＢ３），命令実行処理（ステップＢ４），Ｉ／Ｏ出力処理（ステップＢ５）を順次実行する。Ｉ／Ｏ入力処理は、設備監視を行うために必要な入力情報をハードウエア２２を介して得るための処理であり、命令実行処理は、前記入力情報に基づいて、各管理部２８〜３０が夫々の制御対象機器に命令を実行させる処理である。そして、Ｉ／Ｏ出力処理は、命令実行処理の結果、管理部２８〜３０に対して必要な指令をハードウエア２２を介して出力するなどの処理である。そしてこれらステップＢ３〜Ｂ５における処理は、ＰＬＣ処理の１スキャン（入力・実行・出力）に対応する。
【００３０】
続いて、ＰＬＣ処理タスク２５は、終了処理として、ＰＬＣ処理の終了時刻である現在時刻よりステップＢ３で記憶した開始時刻を減算し、ＰＬＣ処理の「実行時間」を得る（ステップＢ７）。そして、その実行時間が、限界時間を超えているか否かを判断する（ステップＢ８）。限界時間を超えていなければ（「ＮＯ」）前記実行時間をソフトＰＬＣ処理実行時間としてセットし（ステップＢ９）、ステップＢ１に戻る。
【００３１】
一方、ステップＢ８において限界時間を超えている場合は（「ＹＥＳ」）、ＰＬＣ処理タスク２５のプログラム自体が異常か、若しくはハードウエア的に異常が発生していると推定されるので、タイムオーバーとして異常処理を行った後（ステップＢ１０）、ステップＢ９に移行する。
【００３２】
次に、図２について説明する。実行管理タスク３４は、上述したように、８ｍｓ周期の割り込みが発生すると図２のフローチャートの実行を開始し（スタート）、先ず、ロボット３の軌道生成処理（サーボ処理）を行なう（ステップＡ１）。ここで、「軌道生成処理」とは、例えばロボット３のアームをＡ点からＢ点まで移動させる場合に、それらＡ−Ｂ点間の移動軌跡を描かせるために決定された座標位置に応じて、アームを移動させる処理である。そして、座標位置の計算は、ロボット管理タスク群２４の一部であるロボット管理タスク２７によって行なわれる。
【００３３】
続いて、実行管理タスク３４は、図３に示すフローチャートのＰＬＣ処理タスク２５が実行中（動作中）であるか否かを判断し（ステップＡ２）、実行中であれば（「ＹＥＳ」）、その時点におけるＰＬＣ処理タスク２５の動作時間を取得する（ステップＡ２３）。即ち、現在時刻と、図３のフローのステップＢ３で記憶された開始時刻との差を動作時間とする。そして、その動作時間が限界時間（後述するように、例えば１８ｍｓに設定される）を超えていれば（ステップＡ２４，「ＹＥＳ」）、タイムオーバーの異常処理を行なうと共に（ステップＡ２５）ＰＬＣ停止フラグをセット（ＯＮ）して（ステップＡ２６）処理を終了する。一方、ステップＡ２４においてＰＬＣ処理タスク２５の動作時間が限界時間以下であれば（「ＮＯ」）そのまま処理を終了する。
【００３４】
また、ステップＡ２において、ＰＬＣ処理タスク２５が動作中でなければ（「ＮＯ」）、実行管理タスク３４は、ＰＬＣ停止フラグがセットされているか否かを判断する（ステップＡ３）。セットされていれば（「ＹＥＳ」）そのまま処理を終了し、セットされていなければ（「ＮＯ」）８ｍｓ割り込みの発生回数をカウントするカウンタ（以下、８ｍｓカウンタと称す）をインクリメントとする（ステップＡ４）。そして、ステップＢ７で得られたＰＬＣ処理タスク２５の実行時間Ｔを取得すると（ステップＡ５）、その実行時間Ｔが、３ｍｓで区切られる何れの区間に属するかを判断する（ステップＡ６）。実行時間Ｔが属する区間に応じて、ステップＡ６より、以下のように分岐する。
区間              ステップ
０ｍｓ＜Ｔ≦３ｍｓ        Ａ７
３ｍｓ＜Ｔ≦６ｍｓ        Ａ１０
６ｍｓ＜Ｔ≦９ｍｓ        Ａ１２
９ｍｓ＜Ｔ≦１２ｍｓ      Ａ１４
１２ｍｓ＜Ｔ≦１５ｍｓ      Ａ１６
１５ｍｓ＜Ｔ≦１８ｍｓ      Ａ１８
１８ｍｓ＜Ｔ                Ａ２０
【００３５】
実行時間Ｔが３ｍｓ以下の場合（ステップＡ７）、実行管理タスク３４は、ＰＬＣ処理タスク２５の起動を許可すると（ステップＡ８）８ｍｓカウンタをクリアして（ステップＡ９）処理を終了する。実行時間Ｔが３ｍｓ＜Ｔ≦６ｍｓの場合（ステップＡ１０）、実行管理タスク３４は、８ｍｓカウンタの値が「２」の場合に（ステップＡ１１，「ＹＥＳ」）ステップＡ８に移行し、８ｍｓカウンタの値が「２」でなれければ（「ＮＯ」）そのまま処理を終了する。
【００３６】
そして、他のステップＡ１２，Ａ１４，Ａ１６，Ａ１８のケースでは、夫々、８ｍｓカウンタの値が「３」，「４」，「５」，「６」の場合に（ステップＡ１１，Ａ１３，Ａ１５，Ａ１７，Ａ１９，「ＹＥＳ」）ステップＡ８に移行し、夫々の値でなければ（「ＮＯ」）そのまま処理を終了する。
また、ステップＡ２０のケースでは、実行時間Ｔが１８ｍｓを超えた場合であり、ステップＡ２５，Ａ２６と同様に、タイムオーバーの異常処理を行なうと共に（ステップＡ２１）ＰＬＣ停止フラグをセット（ＯＮ）して（ステップＡ２２）処理を終了する。
【００３７】
ここで、図１を参照する。図１（ａ）〜（ｄ）は、図２においてステップＡ７，Ａ１０，Ａ１２，Ａ１４に分岐して処理を実行した場合に、各タスクの実行状態を示すタイミングチャートである。即ち、何れの処理ケースも８ｍｓ割込みの周期を単位としており、その割り込みが発生した冒頭では、何れもロボット３のサーボ処理（軌道生成処理）が実行される。当該サーボ処理の実行時間は１ｍｓ以内に規定されている（本実施例では１ｍｓ以内であるが、これに限定されるものではない）。そして、図２のフローに従って処理を行なう結果、サーボ処理：ＰＬＣ処理タスク：ロボット管理タスク群の実行時間比率は、最大で１：３：４となるように設定される。
【００３８】
例えば、図１（ａ）のケースでは、ＰＬＣ処理タスク２５の実行時間Ｔが０ｍｓ＜Ｔ≦３ｍｓであり、その場合、ロボット管理タスク群２４の実行時間ＴRは４ｍｓ＜ＴR≦７ｍｓの範囲となり、３つの処理を繰り返す制御周期８ｍｓに対して、実行時間比率を１：３：４以内に維持することが可能となる。
即ち、サーボ処理の実行時間をＴSとすれば、ロボット管理タスク群２４の実行時間ＴRは、ＴR＝８−ＴS−Ｔ（ｍｓ）として決定され、例えば、ＰＬＣ処理タスク２５の実行時間Ｔが３ｍｓであれば実行時間ＴRは４ｍｓ、実行時間Ｔが２ｍｓであれば実行時間ＴRは５ｍｓとなる。つまり、制御周期８ｍｓに対して実行時間ＴSは最大で１ｍｓであるから、残りの７ｍｓにおける実行時間比率Ｔ：ＴRは、最大で（この場合、ＴRに対してＴが最大となる比率）３：４となる。
【００３９】
次に、図１（ｂ）のケースでは、ＰＬＣ処理タスク２５の実行時間が３ｍｓ＜Ｔ≦６ｍｓであり、実行時間比率を１：３：４以内にする（即ち、実行時間Ｔの比率を「３」以下にする）には、ロボット管理タスク群２４の実行時間は８ｍｓ＜ＴR≦１１ｍｓの範囲として、制御周期を１６ｍｓに設定する。従って、ステップＡ１１において、８ｍｓカウンタの値が「２」の場合に（「ＹＥＳ」）ステップＡ８に移行するようにしている。即ち、８ｍｓの第２周期の冒頭ではサーボ処理の実行後にＰＬＣ処理タスク２５は実行されず、ロボット管理タスク群２４が引き続き実行される。
【００４０】
次に、図１（ｃ）のケースでは、ＰＬＣ処理タスク２５の実行時間が６ｍｓ＜Ｔ≦９ｍｓであり、実行時間比率を１：３：４以内にするには、ロボット管理タスク群２４の実行時間は１２ｍｓ＜ＴR≦１５ｍｓの範囲として、制御周期を２４ｍｓに設定する。従って、ステップＡ１３において、８ｍｓカウンタの値が「３」の場合に（「ＹＥＳ」）ステップＡ８に移行するようにしている。即ち、８ｍｓの第３周期の冒頭ではサーボ処理の実行後にＰＬＣ処理タスク２５は実行されず、ロボット管理タスク群２４が引き続き実行される。但し、第２周期の冒頭では、図２のフローではステップＡ２で実行中（「ＹＥＳ」）として処理される。
【００４１】
そして、図１（ｄ）のケースでは、ＰＬＣ処理タスク２５の実行時間が９ｍｓ＜Ｔ≦１２ｍｓであるから、ロボット管理タスク群２４の実行時間は１６ｍｓ＜ＴR≦１９ｍｓの範囲として、制御周期を３２ｍｓに設定する。従って、ステップＡ１５において、８ｍｓカウンタの値が「４」の場合に（「ＹＥＳ」）ステップＡ８に移行するようにしている。
即ち、ＰＬＣ処理タスク２５は、従来のＰＬＣ１５に使用されているプログラムと同様の言語形式を採用したシーケンシャルな一纏まりのプログラムとして記述されているため、その実行時間は、各ユーザのアプリケーションの形態に応じて異なる。従って、実行管理タスク３４が以上のようにタスク管理を実行すれば、ＰＬＣ処理タスク２５の実行時間が様々に異なる場合でも、サーボ処理：ＰＬＣ処理タスク：ロボット管理タスク群の実行時間比率が一定の比率１：３：４以下となるように設定される。
【００４２】
また、一例として、仮想ターゲットとしての設備サイクル（一連の加工処理の実行周期）が１０秒であるとすると、上記実行時間比率が略一定となっているかどうかを判定するための基準時間を、その１／１００である１００ｍｓとする。その場合、本実施例の処理ケースでは、何れの場合も９６ｍｓ以内の実行時間比率は１：３：４以下となるように設定されるので、基準時間内の比率が適切に維持されている。
【００４３】
以上のように本実施例によれば、設備制御装置２１にマルチタスクＯＳ２３を搭載すると共に、そのＯＳ２３上で動作するシステムタスク群２６を予め搭載しておき、当該タスク群２６を構成する実行管理タスク３４が、ユーザプログラムであるロボット管理タスク群２４，ＰＬＣ処理タスク２５を実行管理して動作させることで、コンベア２，ロボット３，加工機４などを統括的に制御するようにした。
【００４４】
そして、実行管理タスク３４は、ユーザプログラムを周期的に実行させるように管理して、ＰＬＣ処理タスク２５における一連の処理が連続的に実行される時間を検出し、ＰＬＣ処理タスク２５とロボット管理タスク群２４との実行時間比率が、前記実行周期内において、ＰＬＣ処理タスク２５の実行時間比率を最大で「３」とする一定の割合１：３：４以下となるように制御する。
【００４５】
従って、各制御対象機器を動作させて本来の処理動作を随時進めながら、その動作状態を監視して安全管理を図ることができる。そして、斯様なソフトウエア構成を採用すれば、ユーザは、ユーザプログラムを作成する際に、ロボット管理タスク群２４とＰＬＣ処理タスク２５との実行優先順位をどのように設定するかについては意識する必要がなくなり、プログラムの作成をより簡単に行うことができる。また、ＰＬＣ本来の機能を取り込み、複数の制御対象機器を制御する装置が１つに統合されることで、コストを低下させることができると共に、１つ以上の工業用ロボットを含む複数の制御対象機器によって構成されるシステムの汎用性をより高めることができる。
【００４６】
また、実行管理タスク３４は、実行周期を所定の単位周期（８ｍｓ）に基づいて設定し、ＰＬＣ処理タスク２５の実行時間が長いため、その単位周期内では、ロボット管理タスク群２４の実行時間に対するＰＬＣ処理タスク２５の実行時間比率を一定の割合以下に実現できない場合は、実行周期を単位周期の倍数（１６ｍｓ，２４ｍｓ，３２ｍｓ，４０ｍｓ，４８ｍｓ）で設定するように延長することで、前記実行時間比率を一定の割合以下に設定することが可能となる。
【００４７】
また、実行管理タスク３４は、ＰＬＣ処理タスク２５の実行時間が上限を超えた場合は当該タスクの起動を停止させるので、ユーザのプログラミングにミスがあるか、プログラムの設計仕様自体に誤りがあるような場合に、安全を図ると共にユーザにプログラムの内容を再検討させることができる。
更に、８ｍｓの単位周期冒頭においては工業用ロボットを動作させるためのサーボ処理が優先的に実行され、実行管理タスク３４は、そのサーボ処理が実行された後にＰＬＣ処理タスク２５を実行させ、ＰＬＣ処理タスク２５の実行後にロボット管理タスク群２４を実行させる。従って、実行周期が単位周期の倍数で延長された場合であっても、工業用ロボット３のサーボ処理は単位周期毎に確実に実行されるので、ロボット３の動作が途中で滞るようなことはなく、単位周期毎に確実に動作を進めることができる。
【００４８】
尚、本発明の設備制御装置２１に類似する先行技術として、例えば特許第３４９３８１３号公報（特開平８−３２０７１２号公報）がある。ここで、本発明と上記先行技術との比較を行っておく。
上記公報に開示されている技術では、一見、本発明と同様に、ロボットとその周辺装置とを１つの制御装置３０によって統括的に制御している構成のよう見えるが、図１に示すように制御装置３０の実態は３つのコントローラ３１〜３３によって構成されている。そして、上記公報では、マルチタスクＯＳを用いて制御を行うことを想定すると、そのＯＳの仕様によって制御形態が限定されてしまうことを問題としており、マルチタスクＯＳを用いることなく各制御対象機器を制御することを目的としている。しかしながら、マルチタスクＯＳを用いない場合には、そのＯＳが行なうべき機能の全てをユーザがユーザプログラムでカバーする必要が生じる。従って、ユーザの負担が極めて重くなることが想定され、本発明の技術課題を解決するのに適切な構成であるとは言えない。
【００４９】
また、上記公報では、１サイクルの間に、ロボット制御の必須処理、周辺機器制御の処理、ロボット制御の通常処理を行なう構成となっているが（図４参照）、周辺機器制御の処理時間は安定していることが前提である。従って、本発明のように、統括制御タスクの実行時間が変動する場合でも、各タスクの実行時間比率を一定の割合以下に制御することは全く想定されていない。以上のように、本発明が上記先行技術と相違する構成であることは明らかである。
【００５０】
本発明は上記し且つ図面に記載した実施例にのみ限定されるものではなく、以下のような変形または拡張が可能である。
工業用ロボットを制御するためのタスクが１つで十分であれば、単一のロボット管理タスクを用意すれば良い。
実行時間比率の最大は１:３:４に限ることなく、個別のアプリケーションに応じて適切となる比率を適宜設定すれば良い。
【００５１】
制御対象機器は、生産ライン１に限ることなく、少なくとも１つの工業用ロボットを含むものであれば、個別の応用形態に応じて適宜選択を行って実施すれば良い。従って、それに応じて動作タスク群や設備管理タスク群によって実行される処理も異なることは勿論である。
システムタスク群は、少なくとも実行管理タスクを備えていれば良く、その他の機能については、制御装置の個別のアプリケーションにおいて、専用に必要となることが想定される処理機能を適宜選択したタスクを用意すれば良い。
【図面の簡単な説明】
【００５２】
【図１】本発明の一実施例であり、（ａ）〜（ｄ）は、図２のステップＡ７，Ａ１０，Ａ１２，Ａ１４に分岐して処理を実行した場合について、各タスクの実行状態を示すタイミングチャート
【図２】実行管理タスクによって実行されるタスク管理制御の内容を示すフローチャート
【図３】ＰＬＣ処理タスクによる処理内容を示すフローチャート
【図４】タイマ割り込みの発生状態を示すタイミングチャート
【図５】図７に示す生産ラインと同様の構成を制御対象機器として、それらを本発明の制御装置により制御する場合の制御系の構成を示す機能ブロック図
【図６】制御装置の概略構成をソフトウエア的な構成を中心として概念的に示す図
【図７】コンベアによって搬送されるワークを、工業用ロボットを用いて加工する生産ラインの一構成例を示す斜視図
【図８】従来技術を示す図５相当図
【符号の説明】
【００５３】
図面中、２はコンベア（制御対象機器）、３はロボット（工業用ロボット，制御対象機器）、４は加工機（制御対象機器）、２１は設備制御装置、２２はハードウエア、２３はマルチタスクＯＳ、２４はロボット管理タスク群、２５はＰＬＣ処理タスク（統括制御タスク）、２６はシステムタスク群、３４は実行管理タスク（コンピュータプログラム）を示す。
【図１】
2006048231.tif 000003
【図２】
2006048231.tif 000004
【図３】
2006048231.tif 000005
【図４】
2006048231.tif 000006
【図５】
2006048231.tif 000007
【図６】
2006048231.tif 000008
【図７】
2006048231.tif 000009
【図８】
2006048231.tif 000010