JP2008040542A - Numerical value control device - Google Patents

Numerical value control device Download PDF

Info

Publication number
JP2008040542A
JP2008040542A JP2006209964A JP2006209964A JP2008040542A JP 2008040542 A JP2008040542 A JP 2008040542A JP 2006209964 A JP2006209964 A JP 2006209964A JP 2006209964 A JP2006209964 A JP 2006209964A JP 2008040542 A JP2008040542 A JP 2008040542A
Authority
JP
Japan
Prior art keywords
block
prefetch
buffer
code
prefetching
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.)
Pending
Application number
JP2006209964A
Other languages
Japanese (ja)
Inventor
Makoto Haga
誠 芳賀
Soichiro Ide
聡一郎 井出
Toshiaki Otsuki
俊明 大槻
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.)
Fanuc Corp
Original Assignee
Fanuc 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 Fanuc Corp filed Critical Fanuc Corp
Priority to JP2006209964A priority Critical patent/JP2008040542A/en
Publication of JP2008040542A publication Critical patent/JP2008040542A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a numerical value control device that can prevent malfunction, keep moving speed, and shorten the operating time even when the custom macro variable is varied. <P>SOLUTION: NC programs are read and analyzed block by block, and the analysis result is saved in a lookahead buffer (102). If there is a lookahead stop code, the number of restart allowable blocks specified by a parameter or program is set to an internal variable (104-107). A lookahead stop flag is set at 1, and the lookahead processing is stopped (108 and 100). During execution, the analysis result is taken out and executed from a lookahead buffer by first-in last-out method. When the lookahead stop flag is 1, the lookahead stop flag is set at 0 and the lookahead processing is restarted when the number of blocks remaining in the lookahead buffer reaches the number of restart allowable blocks. According to the specified number of restart allowable blocks, the malfunction can be prevented, the moving speed does not become zero, and the operating time can be shortened. <P>COPYRIGHT: (C)2008,JPO&INPIT

Description

本発明は、数値制御装置に関し、先読み停止制御を実行する数値制御装置に関する。   The present invention relates to a numerical control device, and more particularly to a numerical control device that executes prefetch stop control.

数値制御装置においては、NCプログラムを1ブロック毎先読みしてその指令を解析しその解析結果(実行データ)を先読みバッファに1ブロック毎保存する先読み処理と、該先読みバッフアに保存された解析結果(実行データ)を先入れ先出し(FIFO)方式で読み出し、実行する本実行処理とを並行して実施している。
又、数値制御装置で制御する機械に、ある所定の動作を行わせるための一群の指令を、該機械を使用するユーザがユーザ独自のプログラムとして作成し、サブプログラムと同様に必要なときに呼び出して実行することができるようにしたプログラムとしてカスタムマクロが知られている。このカスタムマクロはカスタムマクロ変数を使用して作成されるものであるが、そのカスタムマクロ変数が所望の値になった後実行されるべきにも拘わらず、その値にならないうちに処理だけ先走って、先読み処理が実行される場合がある。
In the numerical controller, the NC program is prefetched block by block, the command is analyzed, and the analysis result (execution data) is stored in the prefetch buffer for each block, and the analysis result stored in the prefetch buffer ( Execution data) is read out in a first-in first-out (FIFO) system, and the execution process is executed in parallel.
In addition, a group of commands for causing a machine controlled by a numerical control device to perform a predetermined operation is created as a user's own program by a user using the machine, and called when necessary as with a subprogram. A custom macro is known as a program that can be executed by executing. Although this custom macro is created using a custom macro variable, it should be executed after the custom macro variable has reached the desired value, but before that value is reached, the process is advanced. In some cases, prefetch processing is executed.

例えば、工具径補正機能を有効にするコードと補正量が指令された指令と工具径補正をキャンセルする指令がプログラムされ、その後、カスタムマクロ変数によって工具径補正を計算し変更する指令がある場合で、先読み処理によって、工具径補正機能を有効にするコードと補正量が指令された指令と工具径補正をキャンセルする指令が先読みバッファに格納されて、いまだ本実行されていない状態で、カスタムマクロ変数によって工具径補正を計算し変更する指令のブロックが読み込まれ、先読みバッファの保存処理がなされると、このとき、カスタムマクロ変数の計算を事前に行っているので、当初プログラムで指令した工具径補正量と異なった、意図しない補正量で加工がなされることになり、誤った加工がなされることになる。   For example, when a code for enabling the tool radius compensation function, a command for commanding the compensation amount, and a command for canceling the tool radius compensation are programmed, and then there is a command for calculating and changing the tool radius compensation using a custom macro variable. The code that enables the tool radius compensation function, the command for which the compensation amount is commanded, and the command that cancels the tool radius compensation are stored in the look-ahead buffer, and the custom macro variable is not yet executed. When the command block to calculate and change the tool radius compensation is read and the prefetch buffer is saved, the custom macro variable is calculated in advance at this time. Processing is performed with an unintended correction amount different from the amount, and erroneous processing is performed.

このような不具合をなくすために、カスタムマクロ変数を使用した処理の前に、先読みを停止させる意味を持ったコードが挿入されたブロックを挿入して、このブロックで先読みブロック数を0にしてから、次のカスタムマクロ変数を使用したプログラムを実行する等の方法が従来から一般的に使用されている。   To eliminate this problem, insert a block with code that has the meaning of stopping prefetching before processing using the custom macro variable, and set the number of prefetching blocks to 0 in this block. A method such as executing a program using the following custom macro variable has been generally used.

例えば、確定しない変数を含む指令が先読み処理で読み込まれたとき、その指令の解読に必要のない変数か判断し、必要がないときには、この変数に対応するフラグを立てて記憶し、その命令の解読に、変数が確定していることが必要である場合には、該変数に対応してフラグが立っているか否か判断し、立っていると先読みを停止し、この変数に対する処理が実行されたフラグが下ろされると、先読み処理を開始するようにした発明が知られている(特許文献1参照)。   For example, when a command including a variable that is not fixed is read by prefetch processing, it is determined whether it is a variable that is not necessary for decoding the command, and when it is not necessary, a flag corresponding to this variable is set and stored. If it is necessary to determine a variable for decoding, it is determined whether or not a flag is set corresponding to the variable. If it is set, prefetching is stopped, and processing for this variable is executed. There is known an invention in which prefetching processing is started when the flag is cleared (see Patent Document 1).

特許第2906754号公報Japanese Patent No. 2906754

従来から一般的に用いられている、カスタムマクロ変数を使用した処理の前に、先読みを停止させる意味を持ったコードが挿入されたブロックを挿入して、このブロックで先読みを0にしてから、次のカスタムマクロ変数を使用したプログラムを実行する方法を採用した場合、先読みを停止させるコードが挿入されたブロック以降のプログラムの先読みが一切行われなくなり、先読みを停止するコードが挿入されたブロックの実行が終了したことをもって、その後のプログラムの先読みが再開される制御となっていた。そのため先読み停止させたブロックと次のブロックの間で速度が0となり、加工時間が増大するという欠点があった。
又、前述した特許文献1に記載された方法では、変数が一旦確定した後、その後変更されるような場合には、適用ができないという問題がある。
Before processing using a custom macro variable, which is generally used in the past, insert a block in which a code having the meaning of stopping the prefetching is inserted, and set the prefetching to 0 in this block. If the method of executing a program using the following custom macro variable is adopted, prefetching of the program after the block in which the code for stopping prefetching is inserted is not performed at all, and the block in which the code for stopping prefetching is inserted When the execution was completed, the prefetching of the subsequent program was resumed. For this reason, the speed is zero between the block in which the prefetching is stopped and the next block, and the processing time is increased.
Further, the method described in Patent Document 1 described above has a problem that it cannot be applied when a variable is once determined and then changed.

そこで、本発明の目的は、カスタムマクロ変数が変更される場合でも、誤動作を防止し、かつ移動速度を保持して、動作時間を短縮できる数値制御装置を提供することにある。   Accordingly, an object of the present invention is to provide a numerical control device that can prevent malfunction even when a custom macro variable is changed, maintain a moving speed, and shorten an operation time.

本願請求項1に係る発明は、NCプログラムの各ブロックの指令を順次先読み出し該指令を解析して、該解析結果をバッファに保存する先読み処理を実行し、該バッファに保存された解析結果を順次1ブロック毎取り出して該バッファから削除すると共に該ブロックの指令を実行する数値制御装置において、NCプログラムから先読みを停止させるコードが挿入されたブロックが読み出されると前記先読み処理を停止させる手段と、前記バッファに残るブロック数が指定されている先読み再開許容ブロック数と一致したか判別する判別手段と、該判別手段で前記バッファに残るブロック数と前記再開許容ブロック数が一致したことが判別されると、前記先読み処理を再開させる手段とを備えることによって、先読み処理の停止と、先読み処理の再開するタイミングを任意に設定できるようにしたものである。前記先読み再開許容ブロック数を、請求項2に係る発明はパラメータで設定するものとし、請求項3に係る発明は、前記NCプログラムで指令するものとした。   The invention according to claim 1 of the present application sequentially reads the commands of each block of the NC program, analyzes the commands, executes a prefetch process for storing the analysis results in a buffer, and stores the analysis results stored in the buffers. Means for stopping the prefetching processing when a block in which a code for stopping prefetching is inserted from the NC program is read out in the numerical control device that sequentially takes out one block at a time and deletes it from the buffer and executes the command of the block; A determining means for determining whether the number of blocks remaining in the buffer matches the specified number of prefetching resumable blocks, and the determining means determines that the number of blocks remaining in the buffer matches the number of resumable blocks to be resumed. And means for resuming the prefetching process, thereby stopping the prefetching process and prefetching Resumed is obtained by can be arbitrarily set the timing. The invention according to claim 2 sets the prefetch resumption allowable block number by a parameter, and the invention according to claim 3 is commanded by the NC program.

