FANUCではWHILE文、オークマ(OSP)ではIF文を使ってループさせる

メーカーごとのループの使い方

FANUCのループはWHILE文を使う

FANUCでループさせるときは以下のように書くことができる。

O1111
WHILE[ #101 GE -6. ] DO1
G90 G00 X0 Y0
Z1.
G01 Z[#101] F2000.
X10. F1000.
G00 Z1.
#101 = #101 - 2.
END1
M99

WHILE文の条件(#101の値が-6以上の場合)を満たしている場合、DO1~END1を繰り返す。

条件を満たさなかったら(#101の値が-6より小さい場合)ループを抜け、END1の次の行へ進む。

オークマ(OSP)のループはIF文を使う

オークマ(OSP)でループさせるときは以下のように書くことができる。

O1111
N1
G90 G00 X0 Y0
Z1.
G01 Z[VC101] F2000.
X10. F1000.
G00 Z1.
VC101 = VC101 - 2.
IF[ VC101 GE -6. ] N1
RTS

オークマ(OSP)にはWHILE文が存在しないためIF文を使ってループさせる。

IF文の条件(VC101の値が-6以上の場合)を満たしている場合、N1へ飛ぶ。

条件を満たさなかったら(VC101の値が-6より小さい場合)IF文の次の行へ進む。

オークマ(OSP)のIF文はソフトウェア開発プログラムのものと少し違う

C言語、JavaScript、SWIFTなどのソフトウェア開発のプログラミングを知っていると違和感があるかもしれない。

これらの言語でのIF文は「条件を満たしている場合{}内の処理を行いIF文を抜ける」というもの。

しかし、NCプログラムでは「条件を満たした場合、指定した行(N=シーケンス)へ飛ばす」ことができる。

指定した行へ飛ばすことができるため、下の行から上の行へ飛ぶことができる。

これにより、IF文でループさせることが可能になる。

まとめ

FANUCではWHILE文を使ってループさせる。

オークマ(OSP)ではIF文を使ってループさせる。

NCプログラムのIF文は、C言語、JavaScript、SWIFTなどのIF文とは使い方が異なるため、使い方には注意。