普通加工程序直接用數值指定G代碼和移動距離,;例如,GO1和X100.0,。使用用戶宏程序時,,數值可以直接指定或用變量指定。當用變量時,,變量值可用程序或用MDI面板上的操作改變,。
例如:#1=#2+100;G01 X#1 F300
(1)變量的表示
計算機允許使用變量名,,用戶宏程序不行,。變量用變量符號(#)和后面的變量號指定。
例如:#1
表達式可以用于指定變量號,。此時,,表達式必須封閉在括號中。
例如:#[#1+#2-12]
(2)變量的類型
變量根據變量號可以分成四種類型:
1)#0 空變量,,該變量總是空,,沒有值能賦給該變量。
2)#1-#33 局部變量,,局部變量只能用在宏程序中存儲數據,,例如,運算結果,。當斷電時,,局部變量被初始化為空。調用宏程序時,自變量對局部變量賦值,。
3)#100-#199,、#500-#999 公共變量,公共變量在不同的宏程序中的意義相同,。當斷電時,,變量#100-#199初始化為空,。變量#500-#999的數據保存,即使斷電也不丟失。
4)#1000--- 系統(tǒng)變量,。系統(tǒng)變量用于讀和寫CNC運行時各種數據的變化,,例如,刀具的當前位置,補償值,。
(3)變量值的范圍
局部變量和公共變量可以有0值或下面范圍中的值:-1047到-10-29或-10-2到-1047,,如果計算結果超出有效范圍,則發(fā)出P/S報警NO.111。
(4)小數點的省略
當在程序中定義變量值時,,小數點可以省略,。
例:當定義#1=123;變量#1的實際值是123.000,。
(5)變量的引用
為在程序中使用變量值,,指定后跟變量號的地址。當用表達式指定變量時,,要把表達式放在括號中,。
例如:G01X[#1+#2]F#3;
被引用變量的值根據地址的最小設定單位自動地舍入。
例如:當G00X#/;以1/1000mm的單位執(zhí)行時,,CNC把123456賦值給變量#1,實際指令值為G00X12346.
改變引用變量的值的符號,,要把負號(-)放在#的前面。
例如:G00X-#1
當引用未定義的變量時,,變量及地址都被忽略,。
例如:當變量#1的值是0,并且變量#2的值是空時,,G00X#1 Y#2的執(zhí)行結果為G00X0,。
(6)雙軌跡(雙軌跡控制)的公共變量
對雙軌跡控制,系統(tǒng)為每一軌跡都提供了單獨的宏變量,,但是,,根據參數N0.6036和6037的設定,某些公共變量可同時用于兩個軌跡,。
(7)未定義的變量
當變量值未定義時,,這樣的變量成為空變量。變量#0總是空變量,。它不能寫,只能讀,。
(a)引用
當引用一個未定義的變量時,,地址本身也被忽略。
當#1=<空> 當#1=0
G90 X100 Y#1
↓
G90 X100 G90 X100 Y#1
↓
G90 X100 Y0
(b)運算
除了用<空>賦值以外,,其余情況下<空>與0相同,。
當#1=<空>時當#1=0時
#2=#1
↓
#2=<空> #2=#1
↓
#2=0
#2=#*5
↓
#2=0 #2=#*5
↓
#2=0
#2=#1+#1
↓
#2=0 #2=#1+#1
↓
#2=0
(c)條件表達式
EQ和NE中的<空>不同于0,。
當#1=<空>時當#1=0時
#1EQ#0
↓
成立 #1EQ#0
↓
不成立
#1 NE #0
↓
成立 #1 NE #0
↓
不成立
#1 GE #0
↓
成立 #1 GE #0
↓
不成立
#1 GT #0
↓
不成立 #1 GT #0
↓
不成立
(8)限制
程序號,順序號和任選程序段跳轉號不能使用變量,。
例:下面情況不能使用變量:
0#1,;
/#2G00X100.0;
N#3Y200.0;
二、算術和邏輯運算
下面列出的運算可以在變量中執(zhí)行,,表達式可包含常量和或由函數或運算符組成的變量,。表達式中的變量#j和#k可以用常數賦值。變量也可以用表達式賦值,。
定義:#i=#j
加法:#i=#j+#k;
減法:#i=#j-#k;
乘法:#i=#j*#k;
除法:#i=#j/#k;
正弦:#i=SIN[#j];
反正弦:#i=ASIN[#j];
余弦:#i=COS[#j];
反余弦:#i=ACOS[#j];
正切:#i=TAN[#j];
反正切:#i=ATAN[#j];
角度以度數指定:90°30’表示為90.5度,。
平方根:#i=SQRT[#j];
絕對值:#i=ABS[#j];
舍入:#i=ROUNND[#j];
上取整:#i=FIX[#j];
下取整:#i=FUP[#j];
自然對數:#i=LN[#j];
指數函數 :#i=EXP[#j];
或:#i-#jOR#k;
異或:#i-#jXOR#k;
與:#i-#jAND#k;
邏輯運算一位一位地按二進制數執(zhí)行。
從BCD轉為BIN
從BIN轉為BCD #i=BIN[#j];
#i=BCD[#j];
用于與PMC的信號交換,。
說明:
● 角度單位
函數SIN