MDIにおけるG90とG91

このQ&Aのポイント
  • 機械の種類によっては古いマシニングセンターではMDIでのG90やG91の動作が正確にはできないため、パラメータの設定が重要です。
  • MDIでの動作確認やワーク座標系や工具補正の確認にはG90やG54G0X0Y0などの設定が必要です。
  • MDI設定をG90にしている場合、うっかり原点復帰を行うと工具が下がってから原点に復帰するという危険があります。メーカーの提案として、座標確認用のプログラムを作成し、必要に応じて編集してメモリ運転で確認する方法があります。
回答を見る
  • 締切済み

MDIにおけるG90とG91

今の機械はMDIでもG90G91は打ちこんだGコードどうり 動くと思いますが、 会社にある マシニングセンターが古いため、 MDIではG90やG91をうっても、そのとおり動くわけではなく MDIでの動きをG90かG91かを決めるパラメータの部分がありそこの設定によってきまります。たとえばそこをG91にしていたら、 MDIでG90G0X0とうっても→G91G0X0という動きをします。この場合はインクリで0だから動かないですが。 ワーク座標系を設定したあとにワークのXYの0の位置があっているか確認 するのにMDIで確認したり、この場合G90でG54G0X0YOが必要 工具長補正とワーク座標系のZの関係が合っているかの確認をしたり この場合もG90でG54G43Z100H○などを使う。 ので、MDIの設定をG90にしていたら、いいかと思いましたが、 うっかりMDIで原点復帰 G91G28Z0をうったら→G90G28Z0の意味になるからワーク原点まで工具が 下がってから原点に復帰するという危険なことになってしまいます。 メーカーがいうには、MDIはインクリにしておいて、 座標確認用のプログラムを作って、必要に応じてそのプログラムの 補正番号などを編集してメモリ運転で実行して確認を やった方がいいということで以下のサンプルプログラムをもらいました。 G91G28ZO T5M6 G90G54G0X0Y0 G43Z150H5 M30 ということですが、 まずこのプログラムだとワーク原点を確認したいだけなら G43Z150H5の部分も実行されるとじゃまだし 工具長補正とワーク座標系Zの関係を確認したいだけの時には G90G54X0Y0がじゃまになります。 スラッシュをどちらかにいれてブロックスキップで対処しようとしても どちらかは必ず実行されてしまいますので、だめですし、 O0001 G90G54G0X0Y0 M30 と O0002 G0G43Z150H5 M30 に分けてプログラムを作るしかいい方法はないでしょうか? なにかいいアイデアがあったら教えていただけないでしょうか。

noname#230358
noname#230358

みんなの回答

noname#230359
noname#230359
回答No.5

FANUC系の経験が少ないので「何となく程度」ですが、 逆の発想で原点復帰をメモリ運転ですることは出来ないものなのでしょうか? それが出来れば、MDIの設定は「G90」でもいいような…。 原点復帰以外にも問題がある場合はこの限りではありませんが。 参考になれば幸いです。

noname#230358
質問者

補足

ありがとうございます。 確かにそうですよね。 MDIではG90の方がよく使いますよね? MDIでG91ってみなさんどんな時に使うのでしょうか? 原点復帰についてはわざわざMDIでやらなくても原点復帰モードで やってもいいですし。 MDIの設定をG91にしているのは うっかりMDIで原点復帰したときに G91設定になっていたら問題ないけど、 G90設定だとドカンといく可能性があるからです。 まあドカンといっても (プログラム面のとり方によりますが、) ワーク上面まで刃先が早送りで下がるだけですが。 ワーク上面までなら早送りで当たってもたいしたことない でしょうか?

noname#230359
noname#230359
回答No.4

アイデアだけで申し訳ないですが、 カスタムマクロが付いていなくて、 ブロックスキップのみで切り替えされたいという条件で、 1案(M30はブロックスキップ不可でしょうか?) O0001 /G90G54G0X0Y0 /M30 G0G43Z150H5 M30 2案(M99で下に飛ばせないでしょうか?) O0001 /G90G54G0X0Y0 /M99N1 G0G43Z150H5 N1M30 実機で確認していませんので、試される場合は充分注意して下さい。 見直したところ、間違えていました。(^^; 誤…/M99N1 正…/M99P1

noname#230358
質問者

補足

アイデアをありがとうございます。 一案はブロックスキップ有効なら工具長補正だけの動作 ブロックスキップを無効にしていたらXYの原点に移動したとこで、 M30により終了になり工具長補正動作は行わないということですね。 なるほど思いつきませんでした。

noname#230359
noname#230359
回答No.3

危険だと思うなら、手動で確認。 大賛成です。 ただプログラムを無理やり1つにする必要はないと思います。 下記でも言っておられる様に プログラムは単純であれば単純なほど、理解しやすいので 作るのであれば O0001 G90G54G0X0Y0M5 (G91G28X0Y0Z0M19) M30 と O0002 G90G54G0G43Z150H5 (G91G28X0Y0Z0M19) M30 に分けてプログラムを作るのがいい方法とおもいます。 O0001→位置決め用PRO O0002→工具長補正用PRO プログラム番号で使い分け! 1つにまとめることは可能ですが、 その分(入力事項・理解等が)複雑になります。 プログラムの見た目は専門職ぽく格好がいいですが、 単純な作業で正確というのが一番だと思います

noname#230358
質問者

補足

ありがとうございます。 それはそうですね。

noname#230359
noname#230359
回答No.2

まず、ご自身でプログラムは組めますか? 次に、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の違いを理解しておいてください。 ところで、たったこの程度のプログラムでも当初より、かなり複雑だと思います。 ですから、最初に述べた方法をお勧めしますけど・・・。

noname#230358
質問者

補足

ありがとうございます。 GOTO文、サブプログラム、変数機能すべて使えます。 プログラムは組めます。 ただGOTOと変数は 習ったことはあるけど、忘れているので、見直さないと いけないですね。 >変数とGOTOが使えれば、調べたい項目を変数化し、その変数に値が入>れば、そこへ飛ぶようにすれば良し。 >GOTOだけなら、何パターンかを作っておいて、用途に応じてGOTO>で飛ばせば良し もしよろしければ一例を載せていただくことはできますか? そうですね。。 サンプルを書いていただきありがとうございます。

noname#230359
noname#230359
回答No.1

危険だと思うなら、手動で確認。 G91G28Z0で、Zの原点に、行きますよね。(工具交換位置でも、ありますが) Z0の原点位置。 工具長補正は、加工物の上面を0にあわせた場合、マイナスいくつと、なりませんか?その値を補正値として、工具番号に入力していますが。 補正をかけて、もしワーク面位置がプラスだとすると、Z軸は、加工物に、ぶつかります。面よりも下が0ですから。 Z0の位置を、海水面と仮定すると、加工は、全て海の中で行うと言う事です。 海抜0以下での、加工です。陸上では、しないと言う事です。 穴あけ、エンドミル加工等、全て、マイナス側での 加工ですよね。 指定点戻りとかZを上げる時は、陸上での移動になりますが。 金型加工等で、例えば、板厚の下側の面を0にして加工する 場合は、全て、プラス側での加工になりますが。 何か、よく判らないな? G43Z100H1で、ワーク面から100になっていれば、良いのでは? G54だろうがG55~G59だろうが、工具長は、変わらない筈。

noname#230358
質問者

補足

ありがとうございます。 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で工具長補正だけするというのはできなかったですよね?

関連するQ&A

  • ワーク原点オフセット工具長補正をしたあとのMDI…

    ワーク原点オフセット工具長補正をしたあとのMDIによる確認 ワーク原点オフセットと工具長補正のデータを入力したあと、 ワーク原点オフセットのXYやZの設定があっているか。 を見るのにMDIを使う場合 位置を見やすくするためMDIで T1M6を実行し例えば 一番工具をつけて GOX0Y0を実行  この位置ではZが高いのでワークの原点とあっているか 確認したいので、 MDIから手動モード→パススハンドルに切り替えて Zを近くまで下げていく。 あとここでT1の工具長補正があっているかも確認するならMDIでG56Z100H1を入力ですが普通はプログラム流す時に工具長補正が入ったところで止めて スケールで測りますか? MDIで確認しようとした時にうっかりG00Z100とうってしまうと 補正量が100より多い工具ではそこでぶつかる危険がありますか? G00G56Z100 というふうにG56という長補正コード入れているけどH1を 忘れた場合には 補正0として原点オフセットのやり方によりますが、 ゲージラインもしくは 基準工具で考えたときの刃先がワーク座標系でのZ100 の位置にきてしまうのでしょうか? あと MDIでG00G56Z100H1などと打ったあとに パススハンドルを使うため手動モードに切り替えた時にはNCリセットがかかりますが、その時点でH0となる位置まで下がってくるのでしょうか? よろしくお願いします。 あとG00をつけないで MDIでG56Z100H1などと打ったときは Zは移動しないですか? それとも指令なくても 機械はG0かG1のどちらかが電源入れた直後でも入っており 上のMDIの打ち込みでも動くのでしょうか? よろしくお願いします。

  • ドライランの前にMDIで工具長補正の確認するか

    プログラムで実際に加工するまえに Zのワーク原点オフセットをいくらかあげて からドライランすると思いますが、 ドライランするまえにMDIを使って先に使う工具すべて工具長補正があっているかを確認しておかないと、もし長補正が間違っていたら、 補正間違った状態でのドライランをみても意味がないですよね? MDIで先に補正確認すると手動入力になるので TやHの数字を打ち間違う可能性もあるかなと思い プログラムで加工するときに長補正がかかったところで止めてスケールで 測って確認しようかと思いましたが、そうすると その前の ドライランの段階では補正があった状態でのドライランかわからないので 先にMDIで使う工具分確認するのが普通なのでしょうか? MDIでの補正確認→Zあげてドライラン→実際の加工 ですか?

  • G54

    ワーク座標系G54をしようして、マシンロックをかけてプログラム確認をすると終了後相対座標がずれてしまいます。 そのつど原点復帰をしないといけないのでしょうか? (途中でエラーになったときもです) G54を使うとたまに知らない間に原点がずれています。 なにか解決方ありませんでしょうか? (例) G90G69G40G80 G54G0X0Y0 G44Z50.H1 ; ; ; ; ; M30 宜しくお願い致します。

  • G49の動作

    ロボドリルにおいて <TEST> T1 M06 G49; G54 G43 G00 Z60.0 H1; G49; M30; というプログラムを動作させたときに G54~の部分ではちゃんと工具長補正を加味した上でZ60.まで降りるのですが、 G49の部分でZがさらに(おそらく工具長補正をキャンセルしたうえでZ60.まで)下がろうとするのですが、G49は工具長補正をキャンセルするだけで機械は動かないものではないのでしょうか? ちなみにG49を読み込んだときのプログラムは以下になります <TEST> T1 M06 G49; G54 G43 G00 Z60.0 H1; G49; M30; T1 M06 G49; G54 G43 G00 Z60.0 H1; G49; M30; (M30で止まらないのも不思議です)

  • G17,G18について。

    近々、アングルヘッドを導入するみたいです。 5面加工機に近い加工が出来るかもと言う事で。 プログラミングガイドを、参照しましたが、抽象的にしか説明がされて無く、 具体的な、指令を指南頂ければと思います。 固定サイクルと、長穴加工など。 機械は、オークマOSP2000Mです。 普段使ってるプログラム例です。 T1 M6 G15 H1 X0 Y0 G56 Z100 H1 S1200 M3 M8 G71 Z80 NCYL G81 R5 Z-2.5 P1 F78 M53 CALL OM6 G80 Z500 M9 M5 G15 H11 X0 Y600 M01 G15 H1 M63 M6 M2 / T1 M6 G15 H1 X0 Y0 G56 Z100 H1 S1200 M3 M8 MODIN O16 CALL ON16 MODOUT GO Z500 M9 M5 G15 H11 X0 Y600 M01 G15 H1 M63 M6 M2 / OM6 X15 Y15 RTS / ON16 X150 Y150 RTS / O16 G0 Z1 G1 Z-2.5 F500 G91 G41 G1 Y-8 F140 D21 G1 X70 G3 X8 Y8 R8 G3 X-8 Y8 R8 G1 X-140 G3 X-8 Y-8 R8 G3 X8 Y-8 R8 G1 X70 G40 G1 Y8 G90 G0 Z100 RTS / このような加工で、G17,G18の指令は、どの行に入れれば良いのでしょうか? それと、キャンセルのG19の指令を入れる適切な、プログラミングを指南、下さい。 宜しく、お願いします。 アングルヘッドの場合、90度で向いてますが、 オプション機能が無い場合、工具長補正は、X,Y軸に対して加工面を0で出せますが、工具径補正を行う場合、アングルヘッドの底から、アングル軸の中心を0に設定すると言う感じでしょうか? Z平面だと、Z軸は工具長で、XY軸は工具径です。 アングルヘッドの軸芯は、やはり、底から軸の差で設定するのでしょうか?

  • 多数個取り加工について!!(G54からG55への…

    多数個取り加工について!!(G54からG55への移動) 初めまして!多数個取りの加工プログラムで質問があります。 たとえば、G83のような固定サイクルで初めにG54の座標で加工後ツール交換せずに、G55の加工を行う場合どのようにプログラムしたらいいのでしょうか? 下記のようにG54でのプログラムの後は、再度G55で工具長補正をして 加工プログラムを繰り返せば良いのでしょうか? 今までは、まったく同じプログラム(もみつけ→ドリル→面取り→タップ等)をもう一つ用意して、G54全加工終了後、G55を再び全加工するプログラムでした。 加工歴6ヶ月の初心者です。どうぞ良きアドバイスをお願いいたします! ・ ・ G90 G00 G54 X0. Y0. G43 Z50. H10 S1200 M3 M8 G98 G90 G83 X0. Y0. Z-10. R3. Q1. F100 K0 X50. Y-50. X100. G80 G00 Z50. ? ? ? ?

  • G92による座標系のズレ量のキャンセルについて

    機械座標G53 とワーク座標系G54からG59まで持っている ワイヤーカットにおける説明において ?G28x0y0  自動原点復帰 ?G53G92x0y0 G92による座標系のズレ量のキャンセル ?G90G54G0X0Y0 ワーク1のスタート穴への移動 加工プログラムとつづいて行きますが、 ?の意味がわかりません。 ?で機械原点にいって ?はG53のX0Y0というのは機械原点だから ずれたりしないと思うのですが、 G92でプリセットしているのは G53座標のX0Y0の位置なのでしょうか? 注意事項としてワーク座標系移動の前に機械原点にてG92による ワーク座標系のズレ量を必ずキャンセルしてください と書いていますが?? これも含めて意味を教えていただけないでしょうか? お願いします。

  • マシニングセンタ

    マシニングセンタを独学で勉強しているのですが、プログラムの基本的な流れはこれで良いでしょうか。工具交換の時に工具径補正、工具長補正キャンセルを入れる必要があると思うのですが、どこに入れれば良いでしょうか。 ファナックです。 ーーー T01(工具呼び出し) G91 G28 Z0(Z軸レファレンス点復帰) G28 X0 Y0 (XY軸レファレンス点復帰) M06(工具交換) G54 G17(ワーク座標設定,XY平面指定) G41 G90 G00 X**.* Y**.* D01 (工具径補正,XY位置決め) G43 Z**.* H01(工具長補正,Z位置決め) M01(オプショナルストップ) G01 X**.* Y**.*(スタートアップ動作) Z**.*(Z切り込み) M03(主軸正転) M08(クーラントON) : 座標指示 : M05(主軸停止) M09(クーラントOFF) G91 G28 Z0 G28 X0 Y0 M02(プログラム終了) ーーー 本職が加工ではないため実際に機械を動かしてみることができないためよろしくお願いします。

  • 最初の工具進入時の安全確認手順

    プログラムを入力して ワークをバイスに固定して ワーク座標系の設定、 工具長補正量Hの測定と入力が終わったあとの 加工開始時の長補正量やワーク座標系のZの設定があっているかの 確認手順についてあっているか教えてください。 プログラムにはG43H1Z100 のあとにM01を入れておく するとそこで機械がとまるので、 定規でワーク上面から(ワーク上面をZ0としてプログラムを作った) 工具先端までの長さを定規ではかる、 その実測値の高さが100だとする。 プログラムのG43H1Z100の 100と一致していることを確認 次のG00からG01に変わる送り平面 のZの位置をプログラムを見てプラスの値で入っているかを確認する (G00でワークに進入しないかを確認) それで送り平面がプラスではいっていたら 加工を再開させるという こういうながれでよいでしょうか? 残移動量というのは機械が動いているときしか表示されないわけですか? つまり機械を止めているときはプログラムで次の移動量をみて確認しないと いけないのでしょうか?G00でどこまですすむのか。 よろしくお願いします。

  • 工具交換 G100の内部処理(マクロ処理)

    工具交換 G100の内部処理(マクロ処理)について G100は G91G28Z0 G80 G49 (M19) M09 M05 M06 を指令せずに工具交換をします。 ブラザー (例) タッピングセンター G100T1X-45.0Y40.0G43Z100.H1S750M03L2 G80 G49 M09 M05 をして原点復帰しT1を主軸に呼び XYZ(A軸C軸)同時位置決め補正番号Hで補正し回転S M03  L2 マガジンに待機工具 一行でここまで指令できます。 マクロを使えば G65 P○○○ .... .... .... ..... で呼び出すはず 現在使用しているのは、メルダス(マザック)、です。 上記はマクロで作ることはできるのですか 教えていただきたい。 立、横マシニング対話でしか動かせない者より よろしくお願いします。 メルダスマクロ詳しい方いらっしゃいますか? 翌日 簡単な プログラムを作成してみました。 特定のカスタムマクロを任意のGコードで呼び出す事が可能です。 呼び出すプログラムのワークNo 呼び出しに使うGコード番号 呼び出しタイプ M98 G65 G66 G66.1 が機械パラメータで設定可能でした。 まずはマクロで動かしてみます。 ブラザーのその機能に似たものはつくれますが、 おそらく全く同じには実装できません。 まねて動かすには O0010 G00G90G40G80; G00G90G54~G59; G65P8T85X0Y0G43Z150.H85S3000M03; (G66.1P8T85X0Y0G43Z150.H85S3000M03); O0008 (G40);必要に応じ G80M09; (G49M19);必要に応じ G91G28ZOM05; (G28X0); (G30Y0Z0); T#20T○○M06; G#10X#24#25Z#26H#11; S#19M#13; M99; % 上記では、T85を主軸にM06までは良いのですが G43で補正が出来ません。 良い方法はありませんか? G66.1ではG L N O Pが選択できるようですが 動作的にはG65呼び出しと変わりません。 また T#20T○○M06;のT○○待機工具も#に置き換えたい です。 こんな感じで間違っていませんか? とりあえずTツールを呼びH484 H485で補正がかかり 最後主軸T0 待機工具T0 で終了M30になりました。 A43長補正  B84次工具呼び出し  にしてみました。 次回G65P8 をG100に置き換えてみたいと 思います。 O0010 G00G90G40G80; G94; G00G90G54~G59; G65P8T85X0Y0A43Z150.H485S3000M03B84; G98固定サイクルZ R Q F; G65P8T84X0Y0A43Z150.H484S2000M03B80; G98固定サイクルZ R Q F; G65P8T0B0 M30; O0008; G40G80; M09; G91G28X0Y0Z0M05; G30Y0Z0; G90 忘れていました T#20T#2M06; M01; G#1X#24#25Z#26H#11; (M01); S#19M#13; M08; M99;