JP2005149194A - ソースプログラム変換システム - Google Patents

ソースプログラム変換システム Download PDF

Info

Publication number
JP2005149194A
JP2005149194A JP2003386660A JP2003386660A JP2005149194A JP 2005149194 A JP2005149194 A JP 2005149194A JP 2003386660 A JP2003386660 A JP 2003386660A JP 2003386660 A JP2003386660 A JP 2003386660A JP 2005149194 A JP2005149194 A JP 2005149194A
Authority
JP
Japan
Prior art keywords
instruction code
argument
list
instruction
character string
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.)
Granted
Application number
JP2003386660A
Other languages
English (en)
Other versions
JP4613003B2 (ja
Inventor
Akira Yoshida
亮 吉田
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.)
Honda Motor Co Ltd
Original Assignee
Honda Motor Co Ltd
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 Honda Motor Co Ltd filed Critical Honda Motor Co Ltd
Priority to JP2003386660A priority Critical patent/JP4613003B2/ja
Publication of JP2005149194A publication Critical patent/JP2005149194A/ja
Application granted granted Critical
Publication of JP4613003B2 publication Critical patent/JP4613003B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Devices For Executing Special Programs (AREA)
  • Numerical Control (AREA)

Abstract

【課題】加工プログラム等のソースプログラムに対して新規の命令コードを適用する際に、該命令コードを簡便に適用させる。
【解決手段】命令文字列が記録された第1リストと、命令文字列に従属する引数が記録された第2リストとを設ける。加工プログラムから1行をバッファに読み込む(ステップS4)。バッファから命令コードを抽出し、該命令コードが第1リストに登録されていることを確認する(ステップS9及びステップS10)。該命令コードに対応したバイナリ変換部を呼び出して実行する(ステップS11及びS12)。バイナリ変換部では、命令コードに続く文字列から引数を抽出し、該引数が第2リストにおける命令コードに対応する箇所に登録されていることを確認する。命令コードを引数とともに変換して実行コードを生成する。第1リスト及び第2リストには新規の命令コード及びその引数が追加登録可能である。
【選択図】図5

Description

本発明は、テキスト形式のソースプログラムをコンピュータが読み取り実行可能な実行プログラムに変換するためのソースプログラム変換システムに関する。
数値制御式の加工機械(NC装置)を動作させる加工プログラムはテキスト形式で編集されており、該ソースプログラムには命令コードとして動作の種類の設定コード、目標位置の設定コード及び動作速度の設定コード等が記録される。NC装置では、所定の変換部によってこれらの命令コードを認識、解釈してバイナリ形式の実行プログラムに変換した後、この実行プログラムを実行させてモータ等の制御を行う。
加工プログラムの記述方法はNC装置の変換部の機能に対応しており、1行に1つの命令コードを記述する方法の他に、1行に複数の命令コードを記述する方法や、行の概念がなく連続して命令コードを記述する方法もある。
1行に複数の命令コードを記述する方法では、NC装置の変換部に各命令コードに対応する処理部を設けて、該処理部において複数の命令コードが併記可能であることを認識するようにしている(例えば、特許文献1参照)。
また、行の概念がなく連続して命令コードを記述する方法では、加工プログラムを命令コード毎に分割して、その後の分割した文字列が併記可能なものであるか否かを認識しながら変換を行っている。
特開平10−133826号公報
上記のとおり、NC装置間では加工プログラムに互換性がないため、所定の加工プログラムを他のNC装置に移植しようとする場合、移植先のNC装置における変換部の仕様に合わせて加工プログラムを再編集する必要がある。
また、1行に複数の命令コードを記述する方法や、行の概念がなく連続して命令コードを記述する方法では、従来適用されていなかった新規の命令コードが適用される場合には、該命令コードに対応した処理部を追加するだけでは足らず、従来の命令コードに対応する処理部も変更する必要がある。従って、新規の命令コードを追加するためには、処理部の内容を熟知している者でなければ追加の操作を行うことができず、該操作自体にも時間がかかる。
本発明はこのような課題を考慮してなされたものであり、加工プログラム等のソースプログラムに対して新規の命令コードを適用する際に、該命令コードを簡便に適用させることができるソースプログラム変換システムを提供することを目的とする。
本発明に係るソースプログラム変換システムは、テキスト形式のソースプログラムをコンピュータが読み取り実行可能な実行プログラムに変換するためのソースプログラム変換システムにおいて、前記ソースプログラムに記述されている文字列群を入力する入力手段と、あらかじめ適用された命令コード及び該命令コード毎に従属する引数が記録されたリストと、前記入力手段で入力した文字列群から命令コードを抽出し、該命令コードが前記リストに登録されていることを確認する命令コード抽出手段と、前記命令コードが引数をとるものである場合に、前記命令コードに続く文字列から引数を抽出し、該引数が前記リストにおける前記命令コードに対応する箇所に登録されていることを確認する引数抽出手段と、前記命令コード抽出手段によって抽出された命令コードを、前記引数抽出手段によって抽出された引数とともに変換し、実行可能な実行コードを生成する変換手段と、を有し、前記リストには、命令コード及び引数が追加登録可能であることを特徴とする。
このように、リストを参照しながら命令コード及び引数を抽出することにより、ソースプログラムに対して新規の命令コードを適用する際にはリストに命令コード及び引数を追加登録すればよく、該命令コードを簡便に適用させることができる。
この場合、前記引数抽出手段は、前記命令コードに続く文字列を順に調べて引数を順次抽出するとともに、抽出済みの引数を記憶し、該抽出済みの引数と同じ文字列があるとき、その時点における命令コードに対応した引数の抽出を終了することにより、命令コードと引数とを正確に区別することができる。
また、前記リストは、命令コードが記録されている第1リストと、各命令コード毎にその従属する引数が記録されている第2リストとに分けて構成することにより、新規の登録が容易になる。
さらに、前記変換手段は、前記命令コード毎に対応して実行コードを生成するバイナリ変換部を有し、前記変換手段には、命令コードに対応したバイナリ変換部を追加登録可能とするとよい。
本発明に係るソースプログラム変換システムによれば、加工プログラム等のソースプログラムに対して新規の命令コードを適用する際に、該命令コードを簡便に適用させることができる。これにより、例えば、それまでの追加登録の履歴を把握していない者であっても、容易且つ短時間に新規の命令コードを追加し、適用させることができる。
以下、本発明に係るソースプログラム変換システムについて実施の形態を挙げ、添付の図1〜図7を参照しながら説明する。
図1に示すように、本実施の形態に係るソースプログラム変換システム10は、加工部12の数値制御を行うNC装置14と、該NC装置14を動作させるための加工プログラム(ソースプログラム)16、第1リスト18及び第2リスト20の編集を行う編集端末22とを有する。加工プログラム16、第1リスト18及び第2リスト20は、編集端末22のエディタ24によってテキスト形式で編集される。
NC装置14は、編集端末22から転送された加工プログラム16、第1リスト18及び第2リスト20をそれぞれ加工プログラム16a、第1リスト18a及び第2リスト20aとして記録するメモリ26と、第1リスト18a及び第2リスト20aを参照しながら加工プログラム16aを実行プログラム28に変換する変換部30と、実行プログラム28を読み取り実行して前記加工部12を動作させる実行処理部32とを有する。実行処理部32はアンプ34を介してモータ36、ソレノイド37等を作用させ、工具やテーブル等を駆動することによりワークに対する加工を行う。
変換部30は、加工プログラム16aから所定の長さの文字列を順に読み出す入力部40と、第1リスト18aを参照しながら、入力部40によって読み出された文字列に記述されている命令コードの種類を識別する命令コード抽出部42と、該命令コード抽出部42で識別した命令コードの種類に応じた引数を、第2リスト20aを参照しながら抽出し、実行可能なバイナリ形成に変換する変換処理部(引数抽出手段)44とを有する。該変換処理部44は、各命令コード毎に対応したバイナリ変換部46a、46b、46c、46d、46e及び46fを有する。
図2に示すように、加工プログラム16及び16aは、テキスト形式で編集されており、命令コード(「N」、「E」、「G00」等)と、命令コードに従属する引数(「X100.0」、「Y200.0」等)と、コメントが記述されている。
NC装置14で適用可能な命令コードは「G00」、「G01」、「G02」「E」、「F」及び「N」の6つの命令コードである。引数は省略可能である。命令コード「G00」は変換処理部44におけるバイナリ変換部46aによって変換処理される。同様に、命令コード「G01」、「G02」、「E」、「F」及び「N」は、それぞれバイナリ変換部46b、46c、46d、46e及び46fによって変換処理される。
なお、後述するように、変換処理部44には、新規の命令コードに対応する変換部を追加することが可能であり、例えば、新規の命令コード「G103」に対応するバイナリ変換部46gを追加設定することができる。
実際上、NC装置14にはより多くの命令コードが存在するが、理解を容易にするために代表的な6つの命令コードと、新規の命令コード「G103」に限って説明する。
変換部30で変換可能な加工プログラム16aの書式は、1行に複数の命令コードを記述することが可能であって、命令コード毎に他の命令コードとの併記が許可されるか又は排他的であるかが規定されている。併記が許可される命令コードは、1行に複数を記述可能である。排他的な命令コード同士を1行に記述することは禁止されており、併記が許可される1以上の命令コードと1つの排他的な命令コードを記述することは可能である。
「G00」の命令コードは、非補間の位置決めコードであって、排他的な命令コードである。また、引数は3次元座標としての「X」、「Y」及び「Z」と、姿勢を示す「A」、「B」及び「C」である。
「G01」の命令コードは、直線補間コードであり、排他的な命令コードである。また、引数は「X」、「Y」、「Z」、「A」、「B」及び「C」である。
「G02」の命令コードは、時計回りの円弧補間コードであり、排他的な命令コードである。また、引数は「X」、「Y」、「Z」及び円弧の半径としての「R」である。
「E」の命令コードは、各軸速度の指定コードであり、他命令コードとの併記は許可されている。また、引数はない。
「F」の命令コードは、補間動作速度指定コードであり、他命令コードとの併記は許可されている。また、引数はない。
「N」の命令コードは、ラベル番号指定コードであり、他命令コードとの併記は許可されている。また、引数はない。この「N」の命令コードは、所定の分岐命令(いわゆるGO TO文等)に対応する分岐先として利用可能である。
例えば、「N10」という記述は、ラベル番号「10」を指定する命令であり、「N」の直後に対応する数値を記述する。「F」及び「N」も同様である。また、行番号を10番として採番し、動作としてX=100.0[mm]、Y=200.0[mm]の位置へ各軸速度を100[%]で移動させる場合には、
「N10 G00 X100.0 Y200.0 E100」
という文字列を1行に記述すればよい。
なお、これらの命令のうちいくつかは、JIS B 6315−2及びISO/DIS6983−2にも規定されている。
図3Aに示すように、第1リスト18及び18aには各命令コードが記録されている。
図4Aに示すように、第2リスト20及び20aには各命令コード毎にその従属する引数が記録されている。このうち、引数を有する命令コードの行には、最後の引数の欄の右側欄にそれ以上の引数がないことを示す「−」が記録されている。また、命令コード「E」、「F」及び「N」には、従属する引数がないことから、最初の欄に「−」が記録されており、引数がないことを示している。
第1リスト18に命令コード、第2リスト20に引数をそれぞれ分けて記録することにより適用済みの命令コード及び引数が明瞭になり、後述するように新規の命令コードを追加登録する際にも編集が容易である。
次に、このように構成されるソースプログラム変換システム10によって、加工プログラム16を実行プログラム28に変換する手順について、図5〜図7を参照しながら説明する。図5に示す処理のうち、ステップS1〜S4は、主に前記入力部40によって実行される処理であり、ステップS5〜S14は主に前記命令コード抽出部42によって実行される処理である。また、図6に示す処理は、主に変換処理部44のバイナリ変換部46aによって実行される処理である。
先ず、ステップS1において、編集端末22のエディタ24によって加工プログラム16を編集する。この編集作業は、いわゆるプログラミング作業であり、NC装置14が所定の動作を行うことができるように加工プログラム16を作成・編集する。また、第1リスト18及び第2リスト20は、あらかじめ図3A及び図4Aに示すように作成されているものとする。
加工プログラム16は、テキスト形式で編集され、第1リスト18及び第2リスト20はテキスト形式又はバイナリ形式で編集されている。
次に、ステップS2において、加工プログラム16、第1リスト18及び第2リスト20をNC装置14のメモリ26に転送し、加工プログラム16a、第1リスト18a及び第2リスト20aとして記録する。
次いで、ステップS3において、所定の変換開始指示操作により、入力部40がメモリ26内の加工プログラム16aに対するアクセスを可能にするためのオープン処理を行う。加工プログラム16aは、図2に示すように編集されているものとする。
さらに、ステップS4において、入力部40は加工プログラム16aから1行を所定のバッファに読み込む。このステップS4の処理は、実行される度に先頭から順に1行ずつを読み込むことができるように、加工プログラム16aにおける行を示す所定の行ポインタにより制御される。
次に、ステップS5において、読み込んだ行がファイルの終端を示す「EOF」コードであるか否かを確認する。バッファ中の文字列が「EOF」コードであるときには処理を終了し、それ以外のときにはステップS6へ進む。
ステップS6においては、バッファ中の文字列からコメントの文字列を削除する。つまり、括弧“(”及び閉じ括弧“)”で囲まれる範囲の文字列をその括弧を含んで削除し、さらに、その行におけるセミコロン“;”以降の文字列を削除する。
これにより、例えば、加工プログラム16の第1行目の文字列(図2参照)の場合、「(10番のタップ位置へ移動)」という文字列と、「;速度設定」という文字列が削除され、
「G00 X100.0 Y200.0 E100」
という文字列がバッファ中に残る。
次に、ステップS7において、読み取り位置を示す命令抽出用ポインタをバッファの先頭にセットする。つまり、上記の文字列の場合には、先頭の文字である「G」の部分に所定の命令抽出用ポインタがセットされる。この命令抽出用ポインタはステップS8以降の処理においてバッファにおける位置が移動する。
次いで、ステップS8において、その時点の命令抽出用ポインタの位置を調べ、該命令抽出用ポインタがバッファの終端にある場合には前記ステップS4へ戻り、それ以外の場合には次のステップS9へ移る。ステップS4へ戻る場合には加工プログラム16aから次の行の文字列をバッファに順次読み込み、該文字列に対して処理を続行することになる。
ステップS9において、その時点における命令抽出用ポインタの位置から次のスペース位置までに含まれる文字列を命令コードとして抽出する。上記の文字列の場合には、当初「G00」という命令コードの文字列が抽出される。
ステップS10において、抽出された命令コードを示す文字列が第1リスト18aにあるか否かを確認する。該文字列が第1リスト18aに存在する場合には、次のステップS11へ移り、存在しない場合には所定の異常表示を行い、処理を終了する。
ステップS11において、抽出された命令コードに対応する所定のバイナリ変換部を変換処理部44から呼び出す。具体的には、抽出された命令コードが「G00」である場合には、対応するバイナリ変換部46aを呼び出す。
次に、ステップS12において、呼び出されたバイナリ変換部を実行させる。このとき、バイナリ変換部に対して、抽出された命令コードに続く文字列を引き渡す。つまり、上記の文字列の場合には、「G00」に続く文字列である
「X100.0 Y200.0 E100」
という文字列をバイナリ変換部46aに引き渡す。このバイナリ変換部46aにおける処理については後述する。
次いで、ステップS13において、バイナリ変換部によって認識された引数を確認し、バッファ上において該引数の文字列に続く次の文字の位置に命令抽出用ポインタを移動する。つまり、上記の文字列における最初の命令コード「G00」に対応したバイナリ変換部46aを呼び出した場合には、引数が「X100.0 Y200.0」であると認識され、命令抽出用ポインタはそれに続く文字である「E」の位置にセットされる。
さらにステップS14において、バイナリ変換部における処理中にエラーが発生したか否かを確認し、エラーがある場合には所定の異常表示を行い、処理を終了する。それ以外の場合、つまり正常である場合には前記ステップS8へ戻りバッファ中の次の文字列に対して処理を続行する。
このようにして、加工プログラム16aに記述された文字列を、ステップS4〜S8において1行ずつバッファに順次読み込むとともに、ステップS9〜S14においてバッファ内の文字列を分解して、バイナリ変換部46a〜46fによって順次バイナリ形式に変換することができる。
次に、前記ステップS12におけるバイナリ変換部の処理について図6を参照しながら説明する。なお、本説明では、代表例として、バイナリ変換部のうち命令コード「G00」に対応するバイナリ変換部46aが、命令コード抽出部42から文字列「X100.0 Y200.0 E100」の引き渡しを受けた場合について説明する。
先ず、ステップS101において、引き渡しを受けた文字列における先頭の文字「X」の位置に引数抽出用ポインタをセットしておく。
次に、ステップS102において、対応する命令コードである「G00」は引数をとるか否かを確認する。具体的には、第2リスト20aを参照して、命令コード「G00」の行を参照し、この行に引数を示す文字がなく、文字「−」のみが記録されているときにはステップS108へ移り、引数を示す文字列が記録されている場合には、ステップS103へ移る。
また、引数がない命令コードは第2リスト20aに登録しないこととし、該第2リスト20aを参照したときに対応する文字列がない場合にステップS108へ移るようにしてもよい。
次に、ステップS103において、第2リスト20aにおける「G00」の行を参照し、その時点における引数抽出用ポインタが示す文字(例えば、「X」)が存在するか否かを調べる。対応する文字がないときにはステップS108へ移り、該文字が存在するときにはステップS104へ移る。
なお、上記のとおり、命令コード「G00」は、引数として「X」、「Y」、 「Z」、「A」、「B」及び「C」の6つをとり得るが、引数の数は6以下の任意の数でよく、例えば、引数が全くなくてもよい。
ステップS104において、その時点における引数抽出用ポインタが示す文字がすでに処理済みであるか否かを確認する。つまり、後述するように、ある引数が所定の命令コードと同じ文字列に適用されている場合であっても、引き渡された文字列のうち先頭側に存在する文字列を引数として識別し、後側に存在する文字列を「G00」に続く次の命令コードであると識別することができる。
引数抽出用ポインタが示す文字がすでに処理済みである場合には、ステップS108へ移り、それ以外の場合にはステップS105へ移る。
ステップS105においては、その時点における引数抽出用ポインタの位置から次のスペース位置までに含まれる数値を示す文字列を抽出し、引数抽出用ポインタの示す文字と組み合わせて、その引数が示す数値データとして認識する。
具体的には、引数抽出用ポインタが「X」を示す場合には、引数Xを、X=100.0として認識し、メモリ26上の所定の変数エリア(又は所定のバッファ)に記録する。この場合、「100.0」という文字列としてではなく数値データとして記録してもよい。
次に、ステップS106において、前記ステップS105において認識した数値データがあらかじめ規定された適正範囲の値であるか否かを確認する。適正である場合には、ステップS107へ移り、不適正である場合には所定の異常表示を行い、処理を終了する。数値データが不適正である場合には、所定のワーニング表示を行った後にステップS107へ移って処理を続行してもよい。
ステップS107においては、その時点まで認識した引数と該引数に付属する数値を示す文字列の次の文字に引数抽出用ポインタをセットする。つまり、引数を示す文字列「X」に対して、X=100.0と認識した後には、引数抽出用ポインタを次の文字列「Y」の位置にセットする。この後、前記ステップS102へ移る。
このようにして、ステップS102〜S107を繰り返し行うことにより、文字列「X100.0 Y200.0 E100」に対して、命令コード「G00」に対応する引数をX=100.0、Y=200.0として認識することができる。この後、引数抽出用ポインタが文字列「E」の位置にセットされたときには、前記ステップS103により、該文字列「E」が引数でないことが認識されてステップS108へ移る。
ステップS108(変換手段)においては、その時点までに認識された引数の数(0〜6)と各引数の数値データを反映させて「G00」をバイナリ形式に変換する。
ここでいう変換とは、単に「G00」という文字列をバイナリ形式に表現形式だけを変えることではなく、NC装置14において実行処理部32が読み取り実行可能な形式(つまり実行コード)に変換することをいう。変換したコードは、実行プログラム28を記録する領域に対して、所定のアドレス順に書き込む。
この後、引き渡しを受けた文字列「X100.0 Y200.0 E100」のうち、この時点における引数抽出用ポインタの位置である「E」の位置に基づき、「X100.0 Y200.0」までが認識済みであり、これに続く文字列「E100」が未処理である旨を命令コード抽出部42に通知する。命令コード抽出部42では、この通知に基づき前記ステップS13において命令抽出用ポインタを移動させる。
ステップS108の処理の後、バイナリ変換部46aにおける今回の処理、つまり図6に示す処理を終了する。加工プログラム16aに命令コードとしての文字列「G00」が複数記述されている場合には、バイナリ変換部46aが再度呼び出されることはもちろんである。
ここまで命令コード「G00」に対応したバイナリ変換部46aの処理について説明したが、他の命令コード「G01」、「G02」、「E」、「F」及び「N」についても、バイナリ変換部46b〜46f(図1参照)によって同様に処理される。バイナリ変換部46a〜46fは、ステップS101〜S107に相当する部分は共通にして、ステップS108に相当する部分だけを個別に設けるようにしてもよい。
また、上記の例では、1行に2つの命令コード「G00」及び「E100」が含まれている例について説明したが、1行に3つ以上の命令コードが含まれている場合も同様に処理可能である。
ところで、加工プログラム16aに記述される命令コードは、動作命令と非動作命令に区別される。動作命令とは、モータ36やソレノイド37等のアクチュエータを実際に動作させる命令であり、非動作命令は、速度設定や送り設定等のパラメータ設定用の命令であり、実際の動作を伴うことがない。
動作命令と非動作命令を組み合わせて、例えば、各軸の速度を100[%]に設定し、X=100.0、Y=200.0の座標に位置決めするように加工プログラム16aに記述する際、
「G00 X100.0 Y200.0 E100」
という記述と、
「E100 G00 X100.0 Y200.0」
という記述の両方が許容されている場合がある。
このような場合には、前記ステップS108において変換したコードを、実行プログラム28を記録する領域に対して直接に書き込むのではなく、一度、動作命令用の記録領域と、非動作命令用の記録領域に分けて書き込み、加工プログラム16aの全て(又は所定の部分)まで変換が終わった後にコードを並び替えて実行プログラム28として記録してもよい。
以上の手順によって加工プログラム16aを変換することによって作成された実行プログラム28は、実行処理部32のコンピュータによって読み取り実行され、アンプ34を介してモータ36及びソレノイド37等を制御する。
なお、上記の手順は、加工プログラム16aに基づいて実行プログラム28を一度作成した後に、該実行プログラム28を実行させるという、いわゆるコンパイラ型の変換システムとしてもよいし、また、加工プログラム16aを実行プログラム28に変換しながら、変換した部分を直ちに実行させるという、いわゆるインタプリタ型の変換システムとしてもよい。
次に、加工プログラム16に新規の命令コードを適用させる場合に、該加工プログラム16を実行プログラム28に変換する手順について説明する。
ここで説明する新規の命令コードは、従来適用されていなかったものであり、「G103」と表現されるものとする。また、この命令コード「G103」は、タップサイクルを設定するコードであって、排他的な命令コードであり、引数には工具の回転数を示す「N」と、ピッチを示す「F」と、タイマ設定用の「P」とをとり得るものとする。
この命令コード「G103」を用いて、加工プログラム16に
「G103 N8 F0.8 P1.0 F600」
という文字列を記述した場合について以下に説明する。
この場合、2つの文字列「F」のうち先頭側の「F0.8」は「G103」の引数で、ピッチが0.8[mm]であることを示す。一方、後側の「F600」は、「G103」とは別の命令コードであって、補間動作速度が600[mm/s]であることを示す。また、「N8」は、「G103」の引数であって、工具の回転数が8回であることを示し、前記の命令コード「N」とは異なる。「P1.0」は、「G103」の引数であって、1.0[s]のタイマ機能を示す。
加工プログラム16に新規の命令コード「G103」を記述し、該加工プログラム16を実行プログラム28に変換する際、準備として図7に示す作業を行う。
先ず、ステップS201において、変換処理部44(図1参照)に新規の命令コード「G103」をバイナリコードに変換するためのバイナリ変換部46g(図1参照)を追加登録する。この場合、他のバイナリ変換部46a〜46f及び命令コード抽出部42は変更する必要がない。
バイナリ変換部46gは、図6に基づいて説明したバイナリ変換部46aと基本的に同じ構成であり、前記ステップS108に相当する部分が異なる。つまり、バイナリ変換部46aは命令コード「G00」をバイナリ形式に変換することに対して、バイナリ変換部46gにおけるステップS108に相当する部分では命令コード「G103」をバイナリ形式に変換する。以下の説明では、バイナリ変換部46gに対して、図6と同じステップ番号を用いて説明する。
次に、ステップS202において、第1リスト18に新規の命令コード「G103」を追加登録し、更新する(図3B参照)。
さらに、ステップS203において、第2リスト20に命令コード「G103」と、そのとり得る引数の「N」、「F」及び「P」を追加登録し、更新する(図4B参照)。
第1リスト18及び第2リスト20に対する追加登録は、例えば、エディタ24を用いればよい。
このようにステップS203までの準備が終了した後、図5及び図6に示す処理を実行する。
この場合、前記ステップS9及びS10において、更新された第1リスト18(図3B参照)を参照することにより「G103」という文字列が命令コードであることが認識可能であり、しかも最初の1文字が同一である他の命令コードの「G00」、「G01」及び「G02」との区別が可能である。
また、この後、ステップS11により、命令コード「G103」に対応するバイナリ変換部46gが適切に呼び出され、「G103」に続く文字列である「N8 F0.8 P1.0 F600」がバイナリ変換部46gに引き渡される。
バイナリ変換部46gにおける処理では、ステップS102及びS103において、更新された第2リスト20(図4B参照)を参照することにより、文字列「N」が「G103」の引数であることが認識可能であり、ラベル番号指定コードである「N」とは区別できる。
さらに、ステップS105及びS106において、文字列「N」に続く文字列である「8」を認識することにより、N=8、つまり工具の回転数が8回であることが認識可能となり、命令コード「G103」の最初の引数である[N]についての処理が終了する。
次に、ステップS107において引数抽出用ポインタを2つの文字列「F」のうち先頭側の位置にセットする。その後、文字列「N」の場合と同様に、F=0.8、つまりピッチが0.8[mm]であることを認識する。
さらに、引数抽出用ポインタを文字列「P」の位置にセットして同様の処理を行い、P=1.0、つまり1.0[s]のタイマ機能を認識する。
このようにして、新規の命令コードである「G103」に従属する引数である「N8」、「F0.8」及び「P1.0」を正しく認識することができる。
さらにまた、この後ステップS107において引数抽出用ポインタを2つの文字列「F」のうち後側の位置にセットし、ステップS103を介してステップS104に移る。このステップS104においては、前記のとおり、その時点における引数抽出用ポインタが示す文字列「F」が処理済みであるか否かを確認するが、この文字列「F」は2つ存在するうちの後側であることからすでに1度処理を行っていると判断されて、ステップS108へ移ることとなる。
従って、後側の「F」及びこれに続く「600」という文字列は、命令コードである「G103」の引数ではなく、異なる次の命令コードであることを正しく判断することができる。
この後、ステップS108では、認識された各引数及びその数値データを反映させて新規の命令コードである「G103」をバイナリ形式に変換する。
上述したように、本実施の形態に係るソースプログラム変換システム10によれば、「G103」等の新規の命令コードを用いる場合、これに対応するバイナリ変換部46gを変換処理部44に追加登録するとともに、第1リスト18及び第2リスト20に「G103」の命令コードとその引数「N」、「F」及び「P」を追加登録すればよい。この場合、他のバイナリ変換部46a〜46f及び命令コード抽出部42には影響がなく、修正を行う必要がない。
次に、本実施の形態に係るソースプログラム変換システム10と対比するために、従来技術について説明する。
従来技術においては、加工プログラム16aからバッファに読み込んだ文字列のうち、「E」、「F」、「G」又は「N」のいずれかの文字から次に現れる「E」、「F」、「G」又は「N」までの間を1つの命令として認識している。従って、前記の「G103」のような新規の命令コードが「F」や「N」を引数としてとるものと規定されている場合には、そのままでは命令コードと引数との区別ができず、専用の判断処理を設ける必要がある。
つまり、命令コード抽出部42に相当する処理部又は変換処理部44に相当する処理部において次のような意味の例外処理を追加、変更する必要がある。
すなわち、この場合の例外処理は、“ただし、切り分け予定部分の先頭の文字列が「G103」であったら、1回目の「F」及び「N」は無視する”という意味のものである。
また、このような追加、変更の操作は、新規の命令コードが適用される度に行う必要があり、命令コード抽出部42に相当する処理部が次第に複雑となり、追加、変更の操作の際に人為的なミスを誘発することがある。また、追加、変更の操作を担当した以外の者には処理構造の理解が困難になる。さらに、いわゆるバージョン管理が繁雑となる。
一方、本実施の形態に係るソースプログラム変換システム10によれば、命令コード抽出部42や変換処理部44は、第1リスト18及び第2リスト20を参照しながら命令コードの抽出を行うため、新規の命令コードを適用する際に、命令コード抽出部42や従来の命令コードに対応するバイナリ変換部46a〜46fに対して変更を加える必要がない。この場合、第1リスト18及び第2リスト20には、新規の命令コードに対応して、その命令コード自体と、引数とを追加登録するが、この手順は極めて容易であって、しかも追加登録の数が増えても第1リスト18及び第2リスト20の基本構造は変化がない。従って、それまでの追加登録の履歴を把握していない者であっても、容易且つ短時間に新規の命令コードを追加適用させることができる。
このように、本実施の形態に係るソースプログラム変換システム10によれば、加工プログラム16及び16aに対して新規の命令コードを適用する際に、該命令コードを簡便に適用させることができる。
また、上記の説明では、命令コードとして「E」、「G00」、「G103」等の動作や条件を設定するための命令コードについて例示したが、これ以外に、分岐処理、演算処理及び代入処理等に関する命令コードについても適用可能であることはもちろんである。例えば、第2リスト20における登録データを引数なしとし、前記ステップS108の処理を分岐命令、演算命令及び代入命令に置き換えれることにより、これらの処理に対して適用可能となる。つまり、図6に示す処理は各命令コード毎に用意されるものであり、全体の仕組みや他の命令処理に影響されずに作成可能である。
さらに、本実施の形態に係るソースプログラム変換システム10は、NC装置14を制御するための加工プログラム16に限らず、他の形式のプログラムにも適用可能である。
上記の説明では、新規の命令コードとして1つの命令コード「G103」に対して適用する例について説明したが、新規の命令コードが複数である場合にも同様の手順により対応可能であることはもちろんである。
さらにまた、上記の説明では、第1リスト18と第2リスト20とを参照しながら命令コード及び引数を抽出する例について説明したが、第2リスト20のうち図4Aにおける最も左側の列に相当する部分を第1リスト18として兼用することとし、該第1リスト18自体を省略してもよい。
実行プログラム28は、1つの加工プログラム16から変換されるものとして説明したが、加工プログラム16は複数のファイルから構成されていてもよい。
本発明に係るソースプログラム変換システムは、上述の実施の形態に限らず、本発明の要旨を逸脱することなく、種々の構成をとり得ることはもちろんである。
本実施の形態に係るソースプログラム変換システムの構成ブロック図である。 加工プログラムの内容を示す図である。 図3Aは、第1リストの内容を示す図であり、図3Bは、新規の命令コードを追加登録して更新された第1リストの内容を示す図である。 図4Aは、第2リストの内容を示す図であり、図4Bは、新規の命令コードを追加登録して更新された第2リストの内容を示す図である。 入力部及び命令コード抽出部が行う処理の手順を示すフローチャートである。 バイナリ変換部が行う処理の手順を示すフローチャートである。 新規の命令コードを適用させる際における準備の手順を示すフローチャートである。
符号の説明
10…ソースプログラム変換システム 14…NC装置
16、16a…加工プログラム 18、18a…第1リスト
20、20a…第2リスト 22…編集端末
24…エディタ 26…メモリ
28…実行プログラム 30…変換部
32…実行処理部 40…入力部
42…命令コード抽出部 44…変換処理部
46a〜46g…バイナリ変換部

