マクロ解説:第5回 マクロを使用した加工の実例
例1)ターニングセンタの工具交換
主軸がB軸に旋回する機械で、プログラム呼び出しにより工具交換と主軸の位置合わせをしています。
NCVIEW Trialのサンプルデータ「ターニングセンタ」を元に解説します。
T1001 ①主軸にセットする工具の番号を選択
G361B0.D2. ②工具交換プログラムO9361を呼び出し、BとDを引数にしてO9361内で#2=0、#7=2にセット
M01
G99G18G54M46
O9361
(G361: MACRO YOBIDASHI)
IF[#2 EQ #0] THEN #2=-90. ③引数の値によって条件分岐
IF[#7 EQ #0] THEN #7=0.
IF[#17 EQ #0] THEN #17=0.
G28U0V0W0 ④主軸を初期位置へ移動
G00B-90.
M06 ⑤M06で工具交換
G00B#2 ⑥#2に指定した角度へ主軸を旋回
IF[#7 NE 0.] GOTO 99
M45
N99 M99
このように、工具交換という共通化したプログラムを作ると、同じような指令をプログラム呼び出しだけで制御することができます。
例2)座標変換
門型機械で加工面を切り替えるとき、座標変換のプログラムを呼び出しています。
NCVIEW Trialのサンプルデータ「アタッチメント旋回」を元に解説します。
※前提として#11111(システム変数)は1000にセットされています。
S2000.
G55
W-500.
G65P9023X0Y500.Z-100.B90.C180. ①座標変換プログラムO9023を引数つきで呼び出す
(このときX,Y,Z,B,CはO9023でそれぞれ#24=0,#25=500,#26=-100,#2=90,#3=180 にセットされる)
G90G43Z100.H1
X0Y0Z10.
G01Z0.
~~~~~~~
O9023
IF[#11111EQ1000]GOTO1
IF[#11111EQ1200]GOTO2 ②IF[条件]が真となり、GOTO2 で N2ブロックへ移動。
IF[#11111EQ1300]GOTO3
GOTO999
~~~~~~~
N2(AT1)
#10540=-#10001*COS[#3]+#10002*SIN[#3]
#10541=#10001*SIN[#3]+#10002*COS[#3]
#10542=-#10003
#2=90.
GOTO98 ③GOTO98 で 下記N98へ移動。ローカル変数を使って座標変換のための値を計算する
N3(AT2)
#10540=-#10013*SIN[#3]-#10012*SIN[#2]*COS[#3]
#10541=#10013*COS[#3]-#10012*SIN[#2]*SIN[#3]
#10542=-#10012*COS[#2]-#10011
GOTO98
N98 ※③上記GOTO98 で、このN98へ移動してくる
#24=#24-#10540
#25=#25-#10541
#26=#26-#10542
G68X#24Y#25Z#26I0J0K1.R[-#3+90.] ④G68で座標変換
G68X0Y0Z0I1.J0K0R[#2]
呼び出したプログラム(O9023)は複雑ですが、このようにプログラムを作っておくと、呼び出す側はプログラム番号と引数を考えるだけでよいのでNCデータ全体の見通しがクリアになります。
ターニングセンタやアタッチメント旋回のシミュレーションはNCVIEW Trial上で実行できます。
また、NCデータを自由に編集できるので、プログラムによってNCデータの挙動がどう変わるのかをぜひ試してみてください。