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

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

ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:工具長補正をかけながら動かさない)

工具長補正をかけない方法は?

2023/10/18 08:41

このQ&Aのポイント
  • NCプログラムで工具長補正をかけながら主軸を動かさない方法について教えてください。
  • MITSUBISHIメルダス700/70系の制御装置で、工具長補正をかけるものの、主軸を動かさない方法を教えてください。
  • 工具長補正を使用しつつ、ブロック内で主軸を動かさないようにプログラムする方法を教えてください。
※ 以下は、質問の原文です

工具長補正をかけながら動かさない

2010/03/01 22:36

NCプログラムでG43工具長補正をかけ、そのブロックで主軸をまったく動かさないようにプログラムするには、どうしたらいいでしょうか?
システム変数など使って工夫していますが、どうしてもZ軸が動くか、アラームになってしまいます。
たとえば、
G91 G43 Z0 H01 だと、プログラム座標Z0へ行ってしまいます。

工具長補正をかけるものの、そのブロックでは動かないで欲しいのです。

制御装置は、MITSUBISHIメルダス700/70系です。

質問者が選んだベストアンサー

ベストアンサー
2010/03/02 17:08
回答No.6

基本的な考えは回答(4)さんので合っています。

今居る高さと、工具長補正を掛けた時の座標の差をG91にて相殺する様に
G43をかければZ軸の移動が無いように工具長補正を有効にできます。

工具長補正が掛かっていない状態からですとその差は工具長とイコールに
なりますが、予め工具長補正が掛かっていた場合には異なってきますので
安全を考えると単純に工具長分低い所ではいけない事になります。
(例えば工具長補正をキャンセルせずに呼び出した場合など)

いくつか方法があるかも知れませんが、手っ取り早いのが現在の工具長補正量を
システム変数から読み取る方法だと思います。
FANUCですと#5083になります。
これと、この後指令する工具長補正の値との差を取って、その差の分の所へ
G91G43すれば良いわけです。
(工具長補正がキャンセルされている状態では#5083=0です)

工具長の値はオフセットメモリCの場合、形状・摩耗の合計になりますので
例えばH番号が#11で与えられていた場合には

工具長の値は
  #1=#[11000+#11]+#[10000+#11]  ;オフセットメモリCの場合

現在の補正量と新たな補正量との差は
  #2=#1-#5083

この差の高さの所へ
  G91 G43 Z-#2 H#11

1行にまとめると
  G91 G43 Z[#5083-#[11000+#11]-#[10000+#11]] H#11

こんな感じじゃないでしょうか。

#ちなみに当方メルダスは使った事ありませんのでFANUCの場合を書きましたが
 概ね同じやり方だと思います。

ちなみに上記は工具長をゲージラインから工具先端までの長さで入力している場合です。
基準工具との差で入れている場合など、他の運用の仕方をしている場合には誤動作するかも知れません。

補足

2010/03/05 12:21

回答ありがとうございます。
これでうまくいきました。
確認したのは、MELDAS70系です。
私も、システム変数でためしていたのですが、G90でやっていました。
G91でやるのがポイントのようです。
ありがとうございました。

ちなみに、システム変数で機械座標値を読み取り、G90G53でやるとアラームになります。(蛇足ですが書いておきます)

質問者

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

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

質問する

その他の回答 (7件中 1~5件目)

2010/03/03 08:20
回答No.7

こんにちは。
これって、G90G43H1
の指令だけで、補正値は有効になりますよ。
今、FANUC 18MA の実機にて確認しました。
MELDASも、同じと思います。
Z軸は動かさなくてもOKのようですね。

すみません。
G90G00G43H1 です。
G00 がいるようです。

2010/03/02 12:29
回答No.5

0.002ぐらいならばほぼ動いたことにならないから0.002動かせばいいかと。

お礼

2010/03/05 12:24

なるほど!
思いつきませんでした。
それも1つの手ですね。

ただお客さんに納品するマクロの場合はちょっと「う~ん」な感じなんですよね。
とはいえ、私は思いつきもしなかったので、またひとつ賢くなりました。
ありがとうございました。

質問者
2010/03/02 11:26
回答No.4

試したことないので、可能かどうかわかりませんが・・・

G91G43Z-#11001H01
とか、システム変数から補正量を読み取って、長補正の値分だけZを上げてみてもダメですか?
システム変数を使って・・・とありますので、試されたのでしょうけど。。。

また、最大ストローク位置で工具交換する機種なら、工具交換直後だとストロークオーバーになるでしょうし。
Z値を指令しなければ、アラームになっちゃいますしね。。。

どういった意図なのか不明ですが、難しそうですね。

あっ!弊社にメルダスの制御機がありませんので、ファナックで書いてます。

お礼

2010/03/05 12:26

回答ありがとうございます。
ご教授の方法でうまくいきました。
システム変数は使っていたのですが、わたしはG90でばっかりやっていた(機械座標とかを読み取って)ので、うまくいかなかったようです。
ありがとうございました。

M70系でうまくいきました。

質問者
2010/03/02 10:18
回答No.3

コンピューターは 私と違い真面目だから
相反する指令ではどちらかを優先して実行する。

中間点を設けて。そこで補正を終了させる

それ位しか手は無いのでは?

径の補正時には良く使う手だが。

2010/03/02 09:59
回答No.2

命令した時点で補正量分を動かさないようなことは、工具長補正の機能を考えるに無理だと思います。
そのように動作させたら逆に?命令したのに動作忘れ?をする危険が生じる。

策として
・工具長補正を使わない
・なにがしかの動作
・工具長補正をかけたい所で機械座標を読み、所望の補正量(H)を加減して動作させるマクロを書く
・以降のZ指令は全てマクロ
・・・・・・

なぜそうさせたいのかが疑問です。プログラムスタイルが順当でない気がしますが?

回答(1)ではストロークオーバのエラーになるのでは?

お礼をおくりました

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

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