又、請求項4に係る発明は、NCプログラムの各ブロックの指令を順次先読み出し該指令を解析して、該解析結果をバッファに保存する先読み処理を実行し、該バッファに保存された解析結果を1ブロック毎取り出し該ブロックの指令を実行する数値制御装置において、前記先読みバッファより先読みを停止させるコードが挿入されたブロックが読み出されると前記先読み処理を停止させる手段と、NCプログラムから先読み再開コードが読み出されると前記先読み処理を再開させる手段とを備えることによって、先読み処理の停止と、先読み処理の再開するタイミングを任意に設定できるようにしたものである。   Further, the invention according to claim 4 sequentially reads the commands of each block of the NC program, analyzes the commands, executes prefetch processing for storing the analysis results in a buffer, and executes the analysis results stored in the buffer. In the numerical control apparatus that takes out each block and executes the command of the block, means for stopping the prefetching process when a block in which a code for stopping the prefetching is inserted from the prefetching buffer is read, and a prefetching restart code from the NC program By means for resuming the prefetching process when read is read, it is possible to arbitrarily set the stop of the prefetching process and the timing to resume the prefetching process.

請求項5に係る発明は、NCプログラムの各ブロックの指令を順次先読み出し該指令を解析して、該解析結果をバッファに保存する先読み処理を実行し、該バッファに保存された解析結果を順次1ブロック毎取り出して該バッファから削除すると共に該ブロックの指令を実行する数値制御装置において、カスタムマクロ変数を変更するブロックの指令が読み込まれたとき、前記先読みバッファに保存されているブロックを検索して、このカスタムマクロ変数に関係するコードを検出する第1の検索手段と、該第1の検索手段で前記カスタムマクロ変数に関係するコードを検出したら、当該解析中のブロックの解析とその解析結果の先読みバッファへの保存を停止すると共に、NCプログラムのブロックの前記先読み処理を停止させる先読み停止手段と、該先読み停止手段で先読み処理が停止されているときに、前記バッファに残されているブロックを検索して、前記カスタムマクロ変数に関係するコードを検出する第2の検索手段と、該第2の検索手段で、前記カスタムマクロ変数に関係しているコードが含まれていないことが判定されたとき、前記解析を停止し先読みバッファへの解析結果の保存を停止したブロックから先読み処理を再開させる手段とを備えるものとして、NCプログラムの指令から自動的に先読み停止、再開を制御して、誤動作の発生を防止した。   The invention according to claim 5 sequentially reads the commands of each block of the NC program, analyzes the commands, executes the prefetch processing for storing the analysis results in a buffer, and sequentially analyzes the analysis results stored in the buffers. When a block command for changing a custom macro variable is read in a numerical control apparatus that takes out one block at a time and deletes it from the buffer and executes the command of the block, the block stored in the prefetch buffer is searched. The first search means for detecting the code related to the custom macro variable, and the code related to the custom macro variable are detected by the first search means, the analysis of the block under analysis and the analysis result thereof Stop prefetching and stop the prefetch processing of the NC program block. And a second search means for searching for a block remaining in the buffer and detecting a code related to the custom macro variable when the prefetch processing is stopped by the prefetch stop means, When it is determined by the second search means that a code related to the custom macro variable is not included, the analysis is stopped and the prefetch processing is performed from the block in which saving of the analysis result to the prefetch buffer is stopped. And a means for restarting, the pre-reading stop / restart is automatically controlled from the command of the NC program to prevent the occurrence of malfunction.

先読み処理を停止して、該先読み処理を停止したブロックが実行される前に、先読み処理を開始させ、しかも、誤動作が発生しないように先読み停止、先読み再開のタイミングを決定できるので、誤動作もなく、かつ、先読み処理の停止のブロックと次のブロックの指令間で、速度が0となることを防止できるから、効率の良い動作を実行できる。   The prefetch process is stopped, the prefetch process is started before the block where the prefetch process is stopped is executed, and the timing of prefetch stop and prefetch restart can be determined so as not to cause a malfunction. In addition, since the speed can be prevented from becoming zero between the command of the stop of the prefetching process and the command of the next block, an efficient operation can be executed.

以下、本発明の一実施形態を図面と共に説明する。
図1は、本発明の一実施形態の数値制御装置の要部ブロック図である。
CPU11は数値制御装置10を全体的に制御するプロセッサである。該CPU11にはバス18を介してメモリ12、PMC(プログラマブル・マシン・コントローラ)13、各送り軸のサーボモータMを制御する軸制御回路14、主軸モータSMを制御するスピンドル制御回路16が接続されている。メモリ12は、ROM,RAM、不揮発性RAM等で構成されており、CPU11は、メモリ12に格納されたシステムプログラムを、バス18を介して読み出し、該システムプログラムに従って数値制御装置全体を制御する。又、メモリ12には、CRTや液晶等で構成される表示器とキーボード等で構成される表示器/MDI(手動入力)ユニット20を介してオペレータが入力した設定値等の各種データが格納されていると共に、図示していないインターフェイスを介して読み込まれた加工プログラムや表示器/MDI(手動入力)ユニット20を介して入力された加工プログラム等が記憶される。
Hereinafter, an embodiment of the present invention will be described with reference to the drawings.
FIG. 1 is a principal block diagram of a numerical controller according to an embodiment of the present invention.
The CPU 11 is a processor that controls the numerical controller 10 as a whole. The CPU 11 is connected via a bus 18 to a memory 12, a PMC (programmable machine controller) 13, an axis control circuit 14 for controlling the servo motor M of each feed axis, and a spindle control circuit 16 for controlling the spindle motor SM. ing. The memory 12 includes a ROM, a RAM, a nonvolatile RAM, and the like. The CPU 11 reads a system program stored in the memory 12 via the bus 18 and controls the entire numerical control device according to the system program. The memory 12 stores various data such as setting values input by the operator via a display / MDI (manual input) unit 20 including a display composed of a CRT, liquid crystal, etc. and a keyboard. In addition, a machining program read via an interface (not shown), a machining program input via the display / MDI (manual input) unit 20, and the like are stored.

PMC13は、内蔵されたラダー等のシーケンスプログラムで制御対象物の工作機械の補助装置、周辺機器に信号を出力し制御する。また、数値制御装置10で制御される制御対象物である工作機械の本体に配備された操作盤の各種スイッチ等の信号を受け、必要な信号処理をした後、CPU11に渡す。
各軸の軸制御回路14はCPU11からの各軸の移動指令量を受けて、各軸の指令をサーボアンプ15に出力する。サーボアンプ15はこの指令を受けて、機械(制御対象物)の各軸のサーボモータMを駆動する。各軸のサーボモータMは位置・速度検出器21を内蔵し、この位置・速度検出器21からの位置、速度フィードバック信号をそれぞれの軸制御回路14にフィードバックし、各軸制御回路14は、位置・速度のフィードバック制御を行う。
The PMC 13 outputs and controls a signal to an auxiliary device and peripheral device of a machine tool to be controlled by a built-in sequence program such as a ladder. In addition, it receives signals from various switches and the like of an operation panel provided on the body of the machine tool that is a control target controlled by the numerical control device 10, performs necessary signal processing, and then passes them to the CPU 11.
The axis control circuit 14 for each axis receives a movement command amount for each axis from the CPU 11 and outputs a command for each axis to the servo amplifier 15. Upon receiving this command, the servo amplifier 15 drives the servo motor M of each axis of the machine (control target). Each axis servo motor M has a built-in position / speed detector 21 and feeds back a position / speed feedback signal from the position / speed detector 21 to each axis control circuit 14.・ Speed feedback control is performed.

また、スピンドル制御回路16はCPU11から、主軸回転指令を受け、スピンドルアンプ17にスピンドル速度信号を出力する。スピンドルアンプ17はスピンドル速度信号を受けて、主軸モータSMを指令された回転速度で回転させる。ポジションコーダ22は、主軸モータSM、又は主軸の回転に同期して帰還パルスをスピンドル制御回路16にフィードバックし、スピンドル制御回路16はCPU11からの主軸回転指令とこのフィードバック信号に基づいて速度制御を行う。   Further, the spindle control circuit 16 receives a spindle rotation command from the CPU 11 and outputs a spindle speed signal to the spindle amplifier 17. The spindle amplifier 17 receives the spindle speed signal and rotates the spindle motor SM at the commanded rotational speed. The position coder 22 feeds back a feedback pulse to the spindle control circuit 16 in synchronization with the rotation of the spindle motor SM or the spindle, and the spindle control circuit 16 performs speed control based on the spindle rotation command from the CPU 11 and this feedback signal. .

上述した、数値制御装置10の構成は、従来の数値制御装置の構成と同じであるが、メモリ12に格納された先読み処理、及び本実行処理を行うソフトウェアが従来と異なる点において相違し、本発明はこの点に特徴を有するものである。   The configuration of the numerical control device 10 described above is the same as the configuration of the conventional numerical control device, but the pre-reading process stored in the memory 12 and the software for executing this execution process are different from the conventional ones. The invention is characterized by this point.

図2は、本発明の実施形態における第1の態様の先読み停止、再開処理のアルゴリズムを示すフローチャートである。又、図3は、この第1の態様における本実行処理のアルゴリズムを示すフローチャートである。
この第1の形態では、先読みを停止させるコードが設けられると共に、先読み再開を許容するブロック数を指定するか、先読み再開許容コードを設けて、先読み停止と再開を制御するものである。
FIG. 2 is a flowchart showing an algorithm of prefetch stop / restart processing according to the first aspect of the embodiment of the present invention. FIG. 3 is a flowchart showing the algorithm of the execution process in the first mode.
In this first mode, a code for stopping prefetching is provided, and the number of blocks that allow prefetching to be resumed is specified, or a prefetching resumption permission code is provided to control the prefetching stop and resume.

先読みを停止させるコードと、先読み再開を許容するブロック数をパラメータで設定することにより、先読み停止、再開処理を行う場合のNCプログラムの例を次に示す。   An example of an NC program in the case where prefetch stop / restart processing is performed by setting a code for stopping prefetch and the number of blocks that allow prefetch restart by parameters is shown below.

先読みを停止させるコードを「M33」とし、先読みするブロック数(先読みバッファに格納される最大ブロック数)は「30」とし、先読み再開許容ブロック数を「5」に設定されているときのプログラム例である。以下このプログラム例をプログラム例1という。
プログラム例1
O0001;
N01 G90 G00 X0. Y0. ;
N02 G41 D10 G01 X100 Y100 F500.;
N03 X100. Y200. ;
N04 X200. Y200. ;
N05 X200. Y100. ;
N06 X100. Y100. ;
N07 G40 X0 Y0 ;
N08 G01 X-100 Y100.;
N09 X-100. Y200. ;
N10 X-200. Y200. ;
N11 X-200. Y100. ;
N12 X-100. Y100. ;
N13 X0 Y0 M33 ;
N14 #13010 = #100 + 0.5(CHANGE VALUE=D10) ;
N15 G41 D10 G01 X-100 Y-100 F500.;
N16 X-100. Y-200. ;
N17 X-200. Y-200. ;
N18 X-200. Y-100. ;
N19 X-100. Y-100. ;
N20 G40 X0 Y0 ;
M30;
このプログラム例において、「O0001」はプログラム番号、N01〜N20はシーケンス番号、「G90」はアブソリュート指令を示す準備機能のコード、「G00」は位置決め指令を示す準備機能のコード、「G41」は工具径補正の準備機能コードで、「D10」の「D」は補正量を指定するコードで、「D10」はオフセット番号10の値を使用することを指令するコードである。又、「G01」は直線補間を指令する準備機能コード、「X□□」及び「Y□□」は、X軸、Y軸指令位置、「F□□」は速度指令、「G40」は工具径補正キャンセルを指令する準備機能コード、「#13010」は、オフセット番号10の値を変更するカスタムマクロ変数であり、シーケンス番号N14の指令は、カスタムマクロ変数#100の値に0.5を加算し、この値を工具径補正量とする指令である。なお、シーケンス番号N14のカッコ書きの部分はコメントである。又、「M30」はプログラムエンドを示すコードである。
Program example when the code for stopping the prefetching is “M33”, the number of blocks to be prefetched (the maximum number of blocks stored in the prefetch buffer) is “30”, and the prefetch resumable block number is set to “5” It is. Hereinafter, this program example is referred to as program example 1.
Program example 1
O0001;
N01 G90 G00 X0. Y0.;
N02 G41 D10 G01 X100 Y100 F500 .;
N03 X100. Y200.;
N04 X200. Y200.;
N05 X200. Y100.;
N06 X100. Y100.;
N07 G40 X0 Y0;
N08 G01 X-100 Y100 .;
N09 X-100. Y200.;
N10 X-200. Y200.;
N11 X-200. Y100.;
N12 X-100. Y100.;
N13 X0 Y0 M33;
N14 # 13010 = # 100 + 0.5 (CHANGE VALUE = D10);
N15 G41 D10 G01 X-100 Y-100 F500 .;
N16 X-100. Y-200.;
N17 X-200. Y-200.;
N18 X-200. Y-100.;
N19 X-100. Y-100.;
N20 G40 X0 Y0;
M30;
In this program example, “O0001” is a program number, N01 to N20 are sequence numbers, “G90” is a preparation function code indicating an absolute command, “G00” is a preparation function code indicating a positioning command, and “G41” is a tool. In the diameter correction preparation function code, “D” in “D10” is a code for specifying a correction amount, and “D10” is a code for instructing to use the value of the offset number 10. “G01” is a preparation function code for commanding linear interpolation, “X □□” and “Y □□” are X-axis and Y-axis command positions, “F □□” is a speed command, and “G40” is a tool. The preparation function code “# 13010” for instructing to cancel the radius correction is a custom macro variable for changing the value of the offset number 10, and the command for the sequence number N14 adds 0.5 to the value of the custom macro variable # 100. This command is used as a tool radius correction amount. Note that the bracketed part of the sequence number N14 is a comment. “M30” is a code indicating a program end.

このプログラム例では、シーケンス番号「N02」で、オフセット番号10番の値で工具径補正をすることを指令し、シーケンス番号「N07」でこの工具径補正をキャンセルし、シーケンス番号「N13」で、M33のコードにより先読みを停止させ、シーケンス番号「N14」でカスタムマクロ変数によりオフセット番号10番の値を変更し、シーケンス番号「N15」で、この変更されたオフセット番号10番の値で工具径補正をすることを指令し、シーケンス番号「N20」でこの工具径補正をキャンセルするように指令したプログラムである。   In this program example, it is instructed to correct the tool radius with the value of the offset number 10 with the sequence number “N02”, cancel this tool radius correction with the sequence number “N07”, and with the sequence number “N13”, Prefetching is stopped by the code of M33, the value of offset number 10 is changed by the custom macro variable with sequence number “N14”, and the tool radius is corrected by the changed value of offset number 10 with sequence number “N15”. This is a program instructed to cancel the tool radius correction with the sequence number “N20”.

又、次に示すプログラム例(以下この例をプログラム例2という)は、先読み再開許容ブロック数をパラメータ設定ではなく、プログラムで指令するときの例であり、シーケンス番号「N13」のコード「M33」に続くPコードで先読み再開許容ブロック数を指定するもので、この例では「5」が指定されている。他の指令は、プログラム例1と同じであり、先読みするブロック数(先読みバッファに格納される最大ブロック数)も30としておりプログラム例1と同じである。
プログラム例2
O0001;
N01 G90 G00 X0. Y0. ;
N02 G41 D10 G01 X100 Y100 F500.;
N03 X100. Y200. ;
N04 X200. Y200. ;
N05 X200. Y100. ;
N06 X100. Y100. ;
N07 G40 X0 Y0 ;
N08 G01 X-100 Y100.;
N09 X-100. Y200. ;
N10 X-200. Y200. ;
N11 X-200. Y100. ;
N12 X-100. Y100. ;
N13 X0 Y0 M33 P5 ;
N14 #13010 = #100 + 0.5(CHANGE VALUE=D10) ;
N15 G41 D10 G01 X-100 Y-100 F500.;
N16 X-100. Y-200. ;
N17 X-200. Y-200. ;
N18 X-200. Y-100. ;
N19 X-100. Y-100. ;
N20 G40 X0 Y0 ;
M30;
The following program example (hereinafter, this example is referred to as program example 2) is an example in which the prefetch resumable block number is instructed by a program instead of parameter setting, and the code “M33” of the sequence number “N13”. The pre-read resumable block number is designated by the P code following “5”. In this example, “5” is designated. Other commands are the same as in Program Example 1, and the number of blocks to be prefetched (the maximum number of blocks stored in the prefetch buffer) is also set to 30, which is the same as in Program Example 1.
Program example 2
O0001;
N01 G90 G00 X0. Y0.;
N02 G41 D10 G01 X100 Y100 F500 .;
N03 X100. Y200.;
N04 X200. Y200.;
N05 X200. Y100.;
N06 X100. Y100.;
N07 G40 X0 Y0;
N08 G01 X-100 Y100 .;
N09 X-100. Y200.;
N10 X-200. Y200.;
N11 X-200. Y100.;
N12 X-100. Y100.;
N13 X0 Y0 M33 P5;
N14 # 13010 = # 100 + 0.5 (CHANGE VALUE = D10);
N15 G41 D10 G01 X-100 Y-100 F500 .;
N16 X-100. Y-200.;
N17 X-200. Y-200.;
N18 X-200. Y-100.;
N19 X-100. Y-100.;
N20 G40 X0 Y0;
M30;

次に示すプログラム例3は、先読み再開を指令するコード「M32」を設けて、先読み再開を制御するときのプログラム例である。この例では、シーケンス番号「N08」に先読み再開を指令するコード「M32」が付加されている点で、プログラム例1と相違するのみである。
プログラム例3
O0001;
N01 G90 G00 X0. Y0. ;
N02 G41 D10 G01 X100 Y100 F500.;
N03 X100. Y200. ;
N04 X200. Y200. ;
N05 X200. Y100. ;
N06 X100. Y100. ;
N07 G40 X0 Y0 ;
N08 G01 X-100 Y100.M32;
N09 X-100. Y200. ;
N10 X-200. Y200. ;
N11 X-200. Y100. ;
N12 X-100. Y100. ;
N13 X0 Y0 M33 ;
N14 #13010 = #100 + 0.5(CHANGE VALUE=D10) ;
N15 G41 D10 G01 X-100 Y-100 F500.;
N16 X-100. Y-200. ;
N17 X-200. Y-200. ;
N18 X-200. Y-100. ;
N19 X-100. Y-100. ;
N20 G40 X0 Y0 ;
M30;
上述したプログラム例1〜3のいずれかを数値制御装置10のメモリ12に格納し、実行させたとき、CPU11は、先読み処理として図2に示す処理を所定周期毎実行する。 まず、先読み停止フラグFgが「1」にセットされているか判断する(ステップ100)。先読み停止フラグFgが「1」にセットされていれば、当該周期の処理を終了する。最初は初期設定でこの先読み停止フラグFgは「0」にセットされており、ステップ100から、ステップ101に移行して、先読みバッファにブロックの指令を解析した解析結果(実行データ)が指定された数まで格納され満杯か判断する(ステップ101)。この実施形態では、先読みバッファに30ブロック分の解析結果を記憶するものとなっており、30ブロックの解析結果が記憶されているか判断することになる。
The following program example 3 is a program example when a code “M32” for instructing resumption of prefetching is provided to control resumption of prefetching. This example is different from Program Example 1 only in that a code “M32” instructing resumption of prefetching is added to the sequence number “N08”.
Program example 3
O0001;
N01 G90 G00 X0. Y0.;
N02 G41 D10 G01 X100 Y100 F500 .;
N03 X100. Y200.;
N04 X200. Y200.;
N05 X200. Y100.;
N06 X100. Y100.;
N07 G40 X0 Y0;
N08 G01 X-100 Y100.M32;
N09 X-100. Y200.;
N10 X-200. Y200.;
N11 X-200. Y100.;
N12 X-100. Y100.;
N13 X0 Y0 M33;
N14 # 13010 = # 100 + 0.5 (CHANGE VALUE = D10);
N15 G41 D10 G01 X-100 Y-100 F500 .;
N16 X-100. Y-200.;
N17 X-200. Y-200.;
N18 X-200. Y-100.;
N19 X-100. Y-100.;
N20 G40 X0 Y0;
M30;
When any one of the above-described program examples 1 to 3 is stored in the memory 12 of the numerical control apparatus 10 and executed, the CPU 11 executes the processing shown in FIG. First, it is determined whether the prefetch stop flag Fg is set to “1” (step 100). If the prefetch stop flag Fg is set to “1”, the processing of the cycle is terminated. Initially, the prefetch stop flag Fg is initially set to “0”, and the process proceeds from step 100 to step 101 where the analysis result (execution data) obtained by analyzing the block command is designated in the prefetch buffer. It is determined whether the number is stored and full (step 101). In this embodiment, the analysis results for 30 blocks are stored in the prefetch buffer, and it is determined whether the analysis results for 30 blocks are stored.

