JP3512559B2 - 数値制御装置 - Google Patents

数値制御装置

Info

Publication number
JP3512559B2
JP3512559B2 JP15464696A JP15464696A JP3512559B2 JP 3512559 B2 JP3512559 B2 JP 3512559B2 JP 15464696 A JP15464696 A JP 15464696A JP 15464696 A JP15464696 A JP 15464696A JP 3512559 B2 JP3512559 B2 JP 3512559B2
Authority
JP
Japan
Prior art keywords
program
sub
block
processing unit
main program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP15464696A
Other languages
English (en)
Other versions
JPH09282019A (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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP15464696A priority Critical patent/JP3512559B2/ja
Publication of JPH09282019A publication Critical patent/JPH09282019A/ja
Application granted granted Critical
Publication of JP3512559B2 publication Critical patent/JP3512559B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、数値制御装置に
関わり、特に自動旋盤などで使用される多軸多系統の数
値制御装置においてメインプログラムによって呼び出さ
れるサブプログラムを含む加工プログラムを実行する数
値制御装置に関するものである。
【0002】
【従来の技術】数値制御装置は、紙テープ等により加工
プログラムを読み取り、加工プログラムによる命令に基
づいて数値制御処理を実行し、この処理結果により工作
物に対する工具の位置などをそれに対応する数値情報で
指令するものである。
【0003】数値制御装置には、自動旋盤などで使用さ
れる数値制御装置や複数個の工作機械を制御する数値制
御装置として、多軸多系統を制御可能なコンピュータ数
値制御装置(以下CNC)があり、このCNCでは、各
系統においてメインプログラムによって呼び出されるサ
ブプログラムを含む加工プログラムを解析実行する。
【0004】図33は従来のコンピュータ数値制御装置
(CNC)を示している。ここでは2系統を制御可能な
CNCについて説明する。
【0005】このCNCにおいては、各系統ごとに加工
プログラムがメモリ141に格納される。この加工プロ
グラムを実行する際には、メモリ141から1ブロック
ずつ加工プログラムが解析処理部102あるいは112
に読み出され、解析処理部102あるいは112にて1
ブロックずつ解析処理が行われる。
【0006】系統1(以下$1)においては、$1メイ
ンプログラム101と$1メインプログラム101によ
って呼び出されるサブプログラム121とがメモリ14
1に格納される。
【0007】この系統1の加工プログラムを実行する際
には、メモリ141から1ブロックずつ$1メインプロ
グラム101が$1解析処理部102に読み出され、$
1解析処理部102で$1メインプログラム101の解
析処理が1ブロックずつ行われる。
【0008】サブプログラム121を呼び出す指令の場
合には、メモリ141から1ブロックずつサブプログラ
ム121が$1解析処理部102に読み出され、$1解
析処理部102でサブプログラム121の解析処理が行
われる。
【0009】同様に系統2(以下$2)においては、$
2メインプログラム111と$2メインプログラム11
1によって呼び出されるサブプログラム131とがメモ
リ141に格納される。
【0010】この系統2の加工プログラムを実行する際
には、メモリ141から1ブロックずつ$2メインプロ
グラム111が$2解析処理部112に読み出され、$
2解析処理部112で1ブロックずつ解析処理が行われ
る。
【0011】サブプログラム131を呼び出す指令の場
合には、メモリ141から1ブロックずつサブプログラ
ム131が$2解析処理部112に読み出され、$2解
析処理部112でサブプログラム131の解析処理が行
われる。
【0012】次に加工プログラムの解析結果に基づき、
補間処理部103にて補間処理が行われ、軸制御部10
4にて、予めパラメータ設定部140の$1軸定義部1
00または$2軸定義部110で設定された各系統の制
御軸ごとにパルス分配され、軸移動量出力回路105よ
りパルス出力が行われる。
【0013】この出力に応じて、サーボ制御部106、
116はサーボモータ107、117の運転を制御し、
テーブルまたは刃物台を移動指令通りに移動せしめる。
【0014】また補間処理部103より機械制御信号処
理部151を介してシーケンス回路152へ指令信号が
出力されることによりクーラントのオン/オフなどが行
われ、また主軸回転数出力回路155を介して主軸制御
部156へ主軸制御指令が出力されることにより主軸モ
ータ157の運転が制御され、スピンドル正転/逆転/
停止等が行われる。
【0015】また、メモリ141に格納された情報が画
面表示処理部142へ出力され、その出力情報が表示ユ
ニット143に表示される。
【0016】
【発明が解決しようとする課題】従来のCNCでは、上
述のように加工プログラムの実行処理が行われるため、
各系統において実行中の加工プログラム(メインプログ
ラム)よりサブプログラムを呼び出し、サブプログラム
に従い、その系統に設定された軸の指令しかできない。
【0017】また従来のCNCでは、メインプログラム
がサブプログラムを呼び出した場合、メインプログラム
の代わりにサブプログラムの指令を実行するだけであ
り、メインプログラムとサブプログラムとを並列に実行
することはできない。
【0018】このためサブプログラムが使用されると、
ユーザが加工プログラムを作成するための時間を減らす
ことができるが、実加工時間は、メインプログラムのみ
で処理を行なう場合と変わらず、加工のサイクルタイム
を短縮することはできない。
【0019】また従来の数値制御装置では、サブ系統制
御において、メイン系統が完了待ちで、サブ系統を呼出
した場合、サブ系統の動作がすべて完了しない限りメイ
ン系統の動作が再開されないため、サイクルタイムを短
縮することに限界がある。このため、たとえば、サブ系
統の軸がメイン系統の軸と干渉しない位置にまで後退
し、メイン系統の動作が可能な状態になってもサブ系統
の動作がすべて完了しない限りメイン系統の動作が再開
されず、サイクルタイムを長くする原因になる。
【0020】また従来の数値制御装置では、サブプログ
ラム呼出しと同様に、サブ系統の指令解析後にサブ系統
プログラムを呼出すため、サイクルタイムをこれ以上短
縮できない。またMコードなどによるマクロ呼出しのな
かで、サブ系統制御を使用する場合でも、一旦、サブプ
ログラム呼出しを行ったのちに、サブプログラムのなか
で、更にサブ系統プログラムを呼出さなければならない
ため、サイクルタイムをこれ以上短縮できない。
【0021】また従来の数値制御装置におけるサブ系統
制御では、チャック開閉軸、セパレータなどの周辺軸は
互いに独立した動作をさせるため、動作させたい周辺軸
の軸数分だけサブ系統を必要としており、多くのメモリ
容量を要することになっている。
【0022】また従来の数値制御装置におけるサブ系統
制御では、サブプログラムの呼出しの形態が、メイン系
統の1系統目はサブ系統プログラムの1系統目、メイン
系統の2系統目はサブ系統プログラムの2系統目と云う
ように各系統毎に独立しているため、メイン系統が2系
統など多系統あれば、サブ系統プログラムはたとえ同一
動作のものであっても各メイン系統毎に必要であり、こ
のことによっても多くのメモリ容量を要し、プログラム
作成の手間も掛かることになっている。
【0023】また従来の多系統数値制御装置では、シン
グルブロック運転時、系統間の同期を保証するために、
ある系統がシングルブロック停止すると、他の系統は必
ずフィードホルード状態で停止するから、融通性に欠
け、例えば、チャック開閉など、従来は油圧で制御して
いた機構をサーボ軸で制御させるような場合、チャック
開閉が途中で止まり、油圧動作時と同等の動作状態が得
られなくなる。
【0024】本発明は、上記のような問題点を解決する
ためになされたもので、任意の系統よりサブプログラム
を呼び出すことができ、またサブプログラムをメインプ
ログラムと並列に実行することを可能ならしめ、さらに
はメイン系統の動作再開における無駄な待ち時間をなく
することにより、またサブ系統プログラム呼出しのため
の時間ロスをなくすことにより従来よりも加工のサイク
ルタイムを短縮でき、またサブ系統制御のために多くの
メモリ容量を必要とすることがなく、また融通性に優れ
たシングルブロック運転を行うことができる数値制御装
置を得ることを目的としている。
【0025】
【課題を解決するための手段】上述の如き目的を達成す
るため、この発明による数値制御装置は、各系統毎にメ
インプログラムを設定され、メインプログラムによって
呼び出されるサブプログラムを含む加工プログラムを実
行することによって複数の制御軸を駆動する数値制御装
置において、各系統毎に設けられ、各系統のメインプロ
グラムによる制御軸を前記複数の制御軸の中から定義す
るメインプログラム軸定義部と、各系統のメインプログ
ラムの解析処理を各系統毎に実行するメインプログラム
解析処理部と、メインプログラムによる制御軸の定義と
は別にサブプログラムによる制御軸を定義するサブ系統
軸定義部と、メインプログラムの解析処理とは別にサブ
プログラムの解析処理を行うサブプログラム解析処理部
と、メインプログラムとサブプログラムの実行を直列お
よび並列の何れかに切り換える直列または直列並列切換
部と、を有し、メインプログラムとサブプログラムの実
行を直列または並列に処理可能としたことを特徴とす
【0026】つぎの発明による数値制御装置は、上記の
発明において、直列並列切換部は、メインプログラム、
サブプログラムあるいは数値制御装置に接続されている
シーケンス回路より直列運転あるいは並列運転の指令を
取り込むことを特徴とする。
【0027】つぎの発明による数値制御装置は、上記の
発明において、サブプログラムまたはメインプログラム
の次ブロックの起動条件が設定される起動条件設定プロ
グラムと、前記起動条件設定プログラムの解析処理を行
う起動条件解析処理部と、数値制御装置または数値制御
工作機械の状態を示すNCステータステーブルと、前記
NCステータステーブルから得られる情報を用いて、前
記設定されたプログラム起動条件を満たしているか否か
を判定するプログラム起動条件判定部とをさらに有し、
前記起動条件設定プログラムによりユーザが任意にサブ
プログラムまたはメインプログラムの次ブロックの実行
開始条件を設定可能としたことを特徴とする。
【0028】つぎの発明による数値制御装置は、上記の
発明において、サブプログラムからメインプログラムへ
の復帰条件を設定する完了チェック条件設定プログラム
と、前記完了チェック条件設定プログラムの解析処理を
行う完了チェック条件解析処理部と、数値制御装置また
は工作機械の状態を示すNCステータステーブルと、前
記NCステータステーブルから得られる情報を用いて、
前記設定されたサブプログラムからメインプログラムへ
の復帰条件を満たしているか判定する完了チェック条件
判定部とをさらに有し、サブプログラムのメインプログ
ラムへの復帰指令を待たずにメインプログラムの実行を
再開可能としたことを特徴とする
【0029】つぎの発明による数値制御装置は、上記の
発明において、加工プログラムのブロックごとに各ブロ
ックの実行時間を計算するブロック実行時間計算処理部
と、前記ブロック実行時間計算処理部の計算結果より加
工プログラムの実行時間を計算するプログラム実行時間
計算処理部と、前記プログラム実行時間計算処理部によ
り計算されたプログラム実行時間に基づいてサブプログ
ラムが該サブプログラムを呼び出したメインプログラム
の指定ブロックの実行終了と同時に終了するようにメイ
ンプログラムの次ブロックまたはサブプログラムの起動
を調整するプログラム起動時間調整処理部とをさらに有
し、サブプログラムが該サブプログラムを呼び出したメ
インプログラムの指定ブロックの実行終了と同時に終了
させるようにしたことを特徴とする
【0030】つぎの発明による数値制御装置は、上記の
発明において、前記プログラム起動時間調整処理部によ
るプログラム起動調整処理に伴い指令に対する軸移動の
遅延時間を補正する軸移動遅延時間補正処理部を有して
いることを特徴とする
【0031】つぎの発明による数値制御装置は、上記の
発明において、加工プログラムの補助指令の処理時間を
設定する補助指令処理時間定義テーブルをさらに有し、
前記プログラム実行時間計算処理部は前記ブロック実行
時間計算処理部の計算結果と前記補助指令処理時間定義
テーブルに設定された補助指令の処理時間とに基づき加
工プログラムの実行時間を計算することを特徴とする
【0032】つぎの発明による数値制御装置は、上記の
発明において、加工プログラムの実行時間を計算するプ
ログラム実行時間計算処理部と、前記プログラム実行時
間計算処理部により計算された加工プログラム実行時間
に基づいてサブプログラムが該サブプログラムを呼び出
したメインプログラムの指定ブロックと同時に終了する
ためのメインプログラムによって駆動される軸またはサ
ブプログラムによって駆動される軸のうちの一方の軸の
軸移動速度を計算する移動速度計算処理部とをさらに有
し、メインプログラムとサブプログラムとを並列に実行
中に、前記移動速度計算処理部の計算結果に基づき前記
一方の軸の軸移動速度を調整することにより、指定した
ブロックでのメインプログラム及びサブプログラムの実
行時間を同一にすることを特徴とする
【0033】つぎの発明による数値制御装置は、上記の
発明において、加工プログラムのブロック毎に各ブロッ
クの実行時間を計算するブロック実行時間計算処理部
と、加工プログラムの補助指令の処理時間を設定する補
助指令処理時間定義テーブルとをさらに有し、前記プロ
グラム実行時間計算処理部は前記ブロック実行時間計算
処理部の計算結果と前記補助指令処理時間定義テーブル
に設定された補助指令の処理時間とに基づき加工プログ
ラムの実行時間を計算することを特徴とする
【0034】
【0035】
【0036】
【0037】
【0038】
【0039】
【0040】
【0041】
【0042】
【0043】
【0044】
【0045】
【0046】
【0047】
【0048】
【0049】
【0050】
【0051】
【0052】
【0053】
【0054】
【0055】
【0056】
【0057】
【発明の実施の形態】以下に添付の図を参照してこの発
明の実施の形態を詳細に説明する。なお、以下に説明す
るこの発明の実施の形態において、上述の従来例と同一
構成の部分は、上述の従来例に付した符号と同一の符号
を付してその説明を省略する。
【0058】(実施の形態1)図1はこの発明による数
値制御装置の実施の形態1を示している。
【0059】この数値制御装置には、パラメータ設定部
140に、系統1($1)の$1メインプログラム10
1による制御軸を定義する$1軸定義部100と、系統
2($2)の$2メインプログラム111による制御軸
を定義する$2軸定義部110とに加えて、サブプログ
ラム121とサブプログラム131による制御軸を各々
定義するサブ系統軸定義部として、サブ系統1(以下$
[1])軸定義部120と、サブ系統2(以下$
[2])軸定義部130とが設けられている。
【0060】なお、サブプログラム121、131は、
メインプログラム101またはメインプログラム111
より呼び出されるサブプログラム($[1]、$
[2])である。
【0061】この数値制御装置では、$1解析処理部1
02は系統1で実行する加工プログラムである$1メイ
ンプログラム101の解析処理を行う$1解析処理部
(系統1メインプログラム解析処理部)102と、系統
2で実行する加工プログラムである$2メインプログラ
ム111の解析処理を行う$2解析処理部(系統2メイ
ンプログラム解析処理部)112とは別に、サブプログ
ラム121を解析処理するための$[1]解析処理部
(系統1サブプログラム解析処理部)122と、サブプ
ログラム131を解析処理するための$[2]解析処理
部(系統2サブプログラム解析処理部)132とが設け
られている。
【0062】補間処理部103は、$1解析処理部10
2、$2解析処理部112による$1メインプログラム
101、$2メインプログラム111の解析結果に基づ
く補間処理に加えて、$[1]解析処理部122、$
[2]解析処理部132によるサブプログラム121、
131の解析結果に基づく補間処理を行う。
【0063】また数値制御装置の出力部には、$[1]
軸定義部120で定義された制御軸に相当するサーボモ
ータ127およびその制御を行なうサーボ制御部126
と、$[2]軸定義部130で定義された制御軸に相当
するサーボモータ137およびその制御を行なうサーボ
制御部136とが付加されている。
【0064】$1は、$1で制御する軸を定義する$1
軸定義部100と、$1メインプログラム101と、$
1解析処理部102とによって構成され、$1メインプ
ログラム101に基づきサーボモータ107を駆動して
$1のテーブルまたは刃物台を移動せしめる。
【0065】$2は、$2軸定義部110と、$2メイ
ンプログラム111と、$2解析処理部112とによっ
て構成され、$2メインプログラム111に基づきサー
ボモータ117を駆動して$2のテーブルまたは刃物台
を移動せしめる。
【0066】サブプログラム121は$[1]解析処理
部122によって解析処理され、この$[1]解析処理
部122によるサブプログラム121の解析結果に基づ
き補間処理部103によって補間処理が行われる。$
[1]軸定義部120にて定義された制御軸は、軸制御
部104にて制御され、軸移動量出力回路105より微
小単位の軸移動量がサーボ制御部126へ出力される。
これによりサーボモータ127が駆動される。
【0067】またサブプログラム131は$[2]解析
処理部132によって解析処理され、この$[2]解析
処理部132によるサブプログラム131の解析結果に
基づき補間処理部103によって補間処理が行われる。
$[2]軸定義部130にて定義された制御軸は、軸制
御部104にて制御され、軸移動量出力回路105より
微小単位の軸移動量がサーボ制御部136へ出力され
る。これによりサーボモータ137が駆動される。
【0068】以上のように、サブプログラムに対応する
軸定義部と、解析処理部と、その制御軸とが付加された
ことにより、$[1]と$[2]は$1と$2のどちら
からも呼び出し可能となる。
【0069】すなわち、$[1]を$1より呼び出した
場合には、サーボモータ127によって移動する軸は$
1によって指令可能な軸となり、$[1]を$2より呼
び出した場合には、サーボモータ127によって移動す
る軸は$2において指令可能な軸となる。同様に、$
[2]を$1より呼び出した場合には、サーボモータ1
37によって移動する軸は$1において指令可能な軸と
なり、$[2]を$2より呼び出した場合には、サーボ
モータ137によって移動する軸は$2において指令可
能な軸となる。
【0070】なお、図1では説明の簡略化のため、各加
工プログラムにおいて指令する軸が1軸として説明して
いるが、各加工プログラムにおいて指令する軸は複数軸
でも差し支えない。
【0071】図2は上述のような構成よる数値制御装置
によって制御される加工システムの一具体例を示してい
る。
【0072】この加工システムは、系統1として$1メ
インプログラム101によって荒削り加工を行う工作機
械171と、系統2として$2メインプログラム111
によって仕上げ加工を行う工作機械172と、工作機械
171における荒削り加工を完了したワークを工作機械
172へ搬送、または工作機械172における仕上げ加
工を完了したワークをワーク取り出し口174へ搬送す
る搬送装置を有している。$1ではX1軸181及びZ
1軸182を制御し、$2ではX2軸183及びZ2軸
184を制御する。
【0073】搬送装置173はXsub軸185及びZ
sub軸186に沿って移動し、サブプログラム121
に基づいて制御される。サブプログラム121は、メイ
ンプログラム101またはメインプログラム111より
呼び出される。
【0074】サブプログラム121がメインプログラム
101より呼び出された場合には、工作機械171にお
ける荒削り加工を完了したワークを工作機械172へ搬
送するプログラムになり、これに対しサブプログラム1
21がメインプログラム111より呼び出された場合に
は、工作機械172における仕上げ加工を完了したワー
クをワーク取り出し口174へ搬送するプログラムとな
る。
【0075】以上のようにして工作機械171、工作機
械172、搬送装置173を一つの数値制御装置で制御
することができる。
【0076】$2において、仕上げ加工が完了した場
合、メインプログラム111はサブプログラム121を
呼び出し、ワークをワーク取り出し口174へ搬送す
る。次に$1において荒削り加工が完了した場合、メイ
ンプログラム101はサブプログラム121を呼び出
し、ワークを工作機械172へ搬送し、$2の仕上げ加
工を行う。
【0077】この発明によれば、サブプログラム121
は、メインプログラム101とメインプログラム111
のどちらからも呼び出すことができるため、メインプロ
グラム101から呼び出した場合は、Xsub軸185
とZsub軸186をあたかも$1の補助軸として、メ
インプログラム111から呼び出した場合は、Xsub
軸185とZsub軸186をあたかも$2の補助軸と
して自由に扱うことができる。
【0078】(実施の形態2)図3はこの発明による数
値制御装置の実施の形態2を示している。尚、図3に於
いて、図1に対応する部分は図1に付した符号と同一の
符号を付けてその説明を省略する。
【0079】この数値制御装置においては、補間処理部
103に、プログラム並列運転カウンタ202と、プロ
グラム並列運転カウンタ202の入力を行うカウンタ入
力部203と、プログラム並列運転カウンタ202の値
(セット・リセット)によってメインプログラムとサブ
プログラムの実行を直列または並列に切り換える直列並
列切り換え処理部201とが設けられている。
【0080】カウンタ入力部203は、メインプログラ
ム、サブプログラムあるいはシーケンス回路152よ
り、直列運転あるいは並列運転の指令を取り込むことが
できる。
【0081】図4(a)、(b)は補助指令によりプロ
グラム並列運転カウンタ202をセットまたはリセット
するためのシーケンスプログラムを示すフローチャート
である。
【0082】図4(a)に示されているプログラム並列
運転カウンタセット用のシーケンスプログラムでは、ま
ず加工プログラムにおいて補助指令M200が指令され
ているか否かを判定する(ステップS231)。補助指
令M200が指令されている場合には、プログラム並列
運転カウンタ202をセットする信号を出力し(ステッ
プS232)、補助指令M200の実行の完了信号を出
力する(ステップS233)。
【0083】図4(b)に示されているプログラム並列
運転カウンタリセット用のシーケンスプログラムでは、
まず加工プログラムにおいて補助指令M201が指令さ
れているか否かを判定する(ステップS236)。補助
指令M201が指令されている場合にはプログラム並列
運転カウンタ202をリセットする信号を出力し(ステ
ップS237)、補助指令M201の実行の完了信号を
出力する(ステップS238)。
【0084】これらのシーケンスプログラムを作成して
おくことによって、加工プログラムにおいて補助指令M
200が指令された場合にはプログラム並列運転カウン
タ202がセットされて並列運転に切り換わり、補助指
令M201が指令された場合にはプログラム並列運転カ
ウンタ202がリセットされて直列運転に切り換わる。
【0085】なお、この実施の形態の以下の説明では、
説明の簡素化のために、系統1において$1メインプロ
グラム101よりサブプログラム121を呼び出す場合
について説明する。
【0086】$1メインプログラム101は、$1解析
処理部102により解析処理が行なわれる。このときの
制御軸は$1軸定義部100で設定される。また、$1
メインプログラム101から呼び出されるサブプログラ
ム121は、解析処理部122により解析処理を行なわ
れる。このときの制御軸は$[1]軸定義部120で設
定される。
【0087】これにより、サブプログラムにおける制御
軸とメインプログラムにおける制御軸とを別々に設定で
き、$1メインプログラム101とサブプログラム12
1とを並列に実行することが可能となる。
【0088】$1メインプログラム101において直列
運転の指令を行なった場合、またはシーケンス回路15
2より直列運転の信号を機械制御信号処理部151が受
けた場合には、カウンタ入力部203を介してプログラ
ム並列運転カウンタ202をリセットする。このときに
は直列並列切り換え処理部201において直列運転が選
択され、$1メインプログラム101より呼び出された
サブプログラム121の指令を実行し、$1メインプロ
グラム101の指令は休止する。
【0089】これに対し、$1メインプログラム101
において並列運転の指令を行なった場合、またはシーケ
ンス回路152より並列運転の信号を機械制御信号処理
部151が受けた場合には、カウンタ入力部203を介
して、プログラム並列運転カウンタ202をセットす
る。このときには直列並列切り換え処理部201におい
て並列運転が選択され、$1メインプログラム101の
指令と$1メインプログラム101より呼び出されたサ
ブプログラム121の指令を並列に実行する。
【0090】図5(a)、(b)はメインプログラムと
サブプログラムの一具体例を例示している。図5(a)
に示されているメインプログラムにおいて、211はメ
インプログラムの実行開始ブロック、212はサブプロ
グラム呼び出し指令、213はサブプログラム呼び出し
指令の次ブロックである。
【0091】図5(b)に示されているサブプログラム
において、221はメインプログラムのブロック212
で呼び出されたサブプログラムの実行開始ブロック、2
22はプログラム並列運転カウンタのセットを行う補助
指令、223はドゥエル指令、224はプログラム並列
運転カウンタのリセットを行う補助指令、225はサブ
プログラムからメインプログラムへの復帰指令である。
【0092】また図5(a)のメインプログラムにおい
て、214はサブプログラムのブロック224における
プログラム並列運転カウンタのセット時のメインプログ
ラムの実行中ブロック、215はブロック214の次ブ
ロックを表す。
【0093】次に図5(a)、(b)に示されているプ
ログラムの動作について説明する。
【0094】はじめにメインプログラムが外部起動信号
によって起動される。メインプログラムはブロック21
1より実行開始し、ブロック212でサブプログラムを
呼び出す。このとき、プログラム並列運転カウンタ20
2はセットされていないため、メインプログラムは一時
休止し、サブプログラムが実行する直列運転を行う。
【0095】サブプログラムはブロック221より実行
を開始し、ブロック222でプログラム並列運転カウン
タ202のセットを行う。プログラム並列運転カウンタ
202をセットした後、メインプログラムとサブプログ
ラムは並列運転に切り換わる。
【0096】メインプログラムはブロック213から再
起動し、それと並列に、サブプログラムはブロック22
3のドゥエル指令を実行する。
【0097】次に、サブプログラムはブロック224で
プログラム並列運転カウンタ202のリセットを行い、
直列運転に切り換わる。メインプログラムはこのとき実
行中のブロック214が終了した後に一時休止し、サブ
プログラムはブロック225の復帰指令までを実行す
る。メインプログラムはサブプログラムの終了後、ブロ
ック215より再起動する。
【0098】以上のように、呼び出したサブプログラム
がドゥエル指令によって休止中に、メインプログラムを
並列に実行することによって、例えばサブプログラムか
らメインプログラムへの復帰後の加工の準備を行うこと
ができ、サイクルタイムを短縮することができる。
【0099】(実施の形態3)図6はこの発明による数
値制御装置の実施の形態3を示している。尚、図6に於
いて、図3に対応する部分は図3に付した符号と同一の
符号を付けてその説明を省略する。
【0100】この数値制御装置においては、起動条件設
定プログラム301がメモリ141に割り付けられ、ま
た起動条件設定プログラム301を解析処理する起動条
件解析処理部302が設けられる。起動条件設定プログ
ラム301は、$1メインプログラム101よりサブプ
ログラム121を呼び出すときの、サブプログラム12
1または$1メインプログラム101の次ブロックから
の起動条件を記述したものであり、ユーザによって任意
に作成される。
【0101】補間処理部103には、直列並列切り換え
処理部201、プログラム並列運転カウンタ202、カ
ウンタ入力部203に加えて、数値制御装置または数値
制御工作機械の状態を示すNCステータステーブル30
4と、NCステータステーブル304より設定したプロ
グラム起動条件を満たしているか否かを判定するプログ
ラム起動条件判定部303と、その判定に従いサブプロ
グラムまたはメインプログラムの次ブロックの実行を調
整するプログラム起動処理部305とが付加されてい
る。
【0102】NCステータステーブル304は数値制御
装置または周辺装置の状態を表すテーブルであり、NC
ステータステーブル304より得られるステータス情報
としては、例えば主軸の回転速度や軸のモータ電流値な
どがある。
【0103】この場合、サーボ制御部106、116、
126、136から軸制御部104を介してサーボ軸の
状態に関する情報がNCステータステーブル304へ送
られ、また主軸制御部156より主軸回転数出力回路1
55,機械制御信号処理部151を介して主軸の状態に
関する情報がNCステータステーブル304へ送られ、
NCステータステーブル304にそれらの数値情報が入
力される。
【0104】なお、この実施の形態の以下の説明でも、
説明の簡素化のために、系統1において$1メインプロ
グラム101よりサブプログラム121を呼び出す場合
について説明する。
【0105】$1メインプログラム101は、$1解析
処理部102により解析処理を行なわれる。このときの
制御軸は$1軸定義部100で設定される。また、$1
メインプログラム101から呼び出されるサブプログラ
ム121は、解析処理部122により解析処理を行なわ
れる。このときの制御軸は$[1]軸定義部120で設
定される。
【0106】これにより、この実施の形態でも、サブプ
ログラムにおける制御軸とメインプログラムにおける制
御軸とを別々に設定でき、$1メインプログラム101
とサブプログラム121とを並列に実行することが可能
となる。
【0107】$1メインプログラム101がサブプログ
ラム121を呼び出して並列に実行するときには、起動
条件設定プログラム301を起動条件解析処理部302
が解析する。
【0108】この解析結果に従い、プログラム起動条件
判定部303は、NCステータステーブル304より得
られる情報より、プログラム起動条件判定部303によ
って$1メインプログラム101またはサブプログラム
121の起動条件を満たしているか否かを判定する。こ
の判定結果により、プログラム起動処理部305がサブ
プログラム121または$1メインプログラム101の
次ブロックからの起動を調整する。
【0109】図7(a)〜(d)は実施の形態3にて使
用されるメインプログラム(系統1)とサブプログラム
とメインプログラム(系統2)と起動条件設定プログラ
ムの一具体例を示している。
【0110】図7(a)に示されている系統1で実行す
る加工プログラムにおいて、311は、サブプログラム
の実行開始条件を記述した起動条件設定プログラムを指
定し、実行開始条件を満たしたときサブプログラムのブ
ロック321からブロック322までを実行する指令で
ある。
【0111】この指令では、メインプログラム(系統
1)とサブプログラムは並列に実行する。ブロック31
1のサブプログラム呼び出し指令時に、起動条件設定プ
ログラム301(図7(d)参照)の記述に従い、R2
000の値がセットされる。
【0112】ここで、R2000は、メインプログラム
(系統1)よりサブプログラムを呼び出した場合の実行
開始レジスタを表す。また、R1234は、NCステー
タステーブル304上の主軸回転速度を表すレジスタで
ある。
【0113】図7(c)に示されている系統2で実行す
る加工プログラムにおいて、331は主軸を1500回
転で正転させる指令、332は主軸を停止させる指令で
ある。即ち、起動条件設定プログラムの341に記述さ
れているように、系統2で制御を行なっている主軸にお
いて、ブロック332で主軸停止指令がなされて主軸が
100回転以下となったとき、実行開始レジスタR20
00がセットされ、サブプログラムはブロック321よ
り実行を開始する。
【0114】これにより、従来は主軸の回転が完全に停
止した後に次の指令を行なっていたが、この発明では主
軸の回転速度が例えば100回転以下になったときに次
の指令が行える。従って主軸の回転に関係なく工具等を
移動できるような場合には、主軸の回転が完全に停止す
るのを待たずに次の加工の準備を行うことができ、サイ
クルタイムを短縮することができる。
【0115】(実施の形態4)図8はこの発明による数
値制御装置の実施の形態4を示している。尚、図8に於
いて、図3に対応する部分は図3に付した符号と同一の
符号を付けてその説明を省略する。
【0116】この数値制御装置には、加工プログラムの
ブロックごとに実行時間を計算するブロック実行時間計
算処理部として、$1ブロック実行時間計算処理部40
1と、$2ブロック実行時間計算処理部411と、$
[1]ブロック実行時間計算処理部421と、$[2]
ブロック実行時間計算処理部431とが設けられてい
る。
【0117】また補間演算部103には、直列並列切り
換え処理部201、プログラム並列運転カウンタ20
2、カウンタ入力部203に加えて、補間時間計算処理
部402と、補助指令処理時間定義テーブル403と、
プログラム実行時間計算処理部404と、プログラム起
動時間調整処理部405と、軸移動遅延時間補正処理部
406とが設けられている。
【0118】補間時間計算処理部402は補間処理中の
ブロックの終了までの補間処理時間を計算し、補助指令
処理時間定義テーブル403は加工プログラムの補助指
令の処理時間を設定する。
【0119】プログラム実行時間計算処理部404は各
ブロック実行時間計算処理部401、411、421、
431と補間時間計算処理部402の計算結果と補助指
令処理時間定義テーブル403より加工プログラムの実
行時間を計算する。
【0120】プログラム起動時間調整処理部405はサ
ブプログラムが該サブプログラムを呼び出したメインプ
ログラムの指定ブロックの実行終了と同時に終了するよ
うにメインプログラムの次ブロックまたはサブプログラ
ムの起動を調整する。
【0121】軸移動遅延時間補正処理部406はプログ
ラム起動時間調整処理部405によるプログラム起動調
整に伴い指令に対する軸移動の遅延時間を補正する。
【0122】ここでは特に、系統1において$1メイン
プログラム101よりサブプログラム121を呼び出す
場合について説明する。
【0123】$1メインプログラム101は、$1解析
処理部102により解析処理を行なわれる。このときの
制御軸は$1軸定義部100で設定される。また、$1
メインプログラム101から呼び出されるサブプログラ
ム121は、解析処理部122により解析処理を行なわ
れる。このときの制御軸は$[1]軸定義部120で設
定される。
【0124】これにより、この実施の形態でも、サブプ
ログラムにおける制御軸とメインプログラムにおける制
御軸とを別々の軸として設定することができ、$1メイ
ンプログラム101とサブプログラム121とを並列に
実行することが可能となる。
【0125】ここで、サブプログラム121が$1メイ
ンプログラム101と並列に実行されるように呼び出
す。このとき、$1ブロック実行時間計算処理部401
において$1メインプログラムの次ブロックからサブプ
ログラム復帰指定ブロックまでのブロックごとの実行時
間を計算する。
【0126】また、$[1]ブロック実行時間計算処理
部421においてサブプログラム121の起動開始ブロ
ックから復帰ブロックまでのブロックごとの実行時間を
計算する。また、各ブロック中に補助指令がある場合に
は、補助指令の実行時間を設定した補助指令処理時間定
義テーブル403をチェックし、プログラム実行時間計
算処理部404で$1メインプログラム101とサブプ
ログラム121の実行時間を計算する。
【0127】プログラム起動時間調整処理部405は、
プログラム実行時間計算処理部404によって計算され
たそれぞれの実行時間を比較し、実行時間の長い方の加
工プログラムに合わせて実行時間の短い方の加工プログ
ラムの起動開始時間を調整する。このとき、補間時間計
算処理部402により実行時間の長い方の加工プログラ
ムの補間処理時間を計算し、実行時間の長い方の加工プ
ログラムのブロック実行途中であっても実行時間の短い
方の加工プログラムの起動開始時間であれば、起動を開
始する。
【0128】更に、軸移動遅延時間補正処理部406に
より、軸の指令に対する実際の位置の遅延時間を計算
し、プログラム起動開始時間の補正を行う。
【0129】以上のようにして、$1メインプログラム
101とサブプログラム121を並列に実行して、メイ
ンプログラム101の指定ブロックとサブプログラム1
21の復帰ブロックが同時に終了するように調整する。
【0130】図9は補助指令処理時間定義テーブル40
3の一具体例を示している。補助指令処理時間定義テー
ブル403では、例えばクーラントオン指令(M08)
で500ミリ秒のように、加工プログラム中で指令する
補助指令の処理時間が定義されている。
【0131】図10(a)、(b)は、実施の形態4に
て使用されるメインプログラムと、そのメインプログラ
ムより呼び出されるサブプログラムの一具体例を示して
いる。
【0132】図10(a)に示されているメインプログ
ラムにおいて、451はメインプログラムの先頭ブロッ
クで、452はサブプログラムを呼び出しシーケンス番
号100から実行して、メインプログラムのシーケンス
番号200のブロック終了と同時にサブプログラムを終
了するように制御する指令である。また453はブロッ
ク452の次ブロックで、454はサブプログラムが実
行を開始するときのメインプログラムにおける実行中ブ
ロックで、455はサブプログラムの終了と同期させる
メインプログラムの指定ブロックである。
【0133】図10(b)に示されているサブプログラ
ムにおいて、461はメインプログラムより呼び出され
たサブプログラムの実行開始ブロックであり、462は
サブプログラムからメインプログラムへの復帰指令であ
る。
【0134】なお、ここでは、サブプログラムの実行時
間(ブロック461からブロック462までの実行時
間)の方がメインプログラムの実行時間(ブロック45
3からブロック455までの実行時間)より短い場合に
ついて説明している。
【0135】つぎにプログラム起動時間調整処理部40
5によるプログラム起動時間調整処理フローを図11を
参照して説明する。
【0136】先ずプログラム実行時間計算処理部404
よりメインプログラムの実行時間(Tmain)とサブ
プログラムの実行時間(Tsub)を取得し(ステップ
S480,481)、TmainとTsubとを比較す
る(ステップS482)。
【0137】Tmainの方がTsubより短い場合に
は(ステップS482肯定)、メインプログラムが実行
を開始する時のサブプログラムにおける実行中ブロック
を取得し(ステップS483)、サブプログラムの実行
を開始する(ステップS484)。
【0138】このサブプログラムの実行下で、メインプ
ログラムを開始すべきブロックの実行開始をチェックし
(ステップS485)、メインプログラムを開始すべき
ブロックの実行開始で、メインプログラム実行開始タイ
ミング(Tm1)を計算する(ステップS486)。
【0139】つぎに時間カウントを開始し(ステップS
487)、この時間カウント値よりTm1が経過したか
否かをチェックする(ステップS488)。Tm1が経
過すればメインプログラムの実行を開始する(ステップ
S489)。
【0140】これに対し、Tmainの方がTsubよ
り長い場合には(ステップS482否定)、サブプログ
ラムが実行を開始する時のメインプログラムにおける実
行中ブロックを取得し(ステップS493)、メインプ
ログラムの実行を開始する(ステップS494)。
【0141】このメインプログラムの実行下で、サブプ
ログラムを開始すべきブロックの実行開始をチェックし
(ステップS495)、サブプログラムを開始すべきブ
ロックの実行開始で、サブプログラム実行開始タイミン
グ(Tm2)を計算する(ステップS496)。
【0142】つぎに時間カウントを開始し(ステップS
497)、この時間カウント値よりTm2が経過したか
否かをチェックする(ステップS498)。Tm2が経
過すればサブプログラムの実行を開始する(ステップS
499)。
【0143】つぎに上述のプログラム起動時間調整処理
フロー(図11)に従った図10(a)、(b)のメイ
ンプログラムとサブプログラムの実行手順を説明する。
なお、ここではTmain>Tsubの場合について説
明する。
【0144】メインプログラムは、ブロック452でサ
ブプログラムを呼び出すと共に、メインプログラムもサ
ブプログラムと並列に実行する。
【0145】この指令で、メインプログラムのブロック
453からブロック455までの処理時間Tmain
と、サブプログラムのブロック461からブロック46
2までの処理時間Tsubを計算する。メインプログラ
ムのブロック452から処理時間を逆算して、サブプロ
グラムの実行を開始すべきブロック454を得る。
【0146】ブロック454を実行開始した時、ブロッ
ク454の開始からサブプログラムを実行開始するタイ
ミングまでの時間(Tm2)を計算する。ブロック45
4の開始からTm2が経過したときにサブプログラムの
実行を開始する。
【0147】これによりメインプログラムのブロック4
55とサブプログラムのブロック462が同時に実行完
了する。
【0148】図12は上述のような実施の形態4による
数値制御装置が適用されるCNC工作機械の一例を示し
ている。この工作機械は、ワークWを切断する突切り工
具471と、切断されたワークWの搬出を行うセパレー
タ472とを有している。
【0149】図10(a)、(b)に示されているプロ
グラム例において、サブプログラムのブロック461か
ら462にセパレータ472をA位置からB位置へ移動
せしめる加工プログラムを作成し、メインプログラムの
ブロック453から455には突切り工具471によっ
てワークWを切断する加工プログラムを作成する。
【0150】これによって、ブロック452でセパレー
タ472の移動プログラムが呼び出されると共に、突切
り工具471はワークWの切断を行う。
【0151】このとき、メインプログラムのブロック4
55とサブプログラムのブロック462が同時に終了す
るため、ワークWの切断完了とセパレータ472が位置
Bに到達するのが同時になるようにセパレータ472の
移動開始を調整できる。これによって、セパレータ47
2が切断されたワークWを受け取るにあたり、ワークW
の切断に伴い発生する切り粉がセパレータ472内に入
り込む量を減らすことができる。
【0152】(実施の形態5)図13はこの発明による
数値制御装置の実施の形態5を示している。尚、図13
に於いて、図3に対応する部分は図3に付した符号と同
一の符号を付けてその説明を省略する。
【0153】この数値制御装置には、加工プログラムの
ブロックごとに実行時間を計算するブロック実行時間計
算処理部として、$1ブロック実行時間計算処理部50
1と、$2ブロック実行時間計算処理部511と、$
[1]ブロック実行時間計算処理部521と、$[2]
ブロック実行時間計算処理部531とが設けられてい
る。
【0154】また補間演算部103には、直列並列切り
換え処理部201、プログラム並列運転カウンタ20
2、カウンタ入力部203に加えて、軸移動指令実行時
間計算処理部502と、補助指令処理時間定義テーブル
503と、プログラム実行時間計算処理部504と、移
動速度計算処理部505と、補間間隔調整処理部506
と、補間時間計算処理部507とが設けられている。
【0155】軸移動指令実行時間計算処理部502は軸
を移動せしめる指令の実行時間を計算する。
【0156】補間時間計算処理部507はメインプログ
ラムまたはサブプログラムの補間中のブロックのブロッ
ク実行完了までの時間を計測し、補助指令処理時間定義
テーブル503は加工プログラムの補助指令の処理時間
を設定する。補助指令処理時間定義テーブル503は実
施の形態4における補助指令処理時間定義テーブル40
3と同等のものである(図9参照)。
【0157】プログラム実行時間計算処理部504は各
ブロック実行時間計算処理部501、511、521、
531と補間時間計算処理部507の計算結果と補助指
令処理時間定義テーブル503より加工プログラムの実
行時間を計算する。
【0158】移動速度計算処理部505はサブプログラ
ムが該サブプログラムを呼び出したメインプログラムの
指定ブロックにおいて同時に終了するための軸送り速度
を計算する。
【0159】補間間隔調整処理部506は移動速度計算
処理部505にて計算された軸送り速度で軸移動させる
ために補間距離を調整する。
【0160】ここでは特に、系統1において$1メイン
プログラム101よりサブプログラム121を呼び出す
場合について説明する。
【0161】$1メインプログラム101は、$1解析
処理部102により解析処理を行なわれる。このときの
制御軸は$1軸定義部100で設定される。また、$1
メインプログラム101から呼び出されるサブプログラ
ム121は、解析処理部122により解析処理を行なわ
れる。このときの制御軸は$[1]軸定義部120で設
定される。
【0162】これにより、この実施の形態でも、サブプ
ログラムにおける制御軸とメインプログラムにおける制
御軸とを別々の軸で設定することができ、$1メインプ
ログラム101とサブプログラム121とを並列に実行
することが可能となる。
【0163】ここで、サブプログラム121が$1メイ
ンプログラム101と並列に実行されるように呼び出
す。このとき、$1ブロック実行時間計算処理部501
において$1メインプログラムの次ブロックからサブプ
ログラム復帰指定ブロックまでのブロックごとの実行時
間を計算する。
【0164】また、$[1]ブロック実行時間計算処理
部521においてサブプログラム121の起動開始ブロ
ックから復帰ブロックまでのブロックごとの実行時間を
計算する。
【0165】次に、軸移動指令実行時間計算処理部50
2において、$1メインプログラム101のサブプログ
ラム復帰指定ブロックまでの軸移動指令の実行時間(T
ma)と、サブプログラム121の復帰ブロックまでの
軸移動指令の実行時間(Tsa)とを計算する。
【0166】また、プログラム実行時間計算処理部50
4で、各ブロック実行時間計算処理部501、511、
521、531で計算されたブロック実行時間より、$
1メインプログラム101の軸移動指令以外の実行時間
(Tmb)とサブプログラム121の軸移動指令以外の
実行時間(Tsb)とを計算する。ここで、各ブロック
中に補助指令がある場合は、補助指令の実行時間を設定
した補助指令処理時間定義テーブル503をチェックし
て実行時間を計算する。
【0167】Tma、Tsa、Tmb、Tsbより、移
動速度計算処理部505において、$1メインプログラ
ム101の実行時間(Tm=Tma+Tmb)とサブプ
ログラム121の実行時間(Ts=Rsa+Tsb)が
一致するような軸移動速度を計算する。
【0168】サブプログラム121の実行時間を変える
場合には、Tma+Tmb=n・Tsa+Tsbとなる
nを計算する。nはサブプログラム121で制御する軸
のオーバライド量となり、サブプログラム121の軸移
動指令に対する送り速度にnをかけた値を新たな送り速
度とみなす。
【0169】移動速度計算処理部505において計算さ
れた送り速度で軸が移動するように、補間間隔調整処理
部506で補間量を調整する。また、補間時間計算処理
部507は補間中のブロックにおけるブロック実行完了
までの時間を計算する。上記のようにして、$1メイン
プログラム101とサブプログラム121の実行開始と
終了を一致させる。
【0170】図14(a)、(b)は、実施の形態4に
て使用されるメインプログラムと、そのメインプログラ
ムより呼び出されるサブプログラムの一具体例を示して
いる。
【0171】図14(a)に示されているメインプログ
ラムにおいて、551はメインプログラムの先頭ブロッ
ク、552はサブプログラムを呼び出して並列に実行
し、同時に実行開始してメインプログラムのシーケンス
番号200のブロックとサブプログラムのメインプログ
ラムへの復帰指令ブロックが同時に終了するようにサブ
プログラムの実行時間を調整する指令、553はブロッ
ク552の次ブロックである。554はサブプログラム
の終了と同期させるメインプログラムの指定ブロックで
ある。
【0172】図14(b)に示されているサブプログラ
ムにおいて、561はサブプログラムのプログラム番
号、562はメインプログラムより呼び出されたサブプ
ログラムの実行開始ブロック、563はサブプログラム
からメインプログラムへの復帰指令である。
【0173】つぎにこの実施の形態におけるプログラム
起動時間調整処理フローを図15を参照して説明する。
【0174】まず軸移動指令実行時間計算処理部502
によりメインプログラムの軸移動指令の実行時間(Tm
a)とサブプログラムの軸移動指令の実行時間(Ts
a)とを求め(ステップS571,572)、プログラ
ム実行時間計算処理部504によりメインプログラムの
軸移動指令以外の実行時間(Tmb)とサブプログラム
の軸移動指令以外の実行時間(Tmb)とを求める(ス
テップS573,574)。
【0175】つぎにメインプログラムの指令により選択
された実行時間を調整する側のプログラムを判定する
(ステップS575)。
【0176】メインプログラムの実行時間を調整する場
合には(ステップS575肯定)、TmaとTsaとT
mbとTsbから、プログラムの実行が同時に終了する
ためのメインプログラムにおけるオーバライド量(V
m)を計算する(ステップS581)。
【0177】次にメイン及びサブプログラムを実行開始
し(ステップS582)、メインプログラムにおいてオ
ーバライドを実行し(ステップS583)、メインプロ
グラムの軸移動指令に対して、軸移動速度にVmをかけ
た速度で軸制御を行う。
【0178】この後においては、メインプログラムの実
行中ブロックが終了したことを判定し(ステップS58
4)、実行中ブロック終了の場合にはメインプログラム
の指定ブロック終了を判定する(ステップS585)。
指定ブロック終了時である場合にはオーバーライドを終
了する(ステップS586)。指定ブロック終了時でな
い場合には、ステップS571に戻り、オーバライド量
の再計算を行う。
【0179】これに対し、サブプログラムにおいてオー
バライドをかける場合には(ステップS575否定)、
TmaとTsaとTmbとTsbから、プログラムの実
行が同時に終了するためのサブプログラムにおけるオー
バライド量(Vs)を計算する(ステップS591)。
【0180】次にメイン及びサブプログラムを実行開始
し(ステップS592)、サブプログラムにおいてオー
バライドを実行し(ステップS593)、サブプログラ
ムの軸移動指令に対して、軸移動速度にVsをかけた速
度で軸制御を行う。
【0181】この後においては、サブプログラムの実行
中ブロックが終了したことを判定し(ステップS59
4)、実行中ブロック終了の場合にはサブプログラムの
指定ブロック終了を判定する(ステップS595)。指
定ブロック終了時である場合にはオーバーライドを終了
する(ステップS596)。指定ブロック終了時でない
場合には、ステップS571に戻り、オーバライド量の
再計算を行う。
【0182】つぎに上述のプログラム起動時間調整処理
フロー(図15)に従った図14(a)、(b)のメイ
ンプログラムとサブプログラムの実行手順を説明する。
なお、ここではサブプログラムの実行速度を調節する場
合について説明する。
【0183】メインプログラムはブロック552でサブ
プログラムを呼び出すと共に、メインプログラムも続け
て実行する。
【0184】この指令で、メインプログラムのブロック
553からブロック554までの実行時間(Tm=Tm
a+Tmb)と、サブプログラムのブロック562から
ブロック563までの実行時間(Ts=Tsa+Ts
b)を計算する。
【0185】次に、移動速度計算処理部505により、
サブプログラムの実行時間を調節するため、サブプログ
ラムにおけるオーバライド量を計算する。
【0186】次に、サブプログラムにおいてオーバライ
ドをかけて、軸移動指令に対する送り速度を調節するこ
とによりサブプログラムの実行時間を調整する。これに
よりメインプログラムのブロック554とサブプログラ
ムのブロック563が同時に終了する。
【0187】図16は上述のようなメインプログラムと
サブプログラムの一動作例のタイミングチャートであ
る。
【0188】図16において、555から559はメイ
ンプログラムのタイミングチャートであり、555と5
57と559で軸が移動する。また、565から568
はサブプログラムのタイミングチャートで、565と5
67で軸が移動する。
【0189】5651から5681はサブプログラムの
実行時間を調整した場合のタイミングチャートである。
566と5661、568と5681はそれぞれ同じ時
間で、565と567の軸移動ブロックがそれぞれ56
51と5671の実行時間となるように軸送り速度が調
節される。
【0190】これにより555から559までの実行時
間と、5651から5681までの実行時間が同じにな
り、メインプログラムとサブプログラムの開始と完了が
同時になる。
【0191】(実施の形態6)図17はこの発明による
数値制御装置の実施の形態6を示している。尚、図17
に於いて、図1に対応する部分は図1に付した符号と同
一の符号を付けてその説明を省略する。
【0192】この数値制御装置においては、メモリ14
1に完了チェック条件設定プログラム601が割り付け
られ、また完了チェック条件解析処理部602が設けら
れる。
【0193】完了チェック条件設定プログラム601は
サブプログラムからメインプログラムへの復帰条件を設
定し、完了チェック条件解析処理部602は完了チェッ
ク条件設定プログラム601の解析処理を行う。
【0194】補間処理部103には、数値制御装置また
は工作機械の状態を知るためのNCステータステーブル
604と、NCステータステーブル604より設定した
サブプログラムからメインプログラムへの復帰条件を満
たしているか否かを判定する完了チェック条件判定部6
03と、完了チェック条件判定部603において条件を
満たすと判定された場合にセットする完了チェックカウ
ンタ605と、完了チェックカウンタ605の値によっ
てメインプログラムを再開するメインプログラム再開処
理部606とが設けられている。
【0195】以下に、系統1において$1メインプログ
ラム101よりサブプログラム121を呼び出す場合に
ついて説明する。
【0196】完了チェック条件設定プログラム601
は、$1メインプログラム101よりサブプログラム1
21を呼び出し、サブプログラム121の実行中に$1
メインプログラム101に復帰させるための条件を設定
する。
【0197】完了チェック条件解析処理部602は該完
了チェック条件設定プログラム601の解析処理を行
う。完了チェック条件解析処理部602により解析され
た内容に従い、完了チェック条件判定部603で、数値
制御装置または周辺装置の状態を表わしたNCステータ
ステーブル604により判定を行い、条件を満たす場合
には完了チェックカウンタ605をセットする。完了チ
ェックカウンタ605がセットされれば、メインプログ
ラム再開処理部606でメインプログラムを再開する。
【0198】図18(a)〜(c)は実施の形態6にて
使用されるメインプログラムとサブプログラムと完了チ
ェック条件設定プログラムの一具体例を示している。
【0199】図18(a)に示されているメインプログ
ラムにおいて、611はメインプログラムの実行開始ブ
ロック、612はサブプログラムを呼び出し、サブプロ
グラムをプログラム番号60、シーケンス番号100よ
り実行し、完了チェック条件設定プログラムをプログラ
ム番号10006を選択して、サブプログラムのシーケ
ンス番号200番以降において、完了チェック条件を判
定し、メインプログラムのシーケンス番号100の次ブ
ロックより再開する指令ブロックである。また613は
メインプログラムにおけるシーケンス番号100のブロ
ック、614はその次ブロックである。
【0200】図18(b)に示されているサブプログラ
ムは、上述のメインプログラムより呼び出されるサブプ
ログラムであり、621はサブプログラムのプログラム
番号を表わし、622はメインプログラムより呼び出さ
れ、実行開始するブロックである。623はブロック6
22の次ブロック、625はシーケンス番号200のブ
ロック、624はブロック625の前ブロック、626
はサブプログラムからメインプログラムへの復帰指令ブ
ロックである。
【0201】図18(c)に示されている完了チェック
条件設定プログラムにおいて、631はそのプログラム
番号、632は完了チェック条件を記述したものであ
る。
【0202】ここで、サブプログラムは図2に示されて
いるワーク搬送装置を制御するプログラムであり、Xs
ub軸とZsub軸に対して指令を行う。また、完了チ
ェック条件設定プログラムにおける632のR1345
はXsub軸の現在位置を表わし、R2001は完了チ
ェックカウンタである。
【0203】メインプログラムはブロック612でサブ
プログラムを呼び出し、サブプログラムはブロック62
2よりブロック626まで実行する。これに並行して、
メインプログラムはブロック613まで実行し、サブプ
ログラム完了待ち状態になる。
【0204】サブプログラムはブロック625の実行を
開始してから、完了チェック条件設定プログラムに記述
された内容を判定する。ここでは、Xsub軸の位置が
150mmよりも小さくなった時に完了チェックカウン
タR2001がセットされ、メインプログラムはブロッ
ク614より実行を再開する。
【0205】これにより、図2に示されているような加
工システムにおいて、ワーク搬送装置のアームが工作機
械171または工作機械172の加工室内より復帰し
て、工作機械171または工作機械172と干渉しあわ
ない位置まで移動したとき、工作機械171または工作
機械172は即時に加工を開始でき、加工のサイクルタ
イムを短縮できる。
【0206】(実施の形態7)図19はこの発明による
数値制御装置の実施の形態7を示している。尚、図19
において、図1、図6に対応する部分は図1、図6に付
した符号と同一の符号を付けてその説明を省略する。
【0207】この数値制御装置では、複数個の解析処理
部102a、102b…が各々加工プログラム選択部7
01、完了待ちキャンセル処理部702と、解析処理起
動部703と、補助指令/サブ系統起動処理選択部70
4と、起動系統選択部705とを有している。
【0208】補間処理部103は、補間演算を行う補間
処理手段200以外に、プログラム起動処理部305
と、ブロック実行調整部710と、ブロック実行タイミ
ング調整部711と、系統間同期処理部712と、系統
間同期無効処理部713とを有している。
【0209】メモリ145には、サブ系統起動データテ
ーブル720と、補助機能コードサブ系統起動パラメー
タテーブル721と、系統起動制御テーブル722とが
定義されている。
【0210】これらが設けられたことにより、数値制御
装置は、完了キャンセル待ち処理、サブ系統先読み起動
処理、補助機能コードによるサブ系統直接呼出し処理、
起動系統自動選択処理、サブ系統プログラム共用処理、
系統間同期無効処理を行うことができる。以下に、これ
ら各処理について詳細に説明する。
【0211】(完了キャンセル待ち処理)完了待ちキャ
ンセル部702は、サブ系統の完了を待っている系統
(親系統)の完了待ち状態を解除するものであり、サブ
系統の完了を待ってから次ブロックを実行するように指
令された親系統(メイン系統)に属するサブ系統完了待
ちフラグを、サブ系統における完了待ちキャンセル指令
でオフする。
【0212】ブロック実行調整部710は、完了待ちキ
ャンセル部702により完了待ち状態を解除された系統
の次ブロックの実行開始を調整するものであり、サブ系
統完了待ちフラグがオフになった親系統の次ブロックの
実行開始禁止を解除することによって親系統のサブ系統
完了待ち状態を解除する。
【0213】つぎに、図20(a)、(b)、図21を
参照して完了待ちキャンセル処理について説明する。
【0214】サブ系統では、図20(a)に示されてい
るように、サブ系統で実行する加工プログラムの次ブロ
ックが完了待ちキャンセル指令であるであるか否かを判
別し(ステップS730)、完了待ちキャンセル指令で
あれば、完了待ちキャンセル部702によって親系統側
のサブ系統完了待ちフラグをオフする(ステップS73
1)。
【0215】親系統では、図20(b)に示されている
ように、サブ系統起動指令であるか否かを判別し(ステ
ップS741)、サブ系統起動指令でなければ、他の指
令の解析処理を行う(ステップS742)。サブ系統起
動指令であれば、これがサブ系統完了待ちタイプである
か否かを判別し(ステップS743)、サブ系統完了待
ちフラグをオンする(ステップS744)。
【0216】つぎにサブ系統完了待ちフラグがオフであ
るか否かを判別し(ステップS745)、サブ系統完了
待ちフラグがオフでない場合には親系統における次ブロ
ックの実行開始を禁止する(ステップS76)。これ
に対しサブ系統完了待ちフラグがオフの場合にはブロッ
ク実行調整部710が親系統における次ブロックの実行
開始禁止を解除する(ステップS747)。
【0217】これによりサブ系統からの指令で、親系統
のサブ系統完了待ちを任意の時点でキャンセルすること
ができる。
【0218】図21は完了待ちキャンセルの加工プログ
ラム例を示している。系統1(親系統)のM112指令
によりサブプログラムの呼出しが行われ、サブプログラ
ムはG144指令によってサブ系統を起動する。G14
4指令のパラメータがA102B2D0であることによ
り、プログラム番号102のマクロプログラム(例え
ば、自動旋盤の背面チャック後退動作プログラム)をサ
ブ系統[2]がサブ系統完了待ちタイプで実行する。背
面チャック後退動作プログラムのG145指令が完了待
ちキャンセル指令であり、サブ系統におけるG0Z10
指令実行後に完了待ちキャンセル指令が実行されること
によって親系統における次ブロックの実行開始禁止が解
除される。
【0219】これにより自動旋盤などの工作機械におい
て、親系統のワーク、刃物台などが前進しても、ワー
ク、刃物台が背面チャックと干渉しない位置まで背面チ
ャックが後退した時点で、背面チャックの後退動作が完
了することを待たずにワーク、刃物台などの前進が開始
される。このため、サイクルタイムが短縮される。一回
のサイクルタイムの短縮が微々たるものであっても、小
さい部品を切削加工する自動旋盤のように、一回のサイ
クルタイムが短く、一日の製造個数が多いものでは、生
産効率の向上に大きく寄与する。
【0220】(サブ系統先読み起動処理)解析処理起動
部703は、メインプログラムにおけるサブ系統起動指
令を先読み解析し、サブ系統の解析処理を開始させる。
【0221】サブ系統起動データテーブル720は、解
析処理起動部703によるサブ系統起動指令の先読み解
析に基づいてサブ系統起動のためのデータをサブ系統解
析処理部(例えば、解析処理部102b)に渡す。
【0222】ブロック実行タイミング調整部711は、
サブ系統解析処理部によるサブ系統プログラムの解析処
理が完了した時点でサブ系統の第1ブロック補間処理を
開始するタイミングを調整する。
【0223】つぎに、図22(a)、(b)、図23、
図24を参照して先読みサブ系統起動処理について説明
する。
【0224】図22(a)は親系統によるサブ系統起動
処理ルーチンを示している。親系統では、先ず指令がG
コードによるであるか否かを判別し(ステップS75
0)、Gコードでない場合には、他の処理を行う(ステ
ップS751)。Gコードの場合には、先読みタイプの
サブ系統起動指令(G144指令)であるか否かを判別
する(ステップS752)。G144指令でない場合に
は、他のGコードの処理を行う(ステップS753)。
【0225】G144指令である場合には、サブ系統起
動データセット処理として、サブ系統起動指令の先読み
解析に基づいてサブ系統起動データテーブル720にサ
ブ系統起動のためのデータ(G144指令に続くパラメ
ータ値)をセットし(ステップS754)、解析処理起
動部703がサブ系統解析処理部の起動処理を行い(ス
テップS755)、系統起動制御テーブル722に起動
系統データをセットする(ステップS756)。
【0226】図22(b)はサブ系統による加工プログ
ラム実行プロセス処理ルーチンを示している。サブ系統
はサブ系統起動データテーブル720にセットされた起
動系統データに基づいて加工プログラム選択部701が
サブ系統の加工プログラムを選択し、サブ系統第1ブロ
ックの解析データセットが完了すれば(ステップS76
0)、つぎにそれが先読み起動が可能なものであるか否
かを判別する(ステップS761)。このサブ系統第1
ブロックの解析データセットは親系統におけるG144
の前のブロックの補間処理に並行して行われ、この補間
処理が完了する以前に完了することができる。
【0227】先読み起動が可能でない場合には、親系統
のG144指令の前ブロックの動作が完了していること
を待つが(ステップS762)、先読み起動が可能であ
れば、親系統のG144指令の前ブロックの動作完了を
待たずにブロック実行データをセットし(ステップS7
63)、補間処理を実行する(ステップS764)。
【0228】これにより親系統におけるG144の前の
ブロックの実行中にサブ系統第1ブロックを実行開始す
ることになる。
【0229】上述の動作により、サブ系統起動指令の解
析段階で、サブ系統の第1ブロックの解析処理が開始さ
れ、親系統でサブ系統起動指令ブロツクを処理する時に
は既に先読みでサブ系統を実行開始することができる。
このため、加工サイクルにおいて、サブ系統の起動処理
に要する時間をなくす事ができ、サイクル時間が短縮さ
れる。
【0230】図23は先読みサブ系統起動処理を含む加
工プログラム例を、図24は先読みサブ系統起動処理が
適用される工作機械(自動旋盤)を示している。
【0231】この場合、系統1でG144指令を先読み
して解析処理を行った時点で、サブ系統[3]を起動す
るため、系統1の工具1が切り上げ動作(G0X10指
令)を行いつつ、G0X0.Z3.0指令で、サブ系統
[3]のセンタ穴空け工具(工具2)が加工開始位置に
位置決めすることができる。
【0232】なお、切り上げ指令の前に、G144指令
が行われれば、先読みが行われなくとも工具1による切
り上げ動作と工具2の位置決め動作とを並行させて行う
ことが可能であるが、この場合には切り上げ動作時にサ
ブ系統[3]の起動処理時間がかかるため、系統1の加
工に影響を与えることになる。
【0233】これに対して、上述のように先読み起動を
行うことによって、系統1に影響を与えずにサブ系統
[3]の起動を早めることができる。
【0234】(補助機能コードサブ系統直接呼出し処
理)補助機能コードサブ系統起動パラメータテーブル7
21は、メインプログラムにおいてサブ系統を直接起動
できる補助機能コード(M114)を設定する。
【0235】補助指令/サブ系統起動処理選択部704
は、メインプログラムにおいて指令された補助機能コー
ドがサブ系統の起動を指令する補助指令か、それ以外の
補助指令であるかを選択(判別)する。
【0236】解析処理部102aにて補助指令/サブ系
統起動処理選択部704によってMSTB(補助機能コ
ード)指令が選択されると、補助機能コードサブ系統起
動パラメータテーブル721をチェックし、補助機能コ
ードサブ系統起動の設定があれば、同じく設定されてい
るサブ系統起動データを解析処理起動部703によって
サブ系統起動データテーブル720にセットし、サブ系
統解析処理部を起動する。
【0237】つぎに、図25、図26を参照して補助機
能コードによるサブ系統直接呼出し処理について説明す
る。
【0238】図25は親系統による補助機能コードサブ
系統直接呼出し処理ルーチンを示している。親系統で
は、先ず指令がMSTB指令であるか否かを判別し(ス
テップS770)、MSTB指令でない場合には、他の
処理を行う(ステップS771)。MSTB指令の場合
には、補助指令/サブ系統起動処理選択部704によっ
て補助機能コードサブ系統起動パラメータテーブル72
1に補助機能コードサブ系統起動の設定があるか否かを
判別する(ステップS772)。この設定がない場合に
は、他の補助機能指令処理を行う(ステップS77
3)。
【0239】補助機能コードサブ系統起動の設定がある
場合には、解析処理起動部703によってサブ系統起動
データをサブ系統起動データテーブル720にセットし
(ステップS774)、サブ系統解析処理部を起動する
(ステップS775)。
【0240】図26は、系統1で、サブ系統を直接起動
するM114指令が解析された場合に、ユーザプログラ
ムからサブ系統[4]が直接起動されることを示すイメ
ージ図である。
【0241】これによりオペレータが指令した補助指令
によってマイクプログラムを介さずにサブ系統を直接起
動できるから、マイクプログラムの起動時間を短縮で
き、またプログラム長を短縮でき、メモリを節約するこ
とができる。
【0242】(起動系統自動選択処理)系統起動制御テ
ーブル722は、解析処理起動部702とリンクし、各
処理系列の一連処理の実行状態を示すデータを書き込ま
れる。この系統起動制御テーブル722は、系統情報テ
ーブルであり、各系統毎に系統専有フラグのオンオフ状
態を書き込まれる。ここでは、系統専有フラグがオンで
あれば、その系統は既に親系統あるいはサブ系統を割り
付けられて使用中であることを示す。
【0243】起動系統選択部705は、系統起動に際し
て系統起動制御テーブル722に書き込まれたデータよ
り一連処理を実行していない処理系列を選び、起動する
系統の一連処理を実行させるように割り付ける。
【0244】図27は起動系統自動選択処理によるサブ
系統解析部の起動処理ルーチンを示している。親系統の
解析処理部102aは、先ず系統ループカウンタをセッ
トする(ステップS780)。つぎに、起動系統選択部
705が予めパラメータによって定義されたサブ系統起
動用の系統であるか否かを確認し(ステップS78
1)、サブ系統起動用の系統であれば、同起動系統選択
部705が系統起動制御テーブル722のなかのサブ系
統使用情報をもってサブ系統運転中でないか否かを判別
する(ステップS782)。確認したサブ系統が使用中
でなければ、系統起動制御テーブル722の系統起動フ
ラグをオンし、新たに設定した系統起動制御テーブル7
22にサブ系統識別番号データをセットする(ステップ
S783)。
【0245】使用していないサブ系統が見つからない場
合には、系統ループカウンタでセットした回数だけ使用
中でないサブ系統が見つかるまでループを繰り返す(ス
テップS784)。なお、系統ループカウンタでセット
した回数だけループを繰り返しても使用中でないサブ系
統が見つからない場合にはサブ系統起動不可フラグをオ
ンする(ステップS785)。
【0246】これにより、同時に実行する系統数が数値
制御装置の処理能力によって決まる系統数内であれば、
何系統でも発生されることができる。
【0247】(サブ系統プログラム共用処理)各解析処
理部に設けられている加工プログラム選択部701は、
ある系統においてサブ系統で実行するように指令された
プログラム番号の加工プログラムが同一系統の加工プロ
グラムとして存在するか否かを判別し、同一系統で指令
プログラム番号の加工プログラムが存在する場合にはそ
の加工プログラムを選択し、同一系統で指令プログラム
番号の加工プログラムが存在しない場合には予め設定さ
れた系統、例えば系統1に存在する指令プログラム番号
と同一のプログラム番号の加工プログラムを選択する。
【0248】図28はサブ系統プログラム共用処理にお
けるサブ系統実行プログラム選択処理ルーチンを示して
いる。先ず、指令されたプログラム番号の、呼び出した
系統と同じ系統の加工プログラムが空であるか否かを判
別する(ステップS790)。これは、例えば、系統2
で、プログラム番号が9101の加工プログラムの呼び
出しを行った場合に、系統2にプログラム番号が910
1の加工プログラムが存在するか否かと云うことであ
る。
【0249】空でない場合には、起動するサブ系統で
は、指令されたプログラム番号の、メイン系統(同系
統)の加工プログラムを実行する(ステップS79
1)。
【0250】空の場合には、指令されたプログラム番号
の、系統1の加工プログラムが空きであるか否かを判別
し(ステップS792)、空でない場合には、起動する
サブ系統では、指令されたプログラム番号の、系統1の
加工プログラムを実行する(ステップS793)。な
お、指令されたプログラム番号の、系統1の加工プログ
ラムが空きである場合には、指令されたプログラム番号
の加工プログラムを実行することができないから、エラ
ー処理を行う(ステップS794)。
【0251】これによりサブ系統で実行する加工プログ
ラムを総て系統1に記述することができる。
【0252】図29(a)は図30に示されているよう
なセパレータ付き自動旋盤の加工プログラムの構成例を
示している。この加工プログラムでは、系統1(工具1
切削プログラム)と系統2(工具2切削プログラム)の
共通の加工プログラムとして、プログラム番号が「91
01」のセパレータ制御プログラムが系統1にのみ存在
する。
【0253】図29(b)に示されているように、系統
1において、G144指令で、A9101のプログラム
番号が指定されても、系統2において、G144指令
で、A9101のプログラム番号が指定されても、サブ
系統[1]におけるプログラム番号9101のセパレー
タ制御プログラムが起動する。換言すれば、プログラム
番号9101のセパレータ制御プログラムは系統1と系
統2とで共用し、系統1がそのプログラムの書庫系統に
なる。
【0254】このことにより各系統毎のプログラム作成
の手間を省くことができ、併せてメモリを節約できる。
【0255】(系統間同期無効処理)補間処理部103
に設けられている系統間同期処理部712は系統間同期
の補間処理を行い、系統間同期無効処理部713はシン
グルブロック運転時に系統間同期処理部712による系
統間同期の補間処理を選択的に同期処理の対象より除外
する。ここで云う系統間とは(親)系統間、(親)系統
とサブ系統間のいずれを含むものである。
【0256】図31は系統間同期無効処理ルーチンを示
している。先ず、シングルブロック要求があるか否かを
判別し(ステップS800)、シングルブロック要求が
ある場合にはシングルブロック停止する(ステップS8
01)。
【0257】つぎに多系統シングルブロックが有効であ
るか否かを判別し(ステップS802)、多系統シング
ルブロックが有効であれば、系統ループカウンタデータ
をセットする(ステップS803)。
【0258】つぎに系統間同期無効処理部713によっ
て系統間同期無効が行われている否かを判別する(ステ
ップS804)。系統間同期無効でない場合には、フィ
ードホールド停止するが(ステップS805)、系統間
同期無効の場合にはフィードホールド停止を行わず、動
作を続行する。この系統間同期無効の有無を系統ループ
カウンタにセットされた回数繰り返す(ステップS80
6)。
【0259】図32は系統間同期無効のプログラム例を
示している。系統1において、M111指令によりサブ
プログラムの呼び出しが行われ、サブプログラムがG1
44でサブ系統[1](チャック開動作系統)を起動す
る。サブ系統の”#3003=8;”の指令によりチャ
ック開動作は系統間同期無効を宣言する。
【0260】これにより、多系統シングルブロック運転
時の系統1のシングルブロックによってサブ系統[1]
のチャック開動作が途中で停止しない。
【0261】
【発明の効果】以上の説明より明かなように、この発明
による数値制御装置によれば、サブプログラムによって
制御できる軸を設定して、サブプログラム解析処理部に
より各系統のメインプログラムとは別に加工プログラム
解析処理を行なうようにしたため、任意の系統よりサブ
プログラムを呼び出すことができ、更に、このサブプロ
グラムを呼び出すことにより系統において制御できる軸
を付加できる。また、サブプログラムによって制御でき
る軸をメインプログラムの制御軸とは別に設定できるよ
うにしたため、サブプログラムをメインプログラムと並
列に実行することが可能となり、加工のサイクルタイム
を短縮できる。また、例えば加工システムの付帯設備で
あるワーク搬送装置などの制御は、従来、加工プログラ
ムの補助指令等によって、例えば付加軸用の位置決めコ
ントローラを用いて制御していたが、この発明による数
値制御装置では、一つの数値制御装置によって付加軸の
制御も行え、別の位置決めコントローラを不要とし、工
作機械の製造コストを低く抑えることができる。また、
メインプログラムとサブプログラムを直列または並列に
適宜切り換えて実行できるため、例えばメインプログラ
ムとサブプログラムを並列に実行すると機械が干渉しあ
うような場合に、一方のプログラムを実行中に他方のプ
ログラムを実行したくない時には直列運転を行い、ま
た、例えば、サブプログラムを実行している間にメイン
プログラムによる次の加工の準備を行いたいような場合
に、一方のプログラムを実行中に他方のプログラムも実
行したい時には並列運転を行うように、直列運転と並列
運転とを適宜切り換えることができる。また、メインプ
ログラムとサブプログラムを並列に実行する場合の、加
工前の試運転において、メインプログラムによる動作と
サブプログラムの動作を別々に確認したい場合に、工作
機械のスイッチを入力することによってプログラム並列
運転カウンタリセット信号を出力するシーケンス回路を
作成することによって、メインプログラムとサブプログ
ラムを直列に実行して、各々の動作をそれぞれ確認する
ことができる。
【0262】
【0263】
【0264】
【0265】
【0266】つぎの発明による数値制御装置において
は、メインプログラム、サブプログラムあるいは数値制
御装置に接続されているシーケンス回路により直列運転
あるいは並列運転の指令を行うことができ、この指令が
ユーザフレンドリに行われ得るようになる。
【0267】つぎの発明による数値制御装置によれば、
NCステータステーブルより軸の位置や主軸の回転数、
モータ電流値に応じて、ユーザが任意にサブプログラム
または該サブプログラムを呼び出したメインプログラム
の起動を調整し、またNCステータステーブルより別系
統の制御軸の状態等も得ることができるため、その制御
軸の状態に応じて加工プログラムの起動を調整すること
によって、詳細に系統間の同期をとることもできる。
ぎの発明による数値制御装置によれば、サブプログラム
のメインプログラムへの復帰後のメインプログラムの再
開を、数値制御装置または周辺機器の状態によって、例
えば軸の位置や主軸の回転数、モータ電流値に応じて、
ユーザが任意に調整できる。また、サブプログラムから
メインプログラムへの復帰指令を待たずにメインプログ
ラムを再開できるため、加工のサイクルタイムを短縮で
きる。
【0268】つぎの発明による数値制御装置によれば、
メインプログラムの指定ブロックとサブプログラムの実
行終了時を同時にすることができる。例えばサブプログ
ラムにセパレータの移動用プログラム、メインプログラ
ムのサブプログラム呼び出し指令からサブプログラム終
了時の指定ブロックまでにワーク切断用プログラムを作
成しておくことによって、セパレータはワーク切断時に
発生する切り粉の入り込む量を減らして切断されたワー
クを受け取ることができる。
【0269】つぎの発明による数値制御装置によれば、
プログラム起動調整に伴い指令に対する軸移動の遅延時
間が補正され、この軸移動の遅延時間が補償される。
ぎの発明による数値制御装置によれば、従来は補助指令
については、その指令による動作や機械の仕様によって
処理時間が異なるため、補助指令のある加工プログラム
の処理時間を計算することができなかったが、補助指令
処理時間定義テーブルを設けたことによって、補助指令
を含む加工プログラムの実行時間も計算できるようにな
る。
【0270】つぎの発明による数値制御装置によれば、
メインプログラムとサブプログラムを並列に実行し、そ
の開始と完了を同時にさせることができる。また、メイ
ンプログラムでの制御軸と、サブプログラムを呼び出し
たことにより追加された制御軸について、お互いの指令
を同期させることができる。
【0271】
【0272】つぎの発明による数値制御装置によれば、
従来は補助指令については、その指令による動作や機械
の仕様によって処理時間が異なるため、補助指令のある
加工プログラムの処理時間を計算することができなかっ
たが、補助指令処理時間定義テーブルを設けたことによ
って、補助指令を含む加工プログラムの実行時間も計算
できるようになる。
【0273】
【0274】
【0275】
【0276】
【0277】
【0278】
【0279】
【図面の簡単な説明】
【図1】 この発明による数値制御装置の実施の形態1
を示すブロック線図である。
【図2】 この発明による数値制御装置によって制御さ
れる加工システムの一具体例を示す説明図である。
【図3】 この発明による数値制御装置の実施の形態2
を示すブロック線図である。
【図4】 (a)、(b)は補助指令によりプログラム
並列運転カウンタをセットまたはリセットするためのシ
ーケンスプログラムを示すフローチャートである。
【図5】 (a)、(b)は実施の形態2の数値制御装
置にて使用されるメインプログラムとサブプログラムと
を示すリスト図である。
【図6】 この発明による数値制御装置の実施の形態3
を示すブロック線図である。
【図7】 (a)〜(d)は実施の形態3の数値制御装
置にて使用されるメインプログラム(系統1)とサブプ
ログラムとメインプログラム(系統2)と起動条件設定
プログラムの一具体例を示すリスト図である。
【図8】 この発明による数値制御装置の実施の形態4
を示すブロック線図である。
【図9】 実施の形態4の数値制御装置にて使用される
補助指令処理時間定義テーブルの例を示す説明図であ
る。
【図10】 (a)、(b)は実施の形態4の数値制御
装置にて使用されるメインプログラムとサブプログラム
との例を示すリスト図である。
【図11】 実施の形態4の数値制御装置におけるプロ
グラム起動時間調整処理フローを示すフローチャートで
ある。
【図12】 実施の形態4の数値制御装置によって制御
される工作機械の一具体例を示す説明図である。
【図13】 この発明による数値制御装置の実施の形態
5を示すブロック線図である。
【図14】 (a)、(b)は実施の形態5の数値制御
装置にて使用されるメインプログラムとサブプログラム
との例を示すリスト図である。
【図15】 実施の形態5の数値制御装置におけるプロ
グラム起動時間調整処理フローを示すフローチャートで
ある。
【図16】 実施の形態5の数値制御装置におけるメイ
ンプログラムとサブプログラムの実行動作例を示すタイ
ミングチャートである。
【図17】 この発明による数値制御装置の実施の形態
6を示すブロック線図である。
【図18】 (a)、(b)は実施の形態6の数値制御
装置にて使用されるメインプログラムとサブプログラム
との例を示すリスト図である。
【図19】 この発明による数値制御装置の実施の形態
7を示すブロック線図である。
【図20】 (a)は完了待ちキャンセル処理のサブ系
統側のフローチャート、(b)は完了待ちキャンセル処
理の親系統側のフローチャートである。
【図21】 完了待ちキャンセルの加工プログラム例を
示す説明図である。
【図22】 (a)は先読みサブ系統起動処理の親系統
おけるサブ系統処理ルーチンを示すフローチャート、
(b)は先読みサブ系統起動処理のサブ系統おける加工
プログラム実行プロセス処理ルーチンを示すフローチャ
ートである。
【図23】 先読みサブ系統起動の加工プログラム例を
示す説明図である。
【図24】 先読みサブ系統起が適用される工作機械の
一例を示す説明図である。
【図25】 補助機能コードサブ系統呼出し処理ルーチ
ンを示すフローチャートである。
【図26】 補助機能コードサブ系統呼出しの加工プロ
グラム例を示す説明図である。
【図27】 起動系統自動選択処理ルーチンを示すフロ
ーチャートである。
【図28】 サブ系統実行プログラム選択処理ルーチン
を示すフローチャートである。
【図29】 (a)はセパレータ付き自動旋盤の加工プ
ログラムの構成例を示す説明図、(b)はサブ系統プロ
グラム共用の加工プログラム例を示す説明図である。
【図30】 サブ系統プログラムを共用できるセパレー
タ付き自動旋盤を示す説明図である。
【図31】 系統間同期無効処理ルーチンを示すフロー
チャートである。
【図32】 系統間同期無効のプログラム例を示す説明
図である。
【図33】 従来における数値制御装置の一例を示すブ
ロック線図である。
【符号の説明】
100 系統1軸定義部,101 系統1メインプログ
ラム,102 系統1解析処理部,102a,102b
解析処理部,103 補間処理部,104軸制御部,
105 軸移動量出力回路,106 サーボ制御部,1
07 サーボモータ,110 系統2軸定義部,111
系統2メインプログラム,112系統2解析処理部,
116 サーボ制御部,117 サーボモータ,120
$[1]軸定義部,121 サブプログラム,122
$[1]解析処理部,126 サーボ制御部,127
サーボモータ,130 $[2]軸定義部,131サ
ブプログラム,132 $[2]解析処理部,136
サーボ制御部,137 サーボモータ,140 パラメ
ータ設定部,141 メモリ,142 画面表示部,1
43 表示ユニット,145,メモリ,151 機械制
御信号処理部,152 シーケンス回路,155 主軸
回転数出力回路,156 主軸制御部,157 主軸モ
ータ,200 補間処理手段,201 直列並列切り換
え処理部,202 プログラム並列運転カウンタ,20
3 カウンタ入力部,301起動条件設定プログラム,
302 起動条件解析処理部,303 プログラム起動
条件判定部,304 NCステータステーブル,305
プログラム起動処理部,401 $1ブロック実行時
間計算処理部,402 補間時間計算処理部,403
補助指令処理時間定義テーブル,404 プログラム実
行時間計算処理部,405 プログラム起動時間調整処
理部,406 軸移動遅延時間補正処理部,411 $
2ブロック実行時間計算処理部,421 $[1]ブロ
ック実行時間計算処理部,431 $[2]ブロック実
行時間計算処理部,501 $1ブロック実行時間計算
処理部,502 軸移動指令実行時間処理部,503
補助指令処理時間定義テーブル,504 プログラム実
行時間計算処理部,505移動速度計算処理部,506
補間時間計算処理部,511 $2ブロック実行時間
計算処理部,521 $[1]ブロック実行時間計算処
理部,531 $[2]ブロック実行時間計算処理部,
601 完了チェック条件設定プログラム,602 完
了チェック条件解析処理部,603 完了チェック条件
判定部,604 NCステータステーブル,605 完
了チェックカウンタ,606 メインプログラム再開処
理部,701 加工プログラム選択部,702 完了待
ちキャンセル処理部,703 解析処理起動部,704
補助指令/サブ系統起動処理選択部,705 起動系
統選択部,710 ブロック実行調整部,711 ブロ
ック実行タイミング調整部,712 系統間同期処理
部,713 系統間同期無効処理部,720 サブ系統
起動データテーブル,721 補助機能コードサブ系統
起動パラメータテーブル,722 系統起動制御テーブ
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平3−28908(JP,A) 特開 平7−49707(JP,A) (58)調査した分野(Int.Cl.7,DB名) G05B 19/18 - 19/46 B23Q 15/00 - 15/28 G05D 3/00 - 3/20

Claims (9)

    (57)【特許請求の範囲】
  1. 【請求項1】 各系統毎にメインプログラムを設定さ
    れ、メインプログラムによって呼び出されるサブプログ
    ラムを含む加工プログラムを実行することによって複数
    の制御軸を駆動する数値制御装置において、 各系統毎に設けられ、各系統のメインプログラムによる
    制御軸を前記複数の制御軸の中から定義するメインプロ
    グラム軸定義部と、 各系統のメインプログラムの解析処理を各系統毎に実行
    するメインプログラム解析処理部と、 メインプログラムによる制御軸の定義とは別にサブプロ
    グラムによる制御軸を定義するサブ系統軸定義部と、 メインプログラムの解析処理とは別にサブプログラムの
    解析処理を行うサブプログラム解析処理部と、メインプログラムとサブプログラムの実行を直列および
    並列の何れかに切り換える直列または直列並列切換部
    と、 を有し、メインプログラムとサブプログラムの実行を直
    列または並列に処理可能とした ことを特徴とする数値制
    御装置。
  2. 【請求項2】 直列並列切換部は、メインプログラム、
    サブプログラムあるいは数値制御装置に接続されている
    シーケンス回路より直列運転あるいは並列運転の指令を
    取り込むことを特徴とする請求項に記載の数値制御装
    置。
  3. 【請求項3】 サブプログラムまたはメインプログラム
    の次ブロックの起動条件が設定される起動条件設定プロ
    グラムと、 前記起動条件設定プログラムの解析処理を行う起動条件
    解析処理部と、 数値制御装置または数値制御工作機械の状態を示すNC
    ステータステーブルと、 前記NCステータステーブルから得られる情報を用い
    て、前記設定されたプログラム起動条件を満たしている
    か否かを判定するプログラム起動条件判定部と、をさらに 有し、前記起動条件設定プログラムによりユー
    ザが任意にサブプログラムまたはメインプログラムの次
    ブロックの実行開始条件を設定可能としたことを特徴と
    する請求項1に記載の数値制御装置。
  4. 【請求項4】ブプログラムからメインプログラムへ
    の復帰条件を設定する完了チェック条件設定プログラム
    と、 前記完了チェック条件設定プログラムの解析処理を行う
    完了チェック条件解析処理部と、 数値制御装置または工作機械の状態を示すNCステータ
    ステーブルと、 前記NCステータステーブルから得られる情報を用い
    て、前記設定されたサブプログラムからメインプログラ
    ムへの復帰条件を満たしているか判定する完了チェック
    条件判定部と、をさらに 有し、サブプログラムのメインプログラムへの
    復帰指令を待たずにメインプログラムの実行を再開可能
    としたことを特徴とする請求項1に記載の数値制御装
    置。
  5. 【請求項5】工プログラムのブロックごとに各ブロ
    ックの実行時間を計算するブロック実行時間計算処理部
    と、 前記ブロック実行時間計算処理部の計算結果より加工プ
    ログラムの実行時間を計算するプログラム実行時間計算
    処理部と、 前記プログラム実行時間計算処理部により計算されたプ
    ログラム実行時間に基づいてサブプログラムが該サブプ
    ログラムを呼び出したメインプログラムの指定ブロック
    の実行終了と同時に終了するようにメインプログラムの
    次ブロックまたはサブプログラムの起動を調整するプロ
    グラム起動時間調整処理部と、 をさらに有し、サブプログラムが該サブプログラムを呼
    び出したメインプログラムの指定ブロックの実行終了と
    同時に終了させるようにしたことを特徴とする請求項1
    に記載の数値制御装置。
  6. 【請求項6】 前記プログラム起動時間調整処理部によ
    るプログラム起動調整処理に伴い指令に対する軸移動の
    遅延時間を補正する軸移動遅延時間補正処理部を有して
    いることを特徴とする請求項5に記載の数値制御装置。
  7. 【請求項7】 加工プログラムの補助指令の処理時間を
    設定する補助指令処理時間定義テーブルをさらに有し、
    前記プログラム実行時間計算処理部は前記ブロック実行
    時間計算処理部の計算結果と前記補助指令処理時間定義
    テーブルに設定された補助指令の処理時間とに基づき
    工プログラムの実行時間を計算することを特徴とする請
    求項5または6に記載の数値制御装置。
  8. 【請求項8】工プログラムの実行時間を計算するプ
    ログラム実行時間計算処理部と、 前記プログラム実行時間計算処理部により計算された加
    工プログラム実行時間に基づいてサブプログラムが該サ
    ブプログラムを呼び出したメインプログラムの指定ブロ
    ック同時に終了するためのメインプログラムによって
    駆動される軸またはサブプログラムによって駆動される
    軸のうちの一方の軸の軸移動速度を計算する移動速度計
    算処理部と、をさらに 有し、メインプログラムとサブプログラムとを
    並列に実行中に前記移動速度計算処理部の計算結果に
    基づき前記一方の軸の軸移動速度を調整することによ
    り、指定したブロックでのメインプログラム及びサブプ
    ログラムの実行時間を同一にすることを特徴とする請求
    項1に記載の数値制御装置。
  9. 【請求項9】 加工プログラムのブロック毎に各ブロッ
    クの実行時間を計算するブロック実行時間計算処理部
    と、加工プログラムの補助指令の処理時間を設定する補
    助指令処理時間定義テーブルとをさらに有し、前記プロ
    グラム実行時間計算処理部は前記ブロック実行時間計算
    処理部の計算結果と前記補助指令処理時間定義テーブル
    に設定された補助指令の処理時間とに基づき加工プログ
    ラムの実行時間を計算することを特徴とする請求項
    記載の数値制御装置。
JP15464696A 1996-02-14 1996-06-14 数値制御装置 Expired - Fee Related JP3512559B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP15464696A JP3512559B2 (ja) 1996-02-14 1996-06-14 数値制御装置

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP8-26898 1996-02-14
JP2689896 1996-02-14
JP15464696A JP3512559B2 (ja) 1996-02-14 1996-06-14 数値制御装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2003077796A Division JP3761179B2 (ja) 1996-02-14 2003-03-20 数値制御装置

Publications (2)

Publication Number Publication Date
JPH09282019A JPH09282019A (ja) 1997-10-31
JP3512559B2 true JP3512559B2 (ja) 2004-03-29

Family

ID=26364753

Family Applications (1)

Application Number Title Priority Date Filing Date
JP15464696A Expired - Fee Related JP3512559B2 (ja) 1996-02-14 1996-06-14 数値制御装置

Country Status (1)

Country Link
JP (1) JP3512559B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004318762A (ja) * 2003-04-21 2004-11-11 Fanuc Ltd 数値制御装置
JP5211192B2 (ja) * 2011-03-23 2013-06-12 三菱電機株式会社 数値制御方法及びその装置
JP5657623B2 (ja) * 2012-09-21 2015-01-21 ファナック株式会社 系統間待合せ機能を有する数値制御装置
JP5687302B2 (ja) * 2013-04-04 2015-03-18 三菱電機株式会社 負荷駆動制御装置及び負荷駆動制御方法
JP5715195B2 (ja) * 2013-07-03 2015-05-07 ファナック株式会社 プログラム実行ペースを指定できるモーションコントローラ
JP5715217B2 (ja) * 2013-10-18 2015-05-07 ファナック株式会社 プログラムの先読み機能を備えた数値制御装置
JP6748146B2 (ja) * 2018-05-17 2020-08-26 ファナック株式会社 制御装置、制御方法及び制御プログラム
CN113433894B (zh) * 2021-07-17 2022-12-13 中山迈雷特数控技术有限公司 基于工业pc的多通道多轴联动的数控系统及方法
CN113433892B (zh) * 2021-07-17 2022-05-20 中山迈雷特数控技术有限公司 多通道数控系统中的同步控制方法

Also Published As

Publication number Publication date
JPH09282019A (ja) 1997-10-31

Similar Documents

Publication Publication Date Title
JP3512559B2 (ja) 数値制御装置
US9310799B2 (en) Numerical controller having function of operation based on table format data
US20040236462A1 (en) Numerical control apparatus for machine tool
JPH02155004A (ja) 加工プログラム修正方法
EP0803786B1 (en) Execution control system of sequence program
EP0230471B1 (en) Manual operation system for machine controlled by numerical control unit
US11402822B2 (en) Numerical controller
JP3413954B2 (ja) モーションコントローラ
JP2003288107A (ja) 数値制御装置
JPH11143519A (ja) 数値制御における加減速制御方法および数値制御装置
JP4116640B2 (ja) 多系統制御機能を有する数値制御装置
US5485069A (en) Numerical control apparatus
JP2880170B2 (ja) ブロックオーバラップ方法
JP3198010B2 (ja) 工作機械の制御方法及び制御装置
JPH11104934A (ja) 自動工具交換動作時の主軸頭移動の制御方法および装置
JPH06738A (ja) 工具交換方法
JP4208600B2 (ja) Nc工作機械
JPH056213A (ja) 産業用ロボツト制御方法およびその装置
JPH055123B2 (ja)
JP2702555B2 (ja) 数値制御装置の再順行方法
JP3460747B2 (ja) 数値制御装置
JP2992163B2 (ja) 数値制御方法及び装置
JP7283875B2 (ja) 数値制御装置
JP2522040B2 (ja) 位置決め機能付きプログラムコントロ―ラのプログラム入力方法
JPH0916231A (ja) 数値制御装置

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040106

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040107

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

Free format text: PAYMENT UNTIL: 20080116

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090116

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100116

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20100116

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110116

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20120116

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20130116

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20130116

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees