JPH1139017A - 数値制御装置及び加工プログラムの実行方法 - Google Patents

数値制御装置及び加工プログラムの実行方法

Info

Publication number
JPH1139017A
JPH1139017A JP20392497A JP20392497A JPH1139017A JP H1139017 A JPH1139017 A JP H1139017A JP 20392497 A JP20392497 A JP 20392497A JP 20392497 A JP20392497 A JP 20392497A JP H1139017 A JPH1139017 A JP H1139017A
Authority
JP
Japan
Prior art keywords
block
flag
distribution
movement command
processing
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.)
Withdrawn
Application number
JP20392497A
Other languages
English (en)
Inventor
Mitsuo Kinoshita
三男 木下
Katsuhiro Endo
勝博 遠藤
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 JP20392497A priority Critical patent/JPH1139017A/ja
Publication of JPH1139017A publication Critical patent/JPH1139017A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Numerical Control (AREA)

Abstract

(57)【要約】 【課題】 数値制御装置で実行する加工プログラムによ
る加工時間を短縮する。 【解決手段】 加工プログラムの各ブロックN1〜N1
1で指令された移動指令に対して、必要な区間にオーバ
ラップ指令を与える。オーバラップ指令を与えた以降の
ブロックの移動指令における残移動量が少なくなると、
設定されたタイミングによって現在のブロックの移動指
令の分配を実行しながら次の移動指令の分配を実行す
る。図3では、ブロックN6の残移動量が少なくなると
ブロックN7の移動指令の分配が開始される。同様に、
ブロックN7、N10の移動指令の残移動量が少なくな
ると、ブロックN8、N11の移動指令の分配が開始さ
れる。その結果、破線で示したような工具移動軌跡とな
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、数値制御装置、及
び数値制御装置による加工プログラムの実行方法に関す
る。
【0002】
【従来の技術】数値制御装置による加工プログラムの実
行では、現在実行中のブロックの移動指令の分配が終了
した後、次のブロックの移動指令の分配を開始するよう
にしている。さらに、現在実行中のブロックの移動指令
の分配が完了し、加減速処理によって減速され指令され
た目標位置の許容範囲内(インポジション幅内)に到達
した後、初めて次の移動指令の分配を開始するようにし
た加工プログラムで指令された工具通路を忠実に実行す
る場合と、現在実行中のブロックの移動指令の分配が完
了し、加減速処理がなされ減速中に次のブロックの移動
指令の分配を開始する方法がある。後者の方法では、2
つのブロックの移動指令がオーバラップして出力される
ことになるから、加工プログラム通りの工具通路は得ら
れないが、前のブロックの移動指令による工具移動が減
速されている間に次のブロックの移動指令による工具移
動が加速されることになり加工時間を短くすることがで
きる。
【0003】
【発明が解決しようとする課題】従来の加工プログラム
の実行方法では、連続する2つのブロックでそれぞれ指
令された移動指令による工具移動がオーバラップして行
われるのは、先のブロックの移動指令の分配を完了し、
減速中に次のブロックの移動指令の分配を行うものであ
り、加工時間の短縮は、最大で加減速時定数に対応する
時間程度である。
【0004】そこで、本発明の目的は、従来技術よりも
さらに加工プログラムの実行時間(加工時間)を短縮可
能にした数値制御装置及び該数値制御装置で実行される
加工プログラム実行方法を提供することにある。
【0005】
【課題を解決するための手段】早送りや切削送りにおい
て、加工形状、加工内容によっては、連続する移動指令
のブロックにおいて、先のブロックの移動指令の分配途
中から次のブロックの移動指令の分配を開始しても問題
のない場合がある。そこで、本発明の数値制御装置もし
くは該数値制御装置による加工プログラム実行方法は、
オーバラップ指令を設け、該オーバラップ指令が指令さ
れると、加工プログラムで指令された1つのブロックの
移動指令の移動指令分配中に、指定された次ブロックの
開始タイミングにて次のブロックの移動指令の分配を開
始するようにした。上記次ブロック開始タイミングは、
現ブロックの移動指令の残移動量が設定された量以下に
なったとき、移動指令の分配完了になるまでの時間が設
定時間以下になったとき、外部からの信号が入力された
とき、さらには、現ブロックの移動指令による分配移動
量が設定値以上になったとき、いずれでもよく。また加
工形状、加工内容によってこれらのうち最適なものを選
択できるようにする。
【0006】
【発明の実施の形態】以下、図面を参照して本発明の実
施形態を説明する。図1は本発明を適用した一実施形態
の数値制御装置10と該数値制御装置10によって駆動
制御される工作機械、例えば、フライス盤等の要部を示
すブロック図である。
【0007】プロセッサ11は数値制御装置10を全体
的に制御するプロセッサであり、バス21を介してRO
M12に格納されたシステムプログラムを読み出し、こ
のシステムプログラムに従って、数値制御装置10を全
体的に制御する。RAM13には一時的な計算データ、
表示データ等が格納される。CMOSメモリ14は図示
しないバッテリでバックアップされ、数値制御装置10
の電源がオフにされても記憶状態が保持される不揮発性
メモリとして構成され、加工プログラムを記憶する。
【0008】インターフェイス15は外部機器用のイン
ターフェイスであり、紙テープリーダ,紙テープパンチ
ャー等の外部機器72が接続される。紙テープリーダか
らは加工プログラムが読み込まれCMOSメモリ14に
記憶される。また、数値制御装置10内で編集されCM
OSメモリ14に記憶された加工プログラムを紙テープ
パンチャーに出力することもできる。
【0009】PMC(プログラマブル・マシン・コント
ローラ)16は数値制御装置10に内蔵されたシーケン
スプログラムで工作機械を制御する。即ち、加工プログ
ラムで指令された機能に従って、これらシーケンスプロ
グラムで工作機械側で必要な信号に変換し、I/Oユニ
ット17から工作機械側に出力する。この出力信号によ
り工作機械側の各種アクチュエータが作動する。また、
工作機械側のリミットスイッチおよび機械操作盤の各種
スイッチ等の信号を受けて、必要な処理をして、プロセ
ッサ11に渡す。
【0010】各軸の現在位置、アラーム、パラメータ、
画像データ等の画像信号はCRT/MDIユニット70
の表示装置に送られ、表示装置に表示される。インター
フェイス18はCRT/MDIユニット70内のキーボ
ードからのデータを受けてプロセッサ11に渡す。イン
ターフェイス19は手動パルス発生器71に接続され、
手動パルス発生器71からのパルスを受ける。手動パル
ス発生器71は工作機械側の機械操作盤に実装され、手
動で機械可動部を精密に位置決めするために使用され
る。
【0011】軸制御回路30〜32はプロセッサ11か
らの各軸の移動指令を受けて、各軸の指令をサーボアン
プ40〜42に出力する。サーボアンプ40〜42はこ
の指令を受けて各軸のサーボモータ50〜52を駆動す
る。X,Y,Z軸のサーボモータ50〜52には位置速
度検出用のパルスコーダが内蔵されており、このパルス
コーダからのフィードバック信号が軸制御回路30〜3
2にフィードバックされる。軸制御回路30〜32に内
蔵されたサーボ制御CPUの各々はこれらのフィードバ
ック信号と前述の移動指令とに基いて位置ループ、速度
ループ、電流ループの各処理を行い、最終的な駆動制御
のためのトルク指令を各軸毎に求めて各軸のサーボモー
タ50〜52の位置、速度を制御する。
【0012】スピンドル制御回路60はスピンドル回転
指令およびスピンドルのオリエンテーション等の指令を
受けて、スピンドルアンプ61にスピンドル速度信号を
出力する。スピンドルアンプ61はこのスピンドル速度
信号を受けて、スピンドルモータ62を指令された回転
速度で回転させる。また、オリエンテーション指令によ
って、所定の位置にスピンドルモータ62の回転位置を
位置決めする。
【0013】図6はパルス分配処理に必要とされる前処
理の要部を示すフローチャート、また、図7および図8
はパルス分配処理の要部を示すフローチャートであり、
前処理およびパルス分配処理の各々はプロセッサ11に
よるマルチタスク処理によって各々独立して所定周期毎
に繰り返し実行されるようになっている。
【0014】以下、図2に示されるような加工プログラ
ムに沿って図3に示すような加工を行う場合を例にとっ
て、図6乃至図8のフローチャートを参照しながら本実
施形態における処理動作を説明する。
【0015】まず、プロセッサ11は図6に示される前
処理を実行し、前処理完了フラグF0に1がセットされ
ているか否かを判別する(ステップa1)。最初の段階
では前処理完了フラグF0は0に初期化されているの
で、プロセッサ11は、ブロック指定カウンタnの初期
値1に従ってCMOSメモリ14に記憶された加工プロ
グラムから第1番目のブロック“N01”を読み込み
(ステップa2)、第1番目のブロック“N01”の前
処理を実行し移動指令であれば従来と同様に移動の前処
理データNbを求めてレジスタに格納し、移動指令以外
の前処理であれば、その前処理を実行する。図6では、
本発明と関係するオーバラップ指令、及び解除指令が読
み出されたときの処理を記載している。すなわち、オー
バラップ解除指令が読まれたとき(ステップa4)、オ
ーバラップモードを記憶するフラグF1を「0」にセッ
トし(ステップa5)、オーバラップ指令が読まれたと
きには(ステップa6)、上記フラグF1を「1」にセ
ットし(ステップa7)、読み取ったブロックでの指令
に従って、時間指定フラグFt,距離指定フラッグF
l,外部信号指定フラグFsのいずれか、または、指定
が複数ある場合にはその各々に1をセットする(ステッ
プa8)。
【0016】時間指定フラグFtは移動指令ブロックの
完了に必要とされる残り時間の値を指定してオーバーラ
ップ処理を開始させるためのフラグ、距離指定フラグF
lは移動指令ブロックの完了に必要とされる残り距離の
値を指定してオーバーラップ処理を開始させるためのフ
ラグ、外部信号指定フラグFsは移動指令ブロックの実
行中に入力される外部信号に基いてオーバーラップ処理
を開始させるためのフラグある。残り時間や残り距離の
指定はオーバーラップ開始指令に続いて加工プログラム
中で指定される。そして、最後に前処理完了フラグF0
に1をセットし(ステップa9)、この周期の前処理を
終了する。
【0017】移動指令の分配周期毎にプロセッサ11が
行う処理は図7、図8の処理で、まず、プロセッサ11
は、現ブロック用の分配データを記憶するレジスタOU
TNa、レジスタOUTNa2の内容を共に0に初期化
し(ステップb1)、通常の移動指令の分配処理中のと
き「1」にセットされるフラグF2が1にセットされて
いるか否か(ステップb2)、オーバラップモードで次
のデータ(Na)の分配中記憶フラグF10に1がセッ
トされているか否か(ステップb3)、オーバラップモ
ードでレジスタNaに次のデータ格納済みフラグF11
に1がセットされているか否か(ステップb4)、オー
バラップモード記憶フラグF1に1がセットされている
か否か(ステップb5)を判別する。この段階ではいず
れのフラグも初期値0を保持しているので、全ての判別
結果は偽となり、次いで、プロセッサ11は、前処理完
了フラグフラグF0に1がセットされているか否かを判
別する(ステップb6)。
【0018】この段階では、既に述べた図6の前処理に
よって加工プログラムの第1番目のブロック“N01”
の実行に必要とされる前処理データNbが求められ、前
処理完了フラグF0に1がセットされているので、ステ
ップb6の判別結果は真となる。
【0019】そこで、プロセッサ11は次のブロック
(要するに第2番目のブロック)に対する前処理を行わ
せるためのブロック指定カウンタnの値を1インクリメ
ントすると共に、前処理完了フラグF0を0に初期化し
て次のブロックの前処理の開始を許容し、フラグF2に
1をセットして第1番目のブロック“N01”に関する
実質的な移動指令の分配処理の開始を記憶し、図6の前
処理によって求められた第1番目のブロック“N01”
の前処理データNbをレジスタNaに記憶する(ステッ
プb7)。
【0020】次いで、プロセッサ11は、レジスタNa
に記憶された第1番目のブロック“N01”の前処理デ
ータに基いて分配周期毎に出力すべき移動指令の値、つ
まり、分配移動指令量を求めて分配データを記憶するレ
ジスタOUTNaに保存し(ステップb8)、レジスタ
Naに記憶された第1番目のブロック“N01”に対す
る移動指令の分配が完了しているか否かを判別する(ス
テップb9)。
【0021】この段階では移動指令の分配は完了してい
ないので、次いで、プロセッサ11はオーバラップモー
ドで次のデータ(Na2)分配中記憶フラグF5が1に
セットされているか否か(ステップb24)、オーバラ
ップモードでレジスタNa2に次のデータ格納済みフラ
グF3に1がセットされているか否か(ステップb2
5)、フラグF1に1がセットされているか否か(ステ
ップb26)を判別する。この段階ではいずれのフラグ
も初期値0を保持しているので、全ての判別結果は偽と
なり、プロセッサ11は、現ブロック用の分配データを
記憶するレジスタOUTNaに保存された分配移動指令
量とレジスタOUTNa2に保存された分配移動指令量
とを加算して当該分配周期で出力すべき総分配移動指令
量を求め、軸制御回路に出力して当該周期の移動指令の
分配処理を終了する(ステップb39)。
【0022】無論、この段階ではレジスタOUTNa2
の値はステップb1で初期化されたままの状態、要する
に、0の状態に保持されているので、実際に出力される
のは第1番目のブロック“N01”の実行に必要とされ
る分配パルスのみである。
【0023】プロセッサ11は、次の移動指令の分配周
期においても前記と同様にしてレジスタOUTNaおよ
びレジスタOUTNa2の初期化に関するステップb1
の処理を繰り返し実行し、フラグF2に1がセットされ
ているか否かを判別する(ステップb2)。
【0024】この場合、前周期の移動指令の分配処理に
おけるステップb7の処理によってフラグF2に1がセ
ットされているので、プロセッサ11はステップb3〜
ステップb7の処理をスキップし、レジスタNaに記憶
された第1番目のブロック“N01”の前処理データに
基いて所定周期毎に出力すべき移動指令の値を求めてレ
ジスタOUTNaに保存し(ステップb8)、レジスタ
Naに記憶された第1番目のブロック“N01”に対す
る移動指令の分配が完了しているか否かを判別する(ス
テップb9)。
【0025】この段階では移動指令の分配は完了してい
ないので、次いで、プロセッサ11はフラグF5に1が
セットされているか否か(ステップb24)、フラグF
3に1がセットされているか否か(ステップb25)、
フラグF1に1がセットされているか否か(ステップb
26)を判別するが、この段階ではいずれのフラグも初
期値0を保持しているので、全ての判別結果は偽とな
り、プロセッサ11は、現ブロック用の分配データを記
憶するレジスタOUTNaに保存された分配移動指令量
とレジスタOUTNa2に保存された分配移動指令量と
を加算して当該分配周期で出力すべき総分配移動指令量
を求め、軸制御回路に出力して当該周期の移動指令の分
配処理を終了する(ステップb39)。前記と同様、レ
ジスタOUTNa2の値は0であるから、実際に出力さ
れるのは第1番目のブロック“N01”の実行に必要と
される分配移動指令量のみである。
【0026】以下、ステップb9の判別結果が真となっ
てレジスタNaに記憶された第1番目のブロック“N0
1”の前処理データに対する移動指令の分配が完了する
までの間、プロセッサ11は、移動指令の分配周期毎に
前記と同様にしてステップb1,ステップb2,ステッ
プb8,ステップb9,ステップb24〜ステップb2
6,ステップb39の処理を繰り返し実行し、移動指令
の分配周期毎に第1番目のブロック“N01”の実行に
必要とされる分配移動指令量を軸制御回路に出力し、図
3にN1で示すような軌跡に沿って工具を移動させて行
く。
【0027】そして、最終的に、レジスタNaに記憶さ
れた第1番目のブロック“N01”の前処理データに対
する移動指令の分配が完了してステップb9の判別結果
が真となると、プロセッサ11は、フラグF2とフラグ
F10およびフラグF11の各々に0をセットし(ステ
ップb10)、前述したステップb24〜ステップb2
6,ステップb39の処理を実行して、この周期の移動
指令の分配処理を終了する。
【0028】プロセッサ11は、次の移動指令の分配周
期でレジスタOUTNaおよびレジスタOUTNa2の
初期化に関するステップb1の処理を行った後、フラグ
F2に1がセットされているか否かを判別するが(ステ
ップb2)、この場合、前周期の移動指令の分配処理に
おけるステップb10の処理によってフラグF2がリセ
ットされているので、ステップb2の判別結果は偽とな
る。
【0029】次いで、プロセッサ11は、フラグF10
に1がセットされているか否か(ステップb3)、フラ
グF11に1がセットされているか否か(ステップb
4)、フラグF1に1がセットされているか否か(ステ
ップb5)を判別するが、この段階ではいずれのフラグ
も初期値0を保持しているので、全ての判別結果は偽と
なり、次に、前処理完了フラグフラグF0に1がセット
されているか否かを判別する(ステップb6)。
【0030】前述のようにして第1番目のブロック“N
01”の実行に必要とされる分配パルスを軸制御回路に
出力する移動指令の分配処理を行っている間に、図6に
示す前処理が再び実行され、最初の移動指令の分配処理
におけるステップb7の処理で更新されたブロック指定
カウンタnの現在値2に基いて、加工プログラムから第
2番目のブロック“N02”が読み込まれ(ステップa
2)、第2番目のブロック“N02”の実行に必要とさ
れる前処理データNbが求められて(ステップa3)、
前処理完了フラグF0に1がセットされているので(ス
テップa9)、この移動指令の分配周期におけるステッ
プb6の判別結果は真となる。
【0031】そこで、プロセッサ11は次のブロック
(要するに第3番目のブロック)に対する前処理を行わ
せるためにブロック指定カウンタnの値を1インクリメ
ントすると共に、前処理完了フラグF0を0に初期化し
て次の前処理の開始を許容し、フラグF2に1をセット
して第2番目のブロック“N02”に関する実質的な移
動指令の分配の開始を記憶して、図6の前処理によって
既に求められている第2番目のブロック“N02”の前
処理データNbをレジスタNaに記憶する(ステップb
7)。
【0032】次いで、プロセッサ11は、レジスタNa
に記憶された第2番目のブロック“N02”の前処理デ
ータに基いて所定周期毎に出力すべき移動指令の値、つ
まり、分配移動指令量を求めて現ブロック用の分配デー
タを記憶するレジスタOUTNaに保存し(ステップb
8)、以下、第1番目のブロック“N01”の前処理デ
ータに基いて所定周期毎の移動指令の分配処理を行った
ときと全く同様にして、所定周期毎の移動指令の分配処
理でステップb1,ステップb2,ステップb8,ステ
ップb9,ステップb24〜ステップb26,ステップ
b39の処理を繰り返し実行し、第2番目のブロック
“N02”の実行に必要とされる分配パルスを所定周期
毎に軸制御回路に出力して、図3にN2で示すような軌
跡に沿って工具を移動させて行く。
【0033】また、このようにしてブロック“N02”
に対する移動指令の分配処理が行われる間に、図6に示
すような前処理がブロック指定カウンタnの現在値3に
従って再び実行され、この前処理で読み込まれた第3番
目のブロック“N03”がオーバーラップ開始指令であ
ることがステップa6の判別処理で検出される。そこ
で、前処理を実行するプロセッサ11は、オーバーラッ
プモード記憶フラグF1に1をセットし(ステップa
7)、“N03”で指定されたブロックに従って、時間
指定フラグFt,距離指定フラッグFL ,外部信号指定
フラグFsのいずれか、または、指定が複数ある場合に
はその各々に1をセットした後(ステップa8)、前処
理完了フラグF0に1をセットする(ステップa9)。
【0034】なお、図2および図3に示した例では連続
的な穴アケ加工を行うので、移動指令ブロックの完了に
必要とされる残り距離の値を指定してオーバーラップ処
理を開始させることになる。つまり、セットされるフラ
グはFL である。
【0035】第2番目のブロック“N02”に対する移
動指令の分配の実行途中、具体的には、その初期段階で
前処理完了フラグF0およびオーバラップモード記憶フ
ラグF1に1がセットされるが、“N02”のブロック
に対する移動指令の分配が行われている間はフラグF2
に1が保持されているので、この間移動指令の分配周期
におけるステップb3〜ステップb7の処理はスキップ
され、結果的に、フラグF1に1がセットされたことが
検出されるのは移動指令の分配処理におけるステップb
26の判別処理となる。
【0036】当然、前処理でブロック“N03”のデー
タが読み込まれた段階でフラグF1がセットされるので
ステップb26における判別結果は真となり、また、こ
の前処理においてフラグF0に1がセットされる結果、
ステップb27における判別結果も真となる。そこで、
プロセッサ11は次のブロック、すなわちカウンタn
(=3)で指定される第3番目のブロック“N03”に
移動指令があるか否かを判別する。ブロック“N03”
は、移動指令ではないので、レジスタNbの値は「0」
であり移動指令が無いことを示す(ステップb28)。
【0037】図2に示される通り“N03”のブロック
は移動指令で無いから、ステップb28の判別結果は偽
となり、次いで、プロセッサ11はフラグF11,F2
の状態が共に0に保持されているか否かを判別する(ス
テップb40)。この段階ではフラグF2はステップb
7で「1」にセットされているので、ステップb40の
判別結果は偽となり、ステップb39に進み、前述同様
にレジスタOUTNaに保存された分配パルス(第2番
目のブロックのデータ)を出力する(OUTNa2=
0)。
【0038】以下、ステップb1、b2、b8、b9、
b24〜b28、b40、b39の処理を繰り返し実行
し、その途中のステップb9で、レジスタNaに記憶さ
れた第2番目のブロック“N02”の前処理データに対
する移動指令の分配が完了してステップb9の判別結果
が真となると、プロセッサ11は、フラグF2とフラグ
F10およびフラグF11の各々に0をセットし(ステ
ップb10)、前述した(ステップb24〜b28,b
40の処理を実行することになるが、ステップS40に
おいて、フラグF2、F11が共に「0」にセットされ
ているから、ステップb41へ移行し、ブロック指定カ
ウンタnの値を1インクリメントし「4」とすると共
に、前処理完了フラグF0を0に初期化して次のブロッ
クの前処理の開始を許容し、レジスタNa2に次のデー
タ格納済みを記憶するフラグF3に1をセットして図6
の前処理によって求められた第3番目のブロック“N0
3”の前処理データNbをレジスタNa2に記憶する
が、第3番目のブロック“N03”はオーバラップ指令
で移動指令が無いからレジスタNaに記憶される移動量
は「0」である。次に、次の移動データを格納するレジ
スタを選択するフラグF6(該フラグが「0」でレジス
タNa2、「1」でレジスタNaを選択する)が「0」
か判断し(ステップb42)、最初は「0」であるか
ら、ステップb43に移行して該フラグF6を「1」に
セットし、次のデータ(Na2)分配中フラグF5を
「1」にセットし(ステップb35)、レジスタNa2
に記憶する移動指令量から所定周期毎に出力すべき移動
指令の値を求めてレジスタOUTNa2にセットするが
(ステップb36)、レジスタNa2の値は「0」であ
るから、分配が完了したものとなり、ステップb37か
らステップb38に移行してフラグF3,F5を「0」
にセットした後ステップb39に移行してレジスタOU
TNa、OUTNa2にセットされた分配移動指令量を
出力するが、レジスタOUTNaの値はすでに分配が完
了して「0」であり、レジスタNa2の値も「0」であ
るから、移動指令の出力はない。
【0039】プロセッサ11は、次の移動指令の分配周
期でレジスタOUTNaおよびレジスタOUTNa2の
初期化に関するステップb1の処理を行った後、フラグ
F2,F10,F11,F1が「1」にセットされてい
るか否かを判別するが(ステップb2〜b5)、オーバ
ラップモード記憶フラグF1のみが「1」にセットされ
ているから、ステップb5からステップb11に移行
し、前処理が終了せず、前処理完了フラグF0が「0」
であれば、フラグF5=0、F3=0、F1=1、F0
=0であるからステップb24〜b27、の処理を経て
ステップb39に移行し移動指令(この場合「0」)を
出力する。
【0040】前述したステップb41の処理でフラグF
0が「0」にセットされることによって前処理が許容さ
れ、カウンタn(=4)で示される4番目のブロックの
前処理が終了し前処理データNbがレジスタに格納され
てフラグF0が「1」にセットされると、前述したステ
ップb1〜b5の処理をし、ステップb11でフラグF
0が「1」であることが検出されステップb12に移行
する。ステップb12では、カウンタnで示される次の
ブロックの第4番目のブロックに移動指令があるか判断
する。すなわち前処理による移動指令のデータNbが
「0」が否かで移動指令があるかを判断する。第4番目
のブロックは移動指令のブロックであるから、ステップ
b13に移行し移動データ格納レジスタ選択フラグF6
が「1」か否か判断する。このフラグF6は、ステップ
b43で「1」にセットされているから、該フラグF6
を「0」にセットした後(ステップb14)、次のブロ
ック(要するに第5番目のブロック)に対する前処理を
行わせるためにブロック指定カウンタnの値を1インク
リメント(n=5)すると共に、前処理完了フラグフラ
グF0を0に初期化して次の前処理の開始を許容し、レ
ジスタNaにデータ格納済みフラグF11に1をセット
して、図6の前処理によってレジスタNbに保持されて
いる第4番目のブロック“N04”の前処理データNb
をレジスタNaに記憶して(ステップb15)、オーバ
ーラップモードを開始するか否かを決めるための判定処
理(ステップb16)を実行する。
【0041】この判定処理の詳細を図9に示す。プロセ
ッサ11は、まず、現時点で前処理に読み込まれている
ブロックに移動指令があるか否かを判別するが(ステッ
プc1)、現在実行中のブロックが移動指令のブロック
でなければ、ステップc13に移行して、現ブロックの
処理が終了したか判断し、終了していれば、次ブロック
分配開始指令フラグF4を「1」にセットし、終了して
いなければ、フラグF4を「1」にセットすることなく
メインルーチンに戻る。又、現ブロックが移動指令のブ
ロックであれば、前処理によって立てられたオーバラッ
プ処理を残時間で行うフラグFt、残り移動距離で行う
フラグFL 、外部信号で行うフラグFsが「1」か否か
判断する(ステップc2、c6、c10)。
【0042】フラグFtが「1」で残り時間でオーバラ
ップ処理を行う場合には、現在移動量より目標位置まで
の残り移動量を求め該残り移動量を指令速度で除して残
り時間Tを求めこの残り時間Tが設定された時間より小
さいか判断し、小さければオーバラップ処理を開始する
ための(次のブロックの移動指令を出力することを許容
するための)フラグF4を「1」にセットする。又、残
り時間Tが設定時間以上であればフラグF4を「1」に
セットすることなくステップb6に進む(ステップc2
〜c5)。
【0043】フラグFL が「1」であるときには、残移
動量が設定距離より小さいか判断し、小さければフラグ
F4を「1」にセットし、以上であればフラグF4を
「1」にセットすることなくステップb10に進む(ス
テップc6〜c9)。
【0044】フラグFsがセットされているときには、
外部信号があるか判断し、あれば、フラグF4を「1」
にセットし、なければセットすることなく(ステップc
16に進む(ステップc10〜c12)。
【0045】現在のブロックは第3番目のブロック“N
03”(図2参照)であるから(次のブロックのデータ
としてレジスタNaに第4番目のブロックのデータを格
納しただけであり、現在実行中のブロックは第3番目の
ブロックである)、移動指令ではなく、オーバラップ指
令であるから、ステップc1から(ステップc13に移
行し、かつオーバラップ指令はのフラグFt、FL 、F
sを[1」にセットするのみの前処理であるから、この
処理を終了しているからステップc14でフラグF4は
「1」にセットされている。
【0046】メインルーンに戻って、プロセッサ11は
ステップb17でフラグF4に1がセットされているか
否かを判別するが、当然、判別結果は真となり、フラグ
F4を「0」にセットし、次のデータ(Na)分配中記
憶フラグF10を「1」にセットし(ステップb18、
b19)、レジスタNaに記憶された第4番目のブロッ
クのデータより分配周期毎の移動指令量をレジスタOU
TNa格納し(ステップb8)、該レジスタNaに記憶
する移動量の分配が終わっていてないので、ステップb
9から、ステップb24に進み、フラグF5=0、フラ
グF3=0、フラグF1=1、フラグF0=0であるか
らステップb24〜b27を経てステップb39に移行
し、出力レジスタOUTNaに格納された第4番目のブ
ロックの分配移動指令を出力する(OUTNa2=0) 次の移動指令の分配周期から、フラグF10がステップ
b19で「1」にセットされているから、ステップb1
〜b3、b8、b9、b24〜b27、b39の処理を
繰りかえ実行し第4番目のブロックの分配移動指令量を
出力する。
【0047】一方、ステップb15でフラグF0が
「0」にセットされることにより前処理が開始され、ブ
ロック指定カウンタnで指定された第5番目のブロック
の前処理が終了し、第5番目のブロックの前処理データ
Nb(この場合図2示す例ではドウエル指令であるから
移動指令としてのデータは「0」である)が求められ、
フラグF0が「1」にセットされると、次の分配周期の
処理では、ステップb1〜b3、b8、b9、b24〜
b27に進み、ステップb27でフラグF0が「1」で
あることが検出されるからステップb28に進み、カウ
ンタnで指定されている次のブロック(第5番目のブロ
ック)が移動指令か判断する。すなわち前処理データN
bが移動指令「0」か判断し、この場合ドウエル指令で
移動指令ではなく前処理の移動指令データは「0」であ
るから、ステップb40に進む。ステップb40では、
フラグF2、F11が共に「0」か判断するが、フラグ
F2は「0」であるが、フラグF11は「1」であるこ
とからステップb39に移行し、レジスタOUTNaに
格納された第4番目のブロックの分配指令量を出力す
る。
【0048】そして、ステップb9で、レジスタNaに
記憶した第4番目のブロックの指令量の分配が終了する
と、ステップb10に移行してフラグF2、F10、F
11を「0」にセットし、ステップb24〜b28、b
40の処理を行うが、ステップb40で、フラグF2、
F11が共に「0」にセットされていることが検出され
るから、ステップb41に進みブロック指定カウンタn
の値を1インクリメント(n=6)すると共に、前処理
完了フラグF0を0に初期化して次の前処理の開始を許
容し、レジスタNa2に次のデータ格納済みフラグF3
に1をセットして、図6の前処理によってレジスタNb
に保持されている第5番目のブロック“N05”の前処
理データNbをレジスタNa2に記憶する(ステップb
41)。
【0049】この場合第5番目のブロックはドウエル指
令であるから、レジスタNaに記憶される移動指令は
「0」である。ステップb41からステップb42に進
みフラグF6が「0」か判断するが、この場合ステップ
b14で「0」にセットされているから、真となりステ
ップb43に進み該フラグF6を「1」にセットし、次
のデータ(Na2)分配中記憶フラグF5を「1」にセ
ットし(ステップb35)、レジスタNa2に記憶する
第5番目のブロックの移動指令による分配移動指令量を
OUTNa2に格納するが(ステップb36)、レジス
タNa2の値が「0」であることから、この分配は直ち
に完了となり、フラグF3、F5を「0」にセットし
(ステップb37、b38)、ステップb39に移行す
る。(ステップb39では、第4番目のブロックの移動
指令の分配完了で、レジスタOUTNaに記憶する移動
指令量は「0」で、レジスタNa2に記憶する指令量も
「0」であるから、移動指令の出力は無い。
【0050】以下、プロセッサ11は、フラグF2=
0、F10=0、F11=0、F1=1、F0=0、F
5=0、F3=0であるから分配周期毎に、ステップb
1〜b5、b11,b24,b25,b26,b27,
ステップb39の処理を繰り返し実行し、その間第5番
目のブロックのドウエル動作が実行される。
【0051】一方、フラグF0がステップb41で
「0」にセットされることからブロック指定カウンタn
(=6)で示す第6番目のブロックの前処理が可能とな
ることによって、上記処理の間にこの前処理が終了し、
第6番目のブロックの前処理データNbが得られフラグ
F0が「1」にセットされると、ステップb1〜b5、
b11の処理を行いステップb11で、フラグF0が
「1」であることが検出されるから、ステップb12に
移行し、ブロック指定カウンタn(=6)で示される次
のブロックが移動指令か判断し、この場合第6番目のブ
ロックは移動指令で前処理データNbがあることから、
フラグF6が「1」判断するが(ステップb13)、該
フラグF6はステップb43の処理で「1」にセットさ
れているから、該フラグF6を「0」にセットし(ステ
ップb14)、ブロック指定カウンタnの値を1インク
リメント(n=7)すると共に、前処理完了フラグF0
を0に初期化して次の前処理の開始を許容し、レジスタ
Naに次のデータ格納済みフラグF11に1をセットし
て、図6の前処理によってレジスタNbに保持されてい
る第6番目のブロック“N06”の前処理データNbを
レジスタNaに記憶する(ステップb15)。この場合
第6番目のブロックは引き抜き指令であるから、レジス
タNaに移動指令が格納されることになる。
【0052】次に、オーバラップ開始判断処理を実行す
るが(ステップb16)、現在の処理動作は、第5番目
のブロックの処理でドウエル作業であるから、このドウ
エル動作が終了しなければフラグF4は「1」にセット
されない(ステップc1,c13,c14)。そのた
め、ステップb16からステップb17に移行して、フ
ラグF4は「0」と判断され、ステップb24、〜b2
7、b39の処理を実行する。
【0053】次からの分配周期の処理はステップb1〜
b4、フラグF11が「1」にセットされているから、
ステップb16、b17、b24〜b27、b39の処
理を実行する。
【0054】そして、ドウエル動作が終了し、ステップ
b16のオーバラップ判別処理によって次ブロック分配
開始指令フラグF4が「1」にセットされると、ステッ
プb16、b17からステップb18に進みフラグF4
を「0」にセットしフラグF10を「1」にセット(ス
テップb19)、ステップb8に移行してレジスタNa
に記憶する第6番目のブロックの移動指令のデータから
分配周期毎の移動指令を求めレジスタOUTNaに格納
し、該レジスタNaに記憶する移動指令の分配を完了し
たか判断し(ステップb9)、最初は完了していないの
でステップb24〜b27、b39の処理を行う。ステ
ップb39では、レジスタOUTNaに第6番目のブロ
ックの移動指令に対する分配移動指令量が格納されてい
るから、第6番目のブロックでの指令による移動が行わ
れる。
【0055】次の分配周期からは、ステップb1〜b
3、フラグF10が「1」にセットされているから、ス
テップb8、b9、b24〜b27、b39の処理を行
い第6番目のブロックでの指令が分配出力される。
【0056】一方、フラグF0が「0」にセットされ前
処理が可能になってブロック指定カウンタn(=7)で
示される第7番目のブロック(この指令は移動指令)の
前処理データNb(=第7番目のブロックのデータ)が
得られ前処理が終了しフラグF0が「1」にセットされ
ると、ステップb1〜b3、b8、b9、b24〜b2
7、ステップb28と移行し、次のブロック(n=7)
が移動指令のブロックであるから、データ格納レジスタ
選択フラグF6が「0」か判断し(ステップb29)、
このフラグF6はステップb14で「0」にセットされ
ているからステップb30で該フラグF6を「1」にセ
ットしてステップb31に移行する。ステップb31で
は、ブロック指定カウンタnの値を1インクリメント
(n=8)すると共に、前処理完了フラグF0を0に初
期化して次の前処理の開始を許容し、フラグF3に1を
セットして、図6の前処理によってレジスタNbに保持
されている第7番目のブロック“N07”の前処理デー
タNbをレジスタNa2に記憶する(ステップb3
1)。
【0057】そして、オーバラップ開始判別処理を行い
フラグF4が「1」か判断し、現在処理中のブロック
(第6番目のブロック)に対してオーバラップ開始判別
処理を行う。フラグF4が「1」に設定されてなけれ
ば、ステップb39に移行しOUTNaに格納された第
6番目のブロックでの指令の分配移動指令が出力され
る。
【0058】次の分配周期からは、ステップb1〜b
3、b8、b9、b24、b25、b32、b33、b
39の処理を実行し、第6番目のブロックでの指令の分
配移動指令が出力される。
【0059】ステップb31では、ブロック指定カウン
タnの値を1インクリメント(n=8)すると共に、前
処理完了フラグF0を0に初期化して次の前処理の開始
を許容されたことから第8番目のブロックの前処理が上
記処理の間行われ、前処理が終了して第8番目のブロッ
クの前処理データNbが求められフラグF0が「1」に
セットされる。
【0060】ステップb1〜b3、b8、b9、b2
4、b25、b32、b33、b39の処理を実行し、
第6番目のブロックでの指令の分配移動指令が出力され
る内に、ステップb32のオーバラップ開始判別処理に
よってフラグF4が「1」にセットされると、ステップ
b33へ進み、該フラグF4を「0」にすると共にフラ
グF5を「1」にセットし(ステップb35)、レジス
タNa2に記憶する第7番目のブロック“N07”の前
処理データNbから分配周期毎の移動指令量を求めOU
TNa2に格納し(ステップb36)、該レジスタNa
2に記憶する移動指令をすべて分配したか判断し(ステ
ップb37)、最初は分配が完了していないので、ステ
ップb39に進む。ステップb39ではレジスタOUT
Naに記憶されたブロック“N06”の移動指令に対す
る分配移動指令量とレジスタOUTNa2に記憶された
ブロック“N07”の移動指令に対する分配移動指令量
が加算されて出力される。その結果、図3で破線で示す
ように、工具は移動することになる。
【0061】次の分配周期からは、b1〜b3、b8に
移行し、ステップb8で第6番目のブロックの分配移動
量をレジスタOUTNaに格納し、ステップb9、b2
4と処理し、次のデータ(Na2)分配中記憶フラグF
5がステップb35で「1」にセットされたから、ステ
ップb24からステップb36に移行し、レジスタOU
TNa2に第7番目のブロックの分配移動指令量を格納
し、ステップb37、B39と進んで、該ステップb3
9でレジスタOUTNa、OUTNa2に格納された第
6、第7ブロックの分配移動指令量を加算して出力する
ことになる。
【0062】上記処理を繰り返し中に、ステップb9
で、第6ブロックで指令された指令量が分配完了になっ
たことが検出されると、フラグF2、F10、F11を
「0」にセットし、ステップb24、b36、b37、
b39の処理を実行する。(ステップb39では、レジ
スタOUTNaに格納された移動指令量がないから、レ
ジスタOUTNa2に格納された第7番目のブロックの
分配移動指令量のみが出力されることになる。
【0063】次の分配周期からは、ステップb1〜b
5、b11、b12に進み、カウンタn(=8)で指定
される次の第8番目のブロックが移動指令か判断する。
図2で示す動作の場合移動指令であるから、ステップb
13に進み、データ格納レジスタ選択フラグF6が
「1」か判断する。該フラグF6はステップb30の処
理で「1」にセットされているから、ステップb14で
該フラクF6を「0」にセットし、ブロック指定カウン
タnの値を1インクリメント(n=9)すると共に、前
処理完了フラグF0を0に初期化して次の前処理の開始
を許容し、フラグF11に1をセットして、図6の前処
理によってレジスタNbに保持されている第8番目のブ
ロック“N08”の前処理データNbをレジスタNaに
記憶する(ステップb15)。
【0064】そして、オーバラップ開始判断処理を行い
(ステップb16)、最初はフラグF4は「1」にセッ
トされないから、ステップb17からステップb24に
移行し、ステップb24からステップb36に移行し
て、レジスタOUTNa2にレジスタNa2に記憶する
第7番目のブロックの移動指令の分配移動指令量をセッ
トし、レジスタNa2に記憶する移動量の分配が完了し
なければ(ステップb37)、ステップb39に移行し
て、レジスタOUTNa、OUTNa2に記憶する分配
移動量を出力するが、この場合レジスタOUTNaに記
憶する移動量は「0」であるから、レジスタOUTNa
2に記憶した第7番目のブロックの移動指令の分配移動
指令量のみが出力されることになる。
【0065】次の分配周期からは、フラグF11が
「1」にセットされていることから、ステップb1〜b
4、b16、b17の処理を行うがレジスタNa2に記
憶した第7番目のブロックの移動指令の分配を開始した
初期の段階では、ステップb16(図9)のオーバラッ
プ開始判別処理によってフラグF4は「1」にセットさ
れないから、ステップb17からステップb24に移行
し、フラグF5は「1」にセットされているから、ステ
ップb36に移行してレジスタNa2に記憶した第7番
目のブロックの移動指令から分配指令量を求めOUTN
a2に格納し、このレジスタNa2に記憶する移動量の
分配が完了していなければ(ステップb37)、ステッ
プb39でこのレジスタOUTNa2に記憶する分配移
動量を出力する。
【0066】そして、第7番目のブロックの移動指令量
の残りが少なくなり、ステップb16のオーバラップ開
始判別処理でフラグF4が「1」にセットされると、ス
テップb17からステップb18に移行し、フラグF4
を「0」、フラグF10を「1」にセットし(ステップ
b18、b19)、ステップb8に移行してレジスタN
aに記憶された第8番目のブロックの移動指令から分配
周期毎の移動指令量を求めレジスタOUTNaに格納
し、このレジスタNaの移動指令量の分配が完了したか
判断し(ステップb9)、最初は完了していないから、
ステップb24に移行する。そして、ステップb24か
らステップb36に移行してレジスタNa2に記憶する
第7番目のブロックの移動指令量から分配指令量を求め
OUTNa2に格納し、この分配が完了していなければ
(ステップb37)、ステップb39に移行して、レジ
スタOUTNa2、OUTNaに格納されている第7、
第8番目のブロックの分配指令量を加算して出力する。
その結果、図3に破線で示すように、第7、第8番目の
ブロックの指令による移動がオーバラップして出力され
ることになる。
【0067】次の分配周期からは、次のデータ(Na)
分配中記憶フラグF10が「1」にセットされたことか
ら、ステップb1〜b3、b8、b9、b24、b3
6、b37、b39の処理を繰り返し実行し、第7、第
8番目のブロックの指令による移動がオーバラップして
出力される。
【0068】上記処理を行っている途中において、フラ
グF0がステップb15の処理で「0」にセットされる
ことから前処理が可能となり、カウンタn(=9)で示
される第9番目のブロックの前処理が行われ前処理デー
タNbが求められ(第9番目のブロックはドウエル指令
であるから移動指令としての前処理データNbの値は
「0」である)、フラグF0が「1」にセットされてい
る。
【0069】上記、ステップb1〜b3、b8、b9、
b24、b36、b37、b39の処理を繰り返し実行
している内に第7番目のブロックの分配が終了し、ステ
ップb37で、これが検出されると、ステップb38に
移行してフラグF3、F5を共に「0」にセットしステ
ップb39に移行する。その結果、以後はOUTNaに
記憶された第8番目のブロックで指令された移動指令の
分配移動指令量だけが出力されることになる。
【0070】次の分配周期からは、フラグF3、F5が
「0」にセットされたことから、ステップb1〜b3、
b8、b9、b24、b25、b26、b27、b28
と処理され、ステップb28でカウンタn(=9)で示
される次のブロックである第9番目のブロックに移動指
令があるか判断する。前処理データは「0」でドウエル
指令であるから、ステップb28からステップb40に
移行し、フラグF11、F2が共に「0」か判断する
が、フラグF11は前述したステップb15の処理で
「1」にセットされたままであるから、この判断は偽と
なりステップb39に移行し、OUTNaに記憶する第
8番目のブロックの移動指令の分配移動指令量が出力さ
れるのみである。
【0071】以下、ステップb1〜b3、b8、b9、
b24〜b28、b40、b39の処理が分配周期毎繰
り返し実行され、第8番目のブロックの移動指令が実行
され、ステップb9で、該ブロックの移動指令の分配が
完了したことが検出されると、フラグF2、F10、F
11を「0」にセットし、b24〜b28、b40の処
理を行うが、ステップb40でフラグF2、F11が共
に「0」であることが検出されるから、ステップb41
に移行してブロック指定カウンタnの値を1インクリメ
ント(n=10)すると共に、前処理完了フラグF0を
0に初期化して次の前処理の開始を許容し、フラグF3
に1をセットして、図6の前処理によってレジスタNb
に保持されている第9番目のブロック“N09”の前処
理データNb(ドウエル指令であるからNb=0であ
る)をレジスタNa2に記憶する(ステップb41)。
そして、フラグF6が「0」か判断するが、このフラグ
F6は、第8番目の前処理データを読み込むときの1つ
前のステップb14で「0」にセットされているから、
ステップb43に移行し、該フラグF6を「1」にセッ
トし、さらにステップb35でフラグF5を「1」にセ
ットし、ステップb36に移行し、レジスタOUTNa
2にレジスタNa2に格納された第9番目のブロックの
ドウエル指令である前処理データNbの「0」を分配移
動指令とする。そのため、直ちにこの移動指令は分配完
了となり、ステップb37からステップb38に移行し
て、フラグF3、F5を「0」にセットしステップb3
9に移行する。この場合レジスタOUTNa、OUTN
a2の記憶する値は「0」であるから、移動指令の出力
はなく穴底ドウエル動作が行われるのみとなる。
【0072】次の分配周期からはステップb1〜b5、
b11、b24〜b27、b39の処理を実行しドウエ
ル動作のみが実行される。
【0073】一方、フラグF0が「0」にセットされた
結果前処理が可能となり、上記処理の途中で、カウンタ
n(=10)で示される次のブロック(第10番目のブ
ロック)の前処理が実行されて前処理データNbが求め
られ、フラグF0が「1」にセットされる。
【0074】そうすると、ステップb1〜b5、b11
が実行されてステップb11で、フラグF0が「1」に
セットされたことが検出され、ステップb12に移行し
て、カウンタn(=10)で示される次のブロック(第
10番目のブロック)が移動指令か判断し、この場合は
移動指令であるから、ステップb13に進み、フラグF
6が「1」か判断する。該フラグF6はステップb43
の処理で「1」にセットされているから、ステップb1
4に進み、該フラグF6を「0」にセットし、ブロック
指定カウンタnの値を1インクリメント(n=11)す
ると共に、前処理完了フラグF0を0に初期化して次の
前処理の開始を許容し、フラグF11に1をセットし
て、図6の前処理によってレジスタNbに保持されてい
る第10番目のブロック“N10”の前処理データNb
をレジスタNaに記憶する(ステップb15)。そし
て、ステップb16でオーバラップ開始の判断処理を実
行するが、現在実行中のドウエル動作が終了していなけ
れば、フラグF4は「1」にセットされることはないの
で、ステップb17から、ステップb24に移行し、b
24〜b27、b39の処理を行い。この場合も分配移
動指令はないからドウエル動作のみが実行される。
【0075】以下、ステップb1〜b4、b16、b1
7、b24〜b27、b39の処理が分配周期毎実行さ
れ、その途中で、ドウエル動作が終了し、フラグF4が
ステップb16のオーバラップ処理開始判断処理で
「1」にセットされ、ステップb17で検出されると、
ステップb18に移行して該フラグF4を「0」にセッ
トしフラグF10を「1」にセットして(ステップb1
9)、ステップb8に移行し、レジスタNaに格納され
ている第10番目のブロックの前処理データNbから分
配周期毎の移動指令量を求めレジスタOUTNaに格納
し、該レジスタNaに記憶する移動指令量の分配が完了
しているか判断し、この場合完了していないのでステッ
プb24に進み、ステップb24〜b27の処理を行い
ステップb39に移行し、レジスタOUTNaに格納さ
れた第10番目のブロックの移動指令の分配指令量が出
力される。
【0076】次の分配周期からは、フラグF10が
「1」にセットされているから、ステップb1〜b3、
b8、b9、b24〜b27、b39の処理が実行さ
れ、第10番目のブロックの移動指令の分配指令量が出
力される。
【0077】一方、フラグF0が「0」にセットされた
ことによりカウンタn(=11)に示されるブロックの
前処理が実行されて前処理データNbが求められフラグ
F0が「1」にセットされると、ステップb1〜b3、
b8、b9、b24〜b27と実行され、ステップb2
7でフラグF0が「1」にセットされていることを検出
し、ステップb28に進む。ステップb28ではカウン
タnで指定される次のブロックの第11番目のブロック
が移動指令か判断し、この場合移動指令であるから、ス
テップb29に進み、フラグF6が「0」か判断し、該
フラグF6はステップb14で「0」にセットされてい
るから、ステップb30に進んで該フラグF6を「1」
にセットし、ブロック指定カウンタnの値を1インクリ
メント(n=12)すると共に、前処理完了フラグF0
を0に初期化して次の前処理の開始を許容し、フラグF
3に1をセットして、図6の前処理によってレジスタN
bに保持されている第11番目のブロック“N11”の
前処理データNbをレジスタNa2に記憶する(ステッ
プb31)。そして、ステップb32のオーバラップ処
理を行い、フラグF4が「1」にセットされなければ、
ステップb33からステップb39に進んで、OUTN
aに記憶する第10番目のブロックの移動指令の分配指
令量が出力する。
【0078】次の分配周期からは、フラグF3が「1」
にセットされていることから、ステップb1〜b3、b
8、b9、b24、b25、b32、b33、b39の
処理を繰り返し実行し、第10番目のブロックの移動指
令の分配指令量が出力する。
【0079】上記処理の途中のステップb32のオーバ
ラップ開始判別処理によって第10番目のブロックの残
移動量が少なくなりフラグF4が「1」にセットされる
と、このフラグF4が「1」になったことをステップb
33で検出し、ステップb34に移行してフラグF4を
「0」にセットし、フラグF5を「1」にセットし(ス
テップb35)、レジスタNa2に記憶する第11番目
のブロックの移動指令量から分配周期毎の移動指令量を
求めレジスタOUTNa2に格納し、該移動指令の分配
が完了したか判断し(ステップb37)、最初は完了し
ていないのでステップb39に移行する。その結果、ス
テップb39ではレジスタOUTNa、OUTNa2に
格納された第10、第11番目のブロックの分配移動指
令量が加算して出力され図3に破線で示す工具軌跡とな
る。
【0080】以降の分配周期では、フラグF5が「1」
にセットされていることから、ステップb1〜b3、b
8、b9、b24、b36、b37、b39の処理が実
行され、レジスタOUTNa、OUTNa2に格納され
た第10、第11番目のブロックの分配移動指令量が加
算されて出力されることになる。
【0081】そして、ステップb9で第10番目のブロ
ックの移動指令量の分配完了したことが検出されると、
ステップb10でフラグF2、F10、F11が「0」
にセットされ、b24、b36、b37、b39の処理
が実行され、第11番目のブロックの分配移動指令量が
出力されるだけとなる。次の分配周期からは、b1〜b
5、b11、b24、b36、b37、b39の処理が
実行され、第11番目のブロックの分配移動指令量が出
力される。以下、同様な処理が繰り返し実行される。
【0082】上述した処理においては、ステップb20
〜ステップb23の処理が実行されていない。この処理
は、ステップb40〜ステップb43の処理と同様で、
ステップb40〜ステップb43の処理は1つ前のブロ
ックの移動指令をレジスタNaに格納し、レジスタOU
TNaによって移動指令の分配を行い、その分配を終了
したとき、次のブロックの指令が移動指令でない場合
に、このブロックの前処理データをレジスタNa2格納
するようにした点を、ステップb20〜ステップb23
の処理では、1つ前のブロックの移動指令をレジスタN
a2に格納し、レジスタOUTNa2によって移動指令
の分配を行い、その分配を終了したとき、フラグF3が
「0」にセットされるから、移動指令ではない次のブロ
ックの指令の前処理データをレジスタNaに格納するよ
うにしたものである。例えば、図2に示すNCプログラ
ムにおいて、第11番目のブロック“NO11”の次の
第12番目のブロックが移動指令でないときには、この
ステップb20〜ステップb23の処理が実行されるこ
とになる。
【0083】以下、同様な処理が繰り返し実行されるこ
とになるが、オーバラップ解除指令が図6に示す前処理
で読み込まれるとフラグF1が「0」にセットされる。
又ブロックの移動指令の分配が完了すると、ステップb
10、b38でフラグF2、F10、F11、F3、F
5が「0」にセットされるから、ステップb5から、ス
テップb11に以降することもなく、ステップb4から
ステップb16、ステップb24からステップb36、
ステップb25からステップb32、ステップb26か
らステップbこ27に以降することはなく、ステップb
1〜b10、b24〜b26、b39の処理のみが実行
され、オーバラップ処理が実行されることなく通常の移
動指令の分配がなされることになる。
【0084】上述した実施形態では、オーバラップ開始
指令が入力され、オーバラップ解除指令が入力されるま
での間、オーバラップ処理を行うものであったが、1ブ
ロックの移動指令に対してのみ有効なオーバラップ指令
としてもよい。
【0085】図5に示すような、ワークWに対して旋盤
加工する場合、その加工プログラムは図4に示したもの
となる。この加工プログラムにおいて、「M03 S1
000」は主軸を時計方向に1000rpm で回転させる
指令、「G00 X45.Z100.」は、工具Tを早
送りでE点に位置決めする指令、「G01 X40.F
1」はF1の速度でA点までの切削送り指令、「X2
0.Z195」は続いてB点、「Z200」はC点まで
の切削指令、「G00 X45.」はD点までの早送り
指令、「G111.1 Z100 P15000」は、
「G111.1」がワンショットのオーバラップ指令を
意味し、「P15000」は、オーバラップ距離の指定
で、前のブロックの残移動量が15mmになるとこのブ
ロックの移動指令の分配を開始しE点まで早送りするこ
とを意味し、以下切り込み量を2mmとして繰り返し切
削を行う加工プログラムの例である。この場合、図5に
示すように、C点からD点への移動中に次のブロックの
移動指令の分配が開始されることから、工具TはD点を
通過しないものとなっている。
【0086】この場合の前処理は、図6において、オー
バラップ解除指令がないことから、ステップa4、a5
の処理がないのみであり、他は図6と同一であるので省
略する。また、オーバラップ開始判断処理は図9におい
て、ステップc5、c9、c12でフラグF4が「1」
にセットされるとき、フラグFt、FL 、Fsも「0」
にセットされる点が相違するのみであるので、他は図9
と同じである。
【0087】さらに、移動指令の分配周期の処理は、図
7、図8において、ステップb15、b31の処理にさ
らにオーバラップ指令フラグF1を「0」にセットする
処理を加え、ステップb5とステップSb6の間に、フ
ラグF3が「1」か判断し(この判断処理をステップb
5´とする)、「1」であれば、ステップS24に移行
し、「0」であれば、ステップb6に移行するようにす
ればよい。
【0088】すなわち、図4、図5に示す加工におい
て、C点までの加工(「G00 X45」までの指令)
には、オーバラップ指令がないので、プロセッサ11は
ステップb1〜ステップb7の処理を行いカウンタnを
「1」インクリメントし、フラグF0を「0」、フラグ
F2を「1」、レジスタNaに前処理データNbを格納
し、ステップb8に移行してレジスタNaに記憶する移
動指令より分配周期毎の移動指令量をレジスタOUTN
aに格納し、レジスタNaに記憶する移動指令量の分配
を完了したか判断し(ステップb9)、完了していなけ
れば、ステップb24〜b26、b39の処理を実行
し、次の分配周期からは、ステップb1、b2、b8、
b9、b24〜b26、b39の処理を繰り返し実行し
レジスタNaに格納された移動指令の分配を行う。
【0089】そして、ステップb9でこの移動指令の分
配が完了したことが検出されると、フラグF2、F1
0、F11を「0」にセットし、b24〜b26、b3
9の処理を行う、そして、次の分配周期では、ステップ
Sb1〜b7の処理を行い次のブロックの前処理データ
をレジスタNaに格納し、b8、b9、b24〜〜b2
6、b39の処理、次の周期では、b1、b2、b8、
b9、b24〜b26、b39の処理を繰り返し、レジ
スタNaに記憶した次のブロックの移動指令の分配を行
う。
【0090】以下この動作を繰り返し実行し、図4、図
5の動作の場合、C点まで上記動作を繰り返して実行
し、該C点からD点への「G00 X45」を分配中に
次のブロックの「G111.1 Z100. P150
00」のブロックの前処理が終了しフラグF1が「1」
にセットされると、b1、b2、b8、b9、b24〜
b26、b39の処理を実行する途中のステップb26
で、該フラグF1が「1」にセットされていることを検
出し、ステップb27に移行し、ステップS27〜b3
1の処理を実行することになる。このステップb31で
は、カウンタnを「1」インクリメントし、フラグF0
を「0」、フラグF3を「1」、フラグF1を「0」
(図8のステップb31にこのF1=0を追加)、レジ
スタNa2に前処理データNbを格納し、ステップb3
2に移行してオーバラップ開始判別処理を実行し、フラ
グF4が「1」にセットされなければステップb39に
移行する。
【0091】次の周期からは、ステップb1、b2、b
8、b9、b24、b25、b32、b33、b39の
処理を繰り返し実行し、移動指令の分配を行っているレ
ジスタNaに記憶する移動指令の残移動量が指令された
(P15000)残移動量より少なくなると、ステップ
b32の処理でフラグF4が「1」にセットされるか
ら、ステップb33でこれを検出しステップb34に進
み、フラグF4を「0」にフラグF5を「1」にセット
しレジスタNa2に格納された次のブロックの移動指令
から分配周期毎の移動指令量求めレジスタOUTNa2
に格納し、ステップb37、ステップb39の処理を実
行する。その結果レジスタOUTNa、OUTNa2に
記憶された、連続するブロックの前と次のブロック分配
移動量が加算されて出力されオーバラップ処理が実行さ
れることになる。
【0092】次の周期からはでは、b1、b2、b8、
b9、b24、b36、b37、b39の処理が繰り返
し実行される。そして、ステップb9でレジスタNaに
記憶した(前のブロックの)移動指令の分配が完了した
ことが検出されると、フラグF2、F10、F11が
「0」にセットされ、b24、b36、b37、b39
の処理が実行される。
【0093】次の周期では、フラグF2、F10、F1
1が「0」にセットされていることから、ステップb1
〜b4の処理が行われ、次のブロックの前処理が終了し
ていないか、もしくは次のブロックの前処理が終了して
いても、オーバラップ指令ではなくフラグF1が「1」
にセットされていなければ、ステップb5からステップ
b5´に移行し、フラグF3が「1」か判断し、「1」
であれば、ステップb24、b36、b37、b39の
処理が実行される。そして、レジスタNa2に記憶する
移動指令の分配が完了すると、ステップb37,b38
の処理によってフラグF3、F5が「0」にセットされ
るから、次の周期からは、ステップb1〜b5、b5
´、b6、b6、b7の処理を行い、カウンタnを
「1」インクリメントし、フラグF0を「0」フラグF
2を「1」、レジスタNaに前処理データNbを格納
し、ステップb8、b9、b24〜b26、b39の処
理を実行する。
【0094】なお、オーバラップ指令が連続するブロッ
クにそれぞれ指令されているときには、オーバラップ指
令がされた最初のブロックの移動指令の分配は前述した
ようにレジスタNa2、OUTNa2によって行われ
る。すなわち、ステップb1、b2、b8、b9、b2
4、b36、b37、b39の処理が実行され、連続す
るブロックのオーバラップ指令が連続する1つ前のブロ
ックの移動指令はレジスタNaに記憶されレジスタOU
TNaに記憶された分配移動指令量と、最初のオーバラ
ップ指令がなされたブロックの移動指令の分配はレジス
タNa2、OUTNa2によって行われる。そして、レ
ジスタNaに記憶された移動指令の分配が終了しステッ
プb10でフラグF2、F10、F11、が「0」にセ
ットされると、次の周期では、ステップb1〜b5の処
理を実行するが、ステップb5で、次のブロックの前処
理が終了しオーバラップ指令によりフラグF1が「1」
にセットされていることが検出されると、ステップb5
よりステップb11に移行して、ステップb12〜b1
5の処理を行いカウンタnを「1」インクリメントし、
フラグF0を「0」フラグF11を「1」フラグF1を
「0」、レジスタNaに前処理データNbを格納し、ス
テップb16に移行してオーバラップ開始判別処理を実
行し、フラグF4が「1」にセットされなければステッ
プb24、b36、b37、b39の処理が実行され
る。
【0095】次の周期からは、フラグF11が「1」に
セットされていることから、ステップb1〜b4、b1
6、b17、b24、b36、b37、b39の処理が
実行され、この処理を繰り返し実行し、ステップb16
のオーバラップ開始判別処理によってフラグF4が
「1」にセットされたことをステップb17で検出する
と、フラグF4を「0」、フラグF10を「1」にセッ
トしステップb8に移行し、レジスタNaに格納された
移動指令より分配周期毎の移動指令量を求めステップb
9、b24、b36、b37、b39の処理が実行さ
れ、オーバラップ処理して工具を移動させることにな
る。
【0096】次の周期からは、フラグF10が「1」に
セットされていることから、ステップb1〜b3、b
8、b9、b24、b36、b37、b39の処理が実
行される。そして、ステップS37でレジスタNa2に
記憶する移動指令の分配が完了したことが検出される
と、フラグF3、F5を「0」にセットしステップb3
9に進む。その結果、次の分配周期からは、ステップb
1〜b3、b8、b9、b24〜b26、b39の処理
が繰り返し実行されることになる。
【0097】次のブロックにもオーバラップ指令が指令
されていると、上記処理の途中のステップb26からス
テップb27に移行し、前述したようにレジスタNa2
に次のブロックの前処理データが格納され、前述した処
理を実行することになる。また、次のブロックにオーバ
ラップ指令がなされていなければ、ステップb9で分配
が完了することを待って、次の周期で、ステップb1〜
b7の処理が実行され次のブロックの移動指令はレジス
タNaに格納され、これに基づいて前述した移動指令の
分配処理がなされることになる。
【0098】なお、上記各実施形態においては、オーバ
ラップ処理のための次のブロックの開始タイミングを、
現在実行中のブロックの指令移動量の残移動量、分配が
完了するまでの残時間、外部信号によって行うようにし
たが、図5で示した例等は、現在ブロックの出力した移
動量によって決めるようにし、分配出力移動量が設定値
になったとき、次のブロックの移動量の分配を開始する
ようにしてもよい。
【0099】
【発明の効果】加工プログラムにおける1つのブロック
の移動指令の分配途中で、次のブロックの移動指令の分
配が開始されるから、加工プログラムの実行時間が短く
なり、しかもオーバラップ指令によって必要な箇所、区
間のみにオーバラップ処理を行うことができるので、通
常の加工プログラムの実行とオーバラップ処理による加
工プログラムの実行と切り替えて行うことができる。
【図面の簡単な説明】
【図1】本発明を実施する一実施形態の数値制御装置の
ブロック図である。
【図2】本発明のオーバラップ処理を行う加工プログラ
ムの一例である。
【図3】上記加工プログラムによる工具軌跡の説明図で
ある。
【図4】本発明のオーバラップ処理を行う他の加工プロ
グラムの一例である。
【図5】上記他の加工プログラムによる工具軌跡の説明
図である。
【図6】本発明のオーバラップ処理を行う数値制御装置
における前処理のフローチャートである。
【図7】本発明のオーバラップ処理を行う一実施形態の
数値制御装置における分配周期の処理のフローチャート
である。
【図8】同分配周期における処理のフローチャートであ
る。
【図9】同分配周期における処理のオーバラップ開始判
別処理サブルーチンのフローチャートである。
【符号の説明】
10 数値制御装置 11 プロセッサ 50〜52 サーボモータ 62 主軸モータ T 工具 W ワーク F0 前処理完了フラグ F1 オーバーラップモード記憶フラグ F2 通常分配処理中記憶フラグ F3 オーバラップモードでレジスタNa2に次のデー
タ格納済みフラグ F4 次ブロック分配開始指令フラグ F5 オーバラップモードで次のデータ(Na2)分配
中記憶フラグ F6 オーバラップモードで次の移動データ格納レジス
タ選択フラグ F10 オーバラップモードで次のデータ(Na)分配
中記憶フラグ F11 オーバラップモードでレジスタNaに次のデー
タ格納済みフラグ Ft 時間指定フラグ Fl 距離指定フラグ Fs 外部信号指定フラグ n ブロック指定カウンタ Nb 前処理データ OUTNa 分配データを記憶するレジスタ OUTNa2 分配データを記憶するレジスタ

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 オーバラップ指令によって、加工プログ
    ラムで指令された1つのブロックの移動指令の分配中
    に、指定された次ブロックの開始タイミングにて次のブ
    ロックの移動指令の分配を開始することを特徴とする数
    値制御装置。
  2. 【請求項2】 上記指定された次ブロックの開始タイミ
    ングは、移動指令分配中の残りの移動指令量が設定され
    た量以下になったときである請求項1記載の数値制御装
    置。
  3. 【請求項3】 上記指定された次ブロックの開始タイミ
    ングは、移動指令の分配完了になるまでの時間が設定時
    間以下になったときである請求項1記載の数値制御装
    置。
  4. 【請求項4】 上記指令された次ブロックの開始タイミ
    ング位置は、外部からの信号が入力されたときである請
    求項1記載の数値制御装置。
  5. 【請求項5】 上記次ブロックの開始タイミングは、移
    動指令分配中の残りの移動指令量が設定された量以下に
    なったとき、移動指令の分配完了になるまでの時間が設
    定時間以下になったとき又は外部からの信号が入力され
    たときのいずれかを選択指定できる請求項1記載の数値
    制御装置。
  6. 【請求項6】 数値制御装置において、加工プログラム
    で指令された1つのブロックの移動指令の分配中に指定
    された次ブロックの開始タイミングにて次のブロックの
    移動指令の分配を開始することを特徴とする加工プログ
    ラムの実行方法。
JP20392497A 1997-07-15 1997-07-15 数値制御装置及び加工プログラムの実行方法 Withdrawn JPH1139017A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP20392497A JPH1139017A (ja) 1997-07-15 1997-07-15 数値制御装置及び加工プログラムの実行方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP20392497A JPH1139017A (ja) 1997-07-15 1997-07-15 数値制御装置及び加工プログラムの実行方法

Publications (1)

Publication Number Publication Date
JPH1139017A true JPH1139017A (ja) 1999-02-12

Family

ID=16481958

Family Applications (1)

Application Number Title Priority Date Filing Date
JP20392497A Withdrawn JPH1139017A (ja) 1997-07-15 1997-07-15 数値制御装置及び加工プログラムの実行方法

Country Status (1)

Country Link
JP (1) JPH1139017A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008046913A (ja) * 2006-08-17 2008-02-28 Okuma Corp 工作機械の数値制御装置
DE102015004930A1 (de) 2014-04-24 2015-10-29 Fanuc Corporation Numerische Steuervorrichtung für Maschinenwerkzeug
DE112021002561T5 (de) 2020-06-10 2023-03-16 Fanuc Corporation Numerische kontrollvorrichtung und numerisches kontrollverfahren zur durchführung einer bewegungskontrolle eines bearbeitungswerkzeuges durch einen festen zyklus

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008046913A (ja) * 2006-08-17 2008-02-28 Okuma Corp 工作機械の数値制御装置
DE102015004930A1 (de) 2014-04-24 2015-10-29 Fanuc Corporation Numerische Steuervorrichtung für Maschinenwerkzeug
JP2015210563A (ja) * 2014-04-24 2015-11-24 ファナック株式会社 工作機械の反転動作を高速化する数値制御装置
US9519280B2 (en) 2014-04-24 2016-12-13 Fanuc Corporation Numerical control device for machine tool
DE102015004930B4 (de) 2014-04-24 2018-06-28 Fanuc Corporation Numerische Steuervorrichtung für Maschinenwerkzeug
DE112021002561T5 (de) 2020-06-10 2023-03-16 Fanuc Corporation Numerische kontrollvorrichtung und numerisches kontrollverfahren zur durchführung einer bewegungskontrolle eines bearbeitungswerkzeuges durch einen festen zyklus

Similar Documents

Publication Publication Date Title
JP4233540B2 (ja) テーブル形式データを用いて各軸モータを駆動する数値制御装置
JP3553741B2 (ja) 数値制御装置および数値制御装置の主軸モータ加減速制御方法
KR930011720B1 (ko) 교육기능을 가지는 수치제어장치 및 가공프로그램의 교육방법
CN100461053C (zh) 数字控制器
US6401005B1 (en) Programmable synchronous and asynchronous block execution for a computer numerical control
JPH1094945A (ja) 数値制御装置における加工リミット領域指定方法および手動加工方法
EP0637786B1 (en) Method of execution of nc machining program
JP3451594B2 (ja) 数値制御装置における記憶手段アクセス制御方法および数値制御装置
JPH11143519A (ja) 数値制御における加減速制御方法および数値制御装置
JP2735209B2 (ja) 数値制御装置
JPH1139017A (ja) 数値制御装置及び加工プログラムの実行方法
US10018987B2 (en) Numerical controller executing operation by a movement command and table-format data
US5475602A (en) Acceleration constant switching apparatus
JPH11345009A (ja) 数値制御装置
JPH06222820A (ja) 数値制御装置における可動許容領域チェック方法
WO1989002110A1 (en) Cnc program execution apparatus
US6567707B1 (en) Recording medium of CNC machine tool
KR100430760B1 (ko) 복수 스핀들 구동형 권선기 제어시스템 및 이를 이용한 제어방법
CN101169638A (zh) 数字控制器
JPH05341825A (ja) Cncの加工制御方式
JPH1165635A (ja) ティーチング・プレイバック機能付数値制御装置
JPH01295306A (ja) 数値制御装置
JPH06149343A (ja) 数値制御装置
JP2642451B2 (ja) 数値制御装置
JPS6231405A (ja) 数値制御装置の軸変換符号切替方式

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20041005