30ブロックまで格納されていないときは、NCプログラムより1ブロック読み出し、該ブロックで指令されている指令を解析し、その解析結果(実行データ)を先読みバッファに格納する(ステップ102)。又、このブロックの指令がプログラムエンド(M30)か判断し(ステップ103)、プログラムエンドであれば、このプログラム処理を終了する。プログラムエンドでなければ、該ブロックで指令された中に先読み停止コード(M33)が含まれているか判断する(ステップ104)。先読み停止コードが含まれていなければ、当該周期の処理は終了する。以下、先読みバッファに格納できるブロック数(=30)の解析結果が格納されるまでステップ100〜104の処理を繰り返し実行する。 なお、後述するように、この先読みバッファに格納される解析結果(実行データ)は、本実行処理によって、先入れ先出し(FIFO)方式で1ブロック毎取り出される。すなわち、該先読みバッファに先に保存したブロックの解析結果(実行データ)が先に取り出され、該先読みバッファから取り出された解析結果(実行データ)は削除される。その結果、該先読みバッファに記憶する実行データ数は減少するが、この減少を上述したステップ100〜104の処理によって、先読みバッファに格納できるブロック数に達するまで、その解析結果(実行データ)が先読みバッファに格納されることになる。   When 30 blocks are not stored, one block is read from the NC program, the command commanded in the block is analyzed, and the analysis result (execution data) is stored in the prefetch buffer (step 102). Also, it is determined whether the command of this block is a program end (M30) (step 103). If it is not the program end, it is determined whether the prefetch stop code (M33) is included in the command in the block (step 104). If the prefetch stop code is not included, the processing of the cycle ends. Thereafter, the processing of steps 100 to 104 is repeatedly executed until the analysis results for the number of blocks (= 30) that can be stored in the prefetch buffer are stored. As will be described later, the analysis result (execution data) stored in the prefetch buffer is fetched block by block by the first-in first-out (FIFO) method by this execution process. That is, the analysis result (execution data) of the block previously stored in the prefetch buffer is fetched first, and the analysis result (execution data) fetched from the prefetch buffer is deleted. As a result, the number of execution data stored in the prefetch buffer decreases, but the analysis result (execution data) is prefetched until the decrease reaches the number of blocks that can be stored in the prefetch buffer by the processing in steps 100 to 104 described above. It will be stored in the buffer.

一方、ステップ104で、読み出したブロックに先読み停止コード(M33)が含まれていることが判別されると、該先読み停止コードと共に先読み再開許容ブロック数を指定するコード(Pコード)が含まれているか判別し(ステップ105)、含まれていれば、該先読み再開許容ブロック数を指定するコード(Pコード)で指令されたブロック数を許容ブロック数の内部変数にセットし(ステップ109)、先読み停止フラグFgを「1」にセットする(ステップ108)。一方、再開許容ブロック数を指定するコード(Pコード)が含まれてなければ、ステップ105からステップ106に移行し、再開許容ブロック数がパラメータに設定されているか判断する。パラメータで設定されていれば、この設定されたブロック数を許容ブロック数の内部変数にセットし(ステップ107)、先読み停止フラグFgを「1」にセットする(ステップ108)。
又、読み出したブロック中に再開許容ブロック数を指定するコード(Pコード)もなく、かつ、パラメータで先読み再開許容ブロック数が設定されてないときには、先読み停止フラグFgを「1」にセットして(ステップ108)、当該周期の処理を終了する。
On the other hand, if it is determined in step 104 that the read block includes the prefetch stop code (M33), a code (P code) that specifies the number of prefetch resumption allowable blocks is included together with the prefetch stop code. If it is included, the number of blocks instructed by the code (P code) for designating the number of prefetching resumption allowance blocks is set in the internal variable of the number of permissible blocks (step 109). The stop flag Fg is set to “1” (step 108). On the other hand, if a code (P code) for specifying the number of resumable blocks is not included, the process proceeds from step 105 to step 106, and it is determined whether the resumable number of blocks is set as a parameter. If the parameter is set, the set number of blocks is set as an internal variable of the allowable number of blocks (step 107), and the prefetch stop flag Fg is set to “1” (step 108).
If there is no code (P code) for specifying the number of resumable blocks to be resumed in the read block, and the number of prefetching resumable blocks is not set in the parameters, the prefetch stop flag Fg is set to “1”. (Step 108), the processing of the cycle is terminated.

次の周期からは、先読み停止フラグFgが「1」にセットされていることから、NCプログラムの先読み処理は実行されず、ステップ100で該フラグFgが「1」となっていることを確認して当該処理の周期を終了する。その結果、先読み処理は停止することになる。   From the next cycle, since the prefetch stop flag Fg is set to “1”, the prefetch process of the NC program is not executed, and it is confirmed in step 100 that the flag Fg is “1”. To complete the processing cycle. As a result, the prefetch process is stopped.

プログラム例1の場合は、再開許容ブロック数がパラメータで設定されている例であることから、シーケンス番号「N13」まで、先読みされ解析結果(実行データ)が先読みバッファに保存された時点で、M33の読み出したブロックに先読み停止コードが読み込まれることになり、かつ、パラメータで先読み再開許容ブロック数(5)が設定されているものであることから、ステップ104、105、106、107、108の処理が実行されることになる。   In the case of Program Example 1, since the number of allowable restart blocks is an example of a parameter, M33 is read when the analysis result (execution data) is prefetched up to the sequence number “N13” and saved in the prefetch buffer. Since the prefetch stop code is read into the read block and the prefetch resumable block number (5) is set in the parameter, the processing of steps 104, 105, 106, 107, 108 is performed. Will be executed.

又、プログラム例2の場合は、シーケンス番号「N13」のブロックで先読み停止コードM33と共に「P5」としての先読み再開許容ブロック数を指定するコードが読み出されるので、ステップ104、105、109、108の処理が実行されることになる。
プログラム例3では、先読み再開許容ブロック数は、パラメータによる設定でもなく、又、プログラム指令でもないことから(このプログラム例3では、後述するようにシーケンス番号N08のブロックでM32のコードで先読み再開が指令される)、ステップ104、105、106、108の処理が実行されることになる。
In the case of the program example 2, since the code for designating the prefetch resumption allowable block number as “P5” is read together with the prefetch stop code M33 in the block of the sequence number “N13”, the steps 104, 105, 109, and 108 are performed. Processing will be executed.
In Program Example 3, the prefetch resumable block number is neither set by a parameter nor a program command (in Program Example 3, prefetch restart is resumed with a code of M32 in a block of sequence number N08 as described later. Commanded), the processing of steps 104, 105, 106, and 108 is executed.

このようにして、先読み停止フラグFgが「1」にセットされて、先読みが停止させられることから、プログラム例1〜3の場合、シーケンス番号N13のブロックの解析結果(実行データ)を先読みバッファに格納した後、先読み処理が停止されることになる。そして、後述する処理によって先読み停止フラグFgが「0」にセットされることによって、ステップ101以下の処理が開始され、再び先読み処理が開始されることになる。   In this way, since the prefetch stop flag Fg is set to “1” and the prefetch is stopped, in the case of the program examples 1 to 3, the analysis result (execution data) of the block with the sequence number N13 is stored in the prefetch buffer. After the storage, the prefetch process is stopped. Then, when the prefetch stop flag Fg is set to “0” by the process described later, the processes after step 101 are started, and the prefetch process is started again.

図3は、この第1の形態において、数値制御装置10のCPU11が所定周期(分配周期)毎に実行する本実行処理である。
まず、先読みバッファより1ブロックの解析結果(実行データ)を読み出し、該解析結果(実行データ)で指令された処理を従来と同様に行う(ステップ200)。次に先読み停止フラグFgが「1」にセットされているか判断し(ステップ201)、セットされていなければ、当該周期の処理は終了する。一方、停止フラグFgが「1」にセットされていれば、許容ブロック数の内部変数はセットされているか判別し(ステップ202)、セットされていれば、このセットされている数と、先読みバッファにこの時点で記憶する解析結果のブロック数が一致するか判別する(ステップ206)。一致しなければ、当該周期の処理は終了する。又、一致していると、先読み停止フラグFgを「0」にセットして、先読みを開始させる(ステップ205)。
FIG. 3 shows a main execution process executed by the CPU 11 of the numerical control apparatus 10 every predetermined cycle (distribution cycle) in the first embodiment.
First, the analysis result (execution data) of one block is read from the prefetch buffer, and the process instructed by the analysis result (execution data) is performed in the same manner as in the prior art (step 200). Next, it is determined whether or not the prefetch stop flag Fg is set to “1” (step 201), and if not set, the processing in the cycle ends. On the other hand, if the stop flag Fg is set to “1”, it is determined whether the internal variable of the allowable block number is set (step 202). If it is set, the set number and the prefetch buffer are determined. It is determined whether the number of analysis result blocks stored at this time matches (step 206). If they do not match, the processing for the cycle ends. If they match, the prefetch stop flag Fg is set to “0” and prefetching is started (step 205).