Claims (4)

  1. テキスト形式のソースプログラムをコンピュータが読み取り実行可能な実行プログラムに変換するためのソースプログラム変換システムにおいて、
    前記ソースプログラムに記述されている文字列群を入力する入力手段と、
    あらかじめ適用された命令コード及び該命令コード毎に従属する引数が記録されたリストと、
    前記入力手段で入力した文字列群から命令コードを抽出し、該命令コードが前記リストに登録されていることを確認する命令コード抽出手段と、
    前記命令コードが引数をとるものである場合に、前記命令コードに続く文字列から引数を抽出し、該引数が前記リストにおける前記命令コードに対応する箇所に登録されていることを確認する引数抽出手段と、
    前記命令コード抽出手段によって抽出された命令コードを、前記引数抽出手段によって抽出された引数とともに変換し、実行可能な実行コードを生成する変換手段と、
    を有し、
    前記リストには、命令コード及び引数が追加登録可能であることを特徴とするソースプログラム変換システム。
  2. 請求項1記載のソースプログラム変換システムにおいて、
    前記引数抽出手段は、前記命令コードに続く文字列を順に調べて引数を順次抽出するとともに、抽出済みの引数を記憶し、該抽出済みの引数と同じ文字列があるとき、その時点における命令コードに対応した引数の抽出を終了することを特徴とするソースプログラム変換システム。
  3. 請求項1記載のソースプログラム変換システムにおいて、
    前記リストは、命令コードが記録されている第1リストと、
    各命令コード毎にその従属する引数が記録されている第2リストと、
    に分けて構成されていることを特徴とするソースプログラム変換システム。
  4. 請求項1記載のソースプログラム変換システムにおいて、
    前記変換手段は、前記命令コード毎に対応して実行コードを生成するバイナリ変換部を有し、
    前記変換手段には、命令コードに対応したバイナリ変換部を追加登録可能であることを特徴とするソースプログラム変換システム。

