G65 / G66 を使うと、サブプログラム(例:O9000)を呼び出せます。さらに、呼び出し側で指定した値(引数)を、呼び出された側のローカル変数へ自動で受け渡しできます。
目次
1) G65・G66の違い
G65:その実行ブロックで1回だけ 指定したプログラムを呼び出すG66:G67で解除するまで、1ブロックごとに 指定したプログラムを呼び出す
どちらも P で呼び出し先のプログラム番号を指定し、X/Y/Z などのアドレスで引数を渡します(渡した値はローカル変数に自動入力)。
2) 例1:G65でO9000を呼び出す
呼び出し側(G65)
G65 P9000 X10. Y20. Z-5.
O9000
G01 X#24 Y#25 Z#26
…
M99
X20. Y40. Z-10.
3) 例2:G66でO9000を呼び出す(モーダル呼び出し)
呼び出し側(G66 → G67で解除)
G66 P9000 X10. Y20. Z-5.
O9000
G01 X#24 Y#25 Z#26
…
M99
X20. Y40. Z-10.
O9000
G01 X#24 Y#25 Z#26
…
M99
G67
4) 引数 → ローカル変数の対応(一覧表)
| 呼び出し側の文字 | 呼び出された側で自動入力されるローカル変数 | よく使われる状況 |
|---|---|---|
| A, B, C | #1, #2, #3 | 主軸やテーブルの旋回、回転 |
| I, J, K | #4, #5, #6 | 座標変換 |
| T | #21 | 工具交換 |
| X, Y, Z | #24, #25, #26 | 工具移動、座標変換 |
5) よくあるミス(読みやすさ改善)
- G66を解除し忘れる:最後に
G67 - 対応を勘違い:
X→#24/Y→#25/Z→#26 - 受け取った変数を上書き:必要なら別変数へ退避してから処理
次回は「カスタムマクロを使った数式と条件分岐・繰り返し」について解説します。(第4回に続く)