(57)【要約】【課題】  実機のセル設備制御装置を使用してシミュレーションする構成であって、センサからの出力をセル設備制御装置へ入力させる処理を容易に実行する。【解決手段】  本発明のシミュレーションシステム２０は、実機のセル設備制御装置３を使用しながら、ロボット制御用のプログラムをシミュレーションする構成において、各種のセンサをそれぞれセンサ用仮想物体として定義し、前記センサ用仮想物体と他の物体との衝突を検出する３Ｄオブジェクト衝突検出手段２９を備えると共に、前記センサ用仮想物体と他の物体との衝突を検出したときに、前記センサ用仮想物体に対応するセンサの出力をオンまたはオフに設定する仮想センサ管理手段２８を備えるように構成したものである。【選択図】  図３
2006092123.tif 000002
【特許請求の範囲】
【請求項１】
１つ以上の工業用ロボットを含む複数の制御対象機器と、これら複数の制御対象機器を統括的に制御するように構成された制御装置とを備えてなる生産設備をシミュレーションするシミュレーションシステムにおいて、
前記制御装置として実機を使用し、
前記複数の制御対象機器に設けられた各種のセンサをそれぞれセンサ用仮想物体として定義し、
前記センサ用仮想物体と他の仮想物体との衝突を検出する衝突検出手段と、
前記センサ用仮想物体と他の仮想物体との衝突を検出したときに、前記センサ用仮想物体に対応するセンサの出力をオンまたはオフに設定するセンサ出力設定手段とを備えたことを特徴とするシミュレーションシステム。
【請求項２】
前記衝突検出手段は、設定された１個のセンサ用仮想物体と、この１個のセンサ用仮想物体と衝突する可能性があるＮ個の他の仮想物体との衝突をそれぞれ検出するように構成されていることを特徴とする請求項１記載のシミュレーションシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、１つ以上の工業用ロボットを含む複数の制御対象機器と、これら複数の制御対象機器を統括的に制御するように構成された制御装置とを備えてなる生産設備をシミュレーションするシミュレーションシステムに関する。
【背景技術】
【０００２】
工業用ロボット等のプログラムを開発する場合、実機のロボットがまだ準備されていないことが多いことから、プログラムのデバッグは、最初は、コンピュータ（パソコン等）を使用してシミュレーションを実行することにより行っている。このようなシミュレーションを行う装置の一例として、特許文献１が知られている。この特許文献１に記載された構成においては、ロボット及び組み立て設備の各機器等を全て仮想機器として定義して、コンピュータ上でシミュレーションするようにしている。
【特許文献１】特開平１０−１４３２２１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、上記構成の場合、全ての機器を仮想機器として、コンピュータ上でシミュレーションする構成であるので、シミュレーションモデルと実モデルが近似していない場合、良いシミュレーション結果を得ることができなかった。また、組立設備（生産設備）において、設備全体を３Ｄオブジェクト化し、且つ、実モデルに近似させるには、時間と費用がかかるという問題点がある。更にまた、シミュレーションするときの動作プログラムを、実機と同じプログラム言語を使用して作成できない場合があり、シミュレーションにかかる時間と実機デバッグを短縮できる時間を比較すると、費用対効果の面で実用的でなかった。
【０００４】
実際、従来においては、工業用ロボットを含めた機器からなる組立設備を設置（作成）する場合、設計と調整のステップしかなく、シミュレーションはほとんど実施されていなかった。シミュレーションを行うと、設計とシミュレーションと調整の各ステップを順に実行することになるから、全体の工程が長くなる。従って、費用対効果の面で、シミュレーションを有益なものとするためには、シミュレーションを行わない従来構成に比べて、シミュレーションを行う方が、全体の作業時間が短くなる必要がある。
【０００５】
ところで、制御装置の制御タイミングの点や、実機と同じプログラム言語を使用できる点等で、実機を使う方が良い。そこで、本出願人は、工業用ロボットを制御するロボットコントローラだけは実機を使用して、シミュレーションを実行する構成を開発し、既に使用している。
上記構成のシミュレーションを実行すると、実機のロボットコントローラが使用されると共に、パソコンのディスプレイに３Ｄで工業用ロボット及び組立設備の各機器の動作が表示されることから、良好なシミュレーションを実行することができる。このため、プログラムの開発・デバッグが容易になる。ここで、上記シミュレーションを実行する場合、ロボットコントローラから出力される命令等の出力信号は、パソコン（シミュレータ）に入力されて順次処理されていき、３Ｄでロボット等の動作がシミュレーションされるようになっている。
【０００６】
これに対して、ロボットコントローラに入力される信号（例えば、設備に配設された各種のセンサから出力される信号）については、上記構成では、考慮しておらず、上記構成においては、ロボットコントローラの入力に関するシミュレーションを実行することはなかった。
一方、本発明者は、組立設備に配設された複数の機器を制御する機能（従来は、ＰＬＣが備えている機能）を、ロボットコントローラに組み込むようにした構成を開発しようとしている。
【０００７】
この開発段階の構成では、ロボットコントローラ、即ち、制御装置は、組立設備に配設された複数の制御対象機器（１つ以上の工業用ロボットを含む機器）を統括的に制御する機能を有している。そして、この構成では、ロボットコントローラに入力される信号（取り込まれる信号、例えば、設備に配設された各種のセンサから出力される信号）が多数になると共に、これらの信号の入力が重要になる。
【０００８】
このため、上記開発段階の構成のシミュレーションを実行する場合、ロボットコントローラ（即ち、制御装置）の入力に関するシミュレーションを実行する必要がある。
そこで、本発明者は、制御装置の入力に関するシミュレーションを実行するために、次のような構成を考えた。即ち、シミュレーションを実行し、制御装置への入力が必要になったときには、例えば、１つのセンサからのオン（検出）またはオフのデータ（信号）を入力する必要が生じたときには、パソコンのディスプレイとキーボードを使用して作業者により手操作で入力させるように構成した。このように構成すると、制御装置の入力に関するシミュレーションについても、十分に実行することができる。
【０００９】
しかし、上記したセンサ出力を手操作で入力する構成の場合、規模が大きいまたは複雑なプログラムをシミュレーションする場合、手操作で入力する回数が非常に多くなり、作業者がパソコンにずっと付いていなければならないという問題点が発生することから、費用対効果の面でほとんど実用化する意味がなかった。
そこで、本発明の目的は、１つ以上の工業用ロボットを含む複数の制御対象機器を統括的に制御する制御装置として実機を使用してシミュレーションするシステムであって、センサからの出力を制御装置へ入力させる処理を容易に実行することができるシミュレーションシステムを提供するにある。
【課題を解決するための手段】
【００１０】
本発明のシミュレーションシステムは、１つ以上の工業用ロボットを含む複数の制御対象機器と、これら複数の制御対象機器を統括的に制御するように構成された制御装置とを備えてなる生産設備をシミュレーションするシステムにおいて、前記制御装置として実機を使用し、前記複数の制御対象機器に設けられた各種のセンサをそれぞれセンサ用仮想物体として定義し、そして、前記センサ用仮想物体と他の仮想物体との衝突を検出する衝突検出手段と、前記センサ用仮想物体と他の仮想物体との衝突を検出したときに、前記センサ用仮想物体に対応するセンサの出力をオンまたはオフに設定するセンサ出力設定手段とを備えたところに特徴を有する。
【００１１】
上記構成によれば、シミュレーションを実行しているときに、センサ用仮想物体と他の物体との衝突が検出されると、センサ用仮想物体に対応するセンサの出力がオンまたはオフに自動的に設定されることから、この設定された出力が制御装置へ入力されるようになる。このため、センサからの出力を制御装置へ入力させる処理を自動的に実行することができる。
【００１２】
また、上記構成の場合、前記衝突検出手段は、設定された１個のセンサ用仮想物体と、この１個のセンサ用仮想物体と衝突する可能性があるＮ個の他の仮想物体との衝突をそれぞれ検出するように構成されていることが好ましい。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の一実施例について、図面を参照しながら説明する。まず、図１は、本実施例の組立設備（生産設備）１の全体構成を概略的に示すブロック図である。尚、この組立設備１をロボットセル設備と呼ぶことも好ましい。上記組立設備１は、複数の制御対象機器２と、これら複数の制御対象機器２を統括的に制御するように構成されたセル設備制御装置（制御装置）３とから構成されている。
【００１４】
複数の制御対象機器２としては、工業用ロボット４と、搬送装置５と、部品供給装置６と、ＩＤＲ／Ｗ装置７と、加工装置８とが設けられている。このうち、工業用ロボット４は、通信ライン９を介してセル設備制御装置３に接続され、搬送装置５、部品供給装置６、ＩＤＲ／Ｗ装置７及び加工装置８は、ネットワーク（例えばＩ／Ｏネットワーク）１０を介してセル設備制御装置３に接続されている。
【００１５】
この構成の場合、セル設備制御装置３は、工業用ロボット４を制御する機能（即ち、ロボットコントローラとしての機能）と、他の制御対象機器２を制御する機能（即ち、ＰＬＣとしての機能）とを備えるように構成されている。
また、セル設備制御装置３には、通信ライン１１を介してティーチングペンダント１２が接続されている。このティーチングペンダント１２は、作業者が操作する操作盤であり、セル設備制御装置３に対して各種の指令を与える機能を有している。
【００１６】
ここで、セル設備制御装置３の通信機能について、図２を参照して簡単に説明する。セル設備制御装置３は、図２に示すように、工業用ロボット４と通信ライン９を介して通信するロボット通信機能と、ティーチングペンダント１２またはミニペンダント１３と通信ライン１１を介して通信するマンマシンＩ／Ｆ通信機能と、周辺装置１５（制御対象機器２やパソコン１４等）とＩ／Ｏネットワーク１６やＥｔｈｅｒｎｅｔ（登録商標）１７やＲＳ２３２Ｃ１８やＵＳＢ１９やパラレルＩ／Ｏ（図示しない）やフィールドネットワーク（図示しない）等の各種の通信プロトコルを介して通信する周辺装置通信機能とを備えている。
【００１７】
さて、図３は、本実施例のシミュレーションシステム２０のシステム構成を概略的に示すブロック図である。このシミュレーションシステム２０は、図３に示すように、パソコン１４と、このパソコン１４に通信ライン２１（例えばＥｔｈｅｒｎｅｔ１７）を介して接続されたセル設備制御装置３とから構成されている。尚、セル設備制御装置３に、ティーチングペンダント１２を通信ライン１１を介して接続するように構成しても良い。
【００１８】
上記パソコン１４には、シミュレーションプログラム（シミュレータ）がインストールされており、このシミュレーションプログラムを動作させることが可能になっている。セル設備制御装置３は、実機のセル設備制御装置であり、実際の工場の生産設備に設置されるときには、工業用ロボット４等の制御対象機器２（図１参照）が接続される。尚、セル設備制御装置３にティーチングペンダント１２を接続するときには、実機のティーチングペンダント１２を使用する。
【００１９】
ここで、パソコン１４に組み込まれているシミュレーションプログラムついて、図３を参照して説明する。上記シミュレーションプログラムは、セル設備用通信手段２２と、Ｉ／Ｏ情報入出力手段２３と、ロボット動作位置指令読込手段２４と、３Ｄオブジェクト作成手段２５と、３Ｄオブジェクト管理手段２６と、３Ｄオブジェクト表示手段２７と、仮想センサ管理手段（センサ出力設定手段）２８と、３Ｄオブジェクト衝突検出手段（衝突検出手段）２９と、仮想センサパラメータ設定手段３０とを備えて構成されている。
【００２０】
セル設備用通信手段２２は、セル設備制御装置３との間で通信（入出力）する機能を有しており、セル設備制御装置３からＩ／Ｏ情報やロボット動作指令等の情報を取得し、Ｉ／Ｏ情報をＩ／Ｏ情報入出力手段２３へ与え、ロボット動作指令をロボット動作位置指令読込手段２４へ与える。３Ｄオブジェクト作成手段２５及び３Ｄオブジェクト管理手段２６は、組立設備１内の種々の装置や機器を３Ｄ化する機能を有している。３Ｄ化した情報は、３Ｄオブジェクト表示手段２７によりパソコン１４のディスプレイに表示されるように構成されている。
【００２１】
この場合、例えば工業用ロボット４については、セル設備制御装置３から出力されたロボットの動作指令をロボット動作位置指令読込手段２４を介して受けて、その動作指令に従って工業用ロボット（仮想ロボット）４のアーム（及びアームに把持されたワーク等）を動作させ、その動作の様子をパソコン１４のディスプレイに３Ｄで表示するように構成されている。
【００２２】
そして、各種のセンサをそれぞれセンサ用仮想物体（仮想センサパラメータ）として定義（登録）した情報は、仮想センサパラメータ設定手段３０に記憶されている。また、３Ｄオブジェクト衝突検出手段２９は、組立設備１内の種々の装置や機器等の仮想物体同士の衝突（または干渉）を検出する機能を有していると共に、センサ用仮想物体と他の仮想物体との衝突（または干渉）を検出する機能を有している。
【００２３】
仮想センサ管理手段（センサ出力設定手段）２８は、３Ｄオブジェクト衝突検出手段２９からのセンサ用仮想物体と他の仮想物体との衝突情報に基づいて、センサ用仮想物体に対応するセンサの出力（センサに割り付けられたＩ／Ｏ番号のデータ）をオンまたはオフに設定する機能を有している。この場合、センサ用仮想物体と他の仮想物体との衝突が検出されたときに、センサ用仮想物体に対応するセンサの出力を例えばオンに設定し、上記衝突が検出されていないときには、センサの出力をオフに設定している。尚、衝突の検出・非検出と、センサの出力のオン・オフの設定との関係を、上述した設定と反対にしても良い。
【００２４】
次に、上記構成のシミュレーションシステム２０の動作について、図４ないし図８も参照して説明する。
まず、各種のセンサをそれぞれセンサ用仮想物体として予め定義しておく（即ち、センサを擬似的に物体として定義する）。この場合、各センサに対して仮想空間でのセンサ番号をそれぞれ付与すると共に、各センサにＩ／Ｏ番号をそれぞれ割り付けておく（登録しておく）。これにより、センサ番号とＩ／Ｏ番号とこれらに関連するデータとからなるデータを複数（多数）集めて構成されたＩ／Ｏテーブルが、パソコン１４に登録されるようになっている。
【００２５】
さて、パソコン１４において、シミュレーションプログラムを動作させてロボット制御用のプログラムのシミュレーションを開始すると、プログラムの各ステップの実行に応じてセル設備制御装置３からロボット４の動作指令（並びに制御対象機器２の動作指令）が出力される。そして、これら動作指令がセル設備用通信手段２２を介してロボット動作位置指令読込手段２４ひいては３Ｄオブジェクト管理手段２６に与えられることにより、３Ｄオブジェクト管理手段２６及び３Ｄオブジェクト表示手段２７は、上記動作指令に従って仮想ロボット４のアーム（並びに制御対象機器２の各可動部）を動作させ、その動作の様子をパソコン１４のディスプレイに３Ｄで表示するように構成されている（図４のステップＳ１０）。尚、図４のフローチャートには、シミュレーションの動作の途中の一部分が示されている。
【００２６】
そして、ステップＳ２０へ進み、所定のセンサである例えばセンサ番号２４５のセンサ出力（即ち、Ｉ／Ｏ番号１３０のデータ）がオンであるか否かの判断が実行される。この場合、図５のフローチャートにて示すサブルーチンの制御が実行されるようになっている。具体的には、まず、図５のステップＳ１１０において、センサ番号２４５のセンサ用仮想物体と他の物体（Ｎ個の物体）との衝突を検出する処理を実行する。
【００２７】
この１対Ｎ衝突検出処理は、３Ｄオブジェクト衝突検出手段２９によって実行されるように構成されている。この場合、３Ｄオブジェクト衝突検出手段２９としては、周知構成（シミュレータ）の衝突検出機能を用いれば良い。
また、例えば、図６に示すように、センサが透過型の光電スイッチ３１であるとし、他の物体が工業用ロボット４のアームでチャックされたワーク３２であるとすると、ワーク３２が光電スイッチ３１の検出光３１ａに衝突（干渉）していないときが、非衝突状態であると検出され、図７に示すように、ワーク３２が光電スイッチ３１の検出光３１ａに衝突（干渉）しているときが、衝突状態であると検出される。
【００２８】
そして、図８に示すように、ワーク１２が光電スイッチ１１の検出光１１ａを通りすぎ、衝突（干渉）していない状態となると、再び非衝突状態であると検出されるようになっている。
続いて、ステップＳ１２０へ進み、衝突が検出されたか否かを判断する。ここで、衝突が検出されなかったときには、「ＮＯ」へ進み、登録されているＩ／Ｏ番号が１３０のデータをオフに設定する（ステップＳ１３０）。そして、ステップＳ１１０へ戻り、衝突検出処理を繰り返し実行するように構成されている。
【００２９】
一方、上記ステップＳ１２０において、衝突が検出されたときには、「ＹＥＳ」へ進み、仮想センサ管理手段２８によって、登録されているＩ／Ｏ番号１３０のデータをオンに設定する（ステップＳ１４０）。続いて、ステップＳ１５０へ進み、Ｉ／Ｏ番号１３０のデータがオンになったことを、Ｉ／Ｏ情報入出力手段２３へ通知する。そして、ステップＳ１６０へ進み、Ｉ／Ｏ情報入出力手段２３は、Ｉ／Ｏ番号１３０のデータ（オン）をセル設備制御装置３へ転送するように構成されている。これで、図５のサブルーチンを終了し、図４のステップＳ２０へ戻る。
【００３０】
さて、上記ステップＳ２０の判断処理において、Ｉ／Ｏ番号１３０のデータがオフのときは、「ＮＯ」へ進み、ステップＳ２０の判断処理を繰り返す。これに対して、ステップＳ２０において、Ｉ／Ｏ番号１３０のデータがオンのときには、「ＹＥＳ」へ進み、ステップＳ３０へ進み、プログラムの次のステップの処理（シミュレーションの動作）を実行するように構成されている。
【００３１】
そして、これ以降、Ｉ／Ｏ番号が「ｎ」のデータ（即ち、Ｉ／Ｏ番号ｎに対応するセンサの出力）がオンであるか否かの判断ステップが実行される毎に、上述した衝突検出処理がほぼ同様に実行されるように構成されている。
尚、上記３Ｄオブジェクト衝突検出手段２９によって、図７に示すように、ワーク３２が光電スイッチ３１の検出光３１ａに衝突していることが検出されて、仮想センサ管理手段２８によりＩ／Ｏ番号１３０のデータがオンされた後、図８に示すように、ワーク３２が光電スイッチ３１の検出光３１ａを通過して両者が衝突していない状態となると、非衝突状態であることが検出されると共に、Ｉ／Ｏ番号１３０のデータがオフに設定されるように構成されている。
【００３２】
また、図６、図７、図８においては、２次元の図（上面図）で光電スイッチ３１及びワーク３２を示したが、パソコン１４のディスプレイには、光電スイッチ３１及びワーク３２等（ロボットアームや設備等の構成を含む）は３Ｄで（３次元で立体的に）表示されるように構成されている。
このような構成の本実施例においては、実機のセル設備制御装置３を使用しながら、ロボット制御用のプログラムをパソコン１４でシミュレーションする構成において、各種のセンサをそれぞれセンサ用仮想物体として定義し、各センサ用仮想物体と他の仮想物体との衝突を検出する３Ｄオブジェクト衝突検出手段２９を備えると共に、各センサ用仮想物体と他の仮想物体との衝突を検出したときに、各センサ用仮想物体に対応するセンサの出力（即ち、Ｉ／Ｏ番号ｎのデータ）をオン（またはオフ）に設定する仮想センサ管理手段２８を備える構成とした。
【００３３】
この構成によれば、実機のセル設備制御装置３を使用すると共に、パソコン１４のディスプレイに３Ｄで工業用ロボット４及び設備の各機器２のシミュレーション動作が表示されることから、良好なシミュレーションを実行することができ、プログラムの開発・デバッグが容易になる。特に、上記実施例においては、各種のセンサをそれぞれセンサ用仮想物体として定義し、シミュレーションを実行しているときに、３Ｄオブジェクト衝突検出手段２９によりセンサ用仮想物体と他の物体との衝突が検出されると、仮想センサ管理手段２８によりセンサ用仮想物体に対応するセンサの出力が自動的にオンに設定されることから、この設定された出力がセル設備制御装置３へ自動的に入力されるようになる。従って、上記構成によれば、センサからの出力をセル設備制御装置３へ入力させる処理を自動的に実行し、その結果、セル設備制御装置の実行プログラムを自動的に実行し、シミュレーションにかかる人的工数を飛躍的に削減することができる。
【００３４】
また、上記実施例に置いては、３Ｄオブジェクト衝突検出手段２９によって、設定（指定）された１個のセンサ用仮想物体と、この１個のセンサ用仮想物体と衝突する可能性があるＮ個（即ち、全て）の他の仮想物体との衝突（干渉）をそれぞれ検出するように構成したので、衝突の検出の漏れを防止することができる。
【図面の簡単な説明】
【００３５】
【図１】本発明の一実施例を示す組立設備のブロック図
【図２】セル設備制御装置の通信機能を説明するブロック図
【図３】シミュレーションシステムのブロック図
【図４】フローチャート（その１）
【図５】フローチャート（その２）
【図６】光電スイッチにワークが衝突する前の状態を示す図
【図７】光電スイッチにワークが衝突した状態を示す図
【図８】光電スイッチにワークが衝突した後、通過した状態（非衝突状態）を示す図
【符号の説明】
【００３６】
図面中、１は組立設備（生産設備）、２は複数の制御対象機器、３はセル設備制御装置（制御装置）、４は工業用ロボット、５は搬送装置、６は部品供給装置、７はＩＤＲ／Ｗ装置、８は加工装置、９は通信ライン、１０はネットワーク、１１は通信ライン、１２はティーチングペンダント、１３はミニペンダント、１４はパソコン、１５は周辺装置、１６はＩ／Ｏネットワーク、１７はＥｔｈｅｒｎｅｔ、１８はＲＳ２３２Ｃ、１９はＵＳＢ、２０はシミュレーションシステム、２１は通信ライン、２２はセル設備用通信手段、２３はＩ／Ｏ情報入出力手段、２４はロボット動作位置指令読込手段、２５は３Ｄオブジェクト作成手段、２６は３Ｄオブジェクト管理手段、２７は３Ｄオブジェクト表示手段、２８は仮想センサ管理手段（センサ出力設定手段）、２９は３Ｄオブジェクト衝突検出手段（衝突検出手段）、３０は仮想センサパラメータ設定手段を示す。
【図１】
2006092123.tif 000003
【図２】
2006092123.tif 000004
【図３】
2006092123.tif 000005
【図４】
2006092123.tif 000006
【図５】
2006092123.tif 000007
【図６】
2006092123.tif 000008
【図７】
2006092123.tif 000009
【図８】
2006092123.tif 000010