JP2003386660A 2003-11-17 2003-11-17 ソースプログラム変換方法 Expired - Fee Related JP4613003B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003386660A JP4613003B2 (ja) 2003-11-17 2003-11-17 ソースプログラム変換方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003386660A JP4613003B2 (ja) 2003-11-17 2003-11-17 ソースプログラム変換方法

Publications (2)

Publication Number Publication Date
JP2005149194A true JP2005149194A (ja) 2005-06-09
JP4613003B2 JP4613003B2 (ja) 2011-01-12

Family

ID=34694291

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003386660A Expired - Fee Related JP4613003B2 (ja) 2003-11-17 2003-11-17 ソースプログラム変換方法

Country Status (1)

Country Link
JP (1) JP4613003B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108107843A (zh) * 2016-11-25 2018-06-01 发那科株式会社 加工程序管理装置
WO2022138055A1 (ja) * 2020-12-24 2022-06-30 Dmg森精機株式会社 情報処理装置および情報処理プログラム
WO2022138056A1 (ja) * 2020-12-24 2022-06-30 Dmg森精機株式会社 情報処理装置および情報処理プログラム

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6168606A (ja) * 1984-09-12 1986-04-09 Mitsubishi Electric Corp 数値制御装置
JPS63307536A (ja) * 1987-06-09 1988-12-15 Tokyo Electric Co Ltd 情報処理装置のコンパイラ−
JPH03248230A (ja) * 1990-02-26 1991-11-06 Nec Corp パラメータ解析方式
JPH04120628A (ja) * 1990-09-12 1992-04-21 Toshiba Corp 予約語保守管理システム
JPH05173799A (ja) * 1991-12-25 1993-07-13 Hitachi Ltd 構文解析方式
JPH05197560A (ja) * 1992-01-20 1993-08-06 Toshiba Corp プログラミング言語変換装置
JPH05313727A (ja) * 1992-05-12 1993-11-26 Fuji Electric Co Ltd 位置決め制御方法
JPH10133883A (ja) * 1996-10-31 1998-05-22 Nec Corp コンパイル装置
JP2000259424A (ja) * 1999-03-10 2000-09-22 Hitachi Ltd 予約語無効化システム
JP2002341912A (ja) * 2001-05-16 2002-11-29 Citizen Watch Co Ltd 数値制御装置、数値制御プログラムの実行方法及びそのプログラム

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6168606A (ja) * 1984-09-12 1986-04-09 Mitsubishi Electric Corp 数値制御装置
JPS63307536A (ja) * 1987-06-09 1988-12-15 Tokyo Electric Co Ltd 情報処理装置のコンパイラ−
JPH03248230A (ja) * 1990-02-26 1991-11-06 Nec Corp パラメータ解析方式
JPH04120628A (ja) * 1990-09-12 1992-04-21 Toshiba Corp 予約語保守管理システム
JPH05173799A (ja) * 1991-12-25 1993-07-13 Hitachi Ltd 構文解析方式
JPH05197560A (ja) * 1992-01-20 1993-08-06 Toshiba Corp プログラミング言語変換装置
JPH05313727A (ja) * 1992-05-12 1993-11-26 Fuji Electric Co Ltd 位置決め制御方法
JPH10133883A (ja) * 1996-10-31 1998-05-22 Nec Corp コンパイル装置
JP2000259424A (ja) * 1999-03-10 2000-09-22 Hitachi Ltd 予約語無効化システム
JP2002341912A (ja) * 2001-05-16 2002-11-29 Citizen Watch Co Ltd 数値制御装置、数値制御プログラムの実行方法及びそのプログラム

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108107843A (zh) * 2016-11-25 2018-06-01 发那科株式会社 加工程序管理装置
CN108107843B (zh) * 2016-11-25 2019-03-29 发那科株式会社 加工程序管理装置
US10656632B2 (en) 2016-11-25 2020-05-19 Fanuc Corporation Machining program management apparatus
DE102017127238B4 (de) 2016-11-25 2021-10-07 Fanuc Corporation Bearbeitungsprogrammverwaltungsvorrichtung
WO2022138055A1 (ja) * 2020-12-24 2022-06-30 Dmg森精機株式会社 情報処理装置および情報処理プログラム
WO2022138056A1 (ja) * 2020-12-24 2022-06-30 Dmg森精機株式会社 情報処理装置および情報処理プログラム
JP2022101267A (ja) * 2020-12-24 2022-07-06 Dmg森精機株式会社 情報処理装置
JP2022101268A (ja) * 2020-12-24 2022-07-06 Dmg森精機株式会社 情報処理装置

