例1) ターニングセンタの工具交換
主軸がB軸に旋回する機械で、プログラム呼び出しにより工具交換と主軸の位置合わせをしています。
NCVIEW Trialのサンプルデータ「ターニングセンタ」を元に解説します。
呼び出し側(メイン側)の例
呼び出し側(メイン)
T1001
G361B0.D2.
M01
G99G18G54M46
ポイント
T1001:主軸にセットする工具番号を選択G361B0.D2.:工具交換プログラムO9361を呼び出し(BとDを引数に渡す)
共通化した工具交換プログラム(O9361)の例
工具交換サブ(O9361)
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
G00B#2
IF[#7 NE 0.] GOTO 99
M45
N99 M99
ポイント
- 引数が未指定(
#0)の場合、#2などにデフォルト値をセットして分岐 G28U0V0W0:主軸を初期位置へ移動M06:工具交換G00B#2:引数(#2)で指定した角度へ主軸を旋回
このように、工具交換という共通化したプログラムを作ると、同じような指令をプログラム呼び出しだけで制御することができます。
例2) 座標変換
門型機械で加工面を切り替えるとき、座標変換のプログラムを呼び出しています。
NCVIEW Trialのサンプルデータ「アタッチメント旋回」を元に解説します。
※前提として #11111(システム変数)は 1000 にセットされています。
呼び出し側(メイン側)の例
呼び出し側(メイン)
S2000.
G55
W-500.
G65P9023X0Y500.Z-100.B90.C180.
(このときX,Y,Z,B,CはO9023でそれぞれ#24=0,#25=500,#26=-100,#2=90,#3=180 にセットされる)
G90G43Z100.H1
X0Y0Z10.
G01Z0.
~~~~~~~
ポイント
G65P9023...:座標変換プログラムO9023を引数付きで呼び出し- 呼び出し側は「プログラム番号」と「引数」を整理すればよく、加工面切替の記述が見通しよくなる
座標変換プログラム(O9023)の例
座標変換サブ(O9023)
O9023
IF[#11111EQ1000]GOTO1
IF[#11111EQ1200]GOTO2
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
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
#24=#24-#10540
#25=#25-#10541
#26=#26-#10542
G68X#24Y#25Z#26I0J0K1.R[-#3+90.]
G68X0Y0Z0I1.J0K0R[#2]
ポイント
#11111の値で分岐し、該当ブロック(例:N2)へ移動- ローカル変数を使って座標変換用の値を計算し、
G68で座標変換を実行
呼び出したプログラム(O9023)は複雑ですが、このようにプログラムを作っておくと、呼び出す側はプログラム番号と引数を考えるだけでよいのでNCデータ全体の見通しがクリアになります。
NCVIEW Trialで試す
ターニングセンタやアタッチメント旋回のシミュレーションはNCVIEW Trial上で実行できます。また、NCデータを自由に編集できるので、プログラムによってNCデータの挙動がどう変わるのかをぜひ試してみてください。