(57)【要約】【課題】別個の指令プログラムに基づいて動作するロボットと工作機械のシミュレーション結果を表示装置に表示できるようにしたシミュレーション装置を提供する。【解決手段】シミュレーション装置１０は、経過時刻を指定するシミュレーション管理部２４と、指定経過時刻まで動作プログラムを実行さて、指定経過時刻におけるロボットの動作位置を求めるロボット動作演算部１２と、加工プログラムを連続的に実行しながら工作機械の動作位置を逐次求めていく工作機械動作演算部１４と、単位時間が経過するたびに、求められた工作機械の動作位置を経過時刻と対応付けて記憶する工作機械動作記憶部１８とを備える。シミュレーション管理部は、ロボット動作演算部と工作機械動作演算部から取得した指定経過時刻におけるロボットと工作機械の動作位置に基づいて、ロボット及び工作機械の三次元モデルを表示装置２６上に表示させる。【選択図】図１
2010140359.tif 000002
【特許請求の範囲】
【請求項１】
別個の指令プログラムに基づいて動作する第１の作業機械及び第２の作業機械の動作をそれぞれ模擬する第１の仮想作業装置及び第２の仮想作業装置を用いて第１の作業機械及び第２の作業機械の動作のシミュレーションを行い、シミュレーションの結果に基づいて第１の作業機械及び第２の作業機械の三次元モデルを表示装置上に表示するシミュレーション装置であって、
指定経過時刻を指定するシミュレーション管理部と、
前記第１の仮想作業機械上で前記指定経過時刻まで前記第１の作業機械の指令プログラムを実行させて、前記指定経過時刻における前記第１の作業機械の動作位置を求める第１の動作演算部と、
前記第２の仮想作業機械上で前記第２の作業機械の指令プログラムを連続的に実行しながら前記第２の作業機械の動作位置を逐次求めていく第２の動作演算部と、
予め定められた単位時間が経過するたびに、経過時刻と前記第２の動作演算部によって求められた前記第２の作業機械の動作位置とを対応付けて記憶する動作記憶部と、
を備え、前記シミュレーション管理部は、前記第１の動作演算部から前記指定経過時刻における前記第１の作業機械の動作位置を取得し且つ前記動作記憶部から前記指定経過時刻における前記第２の作業機械の動作位置を取得した後、取得した前記１の作業機械及び前記第２の作業機械の動作位置に基づいて前記第１の作業機械及び前記第２の作業機械の三次元モデルを前記表示装置上に表示させ、当該指定経過時刻から予め定められた動作時間が経過した時刻を次の指定経過時刻として指定することを特徴とするシミュレーション装置。
【請求項２】
前記第１の作業機械と前記第２の作業機械は互いと通信を行いながらそれぞれの指令プログラムを実行する、請求項１に記載のシミュレーション装置。
【請求項３】
前記シミュレーション管理部は、前記第２の作業機械の指令プログラムが前記第１の作業機械からの通信待ちになっている間、前記第２の動作演算部によるシミュレーションにおける経過時刻が停止しているものとして取り扱う、請求項２に記載のシミュレーション装置。
【請求項４】
前記第１の作業機械はロボットであり、前記第２の作業機械は工作機械である、請求項１から請求項３の何れか一項に記載のシミュレーション装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、指令プログラムに基づいて動作するロボットや工作機械などの作業機械の動作のシミュレーションを行うシミュレーション装置に関する。
【背景技術】
【０００２】
近年、生産システムが高度化し、複数のロボットや工作機械などを組み合わせることによって生産システムを構成することが多くなってきている。例えば、工作機械の周囲を壁によって取り囲むことによって形成された工作機械セルの扉がロボット又はＰＬＣ（プログラマブルロジックコントローラ）からの信号に基づいて開閉し、扉が開いたときにロボットが工作機械のセル内のワークの交換を行い、交換終了後に扉を閉めて工作機械がワークの加工を行う生産システムがある。
【０００３】
このような生産システムに用いられるロボット、工作機械及びＰＬＣなどは指令プログラムに従って動作するものであり、生産システムを実際に構築する前に実機を用いることなく、ロボットや工作機械が適正に動作するかの試験を行うことが要望されることが多い。このために、オフラインで工作機械やロボットの単体での動作のシミュレーションを行うシミュレーション装置が多数開発されてきた。また、特許文献１に記載されているように、一つのシミュレーション装置上で、複数のロボットの動作のシミュレーションを行うことができるものも存在している。
【０００４】
ところで、工作機械やロボットなどでは複数の制御機構が組み合わせて用いられており、複雑な信号のやり取りや通信が行われる。しかしながら、このような信号のやり取りや通信状態までも数値モデルとして表現することは困難であるため、工作機械やロボットの動作のシミュレーションでは、単純な動作の数値シミュレーションのように数値モデルを用いて所定時間ずつ時間を進め、各瞬間に仮想空間の時間が止まっているかのように扱って各瞬間の工作機械やロボットの状態を求めていく手法を用いても、正確な結果を得ることができない。このため、特に工作機械の動作のシミュレーションソフトウェアでは、シミュレーション上の時間の経過を止めることなく連続的に加工プログラムを実行させながら各瞬間の工作機械の位置（姿勢を含む）を求めていくことが多い。
【０００５】
一方、ロボットのシミュレーションについては、歴史が古いため、信号のやり取りや通信状態までも数値モデルとして表現することも可能になってきており、シミュレーション上で、所定時間ずつ時間を進め、各瞬間に時間が止まっているかのように扱って、各瞬間のロボットの状態を求めていくことが可能なシミュレーションソフトウェアも増えてきている。
【０００６】
【特許文献１】特開昭６３−２６７１８３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上述したように、生産システムでは、ロボットと工作機械を組み合わせて用いることが多い。したがって、このような生産システム全体の動作のシミュレーションを行い、表示装置上に表示することが望まれる。特に、例えば工作機械セルの扉が開いてからロボットがワークを工作機械セル内に搬入、設置した後、工作機械セルの扉を閉じてから工作機械が加工を開始する動作を実現する場合などには、工作機械とロボットとの間でインターロック指令を利用して所定動作の完了を通信し合う必要があり、ロボットのシミュレーション上の経過時刻と工作機械のシミュレーション上の経過時刻とを同期させて、生産システム全体の動作のシミュレーションを行い、表示装置上に同時に表示しなくてはならない。
【０００８】
ところが、ロボットと工作機械など異なる作業機械の動作のシミュレーションを同時に行うことのできるシミュレーション装置は存在していなかった。また、例えばロボットの動作のシミュレーションを行うためのシミュレーションソフトウェアと工作機械のシミュレーションを行うためのシミュレーションソフトウェアを同時に用いても、二つのシミュレーションにおける経過時刻は通常一致しないため、ロボットと工作機械など異なる作業機械によって構成された生産システム全体の動作のシミュレーションの結果を同時に表示装置上に表示することができなかった。特に、シミュレーション上の時間の経過を止めることができるシミュレーションソフトウェアを用いて一つの作業機械（ロボットなど）の動作のシミュレーションを行う一方、シミュレーション上の時間の経過を止めることができないシミュレーションソフトウェアを用いて他の作業機械（工作機械など）の動作のシミュレーションを行う場合、シミュレーションソフトウェア上の経過時刻を一致させることができず、生産システム全体の動作シミュレーションを行ってその結果を同時に表示装置上に表示することは困難である。
【０００９】
よって、本発明の目的は、異なる作業機械の動作のシミュレーションを行い、異なる作業機械の動作のシミュレーション結果を同時に表示装置に表示できるようにしたシミュレーション装置を提供することにある。
【課題を解決するための手段】
【００１０】
上記目的に鑑み、本発明によれば、別個の指令プログラムに基づいて動作する第１の作業機械及び第２の作業機械の動作をそれぞれ模擬する第１の仮想作業装置及び第２の仮想作業装置を用いて第１の作業機械及び第２の作業機械の動作のシミュレーションを行い、シミュレーションの結果に基づいて第１の作業機械及び第２の作業機械の三次元モデルを表示装置上に表示するシミュレーション装置であって、指定経過時刻を指定するシミュレーション管理部と、前記第１の仮想作業機械上で前記指定経過時刻まで前記第１の作業機械の指令プログラムを実行させて、前記指定経過時刻における前記第１の作業機械の動作位置を求める第１の動作演算部と、前記第２の仮想作業機械上で前記第２の作業機械の指令プログラムを連続的に実行しながら前記第２の作業機械の動作位置を逐次求めていく第２の動作演算部と、予め定められた単位時間が経過するたびに、経過時刻と前記第２の動作演算部によって求められた前記第２の作業機械の動作位置とを対応付けて記憶する動作記憶部とを備え、前記シミュレーション管理部は、前記第１の動作演算部から前記指定経過時刻における前記第１の作業機械の動作位置を取得し且つ前記動作記憶部から前記指定経過時刻における前記第２の作業機械の動作位置を取得した後、取得した前記１の作業機械及び前記第２の作業機械の動作位置に基づいて前記第１の作業機械及び前記第２の作業機械の三次元モデルを前記表示装置上に表示させ、当該指定経過時刻から予め定められた動作時間が経過した時刻を次の指定経過時刻として指定するようにしたシミュレーション装置が提供される。
【００１１】
上記シミュレーション装置によれば、第２の動作演算部で実行される第２の作業機械のシミュレーション上の経過時刻が第１の動作演算部で実行される第１の作業機械のシミュレーション上の経過時刻と一致していなくても、第２の動作演算部によって求められた第２の作業機械の動作位置が予め定められた単位時間が経過するたびに経過時刻と対応付けて動作位置記憶部に記憶されるので、シミュレーション管理部が第１の動作演算部で実行されるシミュレーション上の経過時刻と一致する経過時刻に対応する第２の作業機械の動作位置を動作記憶部から取得することにより、あたかも第１の動作演算部における経過時刻と第２の動作演算部における経過時刻とが一致しているかのように表示装置上に表示することができる。また、シミュレーション管理部は、第１の作業機械及び第２の作業機械の両方の指定経過時刻における動作位置を取得した後に、指定経過時刻から予め定められた動作時間が経過した時刻を次の指定経過時刻として指定し、その指定経過時刻における第１の作業機械の動作位置を第１の動作演算部に求めさせる。したがって、第２の動作演算部による第２の作業機械の動作のシミュレーションの経過時間が指定経過時刻よりも遅れている場合でも、シミュレーション管理部は、第１の動作演算部に次の指定経過時刻を指定することなく、経過時刻における第２の作業機械の動作位置が第２の動作演算部によって求められるまで待つことになるので、指定経過時刻における第２の作業機械の動作位置が求められる前に、当該指定経過時刻から予め定められた時間が経過した後の第１の作業機械の動作位置が求められて見かけ上の経過時間を一致させることができなくなることがない。
【００１２】
上記シミュレーション装置では、前記第１の作業機械と前記第２の作業機械は互いと通信を行いながらそれぞれの指令プログラムを実行してもよい。この場合、前記シミュレーション管理部は、前記第２の作業機械の指令プログラムが前記第１の作業機械からの通信待ちになっている間、前記第２の動作演算部によるシミュレーションにおける経過時刻が停止しているものとして取り扱うことが好ましい。
【００１３】
また、前記第１の作業機械はロボットであり、前記第２の作業機械は工作機械とすることができる。
【発明の効果】
【００１４】
本発明によれば、異なる作業機械の動作のシミュレーションを行うときに、シミュレーション上の時間を止めることができるシミュレーションソフトウェアを用いて第１の動作位置演算部が一つの作業機械の動作のシミュレーションを行う一方、シミュレーション上の時間を止めることができないシミュレーションソフトウェアを用いて第２の動作位置演算部が他の作業機械の動作のシミュレーションを行う場合でも、第１の動作位置演算部における経過時刻と第２の動作位置演算部における経過時刻とが一致しているかのようにシミュレーション結果を取り扱うことができ、異なる作業機械の動作のシミュレーション結果を同時に表示装置上に表示することができる。したがって、異なる作業機械によって構成される生産システム全体の動作のシミュレーションを容易に行うことが可能になる。
【発明を実施するための最良の形態】
【００１５】
以下、図面を参照して、本発明のシミュレーション装置の実施形態を説明する。
本発明のシミュレーション装置は、別個の指令プログラムに基づいて動作する異なる作業機械によって構成される生産システム全体の動作のシミュレーションを行う。以下の実施形態では、シミュレーション装置は、操作者によって作成された加工プログラムに基づいてワークを加工する工作機械と、操作者によって作成された動作プログラムに基づいて動作し工作機械に対するワークの供給及び取り出しを行うロボットとが作業機械として使用されている生産システムのシミュレーションを行う。しかしながら、本発明のシミュレーション装置によってシミュレーションを行うことができる生産システムの作業機械は、ロボット及び工作機械に限定されるものではない。
【００１６】
最初に、図１を参照して、シミュレーション装置１０の全体構成を説明する。シミュレーション装置１０は、ロボット動作演算部１２と、工作機械動作演算部１４と、ロボット動作記憶部１６と、工作機械動作記憶部１８と、ロボット実行管理部２０と、工作機械実行管理部２２と、シミュレーション管理部２４と、表示装置２６とを含んでおり、ロボットを模擬する仮想ロボットと工作機械を模擬する仮想工作機械を用いてロボット及び工作機械のシミュレーションを行い、シミュレーションの結果に基づいてロボットと工作機械の三次元モデルを同時に表示装置上に表示する。表示装置２６は、ロボット及び工作機械の動作位置に関する情報を処理して、画面上のロボット及び工作機械の位置を変更する画像処理部（図示せず）を含んでいる。
【００１７】
ロボット動作演算部１２は、ロボットシミュレーションソフトウェアによって仮想空間上でロボットを模擬することによって仮想ロボットを実現したものである。ロボット動作演算部１２は、仮想ロボット上で現実のロボットのための動作プログラムを実行することによって現実のロボットが動作プログラムを実行したときのロボットの動作及び信号状態等を仮想的に再現して、指定経過時刻ｔにおけるロボットの動作位置及び信号状態等を演算により求める。なお、ロボットシミュレーションソフトウェアについて、シミュレーション上の時間の経過を制御できるものも多く見られることから、本実施形態で使用されるロボットシミュレーションソフトウェアとして、指定経過時刻ｔが指定されると、動作プログラムに従って指定経過時刻ｔまで仮想ロボットを動作させたときの仮想ロボットの動作位置及び信号状態を経過時刻と共に出力し、次の指定経過時刻ｔが指定されるまでロボットシミュレーションにおける時間の経過を止めることができるように構成されたものが使用されている。また、ロボットの動作位置に関する情報には、ロボットの姿勢も含まれるものとする。
【００１８】
工作機械動作演算部１４は、工作機械シミュレーションソフトウェアによって仮想空間上で工作機械を模擬することによって仮想工作機械を実現したものである。工作機械動作演算部１４は、仮想工作機械上で現実の工作機械のための加工プログラムを実行することによって現実の工作機械が加工プログラムを実行したときの工作機械の動作及び信号状態等を仮想的に再現して、工作機械のテーブル及び工具の動作位置及び工作機械の信号状態等を演算により求める。なお、工作機械シミュレーションソフトウェアについて、シミュレーション上の時間の経過を制御できるものが少ないことから、工作機械シミュレーションソフトウェアとして、工作機械シミュレーションにおける時間の経過を止めることができず、実行指令を受けると工作機械の加工プログラムの実行を連続的に行って、指定された単位時間ｔｕ毎に、加工プログラムに従って仮想ロボットを動作させたときの仮想ロボットの動作位置及び信号状態を経過時刻と共に出力するように構成されているものが使用されている。また、テーブル及び工具の動作位置に関する情報には、テーブル及び工具の姿勢も含まれるものとする。
【００１９】
ロボット動作記憶部１６及び工作機械動作記憶部１８は、ＲＡＭ、揮発性メモリ、ハードディスク装置などによって実現される。ロボット動作記憶部１６は、ロボット動作演算部１２とロボット実行管理部２０との間に配置されて、一時記憶装置の役割を果たし、ロボット動作演算部１２によって求められた指定経過時刻ｔにおけるロボットの動作位置及び信号状態等を一時的に記憶してロボット実行管理部２０に引き渡す。しかしながら、ロボット動作記憶部１６は必ずしも設ける必要はなく、後述するように、ロボット動作演算部１２によって求められたロボットの動作位置及び信号状態等に関する情報を直接的にロボット実行管理部２０に引き渡すようにしてもよい。一方、工作機械動作記憶部１８は、工作機械動作演算部１４と工作機械実行管理部２２との間に配置されて、バッファー装置の役割を果たし、単位時間ｔｕ毎に、工作機械動作演算部１４によって求められた工作機械のテーブル及び工具の動作位置及び工作機械の信号状態等を経過時刻と対応付けて記憶していき、工作機械実行管理部２２による指定経過時刻ｔの指定に応じて、指定経過時刻ｔにおける工作機械のテーブル及び工具の動作位置及び工作機械の信号状態等に関する情報を工作機械実行管理部２２に引き渡す。
【００２０】
ロボット動作演算部１２によるロボットシミュレーションにおける経過時刻と工作機械動作演算部１４による工作機械シミュレーションにおける経過時刻は通常異なるので、ロボット実行管理部２０と工作機械実行管理部２２が同じタイミングで動作位置及び信号状態に関する情報を取得することは通常困難である。しかしながら、シミュレーション装置１０では、工作機械動作記憶部１８を設けることによって、ロボット実行管理部２０が指定経過時刻ｔにおけるロボットの動作位置及び信号状態に関する情報を取得するのとほぼ同じタイミングで、工作機械実行管理部２２が指定経過時刻ｔにおける工作機械のテーブル及び工具の動作位置及び工作機械の信号状態等に関する情報を工作機械動作記憶部１８から取得することを可能にしている。
【００２１】
ロボット実行管理部２０は、ロボット動作演算部１２によるロボットシミュレーションの時間の経過を管理する機能を果たす。詳細には、ロボット実行管理部２０は、表示装置２６上に次に表示すべきシミュレーション結果の経過時刻を指定経過時刻ｔとしてシミュレーション管理部２４から指定されると、現在の経過時刻から指定経過時刻ｔまでシミュレーション上の時間を経過させるようにロボット動作演算部１２に指令を与え、ロボット動作演算部１２又はロボット動作記憶部１６からロボット動作演算部１２によって求められた指定経過時刻ｔにおけるロボットの動作位置及び信号状態に関する情報を取得し、シミュレーション管理部２４に引き渡す。
【００２２】
工作機械実行管理部２２は、工作機械動作演算部１４による工作機械シミュレーションの時間の経過を管理する機能を果たす。詳細には、工作機械実行管理部２２は、表示装置２６上に次に表示すべきシミュレーション結果の経過時刻を指定経過時刻ｔとしてシミュレーション管理部２４から指定されると、指定経過時刻ｔにおける工作機械の動作位置及び信号状態を取得し、シミュレーション管理部２４に引き渡す。ただし、工作機械動作演算部１４によって行われる工作機械シミュレーションでは、時間の経過を止めることができず、時間の経過を制御することができないので、工作機械実行管理部２２は、実際には、工作機械動作記憶部１８記憶された工作機械シミュレーションの結果（すなわち、指定された単位時間ｔｕ毎に経過時刻と関連付けて記憶された、工作機械のテーブル及び工具の動作位置及び工作機械の信号状態等）の中から、指定経過時刻ｔに対応する経過時刻における工作機械の動作位置及び信号状態等に関する情報を取得する。
【００２３】
シミュレーション管理部２４は、表示装置２６上へのシミュレーション結果の表示を終了すると、表示装置２６上に表示されているシミュレーション結果の経過時刻から予め定められた動作時間ｔｄだけ経過した時刻を指定経過時刻ｔとしてロボット実行管理部２０及び工作機械実行管理部２２に指定して、ロボット及び工作機械の両方の指定経過時刻ｔにおける動作位置及び信号状態等に関する情報を取得した後、取得した情報に基づいて、その時点で表示装置２６上に表示されているロボット及び工作機械の位置を変更して指定経過時刻ｔにおける動作位置にロボット及び工作機械を表示させる一方、指定経過時刻ｔから予め定められた動作時間ｔｄだけ経過した時刻を次の指定経過時刻ｔとしてロボット実行管理部２０及び工作機械実行管理部２２に指定する。また、シミュレーション管理部２４は、ロボット実行管理部２０から取得した指定経過時刻ｔにおけるロボットの信号状態を工作機械実行管理部２２を通じて工作機械動作演算部１４に引き渡すと共に、工作機械実行管理部２２から取得した指定経過時刻ｔにおける工作機械の信号状態をロボット実行管理部２０を通じてロボット動作演算部１２に引き渡す。
【００２４】
このように、シミュレーション管理部２４は、ロボットと工作機械の両方の指定経過時刻ｔにおける動作位置及び信号状態を取得してから、ロボット実行管理部２０及び工作機械実行管理部２２に次の指定経過時刻ｔを指定する。したがって、シミュレーション管理部２４は、工作機械動作演算部１４によって行われる工作機械シミュレーションにおける経過時刻が指定経過時刻ｔよりも遅れている場合には、指定経過時間ｔにおける工作機械の動作位置及び信号状態等が工作機械動作演算部１４によって求められるのを待ち、指定経過時刻ｔにおけるロボット及び工作機械の両方の動作位置及び信号状態等を取得してから、当該指定経過時刻ｔから予め定められた動作時間ｔｄが経過した時刻（＝ｔ＋ｔｄ）を次の指定経過時刻ｔとして、次の指定経過時刻ｔにおける工作機械の動作位置及び信号状態等を工作機械動作演算部１４に求めさせる。
【００２５】
なお、ロボットの動作プログラムが工作機械の動作位置や信号状態を参照する又は工作機械の加工プログラムがロボットの動作位置や信号状態を参照する場合、動作プログラムやロボットには参照する動作位置や信号状態が得られるまでプログラムの進行を停止させるインターロック指令が含まれることになる。ロボット動作演算部１２によって実行されるロボットシミュレーションでは指定経過時刻ｔまで時間を経過させると時間の経過を止めて次の指定経過時刻ｔの指定を待つようになっているので、シミュレーション管理部２４がロボットと工作機械の両方の指定経過時刻ｔにおける動作位置及び信号状態等を取得してから、ロボット実行管理部２０を通じて次の指定経過時刻ｔ＋ｔｄの指定を受ける。したがって、ロボットシミュレーションにおける経過時間が指定経過時刻ｔよりも早くなることはない。このため、次の指定経過時刻ｔ＋ｔｄにおけるロボットの動作位置及び信号状態を求める前に指定経過時刻ｔにおける工作機械の動作位置及び信号状態が必ず確定しており、ロボットの動作プログラムにインターロック指令が含まれている場合でも、指定経過時刻ｔにおける工作機械の動作位置及び信号状態が次の指定経過時刻ｔ＋ｔｄにおけるロボットの動作及び信号状態に反映される。
【００２６】
一方、工作機械動作演算部１４によって実行される工作機械シミュレーションでは時間の経過を止めることができず、工作機械シミュレーションにおける経過時間が指定経過時刻ｔよりも進むことがある。この場合、工作機械の加工プログラムがインターロック指令に基づいてロボットの動作位置及び信号状態を参照したときの工作機械シミュレーションにおける経過時刻まで指定経過時刻ｔが進んでその経過時刻におけるロボットの動作位置及び信号状態が得られるまで加工プログラムは待ち状態を続けることになる。しかしながら、信号待ち状態の間も工作機械シミュレーションにおける時間は経過してしまう。そこで、シミュレーション管理部２４は、工作機械シミュレーションにおいて加工プログラムがインターロック指令に基づいて待ち状態になると時間が経過しないものとして取り扱う。例えば、シミュレーション管理部２４は、工作機械動作記憶部１８に記憶された経過時刻から信号待ち状態が続いた時間を引いた時刻が指定経過時刻ｔに等しくなる場合に当該経過時刻に対応付けられた動作位置及び信号状態を指定経過時刻ｔにおける工作機械の動作位置及び信号状態として使用する。このようにすることで、指定経過時刻ｔにおけるロボットの動作位置及び信号状態が次の指定経過時刻ｔ＋ｔｄにおける工作機械の動作及び信号状態に反映されるようにしている。
【００２７】
次に、図２に示されているフローチャートを参照して、ロボットの動作プログラム及び工作機械の加工プログラムにインターロック指令が含まれていない場合における図１に示されているシミュレーション装置１０によるシミュレーションの流れを説明する。
【００２８】
最初に、シミュレーションの準備として、ロボット、ワーク及び工作機械等の三次元モデルの形状及びその初期位置（姿勢を含む）を定義して、表示装置２６上に表示する（ステップＳ１００）。さらに、実際のロボットに実行させる動作プログラム及び実際の工作機械に実行させる加工プログラムを作成して、これらをシミュレーション装置１０に読み込ませる（ステップＳ１０２）。また、シミュレーション装置１０の表示装置２６上の表示画像を更新させる更新間隔時間ｔｄを設定する（ステップＳ１０４）と共に、工作機械シミュレーションの実行中の工作機械の動作位置を工作機械動作記憶部１８に記憶していく単位時間ｔｕを設定する（ステップＳ１０６）。
【００２９】
以上の準備が完了した後、シミュレーション装置１０によるシミュレーションを開始する（ステップＳ１０８）。シミュレーションが開始されると、シミュレーションの開始時刻を経過時刻ｔ＝０として、ロボット動作演算部１２において、実際のロボットの動作を模擬して仮想ロボットを実現するためのロボットシミュレーションソフトウェアが起動されて、仮想ロボット上で実際のロボットの動作プログラムが実行され、また、工作機械動作演算部１４において、実際の工作機械の動作を模擬して仮想工作機械を実現するための工作機械シミュレーションソフトウェアが起動されて、仮想工作機械上で実際の工作機械のＮＣプログラムのような加工プログラムが実行される（ステップＳ１１０）。
【００３０】
すると、ロボット動作演算部１２は、動作プログラムに従って指定経過時刻ｔまで仮想ロボットを動作させたときの仮想ロボットの動作位置を求め、求められた動作位置を指定経過時刻ｔにおけるロボットの動作位置として出力した後、ロボットシミュレーションの時間経過を止めた状態で次の指定経過時刻ｔの指定を待つ。一方、工作機械動作演算部１４によって行われる工作機械のシミュレーションでは、工作機械シミュレーションソフトウェアが連続的に実行され、工作機械シミュレーションの時間の経過を止めることができない。このため、工作機械動作演算部１４は、加工プログラムに従って仮想工作機械による加工を行ったときの工作機械のテーブル及び工具などの動作位置を連続的に求め、ステップＳ１０６で予め設定された単位時間ｔｕ毎に、求められた動作位置を経過時間と対応付けて工作機械動作記憶部１８に記憶させていく。
【００３１】
生産システム全体のシミュレーションにおいては、まず、シミュレーション管理部２４が、ステップＳ１０４で設定された表示の更新間隔時間ｔｄを動作時間とみなして、表示装置２６上で既に表示されているシミュレーション結果の経過時刻から更新間隔時間ｔｄだけ経過した時刻を指定経過時間ｔとしてロボット実行管理部２０及び工作機械実行管理部２２に指定する。ロボット実行管理部２０は、指定経過時刻ｔが指定されると、指定経過時刻ｔまで動作プログラムに従って仮想ロボットを動作させたときの仮想ロボットの動作位置をロボット動作演算部１２に求めさせ、求められた動作位置を指定経過時刻ｔにおけるロボットの動作位置として取得する（ステップＳ１１２）。ロボット動作演算部１２によって求められたロボットの動作位置に関する情報は、直接的にロボット実行管理部２０に引き渡されてもよく、ロボット動作記憶部１６に一時的に記憶させた後にロボット実行管理部２０に引き渡されてもよい。一方、工作機械実行管理部２２は、指定経過時刻ｔが指定されると、経過時刻ｔにおける工作機械の動作位置が工作機械動作記憶部１８に記憶されているかを確認し（ステップＳ１１４）、記憶されているときには、経過時刻ｔにおける工作機械の動作位置を工作機械動作記憶部１８から取得する（ステップＳ１１６）。経過時刻ｔにおける工作機械の動作位置が工作機械動作記憶部１８に記憶されていないときには、工作機械実行管理部２２は、経過時刻ｔにおける工作機械の動作位置が工作機械動作演算部１４によって求められて工作機械動作記憶部１８に記憶されるまで待つ。
【００３２】
ロボット実行管理部２０及び工作機械実行管理部２２は、それぞれ指定経過時刻ｔにおけるロボット及び工作機械の動作位置に関する情報を取得すると、取得した情報をシミュレーション管理部２４に引き渡す。シミュレーション管理部２４は、ロボット実行管理部２０及び工作機械実行管理部２２から指定経過時刻ｔにおける動作位置に関する情報を取得すると、取得した情報に基づいて、ロボット、ワーク、工作機械のテーブル及び工具などの表示用位置（姿勢を含む）を変更し（ステップＳ１１８）、シミュレーション結果の表示を更新させるために、表示装置２６上に変更後の位置のロボット、ワーク、工作機械のテーブル及び工具を表示させる（ステップＳ１２０）。なお、ワークの位置は、ロボットに把持されている場合にはロボットの位置から、工作機械のテーブル上に配置されているときには工作機械のテーブルの位置から、求められる。
【００３３】
シミュレーション管理部２４は、表示装置２６のシミュレーション結果の表示が更新されると、ロボットの動作プログラム及び工作機械の加工プログラムが終了したかを確認し（ステップＳ１２２）、動作プログラム及び加工プログラムが終了している場合には、シミュレーションの実行を終了する。一方、動作プログラム及び加工プログラムが終了していなければ、シミュレーション管理部２４は、動作プログラム及び加工プログラムが終了するまで、指定経過時刻ｔに更新間隔時間ｔｄを加算したものを新たな指定経過時刻ｔとしてステップＳ１１２〜ステップＳ１２２を繰り返す（ステップＳ１２４）。
【００３４】
次に、図３に示されているフローチャートを参照して、ロボットの動作プログラム及び工作機械の加工プログラムにインターロック指令が含まれている場合における図１に示されているシミュレーション装置１０によるシミュレーションの流れを説明する。
【００３５】
最初に、シミュレーションの準備として、図２に示されている場合と同じように、ロボット、ワーク及び工作機械の三次元モデルの形状及びその初期位置（姿勢を含む）を定義して、表示装置２６上に表示する（ステップＳ２００）。次に、図２に示されている場合と異なり、ロボットと工作機械との間でどのような信号のやり取りを行うかを規定する（Ｓ２０２）。ここでは、図４に示されているように、工作機械セルの扉の開放が完了したときに工作機械のデジタル出力端子ＤＯ１からロボットのデジタル入力端子ＤＩ１へ扉開完了信号を供給するための信号線と、ロボットが待機位置に戻ったときにロボットのデジタル出力端子Ｄ０２から工作機械のデジタル入力端子ＤＩ２へ待機位置復帰信号を供給するための信号線とがロボットと工作機械との間に接続される場合を例に以下で説明している。
【００３６】
次に、実際のロボットに実行させる動作プログラム及び実際の工作機械に実行させる加工プログラムを作成して、これらをシミュレーション装置１０に読み込ませ（ステップＳ２０４）、シミュレーション装置１０の表示装置２６上の表示画像を更新させる更新間隔時間ｔｄを設定し（ステップＳ２０６）、さらに、工作機械シミュレーションの実行中の工作機械の動作位置を工作機械動作記憶部１８に記憶する単位時間ｔｕを設定する（ステップＳ２０８）。
【００３７】
ここで、ステップＳ２０４で作成されるロボットの動作プログラム及び工作機械の加工プログラムには、それぞれ、工作機械からの信号を受け取るまで動作プログラムの進行を停止するインターロック指令及びロボットからの信号を受け取るまで加工プログラムの進行を停止するインターロック指令が含まれているものとする。例えば、図５に示されているように、ロボットが、１）未加工のワークを把持して待機位置に移動して工作機械セルの扉が開くのを待ち、２）工作機械セルの扉の開放が完了したときに工作機械のデジタル出力端子ＤＯ１から出力される扉開完了信号をロボットのデジタル入力端子ＤＩ１を通して受け取ると、開いた扉を通してワークを工作機械セルのテーブル上に配置した後に待機位置まで戻って、ロボットのデジタル出力端子ＤＯ２から待機位置復帰信号を出力すると共に、工作機械によるワークの加工が完了して工作機械セルの扉が開くまで待機し、３）工作機械によるワークの加工が完了して工作機械セルの扉が再び開いたときに工作機械のデジタル出力ＤＯ１から出力される扉開完了信号をロボットのデジタル入力端子ＤＩ１を通して受け取ると、工作機械セルのテーブル上から加工済みワークを取り出すように、動作プログラムが作成される。また、工作機械が、１）工作機械セルの扉を開いて、扉の開放が完了すると工作機械のデジタル出力端子ＤＯ１から扉開完了信号を出力し、２）扉を通してロボットによって工作機械セルのテーブル上に未加工のワークが配置され、ロボットが待機位置に戻ったときにロボットのデジタル出力端子ＤＯ２から出力される待機位置復帰信号を工作機械のデジタル入力端子ＤＩ２を通して受け取ると、工作機械セルの扉を閉じて加工を開始し、３）ワークの加工が完了すると、工作機械セルの扉を開いて、扉の開放が完了すると工作機械のデジタル出力端子ＤＯ１から扉開完了信号を出力し、ロボットによって工作機械セルのテーブル上から加工済みのワークが取り出されるのを待つように、加工プログラムが作成される。
【００３８】
以上の準備が完了した後、シミュレーション装置１０によるシミュレーションが開始される（ステップＳ２１０）。シミュレーションが開始されると、シミュレーションの開始時刻を経過時刻ｔ＝０として、図２に示される場合と同じように、ロボット動作演算部１２において仮想ロボット上で実際のロボットの動作プログラムが実行され、工作機械動作演算部１４において仮想工作機械上で実際の工作機械の加工プログラムが実行される（ステップＳ２１２）。
【００３９】
すると、ロボット動作演算部１２は、動作プログラムに従って経過時刻ｔまで仮想ロボットを動作させたときの仮想ロボットの動作位置及び信号状態を求め、求められた動作位置及び信号状態を経過時刻ｔにおけるロボットの動作位置及び信号状態として出力した後、ロボットシミュレーションの時間経過を止めた状態で次の経過時刻の指定を待つ。一方、工作機械動作演算部１４によって行われる工作機械のシミュレーションでは、工作機械シミュレーションソフトウェアが連続的に実行され、工作機械シミュレーションの時間の経過を止めることができない。このため、工作機械動作演算部１４は、加工プログラムに従って仮想工作機械による加工を行ったときの工作機械のテーブル及び工具などの動作位置及び信号状態を連続的に求め、ステップＳ２０８で予め設定された単位時間ｔｕ毎に、求められた動作位置及び信号状態を経過時間と対応付けて工作機械動作記憶部１８に記憶させていく。なお、図３に示されている実施形態では、ロボット動作演算部２０及び工作機械演算部２２が、ロボット及び工作機械の動作位置に加えて信号状態も求める点において図２に示されている実施形態と異なっている。
【００４０】
生産システム全体のシミュレーションにおいては、まず、シミュレーション管理部２４が、ステップＳ２０６で設定された表示の更新間隔時間ｔｄを動作時間とみなして、表示装置２６上で表示されているシミュレーション結果の経過時刻から更新間隔時間ｔｄだけ経過した時刻を指定経過時間ｔとしてロボット実行管理部２０及び工作機械実行管理部２２に指定する。ロボット実行管理部２０は、指定経過時刻ｔが指定されると、指定経過時刻ｔまで動作プログラムに従って仮想ロボットを動作させたときの仮想ロボットの動作位置及び信号状態をロボット動作演算部１２に求めさせ、求められた動作位置及び信号状態を指定経過時刻ｔにおけるロボットの動作位置及び信号状態として取得する（ステップＳ２１４）。ロボット動作演算部１２によって求められたロボットの動作位置及び信号状態に関する情報は、直接的にロボット実行管理部２０に引き渡されてもよく、ロボット動作記憶部１６に一時的に記憶させた後にロボット実行管理部２０に引き渡されてもよい。一方、工作機械実行管理部２２は、指定経過時刻ｔが指定されると、経過時刻ｔにおける工作機械の動作位置及び信号状態が工作機械動作記憶部１８に記憶されているかを確認し（ステップＳ２１６）、記憶されているときには、経過時刻ｔにおける工作機械の動作位置及び信号状態を工作機械動作記憶部１８から取得する（ステップＳ２１８）。経過時刻ｔにおける工作機械の動作位置及び信号状態が工作機械動作記憶部１８に記憶されていないときには、工作機械実行管理部２２は、経過時刻ｔにおける工作機械の動作位置及び信号状態が工作機械動作演算部１４によって求められて工作機械動作記憶部１８に記憶されるまで待つ。
【００４１】
ロボット実行管理部２０及び工作機械実行管理部２２は、それぞれ指定経過時刻ｔにおけるロボット及び工作機械の動作位置及び信号状態に関する情報を取得すると、取得した情報をシミュレーション管理部２４に引き渡す。シミュレーション管理部２４は、ロボット実行管理部２０及び工作機械実行管理部２２から指定経過時刻ｔにおける動作位置及び信号状態に関する情報を取得すると、取得した動作位置に関する情報に基づいて、ロボット、ワーク、工作機械のテーブル及び工具などの表示用位置（姿勢を含む）を変更する（ステップＳ２２０）と共に、取得した信号状態に関する情報に基づいて、ロボット及び工作機械の信号状態を変更する（ステップＳ２２２）。そして、シミュレーション結果の表示を更新させるために、表示装置２６上に変更後の位置のロボット、ワーク、工作機械のテーブル及び工具を表示させる（ステップＳ２２４）。なお、ワークの位置は、ロボットに把持されている場合にはロボットの位置から、工作機械のテーブル上に配置されているときには工作機械のテーブルの位置から、求められる。
【００４２】
シミュレーション管理部２４は、表示装置２６のシミュレーション結果の表示が更新されると、ロボットの動作プログラム及び工作機械の加工プログラムが終了したかを確認し（ステップＳ２２６）、動作プログラム及び加工プログラムが終了している場合には、シミュレーションの実行を終了する。一方、動作プログラム及び加工プログラムが終了していなければ、シミュレーション管理部２４は、動作プログラム及び加工プログラムが終了するまで、指定経過時刻ｔに更新間隔時間ｔｄを加算したものを新たな指定経過時刻ｔとしてステップＳ２１４〜ステップＳ２２６を繰り返す（ステップＳ２２８）。
【００４３】
このように図１に示されているシミュレーション装置１０によれば、経過時間を制御できるシミュレーションソフトウェアと経過時間を制御できないシミュレーションソフトウェアという種類の異なるシミュレーションソフトウェアを用いて、種類の異なるロボットと工作機械の動作のシミュレーションを同時に行い、ロボット及び工作機械を含む生産システム全体のシミュレーション結果として、ロボットシミュレーション及び工作機械シミュレーションの結果に従って各経過時刻におけるロボット及び工作機械を表示装置２６上に同時に表示することができる。したがって、ロボットと工作機械の両方を含んだ生産システム全体の検討が容易になる。また、実際のロボットや工作機械によって構成された生産ラインを用いることなく、実際のロボットに使用される動作プログラムに従ったロボットの動作位置や実際の工作機械に使用される加工プログラムに従った工作機械の動作位置を正確に確認することが可能になり、現場での調整作業を簡単かつ短時間で行うことが可能になる。
【００４４】
以上、図示された実施形態を参照して、本発明のシミュレーション装置１０を説明したが、本発明は図示される実施形態に限定されるものではない。例えば図示される実施形態では、一台のロボットと一台の工作機械によって構成される生産ラインのシミュレーションを行っているが、二台以上のロボットや二台以上の工作機械を使用する生産ラインのシミュレーションも同様に行うことが可能である。また、図示される実施形態では、ロボットのシミュレーションにおいて時間の経過を止めることができるシミュレーションソフトウェア（すなわち、経過時間の制御ができるシミュレーションソフトウェア）を使用し、工作機械のシミュレーションにおいて時間の経過を止めることができないシミュレーションソフトウェア（すなわち、経過時間の制御ができないシミュレーションソフトウェア）を使用しているが、逆に、ロボットのシミュレーションにおいて時間の経過を止めることができないシミュレーションソフトウェアを使用し、工作機械のシミュレーションにおいて時間の経過を止めることができるシミュレーションソフトウェアを使用することもできる。
【図面の簡単な説明】
【００４５】
【図１】本発明のシミュレーション装置の機能ブロック図である。
【図２】ロボットの動作プログラム及び工作機械の加工プログラムにインターロック指令が含まれていない場合における図１に示されているシミュレーション装置によるシミュレーションの流れを示すフローチャートである。
【図３】ロボットの動作プログラム及び工作機械の加工プログラムにインターロック指令が含まれている場合における図１に示されているシミュレーション装置によるシミュレーションの流れを示すフローチャートである。
【図４】ロボットと工作機械の間の信号線の配線図である。
【図５】インターロック指令が含まれるロボットの動作プログラムと工作機械の加工プログラムとの間の信号のやり取りの例を示す説明図である。
【符号の説明】
【００４６】
１０    シミュレーション装置
１２    ロボット動作演算部
１４    工作機械動作演算部
１６    ロボット動作記憶部
１８    工作機械動作記憶部
２０    ロボット実行管理部
２２    工作機械実行管理部
２４    シミュレーション管理部
２６    表示装置
【図１】
2010140359.tif 000003
【図２】
2010140359.tif 000004
【図３】
2010140359.tif 000005
【図４】
2010140359.tif 000006
【図５】
2010140359.tif 000007