以下本発明の一実施形態の工作機械2について図面を参照して説明する。以下、図1に於ける、左斜め下を工作機械2の前側とし、右斜め上を工作機械2の後側とする。また、工作機械2の前側から向かって右側、左側を夫々右側、左側とする。図1、図2に示すように、工作機械2は前後に長い矩形箱形の基台部1を備える。基台部1は下部の四隅に脚3を夫々備える。工作機械2は基台部1の上面に、主軸ヘッド38を保持するコラム35と、被加工物を保持する被加工物保持装置100とを備える。被加工物保持装置100は基台部1の前側に位置し、コラム35は後側に位置する。
基台部1は上面に前後方向に長い直方体状の支持体30を備える。支持体30は基台部1と一体に成形してある。支持体30の上面における左右端部には、前後方向(Y軸方向)に長いY軸レール32、32が夫々設けてある。各Y軸レール32には、二つのスライダ32A、32Aが摺動可能に嵌合している。支持体30の上面において、Y軸レール32に平行なY軸ボールねじ機構32BがY軸レール32の間に固定してある。Y軸ボールねじ機構32Bの後端部に、Y軸ボールねじ機構32Bを駆動するY軸モータ52が設けてある。
両Y軸レール32、32の上側に、左右方向(X軸方向)に長い二つのX軸レール31、31が前後に並設してある。X軸レール31は、各Y軸レール32、32に嵌合したスライダ32A、32Aに固定してある。X軸レール31は、Y軸ボールねじ機構32Bのナット部(不図示)に連結している。Y軸モータ52の回転によって、Y軸ボールねじ機構32Bのナット部がY軸方向に移動し、X軸レール31、31はY軸方向に移動する。
各X軸レール31には、二つのスライダ31A、31Aが摺動可能に嵌合している。X軸レール31に平行なX軸ボールねじ機構31BがX軸レール31の間に配置してある。該X軸ボールねじ機構31BはX軸レール31に連結している。X軸ボールねじ機構31Bの右端部にX軸ボールねじ機構31Bを駆動するX軸モータ51が設けてある。
両X軸レール31の上側に、上下に長い柱状のコラム35が配置してある。該コラム35はX軸レール31に嵌合したスライダ31Aに固定してある。またコラム35はX軸ボールねじ機構31Bのナット部(不図示)に連結している。X軸モータ51の回転によって、X軸ボールねじ機構31Bのナット部はX軸方向に移動し、コラム35はX軸方向に移動する。
コラム35の前面において、左右端部に上下方向(Z軸方向)に長いZ軸レール33、33が夫々設けてある。各Z軸レール33には、二つのスライダ33A、33Aが摺動可能に嵌合している。コラム35の前面において、Z軸レール33に平行なZ軸ボールねじ機構33BがZ軸レール33、33の間に固定してある。Z軸ボールねじ機構33Bの上端部にZ軸ボールねじ機構33Bを駆動するZ軸モータ53が設けてある。
各Z軸レール33に嵌合したスライダ33Aに連結部34が固定してある。連結部34は主軸ヘッド38とZ軸ボールねじ機構33Bのナット部(不図示)を連結している。連結部34の前端部は主軸ヘッド38に固定してある。Z軸モータ53の回転によって、Z軸ボールねじ機構33Bのナット部はZ軸方向に移動し、連結部34はZ軸方向に移動する。主軸ヘッド38の上端部に第一主軸36をZ軸回りに回転させる主軸モータ54が設けてある。従って、主軸ヘッド38は第一主軸36、連結部34、主軸モータ54を備える。第一主軸36は主軸ヘッド38下部に設けてある。第一主軸36は工具106を装着する。装着された工具106は下向きになる。基台部1の上面前部に、二つの支持台10、10を間隔を空けて左右に並設してある。支持台10、10は被加工物保持装置100を支持する。
図3を参照して、被加工物保持装置100の構造について説明する。被加工物保持装置100は、支持台10、10に固定する二つの固定部11、11を備える。該固定部11、11の間に、略円柱状の治具102を回転可能に保持する治具固定テーブル101が配置してある。治具固定テーブル101は、テーブル部101Aと、左連結部101Bと、右連結部101Cとを備える。また治具固定テーブル101は、円柱状の治具102を固定可能且つ円柱の軸線周りに回転させるC軸モータ56を下面側に固定する。C軸モータ56の回転軸であるC軸(第二主軸)103は治具102の底面に接続している。なお治具102の軸線方向及びC軸103の軸線方向はテーブル部101Aの表面に対して直交している。従って、C軸103の回転により治具102は回転する。また、左連結部101Bは、テーブル部101Aから左上方向に延出しており、左側の固定部11にX軸回りに回転可能に連結してある。右連結部101Cは、テーブル部101Aから右上方向に延出しており、右側の固定部11にX軸回りに回転可能に連結してある。
右側の固定部11には、治具固定テーブル101をX軸回りに回転するチルトモータ57が固定してある。チルトモータ57の回転軸は右連結部101Cに連結している。図3に示すように、チルトモータ57の回転によって、Z軸上側を基準にして後側への回転角度をマイナスの角度、前側をプラスの角度とした場合、−5度〜+95度の範囲で治具固定テーブル101は回転する。−5度〜0度及び+90度〜+95度の範囲を設定することによって、組み付け時の誤差が生じても0度〜+90度の範囲で治具固定テーブル101を確実に回転させることができる。また前側に90度以上回転するように構成することによって、作業空間を確保し易い工作機械の前方において、作業者は被加工物105を治具102に対し脱着することができ、作業効率が向上する。後側に90度以上回転するように構成した場合、作業空間を確保することは難しい。
図3に示すように、治具102に固定された被加工物105は、テーブル部101Aが水平な姿勢を保っている場合、C軸モータ56の回転によってC軸103回りに回転する。なお治具固定テーブル101の回転に拘わらず、被加工物105は、C軸モータ56によってテーブル部101Aに対して直角な軸の回りを回転する。
C軸モータ56によって回転した被加工物105に、第一主軸36に取り付けた工具106をX軸モータ51〜Z軸モータ53によって近接させて、被加工物105を加工する。このときチルトモータ57によってX軸回りの被加工物105の姿勢を調整し、所望の部位を加工することができる。この場合、主軸モータ54を回転させる必要はない。
また主軸モータ54によって工具106を回転させて、回転した工具106をX軸モータ51〜Z軸モータ53によって被加工物105に近接させて被加工物105を加工する。この場合もチルトモータ57によってX軸回りの被加工物105の姿勢を調整し、所望の部位を加工することができる。この場合、C軸モータ56を回転させる必要はない。なお主軸モータ54及びC軸モータ56を回転させて、被加工物105を加工してもよい。
図1,図2を参照して、工具交換装置60について説明する。工具交換装置60は例えば工具マガジン61、マガジン支持部材62、マガジンモータ55、駆動ギヤ65等を備える。マガジン支持部材62は楕円状の金属製板部材である。マガジン支持部材62はコラム5に取り付けてある。工具マガジン61はマガジン支持部材62の外周に沿って取り付けてある。工具マガジン61はチェーン64、複数のポット67を備える。チェーン64はマガジン支持部材62の外周に沿って移動可能に取り付けてある。複数のポット67はチェーン64に夫々取り付けてある。ポット67は工具を保持可能である。ポット67は例えばアーム状に形成し且つ揺動可能に取り付けてある。
マガジンモータ55の駆動軸は正逆何れの方向にも回転可能である。駆動ギヤ65はマガジンモータ55の駆動軸に取り付けてある。駆動ギヤ65はマガジンモータ55の駆動軸と共に回転する。駆動ギヤ65は工具マガジン61のチェーン64に噛合する。チェーン64は駆動ギヤ65の駆動によりマガジン支持部材62の外周に沿って正逆何れかの方向に移動する。故にポット67はチェーン64と共にマガジン支持部材62の外周に沿って移動する。工具マガジン61の最下部に位置するポット67の位置は工具交換位置である。工具交換位置は第一主軸36に最も近接する位置である。工具交換装置60は、工具交換位置にあるポット67が保持する工具を、第一主軸36に装着している工具と交換する。
図4を参照して、工作機械2及び数値制御装置20の電気的構成について説明する。工作機械2を制御する数値制御装置20は、CPU21、ROM22、RAM23、フラッシュメモリ24と、入力インタフェイス25と、入出力インタフェイス26とを備えている。入力インタフェイス25は、キーボード12及びZ軸原点センサ13に接続している。
ROM22は、数値制御装置20のメインプログラムに加え、加工プログラムを1ブロックずつ読込んで工作機械2のX軸モータ51、Y軸モータ52、Z軸モータ53、主軸モータ54、C軸モータ56、マガジンモータ55、チルトモータ57、クランプ装置58等を制御する制御プログラム等を記憶する。制御プログラムは、コンピュータで読み取り可能な記憶媒体としてのフラッシュメモリ24等に記憶してもよい。図4に示すように、フラッシュメモリ24は、加工プログラムを記憶する加工プログラム記憶領域241と、その他のデータの記憶領域242を少なくとも備えている。
入出力インタフェイス26は、X軸モータ51を駆動する駆動回路41と、Y軸モータ52を駆動する駆動回路42と、Z軸モータ53を駆動する駆動回路43と、主軸モータ54を駆動する駆動回路44と、マガジンモータ55を駆動する駆動回路45と、C軸モータ56を駆動する駆動回路46と、チルトモータ57を駆動する駆動回路47と、クランプ装置58を駆動する駆動回路48と、ディスプレイ15を駆動する駆動回路49に接続している。
X軸モータ51及びY軸モータ52は、工作機械2の第一主軸36を治具固定テーブル101に対してX軸方向及びY軸方向に移動する。Z軸モータ53は、工作機械2の第一主軸36をZ軸方向に移動する。主軸モータ54は、第一主軸36に装着された工具106をその軸線周りに回転させる。マガジンモータ55は、工具交換装置40を構成する複数の工具を収納した工具マガジン61を工具交換時に回転する。C軸モータ56は、工作機械2の治具102をZ軸の軸線周りに回転する。チルトモータ57は、治具固定テーブル101の傾斜角度を調整する。クランプ装置58は、治具固定テーブル101の裏面側に設けられ、治具102の回転軸を固定保持する。ディスプレイ15は、作業者が後述する加工プログラム等を入力する際、キーボード12を介して入力した情報を表示する。
X軸モータ51、Y軸モータ52、Z軸モータ53、主軸モータ54、マガジンモータ55、C軸モータ56、チルトモータ57は、各モータの位置を検出するエンコーダ(図示省略)を備えている。各エンコーダは、各駆動回路41〜48に接続している。尚、マガジンモータ55は、工具交換装置40の工具マガジン61を回転駆動する。
次に、図5〜図7に示す加工処理のフローチャートと、図8に示す工具判断処理のフローチャートと、図9〜図13のタイミングチャートを参照して、本実施形態の工作機械2の加工処理について説明する。加工処理を行うプログラムは、ROM22が記憶しており、CPU21が実行する。
CPU21は、加工プログラムについて1ブロック解釈する(S1)。CPU21は内部処理形式(ブロックデータ)に変換する。加工プログラムを構成するブロックは制御指令を備える。例えば以下の制御指令がある。
M141 G100 T1;(M141⇒M141:回転工具⇒回転工具)
M142 G100 T2;(M141⇒M142:回転工具⇒非回転工具)
M141は第一主軸選択指令である。M142はC軸選択指令である。現在、M141により第一主軸36の回転で加工を行っているとする。回転工具の一例としては、エンドミルや平面フライス等がある。非回転工具の一例としては、バイトがある。
以下説明では、工作機械2は第一パターン〜第四パターンの何れかの工具交換を行うものとする。
第一パターン:回転工具から回転工具への工具交換。
第二パターン:回転工具から非回転工具への工具交換。
第三パターン:非回転工具から回転工具への工具交換。
第四パターン:非回転工具から非回転工具への工具交換。
CPU21は、S1で解釈した1ブロックの制御指令は、加工終了指令か否かを判断する(S2)。加工終了指令の場合(S2:YES)、加工処理を終了する。CPU21は制御指令が加工終了指令でない場合(S2:NO)、工具判断処理を実行する(S3)。工具判断処理は、工具交換のパターンが上記第一〜第四パターンの何れであるかを判断する処理である。工具交換は、第一主軸36が装着する現在の工具(以下「現在工具」と呼ぶ)から次の工具(以下「次工具」と呼ぶ)に交換する動作である。CPU21は図8に示す工具判断処理を実行する。
図8を参照して、工具判断処理について説明する。CPU21は第一主軸36が装着する現在工具は回転工具か否かを判断する(S51)。CPU21は判断の一例として、現在実行中のモードがM141かM142かで判断する。M141であれば第一主軸モードであり、第一主軸36が装着する現在工具は回転工具である。M142であればC軸モードであり、第一主軸36が装着する現在工具は非回転工具である。
CPU21は、第一主軸36が装着する現在工具が回転工具と判断した場合(S51:YES)、次に第一主軸36に装着する次工具が回転工具か否かを判断する(S52)。CPU21は、図5のS1で読み込んだ次の1ブロックが第一主軸36の回転を選択しているか、C軸103の回転を選択しているかで判断する。例えばS1で読み込んだ次の1ブロックがM141を含む場合、次工具は回転工具である。CPU21は、次工具が回転工具と判断した場合(S52:YES)、工具交換は第一パターンであると判断し(S53)、RAM23に記憶する。S1で読み込んだ次の1ブロックがM142を含む場合、次工具は非回転工具である。CPU21は、次工具が非回転工具と判断した場合(S52:NO)、工具交換は第二パターンであると判断し(S54)、RAM23に記憶する。
CPU21は、第一主軸36が装着する現在工具は非回転工具と判断した場合(S51:NO)、次工具が回転工具か否かを判断する(S55)。判断方法は上記と同じである。CPU21は、次工具が回転工具と判断した場合(S55:YES)、工具交換は第三パターンであると判断し(S56)、RAM23に記憶する。S1で読み込んだ次の1ブロックがM142を含む場合、次工具は非回転工具である。CPU21は、次工具が非回転工具と判断した場合(S55:NO)、工具交換は第四パターンであると判断し(S57)、RAM23に記憶する。S53〜S57の判断処理の何れかが終了した場合には、図5に示す加工処理のフローチャートに戻る。
図5に戻り、CPU21は、S1で読み込んだ1ブロックに工具交換指令(例えばG100)が有るか否かを判断する(S4)。工具交換指令が有る場合(S4:YES)、工具判断処理(S3)で判断したパターンの種類を判断する(S5,S10,S14)。CPU21は、工具交換指令が無い場合(S4:NO)、加工プログラムの制御指令に従って処理を実行する(S9)。CPU21はS1に戻る。RAM23が第一パターンであると記憶している場合(S5:YES)、CPU21は、解釈した1ブロックにC軸位置決め指令が有るか否かを判断する(S6)。CPU21はC軸位置決め指令が有ると判断した場合(S6:YES)、駆動回路48によりクランプ装置58を制御して、C軸103の固定を解除してアンクランプ状態にする(S7)。CPU21は、主軸停止指令を駆動回路44に出力し、主軸モータ54を停止する(S8)。CPU21は、C軸位置決め指令が無いと判断した場合(S6:NO)、C軸103を固定したクランプ状態を維持して、主軸モータ54を停止し第一主軸36を停止する(S8)。次いで、CPU21は、駆動回路43によりZ軸モータ53を制御して、主軸ヘッド38と一体的に第一主軸36のZ軸原点への上昇を行う(図6のS21)。
また、第一パターンでなく(S5:NO)、RAM23に第二パターンであると記憶されている場合には(S10:YES)、CPU21は、解釈した1ブロックにC軸回転指令が有るか否かを判断する(S11)。C軸回転指令がある場合には(S11:YES)、CPU21は、駆動回路48によりクランプ装置58を制御して、C軸103の固定を解除してアンクランプ状態にする(S12)。次いで、CPU21は、主軸停止指令を駆動回路44に出し、主軸モータ54を停止する(S13)。C軸回転指令が無いと判断した場合には(S11:NO)、C軸103を固定したクランプ状態を維持して、主軸モータ54を停止し第一主軸36を停止する(S13)。次いで、CPU21は、駆動回路43によりZ軸モータ53を制御して、第一主軸36のZ軸原点への上昇を行う(図6のS21)。
また、第一パターンでなく(S5:NO)、第二パターンでもなく(S10:NO)、第三パターンであるとRAM23が記憶している場合には(S14:YES)、解釈した1ブロックにC軸位置決め指令が有るか否かを判断する(S15)。C軸位置決め指令が有る場合には(S15:YES)、CPU21は、駆動回路46によりC軸モータ56を制御して、C軸オリエント動作でC軸103の回転を停止する(S16)。C軸オリエント動作とは、C軸103の停止位置を指定位置に割り出す動作である。故にC軸103は連続回転している状態から指定位置で停止する。C軸位置決め指令が無い場合には(S15:NO)、CPU21は、駆動回路46によりC軸モータ56を停止し、C軸103の回転を停止する(S17)。次いで、CPU21は、駆動回路43によりZ軸モータ53を制御して、第一主軸36のZ軸原点への上昇を行う(図6のS21)。
また、第一パターンでなく(S5:NO)、第二パターンでもなく(S10:NO)、第三パターンでもない場合(S14:NO)、第四パターンであるので、解釈した1ブロックにC軸回転指令が有るか否かを判断する(S18)。C軸回転指令がある場合には(S18:YES)、CPU21は、駆動回路46によりC軸モータ56を制御して、C軸103の回転を行う(S19)。次いで、CPU21は、駆動回路43によりZ軸モータ53を制御して、第一主軸36のZ軸原点への上昇を行う(図6のS21)。C軸回転指令が無い場合には(S18:NO)、CPU21は、駆動回路43によりZ軸モータ53を制御して、第一主軸36のZ軸原点への上昇を行う(図6のS21)。
図6に示すように、CPU21は、第一主軸36がZ軸原点まで上昇したか否かを判断する(S22)。CPU21は、第一主軸36がZ軸原点まで上昇するまで待ち(S22:NO)、第一主軸36がZ軸原点まで上昇した場合(S22:YES)、工具交換は第一パターンか否か判断する(S23)。CPU21は第一パターンであると判断した場合(S23:YES)、解釈した1ブロックにC軸位置決め指令が有るか否か判断する(S24)。C軸位置決め指令がある場合(S24:YES)、CPU21は、駆動回路46によりC軸モータ56を制御して、C軸103をC軸指令位置まで回転移動する(S25)。次いで、CPU21は、X,Y軸指令位置へ第一主軸36を移動する。第一主軸36をZ軸のATC原点まで上昇する(S26)。ATC原点はZ軸方向に於ける工具交換の原点である。主軸ヘッド37がATC原点に移動すると、工具交換領域で工具マガジン61は工具交換領域内で旋回可能である。
CPU21はC軸位置決め指令が無い場合(S24:NO)、第一主軸36をX,Y軸指令位置へ移動し、且つZ軸のATC原点まで上昇する(S26)。
第一パターンでなく(S23:NO)、第二パターンの場合(S28:YES)、解釈した1ブロックにC軸回転指令が有るか否か判断する(S29)。CPU21はC軸回転指令が有ると判断した場合(S29:YES)、C軸103の回転を開始する(S30)。その後、CPU21はS26の処理を実行する。C軸回転指令が無い場合(S29:NO)、CPU21は、C軸103は非回転のまま、S26の処理を実行する。
工具交換は第一パターンでなく(S23:NO)、第二パターンでもない場合(S28:NO)、第三パターン又は第四パターンである。CPU21はS26の処理を実行する。
CPU21は、第一主軸36がATC原点まで上昇したか否か判断する(S27)。CPU21は第一主軸36がATC原点まで上昇するまでは(S27:NO)、待機する。第一主軸36がATC原点まで上昇した場合(S27:YES)、CPU21は、駆動回路45によりマガジンモータ55を制御し、工具マガジン61を旋回する(S31)。CPU21は工具マガジン61の旋回が完了したか否か判断する(S32)。CPU21は工具マガジン61の旋回が完了するまでは(S32:NO)、S32に戻り待機する。CPU21は工具マガジン61の旋回が完了した場合(S32:YES)、第一主軸36をZ軸原点へ下降する(S33)。CPU21は第一主軸36がZ原点まで下降したか否か判断する(S34)。CPU21は第一主軸36がZ原点まで下降するまで(S34:NO)、S34に戻り待機する。CPU21は第一主軸36のZ軸原点への下降が完了した場合(S34:YES)、第一パターン又は第三パターンか否か判断する(S35)。CPU21は第一パターン又は第三パターンであると判断した場合(S35:YES)、X軸、Y軸、C軸方向に於ける各動作が完了したか否か判断する(S36)。CPU21はX軸、Y軸、C軸方向に於ける各動作が完了するまで(S36:NO)、S36に戻り待機する。
CPU21はX軸、Y軸、C軸に於ける各動作が完了した場合(S36:YES)、S1で読み込んだ1ブロック内に主軸回転指令があるか否か判断する(S37)。CPU21は主軸回転指令が有ると判断した場合(S37:YES)、第一主軸36を回転する(S38)。CPU21は第一主軸36をZ軸指令位置まで移動する(S39)。Z軸指令位置はZ軸方向の指令位置である。CPU21はS1で読み込んだ1ブロック内に主軸回転指令が無い場合(S37:NO)、第一主軸36をZ軸指令位置までの移動を開始する(S39)。
CPU21は第一パターン又は第三パターンでないと判断した場合(S35:NO)、第二パターン又は第四パターンである。CPU21は、X軸、Y軸方向に於ける各動作が完了したか否か判断する(S41)。CPU21はX軸、Y軸方向に於ける各動作が完了するまでは(S41:NO)、S41に戻り待機する。CPU21はX軸、Y軸方向に於ける各動作が完了した場合(S41:YES)、第一主軸36をZ軸指令位置への移動を開始する(S39)。
CPU21は、第一主軸36のZ軸指令位置への移動が完了したか否か判断する(S40)。CPU21はZ軸指令位置への移動が完了するまで(S40:NO)、S40に戻り待機する。CPU21は第一主軸36のZ軸指令位置への移動が完了した場合(S40:YES)、S1の処理に戻り、次ブロック以降、上記処理を繰り返す。CPU21は解釈した制御指令が加工終了指令であった場合(S2:YES)、本処理を終了する。
次に、図9〜図12のタイミングチャートを参照して、上記構成の工作機械2の動作の具体例を説明する。図9を参照して、第一パターンの工具交換を含む加工動作の具体例について説明する。
本具体例は、例えば加工プログラム中の以下のブロック1,2を実行する場合を想定して説明する。
ブロック1:M141 M03 S2000 Z235.C0;
ブロック2:M141 G100 T1 X10 Y10 Z235 C180 M03 S3000;
ブロック1は、第一主軸モードで、第一主軸36を毎分2000回転で正回転、Z軸指令位置(Z=235mm)に位置決め、C軸103を0度に位置決めする指令である。ブロック2は、第一主軸モードで、工具T1に工具交換後、X軸指令位置(X=10mm)、Y軸指令位置(Y=10mm)、Z軸指令位置(235mm)に位置決めし、C軸103を180度に位置決めし、第一主軸36を毎分3000回転で正回転する指令である。
CPU21は例えば時間A0でブロック1を実行中である。CPU21は時間A1でブロック2を実行する(S1,S2:YES)。CPU21は工具判断処理を実行する(S3)。時間A1で第一主軸36が装着している工具106は、ブロック1が含むM141により回転工具である(S51:YES)。第一主軸36が次に装着する工具106は、ブロック2が含むM141により回転工具である(S52:YES)。故にCPU21は、工具交換が第一パターンと判断する(S53)。ブロック2はG100 T1の工具交換指令を含む(S4:YES)。上記の通り、工具交換は第一パターン(S5:YES)であり、且つブロック2は更にC180のC軸位置決め指令を含むので(S6:YES)、CPU21は、時間A1で、クランプ装置58によるC軸103のクランプを中止しアンクランプを開始する(S7)。CPU21は時間A1から確認時間K1を待つ。確認時間K1が経過する時間A2でクランプ装置58はアンクランプを完了する。CPU21は、時間A1から第一主軸36の停止を開始する(S8)。時間A3で第一主軸36は停止する。時間A1で、CPU21は第一主軸36のZ軸原点への上昇を開始する(S21、S22:NO)。時間A4でZ軸原点への上昇は完了する(S22:YES)。CPU21は工具交換が第一パターンであり(S23:YES)、ブロック2にはC軸位置決め指令が有るので(S24:YES)、時間A4からC軸103を指定位置(180度)に移動する(S25)。
次いで、時間A4で、CPU21は第一主軸36のX,Y軸指定位置への移動を開始し、Z軸ATC原点への上昇を開始する(S26)。時間A5で、第一主軸36はZ軸ATC原点への上昇を完了する(S27:YES)。時間A5で、CPU21は次工具を工具交換位置に割り出す為に、工具マガジン61を旋回する(S31)。時間A6で工具マガジン61の旋回は完了し(S32:YES)、CPU21は第一主軸36のZ軸原点への下降を開始する(S33)。尚、CPU21はC軸103の指令位置への位置決め完了後、時間A6でクランプ装置58によるクランプを開始する。CPU21は時間A6から確認時間K2を待つ。確認時間K2が経過した時間A7でクランプは完了する。時間A8で第一主軸36のZ軸原点への下降は完了する(S34:YES)。ここで、工具交換は第一パターンであり(S35:YES)、既にX軸,Y軸,C軸の動作は完了している(S36:YES)。ブロック2は第一主軸36の正回転指令(M03)を含む(S37:YES)。従って、時間A8で、CPU21は第一主軸36を毎分3000回転(S3000)で正回転する(S38)。CPU21は更に並行して第一主軸36をZ軸指令位置(Z=235)へ移動し、時間A9で移動速度を落とす。時間A10で、第一主軸36のZ軸指令位置への移動は完了する(S40)。以上でブロック1,2の制御動作は完了する。
図10を参照して、第二パターンの工具交換を含む加工動作の具体例について説明する。第二パターンでは、回転工具から非回転工具に工具交換する際に、CPU21はC軸103のアンクランプ動作と並列に工具交換動作を行う点に特徴がある。
本具体例は、例えば加工プログラム中の以下のブロック3、4を実行する場合を想定して説明する。
ブロック3:M141 M03 S2000 Z235 C0;
ブロック4:M142 G100 T2 X10 Y10 Z235 M303 S2000;
ブロック3は、第一主軸モードで、第一主軸36を毎分2000回転で正回転、Z軸指令位置(Z=235mm)に位置決め、C軸103を0度に位置決めする指令である。ブロック4は、C軸モードで、工具T2に工具交換、X軸指令位置(X=10mm)、Y軸指令位置(Y=10mm)、Z軸指令位置(Z=235mm)に位置決め、C軸103を毎分2000回転で正回転する指令である。
CPU21は例えば時間B0でブロック3を実行中である。CPU21は時間B1でブロック4を実行する(S1,S2:YES)。CPU21は工具判断処理を実行する(S3)。時間B1で第一主軸36が装着している工具106は、ブロック3が含むM141により回転工具である(S51:YES)。第一主軸36が次に装着する工具106は、ブロック4が含むM142により非回転工具である(S52:NO)。故にCPU21は工具交換が第二パターンと判断する(S54)。次いで、ブロック4は、G100 T2の工具交換指令を含むので(S4:YES)、工具交換は第二パターン(S5:NO、S10:YES)である。ブロック4はM303のC軸回転指令を含むので(S11:YES)CPU21は、時間B1で、クランプ装置58によるC軸103のクランプ状態からアンクランプを開始する(S12)。CPU21は時間B1から確認時間K3を待つ。確認時間K3が経過する時間B2で、クランプ装置58はアンクランプを完了する。CPU21は、時間B1で第一主軸36の停止を開始する(S13)。時間B3で第一主軸36は停止する。アンクランプを開始する時間B1で、CPU21は第一主軸36のZ軸原点への上昇を開始する(S21、S22:NO)。時間B4でZ軸原点への上昇は完了する(S22:YES)。CPU21は工具交換が第二パターンであり(S23:NO、S28:YES)、ブロック4にはM303 S2000のC軸回転指令が有るので(S29:YES)、時間B4からC軸103の正回転を開始し、毎分2000回転で回転する(S30)。
次いで、時間B4で、CPU21は第一主軸36のX,Y軸指定位置への移動を開始し、Z軸ATC原点への上昇を開始する(S26)。時間B5で、第一主軸36はZ軸ATC原点への上昇を完了する(S27:YES)。時間B5で、CPU21は次工具を工具交換位置に割り出す為に、工具マガジン61を旋回する(S31)。時間B6で工具マガジン61の旋回は完了し(S32:YES)、CPU21は第一主軸36のZ軸原点への下降を開始する(S33)。尚、時間B8で、C軸103は指令回転速度に到達する。その間、時間B7で第一主軸36のZ軸原点への下降は完了する(S34:YES)。ここで、工具交換は第二パターンであるので(S35:NO)、CPU21は、X軸,Y軸の動作が既に完了していれば(S41:YES)、C軸103の指令回転速度の到達を待たずに、第一主軸36のZ軸指令位置(Z=235mm)への移動を開始する(S39)。時間B8で、第一主軸36のZ軸指令位置への移動は完了する(S40)。以上でブロック3,4の制御動作は完了する。
第二パターンの工具交換は、C軸103のアンクランプ動作と並列して工具交換動作を行う。故に工具交換を待たずにC軸103の回転を開始できる。
図11を参照して、第三パターンの工具交換を含む加工動作の具体例について説明する。
本具体例は、例えば加工プログラム中の以下のブロック5,6を実行する場合を想定して説明する。
ブロック5:M142 M303 S2000 Z235;
ブロック6:M141 G100 T1 X10 Y10 Z235 C180 M03 S2000;
ブロック5は、C軸モードで、C軸103を毎分2000回転で正回転、Z軸指令位置(Z=235mm)に位置決めする指令である。ブロック6は、第一主軸モードで、工具T1に工具交換、X軸指令位置(X=10mm)、Y軸指令位置(Y=10mm)、Z軸指令位置(Z=235mm)に位置決め、C軸103を180度に位置決め、第一主軸36を毎分2000回転で正回転する指令である。
CPU21は例えば時間C0でブロック5を実行中である。CPU21は時間C1でブロック6を実行する(S1,S2:YES)。CPU21は工具判断処理を実行する(S3)。時間C1で第一主軸36が装着している工具106は、ブロック5が含むM142により非回転工具である(S51:NO)。第一主軸36が装着する次の工具106は、ブロック6が含むM141により回転工具である(S52:YES)。故にCPU21は工具交換が第三パターンと判断する(S56)。次いで、ブロック6は、G100 T1の工具交換指令を含むので(S4:YES)、工具交換は第三パターン(S5:NO,S10:NO,S14:YES)である。ブロック6はC180の位置決め指令を含む(S15:YES)。CPU21は時間C1でC軸103の指定位置へのオリエント動作を開始する(S16)。CPU21は、C軸103のオリエント動作が完了する前に、時間C1で第一主軸36のZ軸原点への上昇を開始する(S21、S22:NO)。時間C2でZ軸原点への上昇を完了する(S22:YES)。CPU21は工具交換が第三パターンであり(S23:NO,S28:NO)、時間C2で、第一主軸36のX,Y軸指定位置への移動を開始し、Z軸ATC原点への上昇を開始する(S26)。時間C3で、第一主軸36はZ軸ATC原点への上昇を完了する(S27:YES)。時間C3で、CPU21は次工具を工具交換位置に割り出す為に、工具マガジン61を旋回する(S31)。時間C6で工具マガジン61の旋回は完了し(S32:YES)、CPU21は第一主軸36のZ軸原点への下降を開始する(S33)。尚、CPU21はC軸103の指令位置へのオリエント動作完了後、クランプを開始する。CPU21は時間C4から確認時間K4を待つ。確認時間K4が経過する時間C5でクランプは完了する。時間C7で第一主軸36のZ軸原点への下降は完了する(S34:YES)。ここで、工具交換は第三パターンであり(S35:YES)、既にX軸,Y軸,C軸の動作は完了している(S36:YES)。ブロック6は第一主軸36の正回転指令(M03)を含む(S37:YES)。従って、時間C7で、第一主軸36を毎分2000回転で正回転する(S38)。CPU21は更に並行して、第一主軸36のZ軸指令位置(Z=235mm)へ移動し、時間C8で、第一主軸36がZ軸指令位置への移動は完了する(S40)。以上でブロック5,6の制御動作は完了する。
図12を参照して、第四パターンの工具交換を含む加工動作の具体例について説明する。第四パターンでは、非回転工具から非回転工具に工具交換する際に、CPU21はC軸103の回転を止めずに工具交換を行う点に特徴がある。
本具体例は、例えば加工プログラム中の以下のブロック7,8を実行する場合を想定して説明する。
ブロック7:M142 M303 S2000 Z235;
ブロック8:M142 G100 T2 X10 Y10 Z235 M303 S1500;
ブロック7は、C軸モードで、C軸103を毎分2000回転で正回転、Z軸指令位置(Z=235mm)へ位置決めする指令である。ブロック8は、C軸モードで、工具T2に工具交換、X軸指令位置(X=10mm)、Y軸指令位置(Y=10mm)、Z軸指令位置(Z=235mm)へ位置決め、C軸103を毎分1500回転で正回転する指令である。
CPU21は例えば時間E0でブロック7を実行中である。CPU21は時間E1でブロック8を実行する(S1,S2:YES)。CPU21は工具判断処理を実行する(S3)。時間E1で第一主軸36が装着している工具106は、ブロック7が含むM142により非回転工具である(S51:NO)。第一主軸36が次に装着する工具106は、ブロック8が含むM142により非回転工具である(S55:NO)。故にCPU21は工具交換が第四パターンと判断する(S57)。次いで、ブロック8は、G100 T2の工具交換指令を含むので(S4:YES)、工具交換は第四パターン(S5:NO、S10:NO、S14:NO)である。ブロック8は、M303 S1500のC軸回転指令を含む(S18:YES)。CPU21は時間E1で、C軸103の回転数を2000回転から1500回転に低下する(S19)。C軸103は1500回転を保持した状態で回転を継続する。時間E1で、CPU21は第一主軸36のZ軸原点への上昇を開始する(S21、S22:NO)。時間E2でZ軸原点への上昇は完了する(S22:YES)。
工具交換は第四パターンであるので(S23:NO、S28:NO)、時間E2で、CPU21は第一主軸36のX,Y軸指定位置への移動を開始し、Z軸ATC原点への上昇を開始する(S26)。時間E3で、第一主軸36のZ軸ATC原点への上昇は完了する(S27:YES)。時間E3で、CPU21は次工具を工具交換位置に割り出す為に、工具マガジン61を旋回する(S31)。時間E4で工具マガジン61の旋回は完了し(S32:YES)、CPU21は第一主軸36のZ軸原点への下降を開始する(S33)。時間E5で第一主軸36のZ軸原点への下降は完了する(S34:YES)。ここで、工具交換は第四パターンであり(S35:NO)、既にX軸,Y軸の動作は完了している(S41:YES)。CPU21は第一主軸36をZ軸指令位置(Z=235)への移動を開始する(S39)。時間E6で、第一主軸36のZ軸指令位置への移動は完了する(S40)。以上でブロック7,8の制御動作は完了する。
第四パターンの工具交換は、C軸103の回転を止めずに工具交換動作を行う。故に工作機械2は工具交換後、次の加工を速やかに実行できる。
以上説明したように、本実施の形態の工作機械2では、現在工具が非回転工具であり、次工具が非回転工具であるとCPU21が判断した場合には、C軸103の回転を停止せずに工具交換装置により工具交換動作を行うので、工具交換の時間を短縮できる。尚、上記実施の形態では、第一主軸36が第一主軸の一例であり、C軸103が第二主軸の一例である。主軸モータ54が第一モータの一例であり、C軸モータ56が第二モータの一例である。CPU21が制御手段の一例である。S51,S52及びS55の判断処理を行うCPU21が工具判断手段の一例である。クランプ装置58が固定装置の一例である。
以上説明した実施の形態は本発明の例示であり、本発明は特許請求の範囲に記載された事項及び特許請求の範囲の記載に基づいて定められる範囲内において種々変更した形態で実施することができる。
例えば、工具判断処理S3の回転工具か非回転工具かの判断は、工具番号T1、T2・・・Tnに対応して、各々回転工具か非回転工具かをフラッシュメモリ24に工具テーブルとして記憶しておき、その工具テーブルをCPU21が参照して判断してもよい。
また、ブロック5に含まれるM303に基づいて、回転工具か非回転工具かを判断するようにしてもよい。M303は、C軸103を回転するC軸回転指令である。M303が有る場合、その時の第一主軸36に装着している現在工具は非回転工具となる。