プログラム例1ではパラメータにより、プログラム例2ではプログラムのPコード指令で、先読み再開許容ブロック数が「5」と指定され、許容ブロック数の内部変数にセットされていることから、ステップ206で、先読みバッファに記憶する解析結果のブロック数がこの先読み再開許容ブロック数5と一致するか判断することになる。図2に示した先読み処理で、シーケンス番号「N13」で先読み停止コードM33が読み込まれ、ステップ104〜108の処理を行って、先読み停止フラグFgが「1」にセットされ、シーケンス番号「N13」までの先読み処理が終了した時点で、先読み処理が停止していることから、シーケンス番号「N13」より5つ前のシーケンス番号「N08」の解析結果が読み出されたとき、図3のステップ206では、先読みバッファに記憶する解析結果のブロック数が「5」となり、先読み再開許容ブロック数と一致し、先読み停止フラグFgが「0」にセットされることになる。その結果、シーケンス番号「N08」の本実行処理が実行されると、先読み処理周期では、ステップ100からステップ101に移行し、ステップ101以下の先読み処理が実行されることになる。   In the example program 1, the prefetch restart allowable block number is specified as “5” by the program P code command in the program example 2 and is set in the internal variable of the allowable block number. It is determined whether or not the number of blocks of the analysis result stored in the buffer matches the number of prefetching restart allowance blocks of 5. In the prefetch process shown in FIG. 2, the prefetch stop code M33 is read with the sequence number “N13”, the processes of steps 104 to 108 are performed, the prefetch stop flag Fg is set to “1”, and the sequence number “N13”. Since the prefetching process is stopped when the prefetching process up to is completed, when the analysis result of the sequence number “N08” five times before the sequence number “N13” is read, step 206 in FIG. In this case, the number of blocks of the analysis result stored in the prefetch buffer is “5”, which matches the prefetch resumption allowable block count, and the prefetch stop flag Fg is set to “0”. As a result, when the execution process with the sequence number “N08” is executed, in the prefetch process cycle, the process proceeds from step 100 to step 101, and the prefetch processes after step 101 are executed.

一方、ステップ202で、許容ブロック数の内部変数がセットされていないと判断されたときには、当該ブロックの解析結果より先読み停止コードM33を含むものか判断し(ステップ203)、先読み停止コードM33を含むものであれば、ステップ205に移行し、先読み停止フラグFgが「0」にセットする。また、先読み停止コードM33を含むものでなければ、先読み再開コードM32を含むものか判断する(ステップ204)。先読み再開コードM32を含むものでなければ、当該周期の処理を終了する。又、含むものであれば、先読み停止フラグFgを「0」にセットする(ステップ205)。   On the other hand, when it is determined in step 202 that the internal variable of the allowable block number is not set, it is determined from the analysis result of the block whether the prefetch stop code M33 is included (step 203), and the prefetch stop code M33 is included. If yes, the process proceeds to step 205, where the prefetch stop flag Fg is set to "0". If it does not include the prefetch stop code M33, it is determined whether it includes the prefetch restart code M32 (step 204). If the prefetch restart code M32 is not included, the processing of the cycle ends. If included, the prefetch stop flag Fg is set to “0” (step 205).

すなわち、プログラム例3の場合は、先読み処理でシーケンス番号N13が読み出されたときに、先読み停止フラグFgが「1」にセットされ、先読みが停止している状態で、本実行処理において、シーケンス番号N08のブロックの指令を本実行したとき、該シーケンス番号N08のブロックに先読み再開コードM32が含まれていることがステップ204で判別されるから、先読み停止フラグFgが「0」にセットされることから、このシーケンス番号N08のブロックの指令を本実行した時点で先読み処理が再開されることになる。   That is, in the case of the program example 3, when the sequence number N13 is read in the prefetching process, the prefetching stop flag Fg is set to “1” and the prefetching is stopped. When the command for the block with the number N08 is actually executed, it is determined in step 204 that the block with the sequence number N08 contains the prefetching restart code M32, so the prefetching stop flag Fg is set to “0”. Therefore, the prefetching process is resumed when the command for the block having the sequence number N08 is actually executed.

なお、ステップ203で先読み停止コードM33を含むブロックと判別され、ステップ205で先読み停止フラグFgを「0」にセットする処理は、先読み再開許容ブロック数が、パラメータでも、プログラム指令でも指定されておらず、かつ、先読み再開コードM32も指令されていないときに、先読み停止コードM33を含むブロックが先読み処理で読み込まれて先読み停止フラグFgを「1」にセットして、先読みを停止している状態において、このブロックの本実行を実行したとき先読み停止フラグFgを「0」にセットして先読みを再開させるものである。   In step 203, it is determined that the block includes the prefetch stop code M33, and the prefetch stop flag Fg is set to “0” in step 205. The number of prefetch resumable blocks is not specified by a parameter or a program command. In addition, when the prefetching restart code M32 is not instructed, the block including the prefetching stop code M33 is read by the prefetching process, the prefetching stop flag Fg is set to “1”, and the prefetching is stopped. When the main execution of this block is executed, the prefetching stop flag Fg is set to “0” to resume the prefetching.

上述した第1の態様では、パラメータ又はプログラムで指令する先読み再開許容ブロック数を変えることよって、又は、先読み再開コードM32をプログラムする箇所によって、先読み停止から先読み再開を速く行うことも、遅れて行うこともできるものである。しかも、先読みを停止するコードが挿入されたブロックの実行が終了する前に先読み処理が開始されるものであるから、速度が0となることはなく加工時間も短縮できるものである。又、再開許容ブロック数を指定せず、先読み再開コードM32もプログラムしない場合では、先読みバッファに残るブロックが0となるまで遅らせる(最大限の遅れ)こともできるものである。ただしこの場合は、先読み停止したブロックと次のブロック間で速度0の状態が発生する。   In the first aspect described above, the prefetching restart from the prefetching stop is quickly performed by changing the number of prefetching resumption allowable blocks specified by a parameter or a program, or depending on the location where the prefetching resume code M32 is programmed. It is also possible. Moreover, since the prefetching process is started before the execution of the block in which the code for stopping the prefetching is inserted, the speed does not become zero and the processing time can be shortened. In the case where the number of allowable restart blocks is not specified and the prefetch restart code M32 is not programmed, the block remaining in the prefetch buffer can be delayed until it reaches 0 (maximum delay). In this case, however, a state of zero speed occurs between the block in which prefetching is stopped and the next block.

図4は本発明の第2の形態における先読み処理のアルゴリズムを示すフローチャートである。前述した第1の形態では、先読み処理を停止させるコード(M33)と、先読み再開ブロック数をプログラム指令(Pコード)か、パラメータで設定するか、さらには、コード(M32)によって先読み処理を再開させる時点を指定したが、この第2の形態では、ブロックでのカスタムマクロ変数の変更指令によって、先読み処理を停止させ、又、該指令コードの内容と先読みバッファに残るブロックの指令のコードに基づいて先読み処理の再開を自動的に行うようにしたものである。   FIG. 4 is a flowchart showing an algorithm for prefetching processing according to the second embodiment of the present invention. In the first embodiment described above, the code (M33) for stopping the prefetching process, the number of prefetching restart blocks is set by a program command (P code) or a parameter, and the prefetching process is resumed by the code (M32). In this second form, the prefetching process is stopped by a custom macro variable change command in the block, and based on the content of the command code and the code of the block command remaining in the prefetch buffer. The prefetching process is automatically resumed.

又、この第2の形態で使用するNCプログラムの例を次にプログラム例4として示す。この第2の形態をこのプログラム例4を参照しながら、図4の処理フローチャートと共に説明する。   An example of the NC program used in the second form is shown as program example 4 below. The second embodiment will be described with reference to the program example 4 together with the processing flowchart of FIG.

