JP4198374B2 - 設備のシミュレーション方法および設備のシミュレーションプログラム - Google Patents
設備のシミュレーション方法および設備のシミュレーションプログラム Download PDFInfo
- Publication number
- JP4198374B2 JP4198374B2 JP2002088371A JP2002088371A JP4198374B2 JP 4198374 B2 JP4198374 B2 JP 4198374B2 JP 2002088371 A JP2002088371 A JP 2002088371A JP 2002088371 A JP2002088371 A JP 2002088371A JP 4198374 B2 JP4198374 B2 JP 4198374B2
- Authority
- JP
- Japan
- Prior art keywords
- simulation
- program
- equipment
- information
- operation program
- 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.)
- Expired - Fee Related
Links
Images
Description
【発明の属する技術分野】
本発明は、設備装置を構成する機構の動作形態を計算機シミュレーションさせるシミュレーション方法およびシミュレーションプログラムに関する。
【0002】
【従来の技術】
従来より、コンピュータ内に3次元機構モデルをソフトウェア的に構築することにより、実際の設備装置等を用いることなく当該設備装置の可動部を当該3次元機構モデルによってコンピュータのディスプレイ上で動作させ得る計算機シミュレーション(以下「3Dシミュレーション」という。)がある。そして、このような3Dシミュレーションによると、一般に、コンピュータのディスプレイ上において、設備装置の可動機構に所望の動作をさせることによって、当該可動機構等を構成する各部品同士が干渉することなく所定の動作を行うことができるか否かの確認や当該可動機構の動作確認等を行うことができる。そのため、当該設備装置の開発時間を短縮したり、また開発コストを削減したりするといった様々なメリットを得ることができる。
【0003】
ここで、このような3Dシミュレーションにおいては、3次元機構モデルとして可動させる機構モデル(以下「3D機構モデル」という。)を当該各可動機構ごとに用意された所定の動作プログラムによって実行させているのが一般的である。そのため、複数の可動機構同士や複数の設備装置同士を連携させて所定の動作を実行する場合においては、所定のシーケンスチャートに記述された動作順序や動作内容に従って、3D機構モデルごとの各動作プログラムが協働する。
【0004】
そこで、一般には、かかる3D機構モデル間においては、シーケンスチャートによる所定の動作順序の仕様通りに相互に起動タイミングをとるため、例えば、動作指令待ち処理や動作端出力処理等を各動作プログラムに命令記述により適宜追加したり削除するというようなプログラミング作業が、3Dシミュレーションの事前準備として行われている。
【0005】
【発明が解決しようとする課題】
しかしながら、このような3Dシミュレーションによると、上述したように、複数の3D機構モデルを、予定した動作順序の仕様通りに動作させる場合、所定の動作順序の仕様通りに相互に起動タイミングをとるための動作指令待ち処理等を各動作プログラムに命令記述として組み込む必要がある。そのため、3Dシミュレーションの対象となる設備装置等の構成が変更されるごとに、各動作プログラムに対し、このような命令記述による設定の変更を施さなければならない。
【0006】
また、各動作プログラムの動作順序や動作内容を記述するシーケンスチャートにおいても、動作順序の変更や設備装置の追加等があるごとに、当該動作順序や動作内容を設定する記述を変更する必要がある。そのため、シーケンスチャートの作成者が、設備装置ごとに定義されている所定の動作形態(例えばクランプ装置であれば「クランプ」と「アンクランプ」)を熟知していない場合には、変更等の対象となる設備装置に関連する資料等を別途参照しながら、当該設備装置による所定の動作形態をシーケンスチャートに記述する必要がある。
【0007】
つまり、従来の3Dシミュレーションにおいては、対象となる設備装置等の構成、動作順序や動作内容等が変更されるたびに、上述したような煩雑な操作や作業を強いられていたので、当該動作プログラムの開発やシーケンスチャートの作成に時間がかかるとともに、作業工数の増加によるコストの上昇をも招くという問題が存在している。また、人手に頼るため誤り、つまりバグも発生しやすい。
【0008】
本発明は、上述した課題を解決するためになされたものであり、その目的とするところは、3D機構モデルを実行させる動作プログラムのプログラミング工数を削減し得る設備のシミュレーション方法および設備のシミュレーションプログラムを提供することにある。
また、本発明の他の目的は、3D機構モデルを実行させるシーケンスチャートの作成工数を削減し得る設備のシミュレーション方法および設備のシミュレーションプログラムを提供することにある。
【0009】
【課題を解決するための手段および発明の作用・効果】
上記目的を達成するため、請求項1および3に記載の発明では、制御装置により制御される設備の動作をコンピュータで3次元機構モデルによりシミュレーションする設備のシミュレーションにおいて、前記設備を構成する複数の設備装置のうちの一つをオペレータが対象装置として選択し、該対象装置のシミュレーション上の動作を示す動作プログラムをオペレータが作成・格納し、該動作プログラムに基づいて前記対象装置の動作を当該対象装置単体でシミュレーションする。そして、単体シミュレーションの結果に問題がないと判定されたとき、動作プログラムおよび関連情報を機構属性情報として登録し、前記設備を構成する設備装置およびその設備装置が行う動作を、シミュレーション動作を行うべき順序に従って、オペレータが選択し、この選択された動作の順序を記憶する。そして、この選択された動作の順序に基づいて登録された動作プログラムの実行タイミングを自動的に編集し、記憶された動作の順序および編集された実行タイミングに従って前記設備のオフラインシミュレーションを行うことを技術的特徴とする。
【0010】
これにより、オペレータは選択した対象装置の動作毎に動作プログラムを作成・格納し、その動作プログラムに基づく当該対象装置単体での単体シミュレーションを直ちに行うことができる。つまり、オペレータが動作プログラムを入力した直後には、オペレータはその動作プログラムの内容を明確に把握しているので、単体シミュレーションの結果、何らかの問題があれば適切な修正を速やかに行うことができる。また、従来は、オペレータが設備装置が行う動作のタイミングを制御するための命令を各設備装置の動作プログラム中に書き込まなければならなかったが、本発明によれば、設備装置およびその設備装置が行う動作を、シミュレーション動作を行うべき順序に従って、オペレータが選択し、この選択された動作の順序に基づいて登録された動作プログラムの実行タイミングを自動的に編集することができる。この結果、動作プログラム開発効率を上げることができ、短時間で且つ間違いの少ない作業が行える。したがって、3D機構モデルを実行させる動作プログラムのプログラミング工数を削減することができ、また3D機構モデルを実行させるシーケンスチャートの作成工数を削減することができる。
【0015】
さらに、請求項2および4に記載の発明では、設備を実際に制御する制御装置との間で交換される、前記設備装置を動作させるための動作指令信号と前記設備装置の動作結果を示す動作結果信号とを、オペレータから受け取った対応情報に基づいて動作プログラムに対応付け、この動作指令信号に基づいて動作プログラムを実行するとともに動作プログラムの実行結果に応じて動作結果信号を出力する。そして、このようなオンラインシミュレーションでのシミュレーション動作と、オフラインシミュレーションでのシミュレーション動作とを比較して、その比較結果を表示することを技術的特徴とする。
【0016】
これにより、通常、設備の設計段階では、先ずオフラインシミュレーションにより各設備装置が干渉等することなく動作することを確認し、この後に制御装置を接続してオンラインシミュレーションを行うことにより、別途作成した制御装置の制御プログラムの動作を確認するが、本発明によれば、このようなオンラインシミュレーションでのシミュレーション結果とオフラインシミュレーションの結果とを比較することができるので、制御装置の制御プログラムが所期の仕様通りに動作しているか否かを容易かつ確実に判定することができる。
【0019】
【発明の実施の形態】
以下、本発明のシミュレーション方法およびシミュレーションプログラムを、シミュレーション装置に適用した実施形態について図を参照して説明する。
まず、本実施形態に係るシミュレーション装置20の構成を図1に基づいて説明する。
【0020】
図1に示すように、シミュレーション装置20は、ソフトウェアにより仮想的に構成される設備装置(3D機構モデル)の動作形態を計算機シミュレーションさせる機能を有するもので、主に、CPU21、RAM22、ROM23、ハードディスク装置(以下「HDD」という。)24、入出力インタフェイス25、入力装置26、ディスプレイ27、通信インタフェイス28等から構成されており、プログラマブルロジックコントローラ(以下「PLC」という。)30に接続されている。なお、このPLC30は、後述するように、オフラインシミュレーション処理のときには用いられることなく、オンラインシミュレーション処理のときに用いられるため、属性情報作成・登録処理やオフラインシミュレーション処理のときはシミュレーション装置20に接続されている必要はない。
【0021】
CPU21は、シミュレーション装置20を制御する中央演算処理装置で、システムバスを介してRAM22、ROM23、HDD24、入出力インタフェイス25等と接続されている。このCPU21を制御するシステムプログラムや各制御プログラム等は、ROM23に格納されており、CPU21はこれらのプログラムをROM23から読み出してRAM22のワーク領域等に展開することにより、これらのプログラミングをCPU21により逐次実行することができる。
【0022】
RAM22は、CPU21が使用する主記憶空間の一部を構成するもので、システムバスに接続される読み出し・書き込み可能な揮発性記憶装置である。例えばDRAM(Dynamic RAM) が使用されている。
【0023】
ROM23も、システムバスに接続されている読み出し専用記憶装置であり、CPU21が使用する主記憶空間の一部を構成するものである。このROM23には、システムプログラム、入力機能部プログラム23a、3D動作プログラム実行部プログラム23b、自動プログラミング処理機能部プログラム23c、I/O処理部プログラム23d、オフラインシミュレーション実行部23e等が予め書き込まれているため、CPU21は、ROM23に書き込まれたシステムプログラム等をシステムバスを介して読み出すことにより、所定の処理を実行することができる。なお、入力機能部プログラム23a、3D動作プログラム実行部プログラム23b、自動プログラミング処理機能部プログラム23c、I/O処理部プログラム23d、オフラインシミュレーション実行部23e等は、HDD24に格納されている場合もある。
【0024】
HDD24は、CPU21が使用する補助記憶空間を構成するもので、いわゆるハードディスク装置のことである。つまり、HDD24は、磁気ディスクに記録したデータを読み出したり、データを書き込んだりすることのできる補助記憶装置であり、本実施形態では、種々の情報を格納するデータベース(以下「DB」という。)として主に用いられている。そのため、HDD24には、後述する3Dモデル情報DB24a、3Dモデル属性情報DB24b、シーケンスチャートDB24c、動作プログラムDB24d等として用いられる各種データが格納されているほか、ディスプレイ27に表示する3D機構モデルによる設備装置のグラフィックデータも格納されている。
【0025】
3Dモデル情報DB24aは、設備装置を構成する機構の動作形態に関するパラメータを格納するもので、例えば、運動定義として、原点位置、座標系の数、重力、摩擦係数等、また運動属性として、可動範囲、移動速度、加速度等が、各設備装置ごとに格納されている。
【0026】
3Dモデル属性情報DB24bは、動作プログラム名テーブル24b1と動作毎I/O状態テーブル24b2とにより構成されている。動作プログラム名テーブル24b1には、後述する属性情報作成・登録処理によって作成される、所定の設備装置に対応する動作プログラムのファイル名および当該設備装置を構成する機構の動作形態のコメント、である機械構成情報(機構属性情報)が、当該設備装置ごとに登録されている。また、動作毎I/O状態テーブル24b2には、後述するオンラインシミュレーション処理によってされるI/O状態設定表に基く動作毎I/O状態情報が、所定の設備装置ごとに登録されている。
【0027】
シーケンスチャートDB24cは、複数の設備装置同士が連携して所定のシーケンス処理を実行する場合、当該設備装置の動作順序を決定するシーケンスチャートを格納するもので、オフラインシミュレーションあるいはオンラインシミュレーションに用いられるシーケンスチャートが各シーケンス処理ごとに格納されている。なお、本明細書においてオンラインシミュレーションとは、設備を実際に制御する制御装置と接続した状態で、該制御装置との間で変換したI/O状態情報に基づいてシミュレーションを行うことをいい、オフラインシミュレーションとは、シミュレーション装置単体でシミュレーションを行うことをいう。
【0028】
動作プログラムDB24dは、設備装置を制御することにより所定の一連動作を実行させるためのプログラムを格納するもので、各設備装置の各動作ごとに作成されて格納されている。
【0029】
入出力インタフェイス25は、入力装置26、ディスプレイ27、通信インタフェイス28等の入出力装置とCPU21等とのデータのやり取りを仲介する装置で、システムバスに接続されている。
【0030】
入力装置26は、入力機能部プログラム23a等により必要に応じ所定情報を入力し得るもので、入出力インタフェイス25を介してシステムバスに接続されている。押圧式のスイッチを所定数並べたキーボードや、いわゆるマウスやトラックボールのようなポインティングデバイスによるもの、あるいはディスプレイ27の表面に設けられたタッチパネルによるものもある。
【0031】
ディスプレイ27は、各プログラムによる出力情報、即ち、計算機シミュレーションの対象となる設備装置を表すグラフィック表示や、選択された設備装置の動作種類一覧表表示等を出力し得る表示装置で、入出力インタフェイス25を介してシステムバスに接続されている。例えば、CRTや液晶表示器により構成され、表示面に入力装置26を構成するタッチパネルを備えるものもある。
【0032】
通信インタフェイス28は、PLC30とCPU21とのデータ通信を仲介する装置で、入出力インタフェイス25を介してシステムバスに接続されている。例えば、物理層としてRS−232C、データリンク層としてBSC手順等によるシリアルデータ伝送によって、データ通信を可能な構成を採る。これにより、CPU21からPLC30への制御データの送信や、PLC30からCPU21への各種データの受信を可能にしている。なお、シミュレーション装置20とPLC30との電気的な接続形態は、シリアル接続に限られることはなく、例えばVMEバスやIEEE488 に準拠するようなパラレル接続でも良い。
【0033】
PLC30は、主に、図示しない、CPU、ROM、RAM、入出力制御回路等により構成されている。PLC30は、本来、PLC30に接続された種々のアクチュエータ等の設備装置に動作指示を出したり、設備装置の各種センサから検出情報を取得したりする機能を有する装置であるが、本実施形態では、PLC30は、シミュレーション装置20内でソフトウェアにより仮想的に構成される設備装置の制御装置としての役割を果たす。そのため、本実施形態におけるPLC30には、実際の設備装置は接続されていないが、シミュレーション装置20内で仮想的に構成される設備装置が実際の設備装置と同様の振舞を行うように構成されている。
【0034】
なお、このPLC30は、本実施形態のように、シミュレーション装置20の外部に別個に設ける構成を採るほか、シミュレーション装置20のCPU21、RAM22、ROM23等を利用してシミュレーション装置20内にソフトウェアによる仮想的なPLC30を構築しても良い。
【0035】
ここで、入力機能部プログラム23a、3D動作プログラム実行部プログラム23b、自動プログラミング処理機能部プログラム23c、I/O処理部プログラム23dおよびオフラインシミュレーション実行部23eの機能概要等を図2〜図4に基づいて説明する。なお、図2は、3D機構モデルである設備装置が単体である場合におけるオフラインシミュレーションに係る機能構成を示すブロック図、図3は、同設備装置が複数である場合におけるオフラインシミュレーションに係る機能構成を示すブロック図、図4は、オンラインシミュレーションに係る機能構成を示すブロック図である。
【0036】
図2〜図4に示すように、入力機能部プログラム23aは、オフライン、オンラインのいずれのシミュレーションにおいても使用される。このプログラムは、入力装置26を介して入力される各入力情報に対し、動作プログラムやシーケンスチャートを作成するために必要な編集をしたり、また編集された動作プログラムやシーケンスチャートを動作プログラムDB24dやシーケンスチャートDB24cに格納したりする機能を有するものである。
【0037】
図2〜図4に示すように、3D動作プログラム実行部プログラム23bも、オフライン、オンラインのいずれのシミュレーションにおいても使用されるプログラムで、動作プログラムDB24dに格納された単体シミュレーション用の動作プログラム24d1やオフラインシミュレーション用の動作プログラム24d2を展開し、展開された動作プログラムの記述に従って3D機構モデルによる仮想の設備装置を逐次動作させる機能を有するものである。
【0038】
図3および図4に示すように、自動プログラミング処理機能部プログラム23cは、設備装置が複数のオフラインシミュレーションおよびオンラインシミュレーションに使用されるプログラムで、後述するように、シーケンスチャートに基づいて動作開始情報および動作終了情報を生成する機能等を有するものである。
【0039】
図3および図4に示すように、I/O処理部プログラム23dは、3D動作プログラム実行部プログラム23bとオフラインシミュレーション実行部23eあるいはPLC30との間のデータの授受経路を切り替え得るプログラムで、シミュレーションの前に、当該シミュレーションがオフラインであるかオンラインであるかを判断して適宜切り替えを行う機能を有するものである。
【0040】
図3に示すように、オフラインシミュレーション実行部23eは、オフラインシミュレーションのときに使用されるプログラムで、PLC30に代わって、シーケンスチャートの記述に従った動作命令等を3D動作プログラム実行部プログラム23bに出力したり、また3D動作プログラム実行部プログラム23bから動作完了情報等を受け取ったりする機能を有するPLC30のシミュレータである。
【0041】
なお、PLC30と3D動作プログラム実行部プログラム23bとの間を介在する入出力部23fは、両者を仲介するドライバソフトウェアの如きプログラムである。
【0042】
次に、本実施形態に係るシミュレーション装置20の作動を図2〜図20に基づいて説明する。本シミュレーション装置20は、前述のROM23に格納された入力機能部プログラム23a、3D動作プログラム実行部プログラム23b等により制御されることによって、次の3つの処理、即ち、(1) 属性情報作成・登録処理、(2) オフラインシミュレーション処理および(3) オンラインシミュレーション処理を実行する。以下、これら各処理の流れを順に説明する。
【0043】
(1) 属性情報作成・登録処理(図2、図5〜図7参照)
図5に示すように、属性情報作成・登録処理では、まずステップS101による所定の表示制御プログラムにより、3D機構モデルである設備装置を所定の表示位置に配置し、画面表示する処理を行う。即ち、この処理ステップでは、所定の表示制御プログラムが、HDD24に格納されている設備装置(3D機構モデル)のグラフィックデータに基づいて、ディスプレイ27の画面上の所定位置に設備装置の3D機構モデルを配置して表示する処理を行う。これにより、例えば図6に示すように、クランプ装置CL-1、クランプ装置CL-2、溶接装置WL-1、溶接装置WL-2、ワークW等が、ディスプレイ27にグラフィック表示される。
【0044】
次に、ステップS103により、シミュレーション装置20のオペレータ(動作プログラムの開発者)が、オフラインシミュレーション用の動作プログラムを開発しようとする設備装置(以下「対象装置」という。)をディスプレイ27上のグラフィック表示から選択し、各種パラメータを入力設定する処理を行う。この処理は、前述した入力機能部プログラム23aにより行われるもので、図2では「3Dモデル情報入力機能」として表されている。
【0045】
例えば、図6に示す画面表示においては、オペレータによるマウス等の操作によってポインタPがクランプ装置CL-1を対象装置として選択しているので、入力機能部プログラム23aによる3Dモデル情報入力機能により、このクランプ装置CL-1に必要なパラメータを入力する処理を行う。パラメータの具体例は、運動定義として、原点位置、座標系の数、重力、摩擦係数等であり、また運動属性として、可動範囲、移動速度、加速度等である。
【0046】
次のステップS105では、オペレータが、入力機能部プログラム23aにより、対象装置の動作プログラムを作成し、格納する処理を行う。即ち、図2に示される「3D動作プログラム入力機能」(入力機能部プログラム23a)により、対象装置の動きを3D機構モデルとして動作させるための命令をオペレータが動作プログラムとして記述する処理と、作成した動作プログラムに任意のファイル名(例えば「CLAMP1」)を付与し、単体シミュレーション用の動作プログラム24d1として格納する処理を行う。
【0047】
例えば、図6示す画面表示においてクランプ装置CL-1を選択した場合には、図7(A) に示すような動作プログラムをオペレータが作成する。なお、この動作プログラムは、第1行目にプログラム名が「CLAMP1」である旨、また第2行目に処理の開始命令「BEGIN 」、第3行目に「MOVES 」命令により現在位置からW[1]のポイントへ移動させる旨、そして第4行目に処理の終了命令「END 」が、それぞれ記述されている。
【0048】
ステップS105により、オペレータによる動作プログラムの作成が終了すると、ステップS107により、作成した動作プログラムを単体かつオフラインでシミュレーションする処理(単体オフラインシミュレーション処理)を行う。このステップによる処理は、前述した3D動作プログラム実行部プログラム23bによって行われるもので、図2に示すように、前ステップS105により作成された動作プログラムを3D動作プログラム実行部プログラム23bにロードして実行するものである。
【0049】
そして、ステップS109により、オペレータが、ステップS107によるシミュレーション結果に問題があるか否かを判断し、問題がなければ(S109でYes)、ステップS111に処理を移行する。オペレータの判断によりシミュレーション結果に問題があれば(S109でNo)、ステップS103に処理を移行して、再度、各種パラメータの設定等を行う処理を行う。
【0050】
ステップS111では、シミュレーション結果の良好だった動作プログラムのファイル名と、当該対象装置を構成する機構の動作形態をコメントする動作名と、を動作種類(機械構成情報(機構属性情報))として3Dモデル属性情報DB24bの動作プログラム名テーブル24b1に登録する処理を行う。このステップによる処理は、入力機能部プログラム23aにより行われるもので、図2では「3Dモデル情報入力情報機能」として表されている。この動作プログラム名テーブル24b1は、動作プログラムのファイル名を登録する「動作プログラム名」領域のほか、その対象装置の名称を登録する「装置名」領域、および、その対象装置を構成する機構の動作形態のコメント(動作名)を登録する「コメント(動作名)」領域等により構成されている。動作種類は1つの対象装置に対して複数登録することができる。
【0051】
例えば、図6に示す画面表示のように、クランプ装置CL-1を選択し動作プログラムを作成した場合には、図7(B) に示すような内容が機構属性情報として動作プログラム名テーブル24b1に登録される。即ち、動作プログラム名テーブル24b1の「動作プログラム名」領域にその動作プログラム名「CLAMP1」が、また同「装置名」領域に「クランプ装置1」が、さらに同「コメント(動作名)」領域に「クランプ」が、それぞれ登録される。
【0052】
3Dモデル属性情報に格納した動作種類(機構構成情報)をオペレータが参照する場合には、3Dモデル属性情報DB24bからその内容を読み出し、ディスプレイ27に表示する。これにより、オペレータは、当該対象装置の動作種類を容易に参照することができる。
【0053】
(2) オフラインシミュレーション処理(図3、図8〜図13参照)
図8に示すように、オフラインシミュレーション処理でも、前述した属性情報作成・登録処理のステップS101と同様、まずステップS201による所定の表示制御プログラムにより、クランプ装置CL-1、CL-2等の設備装置を3D機構モデルとしてディスプレイ27に画面表示する処理を行う(図11(A) 参照)。
【0054】
次のステップS203では、シミュレーション装置20のオペレータ(シーケンスチャート作成者)が、シーケンスチャートに記述しようとする対象装置をディスプレイ27上のグラフィック表示から選択する処理を行う。この処理は、前述した入力機能部プログラム23aにより行われるもので、図3では「シーケンスチャートデータ入力機能」として表されている。
【0055】
例えば、図11(A) に示す画面表示においては、オペレータがマウス等によってクランプ装置CL-1のところにポインタPを移しクリックすると、図11(B) に示すようにクランプ装置CL-1の表示色が変化して当該クランプ装置CL-1が選択されたことを明示する。これによりクランプ装置CL-1の選択が行われる。
【0056】
続くステップS205では、選択した対象装置の動作種類を3Dモデル属性情報DB24bの動作プログラム名テーブル24b1から読み出す処理を行う。この処理も、図3に示す「シーケンスチャートデータ入力機能」(入力機能部プログラム23a)により行われるもので、RAM22を介して、動作プログラム名テーブル24b1から、選択された対象装置に関する動作種類の全てを読み出す。これにより、次のステップS207による対象装置の動作種類の表示を可能にしている。
【0057】
ステップS207では、ステップS205により読み出した対象装置に関する動作種類を、所定の表示制御プログラムにより一覧表示形式に編集して画面表示する処理を行う。この処理では、図11(B) に示すように、ステップS201により画面表示した3D機構モデルの画面下方に別のウィンドウWd-aを設け、これに当該一覧表を表示する。図11(B) に示す画面表示の例においては、クランプ装置CL-1に関する動作種類である動作プログラム名「CLAMP1」とそのコメント「クランプ」、および、動作プログラム名「UNCLAMP1」とそのコメント「アンクランプ」が一覧表示されている。
【0058】
次に、ステップS209により、オペレータが、シーケンスチャートに記述しようとする対象装置の動作を動作種類の一覧表から選択する処理を行う。この処理も、前述した入力機能部プログラム23aにより行われるもので、図3では、「シーケンスチャートデータ入力機能」として表されている。図11(B) に示す画面表示の例においては、オペレータがマウス等によって動作種類の一覧表中の動作プログラム名「CLAMP1」の表示部分のところにポインタP’(同図に示す破線表示)を移しクリックしたことにより、「CLAMP1」の行の表示色が変化し選択されたことを明示している。
【0059】
ステップS211以降の処理では、本発明の特徴の1つであるシーケンスチャートの作成処理およびタイミング情報設定処理を行う。ステップS211では、選択された対象装置の当該動作の情報を、シーケンスチャートに書き込む処理を行う。この処理も、入力機能部プログラム23aにより行われるもので、選択された当該動作を所定のシーケンスチャートに追加あるいは挿入する処理を行う。例えば、図11(B) に示す画面表示においては、クランプ動作を選択しているので、それに対応する動作プログラムとしてオペレータが例えば「CLAMP1」を選択すると、シーケンスチャートの先頭のステップ(ステップ番号10)の行に当該動作が書き込まれる。次に「UNCLAMP1」が選択されると、シーケンスチャートの次のステップ(ステップ番号20)の行に当該動作が書き込まれる。図12には、本処理ステップにより、ステップ番号10の行にクランプ動作が書き込まれたシーケンスチャートの一例が示されている。
【0060】
なお、このシーケンスチャートには、処理の順番を示すステップ番号のほかに前ステップ番号の欄がある。これは、前ステップ番号の処理の終了を待って当該処理を行う実行順序制御のために、記載するステップ番号である。また、コメント(動作名)の欄には、簡単な動作名が書き込まれ、装置名の欄には対象装置の名称が書き込まれる。また動作プログラム名の欄には、当該動作プログラムのプログラム名、さらに動作順序の欄には、動作の順番を視覚的に把握可能な矢印が付されている。
【0061】
次のステップS213では、オペレータが、シーケンスチャートが完成したか否かを判断する処理を行う。そしてシーケンスチャートが完成したと判断すると(S213でYes)、次ステップS215によるタイミング情報設定処理に処理を移し、未だ完成したと判断することができなければ(S213でNo)、ステップS203に戻ってシーケンスチャートに記述しようとする次の対象装置を選択する処理を行う。
【0062】
シーケンスチャートが完成すると、次にステップS215によるタイミング情報設定処理を行う。この処理は、自動プログラミング処理機能部プログラム23cによって行われるものであり、その詳細は図9に示されている。
図9に示すように、オフラインシミュレーション処理におけるタイミング情報設定処理は、まずステップS301により、シーケンスチャートから1行分の文字列データを読み込む処理を行う。そして、このステップS301により読み込んだ文字列データをステップS303により解析して、ステップ番号(動作終了情報)と前ステップ番号(動作開始情報)を抽出する処理を行う。さらにステップS305により解析を進めて動作プログラム名を抽出する処理を行い、抽出した動作プログラムの自動プログラミング処理1をステップS307により行う。
【0063】
ステップS307による自動プログラミング処理1の詳細は、図10に示されている。この図10に示す動作プログラムの自動プログラミング処理1は、動作プログラムDB24dに格納された動作プログラム(例えば図7(A) に示す動作プログラム)を対象に行う処理で、ここでは、先に説明した属性情報作成・登録処理により動作プログラムDB24dに格納された単体シミュレーション用の動作プログラム24d1を対象とする。
【0064】
そのため、当該自動プログラミング処理1では、まずステップS401により、動作プログラムDB24dから単体シミュレーション用の動作プログラム24d1を読み出す処理を行う。そして、ステップS403により、読み出した動作プログラムから1行分の文字列データを読み込む処理を行い、読み込んだ文字列データをステップS405により解析して、命令語を抽出する処理を行う。
【0065】
続くステップS407により、抽出した命令語は動作命令か否かを判断し、動作命令であれば(S407でYes)、次ステップS409により当該動作命令の1行前に前ステップ番号の処理の完了を待つ命令を挿入し、さらに次のステップS411により当該動作命令の1行後に当該動作命令の完了を通知する命令を挿入して、ステップS413に処理を移行する。一方、抽出した命令語が動作命令でない場合には(S407でNo)、ステップS413に処理を移行する。
【0066】
ステップS413では、次の行に命令語がある否かを判断し、次の行に命令語があると判断できれば(S413でYes)、ステップS403に戻って次の行の一行分の文字列データを読み込む処理を行う。一方、次の行に命令語があると判断できなければ(S413でNo)、当該動作プログラムの中には、他の動作命令はもう存在しないので、ステップS415により自動プログラミングした動作プログラムを動作プログラムDB24dに格納する処理を行う。これにより、当該一連の自動プログラミング処理1が終了するので、図9に示すステップS309に処理を移す。
【0067】
図9に戻ると、ステップS309では、シーケンスチャート中の次のステップ番号に文字列データがあるか否かを判断する処理を行う。そして、次のステップ番号に文字列データがあると判断できれば(S309でYes)、ステップS301に戻って次のステップ番号の一行分の文字列データをシーケンスチャートから読み込む処理を行う。一方、次の行に命令語があると判断できなければ(S309でNo)、当該シーケンスチャートの中の全ての文字列データの処理を終了したと判断して、図9に示す一連のタイミング情報設定処理を終了し、図8に示すステップS217に処理を移す。
【0068】
ここで、上述したステップS215によるタイミング情報設定処理を図13を参照して説明する。なおここでは図11(B) に示す画面表示の例の場合を想定して説明する。
図13に示すように、同図上段に示されているシーケンスチャート画面には、ステップ番号10、20、30の各行が表示されている。ここで図9に示すタイミング情報設定処理により、シーケンスチャートのステップ番号20の1行分の文字列データを読み込むと(S301)、この行には、ステップ番号「20」、前ステップ番号「10」、コメント(動作名)「クランプ」、装置名「クランプ装置2」、動作プログラム名「CLAMP2」の文字列が含まれている。そのため、これらの文字列を解析することによって、ステップ番号「20」と前ステップ番号「10」とを抽出し(S303)、さらに動作プログラム名「CLAMP2」を抽出する(S305)。これにより、動作開始情報としてステップ番号「20」、動作終了情報としてステップ番号「10」、また動作プログラム名として「CLAMP2」を得ることができたので、これらの情報をパラメータとして自動プログラミング処理1(図10)を呼び出す。
【0069】
すると、呼び出された自動プログラミング処理1では、パラメータとして受け取った動作プログラム名「CLAMP2」を手掛かりとして動作プログラムDB24dから単体シミュレーション用の動作プログラム24d1として格納されている動作プログラム「CLAMP2」を読み出す(S401)。読み出された動作プログラム「CLAMP2」は、図13の中段に示すように、第1行目に「PROGRAM CLAMP2」、第2行目に「BEGIN 」、第3行目に「MOVES W[1]」、第4行目に「END 」の命令語がそれぞれ記述がされている。
【0070】
このように記述された動作プログラム「CLAMP2」に対し、第1行目から順番に、1行分の文字列データを読み込み(S403)、当該1行分の文字列データから命令語を抽出し(S405)、抽出した命令語が動作命令であるか否かの判断を行い(S407)、動作命令を見つけるまでこれらの処理を繰り返す(S407、S413)。
【0071】
図13中段に示す動作プログラム「CLAMP2」の例では、「MOVES 」の文字列が動作命令に相当するので、この「MOVES 」を見つけると(S407でYes)、この動作命令(「MOVES 」)の1行前に前ステップ番号の処理の完了を待つ命令、例えば「WaitStepNo(10)」命令を挿入する(S409)。つまり、サブルーチンとして呼び出されたときに受け取ったパラメータのうちの動作開始情報としてステップ番号「10」に基づいて「WaitStepNo(n)」命令のnにステップ番号「10」を設定し、設定済のものを「MOVES 」命令の前に挿入する処理を行う。これにより、クランプ装置2は、ステップ番号10に記述されたクランプ装置1によるクランプ動作の完了を待って、クランプ動作を実行する。
【0072】
なお、動作命令とは、設備装置を構成する機構の動作形態を変更させる指令のことで、本実施形態においては、動作命令に該当するものとして「MOVES 」命令のほかに、例えば、円弧動作で移動する「MOVEC 」命令、指定経路に従って移動する「MOVE」命令、現在位置より指定量だけ移動させる「DRAW」命令等がある。
【0073】
次に同動作命令の1行後に当該動作命令の完了を通知する命令、例えば「EndStepNo(20) 」命令を挿入する(S411)。これも、サブルーチンとして呼び出されたときに受け取ったパラメータのうちの動作終了情報としてステップ番号「20」に基づいて「EndStepNo(n)」命令のnにステップ番号「20」を設定し、それを「MOVES 」命令の後に挿入する処理を行う。なお、このような動作終了情報は、当該クランプ装置2が「WaitStepNo(10)」命令によりステップ番号10のクランプ装置1によるクランプ動作の完了を待つのと同様、他の設備装置による所定動作の完了を待っている設備装置にその完了を通知するために用いられるものである。上記動作命令の完了を通知する命令や動作命令の完了を待つ命令の代わりに、動作状態を示す変数を直接参照する方式でもよい。
【0074】
このように自動プログラミング処理1によって、動作開始情報および動作終了情報が自動プログラミングされると、図13下段に示すような動作プログラム「CLAMP2」(自動プログラミング後)が生成される。
即ち、同図中段に示されている動作プログラム「CLAMP2」(自動プログラミング前)の第3行目に「MOVES W[1]」の一行前に「WaitStepNo(10)」命令、また一行後に「EndStepNo(20) 」命令、がそれぞれ記述されているため、自動プログラミング後のものでは、第1行目に「PROGRAM CLAMP2」、第2行目に「BEGIN 」、第3行目に「WaitStepNo(10)」、第4行目に「MOVES W[1] 」、第5行目に「EndStepNo(20) 」、第6行目に「END 」の命令語がそれぞれ記述がされている。
【0075】
ここで再び図8に戻る。ステップS215によるタイミング情報設定処理が完了すると、続くステップS217では、完成した動作プログラムをオフラインでシミュレーションする処理を行う。
即ち、図3に示す3D動作プログラム実行部プログラム23b、I/O処理部プログラム23dおよびオフラインシミュレーション実行部23eによって、動作プログラムをオフラインシミュレーションする処理が行われる。この処理では、まずI/O処理部プログラム23dによりオフラインシミュレーション用I/Oに切り替える処理を行うことによって、シミュレーション装置20とPLC30との接続を切り離す。そして、オフラインシミュレーション実行部23eが、完成したシーケンスチャートに従って各動作プログラムに逐次指示を出す。
【0076】
例えば、図13の上段に示すシーケンスチャートの例では、まずステップ番号10の行に記述されている動作プログラム「CLAMP1」によるクランプ動作を実行させるため、オフラインシミュレーション実行部23eは、I/O処理部プログラム23dを介して3D動作プログラム実行部プログラム23bに当該動作プログラムの実行命令を出力する。すると、この動作命令を受けた3D動作プログラム実行部プログラム23bは、予め実行可能に待機している動作プログラム「CLAMP1」に従ってクランプ動作を実行し、当該動作の完了とともに動作終了情報をオフラインシミュレーション実行部23eに出力する(EndStepNo(10) )。これにより、次のステップ番号20の行に記述されている動作プログラム「CLAMP2」は、クランプ動作を実行することができるので(WaitStepNo(10))、3D動作プログラム実行部プログラム23bは、次に動作プログラム「CLAMP2」に従ってクランプ動作を実行する(図13の下段参照)。
【0077】
このようにステップS217によるシミュレーション処理が終了すると、次のステップS219により、オペレータが、ステップS217によるシミュレーション結果に問題があるか否かを判断し、問題がなければ(S219でYes)、一連の本オフラインシミュレーション処理を終了する。オペレータの判断によりシミュレーション結果に問題があれば(S219でNo)、ステップS203に処理を移行して、再度、オフラインシミュレーションの対象となる対象装置を選択する。
【0078】
上述したように図8に示すオフラインシミュレーション処理では、ステップS201によりディスプレイ27に表示された3D機構モデルの中から、ステップS203により対象装置を選択し、選択した対象装置の動作種類(機械構成情報(機構属性情報))をステップS205により3Dモデル属性情報DB24bから読み出し、読み出した動作種類をステップS207によりディスプレイ27に一覧表示する。これにより、例えば設定変更の対象となる対象装置の動作種類を容易に参照することができるので、例えばシーケンスチャートの作成者が、対象装置の動作種類を熟知していない場合であっても、ディスプレイ27に一覧表示される動作種類から当該対象装置を構成する機構の動作形態を容易に参照することができ、当該対象装置に関連する資料等を別途参照する手間を省くことができる。したがって、3D機構モデルを実行させるシーケンスチャートの作成工数を削減し得る効果がある。
【0079】
また、図8に示すオフラインシミュレーション処理では、ステップS207により表示された動作種類が対象装置単体のものである場合において、ステップS209により、ディスプレイ27に表示された動作種類を選択し、ステップS211により、選択された動作種類をシーケンスチャートに組み込む。これにより、シーケンスチャートの作成者は、ディスプレイ27に表示された設備装置の中からシミュレーションを希望する対象装置を選択することにより、選択された対象装置がシーケンスチャートに自動的に組み込まれるので、シーケンスチャートの作成者が選択された対象装置の動作種類に関する知識を持っているか否かを問わず、シーケンスチャートを容易に作成することができる。したがって、3D機構モデルを実行させるシーケンスチャートの作成工数を削減し得る効果がある。
【0080】
さらに、図8に示すオフラインシミュレーション処理のタイミング情報設定処理(図9)では、複数存在する設備装置同士が連携して所定のシーケンス動作を実行する場合において、ステップS303により対象装置を構成する機構の動作開始情報および/または動作終了情報をシーケンスチャートに基づいて生成し、ステップS307により、動作開始情報および/または動作終了情報をオフラインシミュレーションさせる対象装置の動作プログラムに組み込む。これにより、ディスプレイ27に一覧表示された動作種類を選択すれば、選択された動作種類をシーケンスチャートに組み込むだけでなく、機構の動作開始情報や動作終了情報をも対象装置の動作プログラムに組み込むことから、動作プログラムの開発者は、ディスプレイ27に表示された動作種類を選択することによって、動作プログラムを容易に変更することができる。したがって、3D機構モデルを実行させる動作プログラムのプログラミング工数を削減し得る効果がある。
【0081】
なお、上述したオフラインシミュレーション処理では、ステップS409において前ステップ番号の処理の完了を待つ命令を動作プログラムに挿入し、またステップS411において動作命令の完了を通知する命令を動作プログラムに挿入したが、両命令のうち、いずれか一方の命令を動作プログラムに挿入するように処理の流れを構成しても良い。
【0082】
(3) オンラインシミュレーション処理(図4、図11、図14〜図20参照)図14に示すように、オンラインシミュレーション処理でも、前述した属性情報作成・登録処理やオフラインシミュレーション処理と同様、まずステップS501による所定の表示制御プログラムにより、クランプ装置CL-1、CL-2等の設備装置を3D機構モデルとして所定の表示位置に配置し、ディスプレイ27に画面表示する処理を行う(図11(A) 参照)。
【0083】
次のステップS503では、シミュレーション装置20のオペレータ(動作プログラムの開発者)が、オンラインシミュレーション用の動作プログラムを開発しようとする対象装置をディスプレイ27上のグラフィック表示から選択する処理を行う。この処理は、前述した入力機能部プログラム23aにより行われるもので、図4では「3Dモデル情報入力機能」として表されている。なお、この対象装置は、前述の図12に示すオフラインシミュレーション用のシーケンスチャートの画面表示から、選択しても良い。
【0084】
続くステップS505では、選択した対象装置の動作毎I/O状態情報(動作制御情報)を設定する画面を表示する処理を行う。この処理は、入力機能部プログラム23aにより行われるもので、対象装置に該当するI/O状態設定情報を検索し、例えば図17上段に示すような画面が表示される。この画面表示の例は、図11(B) に示すグラフィック表示されたクランプ装置1(クランプ装置CL-1)に対応するI/O状態設定画面で、上段に「動作指令情報」、中段に「動作中の出力情報」、下段に「動作端の出力情報」がそれぞれ表示されている。
【0085】
このI/O状態設定画面において、「PLC側のI/O信号を示すシンボル名」は、当該設備装置(クランプ装置1)を構成する機構に付随したソレノイド、電磁弁、位置センサ等の名称のことをいい、例えば、図17に示す「SOL_A 」はソレノイドA、「SOL_B 」はソレノイドB、「LS_A」は位置センサA、「LS_B」は位置センサB、をそれぞれ意味する。
【0086】
また、同画面において、「信号状態」は、作動中あるいはセンサ出力有りのときを「ON」、また停止中あるいはセンサ出力無しのときを「OFF」に表示している。「シンボル名のコメント」は、「PLC側のI/O信号を示すシンボル名」が意味する内容を簡潔に表現したもので、例えば、図17に示す「SOL_A 」はクランプ命令に対応して出力される信号である意から、「クランプ指令」と表示されている。同様に図17に示す「SOL_B 」はアンクランプ命令に対応して出力される信号である意から、「アンクランプ指令」と表示されている。
【0087】
一方、同画面に示す動作中および動作端の出力情報「LS_A」のコメントは、クランプ端におけるセンサ信号である意から「クランプ端」と表示され、同様に動作中、動作端の出力情報「LS_B」のコメントは、アンクランプ端におけるセンサ信号である意から「アンクランプ端」と表示されている。
【0088】
この処理ステップでは、このように表示されたI/O状態設定画面において、オペレータが、各信号状態を入力する処理を行うことにより、対象装置の動作毎I/O状態情報を設定するものである。例えば、図17下段に示すようなI/O機器仕様として用意されている機器構成資料から、対応するソレノイド、電磁弁、センサーに関するI/O仕様を、開始状態、中間状態および終了状態のそれぞれに応じてI/O状態設定情報に入力する。
【0089】
当該クランプ装置1の場合には、2つのソレノイドA、Bと2つの位置センサA、Bを備えているので、オペレータが、それぞれに対応した開始状態、中間状態、および終了状態のON/OFF情報(図17下段に示す破線により囲まれたONまたはOFF)をI/O状態設定情報に順次入力する。
【0090】
なお、このI/O機器仕様は、HDD24に構成されたDB(データベース)として予め格納しておいて、ステップS505によるI/O状態設定画面と同様、対象装置に該当するものを検索し画面表示しても良い。これにより、別途、機器構成資料を探したりする手間が省けるので、より一層、動作プログラムやシーケンスチャートの作成工数を削減することができる。
【0091】
ステップS505により対象装置の動作毎I/O状態情報が設定されると、ステップS507で設定した動作毎I/O状態情報を3Dモデル属性情報DB24bの動作毎I/O状態テーブル24b2に登録する処理を行う。この処理も、入力機能部プログラム23aにより行われる。
【0092】
続くステップS509では、タイミング情報設定処理を行う。この処理は、自動プログラミング処理機能部プログラム23cによって行われるものであり、その詳細は15に示されている。
図15に示すように、オンラインシミュレーション処理におけるタイミング情報設定処理は、まずステップS601により、図12に示すようなシーケンスチャートから1行分の文字列データを読み込む処理を行う。そして、このステップS601により読み込んだ1行分の文字列データをステップS603により解析して、動作プログラム名を抽出する処理を行い、抽出した動作プログラムは既に自動設定済みであるか否かの判断をステップS605により行う(自動設定については後述する)。
【0093】
ステップS605による判断処理は、シーケンスチャートから読み込んだ1行分の文字列データの中に、ON/OFF情報が含まれているか否かを判断することによって行う。即ち、抽出された動作プログラムが、自動設定済みである場合には、図19に示すように、動作指令情報等が挿入されたシーケンスチャートが作成されるため、これに対応するON/OFF情報の有無を当該文字列データ中に含まれているか否かを判断することにより、既に自動設定済みであるか否かを判断することができる。
【0094】
ステップS605により、動作プログラムは既に自動設定済みであると判断した場合には、当該動作プログラムについては、ステップS609等による自動プログラミング処理2は必要ないので、ステップS613に処理を移して次のステップ番号に文字列データがあるか否かの判断を行う。一方、ステップS605により、動作プログラムは既に自動設定済みであると判断できない場合には、当該動作プログラムには未だ自動設定されていないと判断できるので、次のステップS607に処理を移す。
【0095】
ステップS607では、動作毎I/O状態テーブル24b2に登録された動作毎I/O状態情報を3Dモデル属性情報DB24bから読み出す処理を行う。この動作毎I/O状態情報は、前述したステップS505、S507により作成、登録したもので、この読み出しにより当該対象装置に関する動作毎I/O状態情報を得ることができる。
【0096】
次のステップS609では、ステップS607によって当該対象装置に関する動作毎I/O状態情報と動作プログラム名をパラメータとして自動プログラミング処理2(図16)を呼び出す。例えば、図12および図17に示すI/O状態設定画面の例では、動作プログラム名のパラメータは「CLAMP1」である。
【0097】
すると、呼び出された自動プログラミング処理2では、ステップS701により、パラメータとして受け取った動作プログラム名「CLAMP1」を手掛かりとして動作プログラムDB24dからオフラインシミュレーション用の動作プログラム24d2として格納されている動作プログラム「CLAMP1」を読み出す。読み出された動作プログラム「CLAMP1」は、図18の中段に示すように、第1行目に「PROGRAM CLAMP1」、第2行目に「BEGIN 」、第3行目に「MOVES W[1]」、第4行目に「END 」の命令語がそれぞれ記述がされている。
【0098】
そして次のステップS703により、このように記述された動作プログラム「CLAMP1」に対し、第1行目から順番に、1行分の文字列データを読み込み、ステップS705により、当該1行分の文字列データから命令語を抽出し、ステップS707により抽出した命令語が動作命令であるか否かの判断を行う。この判定は、動作命令を見つけるまでこれらの処理を繰り返す(S707、S715)。
【0099】
図18中段に示す動作プログラム「CLAMP1」の例では、「MOVES 」の文字列が動作命令に相当するので、この「MOVES 」を見つけると(S707でYes)、ステップS709により、この動作命令(「MOVES 」)の1行前に動作指令情報の信号を出力する命令、例えば「WaitSignal("SOL_A=ON,SOL_B=OFF")」命令を挿入する。つまり、サブルーチンとして呼び出されたときに受け取ったパラメータのうちの動作指令情報の「PLC側のI/O信号を示すシンボル名」および「信号状態」を動作制御情報として、これに基づいて動作指令信号を待つ命令を生成し、当該動作命令「MOVES 」の1行前に挿入する処理を行う。これにより、クランプ装置1(クランプ装置CL-1)は、ソレノイドAからON情報、ソレノイドBからOFF情報が送られて来るのを待ってクランプ動作を実行すること、つまり起動タイミングをとることができる。なお、この動作指令情報は、入力情報に相当する。
【0100】
次にステップS711により、同動作命令の1行後に動作開始後の信号を出力する命令を挿入する。通常、クランパの動作中はクランプ端、アンクランプ端の双方の信号がオフするので、例えば「BetweenSignal("LS_A=OFF,LS_B=OFF")」命令を挿入する。これも、サブルーチンとして呼び出されたときに受け取ったパラメータのうちの動作中の出力情報「PLC側のI/O信号を示すシンボル名」および「信号状態」を動作制御情報として、これに基づいて動作開始後の信号を出力する命令を生成し、当該動作命令「MOVES 」の1行後に挿入する処理を行う。これにより、クランプ装置1は、動作命令を実行した後、直ちに当該クランプ装置1が動作中であることを他の設備装置に通知することから、それを受けた他の設備装置は当該クランプ装置1が動作中であることを知ることができる。なお、この動作中の出力情報は、出力情報に相当する。
【0101】
さらに次のステップS713によっても、同動作命令の2行後、つまりステップS709により挿入した動作開始後の信号を出力する命令の1行後に、動作端信号を出力する命令、例えば「EndSignal("LS_A=ON,LS_B=OFF") 」命令を挿入する。これも、サブルーチンとして呼び出されたときに受け取ったパラメータのうちの動作端の出力情報「PLC側のI/O信号を示すシンボル名」および「信号状態」を動作制御情報として、これに基づいて動作端の信号を出力する命令を生成し、当該動作命令「MOVES 」の2行後に挿入する処理を行う。これにより、クランプ装置1は、動作命令を実行し、さらに動作開始後の信号を出力する命令を実行した後、直ちに当該クランプ装置1が動作端、つまり動作が終了したことを他の設備装置に通知する。そのため、クランプ装置1から動作端信号を受けた他の設備装置は、当該クランプ装置1の動作端タイミングを起動タイミングとすることができる。なお、この動作端の出力情報は、出力情報に相当する。
【0102】
このように自動プログラミング処理2によって、動作開始信号等が自動プログラミングされると、図18下段に示すような動作プログラム「CLAMP1」(自動プログラミング後)が生成される。
即ち、同図中段に示されている動作プログラム「CLAMP1」(自動プログラミング前)の第3行目に「MOVES W[1]」の一行前に「WaitSignal("SOL_A=ON,SOL_B=OFF")」命令、また一行後に「BetweenSignal("LS_A=OFF,LS_B=OFF")」命令、さらに一行後に「EndSignal("LS_A=ON,LS_B=OFF") 」がそれぞれ記述されているため、自動プログラミング後のものでは、第1行目に「PROGRAM CLAMP1」、第2行目に「BEGIN 」、第3行目に「WaitSignal("SOL_A=ON,SOL_B=OFF")」、第4行目に「MOVES W[1]」、第5行目に「BetweenSignal("LS_A=OFF,LS_B=OFF")」、第6行目に「EndSignal("LS_A=ON,LS_B=OFF") 」、そして7行目に「END 」の命令語がそれぞれ記述がされている。
【0103】
ステップS713による処理が終了すると、ステップS715により次の行に命令語があるか否かの判断処理を行う。そして、この判断処理により、次の行に命令語があると判断できれば(S715でYes)、ステップS703に処理を移行して、次の行に1行分の文字列データを読み出す処理を行い、前述同様の処理を行う。また当該判断処理により、次の行に命令語があると判断できなければ(S715でNo)、次のステップS717により自動プログラミングした動作プログラムを動作プログラムDB24dに格納する処理を行う。これにより、当該一連の自動プログラミング処理2が終了するので、図15に示すステップS611に処理を移す。
【0104】
図15に戻ると、ステップS611では、動作指令情報、動作中の出力情報、動作端の出力情報をシーケンスチャートに書き込む処理を行う。この処理は、入力機能部プログラム23aにより行われるもので、動作指令情報等をオフラインシミュレーション用のシーケンスチャートに挿入する処理を行う。例えば、図13上段に示すシーケンスチャートであれば、図19に示すように、「動作指令情報」、「動作中出力情報」および「動作端出力情報」の各欄が挿入され、クランプ装置1またはクランプ装置2に対応したON/OFF情報が追加される。
【0105】
次のステップS613では、シーケンスチャート中の次のステップ番号に文字列データがあるか否かを判断する処理を行う。そして、次のステップ番号に文字列データがあると判断できれば(S613でYes)、ステップS601に戻って次のステップ番号の一行分の文字列データをシーケンスチャートから読み込む処理を行う。一方、次の行に命令語があると判断できなければ(S613でNo)、当該シーケンスチャートの中の全ての文字列の処理が完了したと判断して、図15に示す一連のタイミング情報設定処理を終了し、図14に示すステップS511に処理を移す。
【0106】
ここで再び図14に戻る。ステップS509によるタイミング情報設定処理が完了すると、続くステップS511では、完成した動作プログラムをオンラインでシミュレーションする処理を行う。
即ち、図4に示す3D動作プログラム実行部プログラム23b、I/O処理部プログラム23dおよびPLC30によって、動作プログラムをオンラインシミュレーションする処理が行われる。この処理では、まずI/O処理部プログラム23dによりオンラインシミュレーション用I/Oに切り替える処理を行うことによって、シミュレーション装置20とPLC30とを接続する。そして、PLC30が、別途作成したシーケンスプログラムに従って各動作プログラムに逐次指示を出す。なお、I/O処理部プログラム23dのオンラインシミュレーション用I/Oには、図20に示すようなPLC側のI/O信号を示すシンボル名に対応する信号状態をセットしたI/O信号テーブルが設けられている。
【0107】
例えば、図19の上段に示すシーケンスチャートの例では、まずステップ番号10の行に記述されている動作プログラム「CLAMP1」にクランプ動作を実行させるため、PLC30は、I/O処理部プログラム23dを介して3D動作プログラム実行部プログラム23bに当該動作プログラムの実行命令を出力する。このときI/O処理部プログラム23dのI/O信号テーブルには、例えば、図20に示すように、ソレノイドA、B、C、Dや位置センサA、B、C、Dの信号状態がセットされている。
【0108】
動作命令を受けた3D動作プログラム実行部プログラム23bは、予め実行可能に待機している動作プログラム「CLAMP1」に従って実行するが、動作プログラムに「WaitSignal("SOL_A=ON,SOL_B=OFF")」命令が記述されているため、当該I/O信号テーブルを参照しソレノイドAがON状態、ソレノイドBがOFF状態になるまで「MOVES W[1]」命令の実行、つまりクランプ動作を待つ。そして、WaitSignalの条件が揃うと、クランプ動作を行い、「BetweenSignal("LS_A=OFF,LS_B=OFF")」命令、「EndSignal("LS_A=ON,LS_B=OFF") 」命令を順次実行、つまりI/O処理部プログラム23dに位置センサA、Bの状態信号を出力する。これにより、当該I/O信号テーブルの位置センサA、Bの信号状態が書き換えられるため、PLC30や他の設備装置にクランプ装置1の状態をリアルタイムに知らせることができる。そして同様に、次のステップ番号20の行に記述されている動作プログラム「CLAMP2」は、ソレノイドCがON状態、ソレノイドDがOFF状態になるのを待って、クランプ動作を実行する。
【0109】
このようにステップS513によるシミュレーション処理が終了すると、次のステップS513により、オペレータが、ステップS511によるシミュレーション結果に問題があるか否かを判断し、問題がなければ(S513でYes)、一連の本オンラインシミュレーション処理を終了する。オペレータの判断によりシミュレーション結果に問題があれば(S513でNo)、ステップS511に処理を移行して、再度、動作プログラムのシミュレーション処理を行う。
【0110】
上述したように図14に示すオンラインシミュレーション処理では、ステップS501によりディスプレイ27に表示された3D機構モデルの中から、ステップS503により対象装置を選択し、選択した対象装置の動作毎I/O状態情報(動作制御情報(機構属性情報))をステップS505により3Dモデル属性情報DB24bから読み出しディスプレイ27に表示する。これにより、対象装置からPLC30に送出される出力情報、または対象装置がPLC30から受け取る入力情報を容易に参照することができる。つまり、シーケンスチャートの作成者や動作プログラムの開発者が、対象装置を制御するために用いられる動作毎I/O状態情報の出力情報や入力情報を熟知していない場合であっても、ディスプレイ27に表示された3D機構モデルの中から対象装置を選択すれば、動作毎I/O状態情報の出力情報や入力情報がディスプレイ27に表示されるので、容易に参照することができ、当該対象装置に関連する資料等を別途参照する手間を省くことができる。したがって、3D機構モデルを実行させるシーケンスチャートの作成工数や動作プログラムのプログラミング工数を削減し得る効果がある。
【0111】
また、図14に示すオンラインシミュレーション処理のタイミング情報設定処理(図15)では、複数存在する設備装置同士が連携して所定のシーケンス動作を実行する場合において、ステップS607により対象装置の動作毎I/O状態情報(動作制御情報(機構属性情報))に基づいて、動作指令情報、動作中出力情報および動作端出力情報を生成し、ステップS609により、動作指令情報、動作中出力情報および動作端出力情報をオンラインシミュレーションさせる対象装置の動作プログラムに組み込む。これにより、動作指令情報、動作中出力情報および動作端出力情報を対象装置の動作プログラムに自動的に組み込むことから、動作プログラムの開発者は、動作プログラムを容易に変更することができる。したがって、3D機構モデルを実行させる動作プログラムのプログラミング工数を削減し得る効果がある。
【0112】
(4) シミュレーション結果比較処理(図21〜図23参照)
シミュレーション結果比較処理は、オンラインシミュレーションでのシミュレーション動作と、オフラインシミュレーションでのシミュレーション動作とを比較して、その比較結果を表示する処理である。以下、この処理の実施形態の一例を示す。
【0113】
図21は、シミュレーション結果比較処理手順の一例を示すフローチャートである。ステップS801では、図14のステップS511で行われるオンラインシミュレーション処理で実行される動作プログラムの実行順序をモニタする。ステップS803でモニタ結果を解析し、動作プログラムの実行開始を検出したら、ステップS805に処理を移行する。ステップS805では、図22(A) に示すように動作プログラムの実行順序を記憶する。この処理は、ステップS807でオンラインシミュレーションの終了が検知されるまで繰り返される。
【0114】
ステップS807でオンラインシミュレーションの終了を検知したら、ステップS809にて、オンラインシミュレーションでの動作プログラムの実行順序と、オフラインシミュレーション時の動作プログラム実行順序とを比較する。オフラインシミュレーション時の動作プログラム実行順序は、図13に示すようにシーケンスチャートデータ記憶部に記憶されているものを参照する。
【0115】
ステップ811では、比較結果をディスプレイ27に表示する処理を行う。比較の結果、両者の実行順序に違いがなければその旨を表示し、違いがあればその部分をディスプレイ27に表示する。例えば、I/O状態情報の設定ミスにより、「CLAMP1」と「CLAMP2」の動作順序が逆であった場合は、図22(B) に示すような画面表示をすることにより、オペレータにその内容を知らせる。オペレータはこの画面表示により、I/O状態情報の設定ミスがあったことを知ることができ、その修正をすることができる。このような動作順序の間違いは、オペレータがシミュレーションの実行状況をグラフィック表示する画面表示で見ていても気づかない場合があるが、上記の方法によれば、確実に動作順序の間違いを発見できるので、制御装置の制御プログラムのデバックが簡単且つ確実に行える。なお、上記したステップS801〜S811の処理は、オンラインシミュレーションの処理とは独立かつ並行して行われる。
【0116】
以上、説明した発明の実施の形態では、制御装置はシミュレーション装置とは別体の装置として構成されている場合について説明したが、制御装置はコンピュータで動作するソフトウェアとして構成され、シミュレーション装置としての機能を実現するためのソフトウェアと共に、同一のコンピュータで同時並行して実行されるものでもよい。即ち、オンラインシミュレーションにおいては、制御装置で実行される設備を制御するための制御プログラムを仮想的にコンピュータ上で実行し、この実行結果として得られるI/O状態情報に基づいてシミュレーション動作を行うものでもよい。
【図面の簡単な説明】
【図1】本発明の一実施形態に係るシミュレーション装置の構成を示すブロック図である。
【図2】設備装置が単体である場合におけるオフラインシミュレーションに係る機能構成を示すブロック図である。
【図3】設備装置が複数である場合におけるオフラインシミュレーションに係る機能構成を示すブロック図である。
【図4】オンラインシミュレーションに係る機能構成を示すブロック図である。
【図5】設備装置が単体である場合におけるオフラインシミュレーションに係る属性情報作成・登録処理の流れを示すフローチャートである。
【図6】図5に示す3D機構モデルの画面表示処理による画面表示例を示す説明図である。
【図7】図5に示す属性情報作成・登録処理の説明を補足する説明図で、図7(A) は動作プログラムの一例を示すもので、図7(B) は動作プログラムの登録例を示すものである。
【図8】設備装置が複数である場合におけるオフラインシミュレーション処理の流れを示すフローチャートである。
【図9】図8に示すタイミング情報設定処理の流れを示すフローチャートである。
【図10】図9に示す自動プログラミング処理1の流れを示すフローチャートである。
【図11】図8に示すオフラインシミュレーション処理による画面表示例を示す説明図で、図11(A) は3D機構モデルの表示例を示すもので、図11(B) は選択した対象装置の動作種類の一覧表の表示例を示すものである。
【図12】図8に示すオフラインシミュレーション処理により作成されたシーケンスチャートの一例を示す説明図である。
【図13】図8に示すオフラインシミュレーション処理の説明を補足する説明図である。
【図14】オンラインシミュレーション処理の流れを示すフローチャートである。
【図15】図14に示すタイミング情報設定処理の流れを示すフローチャートである。
【図16】図15に示す自動プログラミング処理2の流れを示すフローチャートである。
【図17】図14に示すオンラインシミュレーション処理の説明を補足する説明図である。
【図18】図14に示すオンラインシミュレーション処理の説明を補足する説明図である。
【図19】図14に示すオンラインシミュレーション処理により作成されたシーケンスチャートの一例を示す説明図である。
【図20】PLC側のI/O信号状態を示す一覧表である。
【図21】シミュレーション結果比較処理の流れを示すフローチャートである。
【図22】図21に示すシミュレーション結果比較処理の説明を補足する説明図である。
【符号の説明】
20 シミュレーション装置
21 CPU
22 RAM
23 ROM
23a 入力機能部プログラム
23b 3D動作プログラム実行部プログラム
23c 自動プログラミング処理機能部プログラム
23d I/O処理部プログラム
23e オフラインシミュレーション実行部
24 HDD(情報記録媒体)
24a 3Dモデル情報DB
24b 3Dモデル属性情報DB
24b1 動作プログラム名テーブル
24b2 動作毎I/O状態テーブル
24c シーケンスチャートDB
24d 動作プログラムDB
26 入力装置
27 ディスプレイ(表示装置)
30 PLC(制御装置)
CL-1 クランプ装置1(設備装置)
CL-2 クランプ装置2(設備装置)
WL-1 溶接装置1(設備装置)
WL-2 溶接装置2(設備装置)
W ワーク
Claims (4)
- 制御装置により制御される設備の動作をコンピュータで3次元機構モデルによりシミュレーションする設備のシミュレーション方法において、
前記設備を構成する複数の設備装置のうちの一つをオペレータが対象装置として選択する対象装置選択ステップと、
前記対象装置のシミュレーション上の動作を示す動作プログラムをオペレータが作成し、格納する動作プログラム入力ステップと、
前記動作プログラムに基づいて前記対象装置の動作を当該対象装置単体でシミュレーションする単体シミュレーションステップと、
前記単体シミュレーションステップの結果に問題があるか否かを判定する判定ステップと、
前記判定ステップで前記単体シミュレーションステップの結果に問題がないと判定されたとき、前記動作プログラムおよび関連情報を機構属性情報として登録する属性情報作成登録ステップと、
前記設備を構成する設備装置およびその設備装置が行う動作を、シミュレーション動作を行うべき順序に従って、オペレータが選択する動作順序選択ステップと、
前記動作順序選択ステップにて選択された動作の順序を記憶する順序記憶ステップと、
前記動作順序選択ステップにて選択された動作の順序に基づいて前記属性情報作成登録ステップにて登録された動作プログラムの実行タイミングを自動的に編集するタイミング情報設定ステップと、
前記順序記憶ステップで記憶された動作の順序および前記タイミング情報設定ステップにより編集された実行タイミングに従って前記設備のオフラインシミュレーションを行うオフラインシミュレーション実行ステップと、
を含むことを特徴とする設備のシミュレーション方法。 - 請求項1記載の設備のシミュレーション方法であって、
前記設備を実際に制御する制御装置との間で前記設備装置を動作させるための動作指令信号と前記設備装置の動作結果を示す動作結果信号とを交換するI/O状態情報交換ステップと、
前記動作指令信号および動作結果信号を前記動作プログラムに対応付ける対応情報をオペレータが入力する対応情報入力ステップと、
前記対応付けられた動作指令信号に基づいて前記動作プログラムを実行するとともに前記動作プログラムの実行結果に応じて前記対応付けられた動作結果信号を出力するオンラインシミュレーション実行ステップと、
前記オンラインシミュレーション実行ステップによるシミュレーション動作をモニタするシミュレーション動作モニタステップと、
前記モニタしたオンラインシミュレーションでのシミュレーション動作と前記オフラインシミュレーションでのシミュレーション動作とを比較して、その比較の結果を表示する比較結果表示ステップと、
を含むことを特徴とする設備のシミュレーション方法。 - 制御装置により制御される設備の動作をコンピュータで3次元機構モデルによりシミュレーションする設備のシミュレーションプログラムにおいて、
前記設備を構成する複数の設備装置のうちの一つをオペレータが対象装置として選択する対象装置選択手段と、
前記対象装置のシミュレーション上の動作を示す動作プログラムをオペレータが作成し、格納する動作プログラム入力手段と、
前記動作プログラムに基づいて前記対象装置の動作を当該対象装置単体でシミュレーションする単体シミュレーション手段と、
前記単体シミュレーション手段の結果に問題があるか否かを判定する判定手段と、
前記判定手段で前記単体シミュレーション手段の結果に問題がないと判定されたとき、前記動作プログラムおよび関連情報を機構属性情報として登録する属性情報作成登録手段 と、
前記設備を構成する設備装置およびその設備装置が行う動作を、シミュレーション動作を行うべき順序に従って、オペレータが選択する動作順序選択手段と、
前記動作順序選択手段にて選択された動作の順序を記憶する順序記憶手段と、
前記動作順序選択手段にて選択された動作の順序に基づいて前記属性情報作成登録手段にて登録された動作プログラムの実行タイミングを自動的に編集するタイミング情報設定手段と、
前記順序記憶手段で記憶された動作の順序および前記タイミング情報設定手段により編集された実行タイミングに従って前記設備のオフラインシミュレーションを行うオフラインシミュレーション実行手段と、
を含むことを特徴とする設備のシミュレーションプログラム。 - 請求項3記載の設備のシミュレーションプログラムであって、
前記設備を実際に制御する制御装置との間で前記設備装置を動作させるための動作指令信号と前記設備装置の動作結果を示す動作結果信号とを交換するI/O状態情報交換手段と、
前記動作指令信号および動作結果信号を前記動作プログラムに対応付ける対応情報をオペレータから受け取る対応情報入力手段と、
前記対応付けられた動作指令信号に基づいて前記動作プログラムを実行するとともに前記動作プログラムの実行結果に応じて前記対応付けられた動作結果信号を出力するオンラインシミュレーション実行手段と、
前記オンラインシミュレーションでのシミュレーション動作をモニタするシミュレーション動作モニタ手段と、
前記モニタしたオンラインシミュレーションでのシミュレーション動作と前記オフラインシミュレーションでのシミュレーション動作とを比較して、その比較の結果を表示する比較結果表示手段と、
を含むことを特徴とする設備のシミュレーションプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002088371A JP4198374B2 (ja) | 2002-03-27 | 2002-03-27 | 設備のシミュレーション方法および設備のシミュレーションプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002088371A JP4198374B2 (ja) | 2002-03-27 | 2002-03-27 | 設備のシミュレーション方法および設備のシミュレーションプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003288113A JP2003288113A (ja) | 2003-10-10 |
JP4198374B2 true JP4198374B2 (ja) | 2008-12-17 |
Family
ID=29234255
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002088371A Expired - Fee Related JP4198374B2 (ja) | 2002-03-27 | 2002-03-27 | 設備のシミュレーション方法および設備のシミュレーションプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4198374B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104064106A (zh) * | 2014-07-11 | 2014-09-24 | 武汉理工大学 | 体验式工程图学模型实验平台 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010134198A1 (ja) * | 2009-05-22 | 2010-11-25 | 三菱電機株式会社 | シミュレーション装置およびシミュレーションプログラム |
DE102009023648A1 (de) * | 2009-05-26 | 2010-12-02 | Index-Werke Gmbh & Co. Kg Hahn & Tessky | Steuerungssystem |
JP7275840B2 (ja) * | 2019-05-16 | 2023-05-18 | オムロン株式会社 | シミュレーション装置 |
JP7250202B1 (ja) | 2022-08-25 | 2023-03-31 | Dmg森精機株式会社 | 情報処理装置および情報処理プログラム |
-
2002
- 2002-03-27 JP JP2002088371A patent/JP4198374B2/ja not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104064106A (zh) * | 2014-07-11 | 2014-09-24 | 武汉理工大学 | 体验式工程图学模型实验平台 |
Also Published As
Publication number | Publication date |
---|---|
JP2003288113A (ja) | 2003-10-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6366300B1 (en) | Visual programming method and its system | |
US7702491B2 (en) | Method of part flow model for programmable logic controller logical verification system | |
JP3803019B2 (ja) | 制御プログラム開発支援装置 | |
EP1310844A1 (en) | Simulation device | |
JP3455391B2 (ja) | 測定支援システム | |
Schwartz | HAL: Extension of a visual programming language to support teaching and research on robotics applied to construction | |
US20050102054A1 (en) | Method and system for simulating processing of a workpiece with a machine tool | |
CN105264474A (zh) | 包括操作上下文感知复制和粘贴特征的机器视觉系统程序编辑环境 | |
US10761513B2 (en) | Information processing device, information processing method, and non-transitory computer-readable recording medium | |
JP2019171501A (ja) | ロボットの干渉判定装置、ロボットの干渉判定方法、プログラム | |
JP2008142788A (ja) | 動作プログラム作成支援方法および動作プログラム作成装置。 | |
JPH1011118A (ja) | シーケンス制御装置、データ処理装置、データ記録再生方法、及び記録媒体 | |
KR102198204B1 (ko) | 시뮬레이션 장치 | |
KR101103787B1 (ko) | 그래픽 기반 로봇 프로그래밍 시스템 | |
JP4198374B2 (ja) | 設備のシミュレーション方法および設備のシミュレーションプログラム | |
KR100694381B1 (ko) | 그래피컬 프로그래밍 장치 및 프로그래머블 표시기 | |
JP2011238041A (ja) | プログラム作成装置及びプログラム作成方法 | |
JP5314959B2 (ja) | 情報処理装置、及びその制御方法、コンピュータプログラム、記憶媒体 | |
KR0182393B1 (ko) | 가상의 컴퓨터 수치 제어 공작 시스템 및 방법 | |
JP2000089813A (ja) | 加工プログラム編集方法および工作機械の制御装置 | |
JP2009053823A (ja) | 加工シミュレーション装置 | |
KR100205337B1 (ko) | 엔. 씨. 프로그램의 시뮬레이션 장치 및 그 방법 | |
JPH08263130A (ja) | シミュレーション方式 | |
JPH10247142A (ja) | プロセス制御プログラムのプログラミングシステムおよびプログラミング方法 | |
US20230173670A1 (en) | Information processing apparatus, system, information processing method, method of manufacturing products, and recording medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040401 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20050922 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20060301 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060403 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060516 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060711 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20060905 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080905 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20081001 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111010 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111010 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121010 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131010 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |