本文へ移動
サポートシェアリングソリューション
OKWAVE Plus

このQ&Aは役に立ちましたか?

締切済み
※ ChatGPTを利用し、要約された質問です(原文:マクロ教えてください)

マクロを使ったファナックのNC装置の工具交換方法

2023/10/16 04:34

このQ&Aのポイント
  • ファナックのNC装置で工具交換用のマクロを作成する方法について教えてください。
  • メモリ式ランダム方式のATC形式を使用しているファナックのNC装置では、大径工具を付ける際に隣のポッドと干渉しないようにするために、ダミーツールを使用して工具番号の調査と交換を行うことができるマクロを作成することができます。
  • システム変数の#4120か#4320を使用することで、現在主軸についている工具番号を取得し、ダミーツール以外の工具が付いていればダミーツールと交換するプログラムを作成することができます。
※ 以下は、質問の原文です

マクロ教えてください

2008/08/04 00:11

ファナックのNC装置で、工具交換用のマクロを作りたいと思っています。
使用しているマシニングのATC形式はメモリ式ランダム方式で、工具交換時の中間ポッドがありません。
取扱説明書に「大径工具を付けるときは両隣のポッドは空にしてください。」とあり、プログラムを実行後ポッドの工具並びがバラバラになってしまうため
大径工具を使用した際、隣の工具と干渉してしまうのでは?と心配になります。
そこで、ダミーツールを作りマクロで現在主軸についている工具番号を調べ、ダミーツール以外ならダミーツールに交換するようなものを作りたいと思っています。(使用後は元のポッドに返す)

システム変数の#4120か#4320を使うのかな?と思うのですが、これをどのようにしら良いのかわかりません。
できれば、プログラム例を教えて頂けないでしょうか?

回答 (6件中 1~5件目)

2008/10/28 14:03
回答No.6

M6マクロ

O9029(KOUGU KOUKAN M6)
GOTO3
(O9029-15M, PRM-7089)
(O9029-18I, PRM-6089)
(O9009-11M, PRM-7079)
(DAIKEIKOUGU[LDT] POT DATA)
(M6D*--.@@T-;DE DATA SET)
(* DAIKEIKOUGU HONSUU)
(-- SAISYO NO POT)
(1 OR SAIDAI POT WA SAKERU)
(@@ DUMMY KOUGU)
(T- TUGI NO KOUGU)
(HOSEI ADRESS-99)
N3 #3=2099(10099-18I)
IF[#7NE#0]THEN#[#3]=#7
#2=#[#3]
#30=FIX[#2/100](LDT HONSUU)
#31=[FIX[#2]MOD100](LDT FIRST POT)
#29=ROUND[[#2-FIX[#2]]*100](DUMMY)
(MAE SYORI)
M9
M5
G69
G50.1X0Y0
G0G91G28G80Z0S#4119M19
G90G53X-800Y-100(KOTEI OR NINI)
(POT SOUSA)
#21=#4120(YOBIDASHI KOUGU)
IF[[#4120EQ#29]OR[#4111EQ#29]]GOTO6
#28=0
#27=0
WHILE[#30GT0]DO1
IF[***************************]GOTO2  
#3006=1(STAND BY TOOL MISMATCH)
GOTO99
N2
IF[#4120EQ#31+[#30-1]*2]THEN#28=1
IF[#4111EQ#31+[#30-1]*2]THEN#27=1
#30=#30-1
END1
IF[[#27+#28EQ2]OR[#27+#28EQ0]]GOTO6
IF[#27EQ1]GOTO1
#[#3]=********************
GOTO6
N1 T#29
M6
T#21
N6 M6
(IF[LAT]GOTO7)
G43Z[#5003-#[2000+#21]-#[2200+#21]]H#21
N7 IF[#20EQ#0]GOTO99
T[#20MOD100](SAIDAI 99 HON)
N99M99

マクロに興味を持って頂くために問題形式としました。
1番目の****...箇所には両サイドのアキポット検出条件
2番目の****...箇所には大径工具情報 & ダミー工具番号が入ります。
大径工具情報は、たとえば M6 D310.40; と初めてこのプログラムを使用した時に書き込んでランしてもらいます。
すると#2099(工具長補正の99番)に 310.40 と書き込まれます。
次からは単に M6; でOKです。
310.40 の意味は、大径工具3本、10,12,14 ポット使用、当然 9,11,13,15 ポットはアキポット となります。
40 はダミー工具番号ですが、最初は意味を持たないので上記以外の適当な数値で結構です。ただダミー工具が自動設定された後には当然意味を持ちます。
ダミー工具は 01 ~ 99 の2桁に設定して有りますが 100 を越える 3桁の場合は計算部分を変更してください。
五面加工機の場合は
(IF[LAT]GOTO7)
の部分に LAT 用の条件を負荷して頂けば結構です。
G90G53X-800Y-100(固定 OR 任意) の部分は各機械により異なりますので機械にあった形に書き換えてください。
M6 T13; では 13番工具はスタンバイ工具になります。
プログラムの流れは 回答(3)を参考にしてください。(多少異なりますが)

***...部をクリアーしてお使いください。
確認は 森精機 MV-45 FANUC-15M にて確認済みです。
しかしながら最初は慎重にお願いします。
尚 ( )内は後からの書き足しですので、不合理の際は消してください。

このQ&Aは役に立ちましたか?

この質問は投稿から一年以上経過しています。
解決しない場合、新しい質問の投稿をおすすめします。

質問する
2008/10/26 12:45
回答No.5

こんにちは。
私がいつも使っているマクロを元に、
簡易的に作ってみました。
動作チェックはしていません。
ノークレームでお願いします。

G65 P1000 T1 (T番号を任意に入力)
M30

O1000(ATC/MACRO)
(補正タイプCタイプの場合のATC、径補正、長補正)

(大径工具20番、その両側を18番19番とする)
(簡易マクロのため、20番が主軸についていない状態でスタートする)
(主軸についている番号をマクロで呼ぶとエラーとなる機種あり)

G17G40G80G52X0Y0Z0
(T番号がないときはアラーム)
IF[#20EQ#0]GOTO100
(18番、19番の場合はアラーム)
IF[#20EQ18]GOTO101
IF[#20EQ18]GOTO101
(機種によってSが指令されてない場合アラームになるのを回避)
S500
M05
M09
G04
(交換工具が20番だったら1番の工具を呼んでくる)
IF[#20NE20]GOTO10
T1
M06
G04

N10
G04
(#4120が20番だったら、18番と19番の間へもどす)
IF[#4120NE20]GOTO20
G04
T1
M06

N20
T#20M05
(ATCの時G30の機械は、下記G28をG30に変える)
G91G28Z0M09
(ATC動作時にY軸を原点まで待避する。Xも待避の場合はX0も追加する)
G28Y0
M6
(ATC交換後の工具干渉を避けるために、マガジンへ工具が待避するまでの時間を設定)
G04X2.

(ワーク原点まで移動後、工具長補正をかける)
G90G00X0Y0
G90G00G43Z100.H#20
(工具径補正を有効)
D#20

GOTO200

N100
#3000=99(ATC#T-BANGOU-NASI)
GOTO200
N101
#3000=99(T18 OR T19 SIREI)
N200
M99

2008/10/24 21:42
回答No.4

回答(3)の続きです。
前述の流れにそってプログラミングしチェックしました。
32(+4)ブロックのプログラムとして出来上がりましたが、疑問が1点あります。
たとえば2番4番を大口径にすれば1番3番5番はアキポットとなります。
アキポットとして登録されたポットを選択した場合、アラームとなれば問題ありませんが、アラームにならなければプログラムでアラームとしなければなりません。
質問の機械はどうなのか教えてください。

試験した機械ではアラームになりましたので、アラーム処理部分(+4)は削除しました。
また回答(3)にある2を9002にという操作は無くなりました。
ダミー工具は変化するため初期設定は無くなりました。

2008/10/23 22:40
回答No.3

大変興味深いテーマと考え書き込みます。
某メーカーでは、大径工具は9000番台とする、つまり『工具2は9002と登録』のように決められています。
私も必要に迫られなかったので深く考えたことは有りませんでした。
しかしながら、M6マクロでこの問題がクリアされたら まさに『目から鱗・・・・』と言えるかも知れません。
まだプログラムチェック前ですので流れだけを書いてみます。

プログラムの流れ
1 大径工具の本数、最初の工具番号(例:3本、2番から[2、4、6])
2 ダミー工具の設定(必要無いかも知れない)
-------------------
3 前処理(工具交換の為の動き)
-------------------
4 待機工具または主軸工具がダミー工具ならば工具交換
5 待機工具が大径工具かチェック
6 待機工具と主軸工具が共に大径工具ならば工具交換
7 待機工具と主軸工具が共に大径工具でなければ工具交換
8 待機工具が大径工具ならば主軸工具をダミー工具に書き換え工具交換
9 主軸工具が大径工具ならばダミー工具を呼び出し工具交換、その後 待機  工具を呼び出し工具交換

この流れでプログラミングしチェックして、後日書き込みます。

2008/08/22 05:32
回答No.2

ATCによる時間を考慮しなければ次のような方法で出来ると思います。

大径工具をT1とした場合T1番の両隣のマガジンポッドは空にします。
そしてプログラムにて
 T1;
 M6;
 N10;
 G90G54X0Y0;
 ↓
 G91G28Z0M6;
 T2;
 M6;
 N20;

とすればT1の大径工具は同じポットに戻る為大丈夫だと思います。
これでうまくいけば最大で18本付けられるはずです。

お礼をおくりました

さらに、この回答をベストアンサーに選びますか?

ベストアンサーを選ぶと質問が締切られます。
なおベストアンサーを選びなおすことはできません。