プログラム例4
O0001;
N01 G90 G00 X0. Y0. ;
N02 G41 D10 G01 X100 Y100 F500.;
N03 X100. Y200. ;
N04 X200. Y200. ;
N05 X200. Y100. ;
N06 X100. Y100. ;
N07 G40 X0 Y0 ;
N08 G01 X-100 Y100.M32;
N09 X-100. Y200. ;
N10 X-200. Y200. ;
N11 X-200. Y100. ;
N12 X-100. Y100. ;
N13 X0 Y0 ;
N14 #13010 = #100 + 0.5(CHANGE VALUE=D10) ;
N15 G41 D10 G01 X-100 Y-100 F500.;
N16 X-100. Y-200. ;
N17 X-200. Y-200. ;
N18 X-200. Y-100. ;
N19 X-100. Y-100. ;
N20 G40 X0 Y0 ;
M30;
このプログラム例4では、シーケンス番号N02に指令されているG41コードで工具径補正機能が有効になり、その補正量がDコードで指定された量となる。そして、シーケンス番号N07の工具径補正キャンセルの指令(G40)が実行されるまでは工具径補正モードである。
一方、先読み処理の場合、先読みバッファに先読み最大ブロック数(この実施形態では30と設定されている)まで、事前にNCプログラムから先読みされブロックの指令の解析結果が保存されることから、シーケンス番号N14のブロックで指令されたカスタムマクロ変数による計算によりDコードで指令されたオフセット番号10番の値の変更が、先読み処理の解析で事前に行われることから、シーケンス番号N02のブロックの解析結果(実行データ)を先読みバッファから読み出し、本実行される前にD10コード指令された値が変更されてしまうので、シーケンス番号N02〜N07までの動作(加工)が誤った動作(加工)になってしまうという問題がある。
Program example 4
O0001;
N01 G90 G00 X0. Y0.;
N02 G41 D10 G01 X100 Y100 F500 .;
N03 X100. Y200.;
N04 X200. Y200.;
N05 X200. Y100.;
N06 X100. Y100.;
N07 G40 X0 Y0;
N08 G01 X-100 Y100.M32;
N09 X-100. Y200.;
N10 X-200. Y200.;
N11 X-200. Y100.;
N12 X-100. Y100.;
N13 X0 Y0;
N14 # 13010 = # 100 + 0.5 (CHANGE VALUE = D10);
N15 G41 D10 G01 X-100 Y-100 F500 .;
N16 X-100. Y-200.;
N17 X-200. Y-200.;
N18 X-200. Y-100.;
N19 X-100. Y-100.;
N20 G40 X0 Y0;
M30;
In this program example 4, the tool radius correction function is enabled by the G41 code commanded to the sequence number N02, and the correction amount is the amount specified by the D code. The tool radius correction mode is continued until the command (G40) for canceling the tool radius correction of sequence number N07 is executed.
On the other hand, in the case of the prefetching process, the analysis result of the block command is prefetched from the NC program and stored in advance in the prefetching buffer up to the maximum number of prefetching blocks (set to 30 in this embodiment). Since the change of the value of the offset number 10 instructed by the D code by the calculation by the custom macro variable instructed in the block N14 is made in advance in the analysis of the prefetch process, the analysis result of the block of the sequence number N02 ( (Execution data) is read from the prefetch buffer, and the value designated by the D10 code is changed before the actual execution, so that the operations (processing) from sequence numbers N02 to N07 become incorrect operations (processing). There is a problem.

このような問題を解決するために、この第2の形態では、シーケンス番号N14のブロックで指令されたカスタムマクロ変数で補正値等の変数が変更されるような指令のブロックを先読みしたとき、先読みバッファにすでに保存されたブロック中の、このカスタムマクロ変数の処理によって影響を受けるもの又は影響を与えるコードを含むブロックの指令があるような場合、そのブロックの指令の解析処理は行わず、すなわち、カスタムマクロ変数の処理は行わず、このブロックの指令の手前で先読み処理を停止して、上述したような不具合をなくすようにしたものである。   In order to solve such a problem, in the second embodiment, when a command block in which a variable such as a correction value is changed by a custom macro variable commanded in the block of sequence number N14 is prefetched, If there is a block directive in the block already stored in the buffer that contains a code that is affected by or affected by this custom macro variable processing, that block's directive analysis is not performed, i.e. The custom macro variable processing is not performed, and the prefetching processing is stopped before the command of this block so as to eliminate the above-described problems.

数値制御装置10のCPU11は所定周期毎、図4に示す先読み処理を実行し、まず、先読み停止フラグFgが「1」にセットされているか判断する(ステップ300)。最初は、初期設定で「0」にセットされていることから、ステップ301に移行し、先読みバッファに先読み最大ブロック数(この実施形態では30と設定されている)まで保存されているか(先読みバッファは満杯か)判別し、最大ブロック数30に達しているときには、この先読み処理周期の処理を終了する。又、最大ブロック数30に達していないときには、NCプログラムより1ブロックの指令を読み出して解析する(ステップ302)。そして、このブロックの指令がプログラムエンドを示す指令であれば、このプログラム処理を終了する(ステップ303)。プログラムエンドでなければ、先読みバッファに保存されているブロックを検索し、当該ブロックの処理が、先読みバッファに保存されているブロックの指令の処理に影響を与えるか又はこの先読みバッファに保存されているブロックの指令の処理によって、当該ブロックの処理が影響を受けるか判断する(ステップ304)。先読みバッファに保存されたブロックの解析結果に当該ブロックの処理に影響を受ける、又は影響を与えるコードがあれば、当該ブロックの解析と先読みバッファへの保存の先読み処理を停止し、先読み停止フラグFgを「1」にセットしこの先読み処理周期の処理を終了する。   The CPU 11 of the numerical controller 10 executes the prefetching process shown in FIG. 4 at predetermined intervals, and first determines whether the prefetching stop flag Fg is set to “1” (step 300). Initially, since it is set to “0” in the initial setting, the process proceeds to step 301, and whether or not up to the maximum number of prefetch blocks (set to 30 in this embodiment) is stored in the prefetch buffer (prefetch buffer) If the maximum number of blocks has been reached, the processing of this prefetch processing cycle is terminated. If the maximum number of blocks 30 has not been reached, a command for one block is read from the NC program and analyzed (step 302). If this block command is a command indicating a program end, the program processing is terminated (step 303). If it is not the program end, the block stored in the prefetch buffer is searched, and the processing of the block affects the processing of the command of the block stored in the prefetch buffer or is stored in the prefetch buffer. It is determined whether the processing of the block is affected by the processing of the block command (step 304). If there is a code that affects or affects the processing of the block in the analysis result of the block stored in the prefetch buffer, the prefetch processing for the analysis of the block and storage in the prefetch buffer is stopped, and the prefetch stop flag Fg Is set to “1”, and the processing of this prefetch processing cycle is completed.

又、先読みバッファに保存されたブロックの指令の処理に影響を与える又は影響を受けるコードが含まれていなければ、ステップ302で読み込んだブロックの解析を続行し、解析を終了して得られたブロックの解析結果(実行データ)を先読みバッファに保存して当該周期の処理を終了する(ステップ305)。   If the code that affects or affects the processing of the block command stored in the prefetch buffer is not included, the analysis of the block read in step 302 is continued, and the block obtained by finishing the analysis. The analysis result (execution data) is stored in the prefetch buffer, and the processing of the cycle is finished (step 305).

一方、先読み停止フラグFgが「1」にセットされていると判断されたときには(ステップ300)、先読みバッファに保存されているブロックを検索し、ステップ308でブロックの指令の解析とその解析結果を先読みバッファへの保存する処理を停止したその要因となるコードを有するブロックが先読みバッファに保存されているブロック中に存在するか判断する(ステップ306)。存在しなければ、先読み停止フラグFgが「0」にセットして(ステップ307)、ステップ301に移行する。又、解析と先読みバッファへの保存処理を停止した要因のコードを有するブロックが存在すれば、先読み停止フラグFgを「1」にセットしたまま当該周期の処理を終了し、ブロックの先読み処理を停止した状態を保持する。   On the other hand, when it is determined that the prefetch stop flag Fg is set to “1” (step 300), the block stored in the prefetch buffer is searched, and in step 308, the block command analysis and the analysis result are obtained. It is determined whether there is a block having a code that causes the stop of the process of storing in the prefetch buffer in the block stored in the prefetch buffer (step 306). If it does not exist, the prefetch stop flag Fg is set to “0” (step 307), and the routine proceeds to step 301. Also, if there is a block having a code that causes the analysis and prefetch buffer storage processing to stop, the prefetch stop flag Fg is set to “1”, the processing of the cycle ends, and the block prefetch processing stops. Hold the state.

プログラム例4で説明すると、シーケンス番号N14のブロックの先読み処理を実行すると、前述したようにカスタムマクロ変数の計算を先読み処理のブロックの解析で、工具径補正値を変更することになるから、シーケンス番号N02で使用するD10コードの値が、このシーケンス番号N02のブロックの指令を本実行する前に、変更されることになり誤動作、誤加工となるが、この第2の実施形態では、このような先読みされたブロックの指令の処理に影響を与える指令を先読み処理で解析したとき、先読み停止フラグFgを「1」にセットしその先読み処理を停止し(ステップ308)、その後、既に先読みバッファに保存されているブロックを1ブロックずつ本実行していき、その1ブロックずつ本実行した後で、現在先読みバッファに残っているブロック中に、シーケンス番号N14で先読み停止の要因となったDコードの内容を使用する処理がなくなったかを検索する(ステップ306)。このプログラム例4ではシーケンス番号N07のブロックの本実行が終了した時点では、先読みバッファに残るシーケンス番号N08〜N13までの先読みされたブロック中には、Dコードを使用するプログラムがないことを検出できるので、シーケンス番号N07のブロックの本実行の終了したことをもって、シーケンス番号N14から先読みを自動的に再開することになる。   As described in Program Example 4, when the pre-reading process of the block with the sequence number N14 is executed, the tool radius compensation value is changed by the analysis of the pre-reading process block for the calculation of the custom macro variable as described above. The value of the D10 code used in the number N02 is changed before the actual execution of the block command of the sequence number N02, resulting in malfunction and erroneous processing. In the second embodiment, this is the case. When a command that affects the processing of a prefetched block command is analyzed in the prefetch processing, the prefetch stop flag Fg is set to “1” and the prefetch processing is stopped (step 308). The stored block is executed one block at a time, and after executing this block one by one, the current read-ahead backup is executed. In the block remaining in §, the process of using the contents of D code that caused the prefetch stopping the sequence number N14 To find out disappeared (step 306). In this program example 4, when the execution of the block with the sequence number N07 is finished, it can be detected that there is no program using the D code in the prefetched blocks with the sequence numbers N08 to N13 remaining in the prefetch buffer. Therefore, pre-reading is automatically restarted from the sequence number N14 when the execution of the block of the sequence number N07 is completed.

上述したプログラム例4では、一度指令を出した後、その指令を打ち消すような指令が出されるまで、その都度指令することなく有効に作用する工具径補正などのモーダルに作用するモーダルタイプの指令に対して適用したものであるが、ブロックの先読み処理によって、他のブロックの指令の処理に影響を与える又は影響を受けるものに、送り軸等の機械座標値を読み込む指令などがある。
次に示すプログラム例5は、この機械座標値を読み込むカスタムマクロ変数による指令があるとき、本発明のこの第2の形態を適用して、誤りなく読み出すことができるようにした例である。
In the above-described program example 4, after a command is issued once, a modal type command that acts on a modal such as tool radius correction that works effectively without giving a command each time until a command that cancels the command is issued. Although applied to the above, there are commands for reading machine coordinate values such as feed axes, etc. that affect or are affected by the command processing of other blocks by block prefetching processing.
The following program example 5 is an example in which when there is a command by a custom macro variable for reading this machine coordinate value, the second form of the present invention is applied so that it can be read without error.

プログラム例5
O0001;
N01 G90 G00 X0. Y0. Z0;
N02 G01 X100 Y100 F500.;
N03 X100. Y200. ;
N04 X200. Y200. ;
N05 X200. Y100. ;
N06 X100. Y100. ;
N07 X0 Y0 ;
N08 G01 Y100 Z100. F1000.;
N09 Y100. Z300.;
N10 Y300. Z300. ;
N11 Y300. Z100. ;
N12 Y100. Z100. ;
N13 Y0 Z0 ;
N14 #100=#5021+#200 + 0.5(CHANGE MCN) ;
N15 G53 X#100. ;
M30;
シーケンス番号N14における#5021は第1軸の機械座標を読み込むカスタムマクロ変数であり、このブロックの指令は、カスタムマクロ変数#5021に読み込んだ第1軸の機械座標にカスタムマクロ変数#200の値を加算し、さらに0.5を加算した値をカスタムマクロ変数#100に格納するという指令である。又、シーケンス番号N14までには先読み停止する意味をもったコードを挿入していない状態とし、先の例と同様にプログラムの先読み制御のブロック数が30と設定されている。
Program example 5
O0001;
N01 G90 G00 X0.Y0.Z0;
N02 G01 X100 Y100 F500 .;
N03 X100. Y200.;
N04 X200. Y200.;
N05 X200. Y100.;
N06 X100. Y100.;
N07 X0 Y0;
N08 G01 Y100 Z100. F1000 .;
N09 Y100. Z300 .;
N10 Y300. Z300.;
N11 Y300. Z100.;
N12 Y100. Z100.;
N13 Y0 Z0;
N14 # 100 = # 5021 + # 200 + 0.5 (CHANGE MCN);
N15 G53 X # 100.;
M30;
In the sequence number N14, # 5021 is a custom macro variable for reading the machine coordinate of the first axis, and the command of this block sets the value of the custom macro variable # 200 to the machine coordinate of the first axis read in the custom macro variable # 5021. This is an instruction to add and then store the value obtained by adding 0.5 to the custom macro variable # 100. Further, no code having the meaning of stopping prefetching is inserted until sequence number N14, and the number of prefetch control blocks of the program is set to 30 as in the previous example.

このプログラム例5においては、シーケンス番号N01からN07までに第1軸のX軸が移動していることから、これらのシーケンス番号のブロックの指令を実行中にはX軸の機械座標は不定である。そこで、シーケンス番号N14のブロックを先読みしコード解析を行った時、シーケンス番号N01からN07のブロックの指令を本実行中であると、機械座標は変化しているので、間違った機械座標でシーケンス番号N14のブロックの指令による計算が行われることになる。   In this program example 5, since the X-axis of the first axis has moved from sequence numbers N01 to N07, the machine coordinates of the X-axis are indefinite while executing commands for blocks of these sequence numbers. . Therefore, when the block of sequence number N14 is pre-read and code analysis is performed, if the commands of the blocks of sequence numbers N01 to N07 are being executed, the machine coordinates have changed. Calculation is performed according to the command of the block N14.

そこで、本第2の形態ではシーケンス番号N14のブロックを先読みしコード解析した時に、このブロックの処理に影響を与える処理のブロックが先読みバッファに記憶する中にあるか判断して、存在するような場合は、先読みを停止して、影響がなくなった時点で、このブロックの指令から先読み処理を実行するものである。   Therefore, in the second embodiment, when the block of sequence number N14 is prefetched and code analysis is performed, it is determined whether there is a block of processing that affects the processing of this block being stored in the prefetch buffer. In this case, the prefetching is stopped and the prefetching process is executed from the command of this block when the influence is lost.

すなわち、先読み処理により、シーケンス番号N01から順次先読みされその指令が解析されて解析結果が先読みバッファに保存されていく。一方、本実行処理により、この先読みバッファに格納されたシーケンス番号N01のブロックの解析結果(実行データ)から順次読み出し実行していく。そして、先読み処理でシーケンス番号N14のブロックの指令を読み出し解析したとき、図4のステップ304で、該ブロックの指令に影響を受ける指令のブロックが先読みバッファに残っているブロック中にあるか判断する。すなわち、X軸の移動をともなったコードを使用するブロックが先読みバッファに残っていないか判断する。残っていなければ、X軸の移動はないものであるから、X軸の位置は変化がなくシーケンス番号N14のブロックのコードを解析し実行データを作成して先読みバッファに保存しても問題はない(ステップ305)。又、X軸の移動をともなったコードを使用するブロックが先読みバッファに残っている場合には、当該シーケンス番号N14のブロックの指令の解析処理を停止し、先読み停止フラグFgを「1」にセットして先読み処理を停止する(ステップ308)。   That is, by prefetching processing, the sequence number N01 is prefetched sequentially, the command is analyzed, and the analysis result is stored in the prefetch buffer. On the other hand, this execution process sequentially reads and executes from the analysis result (execution data) of the block of sequence number N01 stored in the prefetch buffer. When the command of the block with the sequence number N14 is read and analyzed in the prefetch process, it is determined in step 304 of FIG. 4 whether there is a command block affected by the command of the block in the block remaining in the prefetch buffer. . That is, it is determined whether or not a block using a code accompanied by movement of the X axis remains in the prefetch buffer. If it does not remain, there is no movement of the X-axis, so there is no problem if the position of the X-axis does not change and the code of the block with the sequence number N14 is analyzed to generate execution data and save it in the prefetch buffer. (Step 305). If a block that uses a code accompanied by movement of the X axis remains in the prefetch buffer, the analysis processing of the command of the block with the sequence number N14 is stopped, and the prefetch stop flag Fg is set to “1”. Then, the prefetch process is stopped (step 308).

その後、ステップ306で、X軸の移動をともなったコードを使用するブロックが先読みバッファに残っていないか判断する。本実行によって先読みバッファに保存されたブロックが順次減少し、X軸の移動をともなったコードを使用するブロックがなくなると、先読み停止フラグFgを「0」にセットし(ステップ307)、先読み処理を再開し、停止していたシーケンス番号N14のブロックの指令の解析及び先読みバッファへの保存処理を行う(ステップ301〜305)。   Thereafter, in step 306, it is determined whether or not a block using a code accompanied by movement of the X axis remains in the prefetch buffer. When the number of blocks stored in the prefetch buffer is sequentially reduced by this execution and there is no block using the code accompanied by the movement of the X axis, the prefetch stop flag Fg is set to “0” (step 307), and the prefetch processing is performed. The analysis of the command of the block with the sequence number N14 that has been restarted and stopped and the process of storing in the prefetch buffer are performed (steps 301 to 305).

以上説明した第2の形態では、工具径補正などのモーダルで作用するデータの内容が変更されるときの指令や、機械座標値を読み出し、その読み出した値に基づいて計算処理を行う指令で、この指令により、先読みバッファに残るブロックの指令に影響を与えるとき、または、先読みバッファに残るブロックの指令で影響を受けるとき、先読み処理を停止し、この影響を受ける又は影響を与える指令を含むブロックが先読みバッファに記憶されなくなった時点で、先読み処理を再開するようにして、誤った動作を防止するようにしたが、このような、モーダルで作用する指令の変更や機械座標の読み取り処理等以外にも、そのブロックの先読み処理を実行することによって、先読みバッファに残るブロックの指令で影響を受けるときや影響を与える指令に対して、この第2の形態は適用できるものである。又、この第2の態様では、変数が一旦確定してもその後変更されるような場合でも、その変更によって、誤動作が生じないように、先読み処理を停止して変数の変更による誤った影響が発生しない状態を確認して先読み処理が再開されるので、誤動作、誤加工を確実に防止することができる。   In the second embodiment described above, a command when the content of data acting in a modal such as tool radius correction is changed, or a command for reading a machine coordinate value and performing a calculation process based on the read value, When this command affects the command of the block remaining in the prefetch buffer, or when it is affected by the command of the block remaining in the prefetch buffer, the prefetch processing is stopped, and the block including the command that is affected or affected by this When the no longer stored in the prefetch buffer, the prefetch process was restarted to prevent erroneous operations. However, other than such changes to commands that act modally or machine coordinate read processing, etc. In addition, by executing the prefetch process for that block, it can be affected or affected by the command of the block remaining in the prefetch buffer. Relative obtain command, the second embodiment is applicable. Also, in this second aspect, even if a variable is fixed once and then changed, the pre-reading process is stopped and erroneous influence due to the change of the variable is prevented so that a malfunction does not occur due to the change. Since the pre-reading process is resumed after confirming the non-occurring state, it is possible to reliably prevent malfunctions and erroneous machining.

本発明の一実施形態の数値制御装置の要部ブロック図である。It is a principal part block diagram of the numerical control apparatus of one Embodiment of this invention. 同実施形態における第1の態様での先読み処理のアルゴリズムを示すフローチャートである。It is a flowchart which shows the algorithm of the prefetch process in the 1st aspect in the embodiment. 同実施形態における第1の態様での本実行処理のアルゴリズムを示すフローチャートである。It is a flowchart which shows the algorithm of this execution process in the 1st aspect in the embodiment. 同実施形態における第2の態様での先読み処理のアルゴリズムを示すフローチャートである。It is a flowchart which shows the algorithm of the prefetch process in the 2nd aspect in the embodiment.

符号の説明Explanation of symbols

10 数値制御装置
21 位置・速度検出器
22 ポジションコーダ
M サーボモータ
SM 主軸モータ
10 Numerical controller 21 Position / speed detector 22 Position coder M Servo motor SM Spindle motor

Claims (5)

NCプログラムの各ブロックの指令を順次先読み出し該指令を解析して、該解析結果をバッファに保存する先読み処理を実行し、該バッファに保存された解析結果を順次1ブロック毎取り出して該バッファから削除すると共に該ブロックの指令を実行する数値制御装置において、
NCプログラムから先読みを停止させるコードが挿入されたブロックが読み出されると前記先読み処理を停止させる手段と、
前記バッファに残るブロック数が指定されている先読み再開許容ブロック数と一致したか判別する判別手段と、
該判別手段で前記バッファに残るブロック数と前記再開許容ブロック数が一致したことが判別されると、前記先読み処理を再開させる手段と、
を備えることを特長とする数値制御装置。
Pre-reads the commands of each block of the NC program sequentially, analyzes the commands, executes pre-read processing for storing the analysis results in a buffer, and sequentially extracts the analysis results stored in the buffer one block at a time from the buffer In the numerical controller that deletes and executes the command of the block,
Means for stopping the prefetching process when a block in which a code for stopping prefetching is inserted is read from the NC program;
Determining means for determining whether or not the number of blocks remaining in the buffer matches the number of prefetch resumption allowable blocks specified;
Means for resuming the prefetching process when it is determined by the determining means that the number of blocks remaining in the buffer matches the number of resumable blocks;
A numerical control device characterized by comprising:
前記先読み再開許容ブロック数はパラメータであらかじめ設定されるものである請求項1に記載の数値制御装置。   The numerical controller according to claim 1, wherein the prefetch resumable block number is preset by a parameter. 前記先読み再開許容ブロック数は前記NCプログラムで指令するものである請求項1に記載の数値制御装置。   The numerical control device according to claim 1, wherein the prefetch resumption allowable block number is instructed by the NC program. NCプログラムの各ブロックの指令を順次先読み出し該指令を解析して、該解析結果をバッファに保存する先読み処理を実行し、該バッファに保存された解析結果を1ブロック毎取り出し該ブロックの指令を実行する数値制御装置において、
前記先読みバッファより先読みを停止させるコードが挿入されたブロックが読み出されると前記先読み処理を停止させる手段と、
NCプログラムから先読み再開コードが読み出されると前記先読み処理を再開させる手段と、
を備えることを特長とする数値制御装置。
Pre-reads the commands of each block of the NC program sequentially, analyzes the commands, executes a pre-read process for storing the analysis results in a buffer, extracts the analysis results stored in the buffer for each block, and sends the commands for the blocks In the numerical controller to be executed,
Means for stopping the prefetching process when a block in which a code for stopping prefetching is inserted is read from the prefetching buffer;
Means for resuming the prefetching process when a prefetching resume code is read from the NC program;
A numerical control device characterized by comprising:
NCプログラムの各ブロックの指令を順次先読み出し該指令を解析して、該解析結果をバッファに保存する先読み処理を実行し、該バッファに保存された解析結果を順次1ブロック毎取り出して該バッファから削除すると共に該ブロックの指令を実行する数値制御装置において、
カスタムマクロ変数を変更するブロックの指令が読み込まれたとき、前記先読みバッファに保存されているブロックを検索して、このカスタムマクロ変数に関係するコードを検出する第1の検索手段と、
該第1の検索手段で前記カスタムマクロ変数に関係するコードを検出したら、当該解析中のブロックの解析とその解析結果の先読みバッファへの保存を停止すると共に、NCプログラムのブロックの前記先読み処理を停止させる先読み停止手段と、
該先読み停止手段で先読み処理が停止されているときに、前記バッファに残されているブロックを検索して、前記カスタムマクロ変数に関係するコードを検出する第2の検索手段と、
該第2の検索手段で、前記カスタムマクロ変数に関係しているコードが含まれていないことが判定されたとき、前記解析を停止し先読みバッファへの解析結果の保存を停止したブロックから先読み処理を再開させる手段と、
を備えたことを特長とする数値制御装置。
Pre-reads the commands of each block of the NC program sequentially, analyzes the commands, executes pre-read processing for storing the analysis results in a buffer, and sequentially extracts the analysis results stored in the buffer one block at a time from the buffer In the numerical controller that deletes and executes the command of the block,
A first search means for searching for a block stored in the prefetch buffer and detecting a code related to the custom macro variable when a command of a block for changing the custom macro variable is read;
When the code relating to the custom macro variable is detected by the first search means, the analysis of the block under analysis and the storage of the analysis result in the prefetch buffer are stopped, and the prefetch processing of the NC program block is performed. Prefetch stop means for stopping;
A second search means for searching for a block remaining in the buffer and detecting a code related to the custom macro variable when the prefetch processing is stopped by the prefetch stop means;
When the second search means determines that the code related to the custom macro variable is not included, the prefetch processing is started from the block in which the analysis is stopped and the storage of the analysis result in the prefetch buffer is stopped. Means for resuming
A numerical control device characterized by comprising
JP2006209964A 2006-08-01 2006-08-01 Numerical value control device Pending JP2008040542A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006209964A JP2008040542A (en) 2006-08-01 2006-08-01 Numerical value control device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006209964A JP2008040542A (en) 2006-08-01 2006-08-01 Numerical value control device

Publications (1)

Publication Number Publication Date
JP2008040542A true JP2008040542A (en) 2008-02-21

Family

ID=39175511

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006209964A Pending JP2008040542A (en) 2006-08-01 2006-08-01 Numerical value control device

Country Status (1)

Country Link
JP (1) JP2008040542A (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102014015007A1 (en) 2013-10-18 2015-04-23 Fanuc Corporation Numerical control with program prefetching function
CN104950819A (en) * 2015-05-05 2015-09-30 安徽工程大学 Electrical control system of numerically-controlled machine tool
DE102017004366A1 (en) 2016-05-12 2017-11-16 Fanuc Corporation Numerical control device
JP2017224137A (en) * 2016-06-15 2017-12-21 ファナック株式会社 Numerical controller and variable determination method
CN109388107A (en) * 2017-08-10 2019-02-26 欧姆龙株式会社 Control device
CN111123841A (en) * 2018-10-31 2020-05-08 发那科株式会社 Numerical controller
JP2021009425A (en) * 2019-06-28 2021-01-28 ファナック株式会社 Numerical control device

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102014015007A1 (en) 2013-10-18 2015-04-23 Fanuc Corporation Numerical control with program prefetching function
US10191472B2 (en) 2013-10-18 2019-01-29 Fanuc Corporation Numerical controller provided with program pre-reading function
CN104950819B (en) * 2015-05-05 2018-02-02 安徽工程大学 Digit Control Machine Tool electric control system
CN104950819A (en) * 2015-05-05 2015-09-30 安徽工程大学 Electrical control system of numerically-controlled machine tool
CN107368039B (en) * 2016-05-12 2020-06-23 发那科株式会社 Numerical controller
DE102017004366B4 (en) 2016-05-12 2020-06-18 Fanuc Corporation Numerical control device
DE102017004366A1 (en) 2016-05-12 2017-11-16 Fanuc Corporation Numerical control device
CN107368039A (en) * 2016-05-12 2017-11-21 发那科株式会社 Numerical control device
JP2017204188A (en) * 2016-05-12 2017-11-16 ファナック株式会社 Numerical controller comprising processing program prefetch start function by condition specification
US10338570B2 (en) 2016-05-12 2019-07-02 Fanuc Corporation Numerical controller
US10416652B2 (en) 2016-06-15 2019-09-17 Fanuc Corporation Numerical controller and method for determining look-ahead variable
CN107526334B (en) * 2016-06-15 2020-01-07 发那科株式会社 Numerical controller and variable determination method
JP2017224137A (en) * 2016-06-15 2017-12-21 ファナック株式会社 Numerical controller and variable determination method
CN107526334A (en) * 2016-06-15 2017-12-29 发那科株式会社 Numerical control device and change amount determination operation
US11137740B2 (en) 2016-06-15 2021-10-05 Fanuc Corporation Numerical controller and method for determining look-ahead variable
CN109388107A (en) * 2017-08-10 2019-02-26 欧姆龙株式会社 Control device
CN111123841A (en) * 2018-10-31 2020-05-08 发那科株式会社 Numerical controller
CN111123841B (en) * 2018-10-31 2023-08-29 发那科株式会社 Numerical controller
JP2021009425A (en) * 2019-06-28 2021-01-28 ファナック株式会社 Numerical control device
JP7260420B2 (en) 2019-06-28 2023-04-18 ファナック株式会社 Numerical controller

Similar Documents

Publication Publication Date Title
EP2009530B1 (en) Numerical controller having function of resuming look-ahead of block
JP2008040542A (en) Numerical value control device
CN107368039B (en) Numerical controller
US7206659B2 (en) Numerical controller
JP5715217B2 (en) Numerical control device with program prefetching function
US7590458B2 (en) Conversational numerical control apparatus
JP4374045B2 (en) Numerical control device with program restart function
US7254461B2 (en) Numerical controller having a function of learning control
JP2014063389A (en) Numerical control device having inter-system waiting function
JP2017151633A (en) Numerical control device having taper angle correction function in taper processing in skiving processing
JP2004326618A (en) Numerical control device of machine tool
JP5339815B2 (en) Numerical control device with processing resumption function
JP2014026430A (en) Numerical control device having function to display differences in status at suspension and at restart of machining
US11048222B2 (en) Numerical control device
JP2006227894A (en) Cut resumption method, cutting system and cutting controller
JP6823032B2 (en) Program modifier
JP2009110223A (en) Numerical control device, numerical control program, and storage medium storing numerical control program
WO2022244072A1 (en) Numerical control device and computer-readable storage medium
JP2009075727A (en) Numerical controller, numerical control program, and storage medium storing numerical control program
US11112774B2 (en) Numerical controller
WO2024003972A1 (en) Program optimization device and storage medium
WO2022219701A1 (en) Numerical control device
WO2024003990A1 (en) Program optimization device and storage medium
JPH01197813A (en) Position controller for motor
JP6568152B2 (en) Numerical controller