JP6997131B2 - 数値制御装置 - Google Patents

数値制御装置 Download PDF

Info

Publication number
JP6997131B2
JP6997131B2 JP2019073047A JP2019073047A JP6997131B2 JP 6997131 B2 JP6997131 B2 JP 6997131B2 JP 2019073047 A JP2019073047 A JP 2019073047A JP 2019073047 A JP2019073047 A JP 2019073047A JP 6997131 B2 JP6997131 B2 JP 6997131B2
Authority
JP
Japan
Prior art keywords
block
ahead
program
look
control device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019073047A
Other languages
English (en)
Other versions
JP2020170470A (ja
Inventor
庸士 大西
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP2019073047A priority Critical patent/JP6997131B2/ja
Priority to US16/819,689 priority patent/US11112774B2/en
Priority to DE102020001990.0A priority patent/DE102020001990A1/de
Priority to CN202010260757.XA priority patent/CN111796555A/zh
Publication of JP2020170470A publication Critical patent/JP2020170470A/ja
Application granted granted Critical
Publication of JP6997131B2 publication Critical patent/JP6997131B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/408Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by data handling or data format, e.g. reading, buffering or conversion of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/13Plc programming
    • G05B2219/13098Nc function to control axis, written in C or not
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/35Nc in input of data, input till input file format
    • G05B2219/35385Decode several blocks at the same time, as a single block, simultaneous, parallel
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/35Nc in input of data, input till input file format
    • G05B2219/35386Look ahead processing of plural block data from buffer

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Manufacturing & Machinery (AREA)
  • Automation & Control Theory (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Numerical Control (AREA)

Description

本発明は、数値制御装置に関し、特にプログラムの先読み機能を備えた数値制御装置に関する。
数値制御装置には、プログラムのブロックを、該ブロックを実行する前に予めメモリ上に読み出して、事前に解析を行う先読み機能を備えているものがある(例えば、特許文献1~3等)。この先読み機能により、プログラムの先の方で実行されるブロックによる指令形状や速度指令を考慮した補正機能や速度制御を実現することができる。
例えば、特許文献1には、工具径補正を行う際に、プログラムのブロックを複数ブロック先読みし、先読みされた指令ブロックにおいて補正が原因で工具とワークとの干渉が発生する場合に、補正する方向や補正量を変更することで工具とワークとの干渉を回避する技術が開示されている。
また、特許文献2には、プログラムのブロックを複数ブロック先読みして先で指令される指令速度を考慮しながら、急激な減速などが発生しないような速度制御を行う技術が開示されている。
特開平09-069003号公報 特開2007-094936号公報 特開2008-293261号公報
先読み機能が有効な場合、プログラムに含まれるマクロ文は先読みして解析される際に処理される。そのため、ブロックが実行されるタイミングでマクロ文を処理する必要がある場合には、当該ブロックの直前にバッファリング禁止命令を入れる等の対応を取る必要がある。例えば、直前のブロックの実行が完了した後の軸の位置に応じて分岐処理を行うマクロ文を先読みして解析するタイミングで処理してしまうと、直前のブロックの実行が行われていない状態で取得された誤った軸の位置に基づいて分岐処理が行われてしまい、想定した処理が実行されなくなる恐れがある。この様な場合には、そのブロックの直前にバッファリング禁止命令を入れて、直前のブロックの実行が完了してから処理が行われるようにする。
このバッファリング禁止命令をプログラムに入れると、その命令が含まれるブロックのところで先読みが行われなくなるため、前述の補正機能や速度制御に影響が出る。そのため、マクロ文の実行タイミングが厳密でない場合や、先読みを優先したい場合に、敢えてバッファリング禁止命令を入れずにプログラムしている場合がある。また、単に先読みの特性を理解しておらず、本来バッファリング禁止命令を入れるべきところに入れていなくても、たまたま問題なくプログラムが動作している場合がある。
図7は、マクロ文を含むプログラムの例を示す図である。図7に示したプログラムでは、N0100ブロック及びN0500ブロックのマクロ文において、該マクロ文が処理された時点での時刻を取得して変数#100及び変数#101に対して代入している。そして、N0510ブロックでは、変数#100及び変数#101の差を計算して、変数#500に代入している。この変数#500は、N0100のブロックとN0500のブロックとの間にあるブロックの実行にどれだけ時間が掛かるのかを示す。この様なプログラムにおいて、N0100のブロックとN0500のブロックとの間にあるブロックの実行時間を正確に知りたい場合には、本来はN0100ブロックの直前と、N0500ブロックの直前とにバッファリング禁止命令を入れる必要がある。しかしながら、オペレータがバッファリング禁止命令を入れ忘れたとしても、プログラムの処理に大きな問題が生じること無く動作するため、気づかずに実作業を行っている場合もある。
一般に、先読み機能は、予め用意された先読み用のバッファが満たされるまで、処理能力の許す限り先読みを実行する。そのため、上記したバッファリング禁止命令をプログラムに入れていない場合、先読み用のバッファのバッファサイズが大きければ大きいほど、マクロ文が処理されるタイミングと、マクロ文の前後にあるブロックが実際に実行されるタイミング(マクロ文の前後にあるブロックによる指令が工作機械や周辺装置に対して出力されるタイミング)との時間的なギャップが大きくなる。
図8,9は、プログラムのブロックの先読みと実行の様子を例示する図である。図8は、10ブロック分の先読みしたブロックに係るデータを記憶できるバッファが用意されている例を示している。また、図9は、100ブロック分の先読みしたブロックに係るデータを記憶できるバッファが用意されている例を示している。図8,9では、1つの矩形は1つのブロックを示しており、また、プログラムを複数の矩形(ブロック)が縦に積み重なったものとして示している。図8,9では、プログラムのブロックの先読みと実行の時間的推移を左から右に並べて示している。プログラムのブロックは、上から順に先読みされ、また、上から順に実行されていく。図8,9において、斜線で網掛けされた矩形はマクロ文を含んだブロックであり、その他のブロックは通常のNCブロックであると仮定する。また、黒塗りされた矩形は現在実行中のブロック、縦線で網掛けされた矩形は既に実行済みのブロックを示し、また、矢印が指すブロックまでが先読み用バッファに先読みされているものとする。例えば、図8では、時刻t0でプログラムの先読み及び実行が開始され、時刻t1の時点で5ブロック目までがバッファに先読みされ、1ブロック目が実行中の状態であることを示している。
ここで、図8に示した例(10ブロック分先読み可能)では、現在実行中のブロックから10ブロック分の先読みが行われる。プログラム開始時t0では、プログラムの先頭のブロックから順に先読みが行われ、1ブロック目が実行される。そして、10ブロック目までの先読みが行われた時刻t2の時点でバッファが充足され、先読みが停止する。この段階では、1ブロック目が実行中である。そして、1ブロック目の実行が終了すると、1ブロック目の先読みに用いられていたバッファの領域が解放され、11ブロック目の先読みが行われる。このようにブロックの先読み及び実行が進み、7ブロック目の実行が完了し、8ブロック目の実行が行われる時刻tiにおいて17ブロック目(斜線で網掛けされた矩形)が先読みされて解析(マクロ文はこの時点で処理される)されることとなる。
一方で、図9に示した例(100ブロック分先読み可能)では、現在実行中のブロックから100ブロックまでは先読みが行われる。プログラム開始時t0では、プログラムの先頭のブロックから順に先読みが行われ、1ブロック目が実行される。そして、例えばプログラムの17ブロック目(斜線で網掛けされた矩形)は、時刻t4の時点で先読み及び解析(マクロ文はこの時点で処理される)が行われる。また、この時点で2ブロック目のブロックが実行されている。
この様に、先読みしたブロックに係るデータを記憶するバッファのバッファサイズが大きい場合は、バッファサイズが小さい場合と比較して、ブロックが先読みされるタイミングと、該ブロックが実行されるタイミングとの時間的なギャップが大きくなる。そのため、バッファリング禁止命令を入れていないプログラムを、先読みしたブロックに係るデータを記憶するバッファのバッファサイズが大きい数値制御装置で実施すると、想定している実行結果と実際の実行結果との間に時間的なギャップに基づく大きな差異が生じて問題になる場合がある。例えば、図7のプログラムは、先読みしたブロックに係るデータを記憶するバッファのバッファサイズが小さい数値制御装置で実行した場合と、バッファサイズが大きい数値制御装置で実行した場合とでは、変数#500に代入される値に大きな差が生じ、それぞれの実行結果(ブロックN0520の判定結果)が変化してしまう場合がある。
この様な問題の発生を最小限に抑えるためには、先読みを要する機能(速度制御等)で必要となる先読みを優先しながらも、必ずしも必要では無い先読みをしないように先読みの制御を行うことが望ましい。必ずしも必要では無い先読みは、実行結果を変えてしまう等の悪影響を及ぼす可能性があるからである。
また、先読みしたブロックに係るデータを記憶するバッファのバッファサイズが大きいと、先読みされたブロックの解析処理の負荷がプログラム実行開始時に集中するという別の問題もある。例えば、複数系統のシステムにおいて、同時にプログラムが実行開始された場合、各系統におけるプログラム解析処理の負荷がプログラム実行開始時に集中し、互いの処理に影響を与える可能性がある。そのため、プログラムの実行時間内で時間的に負荷が分散している方が好ましい。その観点からも、必ずしも必要では無い先読みはしない方が良いと考えられる。
そこで、現在実行しているプログラムの状況に応じて適切な数のブロックを先読みする制御を行う数値制御装置が望まれている。
本発明の一態様による数値制御装置は、現在実行中のブロック以降の所定のブロックの実行に必要とされるブロック数(ブロック毎に異なる)が確保(先読み及び解析)されるまで先読みを続け、確保できたら先読みを中断することで、上記課題を解決する。
そして、本発明の一態様は、NCプログラムのブロックを先読みする先読み機能を備えた数値制御装置であって、前記NCプログラムの実行中のブロック以降の所定の基準ブロックの実行に必要とされる該基準ブロック以降のブロックが先読みされたか否かに応じて、前記NCプログラムからのブロックの先読みが充足しているか否かを判定する先読み充足判定部と、前記先読み充足判定部が前記NCプログラムからのブロックの先読みが充足していないと判定している場合、前記NCプログラムからのブロックの先読みを行う先読み解析部と、を備えた数値制御装置である。
本発明により、現在実行しているプログラムの状況に応じて適切な数のブロックを先読みする事ができるようになる。
一実施形態による数値制御装置の概略的なハードウェア構成図である。 第1実施形態による数値制御装置の概略的な機能ブロック図である。 軸の移動を先読みされたブロックの実行中に停止させることができない場合を示す図である。 軸の移動を先読みされたブロックの実行中に停止させることができる場合を示す図である。 第2実施形態による数値制御装置の概略的な機能ブロック図である。 基準ブロックの設定方法について説明する図である。 マクロ文を含むプログラムの例を示す図である。 プログラムのブロックの先読みと実行の様子を例示する図である。 プログラムのブロックの先読みと実行の様子を例示する図である。
以下、本発明の実施形態を図面と共に説明する。
図1は本発明の一実施形態による数値制御装置の要部を示す概略的なハードウェア構成図である。本発明の数値制御装置1は、例えばプログラムに基づいて工作機械を制御する数値制御装置として実装することができる。
本実施形態による数値制御装置1が備えるCPU11は、数値制御装置1を全体的に制御するプロセッサである。CPU11は、ROM12に格納されたシステム・プログラムをバス20を介して読み出し、該システム・プログラムに従って数値制御装置1全体を制御する。RAM13には一時的な計算データや表示データ、及び外部から入力された各種データ等が一時的に格納される。
不揮発性メモリ14は、例えば図示しないバッテリでバックアップされたメモリやSSD(Solid State Drive)等で構成され、数値制御装置1の電源がオフされても記憶状態が保持される。不揮発性メモリ14には、インタフェース15を介して外部機器72から読み込まれたプログラム、表示器/MDIユニット70を介して入力されたプログラム等が記憶される。不揮発性メモリ14に記憶されたプログラムや各種データは、実行時/利用時にはRAM13に展開されても良い。また、ROM12には、公知の解析プログラムなどの各種システム・プログラムがあらかじめ書き込まれている。
インタフェース15は、数値制御装置1のCPU11とUSB装置等の外部機器72と接続するためのインタフェースである。外部機器72側からは工作機械の制御に用いられるプログラムや各種パラメータ等が読み込まれる。また、数値制御装置1内で編集したプログラムや各種パラメータ等は、外部機器72を介して外部記憶手段に記憶させることができる。PMC(プログラマブル・マシン・コントローラ)16は、数値制御装置1に内蔵されたシーケンス・プログラムで工作機械及び該工作機械の周辺装置(例えば、工具交換装置や、ロボット等のアクチュエータ、工作機械に取付けられているセンサ等)にI/Oユニット17を介して信号を出力し制御する。また、工作機械の本体に配備された操作盤の各種スイッチや周辺装置等の信号を受け、必要な信号処理をした後、CPU11に渡す。
表示器/MDIユニット70はディスプレイやキーボード等を備えた手動データ入力装置であり、インタフェース18は表示器/MDIユニット70のキーボードからの指令,データを受けてCPU11に渡す。インタフェース19は各軸を手動で駆動させる際に用いる手動パルス発生器等を備えた操作盤71に接続されている。
工作機械が備える軸を制御するための軸制御回路30はCPU11からの軸の移動指令量を受けて、軸の指令をサーボアンプ40に出力する。サーボアンプ40はこの指令を受けて、工作機械が備える軸を移動させるサーボモータ50を駆動する。軸のサーボモータ50は位置・速度検出器を内蔵し、この位置・速度検出器からの位置・速度フィードバック信号を軸制御回路30にフィードバックし、位置・速度のフィードバック制御を行う。なお、図1のハードウェア構成図では軸制御回路30、サーボアンプ40、サーボモータ50は1つずつしか示されていないが、実際には制御対象となる工作機械に備えられた軸の数だけ用意される。
スピンドル制御回路60は、主軸回転指令を受け、スピンドルアンプ61にスピンドル速度信号を出力する。スピンドルアンプ61はこのスピンドル速度信号を受けて、工作機械のスピンドルモータ62を指令された回転速度で回転させ、工具を駆動する。スピンドルモータ62にはポジションコーダ63が結合され、ポジションコーダ63が主軸の回転に同期して帰還パルスを出力し、その帰還パルスはCPU11によって読み取られる。
図2は、本発明の第1実施形態による数値制御装置1の概略的な機能ブロック図である。図2に示した各機能ブロックは、図1に示した数値制御装置1が備えるCPU11がシステム・プログラムを実行し、数値制御装置1の各部の動作を制御することにより実現される。
本実施形態の数値制御装置1は、先読み解析部100、プログラム実行部110を備え、また、工作機械の制御に用いられるプログラム200が不揮発性メモリ14に予め記憶されている。更に、RAM13乃至不揮発性メモリ14上にはプログラムのブロックを実行するために必要とされる実行データを記憶する実行データバッファ210が設けられている。
先読み解析部100は、図1に示した数値制御装置1が備えるCPU11がROM12から読み出したシステム・プログラムを実行し、主としてCPU11によるRAM13、不揮発性メモリ14を用いた演算処理が行われることで実現される。先読み解析部100は、プログラム200のブロックを先読みして解析し、解析結果として得られた実行データを実行データバッファ210へとする機能手段である。先読み解析部100は、実行データバッファ210に空きがある場合であって、後述する先読み充足判定部102が基準ブロックの実行に必要とされるブロックが先読みされていない状態であると判定した場合に、プログラム200のブロックの先読みを実行する。先読み解析部100は、先読み充足判定部102、解析部104を備える。
先読み充足判定部102は、プログラム200からのブロックの先読みが充足しているか否かを判定する機能手段である。先読み充足判定部102は、既に先読みされているブロックの内の先読み充足判定の基準となる基準ブロックについて、該基準ブロックの動作に必要とされるブロックが先読みされているか否かに基づいて、先読みが充足しているか否かを判定する。基準ブロックは、例えば現在プログラム実行部110が実行しているブロックの次のブロックとすることができる。基準ブロックは、例えば現在プログラム実行部110が実行しているブロックの2つ先や3つ先のブロックとすることもできる。基準ブロックは、不揮発性メモリ14上に設けられた設定領域に、現在プログラム実行部110が実行しているブロックとの関係として予め静的に設定しておくようにしても良い。先読み充足判定部102は、基準ブロックとして定められたブロックが先読みされていない場合には、常に先読みが充足していないと判定する。
先読み充足判定部102は、例えば基準ブロックが軸送りを指令するブロックである場合、該基準ブロックにおける軸送りの指令において、十分な速度を出すことができるだけのブロックが先読みされているか否かに基づいて、先読みが充足しているか否かを判定する。
図3,4を用いて、ブロックの先読みと軸送り時の速度の制約との関係を説明する。図3,4は、基準ブロックNにおいて軸を移動させた後、該軸を停止させる場合の速度と時間の関係を示している。図3,4の例では、基準ブロックNは軸送りの指令であり、該指令における制限速度がVlに設定されている。また、横軸はブロックの実行にかかる時間を示しており、例えば制限速度Vlで軸が移動している状態でブロックN+1の実行が開始され、最大の減速度で減速しながらブロックN+1が実行された場合、ブロックN+1の実行に(t2-t1)だけ時間が掛かる。制限速度Vlは、例えば軸の最大速度として数値制御装置1又は工作機械2に設定されている最大速度値や、ブロックにおける指令値、その他の要因に基づいて設定される。このような該軸を停止させる場合の速度と時間の関係は、先読みされたブロックを解析することで算出される。
図3の例では、ブロックN+4までのブロックがプログラム200から先読みされている。この時、基準ブロックNにおいて制限速度Vlで軸送りを行うと、図3上のグラフに示すように、当該軸に設定されている各軸の最大減速度等から算出される最大減速度で減速したとしても、ブロックN+4の終了時点t5(即ち、ブロックN+5の開始時点)までに軸を停止することができない。そのため、ブロックN+4までのブロックが読み込まれている状況では、図3下のグラフに示すように、ブロックN+4の実行が完了した時点t5’までに確実に軸送りを停止することができる速度VrまでブロックNでの速度が制約される。この様な場合、先読み充足判定部102は、基準ブロックNにおける軸送り指令において、十分な速度を出すことができるだけのブロックが先読みされていないとして、先読みが充足していないと判定する。
図4の例では、ブロックN+5までのブロックがプログラム200から先読みされている。この時、基準ブロックNにおいて制限速度Vlで軸送りが行った場合、例えば先読みされていないブロックN+6において当該軸を停止する必要がある場合、当該軸に設定されている最大の減速度で減速すれば、ブロックN+6の開始時点までに当該軸を停止することが出来る。そのため、ブロックN+5までのブロックが読み込まれている状況では、ブロックNにおける軸の送り速度を制約する必要はなく、制限速度Vlまで速度を上げることができる。この様な場合、先読み充足判定部102は、基準ブロックNにおける軸送り指令において、十分な速度を出すことができるだけのブロックが先読みされているとして、先読みが充足していると判定する。
先読み充足判定部102は、上記で説明した軸送りの速度に基づく先読み充足判定以外にも、例えば指令毎に予め定められた必要ブロック数を用いて、基準ブロックによる指令に必要なブロック数が先読みされているか否かに応じて、先読みが充足しているか否かを判定するようにしても良い。また、数値制御装置1において現在利用されている機能(工具径補正機能、曲線近似機能等)に応じて、該機能に必要とされるブロック数が先読みされているか否かに応じて、先読みが充足しているか否かを判定するようにしても良い。工具径補正機能は、工具径補正を行うことによりブロック間で段差や工具とワークの干渉等が生じないようにする必要があるため、少なくとも2ブロック先まで先読みして補正後の経路を解析する必要がある。また、曲線近似機能は、複数のブロックにより指令される一連の指令点から近似される曲線を所定のアルゴリズムを用いて演算する。そして、そのアルゴリズムに必要な、又はそのアルゴリズムで正しい近似曲線を演算できるだけの指令点数を指令するブロック数を先読みする必要がある。この様な指令毎、機能毎の必要ブロック数を用いる場合には、指令毎、機能毎の必要ブロック数乃至必要ブロック数を演算する式を、予め不揮発性メモリ14上に設けた設定領域に設定しておくようにすれば良い。
解析部104は、プログラム200から先読みしたブロックを解析し、解析した結果として得られた実行データを実行データバッファ210へと格納する機能手段である。実行データバッファ210には、先読みされた各ブロックのモーダル情報、各軸の移動量、主軸指令回転数、送り速度等の情報が格納される。解析部104が行うブロックの解析は、ソースコードであるブロックをコンピュータが認識できる実行データであるオブジェクトコードへ変換することを意味する。この変換には、(1)字句解析、(2)マクロ解析、(3)マクロ実行、(4)構文解析、(5)意味解析、(6)オブジェクトコードの生成、(7)最適化等の工程がある。解析部104による解析処理の詳細については、例えば特許文献3などにより十分に説明されているので、本願の明細書における説明は省略する。
プログラム実行部110は、図1に示した数値制御装置1が備えるCPU11がROM12から読み出したシステム・プログラムを実行し、主としてCPU11によるRAM13、不揮発性メモリ14を用いた演算処理と、軸制御回路30、スピンドル制御回路60、PMC16等による工作機械2の制御処理が行われることで実現される。プログラム実行部110は、実行データバッファ210に格納された実行データに基づいて、工作機械2の動作を制御する機能手段である。プログラム実行部110は、実行データにより工作機械2が備える各軸を駆動するモータに対して制御周期毎に移動指令を出力したり、工作機械2の周辺装置を制御したりする等といったように、工作機械2の各部を制御するために必要とされる一般的な制御のための機能を備える。また、プログラム実行部110は、現在実行中のブロックを先読み解析部100に対して通知する機能を備える。
上記構成を備えた本実施形態による数値制御装置1では、現在実行しているプログラムの状況に応じて、所定の基準ブロックに必要とされる適切な数のブロックを先読みする制御を行うことが可能となるため、必要以上にブロックの先読みが行われなくなり、マクロの実行に対する影響を最小限に抑えることができる。また、必要以上にブロックの先読み及び解析が行われないため、プログラムの実行における負荷の集中が軽減され、例えば複数のプログラム間での連携に対する影響が低減されることが期待できる。
図5は、本発明の第2実施形態による数値制御装置1の概略的な機能ブロック図である。図5に示した各機能ブロックは、図1に示した数値制御装置1が備えるCPU11がシステム・プログラムを実行し、数値制御装置1の各部の動作を制御することにより実現される。
本実施形態の数値制御装置1は、先読み解析部100が、更に基準ブロック設定部106を備えている点で、第1実施形態による数値制御装置1と異なる。
基準ブロック設定部106は、現在実行されているブロックの実行状況や、先読みされたブロックの実行時間に応じて、先読み充足判定部102が、プログラム200からのブロックの先読みが充足しているか否かを判定する基準とする基準ブロックを動的に設定する機能手段である。基準ブロック設定部106は、例えば現在実行中のブロックの実行に掛かる時間及び先読みされている各ブロックの実行に掛かる時間に基づいて基準ブロックを設定するようにしても良い。
図6は、実行中のブロックと先読みされたブロックN~N+3のそれぞれの実行にかかる時間を示す図である。基準ブロック設定部106は、例えば予め不揮発性メモリ14の設定領域に設定されている先読み解析に掛かる時間の閾値tthに基づいて、閾値tthの間に実行され得るブロックの次のブロックを基準ブロックとして設定する。図6の例では、閾値tthの時間が経過した時点でブロックNは既に実行中となっていることが予想されるので、基準ブロック設定部106は、ブロックNの次のブロックであるブロックN+1を基準ブロックとして設定する。
第1実施形態による数値制御装置1では、予め基準ブロックを静的に設定しておき、設定された基準ブロックに基づいて先読み充足判定処理を行っていた。しかしながら、現在実行中のブロックや実行中ブロックに続くブロックの実行が短い時間で終了する場合、例えば実行中ブロックの次のブロックを基準ブロックとして静的に設定してしまうと、先読み充足判定処理が終了した時点で基準ブロックが実行されていたり、基準ブロックの実行が完了していたりするといった事態が起きる可能性がある。本実施形態による数値制御装置1では、基準ブロックを動的に設定する基準ブロック設定部106を設けることで、この様な問題が発生しないようにすることができる。
以上、本発明の一実施形態について説明したが、本発明は上述した実施の形態の例のみに限定されることなく、適宜の変更を加えることにより様々な態様で実施することができる。
1 数値制御装置
2 工作機械
11 CPU
12 ROM
13 RAM
14 不揮発性メモリ
15,18,19 インタフェース
16 PMC
17 I/Oユニット
20 バス
30 軸制御回路
40 サーボアンプ
50 サーボモータ
60 スピンドル制御回路
61 スピンドルアンプ
62 スピンドルモータ
63 ポジションコーダ
70 表示器/MDIユニット
71 操作盤
72 外部機器
100 先読み解析部
102 先読み充足判定部
104 解析部
106 基準ブロック設定部
110 プログラム実行部
200 プログラム
210 実行データバッファ

Claims (5)

  1. NCプログラムのブロックを先読みする先読み機能を備えた数値制御装置であって、
    前記NCプログラムの実行中のブロック以降の所定の基準ブロックの実行に必要とされる該基準ブロック以降のブロックが先読みされたか否かに応じて、前記NCプログラムからのブロックの先読みが充足しているか否かを判定する先読み充足判定部と、
    前記先読み充足判定部が前記NCプログラムからのブロックの先読みが充足していないと判定している場合、前記NCプログラムからのブロックの先読みを行う先読み解析部と、
    を備えた数値制御装置。
  2. 前記先読み充足判定部は、前記基準ブロックが軸送りを指令している場合において、該指令における制限速度で軸を移動させた時、先読みされたブロックの実行時間内で該軸を停止させることが出来る場合に、前記NCプログラムからのブロックの先読みが充足していると判定する、
    請求項1に記載の数値制御装置。
  3. 前記先読み充足判定部は、指令毎又は機能毎に設定された必要ブロック数乃至必要ブロック数を演算する式に基づいて、前記NCプログラムからのブロックの先読みが充足しているか否かを判定する、
    請求項1に記載の数値制御装置。
  4. 前記基準ブロックは、実行中のブロックとの関係として予め静的に設定されている、
    請求項1に記載の数値制御装置。
  5. 実行中のブロックの実行状況又は先読みされたブロックの実行時間に応じて、基準ブロックを動的に設定する基準ブロック設定部をさらに備える、
    請求項1に記載の数値制御装置。
JP2019073047A 2019-04-05 2019-04-05 数値制御装置 Active JP6997131B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2019073047A JP6997131B2 (ja) 2019-04-05 2019-04-05 数値制御装置
US16/819,689 US11112774B2 (en) 2019-04-05 2020-03-16 Numerical controller
DE102020001990.0A DE102020001990A1 (de) 2019-04-05 2020-03-27 Numerische Steuervorrichtung
CN202010260757.XA CN111796555A (zh) 2019-04-05 2020-04-03 数值控制装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019073047A JP6997131B2 (ja) 2019-04-05 2019-04-05 数値制御装置

Publications (2)

Publication Number Publication Date
JP2020170470A JP2020170470A (ja) 2020-10-15
JP6997131B2 true JP6997131B2 (ja) 2022-01-17

Family

ID=72518473

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019073047A Active JP6997131B2 (ja) 2019-04-05 2019-04-05 数値制御装置

Country Status (4)

Country Link
US (1) US11112774B2 (ja)
JP (1) JP6997131B2 (ja)
CN (1) CN111796555A (ja)
DE (1) DE102020001990A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007094936A (ja) 2005-09-30 2007-04-12 Fanuc Ltd 数値制御装置
JP2007164509A (ja) 2005-12-14 2007-06-28 Fanuc Ltd 数値制御装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63263502A (ja) * 1987-04-21 1988-10-31 Osaka Kiko Co Ltd 数値制御工作機械に於ける加工情報の創成方法
US5619663A (en) * 1994-09-16 1997-04-08 Philips Electronics North America Corp. Computer instruction prefetch system
JP3810454B2 (ja) 1995-09-01 2006-08-16 ファナック株式会社 Cncの工具径補正方法
JP4271248B2 (ja) 2007-05-24 2009-06-03 ファナック株式会社 先読み停止機能を有する数値制御装置
JP4351281B2 (ja) * 2007-12-13 2009-10-28 ファナック株式会社 5軸加工機を制御する数値制御装置
WO2013171850A1 (ja) * 2012-05-15 2013-11-21 三菱電機株式会社 数値制御装置
JP6444938B2 (ja) * 2016-05-12 2018-12-26 ファナック株式会社 条件指定による加工プログラム先読み開始機能を備えた数値制御装置
CN109085798B (zh) * 2018-08-06 2021-01-26 常州工业职业技术学院 一种嵌入式系统g代码异步通讯机制、协议及编程方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007094936A (ja) 2005-09-30 2007-04-12 Fanuc Ltd 数値制御装置
JP2007164509A (ja) 2005-12-14 2007-06-28 Fanuc Ltd 数値制御装置

Also Published As

Publication number Publication date
CN111796555A (zh) 2020-10-20
US20200319887A1 (en) 2020-10-08
US11112774B2 (en) 2021-09-07
DE102020001990A1 (de) 2020-10-08
JP2020170470A (ja) 2020-10-15

Similar Documents

Publication Publication Date Title
JP5657623B2 (ja) 系統間待合せ機能を有する数値制御装置
EP2009530B1 (en) Numerical controller having function of resuming look-ahead of block
JP4374045B2 (ja) プログラム再開機能を備えた数値制御装置
JP6444938B2 (ja) 条件指定による加工プログラム先読み開始機能を備えた数値制御装置
US20160062336A1 (en) Numerical controller for facilitating adjustment of machining motion
JP2002132349A (ja) 加減速制御方法
EP1918796A2 (en) Numerical controller with machining resume function
JP6363642B2 (ja) 接線連続のコーナにおけるコーナ経路の最適化機能を有する数値制御装置
US20040236462A1 (en) Numerical control apparatus for machine tool
CN111123841B (zh) 数值控制装置
JP2007245247A (ja) プログラム確認機能を有する機械
CN105320075B (zh) 具有重叠控制的速度控制功能的数值控制装置
JP5893527B2 (ja) 加工中断時と再開時の状態の違いを表示する機能を有する数値制御装置
JP6997131B2 (ja) 数値制御装置
JP7376260B2 (ja) 数値制御装置
JP5339815B2 (ja) 加工再開機能を有する数値制御装置
JP2017033345A (ja) 同期開始ブロックのショックを解消する機能を有する同期制御装置
JP6077601B2 (ja) 加工プログラムのサイクルタイムを短縮する数値制御装置
JP6901454B2 (ja) 数値制御装置
JP2017004188A (ja) 加減速設定自動切換機能を備えた数値制御装置
JP6823032B2 (ja) プログラム修正装置
US20190294152A1 (en) Machining program editing device
JP2021051568A (ja) 数値制御装置
WO2024003972A1 (ja) プログラム最適化装置及び記憶媒体
WO2022244072A1 (ja) 数値制御装置及びコンピュータ読み取り可能な記憶媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200909

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210824

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210826

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211022

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211216

R150 Certificate of patent or registration of utility model

Ref document number: 6997131

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150