JP5246186B2 - コントローラサポート装置、制御プログラムのシミュレーション方法、コントローラのサポートプログラムおよびコントローラのサポートプログラムを格納したコンピュータ読み取り可能な記憶媒体 - Google Patents

コントローラサポート装置、制御プログラムのシミュレーション方法、コントローラのサポートプログラムおよびコントローラのサポートプログラムを格納したコンピュータ読み取り可能な記憶媒体 Download PDF

Info

Publication number
JP5246186B2
JP5246186B2 JP2010057467A JP2010057467A JP5246186B2 JP 5246186 B2 JP5246186 B2 JP 5246186B2 JP 2010057467 A JP2010057467 A JP 2010057467A JP 2010057467 A JP2010057467 A JP 2010057467A JP 5246186 B2 JP5246186 B2 JP 5246186B2
Authority
JP
Japan
Prior art keywords
control
simulation
execution
control cycle
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2010057467A
Other languages
English (en)
Other versions
JP2011192016A (ja
Inventor
泰規 阪口
健一郎 森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Omron Corp
Original Assignee
Omron Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Omron Corp filed Critical Omron Corp
Priority to JP2010057467A priority Critical patent/JP5246186B2/ja
Priority to EP11756015.1A priority patent/EP2549344B1/en
Priority to CN201180014340.4A priority patent/CN102804087B/zh
Priority to PCT/JP2011/053032 priority patent/WO2011114825A1/ja
Priority to US13/634,907 priority patent/US9607112B2/en
Publication of JP2011192016A publication Critical patent/JP2011192016A/ja
Application granted granted Critical
Publication of JP5246186B2 publication Critical patent/JP5246186B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/406Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by monitoring or safety
    • G05B19/4069Simulating machining process on screen
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/32Operator till task planning
    • G05B2219/32352Modular modeling, decompose large system in smaller systems to simulate
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Description

本発明は、機械の動きを制御するコントローラにおいて制御周期ごとに実行される、シーケンス制御部分およびモーション制御部分を含む制御プログラムをシミュレーション実行することができるコントローラサポート装置、制御プログラムのシミュレーション方法、コントローラのサポートプログラムおよびコントローラのサポートプログラムを格納したコンピュータ読み取り可能な記憶媒体に関する。
特許文献1には、PLC(Programmable Logic Controller)プログラムの命令実行をシミュレーションするPLCシミュレータ装置が記載されている。ここでいうPLCプログラムは、具体的にはラダーダイアグラムやインストラクションリストの言語で記述されるシーケンスプログラムである。このPLCシミュレータ装置は、PLCプログラムを1命令ごとに実行し、実行結果を表示することができる。これにより、PLCプログラムのデバッグが容易にできる。
特開2001−209406号公報
一般的にシーケンスプログラムの動作確認は、命令ごとに、所定の入力条件のときに想定された出力が得られることを確認するのが基本である。
特許文献1でも言及されているように、所定の入力条件が現れるのを待つために一巡実行を多数回繰り返すことはあるが、所定の入力条件が現れれば、命令の動作自体は1周期の実行で確認することができる。
また、一巡実行を繰り返すことなく、手入力で、あるいはデバッグ用のプログラムを用いて、所定の入力条件を与えて、ある命令の動作を1周期の実行で確認することが行われている。
ところが、サーボモータ、ステッピングモータなどを駆動するモータドライバに制御周期ごとに指令値を与えてモータの動作を制御するモーション制御を含む制御プログラムにおいては、モータドライバに提供する指令値が設計時の想定どおりに算出されているかどうかを確認するためには、非常に多数の制御周期にわたってプログラムの動作を追跡する必要がある。
たとえば、制御周期が1msの場合に10秒間のモータ動作を確認するためには1万回算出される指令値の推移を確認する必要がある。この場合に、途中の任意の制御周期の指令値を調べるためには、その制御周期にいたるまで最初から制御プログラムを繰り返し実行しなければならない。
このように、プログラムのモーション制御部分については、シーケンス制御部分の場合とは異なり、所定の入力条件を与えてその制御周期のみ実行することにより動作確認するということができない。そのため、モーション制御部分を含む制御プログラムに適した動作確認の手法を新たに創出する必要がある。
その場合に次のような事情を考慮すべきである。
モーション制御においては、「現在位置から目標位置まで与えられた速度で動く」というような単位となる動きをいくつもつなげて、全体として長時間にわたる複雑な動きがプログラムされることが多い。そのような場合に、制御プログラムのモーション制御部分を修正したりモーション制御部分の起動や中断に影響するシーケンス制御部分を修正したりしてその結果を確認しようとすると、一連の動きについてまた最初からシミュレーション実行しなければならないため、プログラム修正の結果の確認に非常に時間がかかることがある。
その上、制御プログラムが、センサからの入力や手動スイッチからの入力に応じてモーション制御の内容を変化させるようになっている場合には、シミュレーションの再実行のたびに、入力内容や入力タイミングを正確に再現しなければならないことも不便である。
上記の事情を考慮した結果、発明者らは、モーション制御を含む制御プログラムをシミュレーション実行する場合に、実行の開始から終了までの間の途中の制御周期からの再実行を可能にすることができれば高い利便性が得られることを見出した。
本発明は、モーション制御を含む制御プログラムをシミュレーション実行する場合に、実行の開始から終了までの間の途中の制御周期からの再実行を可能にするコントローラサポート装置、制御プログラムのシミュレーション方法、コントローラのサポートプログラムおよびコントローラのサポートプログラムを格納したコンピュータ読み取り可能な記憶媒体を提供することを目的とする。
本発明のある局面に従うコントローラサポート装置は、機械の動きを制御するコントローラにおいて制御周期ごとに実行される、シーケンス制御部分およびモーション制御部分を含む制御プログラムをシミュレーション実行することができるコントローラサポート装置であって、制御プログラムをシミュレーション実行し実行結果データを生成するシミュレーション手段と、シミュレーション手段によって生成された実行結果データの時間的な変化を表示するための表示データを作成する表示データ作成手段と、シミュレーション手段に対するユーザの指示を受け付ける受け付け手段と、表示データ作成手段によって作成された表示データを表示することができる表示器とを備える。シミュレーション手段は、制御プログラムのシーケンス制御部分をシミュレーション実行し、シーケンス制御部分に関する実行結果データを生成するシーケンス演算実行部と、シーケンス演算実行部がシミュレーション実行するために使用するシーケンス変数記憶部と、制御プログラムのモーション制御部分をシミュレーション実行し、モーション制御部分に関する実行結果データを生成するモーション演算実行部と、モーション演算実行部がシミュレーション実行するために使用するモーション変数記憶部と、制御周期の実行回数を計数する制御周期計数部と、シミュレーションの再実行を開始することができる制御周期である再開可能制御周期に対応する実行回数のデータと、シーケンス変数記憶部およびモーション変数記憶部に記憶されているデータのうち再開可能制御周期からシミュレーションの再実行を開始するのに用いられる変数データとを含む再開用データを保存する再開用データ記憶部とを備える。シミュレーション手段は、再開可能制御周期を特定し、再開可能制御周期に対応する再開用データを再開用データ記憶部に記憶する。シミュレーション手段は、再実行を開始する制御周期を特定するための指定を受け付け手段から取得し、指定を用いて再実行を開始する制御周期を特定し、特定した制御周期に対応する保存された再開用データを用いて特定された制御周期からシミュレーションの再実行を開始する。
好ましくは、制御プログラムを編集することができる編集手段をさらに備える。編集手段は、シミュレーション手段においてシミュレーション実行されたことがある制御プログラムを修正するユーザの操作を受け付け可能にされている。シミュレーション手段は、編集手段により修正された制御プログラムについて、当該制御プログラムが修正される前に保存した再開用データを用いてシミュレーションの再実行を開始するユーザの操作を受け付け可能にされている。
好ましくは、制御プログラムのモーション制御部分は、それぞれの制御周期において、指令値を算出する状態である活性状態および活性状態でない非活性状態のいずれかの状態である。シミュレーション手段は、モーション制御部分が非活性状態から活性状態となる制御周期を基準として再開可能制御周期を特定する。
好ましくは、制御プログラムのモーション制御部分は、それぞれの制御周期において、当該モーション制御部分が実行中の状態である実行中状態および実行中状態でない非実行中状態のいずれかの状態である。シミュレーション手段は、モーション制御部分が非実行中状態から実行中状態となる制御周期を基準として再開可能制御周期を特定する。
好ましくは、シミュレーション手段は、一定間隔ごとの制御周期を再開可能制御周期として特定する。
特に、編集手段は、ユーザの操作により制御プログラムのモーション制御部分を修正する。シミュレーション手段は、修正されたモーション制御部分を特定する情報を編集手段から取得し、再開可能制御周期の中から、最も最近に修正されたモーション制御部分から再実行することができる制御周期を特定し、当該制御周期からシミュレーションの再実行を開始する。
特に、編集手段は、表示器に制御プログラムの内容をリスト表示する。受け付け手段は、リスト表示上で、再実行を開始するモーション制御部分の指定を受け付ける。シミュレーション手段は、再開可能制御周期の中から、指定されたモーション制御部分から再実行することができる制御周期を特定し、当該制御周期からシミュレーションの再実行を開始する。
好ましくは、表示データ作成手段は、実行結果データの時間的な変化をグラフとして表示するための表示データを作成する。受け付け手段は、表示器に表示されたグラフ上の位置についてのユーザの指示を受け付ける。シミュレーション手段は、再開可能制御周期の中から、ユーザによって指示されたグラフ上の位置に対応する制御周期を特定し、当該制御周期からシミュレーションの再実行を開始する。
好ましくは、表示データ作成手段は、シミュレーション手段によって生成された位置についての実行結果データの時間的な変化を2次元空間または3次元空間における軌跡として表示するための表示データを作成する。受け付け手段は、軌跡上の位置についてのユーザの指示を受け付ける。シミュレーション手段は、再開可能制御周期の中から、ユーザによって指示された軌跡上の位置に対応する制御周期を特定し、当該制御周期からシミュレーションの再実行を開始する。
好ましくは、表示データ作成手段は、実行結果データの時間的な変化を位置のリストとして表示するための表示データを作成する。受け付け手段は、表示器に表示された位置のリスト上の位置についてのユーザの指示を受け付ける。シミュレーション手段は、再開可能制御周期の中から、ユーザによって指示された位置のリスト上の位置に対応する制御周期を特定し、当該制御周期からシミュレーションの再実行を開始する。
本発明のある局面に従う制御プログラムのシミュレーション方法は、機械の動きを制御するコントローラにおいて制御周期ごとに実行される、シーケンス制御部分およびモーション制御部分を含む制御プログラムを、表示器を有するコントローラサポート装置においてシミュレーション実行する、制御プログラムのシミュレーション方法であって、ユーザの指示により制御プログラムをシミュレーション実行し、実行結果データを生成するシミュレーション演算ステップと、シミュレーション演算ステップによって生成された実行結果データの時間的な変化を表示するための表示データを作成する表示データ作成ステップと、表示データ作成ステップによって作成された表示データを表示器に表示する表示ステップとを備える。シミュレーション演算ステップは、制御プログラムのシーケンス制御部分をシミュレーション実行し、シーケンス制御部分に関する実行結果データを生成するシーケンス演算実行ステップと、制御プログラムのモーション制御部分をシミュレーション実行し、モーション制御部分に関する実行結果データを生成するモーション演算実行ステップと、制御周期の実行回数を計数する制御周期計数ステップと、シミュレーションの再実行を開始することができる制御周期である再開可能制御周期を特定するステップと、再開可能制御周期に対応する実行回数のデータと、シーケンス制御部分の実行に関係するシーケンス変数データおよびモーション制御部分の実行に関係するモーション変数データのうち再開可能制御周期からシミュレーションの再実行を開始するのに用いられる変数データとを含む再開用データを保存する再開用データ保存ステップと、再実行を開始する制御周期を特定するためのユーザによる指定を受け付け、指定を用いて再実行を開始する制御周期を特定し、特定した制御周期に対応する保存された再開用データを用いて特定された制御周期からシミュレーションの再実行を開始する再実行開始ステップとを含む。
本発明のある局面に従うコントローラのサポートプログラムは、機械の動きを制御するコントローラにおいて制御周期ごとに実行される、シーケンス制御部分およびモーション制御部分を含む制御プログラムを、表示器を有するコントローラサポート装置においてシミュレーション実行するためのコントローラのサポートプログラムである。制御プログラムは、コントローラサポート装置に対して、ユーザの指示により制御プログラムをシミュレーション実行し、実行結果データを生成するシミュレーション演算ステップと、シミュレーション演算ステップによって生成された実行結果データの時間的な変化を表示するための表示データを作成する表示データ作成ステップと、表示データ作成ステップによって作成された表示データを表示器に表示する表示ステップとを実行させる。シミュレーション演算ステップは、制御プログラムのシーケンス制御部分をシミュレーション実行しシーケンス制御部分に関する実行結果データを生成するシーケンス演算実行ステップと、制御プログラムのモーション制御部分をシミュレーション実行しモーション制御部分に関する実行結果データを生成するモーション演算実行ステップと、制御周期の実行回数を計数する制御周期計数ステップと、シミュレーションの再実行を開始することができる制御周期である再開可能制御周期を特定するステップと、再開可能制御周期に対応する実行回数のデータと、シーケンス制御部分の実行に関係するシーケンス変数データおよびモーション制御部分の実行に関係するモーション変数データのうち再開可能制御周期からシミュレーションの再実行を開始するのに用いられる変数データとを含む再開用データを保存する再開用データ保存ステップと、再実行を開始する制御周期を特定するためのユーザによる指定を受け付け、指定を用いて再実行を開始する制御周期を特定し、特定した制御周期に対応する保存された再開用データを用いて特定された制御周期からシミュレーションの再実行を開始する再実行開始ステップとを含む。
本発明のある局面に従うコントローラのサポートプログラムを格納した記録媒体は、機械の動きを制御するコントローラにおいて制御周期ごとに実行される、シーケンス制御部分およびモーション制御部分を含む制御プログラムを、表示器を有するコントローラサポート装置においてシミュレーション実行するためのコントローラのサポートプログラムを格納したコンピュータ読み取り可能な記憶媒体である。制御プログラムは、コントローラサポート装置に対して、ユーザの指示により制御プログラムをシミュレーション実行し実行結果データを生成するシミュレーション演算ステップと、シミュレーション演算ステップによって生成された実行結果データの時間的な変化を表示するための表示データを作成する表示データ作成ステップと、表示データ作成ステップによって作成された表示データを表示器に表示する表示ステップとを実行させる。シミュレーション演算ステップは、制御プログラムのシーケンス制御部分をシミュレーション実行しシーケンス制御部分に関する実行結果データを生成するシーケンス演算実行ステップと、制御プログラムのモーション制御部分をシミュレーション実行しモーション制御部分に関する実行結果データを生成するモーション演算実行ステップと、制御周期の実行回数を計数する制御周期計数ステップと、シミュレーションの再実行を開始することができる制御周期である再開可能制御周期を特定するステップと、再開可能制御周期に対応する実行回数のデータと、シーケンス制御部分の実行に関係するシーケンス変数データおよびモーション制御部分の実行に関係するモーション変数データのうち再開可能制御周期からシミュレーションの再実行を開始するのに用いられる変数データとを含む再開用データを保存する再開用データ保存ステップと、再実行を開始する制御周期を特定するためのユーザによる指定を受け付け、指定を用いて再実行を開始する制御周期を特定し、特定した制御周期に対応する保存された再開用データを用いて特定された制御周期からシミュレーションの再実行を開始する再実行開始ステップとを含む。
本発明によれば、モーション制御を含む制御プログラムをシミュレーション実行する場合に、実行の開始から終了までの間の途中の制御周期からの再実行が可能になるので、プログラムの動作確認が容易になる。
本発明の実施の形態に従う制御システムの構成を説明する図である。 本発明の実施の形態に従うPC6のハードウェア構成を説明する図である。 CPU901がコントローラサポートプログラム8を実行することにより実現される機能ブロックを説明する図である。 本発明の実施の形態に従うシミュレーション部806の機能を説明する詳細なブロック図である。 本発明の実施の形態に従う制御プログラムのデバッグ作業を説明するフロー図である。 本発明の実施の形態に従うコントローラサポートプログラム8の実行を説明するフロー図である。 本発明の実施の形態に従うシミュレーション部806におけるシミュレーション実行を説明するフロー図である。 制御周期内の処理を時系列的に配列した場合を説明する図である。 本発明の実施の形態に従う指令値が算出されている制御周期に関するシミュレーション部806におけるデータの流れを説明する図である。 本発明の実施の形態に従う指令値が算出されていない制御周期に関するシミュレーション部806におけるデータの流れについて説明する図である。 本発明の実施の形態に従うICチップ移載装置100を説明する図である。 本発明の実施の形態に従うICチップ移載装置100の動作のフローを説明する図である。 ICチップ移載装置100におけるXYZガイド50を制御する制御プログラムの一部を説明する図である。 本発明の実施の形態に従うコントローラサポートプログラムのウインドウ画面について説明する図である。 本発明の実施の形態に従う再開可能点設定方式の選択ウインドウ画面1100を説明する図である。 本発明の実施の形態に従うタイムチャートウインドウ画面1200について説明する図である。 本発明の実施の形態に従う空間軌跡表示ウインドウ画面1300を説明する図である。 本発明の実施の形態に従う軸位置のリストの表示ウインドウ画面1400を説明する図である。 本発明の実施の形態に従うBufferedモードを説明する図である。 本発明の実施の形態に従うAbortingモードにおけるFBの一部の端子について入力される信号および出力される信号のタイミングチャートを説明する図である。 本発明の実施の形態に従うBlendingNextモードにおけるFBの一部の端子について入力される信号および出力される信号のタイミングチャートを示す図である。 本発明の実施の形態に従うBlendingPreviousモードにおけるFBの一部の端子について入力される信号および出力される信号のタイミングチャートを示す図である。
以下、この発明の実施の形態について図面を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付し、その説明は繰り返さない。
図1は、本発明の実施の形態に従う制御システムの構成を説明する図である。
図1を参照して、本発明の実施の形態に従う制御システムは、サーバ2と、ネットワーク4と、PC(パーソナルコンピュータ)6と、コントローラ14と、制御対象装置16とから構成されている。
サーバ2は、ネットワーク4を介してPC6と接続されている。PC6は、制御対象装置16を制御するコントローラ14と通信可能に接続されている。
PC6は、本発明の一実施形態におけるコントローラサポート装置に相当する。PC6には、コントローラサポートプログラム8がインストールされており、また、ユーザが作成した制御プログラム10が記憶されている。CD−ROM(Compact Disc-Read Only Memory)12は、コントローラサポートプログラム8を格納している。PC6にインストールされているコントローラサポートプログラム8は、このCD−ROM12からインストールされたものである。
コントローラ14は、制御対象装置16の動きを制御する。
本発明の実施の形態においては、コントローラ14として一例として、PLC(Programmable Logic Controller)が用いられる。すなわち、このPLCには、いわゆるモーションコントロール機能が備えられている。コントローラ14は、制御対象装置16に対する制御内容を規定する制御プログラム15を記憶している。コントローラ14は、制御周期ごとに制御プログラム15を一巡実行する。ここで、コントローラ14に記憶されている制御プログラム15は、PC6に記憶されている制御プログラム10をコピーしたコピーデータであり、PC6から送信されたものである。
制御対象装置16は、サーボモータ、ステッピングモータなどのモータ18およびモータを駆動するモータドライバ17を含む。
モータ18はモータドライバ17から駆動電流を供給される。モータドライバ17は、制御プログラム15を実行するコントローラ14から制御周期ごとに位置の指令値を与えられ、それに応じた駆動電流をモータ18に供給する。モータ18がサーボモータである場合、モータ18にはエンコーダが備えられており、モータ18の回転位置の実測値がエンコーダによって検出される。モータの回転位置の実測値は、モータドライバ17がフィードバック制御に利用する。
なお、上記においては、CD−ROM12を介して、PC6にコントローラサポートプログラムをインストールする場合について説明したが、特にこれに限られず、サーバ2からネットワーク4を介してコントローラサポートプログラムをPC6にダウンロードするようにしても良い。制御プログラムについても同様である。
図2は、本発明の実施の形態に従うPC6のハードウェア構成を説明する図である。
図2を参照して、本発明の実施の形態に従うPC6は、処理手段であるCPU901と、記憶手段であるROM902、RAM903、およびHDD904と、データ読取部であるCD−ROM駆動装置908と、通信手段である通信IF909と、表示手段であるモニタ907と、入力手段であるキーボード905およびマウス906とを含む。なお、これらの部位は、内部バス910を介して互いに接続される。
HDD904は、典型的には不揮発性の磁気メモリであり、CD−ROM駆動装置908によりCD−ROM12から読取られたコントローラサポートプログラムを格納する。また、制御プログラム15も格納している。
CPU901は、HDD904に格納されている、本実施の形態に従うコントローラサポートプログラム8をRAM903などに展開して実行する。
RAM903は、揮発性メモリであり、ワークメモリとして使用される。ROM902は、一般的に、オペレーティングシステム(OS:Operating System)等のプログラムを格納している。
通信IF909は、典型的にはイーサネット(登録商標)およびUSB(Universal Serial Bus)といった汎用的な通信プロトコルをサポートし、ネットワーク4を介してサーバ2との間でデータ通信を提供するとともに、コントローラ14との間でデータ通信を提供する。
モニタ907は、液晶表示装置、CRT(Cathode Ray Tube)、プラズマディスプレイ装置などで構成され、PC6による処理結果などを表示する。キーボード905は、ユーザによるキー入力を受付け、マウス906は、ユーザによるポインティング操作を受付ける。
図3は、CPU901がコントローラサポートプログラム8を実行することにより実現される機能ブロックを説明する図である。
図3を参照して、ここでは、ユーザインタフェース部802と、表示データ作成部804と、シミュレーション部806と、制御プログラム記憶部808と、制御プログラム編集部810と、コントローラインタフェース部812とが示されている。
ユーザインタフェース部802は、PC6のモニタ907に表示するウインドウ画面の内容を作成し、また、キーボード905やマウス906によるユーザの操作を受け付ける部位である。
制御プログラム編集部810は、ユーザに制御プログラムの入力および編集を行わせる。制御プログラムを実行するためにコンパイルが必要である場合はコンパイルも行う。作成された制御プログラムは、コントローラインタフェース部812を介してコントローラ14に送られる。また、作成された制御プログラムは、HDD904の所定領域である制御プログラム記憶部808に格納される。また、制御プログラム編集部810は、コントローラインタフェース部812を介してコントローラ14に記憶されている制御プログラム15を読み出して編集することもできる。
シミュレーション部806は、コントローラ14のシミュレータである。シミュレーション部806は、制御プログラム記憶部808に記憶された制御プログラム10に従ってコントローラ14が制御プログラム15を実行する動作をシミュレートし、コントローラ14が制御周期ごとに出力するはずの位置の指令値を算出する。
また、シミュレーション部806は、外部からの信号が到来して制御プログラムの動作に影響を与える状態をシミュレートしたり、制御プログラム15の実行自体によってコントローラ14のメモリの記憶内容などのコントローラ14の内部状態が変化して、その変化が制御プログラム15の動作に影響を与える状態をシミュレートしたりすることができる。
また、シミュレーション部806は、ユーザインタフェース部802を介してシミュレーション実行に関するユーザの指示を受け付ける。すなわち、ユーザインタフェース部802は、シミュレーション部806に対するユーザの指示を受け付ける手段としても働く。
表示データ作成部804は、シミュレーション部806によって作成された実行結果データの時間的な変化を表示するための表示データを作成する。表示データ作成部804は、作成した表示データをユーザインタフェース部802に送ることによりPC6のモニタ907に表示データをグラフや文字の態様で表示する。
図4は、本発明の実施の形態に従うシミュレーション部806の機能を説明する詳細なブロック図である。
図4を参照して、本発明の実施の形態に従うシミュレーション部806は、シミュレーション制御部820と、デバッグ支援部822と、制御周期計数部824と、再開用データ記憶部826と、再開用データバッファ828と、実行結果データ記憶部830と、シーケンス制御シミュレーション部840と、モーション制御シミュレーション部850とを含む。ここで、再開用データ記憶部826、再開用データバッファ828、実行結果データ記憶部830は、それぞれRAM903あるいはHDD904の所定領域が用いられるものとする。
シミュレーション制御部820は、制御プログラム記憶部808から制御プログラム10を読み込み、制御プログラム10をシミュレーション実行および途中から再実行し、それに伴って、シーケンス制御シミュレーション部840、モーション制御シミュレーション部850、制御周期計数部824、再開用データバッファ828、再開用データ記憶部826および実行結果データ記憶部830の間のデータの流れを制御する。具体的なデータの流れについては後述する。
シーケンス制御シミュレーション部840は、制御プログラム10のシーケンス制御部分を実行する。
モーション制御シミュレーション部850は、制御プログラム10のモーション制御部分を実行する。
制御プログラム10のモーション制御部分は、制御周期ごとに、モータドライバ17に与える指令値を算出する部分である。モーション制御部分は、たとえば、ラダーチャートの中で用いられるモーションファンクションブロックの形式で記述される。以下、モーションファンクションブロックを単にFBと記載することがある。
制御プログラム10のシーケンス制御部分とは、制御プログラム10のモーション制御部分以外の部分を指すこととする。シーケンス制御部分は、ラダーチャートのリレーシーケンス部分のほか、数値演算用命令または数値演算用ファンクションブロックなども含むものとする。
シーケンス制御シミュレーション部840は、シーケンス演算実行部844と、シーケンス変数記憶部846と、シーケンス演算制御部842とを含む。
シーケンス演算制御部842は、シーケンス制御部分の実行を制御する。
シーケンス演算実行部844は、シーケンス演算制御部842の指示に従って制御プログラムのシーケンス制御部分をシミュレーション実行し、シーケンス制御部分に関する実行結果データを生成する。
シーケンス変数記憶部846は、シーケンス演算制御部842の指示に従ってシーケンス制御部分の実行に関係するシーケンス変数を記憶する。なお、シーケンス変数記憶部846は、RAM903あるいはHDD904の所定領域が用いられるものとする。
モーション制御シミュレーション部850は、モーション演算実行部854と、モーション変数記憶部856と、モーション演算制御部852とを含む。
モーション演算制御部852は、モーション制御部分の実行を制御する。
モーション演算実行部854は、モーション演算制御部852の指示に従って制御プログラムのモーション制御部分をシミュレーション実行し、モーション制御部分に関する実行結果データを生成する。
モーション変数記憶部856は、モーション演算制御部852の指示に従ってモーション制御部分の実行に関係するモーション変数を記憶する。なお、モーション変数記憶部856は、RAM903あるいはHDD904の所定領域が用いられるものとする。
制御周期計数部824は、制御周期の実行回数を計数する。
再開用データバッファ828は、再開用データ記憶部826に保存される種類のデータを毎制御周期ごとに一時保存する。
再開用データ記憶部826は、少なくとも一度シミュレーションが実行された後にシミュレーションの途中から再実行を開始するために必要な再開用データを保存する。保存するデータは、再開用データバッファ828に一時保存されていたデータである。再開用データは、次の3種類のデータを含む。
第1は、シミュレーションの再実行を開始することができる再開可能制御周期に対応する制御周期の実行回数のデータである。
第2は、シーケンス変数記憶部846に記憶されているデータのうち再開可能制御周期からシミュレーションの再実行を開始するのに用いられるシーケンス変数データである。
第3は、モーション変数記憶部856に記憶されているデータのうち再開可能制御周期からシミュレーションの再実行を開始するのに用いられるモーション変数データである。
実行結果データ記憶部830は、表示に用いる実行結果データを記憶する。
デバッグ支援部822は、制御プログラムの途中でシミュレーションを一時停止する箇所であるブレークポイントの設定や、制御プログラムを1ステップ実行するごとに一時停止するステップ実行の設定などの、デバッグの際に用いる機能を提供する。デバッグ支援部822は、ユーザインタフェース部802を介して、シミュレーションの実行および途中からの再実行やその他のデバッグ機能に関するユーザの指示を受け付け、シミュレーション制御部820にユーザの指示に基づく動作を行わせる。
シミュレーション部806は、シミュレーション部806を構成する各部が協調して働くことにより、再実行を開始する制御周期を特定するための指定をユーザインタフェース部802を介して取得し、この指定を用いて再実行を開始する制御周期を特定し、特定した制御周期に対応する再開用データを用いて、特定した制御周期からシミュレーションの再実行を開始する。
図5は、本発明の実施の形態に従う制御プログラムのデバッグ作業を説明するフロー図である。
図5を参照して、まず、制御プログラムを作成する(ステップS0)。そして、次に、制御プログラムをシミュレーション実行する(ステップS2)。そして、次に、想定どおりの結果が取得できたかどうかを判断する(ステップS4)。ステップS4において、想定でおりの結果が取得できたと判断した場合には、ステップS6に進み、実機であるコントローラ14で動作確認し、必要に応じてコントローラサポートプログラム8に従ってPC6において制御プログラムを修正する。そして、処理を終了する。
一方、ステップS4において、想定どおりの結果が取得できなかったと判断した場合(ステップS4においてNO)には、制御プログラムを修正する(ステップS8)。そして、再び、ステップS2に戻り、修正した制御プログラムに基づいてシミュレーション実行する。以降の処理については、上述したのと同様であるのでその詳細な説明は繰り返さない。なお、想定どおりの結果が取得された制御プログラムは、制御プログラム記憶部808に記憶されるものとする。
図6は、本発明の実施の形態に従うコントローラサポートプログラム8の実行を説明するフロー図である。
図6を参照して、まず、制御プログラム10を準備する(ステップS10)。制御プログラム10の準備は、種々の方式があり、たとえば、図5で説明したように新規入力により作成され、制御プログラム記憶部808に記憶された制御プログラムを用いることが可能である。あるいは、記憶媒体(CD−ROM12)またはネットワーク4を介してサーバ2から当該制御プログラムを読み込むことも可能である。あるいは、実機であるコントローラ14から読み込むようにしても良い。
そして、次に、シミュレーション部806は、ユーザの指示により制御プログラム10をシミュレーション実行し、実行結果データを生成する(ステップS14)。
そして、表示データ作成部804は、実行結果データの時間的な変化を表示するための表示データを作成する(ステップS16)。
次に、ユーザインタフェース部802は、表示データをモニタ907に表示する(ステップS18)。
そして、次に、制御プログラム編集部810は、修正開始の指示が有ったかどうかを判断する(ステップS20)。具体的には、制御プログラム編集部810は、ユーザインタフェース部802を介してユーザから修正開始の指示があったかどうかを判断する。
ステップS20において、制御プログラム編集部810は、ユーザインタフェース部802を介してユーザから修正開始の指示が有ったと判断した場合(ステップS20においてYES)には、ユーザの指示により制御プログラムを修正する(ステップS22)。そして、再び、ステップS12に戻り、ユーザの指示により制御プログラムをシミュレーション実行する(ステップS12)。以降の処理は同様である。
一方、ステップS20において、制御プログラム編集部810は、修正開始の指示が無かったと判断した場合(ステップS20においてNO)には、ユーザの指示により実機であるコントローラ14に制御プログラムを送信する(ステップS24)。そして、処理を終了する。
次に、図6のステップS12におけるユーザの指示により制御プログラムをシミュレーション実行する処理と、ステップS14における実行結果データを生成する処理の具体的な内容について説明する。
図7は、本発明の実施の形態に従うシミュレーション部806におけるシミュレーション実行を説明するフロー図である。
図7を参照して、まず、シミュレーション制御部820は、初期化処理または再開初期処理を実行する(ステップS30)。ここで、「初期化処理」とは、制御プログラムを最初の制御周期から実行する場合に、変数の値を初期化するなどの処理を意味する。また、「再開初期処理」とは、制御プログラムを途中の制御周期から再実行する場合に、再開用データ記憶部826から再開用データを読み込み、それを用いてシミュレーションの再実行を開始する準備を行う処理を意味する。
次に、シミュレーション制御部820は、I/Oリフレッシュ処理のシミュレーションを実行する(ステップS32)。「I/Oリフレッシュ処理」は、出力処理と入力処理とからなる。
出力処理は、前の周期における実行結果データを出力する処理である。
出力処理は、制御プログラムのシーケンス制御部分の実行結果である出力変数データを出力する処理と、制御プログラムのモーション制御部分の実行結果である指令値を出力する処理とを含む。
実際のコントローラ14では、出力変数データはI/Oユニットを経由して制御対象装置16に送られ、そのアクチュエータの駆動などに使用される。また、指令値はモータドライバ17に送られ、制御対象装置16のモータ18の制御に使用される。しかし、シミュレーション実行の場合は実行結果データが制御対象装置16に実際に送られることはなく、実行結果データの一部が実行結果データ記憶部830に記憶される。
入力処理は、シーケンス制御部分が使用する入力変数データ、モーション制御部分が使用する位置データなどを取り込む処理である。シミュレーション実行の場合、入力変数データは、ユーザが手動で与えたり、制御対象装置の動作を模倣するデバッグ用のプログラムが与えたりする。位置データは、前の周期における位置の指令値をそのまま採用することができる。
そして、次に、シーケンス制御シミュレーション部840は、制御プログラムのシーケンス制御部分を1周期分シミュレーション実行し、シーケンス制御部分に関する実行結果を生成する(ステップS36)。
次に、モーション制御シミュレーション部850は、モーション制御部分を1周期分シミュレーション実行し、モーション制御部分に関する実行結果を生成する(ステップS38)。
そして、次に、シミュレーション制御部820は、制御周期番号をインクリメント更新する(ステップS40)。
そして、シミュレーション制御部820は、実行中の制御周期が再開可能制御周期かどうかを判断する(ステップS42)。すなわち、実行中の制御周期が、後述する「FBのActive ON」、「FBのBusy ON」、「一定間隔」などの指定された再開可能制御周期の条件に合致している場合には、実行中の制御周期は再開可能制御周期であると判断する。この判断により一連の制御周期の中から再開可能制御周期が特定される。なお、再開可能制御周期の条件が「一定間隔」である場合には、あらかじめ再開可能制御周期である制御周期のリストを用意することによって再開可能制御周期を特定することもできる。この場合には、当該リストと照合することによって、実行中の制御周期が再開可能制御周期かどうかを判断することができる。
ステップS42において、シミュレーション制御部820は、再開可能制御周期であると判断した場合には(ステップS42においてYES)前の制御周期で更新された再開用データバッファ828の内容を再開用データ記憶部826に保存する(ステップS44)。
そして、ステップS46に進む。
一方、ステップS42において、シミュレーション制御部820は、再開可能制御周期でないと判断した場合(ステップS42においてNO)には、シーケンス制御シミュレーション部840およびモーション制御シミュレーション部850において生成された実行結果に基づいて再開用データバッファ828の内容を更新する(ステップS46)。
そして、次に、シミュレーション制御部820は、シミュレーション実行が終了したかどうかを判断する(ステップS48)。
ステップS48において、シミュレーション制御部820は、シミュレーション実行が終了したと判断した場合には処理を終了する。
一方、ステップS48において、シミュレーション制御部820は、シミュレーション実行が終了していないと判断した場合(ステップS48においてNO)には、ステップS32に戻り、インクリメント更新した次の制御周期番号に従ってステップS32におけるI/Oリフレッシュのシミュレーションを実行する。そしてシミュレーション実行が終了するまで上記した処理を繰り返す。
本実施の形態に従うコントローラサポートプログラムにおいては、図6に示されるように、制御プログラム編集部810は、シミュレーション部806においてシミュレーション実行されたことがある制御プログラムを修正するユーザの操作を受け付け可能にされている。
また、図7に示されるように、シミュレーション部806は、制御プログラム編集部810により修正された制御プログラムについて、当該制御プログラムが修正される前に保存した再開用データを用いてシミュレーションの再実行を開始するユーザの操作を受け付け可能にされている。
したがって、修正によって実行結果が影響を受ける制御プログラムの部分が実行される制御周期より前の制御周期をユーザが指定してシミュレーションの再実行を開始すれば、修正の影響が及ぶ制御プログラムの部分の動作を迅速に確認することができる。
図8は、制御周期内の処理を時系列的に配列した場合を説明する図である。
図8(A)を参照して、再開可能制御周期でない場合、I/Oリフレッシュ処理、シーケンス制御部分の実行、モーション制御部分の実行、制御周期番号更新の各処理を実行する。そしてその後、更新した制御周期番号とその制御周期で生成した実行結果データで再開用データバッファを上書き更新(再開用データバッファ更新)する。
図8(B)を参照して、再開可能制御周期である場合、I/Oリフレッシュ処理、シーケンス制御部分の実行、モーション制御部分の実行、制御周期番号更新の各処理を実行する。そしてその後、再開用データバッファ828に格納されている前の制御周期で更新した制御周期番号と前の制御周期で生成された実行結果データを再開用データ記憶部826に保存(再開用データ保存)する。その後、その制御周期で更新した制御周期番号とその制御周期で生成した実行結果データで再開用データバッファ828を上書き更新(再開用データバッファ更新)する。
ここで、制御周期番号更新処理、再開用データバッファ更新処理および再開用データ保存処理は、実機であるコントローラ14では実行されないシミュレーション特有の処理である。
各制御周期が占める時間は、実機であるコントローラ14では一定であるが、シミュレーション実行においても、制御周期はタイマ割り込みで開始することにより一定時間になるようにしている。
制御周期内の必要な処理を完了した後の時間はアイドリング時間である。このようにすると、シミュレーション実行の所要時間から実機であるコントローラ14における実行時間を予測する精度が高まる。その必要がなければ、制御周期内の必要な処理を完了した後、ただちに次の制御周期の処理を開始するようにしてもよい。
図9は、本発明の実施の形態に従う指令値が算出されている制御周期に関するシミュレーション部806におけるデータの流れを説明する図である。
図9を参照して、制御周期計数部824は、現在の「制御周期番号」をカウントする。「制御周期番号」とは、制御プログラムの実行開始からの制御周期の通算実行回数である。
ここで、「現在」として示されているのは、実行中の制御周期におけるデータであることを意味する。以下においても同様である。制御周期ごとに変化しうるデータであることが前提である。
また、シーケンス変数記憶部846は、シーケンス変数を記憶する。「シーケンス変数」とは、制御プログラムのシーケンス制御部分の実行に関係するデータである。シーケンス制御部分の実行のために読み込まれるデータと実行の結果書き出されるデータの両方を含む。具体的には、現在の「I/Oデータ」と、「内部変数データ」とを記憶する。
「I/Oデータ」とは、シーケンス制御部分の実行に関係する変数データであって、I/Oリフレッシュ処理の対象となるデータである。すなわち、入力変数データおよび出力変数データである。
「内部変数データ」とは、シーケンス制御部分の実行に関係する変数データであるが、プログラム内部での使用に限られ、I/Oリフレッシュ処理の対象とならないデータである。
また、モーション変数記憶部856は、モーション変数を記憶する。「モーション変数」とは、制御プログラムのモーション制御部分の実行に関係するデータである。モーション制御部分の実行のために読み込まれるデータと実行の結果書き出されるデータの両方を含む。具体的には、モーション変数として、現在の「FB設定パラメータ」と、「指令値」と、「軸の位置」と、「ActiveなFBのID」と、「BusyなFBのID」とを記憶する。
本実施形態では、モーション制御部分はモーションファンクションブロック(FB)として記述されているものとする。「FB設定パラメータ」とは、FBの動作の仕方を指定するパラメータである。FB設定パラメータは、プログラミング段階で与えられている定数値およびプログラムの実行によって値が決定される変数値でありうる。FB設定パラメータは、FBの入力値を用いてFB内で算出される2次的なパラメータを含む場合がある。たとえば、加速時間は、FBの入力値である速度と加速度から算出されて加速中の複数の制御周期において参照されるが、FBの実行を開始した制御周期において加速時間を算出してモーション変数記憶部に格納しておけば、制御周期ごとに同じ計算を行う必要がない。
なお、FB設定パラメータがFBの入力値である定数およびシーケンス変数のみで構成されている場合であって、モーション演算実行部854がシーケンス変数記憶部846にアクセスできるように構成した場合には、プログラム自体が与える定数およびシーケンス変数記憶部846に格納されたシーケンス変数によりFB設定パラメータが決定されるので、FB設定パラメータのモーション変数記憶部856への格納は必須ではない。
「指令値」とは、モーション制御部分が制御周期ごとに出力するデータである。本実施形態では少なくとも位置の指令値を含む。ほかに、速度の指令値、トルクの指令値などがありうる。
「軸の位置」とは、モータ18の回転位置またはモータ18によって駆動される制御対象装置の特定部位の位置である。実際の制御対象装置の軸の位置はロータリエンコーダなどで計測される。シミュレーションでは、モーション変数記憶部856の中に仮想的な軸を用意し、指令値を仮想的な軸の記憶領域に書き込んでその記憶内容を軸の位置とし、その値を新しい指令値で更新していく。ある軸についてモーション制御部分が制御周期ごとに指令値を出力している期間においては、軸の位置は1つ前の制御周期で算出された位置の指令値となっている。モーション制御部分が制御周期ごとに指令値を出力していない期間は、軸の位置は更新されず、同じ値が保持されている。
軸の位置としては、指令値をそのまま採用するのでなく、指令値の履歴から制御対象装置の可動部のモーメント、質量、摩擦などの物理特性を考慮して算出した予測位置を採用してもよい。
「Active」とは、制御周期ごとに指令値を算出しているFBの状態である。活性状態ともいう。
「Busy」とは、FBが実行中の状態である。Busy状態のFBは、Activeである場合とActiveでない場合がある。後述するが、FBがExecute ONの入力を与えられるとBusyとなる。通常はBusyであればActiveであるが、後述するBufferedモードまたはBlendingモードにより複数のFBが連結されている場合には、連結された先頭以外のFBにおいて、BusyであるがActiveでない状態が出現する。
「FBのID」とは、1つの制御プログラムにおいて使用されているFBを個別に特定する情報である。たとえばプログラミングの際に与えられたFBの名称である。
制御周期が開始されると、シミュレーション制御部820は、1周期分、シーケンス制御シミュレーション部840およびモーション制御シミュレーション部850にシミュレーション実行させる。制御周期計数部824は、「現在制御周期番号」をインクリメント更新する。そして、上述したようにシミュレーション制御部820は、再開可能制御周期であるかどうかを判断し、再開可能制御周期でないと判断した場合には、制御周期計数部824から「現在制御周期番号」を、シーケンス変数記憶部846から「現在I/Oデータ」、「現在内部変数データ」を、モーション変数記憶部856から「現在FB設定パラメータ」、「現在指令値」、「軸の現在位置」、「現在ActiveなFBのID」、「現在BusyなFBのID」を再開用データバッファ828に上書き保存する。
一方、シミュレーション制御部820が再開可能制御周期であると判断した場合には、まず、再開用データバッファ828の内容を再開用データ記憶部826に追記し、その後、再開可能制御周期でないと判断した場合と同様に再開用データバッファ828を上書きする。
再開用データ記憶部826に保存する制御周期番号は、本実施形態では再実行を開始することができる再開可能制御周期の1つ前の周期の制御周期番号であるが、制御周期番号を再開用データバッファ828から転送するのではなく、再開可能制御周期の制御周期番号自体を再開用データとして保存するようにしてもよい。その場合は、シミュレーションを再実行するときに、再開用データに含まれている制御周期番号は、制御周期番号以外の再開用データが生成された制御周期の次の制御周期を示していることを前提として再実行を開始する準備の処理を行う。また、たとえば、一定のオフセット値を加算した制御周期番号を再開用データとして保存し、再開時には同じオフセット値を減算するというような約束があれば、上記以外の制御周期番号を保存するようにすることもできる。すなわち、保存するのは、再開可能制御周期に対応させることができる制御周期番号である。
再開用データ記憶部826には、再開可能制御周期から再実行を開始するのに用いられる再開用データを再開用データバッファから読み出して追記する。このことは、再開可能制御周期において生成された再開用データを記憶するということと同じ意味ではない。図8の場合には、再開可能制御周期の1つ前の制御周期において生成された再開用データを記憶している。再開用データバッファ828を複数周期分のリングバッファとして構成すれば、数周期前の制御周期において生成された再開用データを再開用データ記憶部826に記憶することもできる。この場合、再実行時には、再開用データが生成された制御周期の次の制御周期から数周期分準備的な実行をすることにより、ユーザの指定を用いて特定された制御周期から再実行を開始することができる状態となる。
再開用データ記憶部826に指令値と軸の位置の両方を記憶しておくと、軸の位置が前の周期の指令値である場合には、指令値と軸の位置との差から速度を求めることができる。
再開用データ記憶部826に、指令値に代えて、再開用データが生成された制御周期の1つ前の周期で更新された軸の位置、すなわち2つ前の周期において出力された指令値を反映した軸の位置を記憶するようにしてもよい。そうすると、2つの「軸の位置」の差から速度を求めることができる。軸の位置を、制御対象装置の物理特性を考慮した予測位置として算出している場合には、それに対応する予測速度を求めることができる。
以上のように2つの位置の値から再開時に速度を求める代わりに、あらかじめ算出した速度値を再開用データ記憶部826に記憶するようにしてもよい。
再開用データ記憶部826にすべての制御周期の再開用データを保存するようにしてもよい。そうすると、どの制御周期からでもシミュレーションの再実行を開始することができる。
再開用データ記憶部826にすべての制御周期の再開用データをいったん保存した後、再開可能制御周期を任意の数だけ設定し、その後再開可能制御周期の設定対象とならなかった制御周期に対応する再開用データを削除するようにしてもよい。
シミュレーション制御部820は、毎制御周期における図7のI/Oリフレッシュ処理のシミュレーション実行のタイミング(ステップS32)で、図9に(1)、(2)、(3)で示したとおり、制御周期計数部824から「現在制御周期番号」を、シーケンス変数記憶部846から「現在I/Oデータ」を、モーション変数記憶部856から「現在指令値」、「軸の現在位置」を実行結果データ記憶部830に追記するとともに、「軸の移動中実行フラグ」を生成して実行結果データ記憶部830に追記する。「軸の移動実行中フラグ」は、その軸を制御するいずれかのFBがActiveであることを示すフラグである。なお、I/Oデータは、すべての種類のI/Oデータを記憶してもよいが、タイムチャートのグラフ表示をすることを予定しているI/Oデータをユーザが指定し、それに限って記憶することにすれば記憶容量を節約できる。指令値と軸の位置は、どちらか一方だけを実行結果データ記憶部に記憶させるようにしてもよい。両方を記憶しておくと、軸の位置が制御対象装置の物理特性を考慮して算出した予測位置である場合に、指令値と予測位置との差異を確認することができる。
実行結果データ記憶部830に記憶された実行結果データから速度を得たい場合は、前の周期(制御周期番号#N−1)の軸の位置と本周期(制御周期番号#N)の軸の位置との差から速度を求めることができる。
軸の位置が前の周期の指令値である場合には、同じ制御周期における指令値と軸の位置との差から速度を求めることができる。
以上のように実行結果データを表示するときに2つの位置の値から速度を求める代わりに、あらかじめ算出した速度値を実行結果データ記憶部830に記憶するようにしてもよい。
制御対象の軸が複数ある場合には、指令値、軸の位置、軸の移動実行中フラグは、それらが記憶される各記憶部において、軸ごとに記憶される。
FB設定パラメータ、FBのIDは、対象となるFBが複数ある場合には、FBごとに記憶される。
図9においては、いずれかのFBがActive、すなわちいずれかのFBが指令値を算出している期間中の制御周期であるか、シーケンス制御部分のみが実行されている期間の制御周期であるかにかかわらず、どの制御周期も再開可能制御周期とすることができる。
図10は、本発明の実施の形態に従う指令値が算出されていない制御周期に関するシミュレーション部806におけるデータの流れについて説明する図である。
図10を参照して、いずれのFBもActiveでない期間におけるデータの流れを示す。この期間中は、FBの状態に関するデータ(FB設定パラメータ、指令値、ActiveなFBのID、BusyなFBのID)が有効に存在しないので、FBの状態に関するデータは再開用データおよび実行結果データとして記憶されない。軸の位置はFBがActiveでない期間にも有効に存在するので記憶される。
本例においては、記憶されないデータの領域を詰めた態様で表示しているが、データ領域自体は確保したままでもかまわない。
再開可能制御周期を設定できる期間をいずれのFBもActiveでない期間に限定すると、FBの状態に関するデータを再開用データとして保存する必要がないので、再開用データの保存のための記憶容量を削減することができる。いずれのFBもActiveでない期間からいずれかのFBがActiveになった最初の制御周期を再開可能制御周期とすることができるようにした場合も、保存されるデータが生成された前の周期においてはまだいずれのFBもActiveではないから、上記の再開可能制御周期を設定できる期間をいずれのFBもActiveでない期間に限定した場合と同様である。
FBの途中から再開せず、常にFBの冒頭から再開できればよい場合には、このように再開可能制御周期とすることができる制御周期を限定する方式も有用である。
図11は、本発明の実施の形態に従うICチップ移載装置100を説明する図である。本発明の実施の形態においては、制御対象装置としてICチップ移載装置100を例に挙げて説明する。
図11(A)には、ICチップ移載装置100の平面図が示されている。
また、図11(B)には、ICチップ移載装置100の正面図が示されている。
図11(A)および(B)を参照して、ICチップ移載装置100は、図示しないモータによりX軸の位置決めが可能なXガイド51、Y軸の位置決めが可能なYガイド52、Z軸の位置決めが可能なZガイド53により構成されるXYZガイド50と、XYZガイド50を用いてICチップTPを真空吸着するための真空吸着式チャック60とで構成されている。真空吸着式チャック60は、ICチップコンベア80に所定間隔置きに配置されたICチップTPを真空吸着する。そして、XYZガイド50を用いてICトレイコンベア75に載置されたICトレイ70の所定の位置にICチップTPを載置する。
ICトレイ70には、行列状にICチップを載置するための空きセルRNが設けられる。そして、XYZガイド50は、ICトレイ70に設けられた空きセルRNに1つずつICチップを移載するものとする。具体的には、ICチップTPが供給されるワーク供給位置が予め設定されており、また、ICトレイ70の空きセルRNのいずれかにワーク移載位置が指定される。XYZガイド50は、当該ワーク供給位置から当該ワーク移載位置に、真空吸着式チャック60を用いて真空吸着したICチップTPを移送して、当該指定されたワーク移載位置にICチップTPを載置する。
ICチップコンベア80に載置されているICチップTPは、ICチップコンベア80を移動させることにより当該ワーク供給位置に移動させられる。ICチップTPは、ICチップコンベア80の進行方向に沿って所定間隔おきに配置されているものとする。
図12は、本発明の実施の形態に従うICチップ移載装置100の動作のフローを説明する図である。
図12を参照して、まず、ICチップTPが載置されていないすなわち、未載置のICトレイ70を供給受付位置へICトレイコンベア75を用いて移動させる(ステップS50)。
そして、次に、ICチップコンベア80を移動させてICチップTPをワーク供給位置へ移動する(ステップS52)。
そして、次に、XYZガイド50を用いて真空吸着式チャック60をワーク供給位置へ移動させる(ステップS54)。
そして、次に、真空吸着式チャック60を用いてICチップTPを真空吸着する(ステップS56)。
そして、XYZガイド50を用いて真空吸着したICチップTPをICトレイ70の空きセル位置(ワーク移載位置)へ移動させる(ステップS58)。
そして、ICチップTPをICトレイ70の空きセル位置(ワーク移載位置)に載置する(ステップS60)。
次に、ICチップTPの移載を継続するかどうかを判断する(ステップS62)。
ステップS62において、ICチップTPの移載を継続しないと判断した場合(ステップS62においてNO)には、処理を終了する。
一方、ステップS62において、ICチップの移載を継続すると判断した場合(ステップS62においてYES)には、次にICトレイ70に空きセルRNがあるかどうかを判断する(ステップS64)。ICトレイ70に空きセルRNがあると判断した場合(ステップS64においてYES)には、ICチップTPを供給位置へ移動する(ステップS52)。以降の処理は同様であるのでその詳細な説明は繰返さない。すなわち、1つずつICチップTPをICトレイ70の空きセルRNに載置していくことになる。
ステップS64において、ICトレイ70に空きセルがないと判断した場合(ステップS64においてNO)には、未載置のICトレイ70を供給受付位置へ移動させる(ステップS50)。
そして、上記処理を繰り返すものとする。
図13は、ICチップ移載装置100におけるXYZガイド50を制御する制御プログラムの一部を説明する図である。
図13を参照して、ここでは、XYZガイド50を制御して真空吸着式チャック60をICトレイ70の空きセルRNの位置へ移動する部分のプログラムが示されている。
ここで、FB1およびFB2は、MC_MoveAbsoluteという名称の同じ種類のモーションファンクションブロックであり、1つの軸(モータの回転位置)を現在位置から絶対座標で与えた目標位置まで移動させるように制御周期ごとに指令値を生成する機能を有する。
FB1(MoveToTray_X)は、真空吸着式チャック60のX座標位置を空きセルのX座標位置まで移動させるために用いられている。
FB2(MoveToTray_Y)は、真空吸着式チャック60のY座標位置を空きセルのY座標位置まで移動させるために用いられている。ここでは、FB1とFB2が制御プログラムのモーション制御部分に該当する。
各FBの左側の端子は入力端子、右側の端子は出力端子である。
まず、入力端子について説明する。
「Axis」端子にはそのFBに対応付ける軸名称を与える。Axis_1にはX軸、Axis_2にはY軸が割り当てられている。
「Execute」端子にON入力を与えるとFBが起動し、Busy状態およびActive状態となる。
「Position」、「Velocity」、「Acceleration」、「Deceleration」、「Jerk」の各端子には、それぞれ目標とする位置、速度、加速度、減速度、躍度の値を与える。
「Position」端子へはCell_X, Cell_Yという変数名で目標位置が与えられている。Cell_X, Cell_Yには、プログラムの別の場所で計算された空きセルのX座標、Y座標が格納されている。
「Velocity」、「Acceleration」、「Deceleration」の各端子には、プログラミング段階で定数値が与えられている。「Jerk」端子への入力は省略されている。
「Direction」は、1周内の軸の回転位置が同じであれば軸が何周してその位置にあっても区別しないリングモードのための端子であり、ここでは使用しない。
「BufferMode」については後述する。ここではBufferModeは使用されていない。
次に、出力端子について説明する。
出力の「Axis」端子は、入力のAxis端子のデータをそのまま出力する。
「Done」端子は、FBの実行が完了した制御周期の次の制御周期においてONを出力する。
「CommandAborted」端子は、FBの実行が中止した制御周期の次の制御周期においてONを出力する。
「Busy」端子は、FBがBusy状態である間、ONを出力する。
「Active」端子は、FBがActive状態である間、ONを出力する。
「Error」端子は、なんらかのエラーが発生したときにONを出力する。
「ErrorID」端子は、エラーが発生したときにエラーコードを出力する。
ここでは、Under_MovingToTrayと名づけられた接点(変数)がONになると、FB1およびFB2の「Execute」端子にONが与えられ、FB1およびFB2は空きセルRNの位置へ向かってX軸とY軸を移動させるための指令値算出を開始する。それぞれの軸の移動が完了すると、各「Done」端子はONを出力する。「Done」端子の出力のONまたはOFFの値は、ToTray_Done_X, ToTray_Done_Yと名づけられた接点(変数)に格納される。これらの接点は、ICチップTPを空きセルに載置するためのZ軸の下降動作を開始するために用いられる。
図14は、本発明の実施の形態に従うコントローラサポートプログラムのウインドウ画面について説明する図である。
図14を参照して、本発明の実施の形態に従うコントローラサポートプログラムのウインドウ画面1000には、設定欄1002と、制御プログラム編集欄1004とが設けられる。
設定欄1002は、制御プログラムの編集やシミュレーションを行う上で必要となる種々の設定入力をする部分である。
また、制御プログラム編集欄1004は、制御プログラムを入力し、編集するために用いられる。
また、右下領域においては、再開可能点設定方式の設定ボタン1010およびシミュレーション実行制御ボタン1006と、シミュレーション実行結果表示リンク部1008とが設けられている場合が示されている。
再開可能点設定方式の設定ボタン1010を押下すると、図15の選択ウインドウ画面1100が別ウインドウとして開くものとする。この設定をした後にシミュレーションを実行すると再開用データが保存される。
シミュレーション実行制御ボタン1006として4つのボタンが設けられ、左から、シミュレーションの実行開始、停止、一時停止、ステップ実行を指示するためのボタンがそれぞれ設けられている。
シミュレーション実行結果表示リンク部1008は、当該リンク部をクリック(押下)すると、図16のタイムチャートウインドウ画面が別ウインドウとして開くものとする。
図15は、本発明の実施の形態に従う再開可能点設定方式の選択ウインドウ画面1100を説明する図である。
図15を参照して、本発明の実施の形態に従う選択ウインドウ画面1100は、「FBのActive ON」、「FBのBusy ON」、「一定間隔」をそれぞれチェックすることが可能なチェックボックスが設けられており、本例においては、マウス906等を介して「FBのActive ON」にチェックが付けられた場合が示されている。そして、「OK」ボタン1104と、「キャンセル」ボタン1106とがそれぞれ設けられており、「OK」ボタン1104をクリック(押下)することによりチェックボックスにチェックした設定方式が有効となる。当該「OK」ボタン1104あるいは「キャンセル」ボタン1106をクリック(押下)することにより当該ウインドウ画面は閉じるものとする。
「FBのActive ON」にチェックを入れると、各FBがActive ONとなる制御周期が再開可能制御周期とされる。
各FBがActive ONとなる制御周期より一定数前の制御周期が再開可能制御周期とされるようにしてもよい。このようにモーション制御部分が活性状態となる制御周期を基準として再開可能制御周期を設定すると、ユーザはモーション制御部分が活性状態になる付近から再実行を開始させることが容易になる。モーション制御部分が活性状態となる制御周期と関係しない再開可能制御周期を設定しないか設定数を少なくすれば再開用データの保存量が少なくて済み、そのようにしてもある程度の利便性が保たれる。
「FBのBusy ON」にチェックを入れると、各FBがBusy ONとなる制御周期が再開可能制御周期とされる。あるFBがBusy ONとなる制御周期を再開可能制御周期とする場合は、1つ前の周期、すなわち再開用データが生成される周期において、その軸に関してBusyかつActiveである他のFBが存在する可能性があるので「現在ActiveなFBのID」を再開用データとして保存する必要はあるが、その軸に関してBusyであるがActiveでない他のFBは存在しないので、「現在BusyなFBのID」を再開用データとして保存することを省略してもよい。各FBがBusy ONとなる制御周期より一定数前の制御周期が再開可能制御周期となるようにしてもよい。このようにモーション制御部分が実行中状態となる制御周期を基準として再開可能制御周期を設定すると、ユーザはモーション制御部分が実行中状態になる付近から再実行を開始させることが容易になる。モーション制御部分が実行中状態となる制御周期と関係しない再開可能制御周期を設定しないか設定数を少なくすれば再開用データの保存量が少なくて済み、そのようにしてもある程度の利便性が保たれる。
「一定間隔」にチェックを入れ、時間(秒)を指定すると、指定した時間間隔ごとの時間に相当する制御周期が再開可能制御周期とされる。再開可能制御周期の設定間隔が十分小さければ、近似的にどこからでも再実行を開始させることができる。
なお、1つに限られず複数の設定方式を同時に有効とすることが可能である。
図16は、本発明の実施の形態に従うタイムチャートウインドウ画面1200について説明する図である。
図16を参照して、本発明の実施の形態に従うタイムチャートウインドウ画面1200は、図14のシミュレーション実行結果表示リンク部1008をクリック(押下)すると開かれる。
ここでは、1つのICチップTPの吸着と載置の1サイクルの動作について、各軸の速度と移動実行中フラグの状態を示している。
「再開点指定方式」の欄では、再開点指定方式が5つの方式の中から択一的に選択できるようになっている。
具体的には、「再開点指定方式」の欄で「チャート上」を選択すると時間指定つまみを横方向にドラッグすることにより再開点を指定することができる。再開可能点が「FBのActive ON」または「FBのBusy ON」に設定されているとすると、いずれかの軸の移動実行中フラグの立ち上がりタイミングが再開可能点となっている。再開点は垂直のカーソル線1208の位置によって示されており、このカーソル線1208は時間指定つまみ1206の移動に伴って移動するが、時間指定つまみ1206は連続的に位置を変更できるのに対し、再開可能点は離散的に存在しているのでカーソル線1208の移動の仕方も離散的となる。本例においては、時間指定つまみ1206の位置に最も近い3.18秒の再開可能点にカーソル線1208が位置している。この状態から時間指定つまみをわずかに左に動かすと、カーソル線1208はZ軸の移動実行中フラグが立ち上がる3.04秒の位置に離散的に移動する。時間表示欄1203には、時間スケール1212において、カーソル線1208の位置における時間が表示されており、値表示欄1204に表示されているのはカーソル線1208の位置における各グラフの縦軸の値である。また、スクロールバー1210を操作することにより時間スケール1212の位置を変更することが可能である。
このように、モニタ907に表示されたグラフ上の位置についてのユーザの指示を受け付け、ユーザによって指示されたグラフ上の位置に対応する再開可能制御周期を特定し、当該再開可能制御周期からシミュレーションの再実行を開始することにより、ユーザは、制御プログラムの実行結果の推移と対応付けて再実行の開始を指示することができる。
「再開点指定方式」の欄で「チャート上」の右側にある「一時解除」をチェックすると、再開点の指定操作の状態が一時的に解除され、カーソル線1208が時間指定つまみ1206と同じ位置に表示されて連続的に移動するようになり、値表示欄1204の表示によって任意の時間における各グラフの値を調べることができる。
「再開点指定方式」の欄で「最終修正FB」を選択すると、図14の制御プログラム編集欄1004で最も最近に入力値が修正されたFBから再実行することができる再開可能制御周期が再開点として指定される。この場合、シミュレーション部806は、修正されたFBを特定する情報を制御プログラム編集部810から取得し、最も最近に修正されたFBから再実行することができる再開可能制御周期を特定し、当該再開可能制御周期からシミュレーションの再実行を開始する。このようにすることにより、修正したモーション制御部分から再実行することが容易にできる。
「再開点指定方式」の欄で「プログラムリスト上」を選択すると、図14の制御プログラム編集欄1004に表示されたプログラムリスト上でFBを選択することにより、そのFBから再実行することができる再開可能制御周期が再開点として特定される。具体的には、プログラムリスト上で1つのFBをクリックして選択し、プルダウンメニューから「再開点として指定」を選択する。この場合、シミュレーション部806は、プログラムのリスト表示上で指定されたFBから再実行することができる再開可能制御周期を特定し、当該再開可能制御周期からシミュレーションの再実行を開始する。このようにすることにより、ユーザは制御プログラムのリスト表示に表れたモーション制御部分と対応付けて再実行の開始を指示することができる。
「再開点指定方式」の欄で「空間軌跡上」を選択すると、図17の空間軌跡表示ウインドウ画面1300に表示される空間軌跡上で指定した位置に対応する制御周期が再開点として指定される。
「再開点指定方式」の欄で「軸位置リスト上」を選択すると、図18の軸位置リスト上での指定に従い再開点が指定される。
「最終修正FB」、「プログラムリスト上」、「空間軌跡上」、「軸位置リスト上」のいずれの場合も、指定された再開点が表示されるようにグラフは自動的にスクロールされる。
「プログラムリスト上」、「空間軌跡上」、「軸位置リスト上」のいずれかを選択して「GO」ボタン1201を押すと、対応する図14、図17、または図18のウインドウ画面が開き、または手前のウインドウ画面として表示される。
図17は、本発明の実施の形態に従う空間軌跡表示ウインドウ画面1300を説明する図である。
図17を参照して、空間軌跡表示ウインドウ画面1300に表示される空間軌跡は、実行結果データ記憶部に記憶された一連の軸の位置を用いて描画される。
軸の位置に代えて記憶された指令値を用いて描画してもよい。
図17に表示されている空間軌跡は、ICチップ移載装置100のXYZガイド50の場合と異なり、Z方向に上昇しつつ、XY座標平面への投影としては半円を描く軌跡の例が示されている。
画面上部の仮想機構設定欄1301には現在使用されている仮想機構の名称が表示されている。仮想機構は、電子的に構築されたモデルであって、XYZガイドのような機構の種類ごとにその構成を抽象化した、一連の指令値によって動く3次元モデルである。同欄右の三角マークをクリックすると仮想機構のリストが現れ、そこから現在使用されている仮想機構を他の仮想機構に変更することができる。
設定編集のボタン1303を押すと、仮想機構設定画面が別ウインドウ画面として開く。
座標値表示欄1304には、座標軸ごとの軸の現在位置が表示されている。
軸とモーションFBの対応表示欄1306には制御プログラムの中で使われている軸名と現在働いているFB名との対応関係が表示されている。
本例においては、表示設定欄1307の「3D」ボタン1307Aを押して画像表示欄1302において、3D表示を大きく表示したところである。「3D」ボタン1307Aをもう一度押すと3D表示のほかに、XY平面への投影図、XZ平面への投影図、YZ平面への投影図からなる4分割表示となる。「3D」以外の1つのボタンを押すと対応する平面投影図が拡大表示される。
3D表示は、透視図法によって描写されており、マウス操作によって3次元空間内での視点の位置と視線方向を自由に変更することができる。
Z方向の直動要素の先端に現在位置を示す現在位置マーカーとして小さな球が表示されている。
表示設定欄1307では、指令値の軌跡を表示するかどうかの選択、および仮想機構を表示するのかどうかの選択ができるようになっている。仮想機構を表示しない場合には軌跡の曲線だけの表示となる。詳細設定ボタン1307Pを押すと、さらに、軌跡の太さの設定、軌跡の表示色の設定、座標軸と座標数値を表示する設定などを行うことができる。
画面の下部には動画再生制御ボタン1310が表示されている。
再生時間バー1314は、制御プログラムを最初から最後まで実行するのに要する時間を表している。現在時刻つまみ1312は、再生時間バー1314上を制御プログラムの実行時間の経過にしたがって左から右に移動する。現在時刻つまみ1312をマウス906でドラッグ操作することにより動画の表示開始時刻を調整することができる。軌跡始点つまみ1308、軌跡終点つまみ1316は、軌跡の表示開始時刻、終了時刻を示しており、いずれもマウス906でドラッグ操作することにより再生時間バー1314に沿って移動させることができる。現在位置が時間の経過とともに連続的に移動する場合は、軌跡始点つまみ1308または軌跡終点つまみ1316を動かすとそれに応じて表示されている軌跡の長さが変わる。
動画の表示を開始すると、各機構要素が動いて現在位置マーカーが軌跡に沿って動いていく様子が表示される。
動画を構成する順次に表示される各静止画は、すべての制御周期について作成せず、一定間隔ごとの制御周期について作成してもよい。
画像表示欄1302において、軌跡に重ねて表示されている多数の十字マークはシミュレーションの再開可能点が設定されている位置を示す。この例では、時間的に一定間隔で再開可能点が設定されている。ユーザは、これらのマークのいずれかをクリックして選択し、プルダウンメニューから「再開点として指定」を選択することにより、シミュレーション再開点を指定することができる。この場合、シミュレーション部は、ユーザによって指示された軌跡上の位置に対応する再開可能制御周期を特定し、当該再開可能制御周期からシミュレーションの再実行を開始する。このようにすることにより、ユーザは、位置の指令値の空間的軌跡と対応付けて再実行の開始を指示することができる。
図18は、本発明の実施の形態に従う軸位置のリストの表示ウインドウ画面1400を説明する図である。
図18を参照して、本発明の実施の形態に従う表示ウインドウ画面1400は、再開可能点が設定されている制御周期に対応する時間と軸位置のリストが表示され、その中から再開点を指定することができる。
スクロールバー1402を操作することにより表示ウインドウ画面に表示される内容をスクロールすることができる。指定できる再開点は1つのみである。本例においては、各軸の位置が数値で表示されているが、軸位置を表す変数名によって表示してもよい。そして、「OK」ボタン1404をクリック(押下)することにより再開点の指定が有効となる。また、「キャンセル」ボタン1406をクリック(押下)することにより再開点の指定を中止することができる。
この場合、シミュレーション部806は、ユーザによって指示された位置のリスト上の位置に対応する再開可能制御周期を特定し、当該再開可能制御周期からシミュレーションの再実行を開始する。このようにすることにより、ユーザは、制御プログラムの実行結果の推移と対応付けて再実行の開始を指示することができる。
図19は、本発明の実施の形態に従うBufferedモードを説明する図である。
図19(A)を参照して、Bufferedモードは、先行側(左側)のFBのAxis出力端子と後続側(右側)のFBのAxis入力端子を直結することにより2つのFBを直列に接続し、先行側のFBの実行中に、後続側のFBのExecute端子にON(1の値)を入力して後続側のFBをBusy状態としておくモードである。あらかじめBusy状態とされた後続側のFBは先行側のFBが実行完了した制御周期の次の制御周期からActiveとなって指令値の算出を開始する。
Bufferedモードは、後続側のFBのBufferMode端子に「Buffered」を入力することにより指定する。
後続側のFBの後ろにさらに別のFBを直列に接続してそのFBにもBufferedモードを指定することも可能である。
図19(B)を参照して、ここでは、BufferedモードにおけるFBの一部の端子について入力される信号および出力される信号のタイミングチャートが示されている。
時刻t1にFB1が起動してBusy状態およびActive状態となる場合が示されている。また、時刻t2にFB2が起動してBusy状態となる場合が示されている。また、時刻t3にFB2がActive状態となる場合が示されている。
再開可能点の設定方式として、「FBのActive ON」と「FBのBusy ON」の両方を指定すると、グラフの時刻t1,t2,t3に対応する制御周期が再開可能点となる。
図20は、本発明の実施の形態に従うAbortingモードにおけるFBの一部の端子について入力される信号および出力される信号のタイミングチャートを説明する図である。
図19(A)の2つのFBを直列接続した状態で、後続側のFBのBufferMode端子に「Aborting」を入力すると、Abortingモードとなる。Abortingモードでは、先行側のFBの実行中に、後続側のFBのExecute端子にON(1の値)を入力すると、直ちに、先行側のFBの実行が中止され、次の制御周期で後続側のFBがActiveとなって指令値の算出を開始する。後続側のFBの後ろにさらに別のFBを直列に接続してそのFBにもAbortingモードを指定することも可能である。
再開可能点の設定方式として、「FBのActive ON」と「FBのBusy ON」の両方を指定すると、グラフの時刻t1,t2に対応する制御周期が再開可能点となる。Bufferedモードの場合に後続側のFBが実行開始した時刻t3はAbortingモードでは再開可能点とならない。
次に、Blendingモードについて説明する。Blendingモードは先行側のFBが中止されずに実行完了する点でBufferedモードと共通するが、Bufferedモードのように速度がいったんゼロになるのではなく、中継速度での移動を継続したまま先行側のFBがActiveな状態から後続側のFBがActiveな状態に移行する。Blendingモードには、中継速度の決定のされ方により、BlendingNextモード、BlendingPreviousモード、BlendingHighモード、BlendingLowモードの4つのモードがある。
図21は、本発明の実施の形態に従うBlendingNextモードにおけるFBの一部の端子について入力される信号および出力される信号のタイミングチャートを示す図である。
図19(A)の2つのFBを直列接続した状態で、後続側のFBのBufferMode端子に「BlendingNext」を入力するとBlendingNextモードになる。
BlendingNextモードでは、先行側のFBの実行中に、後続側のFBのExecute端子にON(1の値)を入力すると、先行側のFBの終了速度が後続側のFBの目標速度となるように先行側FBの指令値演算内容が調整される。あらかじめBusy状態とされた後続側のFBは先行側のFBが実行完了した制御周期の次の制御周期からActiveとなって指令値の算出を開始する。
後続側のFBの後ろにさらに別のFBを直列に接続してそのFBにもBlendingNextモードを指定することも可能である。
再開可能点の設定方式として、「FBのActive ON」と「FBのBusy ON」の両方を指定すると、グラフの時刻t1,t2,t3に対応する制御周期が再開可能点となる。
図22は、本発明の実施の形態に従うBlendingPreviousモードにおけるFBの一部の端子について入力される信号および出力される信号のタイミングチャートを示す図である。
図19(A)の2つのFBを直列接続した状態で、後続側のFBのBufferMode端子に「BlendingPrevious」を入力するとBlendingPreviousモードになる。
BlendingPreviousモードでは、先行側のFBの実行中に、後続側のFBのExecute端子にON(1の値)を入力すると、先行側のFBが実行完了まで目標速度を維持するように先行側FBの指令値演算内容が調整される。あらかじめBusy状態とされた後続側のFBは先行側のFBが実行完了した制御周期の次の制御周期からActiveとなって指令値の算出を開始する。
後続側のFBの後ろにさらに別のFBを直列に接続してそのFBにもBlendingPreviousモードを指定することができる。
再開可能点の設定方式として、「FBのActive ON」と「FBのBusy ON」の両方を指定すると、グラフの時刻t1,t2,t3に対応する制御周期が再開可能点となる。
また、図19(A)の2つのFBを直列接続した状態で、後続側のFBのBufferMode端子に「BlendingHigh」を入力するとBlendingHighモードになる。BlendingHighモードでは、先行側FBの目標速度と後続側FBの目標速度の大きい方が中継速度となる。すなわち、先行側FBの目標速度の方が大きい場合の動作はBlendingPreviousモードの動作と同じであり、先行側FBの目標速度の方が小さい場合の動作はBlendingNextモードの動作と同じである。
また、図19(A)の2つのFBを直列接続した状態で、後続側のFBのBufferMode端子に「BlendingLow」を入力するとBlendingLowモードになる。BlendingLowモードでは、先行側FBの目標速度と後続側FBの目標速度の小さい方が中継速度となる。すなわち、先行側FBの目標速度の方が大きい場合の動作はBlendingNextモードの動作と同じであり、先行側FBの目標速度の方が小さい場合の動作はBlendingPreviousモードの動作と同じである。
以上、1つの軸について目標位置を絶対座標で指定するモーションファンクションブロックを例に説明してきたが、モーションファンクションブロックには、目標位置をそのFBの実行開始時の位置からの相対座標で指定するものや、複数の軸をグループ化してグループに含まれる各軸の移動開始と移動終了のタイミングおよび途中の速度制御を同期させることにより2次元空間または3次元空間内の2点間を直線的に移動させるもの、さらに2点間を円弧状の軌跡を描いて移動させるものなど、いろいろな種類がある。いうまでもなく、いずれの場合にも本発明を適用することができる。
なお、コンピュータを機能させて、上述のフローで説明したような制御を実行させる方法あるいは当該方法を実現するプログラムを提供することもできる。このようなプログラムは、コンピュータに付属するフレキシブルディスク、CD−ROM(Compact Disk-Read Only Memory)、ROM(Read Only Memory)、RAM(Random Access Memory)およびメモリカードなどの一時的でないコンピュータ読取り可能な記録媒体にて記録させて、プログラム製品として提供することもできる。あるいは、コンピュータに内蔵するハードディスクなどの記録媒体にて記録させて、プログラムを提供することもできる。また、ネットワークを介したダウンロードによって、プログラムを提供することもできる。
なお、プログラムは、コンピュータのオペレーションシステム(OS)の一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の配列で所定のタイミングで呼出して処理を実行させるものであってもよい。その場合、プログラム自体には上記モジュールが含まれずOSと協働して処理が実行される。このようなモジュールを含まないプログラムも、本発明にかかるプログラムに含まれ得る。
また、本発明にかかるプログラムは他のプログラムの一部に組込まれて提供されるものであってもよい。その場合にも、プログラム自体には上記他のプログラムに含まれるモジュールが含まれず、他のプログラムと協働して処理が実行される。このような他のプログラムに組込まれたプログラムも、本発明にかかるプログラムに含まれ得る。
提供されるプログラム製品は、ハードディスクなどのプログラム格納部にインストールされて実行される。なお、プログラム製品は、プログラム自体と、プログラムが記録された記録媒体とを含む。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
2 サーバ、4 ネットワーク、8 コントローラサポートプログラム、10,15 制御プログラム、14 コントローラ、16 制御対象装置、17 モータドライバ、18 モータ、50 XYZガイド、60 真空吸着式チャック、70 ICトレイ、75 ICトレイコンベア、80 ICチップコンベア、100 ICチップ移載装置、802 ユーザインタフェース部、804 表示データ作成部、806 シミュレーション部、808 制御プログラム記憶部、810 制御プログラム編集部、812 コントローラインタフェース部、820 シミュレーション制御部、822 デバッグ支援部、824 制御周期計数部、826 再開用データ記憶部、828 再開用データバッファ、830 実行結果データ記憶部、840 シーケンス制御シミュレーション部、842 シーケンス演算制御部、844 シーケンス演算実行部、846 シーケンス変数記憶部、850 モーション制御シミュレーション部、852 モーション演算制御部、854 モーション演算実行部、856 モーション変数記憶部。

Claims (13)

  1. 機械の動きを制御するコントローラにおいて制御周期ごとに実行される、シーケンス制御部分およびモーション制御部分を含む制御プログラムをシミュレーション実行することができるコントローラサポート装置であって、
    前記制御プログラムをシミュレーション実行し実行結果データを生成するシミュレーション手段と、
    前記シミュレーション手段によって生成された実行結果データの時間的な変化を表示するための表示データを作成する表示データ作成手段と、
    前記シミュレーション手段に対するユーザの指示を受け付ける受け付け手段と、
    前記表示データ作成手段によって作成された表示データを表示することができる表示器とを備え、
    前記シミュレーション手段は、
    前記制御プログラムのシーケンス制御部分をシミュレーション実行し、前記シーケンス制御部分に関する実行結果データを生成するシーケンス演算実行部と、
    前記シーケンス演算実行部がシミュレーション実行するために使用するシーケンス変数記憶部と、
    前記制御プログラムのモーション制御部分をシミュレーション実行し、前記モーション制御部分に関する実行結果データを生成するモーション演算実行部と、
    前記モーション演算実行部がシミュレーション実行するために使用するモーション変数記憶部と、
    制御周期の実行回数を計数する制御周期計数部と、
    シミュレーションの再実行を開始することができる制御周期である再開可能制御周期に対応する前記実行回数のデータと、前記シーケンス変数記憶部および前記モーション変数記憶部に記憶されているデータのうち前記再開可能制御周期からシミュレーションの再実行を開始するのに用いられる変数データとを含む再開用データを保存する再開用データ記憶部とを備え、
    前記シミュレーション手段は、前記再開可能制御周期を特定し、前記再開可能制御周期に対応する前記再開用データを前記再開用データ記憶部に記憶し、
    前記シミュレーション手段は、再実行を開始する制御周期を特定するための指定を前記受け付け手段から取得し、前記指定を用いて再実行を開始する制御周期を特定し、特定した制御周期に対応する前記保存された再開用データを用いて前記特定された制御周期からシミュレーションの再実行を開始する、コントローラサポート装置。
  2. 前記制御プログラムを編集することができる編集手段をさらに備え、
    前記編集手段は、前記シミュレーション手段においてシミュレーション実行されたことがある制御プログラムを修正するユーザの操作を受け付け可能にされており、
    前記シミュレーション手段は、前記編集手段により修正された制御プログラムについて、当該制御プログラムが修正される前に保存した再開用データを用いてシミュレーションの再実行を開始するユーザの操作を受け付け可能にされている、請求項1に記載のコントローラサポート装置。
  3. 前記制御プログラムのモーション制御部分は、それぞれの前記制御周期において、指令値を算出する状態である活性状態および前記活性状態でない非活性状態のいずれかの状態であり、
    前記シミュレーション手段は、前記モーション制御部分が前記非活性状態から前記活性状態となる制御周期を基準として前記再開可能制御周期を特定する、請求項1に記載のコントローラサポート装置。
  4. 前記制御プログラムのモーション制御部分は、それぞれの前記制御周期において、当該モーション制御部分が実行中の状態である実行中状態および前記実行中状態でない非実行中状態のいずれかの状態であり、
    前記シミュレーション手段は、前記モーション制御部分が前記非実行中状態から前記実行中状態となる制御周期を基準として前記再開可能制御周期を特定する、請求項1に記載のコントローラサポート装置。
  5. 前記シミュレーション手段は、一定間隔ごとの制御周期を前記再開可能制御周期として特定する、請求項1に記載のコントローラサポート装置。
  6. 前記編集手段は、ユーザの操作により前記制御プログラムのモーション制御部分を修正し、
    前記シミュレーション手段は、修正されたモーション制御部分を特定する情報を前記編集手段から取得し、前記再開可能制御周期の中から、最も最近に修正されたモーション制御部分から再実行することができる制御周期を特定し、当該制御周期からシミュレーションの再実行を開始する、請求項2に記載のコントローラサポート装置。
  7. 前記編集手段は、前記表示器に前記制御プログラムの内容をリスト表示し、
    前記受け付け手段は、前記リスト表示上で、再実行を開始するモーション制御部分の指定を受け付け、
    前記シミュレーション手段は、前記再開可能制御周期の中から、前記指定されたモーション制御部分から再実行することができる制御周期を特定し、当該制御周期からシミュレーションの再実行を開始する、請求項2に記載のコントローラサポート装置。
  8. 前記表示データ作成手段は、前記実行結果データの時間的な変化をグラフとして表示するための表示データを作成し、
    前記受け付け手段は、前記表示器に表示された前記グラフ上の位置についてのユーザの指示を受け付け、
    前記シミュレーション手段は、前記再開可能制御周期の中から、ユーザによって指示された前記グラフ上の位置に対応する制御周期を特定し、当該制御周期からシミュレーションの再実行を開始する、請求項1に記載のコントローラサポート装置。
  9. 前記表示データ作成手段は、前記シミュレーション手段によって生成された位置についての実行結果データの時間的な変化を2次元空間または3次元空間における軌跡として表示するための表示データを作成し、
    前記受け付け手段は、前記軌跡上の位置についてのユーザの指示を受け付け、
    前記シミュレーション手段は、前記再開可能制御周期の中から、ユーザによって指示された前記軌跡上の位置に対応する制御周期を特定し、当該制御周期からシミュレーションの再実行を開始する、請求項1に記載のコントローラサポート装置。
  10. 前記表示データ作成手段は、前記実行結果データの時間的な変化を位置のリストとして表示するための表示データを作成し、
    前記受け付け手段は、前記表示器に表示された前記位置のリスト上の位置についてのユーザの指示を受け付け、
    前記シミュレーション手段は、前記再開可能制御周期の中から、ユーザによって指示された前記位置のリスト上の位置に対応する制御周期を特定し、当該制御周期からシミュレーションの再実行を開始する、請求項1に記載のコントローラサポート装置。
  11. 機械の動きを制御するコントローラにおいて制御周期ごとに実行される、シーケンス制御部分およびモーション制御部分を含む制御プログラムを、表示器を有するコントローラサポート装置においてシミュレーション実行する、制御プログラムのシミュレーション方法であって、
    ユーザの指示により前記制御プログラムをシミュレーション実行し、実行結果データを生成するシミュレーション演算ステップと、
    前記シミュレーション演算ステップによって生成された実行結果データの時間的な変化を表示するための表示データを作成する表示データ作成ステップと、
    前記表示データ作成ステップによって作成された表示データを前記表示器に表示する表示ステップとを備え、
    前記シミュレーション演算ステップは、
    前記制御プログラムのシーケンス制御部分をシミュレーション実行し、シーケンス制御部分に関する実行結果データを生成するシーケンス演算実行ステップと、
    前記制御プログラムのモーション制御部分をシミュレーション実行し、モーション制御部分に関する実行結果データを生成するモーション演算実行ステップと、
    制御周期の実行回数を計数する制御周期計数ステップと、
    前記シミュレーションの再実行を開始することができる制御周期である再開可能制御周期を特定するステップと、
    前記再開可能制御周期に対応する前記実行回数のデータと、前記シーケンス制御部分の実行に関係するシーケンス変数データおよび前記モーション制御部分の実行に関係するモーション変数データのうち前記再開可能制御周期からシミュレーションの再実行を開始するのに用いられる変数データとを含む再開用データを保存する再開用データ保存ステップと、
    再実行を開始する制御周期を特定するためのユーザによる指定を受け付け、前記指定を用いて再実行を開始する制御周期を特定し、特定した制御周期に対応する前記保存された再開用データを用いて前記特定された制御周期からシミュレーションの再実行を開始する再実行開始ステップとを含む、制御プログラムのシミュレーション方法。
  12. 機械の動きを制御するコントローラにおいて制御周期ごとに実行される、シーケンス制御部分およびモーション制御部分を含む制御プログラムを、表示器を有するコントローラサポート装置においてシミュレーション実行するためのコントローラのサポートプログラムであって、
    前記制御プログラムは、前記コントローラサポート装置に対して、
    ユーザの指示により前記制御プログラムをシミュレーション実行し、実行結果データを生成するシミュレーション演算ステップと、
    前記シミュレーション演算ステップによって生成された実行結果データの時間的な変化を表示するための表示データを作成する表示データ作成ステップと、
    前記表示データ作成ステップによって作成された表示データを前記表示器に表示する表示ステップとを実行させ、
    前記シミュレーション演算ステップは、
    前記制御プログラムのシーケンス制御部分をシミュレーション実行しシーケンス制御部分に関する実行結果データを生成するシーケンス演算実行ステップと、
    前記制御プログラムのモーション制御部分をシミュレーション実行しモーション制御部分に関する実行結果データを生成するモーション演算実行ステップと、
    制御周期の実行回数を計数する制御周期計数ステップと、
    前記シミュレーションの再実行を開始することができる制御周期である再開可能制御周期を特定するステップと、
    前記再開可能制御周期に対応する前記実行回数のデータと、前記シーケンス制御部分の実行に関係するシーケンス変数データおよび前記モーション制御部分の実行に関係するモーション変数データのうち前記再開可能制御周期からシミュレーションの再実行を開始するのに用いられる変数データとを含む再開用データを保存する再開用データ保存ステップと、
    再実行を開始する制御周期を特定するためのユーザによる指定を受け付け、前記指定を用いて再実行を開始する制御周期を特定し、特定した制御周期に対応する前記保存された再開用データを用いて前記特定された制御周期からシミュレーションの再実行を開始する再実行開始ステップとを含む、コントローラのサポートプログラム。
  13. 機械の動きを制御するコントローラにおいて制御周期ごとに実行される、シーケンス制御部分およびモーション制御部分を含む制御プログラムを、表示器を有するコントローラサポート装置においてシミュレーション実行するためのコントローラのサポートプログラムを格納したコンピュータ読み取り可能な記憶媒体であって、
    前記制御プログラムは、前記コントローラサポート装置に対して、
    ユーザの指示により前記制御プログラムをシミュレーション実行し実行結果データを生成するシミュレーション演算ステップと、
    前記シミュレーション演算ステップによって生成された実行結果データの時間的な変化を表示するための表示データを作成する表示データ作成ステップと、
    前記表示データ作成ステップによって作成された表示データを前記表示器に表示する表示ステップとを実行させ、
    前記シミュレーション演算ステップは、
    前記制御プログラムのシーケンス制御部分をシミュレーション実行しシーケンス制御部分に関する実行結果データを生成するシーケンス演算実行ステップと、
    前記制御プログラムのモーション制御部分をシミュレーション実行しモーション制御部分に関する実行結果データを生成するモーション演算実行ステップと、
    制御周期の実行回数を計数する制御周期計数ステップと、
    前記シミュレーションの再実行を開始することができる制御周期である再開可能制御周期を特定するステップと、
    前記再開可能制御周期に対応する前記実行回数のデータと、前記シーケンス制御部分の実行に関係するシーケンス変数データおよび前記モーション制御部分の実行に関係するモーション変数データのうち前記再開可能制御周期からシミュレーションの再実行を開始するのに用いられる変数データとを含む再開用データを保存する再開用データ保存ステップと、
    再実行を開始する制御周期を特定するためのユーザによる指定を受け付け、前記指定を用いて再実行を開始する制御周期を特定し、特定した制御周期に対応する前記保存された再開用データを用いて前記特定された制御周期からシミュレーションの再実行を開始する再実行開始ステップとを含む、コントローラのサポートプログラムを格納したコンピュータ読み取り可能な記憶媒体。
JP2010057467A 2010-03-15 2010-03-15 コントローラサポート装置、制御プログラムのシミュレーション方法、コントローラのサポートプログラムおよびコントローラのサポートプログラムを格納したコンピュータ読み取り可能な記憶媒体 Active JP5246186B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2010057467A JP5246186B2 (ja) 2010-03-15 2010-03-15 コントローラサポート装置、制御プログラムのシミュレーション方法、コントローラのサポートプログラムおよびコントローラのサポートプログラムを格納したコンピュータ読み取り可能な記憶媒体
EP11756015.1A EP2549344B1 (en) 2010-03-15 2011-02-14 Simulation method of control program enabling a selective restart of the simulation
CN201180014340.4A CN102804087B (zh) 2010-03-15 2011-02-14 控制器支持装置、控制程序的仿真方法
PCT/JP2011/053032 WO2011114825A1 (ja) 2010-03-15 2011-02-14 コントローラサポート装置、制御プログラムのシミュレーション方法、コントローラのサポートプログラムおよびコントローラのサポートプログラムを格納したコンピュータ読み取り可能な記憶媒体
US13/634,907 US9607112B2 (en) 2010-03-15 2011-02-14 Controller support device, simulation method of control program, support program for a controller, and computer readable storage medium for storing the support program of the controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010057467A JP5246186B2 (ja) 2010-03-15 2010-03-15 コントローラサポート装置、制御プログラムのシミュレーション方法、コントローラのサポートプログラムおよびコントローラのサポートプログラムを格納したコンピュータ読み取り可能な記憶媒体

Publications (2)

Publication Number Publication Date
JP2011192016A JP2011192016A (ja) 2011-09-29
JP5246186B2 true JP5246186B2 (ja) 2013-07-24

Family

ID=44648932

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010057467A Active JP5246186B2 (ja) 2010-03-15 2010-03-15 コントローラサポート装置、制御プログラムのシミュレーション方法、コントローラのサポートプログラムおよびコントローラのサポートプログラムを格納したコンピュータ読み取り可能な記憶媒体

Country Status (5)

Country Link
US (1) US9607112B2 (ja)
EP (1) EP2549344B1 (ja)
JP (1) JP5246186B2 (ja)
CN (1) CN102804087B (ja)
WO (1) WO2011114825A1 (ja)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6051546B2 (ja) 2012-03-15 2016-12-27 オムロン株式会社 情報処理装置、シミュレーション方法、およびプログラム
US8893065B2 (en) * 2012-07-11 2014-11-18 Mentor Graphics Corporation Biometric markers in a debugging environment
US20140088927A1 (en) * 2012-09-27 2014-03-27 Siemens Product Lifecycle Management Software Inc. Systems and methods for simulation of virtual model
CN105103064B (zh) * 2013-04-12 2017-03-08 三菱电机株式会社 可编程控制器的周边装置以及调试辅助方法
JP6379501B2 (ja) * 2014-02-05 2018-08-29 株式会社デンソーウェーブ ロボットの教示装置
JP6399082B2 (ja) * 2014-03-14 2018-10-03 オムロン株式会社 制御システム
US10162328B2 (en) * 2014-03-14 2018-12-25 Omron Corporation Controller and control system
WO2015166563A1 (ja) 2014-04-30 2015-11-05 三菱電機株式会社 シミュレーションシステム、プログラマブルコントローラ、シミュレーション装置、エンジニアリングツール
JP6166368B2 (ja) * 2014-05-13 2017-07-19 三菱電機株式会社 制御装置および制御方法
JP5956506B2 (ja) * 2014-05-23 2016-07-27 ファナック株式会社 プログラム加工再開機能を有する数値制御装置
JP6476594B2 (ja) * 2014-05-26 2019-03-06 オムロン株式会社 シミュレーションシステム
JP6395467B2 (ja) * 2014-06-19 2018-09-26 三菱電機株式会社 ラダー関数シミュレータ、ラダー回路図編集装置及びラダー関数シミュレータプログラム
JP2016012191A (ja) * 2014-06-27 2016-01-21 オムロン株式会社 情報処理装置、情報処理方法、およびプログラム
JP6140111B2 (ja) 2014-07-14 2017-05-31 ファナック株式会社 設定の自動復元機能および誤設定防止機能を備えた数値制御装置
JP6117281B2 (ja) * 2015-06-23 2017-04-19 Thk株式会社 電動アクチュエータを用いたエアポンプ装置及びエアポンプシステム
KR102079499B1 (ko) * 2015-10-20 2020-02-21 엘에스산전 주식회사 Plc 위치 결정 시스템의 축별 제어주기 독립 할당 방법
JP6432494B2 (ja) * 2015-11-30 2018-12-05 オムロン株式会社 監視装置、監視システム、監視プログラムおよび記録媒体
JP6639310B2 (ja) * 2016-04-06 2020-02-05 株式会社東芝 仮想プラントシミュレーションシステム、指令装置、仮想プラントシミュレーション方法
JP6305672B2 (ja) * 2016-04-12 2018-04-04 三菱電機株式会社 シミュレーション再現装置およびシミュレーション再現プログラム
JP2018055654A (ja) * 2016-09-30 2018-04-05 オムロン株式会社 情報処理装置、情報処理方法およびプログラム
WO2018070041A1 (ja) * 2016-10-14 2018-04-19 三菱電機株式会社 シミュレーション装置
KR102126270B1 (ko) * 2017-08-28 2020-06-24 (주)이노시뮬레이션 실시간 모션 시뮬레이션 시스템의 모션버퍼 제어방법
US20190079489A1 (en) * 2017-09-14 2019-03-14 Okuma Corporation Machining simulation apparatus
JP6913058B2 (ja) * 2017-09-14 2021-08-04 オークマ株式会社 加工シミュレーション装置
JP7087316B2 (ja) * 2017-09-27 2022-06-21 オムロン株式会社 情報処理装置、情報処理方法およびプログラム
JP6757385B2 (ja) 2018-10-23 2020-09-16 株式会社キーエンス プログラマブルロジックコントローラおよびメインユニット
JP6948450B2 (ja) * 2020-08-07 2021-10-13 株式会社キーエンス プログラマブルロジックコントローラおよびメインユニット
CN112783617B (zh) * 2020-12-10 2024-03-29 国电南京自动化股份有限公司 一种适用于轨道交通监控应用的带虚拟执行的顺序控制方法
WO2022239051A1 (ja) 2021-05-10 2022-11-17 三菱電機株式会社 製造装置設計検証システム
JP7433550B1 (ja) 2023-03-27 2024-02-19 三菱電機株式会社 動作予測プログラム、動作予測装置及び動作予測方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5229948A (en) * 1990-11-03 1993-07-20 Ford Motor Company Method of optimizing a serial manufacturing system
US5485620A (en) * 1994-02-25 1996-01-16 Automation System And Products, Inc. Integrated control system for industrial automation applications
JP3757342B2 (ja) * 1996-06-19 2006-03-22 株式会社キーエンス データ処理装置
JP2001209406A (ja) 2000-01-25 2001-08-03 Omron Corp Plcシミュレータ装置
JP4390093B2 (ja) 2000-09-14 2009-12-24 株式会社森精機製作所 自動プログラミング・シミュレーション装置
CN1427337A (zh) * 2001-12-21 2003-07-02 洛阳玻璃股份有限公司 开关量顺序控制过程的模拟仿真系统和模拟仿真方法
CA2510556C (en) * 2004-07-01 2013-02-19 Cae Inc. Method and system for simulation-based troubleshooting and fault verification in operator-controlled complex systems
JP4505295B2 (ja) * 2004-09-16 2010-07-21 ヤマザキマザック株式会社 Nc加工シミュレーション方法及びnc加工シミュレーション装置
JP4343072B2 (ja) * 2004-09-16 2009-10-14 ヤマザキマザック株式会社 Nc加工シミュレーション装置
JP4670719B2 (ja) * 2006-04-21 2011-04-13 三菱電機株式会社 数値制御装置およびこの数値制御装置からのデータを用いてシミュレーションを実施するシミュレーション装置
WO2009130759A1 (ja) * 2008-04-22 2009-10-29 三菱電機株式会社 数値制御方法及びその装置
JP5013482B2 (ja) * 2008-04-25 2012-08-29 株式会社ソディック 加工シミュレーション装置

Also Published As

Publication number Publication date
EP2549344B1 (en) 2016-05-18
EP2549344A1 (en) 2013-01-23
US20130124184A1 (en) 2013-05-16
WO2011114825A1 (ja) 2011-09-22
US9607112B2 (en) 2017-03-28
JP2011192016A (ja) 2011-09-29
EP2549344A4 (en) 2014-10-01
CN102804087A (zh) 2012-11-28
CN102804087B (zh) 2015-04-15

Similar Documents

Publication Publication Date Title
JP5246186B2 (ja) コントローラサポート装置、制御プログラムのシミュレーション方法、コントローラのサポートプログラムおよびコントローラのサポートプログラムを格納したコンピュータ読み取り可能な記憶媒体
US7945349B2 (en) Method and a system for facilitating calibration of an off-line programmed robot cell
US7194396B2 (en) Simulation device
US20190051049A1 (en) Information processing apparatus, information processing method, and non-transitory storage medium
US9563195B2 (en) Device and method for displaying a change in the position of an object
US10761513B2 (en) Information processing device, information processing method, and non-transitory computer-readable recording medium
US10814486B2 (en) Information processing device, information processing method, and non-transitory computer-readable recording medium
KR101641853B1 (ko) 시뮬레이션 시스템, 프로그래머블 컨트롤러, 시뮬레이션 장치, 엔지니어링 툴
US20190227534A1 (en) Information processing apparatus, information processing method and computer readable recording medium
KR102198204B1 (ko) 시뮬레이션 장치
US20210018903A1 (en) Information processing system, information processing method, and recording medium
JP2004259112A (ja) 評価用システム及び評価方法並びにモーションコントローラ
JP2009070181A (ja) 動作プログラム作成支援システム
CN109613880B (zh) 信息处理装置、信息处理方法及其计算机可读记录介质
US20230121498A1 (en) Simulated collaboration of multiple controllers
JPH11272307A (ja) モーションコントロール装置
JP2007011680A (ja) サイクルタイムシミュレーション装置
JPH1139011A (ja) プログラム作成支援方法およびプログラム作成支援装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120228

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130312

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130325

R150 Certificate of patent or registration of utility model

Ref document number: 5246186

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160419

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250