對宏程序中的變量可以可以進行算術運算和邏輯運算。
1. 算術運算
可以進行加、減、乘、除運算。運算功能和格式如表12-3所示。
舉例:G00X[#1+#2]
X座標的值是變量1與變量2之和。
2. 三角函數計算
對宏程序中的變量可進行正弦(SIN)、反正弦(ASIN)、餘弦(COS)、反餘弦(ACOS)、正切(TAN)、反正切(ATAN)函數運算。三角函數中的角度以度為單位。運算功能和格式如表12-3所示。
表12-3 變量運算功能表
對於反反正弦(ASIN)取值範圍如下:
當參數(No.6004#0)NAT位設為0時:270°~90°
當參數(No.6004#0)NAT位設為1時:-90°~90°
當#j超出-1~1時發出P/S報警No.111。
對於反餘弦(ACOS)的取值範圍如下:
取值範圍180°~0°
當#j超出-1~1時發出P/S報警No.111。
對於反正切(ATAN)的取值範圍如下:
當參數(No.6004#0)NAT位設為0時:0°~360°
當參數(No.6004#0)NAT位設為1時:-180°~180°
3. 其它函數計算
對宏程序中的變量還可以進行平方根(SQRT)、絕對值(ABS)、舍入(ROUN)、上取整(FIX)、下取整(FUP)、自然對數(LN)、指數(EXP)運算。運算功能和格式如表12-3所示。
向上取整:比自己大的最小整數;
向下取整:比自己小的最大整數;
對於自然對數LN[#j],相對誤差可能大於10-8。當#j≤0時,發出P/S報警No.111。
對於批數函數EXP[#j],相對誤差可能大於10-8。當運算結果大於3。65×1047(j大約110)時,出現溢出併發出P/S報警No.111。
對於取整函數ROUN[#j],根據最小設定單位四捨五入。
例如,假設最小設定單位為1/1000mm,#1=1.2345,則#2=ROUN[#1]的值是1.0。
對於上取整FIF[#j],絕對值值大於原數的絕對值。對於下取整FUP絕對值小於原數的絕對值。
例如,假設#1=1.2,則#2=FIX[#1]的值是2.0。
假設#1=1.2,則#2=FUP[#1]的值是1.0。
假設#1=-1.2,則#2=FIX[#1]的值是-2.0。
假設#1=-1.2,則#2=FUP[#1]的值是-1.0。
4. 邏輯運算
對宏程序中的變量可進行與、或、異或邏輯運算。邏輯運算是按位進行。運算功能和格式如表12-3所示。
5. 數制轉換
變量可以在BCD碼與二進制之間轉換。
6. 關係運算
由關係運算符和變量(或表達式)組成表達式。系統中使用的關係運算符如下。
(1)等於(EQ)
用EQ與兩個變量(或表達式)組成表達式,當運算符EQ兩邊的變量(或表達式)相等時,表達式的值為真,否則為假。
例如,#1EQ#2,當#1與#2相等時,表達式的值為真。
(2)不等於(NE)
用NE與兩個變量或表達式組成表達式,當運算符NE兩邊的變量(或表達式)不相等時,表達式的值為真,否則為假。
例如,#1NE#2,當#1與#2不相等時,表達式的值為真。
(3)大於等於(GE)
用GE與兩個變量或表達式組成表達式,當左邊的變量(或表達式)大於或等於右邊的變量(或表達式)時,表達式的值為真,否則為假。
例如,#1GE#2,當#1大於或等於#2時,表達式的值為真。否則為假。
(4)大於(GT)
用GT與兩個變量或表達式組成表達式,當左邊的變量(或表達式)大於右邊的變量(或表達式)時,表達式的值為真,否則為假。
例如,#1GT#2,當#1大於#2時,表達式的值為真。否則為假。
(5)小於等於(LE)
用LE與兩個變量或表達式組成表達式,當左邊的變量(或表達式)小於或等於右邊的變量(或表達式)時,表達式的值為真,否則為假。
例如,#1LE#2,當#1小於或等於#2時,表達式的值為真。否則為假。
(6)小於(LT)
用LT與兩個變量或表達式組成表達式,當左邊的變量(或表達式)小於右邊的變量(或表達式)時,表達式的值為真,否則為假。
例如,#1GE#2,當#1大於#2時,表達式的值為真。否則為假。
7. 運算優先級
運算符的優先順序是
(1)函數。函數的優先級最高。
(2)乘、除、與運算。乘、除、與運算的優先級次於函數的優先級。
(3)加、減、或、異或運算。加、減、或、異或運算的優先級次於乘、除、與運算。乘、除、與運算的優先級。
(4)關係運算。關係運算的優先級最低。
用方括號可以改變優先級,括號不能超過5層。超過5層時,發出P/S報警No.111。
8. 變量值的精度
變量值的精度為8位十進制數。
例如:用賦值語句#1=9876543210123.456時,實際上#1=9876543200000.000。
用賦值語句#2=9876543277777.456時,實際上#2=9876543300000.000。
閱讀更多 INNOCUT 的文章