演算子
NCプログラムでは数学と同じように、四則演算(+, -, ×, ÷)や比較(<, =, >)、論理演算(AND, OR)などを行うことができます。数学とは少し異なった記号を使用しますので、間違えないように注意しましょう。
算術演算子
| NCコード | 意味 |
|---|---|
| + | 加算(+) |
| - | 減算(−) |
| * | 乗算(×) |
| / | 除算(÷) |
| = | 代入 |
他のページでも書きましたが、NCプログラムでは「=」は、等しいという意味ではなく代入です。「#100 = 10.」のように代入は変数に行い、それ以外には使用しません。
四則演算では「#100 = 10. + 5. * 10.」となっていれば、右辺側の計算結果が「#100」に代入されます。計算される順番は数学と同じで、基本的には左側から計算され、乗算、除算がある場合は、加算、減算よりも先に計算されます。この場合は「60.」が「#100」に代入されます。
また、「[ ]」を使用することで計算が行われる順番を変えることもできます。「#100 = [10. + 5.] * 10.」とした場合はまず、「[ ]」の中の「10. + 5.」が先に計算されてから「* 10.」の計算が行われます。この場合「#100」には「150.」が代入されます。
四則演算は変数への代入だけでなく、アドレスの後に続く数値にも使用することができます。この場合は「X[10. + 20.] Y[5. - 2.]」のように、計算式を「[ ]」で括る必要があります。
除算を行う時の注意点として「#100 = 0 / 1」では「#100」には「0」が代入されます。「0 / 1」は「0」になりますから当然と言えば当然なのですが、逆に「#100 = 1 / 0」は「0で除算されました」というアラームが出て計算できません。これは「1 / 0」は「0」にはならないためです。変数を使用する場合にも、割る数が「0」になるとアラームが出ますので注意が必要です。
詳しくは「0で割ると計算できない理由」のページに載せてありますので、興味がある方はご覧ください。
比較演算子
| NCコード | 意味 |
|---|---|
| EQ | 左辺と右辺が等しい (=) |
| NE | 左辺と右辺が等しくない (≠) |
| LT | 左辺が右辺より小さい (<) |
| LE | 左辺が右辺以下である (<=) |
| GT | 左辺が右辺より大きい (>) |
| GE | 左辺が右辺以上である (>=) |
比較演算子は主に条件分岐(IF)や繰り返し(WHILE)などで使用されます。
「IF [#100 EQ 1] GOTO200」のように、比較演算を行っている部分は「[ ]」で括る必要があります。
「IF [[#100 + 1] EQ #1] GOTO300」のように、計算式を入れることもできます。この場合も計算式を「[ ]」で括る必要があります。
論理演算子
| NCコード | 意味 |
|---|---|
| OR | 論理和 どちらか一方でも成立すれば真 |
| XOR | 排他的論理和 両方が成立しなければ真 |
| AND | 論理積 両方が成立すれば真 |
当サイトのPDF版を作成しました。教育資料やリファレンスとして使用して頂ければと思います。
上級編も作成しました。