Also Published As

Publication number Publication date
JP4613003B2 (ja) 2011-01-12

Similar Documents

Publication Publication Date Title
US9483043B2 (en) Method and system for programmable numerical control
TWI464558B (zh) 程式作成支援裝置
CN102414627B (zh) 用于创建安全控制装置的应用程序的方法和装置
US8195911B2 (en) Numerical controller capable of dividing and combining memory areas to store machining programs and binary data
JPH05134734A (ja) 数値制御装置及びその制御方法
EP3540536B1 (en) Development support device, development support method, and development support program
EP1186976B1 (en) NC machining simulation apparatus
JP5777837B2 (ja) プログラム開発支援装置およびその方法
JP4266893B2 (ja) ロボット制御装置及びロボットシステム
JP2007265252A (ja) プログラム作成支援装置およびその方法
JP4613003B2 (ja) ソースプログラム変換方法
KR101447846B1 (ko) 모션 sfc 프로그램 부품 작성 장치
US7133738B2 (en) System and method for programming an automation system, based on pulse timing diagrams
CN112698624B (zh) 优化处理装置
JP2015053016A (ja) プログラム再開機能を備えた数値制御装置
CN121399552A (zh) 用于生成自动化系统的控制程序的方法和开发环境
EP2339417A1 (en) Apparatus and method for controlling machine tool
CN100375938C (zh) 机械的控制装置
JP2008059421A (ja) シーケンスプログラム編集支援装置
CN121166093B (zh) Iec 61131-3编程系统集成g代码方法和装置
EP0827053A1 (en) Programming system for motion controller
JP2005326909A (ja) プラントエンジニアリングシステム
KR100423742B1 (ko) 순차기능챠트에 의한 전용 제어 시스템
JP4560191B2 (ja) 数値制御装置
JPH0883114A (ja) 数値制御装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051226

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080430

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081216

RD13 Notification of appointment of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7433

Effective date: 20090130

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090216

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20090130

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20090501

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100202

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100402

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100427

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100727

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20100803

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: 20101012

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: 20101018

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

Free format text: PAYMENT UNTIL: 20131022

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees