説明

制御装置及びコンピュータプログラム

【課題】 1つ以上の工業用ロボットを含む複数の制御対象機器を統括的に制御するシステムを構築可能とする制御装置を提供する。
【解決手段】 設備制御装置にマルチタスクOSを搭載すると共に、そのOS上で動作するシステムタスク群を予め搭載しておき、当該タスク群を構成する実行管理タスクが、ユーザプログラムであるロボット管理タスク群,PLC処理タスクを実行管理して動作させることで、コンベア,ロボット,加工機などを統括的に制御する。そして、実行管理タスクは、ユーザプログラムを周期的に実行させるように管理して、PLC処理タスクにおける一連の処理が連続的に実行される時間を検出し、ロボット管理タスク群の実行時間に対するPLC処理タスクの実行時間比率が、実行周期内において一定の割合以下となるように制御する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、1つ以上の工業用ロボットを含む複数の制御対象機器を統括的に制御するための制御装置、及びその制御装置に搭載されるシステムタスク群としてのコンピュータプログラムに関する。
【背景技術】
【0002】
図7は、コンベアによって搬送されるワークを工業用ロボットを用いて加工する生産ライン1の一構成例を示す斜視図である。直線状のコンベア2は、行き用のコンベア2F,戻り用のコンベア2Bの2本からなり、行き用のコンベア2Fの途中部位にロボット3及び加工機4が配置されている。そして、ロボット3の僅かに上流には、パレット検出用のセンサ6が配置されている。また、加工機4の下流側隣には、ワーク供給装置7が配置されている。
【0003】
上記構成における加工処理の流れを概略的に説明する。
(0)作業者によって生産ライン1の起動ボタンが操作されると、初期化処理として、各部に配置されている図示しないセンサの入力信号が参照され、安全状態がチェックされると共に、各ユニットにおけるアクチュエータなどの原位置が確認される。それらがOKであれば、電源やエアなどの供給が開始されてコンベア2が起動される。すると、コンベア2Fの上流側より、パレット8に載置されたワーク9が前工程より供給される。
(1)パレット8が、コンベア2F上を搬送され所定位置に到達したことがセンサ6により検出される。
(2)すると、ロボット3のハンドがワーク9上に移動して当該ワーク9を把持し、上昇させる。
(3)ロボット3は加工機4に問合せを行い、「投入OK」の応答があれば、把持したワーク9を加工機4の投入位置に移動させ、一旦ハンド切替えを行うと加工機4による加工済みのワーク9を把持し、再びハンド切替えを行って未加工のワーク9を投入位置に投入する。
(4)続いて、ロボット3は、加工済みのワーク9をコンベア2Fの下流側に移動させ、パレット8に載置する。尚、パレット8は、コンベア2Fの上流側と下流側との間を、図示しないリフタを介してコンベア2Fの下方側を移動して移送されるようになっている。
(5)次に、ロボット3は、ワーク供給装置7にハンドを移動させて当該装置7より供給される別のワーク10をチャックすると、(4)のパレット位置まで移動させ、加工済みのワーク9にワーク10を組み付ける。
(6)そして、コンベア2F上のワークストッパを解除して、組付け後のワーク11が載置されたパレット8を下流側に搬出する。
その後、下流側においていつかの工程が実施された後、パレット8は戻り用のコンベア2Bに乗せ替えられて上流側に搬送される。
【0004】
上記のような構成においては、ロボット3の他に、コンベア2や加工機4等も同時に制御する必要がある。また、各設備に配置されているセンサ6などによって出力される信号の状態も監視しながら、必要に応じてロボット3やコンベア2などを停止させるなどの制御も必要となる。
【0005】
図8は、従来、上記のような生産ライン1について制御を行う制御系の構成を概略的に示すものである。即ち、ロボット3は専用のロボットコントローラ12によって制御され、コンベア2についてはモーションコントローラ13によって制御される。また、加工機4は加工機用制御装置14によって制御される。
そして、これらのコントローラ12〜14は、プログラマブルロジックコントローラ(PLC)15によって統括的に制御されるようになっている。また、PLC15には、加工状態などを画像で監視するためのカメラ16及びそのカメラ16を制御する視覚コントローラ17や、各種のセンサ6などによって入力される信号及びバルブ等へ出力される信号なども与えられている。また、図8と同様の制御系の構成は、例えば特許文献1に開示されている。
【0006】
近年、製品コスト低減のため、設備コスト低減が強く望まれており、部品費低減や設計・調整工数の低減が必須となっている。コスト低減のためには、ハード的アプローチとして使用部品点数の削減(例えばPLC、視覚装置、操作盤の統合など)が有効である。また、ソフト的アプローチとしては、ソフトの汎用化・標準化(例えば、言語の統一など)が有効である。更に、システム的アプローチとしては、設備内で最も汎用的な装置であるロボットに機能を集約して設備をシンプル化することが有効であろう。
【0007】
その1つのアプローチとして、特許文献1に開示されているように、PLC機能の一部である通信管理機能をロボットコントローラに持たせることで、イニシャルコスト低減を実現する手段がある。しかし、より理想的な構成としては、PLC本来の機能である設備制御機能をロボットコントローラに取り込むことが望ましい。
【特許文献1】特開2001−92517号公報,図4参照
【発明の開示】
【発明が解決しようとする課題】
【0008】
ロボットコントローラにPLCの設備管理・制御機能を搭載することを想定すると、ロボットの動作と設備管理・制御動作とを並列的に実行させる必要がある。そして、近年、ロボットに求められる機能は多様化しており、並列的に実行しなければならない処理が増加している。そのため、ロボットコントローラにはマルチタスクOS(オペレーティングシステム)が搭載されているものが増加しており、複数の処理タスクを並列に実行可能な環境が整ってきている。
【0009】
そして、上述したように制御機能の集約を図るためには、ロボットコントローラに搭載されているマルチタスクOS上において、ロボット動作用のタスクと設備管理・制御用のタスクとを実行させるように構成することが最適であると考える。
ここで、設備管理・制御用タスクの内容を大別すると、一般に、以下の2つに分けることができる。1つは、設備全体が一元管理される自動モードにおいて、シーケンシャルに処理される設備動作タスク、もう1つは、設備のモードが上記自動モード、また、設備の各部を個別的に動作させる各個モードの如何にかかわらず、常時安全監視や異常処理、各動作タスクの起動条件の監視などを行う設備管理タスクである。
【0010】
このような2種類のタスクを並存させる場合、必要時にのみ実行させれば良い設備動作タスクと、常時実行させなければならない設備管理タスクとをどのように調和させてシステムを成立させるかが重要となる。尚、前提条件として、設備管理タスクは、設備動作タスクよりも優先的に実行させる必要がある。尚、設備動作タスクをロボットコントローラに組み込むとすれば、ロボットの管理タスクも同じレベルのタスクとしてこれらの一部に含まれることになる。
【0011】
通常、マルチタスク環境下では、優先的に実行させたいタスクにはその生成時に高い優先度を設定する。すると、生成された各タスクは、マルチタスクOSによって自動的に優先度順に実行されることになる。ここで問題となるのは、システムタスク以外のタスクを生成させるのは、コントローラを供給するメーカではなく、そのコントローラを使用するユーザが作成したプログラムによることである。即ち、ユーザプログラムがどのような処理になるのか、また、どのくらいの量になるのかはユーザによってまちまちである。
【0012】
そのため、単純に設備管理タスクの優先度を高く設定するだけでは、その設備管理タスクの処理時間(プログラム量)が増大すると、設備動作タスクの処理時間が圧迫され、CPUによる処理時間が十分に与えられず、システムとして成立しなくなる危険性が高い。一方、これらのタスクの優先度を同じレベルに設定すると、例えば設備動作タスクの処理時間が増大すれば設備管理タスクの処理時間が圧迫されるため、同様の危険性がある。
【0013】
本発明は上記事情に鑑みてなされたものであり、その目的は、1つ以上の工業用ロボットを含む複数の制御対象機器を統括的に制御するシステムを構築可能とする制御装置、及びその制御装置に搭載され、前記制御を適切に実行可能とするためのコンピュータプログラムを提供することにある。
【課題を解決するための手段】
【0014】
請求項1記載の制御装置によれば、マルチタスクOSを搭載し、そのOS上でユーザによって作成されるユーザプログラム(アプリケーションプログラム)を動作させることで、1つ以上の工業用ロボットを含む複数の制御対象機器を統括的に制御する。そして、マルチタスクOSとユーザプログラムとの間に位置するようなシステムタスク群を用意する。このシステムタスク群は、制御装置をユーザに供給するメーカによって作成され、予め搭載された状態で製品としての制御装置が出荷される。
【0015】
そして、そのシステムタスク群には、少なくとも、ユーザプログラムを周期的に実行させるように管理して、統括制御タスクにおける一連の処理が連続的に実行される時間を検出し、前記ロボット管理タスクの実行時間に対する前記統括制御タスクの実行時間比率が、前記実行周期内において予め定めた一定の割合以下となるように制御する実行管理タスクを用意する。
【0016】
即ち、ユーザによって作成される統括制御タスクの実行時間が様々に異なる場合でも、実行管理タスクにより、統括制御タスクとロボット管理タスクとの実行時間比率は周期的に一定の割合以下となるように管理される。従って、各制御対象機器を動作させて本来の処理動作を随時進めながら、その動作状態を監視して安全管理を図ることができる。そして、斯様なソフトウエア構成を採用すれば、ユーザは、ユーザプログラムを作成する際に、ロボット管理タスクと統括制御タスクとの優先順位をどのように設定するかについては意識する必要がなくなり、プログラムの作成をより簡単に行うことができる。また、PLC本来の機能を取り込み、複数の制御対象機器を制御する装置が1つに統合されることで、コストを低下させることができると共に、1つ以上の工業用ロボットを含む複数の制御対象機器によって構成されるシステムの汎用性をより高めることができる。
【0017】
請求項2記載の制御装置によれば、実行管理タスクは、実行周期を所定の単位周期に基づいて設定する。そして、単位周期内では、統括制御タスクとロボット管理タスクとの実行時間比率を一定の割合以下に実現できない場合は、実行周期を単位周期の倍数で設定するように延長する。従って、ユーザによってプログラミングされた統括制御タスクの実際の実行時間が長い場合でも、その長さに応じて、実行時間比率が一定の割合以下となるように実行周期を延長することができる。
【0018】
請求項3記載の制御装置によれば、実行管理タスクは、統括制御タスクの実行時間が上限を超えた場合は当該タスクの起動を停止させる。即ち、統括制御タスクの実行時間が余りにも長い場合は、ユーザのプログラミングにミスがあるか、プログラムの設計仕様自体に誤りがある可能性が高い。従って、そのようなケースでは、ユーザプログラムの動作を停止させることで、ユーザにプログラムの内容を再検討させることが可能となる。
【0019】
請求項4記載の制御装置によれば、単位周期の冒頭においては工業用ロボットを動作させるためのサーボ処理が優先的に実行され、実行管理タスクは、そのサーボ処理が実行された後に統括制御タスクを実行させ、統括制御タスクの実行後にロボット管理タスクを実行させる。即ち、実行周期が単位周期の倍数で延長された場合であっても、工業用ロボットのサーボ処理は単位周期毎に確実に実行される。従って、ロボットの動作が途中で滞るようなことはなく、単位周期毎に確実に動作を進めることができる。
【発明を実施するための最良の形態】
【0020】
以下、本発明の一実施例について図1乃至図6を参照して説明する。尚、図7及び図8と同一部分には同一符号を付して説明を省略し、以下異なる部分についてのみ説明する。図5は、図8相当図であり、図7に示す生産ライン1と同様の構成を制御対象機器として、それらを本発明の設備制御装置21によって制御する場合の構成を機能ブロック図で示すものである。即ち、設備制御装置21は、コントローラ12,13,17及びPLC15に代わり、生産ライン1を構成するコンベア2,ロボット3,カメラ16などを制御対象機器として統括的に制御するコントローラである。
【0021】
また、図6は、設備制御装置21の概略構成をソフトウエア的な構成を中心として概念的に示すものである。設備制御装置21は、具体的には図示しないが、CPUやメモリ,ハードディスク,I/Oなどからなるハードウエア22を備えて構成されている。また、ソフトウエア的な構成として、マルチタスクOS(オペレーティングシステム)23を備えている。マルチタスクOS23は、ハードウエア22のCPUによって実行され、ユーザによって作成されるユーザプログラムとハードウエア22との間を仲介するように、設備制御装置21の資源管理を行うものである。
【0022】
そして、設備制御装置21を製品として出荷するメーカは、マルチタスクOS23上で動作するアプリケーションプログラムの1つとしてシステムタスク群26を作成し、そのシステムタスク群26を予め搭載した状態で設備制御装置21をユーザに供給するようになっている。システムタスク群26は、ユーザが設備制御装置21上でユーザプログラムを動作させ、様々な制御対象機器を制御する場合において、共通する基本的な制御内容(例えば、設備制御装置21のマンマシンインターフェイス部分や、外部機器との通信処理に関するものなど)を実行して処理させるために搭載される。
【0023】
ユーザは、ユーザプログラムとして、ロボット管理タスク群24,PLC処理タスク(統括制御タスク)25を記述作成し、それらを設備制御装置21のハードディスクなどにインストールすることで、マルチタスクOS23並びにシステムタスク群26上において、ユーザプログラムをハードウエア22のCPUに実行させるようになっている。尚、コンピュータプログラムである各タスクに基づく処理を実際に実行する主体は、ハードウエア22のCPUであるが、何れのタスク群又はタスクが動作しているのかを明確にする都合上、以下においては各タスクが処理の主体であるように記述を行なう。
【0024】
ロボット管理タスク群24は、ロボット3を制御するための複数のタスクで構成されている。そして、PLC処理タスク25は、従来のPLC15としての機能をソフトウエア的に実現すると共に、ロボット3以外の制御対象機器の動作を管理する機能を有している。即ち、コンベア2を制御するための搬送管理部28,加工機4を制御装置14を介して制御するための加工機管理部29,視覚コントローラ17に代わりカメラ16を制御する視覚管理部30などを備えている。
【0025】
また、PLC処理タスク25は、設備監視処理部32,設備全体制御処理部33なども備えている。設備監視処理部32は、カメラ16の画像信号をパターン認識したり、各種センサ6などによって入力されるセンサ信号を参照することで、各制御対象機器の動作状態などを監視している。設備全体制御処理部33は、ロボット管理タスク群24並びにその他の管理部28〜30の実行を制御する。そして、前述したように生産ライン1に人が近付いた場合や、或いは設備の一部が破損する可能性がある状況が発生した場合には、設備監視処理部32がその状態を検知し、設備全体制御処理部33が生産ライン1の動作を安全側に移行させるように制御する。ここで、「安全側に移行させるように制御する」とは、生産ライン1の動作の一部若しくは全てを停止させたり、或いは、動作速度を低減させたりすることをいう。
【0026】
そして、PLC処理タスク25は、ラダー言語やSFC(Sequential Function Chart),ST(Structured Text)言語など、従来のPLC15などをプログラミングする際に使用されてきた言語、又はそれらの組み合わせによってシーケンシャルなプログラムとして記述されている。また、PLC処理タスク25を実行させるには、使用言語に対応してマルチタスクOS23上で動作するインタプリタを介して動作するようになっている。
【0027】
次に、本実施例の作用について図1乃至図4も参照して説明する。図2は、設備制御装置21に搭載されたシステムタスク群26の一部をなす、実行管理タスク34によって実行されるタスク実行管理制御の内容を示すフローチャートである。実行管理タスク34はこのフローチャートに基づいて動作することで、ユーザプログラムとして作成されたPLC処理タスク25及びロボット管理タスク群24の実行を管理する。
尚、図2の制御を実行するための前提として、ハードウエア22は、図4に示すように8ms周期でタイマ割り込みを発生させるようになっており、実行管理タスク34は、そのタイマ割込みが発生する毎に実行されるようになっている。
【0028】
また、図3は、PLC処理タスク25による処理内容を示すフローチャートである。先ず、この図3について説明する。PLC処理タスク25は、後述するように実行管理タスク34によってセットされるPLC停止フラグがセット(ON)されているか否かを判断し(ステップB1)、セットされていれば(「YES」)そのまま処理を終了し、セットされていなければ(「NO」)、やはり実行管理タスク34によってPLC処理タスク25の起動が許可されるまで待機する(ステップB2)。
【0029】
起動が許可されると(ステップB2,「YES」)、PLC処理タスク25は、開始処理としてPLC処理の開始時刻を記憶する(ステップB3)。それから、I/O入力処理(ステップB3),命令実行処理(ステップB4),I/O出力処理(ステップB5)を順次実行する。I/O入力処理は、設備監視を行うために必要な入力情報をハードウエア22を介して得るための処理であり、命令実行処理は、前記入力情報に基づいて、各管理部28〜30が夫々の制御対象機器に命令を実行させる処理である。そして、I/O出力処理は、命令実行処理の結果、管理部28〜30に対して必要な指令をハードウエア22を介して出力するなどの処理である。そしてこれらステップB3〜B5における処理は、PLC処理の1スキャン(入力・実行・出力)に対応する。
【0030】
続いて、PLC処理タスク25は、終了処理として、PLC処理の終了時刻である現在時刻よりステップB3で記憶した開始時刻を減算し、PLC処理の「実行時間」を得る(ステップB7)。そして、その実行時間が、限界時間を超えているか否かを判断する(ステップB8)。限界時間を超えていなければ(「NO」)前記実行時間をソフトPLC処理実行時間としてセットし(ステップB9)、ステップB1に戻る。
【0031】
一方、ステップB8において限界時間を超えている場合は(「YES」)、PLC処理タスク25のプログラム自体が異常か、若しくはハードウエア的に異常が発生していると推定されるので、タイムオーバーとして異常処理を行った後(ステップB10)、ステップB9に移行する。
【0032】
次に、図2について説明する。実行管理タスク34は、上述したように、8ms周期の割り込みが発生すると図2のフローチャートの実行を開始し(スタート)、先ず、ロボット3の軌道生成処理(サーボ処理)を行なう(ステップA1)。ここで、「軌道生成処理」とは、例えばロボット3のアームをA点からB点まで移動させる場合に、それらA−B点間の移動軌跡を描かせるために決定された座標位置に応じて、アームを移動させる処理である。そして、座標位置の計算は、ロボット管理タスク群24の一部であるロボット管理タスク27によって行なわれる。
【0033】
続いて、実行管理タスク34は、図3に示すフローチャートのPLC処理タスク25が実行中(動作中)であるか否かを判断し(ステップA2)、実行中であれば(「YES」)、その時点におけるPLC処理タスク25の動作時間を取得する(ステップA23)。即ち、現在時刻と、図3のフローのステップB3で記憶された開始時刻との差を動作時間とする。そして、その動作時間が限界時間(後述するように、例えば18msに設定される)を超えていれば(ステップA24,「YES」)、タイムオーバーの異常処理を行なうと共に(ステップA25)PLC停止フラグをセット(ON)して(ステップA26)処理を終了する。一方、ステップA24においてPLC処理タスク25の動作時間が限界時間以下であれば(「NO」)そのまま処理を終了する。
【0034】
また、ステップA2において、PLC処理タスク25が動作中でなければ(「NO」)、実行管理タスク34は、PLC停止フラグがセットされているか否かを判断する(ステップA3)。セットされていれば(「YES」)そのまま処理を終了し、セットされていなければ(「NO」)8ms割り込みの発生回数をカウントするカウンタ(以下、8msカウンタと称す)をインクリメントとする(ステップA4)。そして、ステップB7で得られたPLC処理タスク25の実行時間Tを取得すると(ステップA5)、その実行時間Tが、3msで区切られる何れの区間に属するかを判断する(ステップA6)。実行時間Tが属する区間に応じて、ステップA6より、以下のように分岐する。
区間 ステップ
0ms<T≦3ms A7
3ms<T≦6ms A10
6ms<T≦9ms A12
9ms<T≦12ms A14
12ms<T≦15ms A16
15ms<T≦18ms A18
18ms<T A20
【0035】
実行時間Tが3ms以下の場合(ステップA7)、実行管理タスク34は、PLC処理タスク25の起動を許可すると(ステップA8)8msカウンタをクリアして(ステップA9)処理を終了する。実行時間Tが3ms<T≦6msの場合(ステップA10)、実行管理タスク34は、8msカウンタの値が「2」の場合に(ステップA11,「YES」)ステップA8に移行し、8msカウンタの値が「2」でなれければ(「NO」)そのまま処理を終了する。
【0036】
そして、他のステップA12,A14,A16,A18のケースでは、夫々、8msカウンタの値が「3」,「4」,「5」,「6」の場合に(ステップA11,A13,A15,A17,A19,「YES」)ステップA8に移行し、夫々の値でなければ(「NO」)そのまま処理を終了する。
また、ステップA20のケースでは、実行時間Tが18msを超えた場合であり、ステップA25,A26と同様に、タイムオーバーの異常処理を行なうと共に(ステップA21)PLC停止フラグをセット(ON)して(ステップA22)処理を終了する。
【0037】
ここで、図1を参照する。図1(a)〜(d)は、図2においてステップA7,A10,A12,A14に分岐して処理を実行した場合に、各タスクの実行状態を示すタイミングチャートである。即ち、何れの処理ケースも8ms割込みの周期を単位としており、その割り込みが発生した冒頭では、何れもロボット3のサーボ処理(軌道生成処理)が実行される。当該サーボ処理の実行時間は1ms以内に規定されている(本実施例では1ms以内であるが、これに限定されるものではない)。そして、図2のフローに従って処理を行なう結果、サーボ処理:PLC処理タスク:ロボット管理タスク群の実行時間比率は、最大で1:3:4となるように設定される。
【0038】
例えば、図1(a)のケースでは、PLC処理タスク25の実行時間Tが0ms<T≦3msであり、その場合、ロボット管理タスク群24の実行時間TRは4ms<TR≦7msの範囲となり、3つの処理を繰り返す制御周期8msに対して、実行時間比率を1:3:4以内に維持することが可能となる。
即ち、サーボ処理の実行時間をTSとすれば、ロボット管理タスク群24の実行時間TRは、TR=8−TS−T(ms)として決定され、例えば、PLC処理タスク25の実行時間Tが3msであれば実行時間TRは4ms、実行時間Tが2msであれば実行時間TRは5msとなる。つまり、制御周期8msに対して実行時間TSは最大で1msであるから、残りの7msにおける実行時間比率T:TRは、最大で(この場合、TRに対してTが最大となる比率)3:4となる。
【0039】
次に、図1(b)のケースでは、PLC処理タスク25の実行時間が3ms<T≦6msであり、実行時間比率を1:3:4以内にする(即ち、実行時間Tの比率を「3」以下にする)には、ロボット管理タスク群24の実行時間は8ms<TR≦11msの範囲として、制御周期を16msに設定する。従って、ステップA11において、8msカウンタの値が「2」の場合に(「YES」)ステップA8に移行するようにしている。即ち、8msの第2周期の冒頭ではサーボ処理の実行後にPLC処理タスク25は実行されず、ロボット管理タスク群24が引き続き実行される。
【0040】
次に、図1(c)のケースでは、PLC処理タスク25の実行時間が6ms<T≦9msであり、実行時間比率を1:3:4以内にするには、ロボット管理タスク群24の実行時間は12ms<TR≦15msの範囲として、制御周期を24msに設定する。従って、ステップA13において、8msカウンタの値が「3」の場合に(「YES」)ステップA8に移行するようにしている。即ち、8msの第3周期の冒頭ではサーボ処理の実行後にPLC処理タスク25は実行されず、ロボット管理タスク群24が引き続き実行される。但し、第2周期の冒頭では、図2のフローではステップA2で実行中(「YES」)として処理される。
【0041】
そして、図1(d)のケースでは、PLC処理タスク25の実行時間が9ms<T≦12msであるから、ロボット管理タスク群24の実行時間は16ms<TR≦19msの範囲として、制御周期を32msに設定する。従って、ステップA15において、8msカウンタの値が「4」の場合に(「YES」)ステップA8に移行するようにしている。
即ち、PLC処理タスク25は、従来のPLC15に使用されているプログラムと同様の言語形式を採用したシーケンシャルな一纏まりのプログラムとして記述されているため、その実行時間は、各ユーザのアプリケーションの形態に応じて異なる。従って、実行管理タスク34が以上のようにタスク管理を実行すれば、PLC処理タスク25の実行時間が様々に異なる場合でも、サーボ処理:PLC処理タスク:ロボット管理タスク群の実行時間比率が一定の比率1:3:4以下となるように設定される。
【0042】
また、一例として、仮想ターゲットとしての設備サイクル(一連の加工処理の実行周期)が10秒であるとすると、上記実行時間比率が略一定となっているかどうかを判定するための基準時間を、その1/100である100msとする。その場合、本実施例の処理ケースでは、何れの場合も96ms以内の実行時間比率は1:3:4以下となるように設定されるので、基準時間内の比率が適切に維持されている。
【0043】
以上のように本実施例によれば、設備制御装置21にマルチタスクOS23を搭載すると共に、そのOS23上で動作するシステムタスク群26を予め搭載しておき、当該タスク群26を構成する実行管理タスク34が、ユーザプログラムであるロボット管理タスク群24,PLC処理タスク25を実行管理して動作させることで、コンベア2,ロボット3,加工機4などを統括的に制御するようにした。
【0044】
そして、実行管理タスク34は、ユーザプログラムを周期的に実行させるように管理して、PLC処理タスク25における一連の処理が連続的に実行される時間を検出し、PLC処理タスク25とロボット管理タスク群24との実行時間比率が、前記実行周期内において、PLC処理タスク25の実行時間比率を最大で「3」とする一定の割合1:3:4以下となるように制御する。
【0045】
従って、各制御対象機器を動作させて本来の処理動作を随時進めながら、その動作状態を監視して安全管理を図ることができる。そして、斯様なソフトウエア構成を採用すれば、ユーザは、ユーザプログラムを作成する際に、ロボット管理タスク群24とPLC処理タスク25との実行優先順位をどのように設定するかについては意識する必要がなくなり、プログラムの作成をより簡単に行うことができる。また、PLC本来の機能を取り込み、複数の制御対象機器を制御する装置が1つに統合されることで、コストを低下させることができると共に、1つ以上の工業用ロボットを含む複数の制御対象機器によって構成されるシステムの汎用性をより高めることができる。
【0046】
また、実行管理タスク34は、実行周期を所定の単位周期(8ms)に基づいて設定し、PLC処理タスク25の実行時間が長いため、その単位周期内では、ロボット管理タスク群24の実行時間に対するPLC処理タスク25の実行時間比率を一定の割合以下に実現できない場合は、実行周期を単位周期の倍数(16ms,24ms,32ms,40ms,48ms)で設定するように延長することで、前記実行時間比率を一定の割合以下に設定することが可能となる。
【0047】
また、実行管理タスク34は、PLC処理タスク25の実行時間が上限を超えた場合は当該タスクの起動を停止させるので、ユーザのプログラミングにミスがあるか、プログラムの設計仕様自体に誤りがあるような場合に、安全を図ると共にユーザにプログラムの内容を再検討させることができる。
更に、8msの単位周期冒頭においては工業用ロボットを動作させるためのサーボ処理が優先的に実行され、実行管理タスク34は、そのサーボ処理が実行された後にPLC処理タスク25を実行させ、PLC処理タスク25の実行後にロボット管理タスク群24を実行させる。従って、実行周期が単位周期の倍数で延長された場合であっても、工業用ロボット3のサーボ処理は単位周期毎に確実に実行されるので、ロボット3の動作が途中で滞るようなことはなく、単位周期毎に確実に動作を進めることができる。
【0048】
尚、本発明の設備制御装置21に類似する先行技術として、例えば特許第3493813号公報(特開平8−320712号公報)がある。ここで、本発明と上記先行技術との比較を行っておく。
上記公報に開示されている技術では、一見、本発明と同様に、ロボットとその周辺装置とを1つの制御装置30によって統括的に制御している構成のよう見えるが、図1に示すように制御装置30の実態は3つのコントローラ31〜33によって構成されている。そして、上記公報では、マルチタスクOSを用いて制御を行うことを想定すると、そのOSの仕様によって制御形態が限定されてしまうことを問題としており、マルチタスクOSを用いることなく各制御対象機器を制御することを目的としている。しかしながら、マルチタスクOSを用いない場合には、そのOSが行なうべき機能の全てをユーザがユーザプログラムでカバーする必要が生じる。従って、ユーザの負担が極めて重くなることが想定され、本発明の技術課題を解決するのに適切な構成であるとは言えない。
【0049】
また、上記公報では、1サイクルの間に、ロボット制御の必須処理、周辺機器制御の処理、ロボット制御の通常処理を行なう構成となっているが(図4参照)、周辺機器制御の処理時間は安定していることが前提である。従って、本発明のように、統括制御タスクの実行時間が変動する場合でも、各タスクの実行時間比率を一定の割合以下に制御することは全く想定されていない。以上のように、本発明が上記先行技術と相違する構成であることは明らかである。
【0050】
本発明は上記し且つ図面に記載した実施例にのみ限定されるものではなく、以下のような変形または拡張が可能である。
工業用ロボットを制御するためのタスクが1つで十分であれば、単一のロボット管理タスクを用意すれば良い。
実行時間比率の最大は1:3:4に限ることなく、個別のアプリケーションに応じて適切となる比率を適宜設定すれば良い。
【0051】
制御対象機器は、生産ライン1に限ることなく、少なくとも1つの工業用ロボットを含むものであれば、個別の応用形態に応じて適宜選択を行って実施すれば良い。従って、それに応じて動作タスク群や設備管理タスク群によって実行される処理も異なることは勿論である。
システムタスク群は、少なくとも実行管理タスクを備えていれば良く、その他の機能については、制御装置の個別のアプリケーションにおいて、専用に必要となることが想定される処理機能を適宜選択したタスクを用意すれば良い。
【図面の簡単な説明】
【0052】
【図1】本発明の一実施例であり、(a)〜(d)は、図2のステップA7,A10,A12,A14に分岐して処理を実行した場合について、各タスクの実行状態を示すタイミングチャート
【図2】実行管理タスクによって実行されるタスク管理制御の内容を示すフローチャート
【図3】PLC処理タスクによる処理内容を示すフローチャート
【図4】タイマ割り込みの発生状態を示すタイミングチャート
【図5】図7に示す生産ラインと同様の構成を制御対象機器として、それらを本発明の制御装置により制御する場合の制御系の構成を示す機能ブロック図
【図6】制御装置の概略構成をソフトウエア的な構成を中心として概念的に示す図
【図7】コンベアによって搬送されるワークを、工業用ロボットを用いて加工する生産ラインの一構成例を示す斜視図
【図8】従来技術を示す図5相当図
【符号の説明】
【0053】
図面中、2はコンベア(制御対象機器)、3はロボット(工業用ロボット,制御対象機器)、4は加工機(制御対象機器)、21は設備制御装置、22はハードウエア、23はマルチタスクOS、24はロボット管理タスク群、25はPLC処理タスク(統括制御タスク)、26はシステムタスク群、34は実行管理タスク(コンピュータプログラム)を示す。


【特許請求の範囲】
【請求項1】
マルチタスクOSを搭載し、メーカによって作成されるシステムタスク群が前記マルチタスクOS上で動作し、ユーザによって作成されるユーザプログラムが前記システムタスク群上で動作することで、1つ以上の工業用ロボットを含む複数の制御対象機器を統括的に制御するように構成される制御装置において、
前記ユーザプログラムが、
前記工業用ロボットの動作を制御するためのロボット管理タスクと、
前記工業用ロボット以外の制御対象機器の動作を夫々制御すると共に、各制御対象機器の動作状態を監視することで異常を検知すると、その異常が検知された制御対象機器の動作を安全側に移行させるように制御する統括制御タスクとで構成される場合に、
前記システムタスク群は、前記ユーザプログラムを周期的に実行させるように管理すると共に、前記統括制御タスクにおける一連の処理が連続的に実行される時間を検出し、前記ロボット管理タスクの実行時間に対する前記統括制御タスクの実行時間比率が、前記実行周期内において予め定めた一定の割合以下となるように制御する実行管理タスクを有することを特徴とする制御装置。
【請求項2】
前記実行管理タスクは、前記実行周期を所定の単位周期に基づいて設定し、前記単位周期内では前記実行時間比率を前記一定の割合以下に実現できない場合は、前記実行周期を前記単位周期の倍数で設定するように延長することを特徴とする請求項1記載の制御装置。
【請求項3】
前記実行管理タスクは、前記統括制御タスクの実行時間が上限を超えた場合は、当該タスクの起動を禁止することを特徴とする請求項2記載の制御装置。
【請求項4】
前記単位周期の冒頭においては、前記工業用ロボットを実際に動作させるためのサーボ処理が優先的に実行され、
前記実行管理タスクは、前記サーボ処理が実行された後に前記統括制御タスクを実行させ、前記統括制御タスクが実行された後に前記ロボット管理タスクを実行させることを特徴とする請求項2又は3記載の制御装置。
【請求項5】
1つ以上の工業用ロボットを含む複数の制御対象機器を統括的に制御するように構成される制御装置に搭載されて前記制御装置を構成するコンピュータによりマルチタスクOS上で実行され、前記マルチタスクOSとユーザによって作成されるユーザプログラムとの中間に位置するシステムタスク群としてのコンピュータプログラムであって、
前記ユーザプログラムが、
前記工業用ロボットの動作を制御するためのロボット管理タスクと、
前記工業用ロボット以外の制御対象機器の動作を夫々制御すると共に、各制御対象機器の動作状態を監視することで異常を検知すると、その異常が検知された制御対象機器の動作を安全側に移行させるように制御する統括制御タスクとで構成される場合に、
前記ユーザプログラムを周期的に実行させるように管理すると共に、前記統括制御タスクにおける一連の処理が連続的に実行される時間を検出し、前記ロボット管理タスクの実行時間に対する前記統括制御タスクの実行時間比率が、前記実行周期内において予め定めた一定の割合以下となるように制御する機能を有していることを特徴とするコンピュータプログラム。
【請求項6】
前記実行周期を所定の単位周期に基づいて設定し、前記単位周期内では前記実行時間比率を前記一定の割合以下に実現できない場合は、前記実行周期を前記単位周期の倍数で設定するように延長させることを特徴とする請求項5記載のコンピュータプログラム。
【請求項7】
前記統括制御タスクの実行時間が上限を超えた場合は、当該タスクの起動を禁止させることを特徴とする請求項6記載のコンピュータプログラム。
【請求項8】
前記単位周期の冒頭においては、前記工業用ロボットを動作させるためのサーボ処理を優先的に実行させ、
前記サーボ処理を実行させた後に前記統括制御タスクを実行させ、前記統括制御タスクを実行させた後に前記ロボット管理タスクを実行させることを特徴とする請求項6又は7記載のコンピュータプログラム。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate