- 締切済み
MDIにおけるG90とG91
- 機械の種類によっては古いマシニングセンターではMDIでのG90やG91の動作が正確にはできないため、パラメータの設定が重要です。
- MDIでの動作確認やワーク座標系や工具補正の確認にはG90やG54G0X0Y0などの設定が必要です。
- MDI設定をG90にしている場合、うっかり原点復帰を行うと工具が下がってから原点に復帰するという危険があります。メーカーの提案として、座標確認用のプログラムを作成し、必要に応じて編集してメモリ運転で確認する方法があります。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
FANUC系の経験が少ないので「何となく程度」ですが、 逆の発想で原点復帰をメモリ運転ですることは出来ないものなのでしょうか? それが出来れば、MDIの設定は「G90」でもいいような…。 原点復帰以外にも問題がある場合はこの限りではありませんが。 参考になれば幸いです。
アイデアだけで申し訳ないですが、 カスタムマクロが付いていなくて、 ブロックスキップのみで切り替えされたいという条件で、 1案(M30はブロックスキップ不可でしょうか?) O0001 /G90G54G0X0Y0 /M30 G0G43Z150H5 M30 2案(M99で下に飛ばせないでしょうか?) O0001 /G90G54G0X0Y0 /M99N1 G0G43Z150H5 N1M30 実機で確認していませんので、試される場合は充分注意して下さい。 見直したところ、間違えていました。(^^; 誤…/M99N1 正…/M99P1
補足
アイデアをありがとうございます。 一案はブロックスキップ有効なら工具長補正だけの動作 ブロックスキップを無効にしていたらXYの原点に移動したとこで、 M30により終了になり工具長補正動作は行わないということですね。 なるほど思いつきませんでした。
危険だと思うなら、手動で確認。 大賛成です。 ただプログラムを無理やり1つにする必要はないと思います。 下記でも言っておられる様に プログラムは単純であれば単純なほど、理解しやすいので 作るのであれば O0001 G90G54G0X0Y0M5 (G91G28X0Y0Z0M19) M30 と O0002 G90G54G0G43Z150H5 (G91G28X0Y0Z0M19) M30 に分けてプログラムを作るのがいい方法とおもいます。 O0001→位置決め用PRO O0002→工具長補正用PRO プログラム番号で使い分け! 1つにまとめることは可能ですが、 その分(入力事項・理解等が)複雑になります。 プログラムの見た目は専門職ぽく格好がいいですが、 単純な作業で正確というのが一番だと思います
補足
ありがとうございます。 それはそうですね。
まず、ご自身でプログラムは組めますか? 次に、GOTO文、サブプログラム、変数のどれか使える機能はありますか? 変数とGOTOが使えれば、調べたい項目を変数化し、その変数に値が入れば、そこへ飛ぶようにすれば良し。 GOTOだけなら、何パターンかを作っておいて、用途に応じてGOTOで飛ばせば良し。 サブプログラムが使えるなら、ご質問にあるメインをサブにして、用途に応じて呼びだせばいいのでは? ただ・・・あなたが休みの時に誰が扱ってもわかるように、ご質問にあるようなメインを数パターン作っておいて、対応表のようなフローチャートを機械に貼り付けておくのが一番安全なんじゃないですか? プログラムは単純であれば単純なほど、理解しやすいので。 ファナックで、呼出し前に基準工具かなにかが、予めついた状態を想定しています。 飛ばしたい方には、0を入力。 #1=0だと長補正のみチェック #2=0だと基準工具で原点位置のみをチェック ↓の状態だと、#2の工具で原点位置をチェック O1001 #1=54 #2=5 G91G28Z0 IF[#2EQ0]GOTO1 T#2M06 IF[#1EQ0]GOTO3 GOTO2 N1 IF[#1EQ0]GOTO4 N2 G90G#1G00X0Y0 IF[#2EQ0]GOTO4 N3 G43G00Z150.H#2 N4 M30 動作確認したわけじゃないので、あってるかわかりませんが・・・。 ちなみに、#1=54を工夫すればMDI入力にしたり、使用していない補正番号などシステム変数の数値を利用するといった、色んな方法ができますけどね。 ただ、その場合は、#1=0と#1=#0の違いを理解しておいてください。 ところで、たったこの程度のプログラムでも当初より、かなり複雑だと思います。 ですから、最初に述べた方法をお勧めしますけど・・・。
補足
ありがとうございます。 GOTO文、サブプログラム、変数機能すべて使えます。 プログラムは組めます。 ただGOTOと変数は 習ったことはあるけど、忘れているので、見直さないと いけないですね。 >変数とGOTOが使えれば、調べたい項目を変数化し、その変数に値が入>れば、そこへ飛ぶようにすれば良し。 >GOTOだけなら、何パターンかを作っておいて、用途に応じてGOTO>で飛ばせば良し もしよろしければ一例を載せていただくことはできますか? そうですね。。 サンプルを書いていただきありがとうございます。
危険だと思うなら、手動で確認。 G91G28Z0で、Zの原点に、行きますよね。(工具交換位置でも、ありますが) Z0の原点位置。 工具長補正は、加工物の上面を0にあわせた場合、マイナスいくつと、なりませんか?その値を補正値として、工具番号に入力していますが。 補正をかけて、もしワーク面位置がプラスだとすると、Z軸は、加工物に、ぶつかります。面よりも下が0ですから。 Z0の位置を、海水面と仮定すると、加工は、全て海の中で行うと言う事です。 海抜0以下での、加工です。陸上では、しないと言う事です。 穴あけ、エンドミル加工等、全て、マイナス側での 加工ですよね。 指定点戻りとかZを上げる時は、陸上での移動になりますが。 金型加工等で、例えば、板厚の下側の面を0にして加工する 場合は、全て、プラス側での加工になりますが。 何か、よく判らないな? G43Z100H1で、ワーク面から100になっていれば、良いのでは? G54だろうがG55~G59だろうが、工具長は、変わらない筈。
補足
ありがとうございます。 XYの原点設定があっているかは 手動でパネルを見ながら絶対座標系のXYが0になるところまで動かしたら位置がわかりますね。 工具長補正の方は手動では工具長補正が掛からないから、 (工具長補正をバイス上面までの移動量でとっているので、マイナスの値なので、) ワーク上面を0とプログラムしているとすると 手動モードで工具先端をワーク上面に当てた時、 のZの座標値は0でなくプラス工具長補正値のプラス値になっていたら あっているということになりますか? ありがとうございます。 お返事遅くなりすいません。 今バイス上面の位置で工具長補正をとっています。 T1の工具を例にするとT1の工具がバイス上面に当たる時の機械座標 Zがー150だとすると-150をT1の工具長補正量へいれています。 ワークをバイスに掴んだ時、ワーク上面を0にする時、 工具長補正の基準であるバイス上面から ワーク上面までの相対値を 今度G54などのワーク原点オフセット量Zへ 入れています。 この相対値がプラス30だとすると、 工具長補正をかけてワーク上面Z0を指定したとき、 G43Z0H1 -150+30イコールー120に機械座標がなったときに工具刃先はワーク上面にきているということですよね? G43Z100H1なら -150+30+100イコール-20に機械座標にがなったときに 工具刃先はワーク上面プラス100の位置になるということですよね。 手動モードでワーク座標系zの設定と工具長補正値の関係があっているかを 確認するにはT1工具をワーク上面プラス100の位置まで もって行ったときの機械座標が-20になっているかどうかの確認になりますか? これを機械座標の画面ではなくてG54の座標での画面で確認するなら 手動モード中は工具長補正が掛かっていないから ワーク上空プラス100の位置へ手動モードで工具先端をもっていったとき、G54座標のZ値はいくらになっていたら 工具長補正値とワーク原点オフセットのZの設定共に合っているという ことになるのでしょうか? ありがとうございます。 G43Z100H1を使えたら、そこでスケールでワーク上面から 刃先まで計って工具長補正とワーク原点オフセットのZの関係が あってるかすぐわかるけど、 MDIでG90が使えない場合にMDIでG43Z100H1ができないから (Z100はG90での位置なので。) パルスハンドルの手動モードで Zを動かして 工具長補正とワーク原点オフセットのZの関係が合っているかを確認するという場合の話ですよね? パルスハンドルで動かす前にG90が関係ない G43H1をMDIで実行して工具長補正をかけたあとに パルスハンドルにしてG54座標系の画面がZ100になるまで動かしたあと スケールでワーク上面から刃先まで計って100なら ワーク原点オフセットのZの設定も間違っていないと 確認するということでしょうか? あ、工具長補正はZがないと 入らないのでしたよね? だから G43H1でZをとばして MDIで工具長補正だけするというのはできなかったですよね?
補足
ありがとうございます。 確かにそうですよね。 MDIではG90の方がよく使いますよね? MDIでG91ってみなさんどんな時に使うのでしょうか? 原点復帰についてはわざわざMDIでやらなくても原点復帰モードで やってもいいですし。 MDIの設定をG91にしているのは うっかりMDIで原点復帰したときに G91設定になっていたら問題ないけど、 G90設定だとドカンといく可能性があるからです。 まあドカンといっても (プログラム面のとり方によりますが、) ワーク上面まで刃先が早送りで下がるだけですが。 ワーク上面までなら早送りで当たってもたいしたことない でしょうか?