391.FANUC宏程序編程


運算符

運算符由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:重復次數;自變量:數據傳遞到宏程序


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM