マクロ解説:第8回 よく使うシステム変数一覧 (OSP・オークマ)

ここではOSP・オークマのCNCをベースに、現場で出番の多いシステム変数(V系)を用途別にまとめます。OSPのシステム変数は、工具補正・ワーク座標系・位置情報・モーダル情報などのCNC内部データを読み込み(一部は読み書き)できます。

OSP固有変数の書き方

変数の種類(OSP)

  • ローカル変数:4文字以内の名前で作る変数。メインプログラム/サブプログラムで独立し、リセットやサブプロ終了で値が消えます。
  • コモン変数(VC):標準でVC1〜VC200、オプションでVC1〜VC1000。プログラム間で共有できます。VC1〜VC400は電源OFFでも保持、VC401〜VC1000は電源OFFでクリアされます。
  • システム変数(V系):用途が固定された変数。座標値読み込みや補正値変更などに使います。

角括弧 [ ] とアスタリスク * の意味

  • [ ]:番号(添字)を入れます(例:補正番号、座標系番号など)。
  • *:X/Y/Z/C…などの軸名が入ります(例:VAPA*VAPAXVAPAZ のように使う)。

条件分岐(IF)の基本形(OSP)

たとえば IF [条件式] GOTO N_ の形で書きます。比較演算子は EQ/NE/LT/LE/GT/GE を使います。

1 工具補正

ここでは形状補正のみに絞って説明します。

システム変数内容
VTOFH[ ]工具長補正量(H相当)を読み書き
VTOFD[ ]工具径補正量(D相当)を読み書き

例)H1=100, H2=20, D1=10, D2=5 なら、VTOFH[1]=100VTOFH[2]=20VTOFD[1]=10VTOFD[2]=5 のように参照できます。

NCデータ内でコモン変数へ読み取り
VC100 = VTOFH[1]   (VC100にH1の補正量)
VC101 = VTOFD[2]   (VC101にD2の補正量)

2 モーダル情報

実行中のG/M/S/F/D/Hをシステム変数で参照できます。G/Mはグループ番号を [ ] に指定します。

システム変数内容
VGCOD[ ]実行中Gコード(グループ指定)
VMCOD[ ]実行中Mコード(グループ指定)
VSCOD実行中Sコード(主軸回転指令値)
VFCOD実行中Fコード(送り指令値)
VDCOD実行中Dコード(工具径補正番号)
VHCOD実行中Hコード(工具長補正番号)
例:今のH/D番号を退避
VC110 = VHCOD
VC111 = VDCOD

3 位置情報

各軸の現在値(APA)や演算値(CON)、機械座標系原点などを参照できます。

システム変数内容
VAPA*現在値(APA)読み込み
VRCO*演算値(CON)読み込み
VMOF*機械座標系原点(読み書き)
例:現在のX/Z位置を読み取る
VC120 = VAPAX
VC121 = VAPAZ

4 ワーク原点オフセット量

ワーク座標系(原点オフセット)の値は VZOF*[ ] で扱います。[ ] にはワーク座標系番号を指定します。VACOD で、現在選択中の座標系番号も参照できます。

システム変数内容
VZOF*[ ]原点オフセット量(読み書き)
VACOD現座標系番号(読み込み)
例:座標系1のX/Y/Zオフセットを読む
VC201 = VZOFX[1]
VC202 = VZOFY[1]
VC203 = VZOFZ[1]

5 自動運転

状態フラグや稼働時間、工具管理などでよく使う代表例です。

システム変数内容
VATOL現工具番号(工具種類+工具番号の管理値)
VNTOL次工具番号(工具種類+工具番号の管理値)
VTLCN現工具番号(“工具番号”として読み書き)
VTLNN次工具番号(“工具番号”として読み書き)
VMLOKマシンロック状態(例:128/0)
VDTIM[a,b]稼働時間計(電源入り/NC起動/主軸回転/切削…)
VWRKC[a,b]ワークカウンタ(A〜Dのカウント値/設定値)
例:切削時間(a=4)のカウント値(b=1)を読む
VC300 = VDTIM[4,1]

6 システム変数の使い方

6.1 掴んでいる工具が違ったらアラームを出す

VUACM[ ] にコメント文字列を入れ、VDOUT[*] = コード を実行すると、コメント付きのアラーム(A/B/C)を発生させられます(*が991/992/993でAlarm C/B/A、コードは1〜9999)。

例:想定工具T10以外なら停止(コメント付きアラーム)
IF [VTLCN NE 10] GOTO N900
GOTO N999

N900
VUACM[1] = 'TOOL_NOT_T10'
VDOUT[992] = 1000   (Alarm B / user code=1000)

N999

6.2 スキップ位置(センサ接触値)を使う

自動計測用のメーカーサブ(MSB)実行後などのセンサ/タッチプローブ接触位置を VSAP*[ ] で参照できます。

例:計測結果を読み取る
(計測用MSB実行後…という想定)
VC101 = VSAPX[1]
VC102 = VSAPY[1]
VC103 = VSAPZ[1]

6.3 作業者に確認させる停止

例:段取り確認で停止
M00 (CHECK_CLAMP_AND_PRESS_CYCLE_START)

6.4 座標系の値を別座標系へコピー

VZOF*[ ] は原点オフセットを読み書きできるので、座標系間コピーに使えます。

例:座標系1 → 座標系2へコピー
VZOFX[2] = VZOFX[1]
VZOFY[2] = VZOFY[1]
VZOFZ[2] = VZOFZ[1]

おわりに

他にも多くのシステム変数がCNCには存在します。NCVIEWのマクロデバッガではシステム変数に限らず、マクロ変数の一覧をNCデータとともに確認できます。加工にかける前の不安なNCデータを検証することができます。

>訪問デモ・オンラインデモ受付中!

訪問デモ・オンラインデモ受付中!

弊社シンプルテックがご相談をお受けいたします。
ぜひお気軽にお問い合わせください!

CTR IMG