NCプログラムの変数とは、数値や文字を格納し、演算や条件分岐、ループ処理などに使用できる要素です。変数を使うことで、柔軟で効率的なプログラム作成が可能になります。
たとえば、NCプログラムで「特定の工具で何回も同じ加工を繰り返す」場合、変数を使えば簡単に設定できます。また、計算によって工具の座標や送り速度を変更することも可能です。
1. NCプログラムの変数の種類
NCプログラムでは、以下のような変数が使用されます。
1.1 ローカル変数(#1~#33)
- 特徴
- サブプログラムやマクロの中で一時的に使用される変数。
- プログラムが終了すると値がリセットされる。
- 一般的に、G65(マクロコール)で使用される。
- 使用例(G65マクロ呼び出し)
gcodeコピーする編集するO1000 (メインプログラム)
G65 P2000 A50.0 B20.0 (サブプログラムO2000を呼び出し、#1=50.0, #2=20.0を渡す)
M30
O2000 (サブプログラム)
#3 = #1 + #2 (計算 #3 = 50.0 + 20.0 = 70.0)
M99
1.2 コモン変数(#100~#199)
- 特徴
- プログラムの実行中、保持される変数。
- 他のプログラム間で共有できる。
- 数値の格納や計算に使用することが多い。
- 使用例(計算・座標の設定)
gcodeコピーする編集する#100 = 10.0 (X軸の基準位置)
#101 = 5.0 (移動量)
G01 X[#100 + #101] F100 (X=15.0へ移動)
1.3 システム変数(#500~#999)
- 特徴
- NC装置が管理する特殊な変数。
- 工具補正やワーク座標の設定などに使用。
- 一部の変数は電源OFF後も値が保存される。
- 使用例(工具補正の設定)
gcodeコピーする編集する#510 = 20.0 (工具長オフセット設定)
G43 H1 Z[#510] (工具補正値を適用)
2. 変数の活用方法
2.1 計算処理
変数を使えば、座標や送り速度を計算で求めることができます。
gcodeコピーする編集する#1 = 10
#2 = 20
#3 = #1 * #2 (結果: #3 = 200)
2.2 条件分岐(IF文)
条件を満たした場合にのみ特定の処理を実行できます。
gcodeコピーする編集する#1 = 5
IF [ #1 EQ 5 ] THEN GOTO 100 (もし#1が5ならN100へジャンプ)
N100 M30
2.3 ループ処理(WHILE文)
繰り返し処理を行う場合、WHILE文を使用します。
gcodeコピーする編集する#1 = 1
WHILE [ #1 LE 5 ] DO1
G01 X#1 F100
#1 = #1 + 1
END1
上記の例では、#1の値が5以下の間、X軸を1ずつ増やして移動します。
3. 変数を使うメリット
3.1 プログラムの簡略化
例えば、同じ動作を複数回繰り返す場合、変数とループを使えば短いコードで表現できます。
3.2 柔軟な数値設定
工具やワークのサイズが変わっても、変数を変更するだけでプログラム全体を修正可能。
3.3 エラーの削減
数値を直接入力する代わりに、計算や変数を使うことで入力ミスを防げます。
4. まとめ
NCプログラムの変数は、効率的なプログラミングに欠かせない要素です。ローカル変数、コモン変数、システム変数を適切に使い分けることで、柔軟なプログラムを作成できます。条件分岐やループ処理と組み合わせることで、より高度な制御が可能になります。