このQ&Aは役に立ちましたか?
マキノKE-55変数を使った加工方法
2023/10/19 02:50
- マキノKE-55を使用して、溶接材の開先30°を加工する方法について詳しく説明します。
- 変数を使ってX方向に0.1mmずつ送りながら、直線補間G1で削る手法を提案します。
- しかし、変数を使用する際にエラーが発生することがありますので、操作方法に注意が必要です。
マキノ KE-55 変数の取り扱いについて
2013/12/11 19:06
NC初心者です。
マキノKE-55についているFUNUC 20-FAを使っています。
溶接材(70×150mm 厚さ9mm)の開先30°を加工しようと思っています。
YZ平面を直線補間G1で削ろうと考えています。
X方向は変数を使って、0.1mmずつ送っていこうと思っています。
以下のようなプログラムを考えました。
使っている工具は80mmのフルバックです。
ワーク原点はマシンバイスの固定口金右角です。
O0001
G54 G90.0 G0 X20.0 Y45.0 Z10.0;
S600;
M3;
G1 Z1.0;
#1=0
WHILE [#1 EQ -180] DO1;
G91 Z-7.35
Y-12.7 Z7.35;
#1=-#1-0.1;
G0 X#1 Y12.7;
END1;
G90 G0 Z50;
M5;
X100 Y100;
M30;
シングルブロックで起動させると、
#1=0
で、「09 アドレス入力に誤りがあります」とエラーになります。
WHILE文をIF分に変更したり、何度も入力を確認したのですが、症状
は同じです。
変数を使わないで、サブプログラムではうまく動いたのですが、PCが接続できないので、操作盤から手打ちで入力しています。0.1mmで送ると1800行も入力しなければいけないので、変数を使って動かしたいのですが、根本的な使い方が間違っているのでしょうか?
よろしくお願いします。
また、別の良い加工法があったら教えてください。
回答 (2件中 1~2件目)
(1)と同じくNCフライスはマクロ使えました?
カタログではカスタムマクロBは☆でオプションです。
使えたとして
ありがちなのはゼロとオーの打ち間違い。上記では正しいですが。
文法以外では
#1=-#1-0.1;
右辺 -#1 マイナスを付けると都度符号が変わってヘンなループになるのでは
WHILE [#1 EQ -180] DO1;
停止条件なので NE では?
それと EQ NE の判定は、思惑通りに動かない(停止)ないことあります。
-0.1-0.1、、(1800回減算)、、、→ -179.999999 や -180.0000001かもしれない
コンピュータ数値(浮動小数点)は計算誤差があるものと扱うべきで筆算のようにいかない。
WHILE [#1 GT -180.01] DO1;
WHILE [ROUND[#1] NE -180] DO1;
のようなテクニック。
× WHILE [ROUND[#1] NE -180] DO1; -179.5を超えると停止条件を満たしてしまう。
○ WHILE [ROUND[#1*10]/10 NE -180] DO1;
ループ変数が小数では面倒な考慮を要するので、整数にしたほうがスッキリします。
カスタムマクロBというのが今は標準。NCフライスではそれを付けない簡易版がある。
そこでふと湧いた疑問。BがあるならAもある? ありました。。。
http://nc-program.s-projects.net/macro-a.html
原始的な文法なので間違うおそれあり、カスタムマクロBで慣れてないと事実上無理と思います。
Bへの変更は少しお金がかかるが、ハードの追加ではなく、サービスマンが来てパラメータ変更するだけ、1分で完了するような作業です。
このQ&Aは役に立ちましたか?
この質問は投稿から一年以上経過しています。
解決しない場合、新しい質問の投稿をおすすめします。
マクロのオプションは入っていますね?
エラーも含めて気になった箇所は、
#1=0.; ←
WHILE [[#1] EQ -180.] D1; ←
G91 G01 Z-7.35; ←
Y-12.7 Z7.35;
#1=#1-0.1; ←
G0 X[#1] Y12.7; ←
END1;
ぐらいです。
あとは、#1を#101とか#501に変えてみるとか。
↑
自信あり
になっていますが
自信なし
の誤りです。
すみません。
>当方の知識不足ですが、マクロのオプションってなんですか?
(2)さんの記載の通り、NCプログラム内で演算させる機能は
オプションです。
メーカに依頼してお金を払うと、サービスマンが来て機能を使え
るようにしてもらえます。
あと、同じく(2)さんの指摘で私の間違いに気づきました。
WHILE [[#1*[-1]] LE 180.] DO1;
ですね。
即ち "(#1×-1)≦180)"ならば1までを繰り返せ"となります。
(10年以上NC装置を触っていないので "≧" のコマンドを
忘れてしまいました)
これなら-180.に到達してから、ループを脱出できます。
私感)
KE-55とは渋い機械をお使いですね!
羨ましいです。
お礼
2013/12/11 20:58
早速、ありがとうございます。
当方の知識不足ですが、マクロのオプションってなんですか?
あとは、指摘して頂いた点は明日確認してみます。
変数の[]と小数点は知りませんでした(T.T)