マクロ
製品寸法が少し変わっただけで、一からプログラムを作り直していては非常に効率が悪いです。NCプログラムではカスタムマクロという機能が付いています。メインのプログラムとは別にプログラムを記述することで、同じプログラムを様々な製品に使い回すことが出来ます。
マクロの呼び出し
カスタムマクロには引数を付けることができます。メインプログラムからマクロを呼び出す際に数値を設定することで、その数値をマクロプログラムの中で使用することができます。この機能により様々な寸法に対応でき、より汎用的なプログラミングが可能になります。
マクロ呼び出しは「G65 P_」で記述され、「P_」はプログラム番号でその後にアルファベットの「A〜Z」で引数を記述します。引数の記述の仕方は2種類あり、「A〜Z」で記述する方法と、最初の3つだけ「A,B,C」で記述し、そのあとは「I,J,K」を繰り返して記述する方法があります。
引数で使用するアルファベットは下記表のローカル変数に対応しており、マクロが呼び出された際にローカル変数に代入されます。このとき、マクロで使用するローカル変数は、メインプログラムで使用しているローカル変数とは別の変数となります。ローカル変数については「変数」のページで詳しく解説しています。
※カスタムマクロAしか入っていない設備では、自作したマクロプログラムを呼び出すことはできません。最近の設備のほとんどが自作したマクロプログラムを呼び出せるカスタムマクロBが入っていますが、古い設備ですとカスタムマクロBは入っていません。仕様書などでカスタムマクロBが入っているかを確認して、入っていなければメーカーに頼んで入れてもらいましょう。
| A〜Zで記述する方法 | I,J,Kを繰り返して 記述する方法 |
対応する ローカル変数 |
|---|---|---|
| A | A | #1 |
| B | B | #2 |
| C | C | #3 |
| I | I | #4 |
| J | J | #5 |
| K | K | #6 |
| D | I | #7 |
| E | J | #8 |
| F | K | #9 |
| I | #10 | |
| H | J | #11 |
| K | #12 | |
| M | I | #13 |
| J | #14 | |
| K | #15 | |
| I | #16 | |
| Q | J | #17 |
| R | K | #18 |
| S | I | #19 |
| T | J | #20 |
| U | K | #21 |
| V | I | #22 |
| W | J | #23 |
| X | K | #24 |
| Y | I | #25 |
| Z | J | #26 |
| K | #27 | |
| I | #28 | |
| J | #29 | |
| K | #30 | |
| I | #31 | |
| J | #32 | |
| K | #33 |
% O10 G65 P100 A10. B20. C30. X240. Y250. D70. F90. (アルファベットの順番は何でも良い) G65 P200 A10. B20. C30. I40. J50. K60. I70. J80. K90. (アルファベットの順番は変えられない) M02 % (代入されている数値) % O100 (#1 = 10.) (#2 = 20.) (#3 = 30.) (#7 = 70.) (#9 = 90.) (#24 = 240.) (#25 = 250.) M99 % % O200 (#1 = 10.) (#2 = 20.) (#3 = 30.) (#4 = 40.) (#5 = 50.) (#6 = 60.) (#7 = 70.) (#8 = 80.) (#9 = 90.) M99 %
マクロプログラムの終わりに「M99」を入れることで、メインプログラムに戻ることができます。「M02」や「M30」を入れてしまうと、そこでプログラムが終了してしまいますので注意が必要です。
マクロモーダル呼び出し
マクロの呼び出し方にはもう一種類あり、「G66」で記述するマクロモーダル呼び出しがあります。1ブロック目は「G65」が「G66」に変わっただけですが、2ブロック目からはX座標とY座標を設定するだけで、同じ動きを繰り返し行うことができます。このマクロモーダル呼び出しを終了させるには、「G67」でキャンセルします。
% O10 G66 P100 A0 B-10. (現在の工具位置でO100を呼び出す) X50. Y0 (X50. Y0の位置でO100を呼び出す) X100. Y0 (X100. Y0の位置でO100を呼び出す) G67 M30 % % O100 G01 Z#1 F1000 Z#2 F100 Z50. F2000 M99 %
マクロの多重呼び出し
呼び出されたマクロの中では、さらに別のマクロを呼び出すこともできます。これがマクロの多重呼び出しで、制御装置にもよりますが最大で4〜5重の呼び出しが可能です。アイデア次第で様々な使い方ができますが、プログラムが複雑化するおそれがあるので注意して使用しましょう。
当サイトのPDF版を作成しました。教育資料やリファレンスとして使用して頂ければと思います。
上級編も作成しました。