ミスを減らすためにすること
NCプログラムを使用した加工で発生する不具合として、「プログラムそのものが間違っている」場合と「プログラムに対しての設定が間違っている」場合が主に考えられます。工具軌道や座標が違っていれば確認の段階で気づきやすいですが、例えば、平面設定を「いつもG17を使っているから」という理由で入れなかったりした場合に、万が一設備側がG19になっていたりすれば、工具軌道が変わってしまうこともありますので不具合となってしまいます。これはプログラムそのものが間違っているということです。
プログラムに対しての設定が間違っている例としては、工具径補正値を設備に直接入力する場合に補正番号を間違えたり、入力値を間違えたり、変えてはいけない変数を変更してしまったなどがあります。
これらはプログラムを作る段階で未然に防ぐことができます。
加工前に必ず平面、座標系、アブソリュートを指令する
まず平面設定は、設備側では必ずG17、G18、G19のどれかが設定されていますので、そのプログラムに適した値に書き換えなければなりません。座標系も同様です。
座標系を設定した直後はアブソリュート指令で軸移動を行わないと正常に動作しないことがありますので、アブソリュート指令も必須です。
これは3つは、加工前にまとめて指令することで確認作業も簡単になります。
ひとつのプログラムでアブソリュートとインクレメンタルを混在させない
理由はひとつです。わかりづらい。
サブプログラムやマクロプログラム全体をインクレメンタルで指令するなら良いとは思いますが、このブロックはアブソリュート、次のブロックはインクレメンタル、のようになってしまうとわざわざ考え方を切り換えなければなりません。
私の場合は機械原点へ復帰させるとき以外はインクレメンタル指令は使いません。
オペレーターが変更しなければならない変数は、プログラムの先頭に持ってくる
変更しなければならない変数がプログラムのあちこちにあると、オペレーターは確認作業が大変になり、見落としも増えてしまいます。
変更してもよい変数をプログラムの先頭に持ってくることで、自然と変更してはいけない変数と区別することもできます。
工具径補正への入力は、システム変数を使用する
これは時と場合にもよるのですが、工具径補正値を設備に手入力する場合とシステム変数を使用してプログラム内で入力する場合で、そのプロセスを考えてみると下記のようになります。
- 工具直径を確認する
- 2で割って半径を出す
- 工具径補正番号を確認する
- 半径を入力する
- 工具直径を確認する
- 変数に工具直径を入力する
上記のように、システム変数を使用したほうが人間が行う作業を減らすことができるので、オペレーターへの負担が減ることや、入力ミスが出る確率を減少させることができるというメリットがあります。
ただし、機種の異なる複数の設備を使用している場合は、プログラム内のシステム変数を確認する作業が必要になります。
コピーするならマクロにする
他の製品と似ている形状だからという理由で、複数のプログラムをコピーしてつなぎ合わせるという作り方をする人がたくさんいます。このようなプログラムは、ひとつの変数をまったく別の用途で複数回使用していたり、プログラム自体が非常に長くなって見づらくなったり、なによりもプログラムを一から十まで確認しなければなりません。
似たような形状の製品が複数あるなら、マクロにして使いまわしたほうが、確認作業も楽になりますし、データ容量も節約できます。
- 最低限必要なコード
- ミスを減らすためにすること
- マクロプログラムを作るときの考え方
- 繰り返しと条件分岐の使い分け
- NCプログラムとは。そのメリットとデメリット
- NC設備も良いけど、何気に活躍する手動工作機械
- 標準で使える変数
- NCプログラムの改善とは何か
- NCプログラムと生産システム
- 分業のジレンマ
- 座標とはなにか【初めてのNCプログラミング】
- 機械座標とワーク座標【初めてのNCプログラミング】
- 平面指定(G17〜19)を変更すると何が変わるのか【初めてのNCプログラミング】
- NCプログラムの基本は軸移動【初めてのNCプログラミング】
- アブソリュート指令(G90)とインクレメンタル指令(G91)
- 工具長補正は連続加工に必須の機能
- ATC(オート・ツール・チェンジャー)の使い方
- 主軸回転数と切削条件の求め方
- ワークのセッティングと測定機器
- タッチセンサを使った自動測定
- 当サイトのPDF版を作成しました。教育資料やリファレンスとして使用して頂ければと思います。
→ NCプログラムの教科書 - 上級編も作成しました。
→ NCプログラム上級編