運算符
運算符由2個字母組成,用於兩個值的比較,以決定它們是相等還是一個值小於或大於另一個值。注意,不能使用不等號
運算符 |
含義 |
EQ |
等於(=) |
NE |
不等於 |
GT |
大於 |
GE |
大於或等於 |
LT |
小於 |
LE |
小於或等於 |
示例程序 下面的程序計算數值1~10的總和
O9500;#1=0;………………………………….存儲和的變量初值
#2=1;………………………………….被加數變量的初值
N1 IF[#2GT 10]GOTO 2;…………….當被加數大於10時轉移到N2
#1=#1+#2;…………………………….計算和
#2=#2+#1;…………………………….下一個被加數
GOTO 1;………………………………轉移到N1
N2 M30;................................................程序結束
算術和邏輯運算
功能 |
格式 |
備注 |
定義 |
#i=#j: |
|
加法 |
#i=#j+#k |
|
減法 |
#i=#j-#k |
|
乘法 |
#i=#j*#k |
|
除法 |
#i=#j/#k |
|
正弦 |
#i=SIN[#j]: |
角度以度指定090度30分表示為90.5度 |
反正弦 |
#i=ASIN[#j]: |
|
余弦 |
#i=COS[#j]: |
|
反余弦 |
#i=ACOS[#j]: |
|
正切 |
#i=TAN[#j]: |
|
反正切 |
#i=ATAN[#j]: |
|
平方根 |
#i=SQRT[#j]: |
|
絕對值 |
#i=ABS[#j]: |
|
舍入 |
#i=ROUND[#j]: |
|
上取整 |
#i=FIX[#j]: |
|
下取整 |
#i=FUP[#j]: |
|
自然數對數 |
#i=LN[#j]: |
|
指數函數 |
#i=EXP[#j]: |
|
或 |
#i=#jOR#k: |
邏輯運算一位一位地按二進制數執行 |
異或 |
#i=#jXOR#k: |
|
與 |
#i=#jAND#k: |
|
從BCD轉為BIN |
#i=BCD#j; |
用於與PMC的信號交換 |
從BIN轉為BCD |
#i=BCD#j; |
角度單位:
SIN、ASIN、COS、ACOS、TAN和ATAN的角度單位是度
ARCSIN#i=ASIN[#j]:
●取值范圍如下:當參數(N0.6004¥0)NAT位設為0時,270~90度;當參數(N0.6004¥0)NAT位設為1時,-90~90度。
● 當#j超過-1到1的范圍時,發出P/S報警N0.111。
● 常數可替代變量#j。
ARCCOS#i=ACOS[#j];
● 取值范圍從180~0度。
● 當#j超過-1到1的范圍時,發出P/S報警N0.111。
● 常數可替代變量#j。
ARCTAN#i=ATAN[#j];
● 指定兩邊的長度,並用斜杠(/)分開
● 取值范圍如下:當參數(N0.6004¥0)NAT位設為0時,0~360度[例如:當指定#i=ATAN[-1]/[-1];時,#1=225度]。當參數(N0.6004¥0)NAT位設為1時,-180~180度[例如:當指定#i=ATAN[-1]/[-1];時,#1=-135度]
● 常數可替代變量#j。
自然對數#i=LN[#j];
● 注意,相對誤差可能大於10-8。
● 當反對數(#j)為0或小於0時,發出報警N0.111。
● 常數可替代變量#j。
指數函數#i=EXP[#j]:
● 注意,相對誤差可能大於10-8
● 當運算結果超過3.65×1047(j大約是110)時,出現溢出報警N0.111
● 常數可替代變量#j。
上取整下取整:
CNC處理數值運算時,若操作后產生整數絕對值大於原數的絕對值時為上取整;小於為下取整。例如:
假設#1=1.2,#2=-1.2。當執行#3=FUP[#1]時,2.0賦給#3;當執行#3=FIX[#1]時1.0賦給#3;當執行#3=FUP[#2]時,-2.0賦給#3;當執行#3=FIX[#2]時,-1.0賦給#3。
宏程序語句:包含算術或邏輯運算(=)的程序;包含控制語句(例如,用GOTO,DO,END)的程序;包含宏程序調用指令(例如,用G65,G66,G67或其它G代碼,M代碼調用宏程序)的程序段;除宏程序以外任何程序段都為NC語句。
與NC語句的不同:
即使置於單段程序運行方式,機床也不停止。但是,當參數N0.6000#5SBM設定位、為1時,在單段程序方式中,機床停止。在刀具半徑補償方式中宏程序語句段不做為移動程序段處理
與宏程序語句相同性質的NC語句:
含有子程序調用指令(例如,用M98或其它M代碼或用T代碼調用子程序)但沒有除O,N,P或L地址之外的其它地址指令的NC語句,其性質與宏程序語句相同;不包含除O,N,P或L以外的指令地址的程序段其性質與宏程序語句相同。
無限循環;
當指定DO而沒有指定WHILE語句時,產生從DO到END的無限循環。
宏程序調用和子程序調用之間的差別:點擊關注更多內容
宏程序調用(G65)不同於子程序調用(G98),如下所述:
● 用G65,可以指定自變量(數據傳送到宏程序)。M98沒有該功能。
● 當M98程序段包含另一個NC指令(例如。G01.X100.0M98PP)時,在指令執行之后調用子程序。相反,G65無條件的調用子程序。
● M98程序段包含另一個NC指令(例如,G01X100.0M98PP)時在單程序方式中,機床停止。相反,G65機床不停止。
● 用G65,改變局部變量的級別。用M98,不改變局部變量的級別。
G65P-L -(自變量指定);P:要調用的程序;L:重復次數;自變量:數據傳遞到宏程序