FANUC宏程序的學習和應用

變量根據變量號可分為四中類型

FANUC宏程序的學習和應用


是可編程機床控制器(PMC)和用戶宏程序之間交換的信號


FANUC宏程序的學習和應用


用戶宏程序輸入信號

這些信號不對控制單元提供任何功能。這些信號作為系統變量的一種由用戶宏程序讀取,並用作用戶宏程序和 PMC之間的接口信號。

這些信號對應的系統變量表示如下:


FANUC宏程序的學習和應用


用戶宏程序輸出信號

這些信號不對控制單元提供任何功能。這些信號作為一種由用戶宏程序讀或寫的系統變量,並用作用戶宏程序和 PMC之間的接口信號

這些信號對應的系統變量表示如下:

FANUC宏程序的學習和應用


這些系統變量能夠用於賦值語句的左邊或右邊。

左側的賦值是賦給右側的變量。

信號地址如下:


FANUC宏程序的學習和應用


PMC與宏變量的地址對應關係總結如下:

#1000~#1031=G54.0~G57.7

#1032=G54~G57

#1033=G276~G279

#1034=G280~G283

#1035=G284~G287

#1100~#1115=F54.0~F55.7

#1116~#1131=F276.0~F277.7

#1132=F54, F55, F276, F277

#1133=F56~F59

#1134=F280~F283

#1135=F284~F287

系統變量:

系統變量用於讀和寫 NC內部數據,例如,刀具偏置值和當前位置數據。但是,某些系統變量只能讀。系統變量是自動控制和通用程序開發的基礎。

用系統變量可以讀和寫刀具補償值。

可使用的變量數取決於刀補數,是否區分外形補償和磨損補償以及是否區分刀長補償和刀尖補償。當偏置組數小於等於 200時,也可使用#2001~#2400

刀具補償存儲器 C的系統變量


FANUC宏程序的學習和應用


宏程序報警的系統變量


FANUC宏程序的學習和應用


列如:

#3000=1(PROBE NO CONTACT)

報警屏幕顯示“3001 PROBE NO CONTACT”(探針沒有接觸

程序停止並顯示信息


FANUC宏程序的學習和應用

時間信息的系統變量:

FANUC宏程序的學習和應用


自動運行控制的系統變量(#3003)


FANUC宏程序的學習和應用


當電源接通時,該變量的值為 0。

當單程序段停止無效時,即使單程序段開關設為 ON,也不執行單程序段停止。

當指定不等待輔助功能(M,S和 T功能)完成時,在輔助功能完成之前,程序即執行到下一程序段。而且分配完成信號 DEN不輸出。

自動運行控制的系統變量(#3004)


FANUC宏程序的學習和應用


當電源接通時,該變量的值為 0。

當進給暫停無效時:

(1) 當進給暫停按鈕被按下時,機床以單段停止方式停止。但是,當用變量#3003使單程序段方式無效時,單程序段停止不執行。

(2) 當進給暫停按鈕壓下又鬆開時,進給暫停燈亮,但是,機床不停止;程序繼續執行,並且機床停在進給暫停有效的第一個程序段。

進給速度倍率無效時,倍率總為 100%,而不管機床操作面板上的進給速度倍率開關的設置。

準確停止檢測無效時,即使那些不執行切削的程序段也不進行準確停止檢測(位置檢測)。

SETTING值可用變量讀和寫。二進制數轉換為十進制數。


FANUC宏程序的學習和應用


使用外部開關或 SETTING操作設置的各軸鏡像狀態可以通過輸出信號(鏡像檢測信號)讀出。可以檢測當前的鏡像狀態

得到的二進制值轉換成十進制。


FANUC宏程序的學習和應用


當用鏡像信號和 SETTING兩者對某軸設置鏡像功能時,信號值和設定值相或,然後輸出。

當控制軸以外的軸的鏡像功能接通時,它們也被讀進系統變量#3007。

系統變量#3007是寫保護的系統變量。如果試圖在變量中寫數據,則發出 P/S116報警“WRITE PROTECTED VARIABLE”。

要求的零件數(目標數)和已加工的零件數(完成數)可以讀和寫

#3901:已加工的零件數(完成數)

#3902:要求的零件數(目標數)

注:不能使用負值。

正在處理的程序段之前的模態信息可以讀出


FANUC宏程序的學習和應用


FANUC宏程序的學習和應用


當執行#1=#4002;時,在#1中得到的值是 17,18或 19。

對於不能使用的 G代碼組,如果指定系統變量讀取相應的模態信息,則發出 P/S報警。

機床位置信息不能寫,只能讀


FANUC宏程序的學習和應用


變量號的 第 1位代表軸號(從 1到 4)。

變量#5081~#5084存儲的刀具長度補償值是當前的執行值,不是後面程序段的處理值。

在 G31(跳轉功能)程序段中跳轉信號接通時的刀具位置儲存在變量#5061到#5064中。當 G31程序段中的跳轉信號未接通時,這些變量中儲存指定程序段的終點值。

移動期間不能讀是指由於緩衝(預讀)功能的原因,不能讀期望值。

工件零點偏移值可以讀和寫


FANUC宏程序的學習和應用


FANUC宏程序的學習和應用


可以使用以下變量

FANUC宏程序的學習和應用


FANUC宏程序的學習和應用


宏變量的算術和邏輯運算:

下表列出的運算可以在變量中執行。運算符右邊的表達式可包含常量和/或由函數或運算符組成的變量。表達式中的變量#j和#k可以用常數替換。左邊的變量也可以用表達式賦值。


FANUC宏程序的學習和應用


FANUC宏程序的學習和應用


函數 SIN,COS,ASIN,ACOS,TAN和 ATAN的角度單位是度。如90°30ˊ表示為90.5度。

宏程序語句和 NC語句

下面的程序段為宏程序語句:

包含算術或邏輯運算(=)的程序段。

包含控制語句(例如,GOTO,DO,END)的程序段。

包含宏程序調用指令(例如,用 G65,G66,G67或其它 G代碼,M代碼調用宏程序)的程序段。

除了宏程序語句以外的任何程序段都為 NC語句。

轉移和循環

在程序中,使用 GOTO語句和 IF語句可以改變控制的流向。有三種轉移和循環操作可供使用:


FANUC宏程序的學習和應用


無條件轉移(GOTO 語句)

轉移到標有順序號 n的程序段。當指定 1到 99999以外的順序號時,出現 P/S報警No.128。可用表達式指定順序號。

GOTOn: n:順序號(1到 99999)

例:GOTO1; GOTO#12;

條件轉移(IF語句)

IF[]GOTO n ,如果指定的條件表達式滿足時,轉移到標有順序號 n的程序段。如果指定的條件表達式不滿足,執行下個程序段。

無條件轉移(GOTO 語句)

轉移到標有順序號 n的程序段。當指定 1到 99999以外的順序號時,出現 P/S報警No.128。可用表達式指定順序號。

GOTOn: n:順序號(1到 99999)

例:GOTO1; GOTO#12;

條件轉移(IF語句)

IF[]GOTO n ,如果指定的條件表達式滿足時,轉移到標有順序號 n的程序段。如果指定的條件表達式不滿足,執行下個程序段。


FANUC宏程序的學習和應用


IF[]THEN 如果條件表達式滿足,執行預先決定的宏程序語句。只執行一個宏程序語句。

如果#1和#2的值相同,0賦給#3。

IF[#1 EQ #2] THEN #3=0;

注:條件表達式必須包括運算符。運算符插在兩個變量中間或變量和常數中間,並且用括號([,])封閉。表達式可以替代變量。

運算符

運算符由 2個字母組成,用於兩個值的比較,以決定它們是相等還是一個值小於或大於另一個值。注意,不能使用不等號。


FANUC宏程序的學習和應用


循環(WHILE 語句)

在 WHILE後指定一個條件表達式。當指定條件滿足時,執行從 DO到END之間的程序。否則,轉到 END後的程序段


FANUC宏程序的學習和應用


當指定的條件滿足時,執行 WHILE 後從 DO到 END之間的程序。否則,轉而執行 END之後的程序段。與 IF語句的指令格式相同。DO後的數和 END後的數為指定程序執行範圍的標號,標號值為 1,2,3。

若用 1,2,3以外的值會產生 P/S報警 No.126。

在程序中使用編程修改系統參數:

G10 L50 參數寫模式設定

N_Q_R_

N_P_Q_R_

G11 參數寫模式取消

N_ 為參數號的設定值(五位數字)

R_ 參數的設定值

Q_ 參數的位設定值為:0~7(單獨修改位參數的某一位)

P_ 軸號設定值為:1到8

設定Q,R的值時不要使用小數點。

相關參數:

3454 #4 G1B

G1B:在可編程參數輸入中,位參數的輸入

0:不可以 1:可以(位參數通過Q定義)

在程序中編程修改外部工件零點偏移或工件零點偏移值:

G10 L2 Pp IP_;

Pp中的小p=0:設定外部工件零點偏移值

Pp中的小p=1到6:工作座標系1到6的工件零點偏移(G54~G59)

IP: 對於絕對值指令(G90),為每個軸的工件零點偏移值。對於增量值指令(G91),為每個軸加到設定的工件零點的偏移量(相加的結果為新的工件零點偏移值)。

程序舉例:

Y軸抱閘的檢查

O9050(BRAKETEST)

(***Y BRAKETEST ***)

(***M-FUNCTIONS ***)

(***M48-BRAKE RELEASE ***)

(***M49-BREAKE CLOSE ***)

(***M74-SHOT BOLT Y ADVANCE ***)

(***M147-BRAKE CHECK Y-AXIS OK ***)

(***M148-BRAKE CHECK Y-AXIS NOT OK***)

(***MAX CUR.PARAM 2060=7282 ***)

(***#913AND8EQ8-BRAKE CHECK REQ. ***)

(REQUEST BRAKETEST ?)

北京發那科機電有限公司 YYF

N100IF[#513AND8EQ8]GOTO110(BRAKETEST)

GOTO999(END)

N110G53G91Y-1.5

N120M49(BREAKE CLOSE)

N130#1=#5022 Y軸當前的位置賦給變量#1(機床座標系)

N140G91

N150G10L50 參數寫開啟

N160N6200R11000000(HIGH SPEED SKIPP OFF) 參數6200改為:11000000

N170N2060P2R2184 參數2060對應的第2軸Y 的設定改為:2184(轉矩極限)

N180G11 參數寫取消

N190G94

N200G31P99Y1.5F200(BRAKETEST STARTED) 在Y軸抱閘抱緊的情況下以最大不超過2184的轉矩移動Y軸

N210G53

N220M48(BREAKE RELEASE)

N230G4P500

N240G10L50 參數寫開啟

N250N6200R11010000(HIGH SPEED SKIPP ON)

N260N2060P2R7282(CURRENT Y MAX)

N270G11G90

N280M48(BREAKE RELEASE)

N290IF[ABS[#1-#5022]GT1]GOTO400(BRAKE TEST NOT OK)

檢查在Y軸抱閘抱緊的情況下以最大不超過2184的轉矩是否能移動Y軸,如果能夠移動並且移動的數值超過1毫米,則Y軸抱閘不好。

N300M147(BRAKE Y AXIS OK)

N310GOTO999(END)

N400M148(BRAKE Y AXIS NOT OK)

N410M98P0003(TOOLCHANGE POSITION)

N999M30


變量根據變量號可分為四中類型

FANUC宏程序的學習和應用


是可編程機床控制器(PMC)和用戶宏程序之間交換的信號


FANUC宏程序的學習和應用


用戶宏程序輸入信號

這些信號不對控制單元提供任何功能。這些信號作為系統變量的一種由用戶宏程序讀取,並用作用戶宏程序和 PMC之間的接口信號。

這些信號對應的系統變量表示如下:


FANUC宏程序的學習和應用


用戶宏程序輸出信號

這些信號不對控制單元提供任何功能。這些信號作為一種由用戶宏程序讀或寫的系統變量,並用作用戶宏程序和 PMC之間的接口信號

這些信號對應的系統變量表示如下:

FANUC宏程序的學習和應用


這些系統變量能夠用於賦值語句的左邊或右邊。

左側的賦值是賦給右側的變量。

信號地址如下:


FANUC宏程序的學習和應用


PMC與宏變量的地址對應關係總結如下:

#1000~#1031=G54.0~G57.7

#1032=G54~G57

#1033=G276~G279

#1034=G280~G283

#1035=G284~G287

#1100~#1115=F54.0~F55.7

#1116~#1131=F276.0~F277.7

#1132=F54, F55, F276, F277

#1133=F56~F59

#1134=F280~F283

#1135=F284~F287

系統變量:

系統變量用於讀和寫 NC內部數據,例如,刀具偏置值和當前位置數據。但是,某些系統變量只能讀。系統變量是自動控制和通用程序開發的基礎。

用系統變量可以讀和寫刀具補償值。

可使用的變量數取決於刀補數,是否區分外形補償和磨損補償以及是否區分刀長補償和刀尖補償。當偏置組數小於等於 200時,也可使用#2001~#2400

刀具補償存儲器 C的系統變量


FANUC宏程序的學習和應用


宏程序報警的系統變量


FANUC宏程序的學習和應用


列如:

#3000=1(PROBE NO CONTACT)

報警屏幕顯示“3001 PROBE NO CONTACT”(探針沒有接觸

程序停止並顯示信息


FANUC宏程序的學習和應用

時間信息的系統變量:

FANUC宏程序的學習和應用


自動運行控制的系統變量(#3003)


FANUC宏程序的學習和應用


當電源接通時,該變量的值為 0。

當單程序段停止無效時,即使單程序段開關設為 ON,也不執行單程序段停止。

當指定不等待輔助功能(M,S和 T功能)完成時,在輔助功能完成之前,程序即執行到下一程序段。而且分配完成信號 DEN不輸出。

自動運行控制的系統變量(#3004)


FANUC宏程序的學習和應用


當電源接通時,該變量的值為 0。

當進給暫停無效時:

(1) 當進給暫停按鈕被按下時,機床以單段停止方式停止。但是,當用變量#3003使單程序段方式無效時,單程序段停止不執行。

(2) 當進給暫停按鈕壓下又鬆開時,進給暫停燈亮,但是,機床不停止;程序繼續執行,並且機床停在進給暫停有效的第一個程序段。

進給速度倍率無效時,倍率總為 100%,而不管機床操作面板上的進給速度倍率開關的設置。

準確停止檢測無效時,即使那些不執行切削的程序段也不進行準確停止檢測(位置檢測)。

SETTING值可用變量讀和寫。二進制數轉換為十進制數。


FANUC宏程序的學習和應用


使用外部開關或 SETTING操作設置的各軸鏡像狀態可以通過輸出信號(鏡像檢測信號)讀出。可以檢測當前的鏡像狀態

得到的二進制值轉換成十進制。


FANUC宏程序的學習和應用


當用鏡像信號和 SETTING兩者對某軸設置鏡像功能時,信號值和設定值相或,然後輸出。

當控制軸以外的軸的鏡像功能接通時,它們也被讀進系統變量#3007。

系統變量#3007是寫保護的系統變量。如果試圖在變量中寫數據,則發出 P/S116報警“WRITE PROTECTED VARIABLE”。

要求的零件數(目標數)和已加工的零件數(完成數)可以讀和寫

#3901:已加工的零件數(完成數)

#3902:要求的零件數(目標數)

注:不能使用負值。

正在處理的程序段之前的模態信息可以讀出


FANUC宏程序的學習和應用


FANUC宏程序的學習和應用


當執行#1=#4002;時,在#1中得到的值是 17,18或 19。

對於不能使用的 G代碼組,如果指定系統變量讀取相應的模態信息,則發出 P/S報警。

機床位置信息不能寫,只能讀


FANUC宏程序的學習和應用


變量號的 第 1位代表軸號(從 1到 4)。

變量#5081~#5084存儲的刀具長度補償值是當前的執行值,不是後面程序段的處理值。

在 G31(跳轉功能)程序段中跳轉信號接通時的刀具位置儲存在變量#5061到#5064中。當 G31程序段中的跳轉信號未接通時,這些變量中儲存指定程序段的終點值。

移動期間不能讀是指由於緩衝(預讀)功能的原因,不能讀期望值。

工件零點偏移值可以讀和寫


FANUC宏程序的學習和應用


FANUC宏程序的學習和應用


可以使用以下變量

FANUC宏程序的學習和應用


FANUC宏程序的學習和應用


宏變量的算術和邏輯運算:

下表列出的運算可以在變量中執行。運算符右邊的表達式可包含常量和/或由函數或運算符組成的變量。表達式中的變量#j和#k可以用常數替換。左邊的變量也可以用表達式賦值。


FANUC宏程序的學習和應用


FANUC宏程序的學習和應用


函數 SIN,COS,ASIN,ACOS,TAN和 ATAN的角度單位是度。如90°30ˊ表示為90.5度。

宏程序語句和 NC語句

下面的程序段為宏程序語句:

包含算術或邏輯運算(=)的程序段。

包含控制語句(例如,GOTO,DO,END)的程序段。

包含宏程序調用指令(例如,用 G65,G66,G67或其它 G代碼,M代碼調用宏程序)的程序段。

除了宏程序語句以外的任何程序段都為 NC語句。

轉移和循環

在程序中,使用 GOTO語句和 IF語句可以改變控制的流向。有三種轉移和循環操作可供使用:


FANUC宏程序的學習和應用


無條件轉移(GOTO 語句)

轉移到標有順序號 n的程序段。當指定 1到 99999以外的順序號時,出現 P/S報警No.128。可用表達式指定順序號。

GOTOn: n:順序號(1到 99999)

例:GOTO1; GOTO#12;

條件轉移(IF語句)

IF[]GOTO n ,如果指定的條件表達式滿足時,轉移到標有順序號 n的程序段。如果指定的條件表達式不滿足,執行下個程序段。

無條件轉移(GOTO 語句)

轉移到標有順序號 n的程序段。當指定 1到 99999以外的順序號時,出現 P/S報警No.128。可用表達式指定順序號。

GOTOn: n:順序號(1到 99999)

例:GOTO1; GOTO#12;

條件轉移(IF語句)

IF[]GOTO n ,如果指定的條件表達式滿足時,轉移到標有順序號 n的程序段。如果指定的條件表達式不滿足,執行下個程序段。


FANUC宏程序的學習和應用


IF[]THEN 如果條件表達式滿足,執行預先決定的宏程序語句。只執行一個宏程序語句。

如果#1和#2的值相同,0賦給#3。

IF[#1 EQ #2] THEN #3=0;

注:條件表達式必須包括運算符。運算符插在兩個變量中間或變量和常數中間,並且用括號([,])封閉。表達式可以替代變量。

運算符

運算符由 2個字母組成,用於兩個值的比較,以決定它們是相等還是一個值小於或大於另一個值。注意,不能使用不等號。


FANUC宏程序的學習和應用


循環(WHILE 語句)

在 WHILE後指定一個條件表達式。當指定條件滿足時,執行從 DO到END之間的程序。否則,轉到 END後的程序段


FANUC宏程序的學習和應用


當指定的條件滿足時,執行 WHILE 後從 DO到 END之間的程序。否則,轉而執行 END之後的程序段。與 IF語句的指令格式相同。DO後的數和 END後的數為指定程序執行範圍的標號,標號值為 1,2,3。

若用 1,2,3以外的值會產生 P/S報警 No.126。

在程序中使用編程修改系統參數:

G10 L50 參數寫模式設定

N_Q_R_

N_P_Q_R_

G11 參數寫模式取消

N_ 為參數號的設定值(五位數字)

R_ 參數的設定值

Q_ 參數的位設定值為:0~7(單獨修改位參數的某一位)

P_ 軸號設定值為:1到8

設定Q,R的值時不要使用小數點。

相關參數:

3454 #4 G1B

G1B:在可編程參數輸入中,位參數的輸入

0:不可以 1:可以(位參數通過Q定義)

在程序中編程修改外部工件零點偏移或工件零點偏移值:

G10 L2 Pp IP_;

Pp中的小p=0:設定外部工件零點偏移值

Pp中的小p=1到6:工作座標系1到6的工件零點偏移(G54~G59)

IP: 對於絕對值指令(G90),為每個軸的工件零點偏移值。對於增量值指令(G91),為每個軸加到設定的工件零點的偏移量(相加的結果為新的工件零點偏移值)。

程序舉例:

Y軸抱閘的檢查

O9050(BRAKETEST)

(***Y BRAKETEST ***)

(***M-FUNCTIONS ***)

(***M48-BRAKE RELEASE ***)

(***M49-BREAKE CLOSE ***)

(***M74-SHOT BOLT Y ADVANCE ***)

(***M147-BRAKE CHECK Y-AXIS OK ***)

(***M148-BRAKE CHECK Y-AXIS NOT OK***)

(***MAX CUR.PARAM 2060=7282 ***)

(***#913AND8EQ8-BRAKE CHECK REQ. ***)

(REQUEST BRAKETEST ?)

北京發那科機電有限公司 YYF

N100IF[#513AND8EQ8]GOTO110(BRAKETEST)

GOTO999(END)

N110G53G91Y-1.5

N120M49(BREAKE CLOSE)

N130#1=#5022 Y軸當前的位置賦給變量#1(機床座標系)

N140G91

N150G10L50 參數寫開啟

N160N6200R11000000(HIGH SPEED SKIPP OFF) 參數6200改為:11000000

N170N2060P2R2184 參數2060對應的第2軸Y 的設定改為:2184(轉矩極限)

N180G11 參數寫取消

N190G94

N200G31P99Y1.5F200(BRAKETEST STARTED) 在Y軸抱閘抱緊的情況下以最大不超過2184的轉矩移動Y軸

N210G53

N220M48(BREAKE RELEASE)

N230G4P500

N240G10L50 參數寫開啟

N250N6200R11010000(HIGH SPEED SKIPP ON)

N260N2060P2R7282(CURRENT Y MAX)

N270G11G90

N280M48(BREAKE RELEASE)

N290IF[ABS[#1-#5022]GT1]GOTO400(BRAKE TEST NOT OK)

檢查在Y軸抱閘抱緊的情況下以最大不超過2184的轉矩是否能移動Y軸,如果能夠移動並且移動的數值超過1毫米,則Y軸抱閘不好。

N300M147(BRAKE Y AXIS OK)

N310GOTO999(END)

N400M148(BRAKE Y AXIS NOT OK)

N410M98P0003(TOOLCHANGE POSITION)

N999M30



分享到:


相關文章: