ファナックNCのマクロプログラムを使いこなすためには、基本的な構文やコマンドの理解が欠かせません。今回は、変数、演算子、条件分岐といったマクロプログラムの基礎を具体的な例を交えて解説します。
1. 変数の基本
マクロプログラムでは「変数」を使用して数値やデータを保持します。これにより、同じプログラムを異なる加工条件に応じて使い回すことができます。
- ローカル変数
#1
~#33
- サブプログラム内や一時的なデータ格納に使用。
- コモン変数
#100
~#199
- 加工ごとに設定を保持するために使用。
- システム変数
- マシンの状態を表す変数で、特定の機能やデータを取得できます。
- 例:
#5001
(現在のX軸位置)
例:変数の使用
#100 = 10 (変数#100に値10を代入)
#101 = [#100 + 5] (変数#101に#100の値に5を足した結果を代入)
2. 演算子と計算式
マクロプログラムは様々な演算子を使うことで計算が可能です。
- 基本的な演算子
+
(加算)-
(減算)*
(乗算)/
(除算)
- 特殊な演算子
MOD
(剰余)- 例:
#101 = [10 MOD 3]
→#101
に1
が代入される。
- 例:
- 数学関数
SIN
、COS
、TAN
(三角関数)SQRT
(平方根)ABS
(絶対値)
例:演算式の活用
#102 = [SIN[45]] (45度のサイン値を#102に代入)
#103 = [#100 MOD 2] (#100を2で割った余りを#103に代入)
3. 条件分岐
加工条件によって異なる動作をさせる場合に、条件分岐を使用します。
- IF文
- 条件が真の場合に特定の動作を実行。
- 例:
IF[#100 GT 10] GOTO 20
(#100が10より大きければ行20にジャンプ)
- WHILE文
- 条件が満たされている間、ループ処理を実行。
- 例:
WHILE[#101 LE 5] DO1
(#101が5以下の場合、以下のループを実行)
例:条件分岐の使用
IF[#100 EQ 0] THEN #100 = 1 (#100が0の場合、1に変更)
WHILE[#101 LE 10] DO1 (#101が10以下の場合ループ)
#101 = [#101 + 1] (#101に1を加算)
END1
4. サンプルコード:穴あけ加工
簡単な穴あけ加工のプログラム例を紹介します。
例:複数穴加工
#100 = 5 (穴の数)
#101 = 10.0 (X方向の間隔)
#102 = 0 (開始位置)
WHILE[#100 GT 0] DO1
G0 X[#102] Y0 (穴の位置に移動)
G81 Z-10 R1 F200 (穴あけサイクル)
#102 = [#102 + #101] (次の穴の位置を計算)
#100 = [#100 - 1] (残りの穴の数を減らす)
END1
このコードでは、指定された穴の数と間隔に従って自動で穴あけを行います。
5. デバッグのポイント
プログラムを書く際には、以下を注意するとトラブルを防げます。
- 変数の初期化
- 使用する変数には初期値を必ず設定する。
- 条件分岐の検証
- 条件が正しく設定されているか確認。
- 動作シミュレーション
- 実際の加工前にシミュレーションを実施する。
次回予告
次回は、具体的な「便利なマクロプログラムの作成例」をご紹介します。穴あけ加工や円周上の加工など、実践的なプログラムを詳しく解説します!