(57)【要約】【課題】装置実機を必要としないシミュレーションを実時間で行うことのできるモーションコントローラ、シミュレーション方法及びシミュレーションプログラムを提供すること。【解決手段】モーションコントローラは、装置の動作を制御するためのモーションプログラムの実行処理を所定時間毎に行う動作実行部と、所定時間毎に行われる動作実行部による処理後の空き時間に、装置の動作のシミュレーションを行うシミュレーション実行部と、を備える。【選択図】図１
2009244952.tif 000002
【特許請求の範囲】
【請求項１】
装置の動作を制御するためのモーションプログラムの実行処理を所定時間毎に行う動作実行部と、
所定時間毎に行われる前記動作実行部による処理後の空き時間に、前記装置の動作のシミュレーションを行うシミュレーション実行部と、
を備えたことを特徴とするモーションコントローラ。
【請求項２】
請求項１に記載のモーションコントローラであって、
前記シミュレーション実行部は、前記装置の動作がデータ記述形式で定義されたシミュレーション条件定義ファイルを利用して、前記シミュレーションを行うことを特徴とするモーションコントローラ。
【請求項３】
装置の動作を制御するためのモーションプログラムの実行処理を所定時間毎に行う動作実行部と、
所定時間毎に行われる前記動作実行部による処理後の空き時間に、前記装置の動作のシミュレーションを行うシミュレーション実行部と、を備えたモーションコントローラが行うシミュレーション方法であって、
前記動作実行部が前記モーションプログラムの実行処理を所定時間毎に行うメイン処理ステップと、
前記動作実行部による処理後の空き時間に、前記シミュレーション実行部が前記シミュレーションを行うシミュレーション処理ステップと、
を有することを特徴とするシミュレーション方法。
【請求項４】
請求項３に記載のシミュレーション方法であって、
前記シミュレーション処理ステップでは、前記装置の動作がデータ記述形式で定義されたシミュレーション条件定義ファイルを利用して、前記シミュレーション実行部が前記シミュレーションを行うことを特徴とするシミュレーション方法。
【請求項５】
コンピュータを、
装置の動作を制御するためのモーションプログラムの実行処理を所定時間毎に行う動作実行部、及び
所定時間毎に行われる前記動作実行部による処理後の空き時間に、前記装置の動作のシミュレーションを行うシミュレーション実行部として機能させるためのシミュレーションプログラム。
【請求項６】
請求項５に記載のシミュレーションプログラムであって、
前記シミュレーション実行部は、前記装置の動作がデータ記述形式で定義されたシミュレーション条件定義ファイルを利用して、前記シミュレーションを行うことを特徴とするシミュレーションプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、装置実機を必要としないシミュレーションを行うモーションコントローラ、シミュレーション方法及びシミュレーションプログラムに関する。
【背景技術】
【０００２】
製造装置を駆動する制御デバイスを高速かつ高精度に制御するために、リアルタイムＯＳ上で動作するモーションコントローラが使用されている。従来、モーションコントローラを使用した装置のモーションプログラム、すなわち動作プログラムのデバッグの際には、実際に装置実機が利用されている。
【０００３】
図５は、装置実機を利用したプログラムのデバッグ環境を示すブロック図である。ユーザインターフェイスパソコン（以下「ＵＩパソコン」という。）１のユーザは、ＵＩパソコン１にインストールされているユーザインターフェイスソフトウェア（以下「ＵＩソフトウェア」という。）２を用いてモーションプログラム３を作成し、ネットワーク４を介してモーションコントローラ７にモーションプログラム３を転送する。モーションコントローラ７に転送されたモーションプログラム３は、ＵＩパソコン１からネットワーク４を介して送られたプログラム起動コマンド等に応じて実行される。
【０００４】
モーションコントローラ７は、インタプリタエンジンを有する動作実行部８を備える。動作実行部８は、インタプリタエンジンでモーションプログラム３を処理し、実時間でモーションプログラム３を実行する。モーションプログラム３を実行した動作実行部８は、制御出力信号１０を出力し、装置実機９を駆動する。制御出力信号１０の内容は、例えば、ＮＣ軸の場合には軸の速度や位置座標であり、シリンダや温調器の場合にはデジタル出力値やアナログ出力値であり、画像処理の場合には画像サーチ指令である。
【０００５】
装置実機９は、モーションコントローラ７からの制御出力信号１０に応じた動作結果として、装置実機９の状態等を示す制御入力信号１１をモーションコントローラ７に返す。制御入力信号１１の内容は、例えば、ＮＣ軸の場合には軸のフィードバック座標であり、シリンダや温調器の場合には装置実機９に設けられたセンサからのデジタル入力値やアナログ入力値であり、画像処理の場合には画像サーチ結果である。モーションコントローラ７は、ＵＩパソコン１から指定されたモーションプログラム３を全て実行することにより装置実機９を駆動し、装置実機９から得られた制御入力信号１１が示す装置実機９の動作状況等の情報を、ネットワーク４を介してＵＩパソコン１に送る。
【０００６】
ＵＩソフトウェア２は、モーションコントローラ７から送られた装置実機９の動作状況等の情報をＵＩパソコン１のモニタ（図示せず）に表示する。ＵＩパソコン１のユーザは、モニタに表示された装置実機９の動作状況や動作ログ等を参照して、モーションプログラム３が動作仕様通りに動作したか否かを確認する。ユーザが、モーションプログラム３にバグがあると判断した場合、ユーザは、ＵＩソフトウェア２を用いてモーションプログラム３を修正、すなわちデバッグし、デバッグしたモーションプログラム３をモーションコントローラ７へ再度転送する。
【０００７】
【特許文献１】特開平７−２２５６０５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上記説明した装置実機を利用したプログラムのデバッグ環境では、モーションプログラム３のデバッグを行うため装置実機９を実際に動作させる。このため、装置実機９が用意されるまではモーションプログラム３を実行してデバッグを行うことができない。その結果、デバッグを行うまでに必要な期間が増す。また、モーションプログラム３のバグによっては、装置実機９に無理な負荷かかり破損する可能性もある。
【０００９】
したがって、装置実機を実際に利用しなくてもモーションプログラムのデバッグが可能な、シミュレータを利用したデバッグ環境が望ましい。但し、当該環境を構築するためには、特許文献１に開示されているように、装置実機の動作をシミュレーションするための機器（シミュレータ）やソフトウェアが別途必要である。また、例えばWindows（登録商標）といった汎用ＯＳ上で動作するパソコンをシミュレータとして用いた場合、ＯＳの処理やアプリケーションソフトウェアの影響等によって処理時間にバラツキが生じるため、シミュレーションに実時間（リアルタイム）性を確保できない。このため、装置実機を利用せずにシミュレータを利用したデバッグ環境では、装置実機を利用したデバッグ環境と比較して正確なシミュレーションができない。
【００１０】
本発明の目的は、装置実機を必要としないシミュレーションを実時間で行うことのできるモーションコントローラ、シミュレーション方法及びシミュレーションプログラムを提供することである。
【課題を解決するための手段】
【００１１】
本発明は、装置の動作を制御するためのモーションプログラムの実行処理を所定時間毎に行う動作実行部と、所定時間毎に行われる前記動作実行部による処理後の空き時間に、前記装置の動作のシミュレーションを行うシミュレーション実行部と、を備えたモーションコントローラを提供する。
【００１２】
上記モーションコントローラでは、前記シミュレーション実行部は、前記装置の動作がデータ記述形式で定義されたシミュレーション条件定義ファイルを利用して、前記シミュレーションを行う。
【００１３】
本発明は、装置の動作を制御するためのモーションプログラムの実行処理を所定時間毎に行う動作実行部と、所定時間毎に行われる前記動作実行部による処理後の空き時間に、前記装置の動作のシミュレーションを行うシミュレーション実行部と、を備えたモーションコントローラが行うシミュレーション方法であって、前記動作実行部が前記モーションプログラムの実行処理を所定時間毎に行うメイン処理ステップと、前記動作実行部による処理後の空き時間に、前記シミュレーション実行部が前記シミュレーションを行うシミュレーション処理ステップと、を有するシミュレーション方法を提供する。
【００１４】
上記シミュレーション方法では、前記シミュレーション処理ステップで、前記装置の動作がデータ記述形式で定義されたシミュレーション条件定義ファイルを利用して、前記シミュレーション実行部が前記シミュレーションを行う。
【００１５】
本発明は、コンピュータを、装置の動作を制御するためのモーションプログラムの実行処理を所定時間毎に行う動作実行部、及び所定時間毎に行われる前記動作実行部による処理後の空き時間に、前記装置の動作のシミュレーションを行うシミュレーション実行部として機能させるためのシミュレーションプログラムを提供する。
【００１６】
上記シミュレーションプログラムでは、前記シミュレーション実行部は、前記装置の動作がデータ記述形式で定義されたシミュレーション条件定義ファイルを利用して、前記シミュレーションを行う。
【発明の効果】
【００１７】
本発明に係るモーションコントローラ、シミュレーション方法及びシミュレーションプログラムによれば、装置実機を必要としないシミュレーションを実時間で行うことができる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明に係る実時間シミュレーションシステムの実施形態について、図面を参照して説明する。なお、以下説明する実時間シミュレーションシステムは、半導体製造装置や液晶製造装置等を構成する、モーションプログラムによって動作するＮＣ軸等のデバイスや温調器等のデバイス及び画像処理装置等のデバイス等の各動作をシミュレーションした結果に基づいて、各デバイスを駆動するモーションプログラムのデバッグを行うためのシステムである。
【００１９】
図１は、本発明に係る実時間シミュレーションシステムの一実施形態の構成を示すブロック図である。図１に示す実時間シミュレーションシステムは、ユーザインターフェイスパソコン（以下「ＵＩパソコン」という。）１００と、モーションコントローラ２００と、ＵＩパソコン１００及びモーションコントローラ２００を通信可能に接続するネットワーク１５０とを備える。
【００２０】
ＵＩパソコン１００には、ユーザインターフェイスソフトウェア（以下「ＵＩソフトウェア」という。）１０１と、シミュレータソフトウェア１０３とがインストールされている。ＵＩソフトウェア１０１は、ＵＩパソコン１００のユーザからの指示又は操作に応じて、モーションプログラム１０５を作成する。モーションプログラム１０５は、モーションコントローラ２００で実行されることによって制御対象を駆動するためのプログラムである。ＵＩソフトウェア１０１によって作成されたモーションプログラム１０５は、ネットワーク１５０を介してＵＩパソコン１００からモーションコントローラ２００に転送される。モーションプログラム１０５の転送は、ユーザ操作に応じて適宜行われても良い。
【００２１】
シミュレータソフトウェア１０３は、ＵＩパソコン１００のユーザからの指示又は操作に応じて、シミュレーションにおける制御対象デバイスの動作を定義するシミュレーション条件定義ファイル１０７を作成する。シミュレーション条件定義ファイル１０７には、どのデバイスが、どのような条件でオン又はオフし、どのような出力形態で数値又はデータを出力するかが設定されている。図２は、シミュレーション条件定義ファイル１０７の一例を示す図である。図２に示すように、シミュレーション条件定義ファイル１０７は、テーブル状のデータ記述構造を有する。
【００２２】
図２に示すシミュレーション条件定義ファイル１０７の１行目には、デジタル出力デバイス（ＤＯ）の９７番がオフ（０）のとき、１０００ｍ秒後にデジタル入力デバイス（ＤＩ）の９９番をオンする設定が記述されている。また、２行目には、２軸の座標が２以下のとき、ＤＩの１０７番をオンする設定が記述されている。さらに、３行目には、ＤＯの１１３番がオン（１）又は７１１７０番地が１のとき、７１１７０番地をオンする設定が記述されている。なお、図２中の変数Ｂはメモリの番地（アドレス）を示す。
【００２３】
図２の３行目に記述されているように、シミュレーション条件定義ファイル１０７には複数の条件判定を設定可能であり、各条件判定が論理演算によって接続される。図２の３行目に示した例では、条件判定１と条件判定２が記号「||」によって表される論理和（ＯＲ）の関係を有する。シミュレーション条件定義ファイル１０７には、論理和の他、記号「&&」によって表される論理積（ＡＮＤ）等も設定可能である。また、設定可能な条件判定の数は２つに限らず、３つ以上であっても良い。
【００２４】
シミュレータソフトウェア１０３によって作成されたシミュレーション条件定義ファイル１０７は、ネットワーク１５０を介してＵＩパソコン１００からモーションコントローラに転送される。シミュレーション条件定義ファイル１０７の転送は、ユーザ操作に応じて適宜行われても良い。
【００２５】
モーションコントローラ２００は、動作実行部２０１と、シミュレータエンジン２０３と、メモリ２０５とを有する。モーションコントローラ２００は、ＵＩパソコン１００から転送されたモーションプログラム１０５及びシミュレーション条件定義ファイル１０７をメモリ２０５に格納する。動作実行部２０１は、ＵＩパソコン１００からネットワーク１５０を介して送られたプログラム起動コマンドに応じて、メモリ２０５からモーションプログラム１０５を読み出して実行する。以下、動作実行部２０１によるモーションプログラム１０５の実行処理を「メイン処理」という。動作実行部２０１がメイン処理を行うと、動作実行部２０１はシミュレータエンジン２０３に制御出力信号２０７を出力し、シミュレータエンジン２０３を駆動する。シミュレータエンジン２０３は、メモリ２０５に格納されているシミュレーション条件定義ファイル１０７を参照して、制御対象デバイスの動作のシミュレーションを行う。以下、シミュレータエンジン２０３によるシミュレーションを「シミュレーション処理」という。
【００２６】
図３は、モーションコントローラ２００で行われる各処理のタイミングチャートである。図３に示すように、動作実行部２０１によるメイン処理は、１ｍ秒の間隔で行われる。１ｍ秒毎に行われるメイン処理は平均して５００μ秒未満で終了する。本実施形態では、動作実行部２０１が１ｍ秒毎にメイン処理を再開するまでの間、シミュレータエンジン２０３がシミュレーション処理を行う。すなわち、メイン処理後の空き時間が１ｍ秒毎にあれば、そのたびにシミュレーション処理も行われる。このように、シミュレーション条件定義ファイル１０７が１ｍ秒毎にインタプリタ処理されるため、シミュレータエンジン２０３が行うシミュレーション処理に実時間（リアルタイム）性を確保することができる。
【００２７】
モーションプログラム１０５により動作するデバイスは、数ｍ秒程度の応答時間を要する。このため、メイン処理後の空き時間にシミュレーション処理を行っても、当該デバイスの応答時間内にシミュレータエンジン２０３を起動し、かつシミュレータエンジン２０３が当該デバイスのシミュレーションを完了することができる。したがって、モーションプログラム１０５により動作するデバイスの動作を実時間で誤差なくシミュレーションすることができる。
【００２８】
図４は、モーションコントローラ２００の動作を示すフローチャートである。図４に示すように、動作実行部２０１は、１ｍ秒毎に割込処理を行い、メイン処理を実行する（ステップＳ１０１）。動作実行部２０１がメイン処理を行った後、シミュレータエンジン２０３がシミュレーション処理を実行する（ステップＳ１０３）。
【００２９】
シミュレータエンジン２０３は、シミュレーション処理の実行によって得られたデータ又は値をメモリ２０５に格納する。シミュレーション処理の実行によって得られるデータ又は値とは、例えば、ＮＣ軸の場合には軸のフィードバック座標であり、シリンダの場合には当該シリンダの状態を示すデジタル値、温調器の場合には温度データのアナログ値であり、画像処理の場合には画像サーチ結果である。但し、これらのデータ又は値は、シミュレーション処理によって得られた仮想データ又は仮想値である。
【００３０】
モーションコントローラ２００は、シミュレーション処理の実行によって得られたデータ又は値を、ネットワーク１５０を介してＵＩパソコン１００に送る。ＵＩパソコン１００のシミュレータソフトウェア１０３は、モーションコントローラ２００から送られたデータ又は値をＵＩパソコン１００のモニタ（図示せず）に表示する。ＵＩパソコン１００のユーザは、モニタに表示されたデバイスの動作状況や動作ログ等を参照して、モーションプログラム１０５が動作仕様通りに動作したか否かを確認する。ユーザが、モーションプログラム１０５にバグがあると判断した場合、ユーザは、ＵＩソフトウェア１０１を用いてモーションプログラム１０５を修正、すなわちデバッグし、デバッグしたモーションプログラム１０５をモーションコントローラ２００へ再度転送する。
【００３１】
以上説明したように、本実施形態の実時間シミュレーションシステムによれば、モーションコントローラ２００は、１ｍ秒毎に行うメイン処理後の空き時間にシミュレーション処理を行うため、制御対象デバイスの動作シミュレーションを実時間で行うことができる。また、シミュレーション処理を行う際に利用されるシミュレーション条件定義ファイル１０７には、シミュレーションの内容がテーブル状にデータ記述されるため、プログラムで記述する方法よりも容易にシミュレーション内容を定義することができる。
【００３２】
また、動作実行部２０１によるメイン処理もシミュレータエンジン２０３によるシミュレーション処理もモーションコントローラ２００で行われるため、シミュレーションのための機器を新たに用意する必要がない。
【産業上の利用可能性】
【００３３】
本発明に係るモーションコントローラ、シミュレーション方法及びシミュレーションプログラムは、装置実機を必要としない、半導体製造装置や液晶製造装置等のシミュレータ等として有用である。
【図面の簡単な説明】
【００３４】
【図１】本発明に係る実時間シミュレーションシステムの一実施形態の構成を示すブロック図
【図２】シミュレーション条件定義ファイル１０７の一例を示す図
【図３】モーションコントローラ２００で行われる各処理のタイミングチャート
【図４】モーションコントローラ２００の動作を示すフローチャート
【図５】装置実機を利用したプログラムのデバッグ環境を示すブロック図
【符号の説明】
【００３５】
１００  ユーザインターフェイスパソコン（ＵＩパソコン）
１０１  ユーザインターフェイスソフトウェア（ＵＩソフトウェア）
１０３  シミュレータソフトウェア
１０５  モーションプログラム
１０７  シミュレーション条件定義ファイル
２００  モーションコントローラ
２０１  動作実行部
２０３  シミュレータエンジン
２０５  メモリ
１５０  ネットワーク
【図１】
2009244952.tif 000003
【図２】
2009244952.tif 000004
【図３】
2009244952.tif 000005
【図４】
2009244952.tif 000006
【図５】
2009244952.tif 000007