2017年11月24日

メインサブ両対応

 相変わらずの需要がよく分からないNCマクロネタです。

 機械の段取り時に使う様なプログラムは、それを単体で直接動かしたい時もあれば、別のプログラムからサブプログラムとして呼び出したい時もあったりしますよね?無いですか?

 単体で動かすプログラムは最後M30かM2で終了させますが、サブプロとして利用する場合にはM99で終わらせないとメインプログラムに戻ってくれません。

 従ってそのようなメインプログラムにもサブプログラムにも成り得るプログラムでは、どちらの状態で実行されているか判断して終了のMコードを切り替えてやる必要があります。

 今回はそんな処理をするマクロの例を紹介します。

サンプル1

%
O1234 (SAMPLE PROGRAM 1)


#30 =99. (M99)
IF[#4000 NE #4115] GOTO9900
#30 =30. (M30)

N9900 (END OF PROGRAM)
M#30
%

解説1

 システム変数 #4000 はメインプログラム番号、#4115 はそのプログラム自体のプログラム番号が格納されている変数です。サブプロ実行中は #4115 にサブプログラム番号が入ります。従って #4000 と #4115 が同一か否かで、そのプログラムがメインプログラムとして実行されているのか、それともサブプログラムとして呼ばれているのかが判別出来ます。

 因みにMDIで動かした場合には #4000 は“空”(#0)です。

 M99/M30 はわざわざ変数を介さなくても直接指令すれば良さそうなもんですが、これにはちょっとした理由があります。機械のパラメータ設定によりますが、外部機器からプログラムを読み込む際にM99やM30があるとそこで読み込みが止まってしまう機械があります。その様な機械でプログラムの後半が欠落するのを防ぐため、直接指令するのを避けました。

サンプル2

 動作確認しておkと思ったら、世の中には #4000 が無い制御装置もあるみたいなので別の方法を考えました。

(SAMPLE PROGRAM 2)
#13 =#4113 (MODAL M CODE)


#30 =99. (M99)
IF[#13 EQ 98.] GOTO9900
#30 =30. (M30)

N9900 (END OF PROGRAM)
M#30

解説2

 システム変数 #4113 には直前に指令されたMコード番号が格納されています。

 プログラム先頭で #4113 を調べた場合、もしこのプログラムが別のプログラムから M98 にてサブプロ呼び出されていた場合には #4113 には 98 が入っている筈です。一方メインプログラムとして実行された場合には #4113 には 0 か 2 か 30 の何れかが入っていると思います(処理系依存)。

 この方法ではサブプログラム呼び出しではなく、G65 のマクロ呼び出しされた場合にそれを判別出来ません。FANUCなら #4012 (G65,G66,G67) のシステム変数にてマクロ呼出しされたかどうかを調べる事が出来ますが、ブラザーのNC (CNC-C00) では #4012 は G66,G67 しか返さないようで、G65で呼ばれたかどうかが判別出来ません。

おわり

 そんなのM98Pするだけのプログラム1個置いときゃ良いじゃん、なんて事は決して口にしてはいけません。


posted by antec at 23:39 | Comment(1) | 工作機械 | このブログの読者になる | 更新情報をチェックする

2017年11月18日

2号機

 先日またM140X2が入ってきました。X1と合わせると3台目。いつものように最初の立ち上げ作業は自分がやって、出来たら担当者に引き渡します。

 今回のちょっと新しい試みとしては、工具長測定の改良と、テーブル自動心出しの実装。

 テーブル自動心出しは自分が担当する方の機械でやってる事で、今までM140Xxには付けて無かったんかいという感じですが、これ標準で付いてくるBLUMのスタイラスが太短くて有効長が足りない為に、加工段取り状態で測る事が難しかったので放ったらかしにしていました。まぁ自分が使わない機械なんてそんなもんです。

 工具長測定はA軸の横っちょに付いてて、測定時にA軸を100度に倒して使います。一応カタログの名目は『工具折損検出装置』なので本来は工具長測定装置では無いのでしょうけど、測定マクロさえ作れば工具長測定も行う事が出来ます。

 因みにうちの場合はX1納入時の操作説明中に指導員の方がその場で工具長測定マクロを組みながら使い方を教えて下さりました。

 ここに使われているタッチセンサーはメトロールの『高精度MT-タッチスイッチ〔Pシリーズ〕』と思われますが(憶測)、センサー単体の公称繰り返し精度0.0005mmと比較すると、実運用上の測定精度がそこまで高くありません。

 測定精度が安定しない主な理由としては、機械の熱変異とA軸の繰り返し位置決め精度の影響ではないかと考えています。なので今回の改良点はその2点。具体的には

  • 基準工具によるキャリブレーション
  • 測定後にA軸を戻さない

 5軸のマシニングで精度を管理しようと思うと、主軸ゲージラインを基準にするのが一番良いと思っています。なので本来なら工具長は信頼性のあるツールプリセッタで測るのが良いと思っていますが、残念ながら弊社にはツールプリセッタが無いので、機内で工具長を測っています。

 機内での工具長測定の問題点は、熱変異等の影響によって測定値がいつも同じにならないという事が挙げられます。

 3軸のマシニングならその時加工に使う工具の長さが揃っていれば絶対値としては間違っていてもそれ程支障がありませんが、5軸の機械では回転軸との関係が狂ってしまうと致命的なので、ゲージラインからの寸法がいつでも正しく測れる事がとても重要なのです。

 そんな訳で、正確にゲージラインからの長さを測った基準工具にてキャリブレーションしてから工具を測るようにすると、機械原点から測定子までの距離が変化していても正しい工具長を測れるようになります。

 基準工具の注意点は、基準工具の長さ自体が温度変化で変わる事です。線膨張率を12e-6[/K]とすると、基準工具の長さが100mmあって温度変化が10℃あれば 12e-6*100*10=0.012mm となり、結構無視出来ない量。

 A軸の繰り返し位置決め精度の問題は、A軸を動かさなければ問題にならないだろうという安直な考えから、キャリブレーション時に測定姿勢へ位置決めしたら、あとはずっとそのままにしておけばA軸の繰り返し位置決め精度の影響は排除出来ると考えました。勿論キャリブレーションだけでなく、工具長を測った後もそのまま。従来は律儀に測定が終わったら水平に戻していましたが、どうせ工具長を測る時は人が付いているのだから別に戻す必要も無かったのかも。その方が何本か連続で測る時には時間短縮になるし。

 こんな程度の事でも十分良い精度で測れるようになったので、今後は初品から安定した寸法で加工出来るようになるんじゃないかと期待します。

 因みにC軸がZ軸に対してちょっと傾いているので(X軸方向に0.009/100、Y軸方向に0.002/100くらい)、テーブル中心をテーブルの根元付近で測ると、バイスの上に掴んだワークの位置で測った時と一致しません。

 同様にA軸もX軸と平行ではないので、テーブルの心出しと座標変換(G68.2のマクロ版)の両方でそこら辺の誤差を見込んだ補正を掛けています。

 多分CNC-C00のロータリフィクスチャオフセット機能ではそこらの問題には対応出来ないんじゃないかと思いますがどうでしょうか。

 因みに大抵の機械では工具長測定装置はテーブル側に付いているので、5軸テーブルの心出しを行った際に傾斜軸中心のZ値に連動して工具長測定の基準高さパラメータも更新するようにするだけでも、工具長測定の精度が結構向上します。こうする事でいちいち基準工具でキャリブレーションしなくてもそれなりには測れるので便利です。


posted by antec at 12:11 | Comment(0) | 工作機械 | このブログの読者になる | 更新情報をチェックする

2017年11月10日

目標0.001から

 先日若干体調不良で休んでたらリピート品の依頼が入ってた。平研の仕事なんだけど、やる度にだんだんと平行度の要求が厳しくなって行って辛い。

 まぁそれでも何とか頑張ろっかなという気になって、治具をまたちょっと改良したりして加工して検査に持っていったら、今回また図面が変わってるねと。

 いつもの奴なので図面よく見ないで加工してたけど、確かに平行度の指示が前回0.001(目標)だったのが、今回0.002(目標)にちょっと緩めてくれてた。ありがとう〜。


 2つ加工して1個は良かったけどもう1個が0.0024。まぁ目標値だから許してくれんじゃない?と同僚は慰めてくれたけど、納期までまだ日があるのでもっかいチャレンジしてダメだったら許しを請う事にしますと言ってやり直したら何とか0.001くらいの数値が出た。

 出たと言ってもこのレベルだと多分それなりの光学的な測定機を使わないと正しく測れていないと思う。

 取引先にレンズのメーカーがあるのでそこへ持ち込めばÅまで測れるらしいけど、逆に高精度過ぎて0.001くらいの出来だと測定レンジから外れてしまいそう。

 そもそも平行度というよりも平面度自体がそれくらいしか出ていないと思う。つまり主軸の振動からくるうねり0.001くらいあると思うの。だいぶ機械草臥れてるし。

 あとはラップすればもうちょい良くなりそうだけど、生憎そういう技術は持ち合わせていない。

 今後どうなるのかなぁ?(意訳:そろそろ限界ですアピール)

 世の中にはもっと良い腕と機械を持った研削屋さんがいっぱい在ると思うんだけどな。

タグ:平面研削

posted by antec at 19:57 | Comment(0) | 検査・測定 | このブログの読者になる | 更新情報をチェックする