變量根據變量號可分為四中類型
是可編程機床控制器(PMC)和用戶宏程序之間交換的信號
用戶宏程序輸入信號
這些信號不對控制單元提供任何功能。這些信號作為系統變量的一種由用戶宏程序讀取,並用作用戶宏程序和 PMC之間的接口信號。
這些信號對應的系統變量表示如下:
用戶宏程序輸出信號
這些信號不對控制單元提供任何功能。這些信號作為一種由用戶宏程序讀或寫的系統變量,並用作用戶宏程序和 PMC之間的接口信號
這些信號對應的系統變量表示如下:
這些系統變量能夠用於賦值語句的左邊或右邊。
左側的賦值是賦給右側的變量。
信號地址如下:
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的系統變量
宏程序報警的系統變量
列如:
#3000=1(PROBE NO CONTACT)
報警屏幕顯示“3001 PROBE NO CONTACT”(探針沒有接觸
程序停止並顯示信息
時間信息的系統變量:
自動運行控制的系統變量(#3003)
當電源接通時,該變量的值為 0。
當單程序段停止無效時,即使單程序段開關設為 ON,也不執行單程序段停止。
當指定不等待輔助功能(M,S和 T功能)完成時,在輔助功能完成之前,程序即執行到下一程序段。而且分配完成信號 DEN不輸出。
自動運行控制的系統變量(#3004)
當電源接通時,該變量的值為 0。
當進給暫停無效時:
(1) 當進給暫停按鈕被按下時,機床以單段停止方式停止。但是,當用變量#3003使單程序段方式無效時,單程序段停止不執行。
(2) 當進給暫停按鈕壓下又鬆開時,進給暫停燈亮,但是,機床不停止;程序繼續執行,並且機床停在進給暫停有效的第一個程序段。
進給速度倍率無效時,倍率總為 100%,而不管機床操作面板上的進給速度倍率開關的設置。
準確停止檢測無效時,即使那些不執行切削的程序段也不進行準確停止檢測(位置檢測)。
SETTING值可用變量讀和寫。二進制數轉換為十進制數。
使用外部開關或 SETTING操作設置的各軸鏡像狀態可以通過輸出信號(鏡像檢測信號)讀出。可以檢測當前的鏡像狀態
得到的二進制值轉換成十進制。
當用鏡像信號和 SETTING兩者對某軸設置鏡像功能時,信號值和設定值相或,然後輸出。
當控制軸以外的軸的鏡像功能接通時,它們也被讀進系統變量#3007。
系統變量#3007是寫保護的系統變量。如果試圖在變量中寫數據,則發出 P/S116報警“WRITE PROTECTED VARIABLE”。
要求的零件數(目標數)和已加工的零件數(完成數)可以讀和寫
#3901:已加工的零件數(完成數)
#3902:要求的零件數(目標數)
注:不能使用負值。
正在處理的程序段之前的模態信息可以讀出
當執行#1=#4002;時,在#1中得到的值是 17,18或 19。
對於不能使用的 G代碼組,如果指定系統變量讀取相應的模態信息,則發出 P/S報警。
機床位置信息不能寫,只能讀
變量號的 第 1位代表軸號(從 1到 4)。
變量#5081~#5084存儲的刀具長度補償值是當前的執行值,不是後面程序段的處理值。
在 G31(跳轉功能)程序段中跳轉信號接通時的刀具位置儲存在變量#5061到#5064中。當 G31程序段中的跳轉信號未接通時,這些變量中儲存指定程序段的終點值。
移動期間不能讀是指由於緩衝(預讀)功能的原因,不能讀期望值。
工件零點偏移值可以讀和寫
可以使用以下變量
宏變量的算術和邏輯運算:
下表列出的運算可以在變量中執行。運算符右邊的表達式可包含常量和/或由函數或運算符組成的變量。表達式中的變量#j和#k可以用常數替換。左邊的變量也可以用表達式賦值。
函數 SIN,COS,ASIN,ACOS,TAN和 ATAN的角度單位是度。如90°30ˊ表示為90.5度。
宏程序語句和 NC語句
下面的程序段為宏程序語句:
包含算術或邏輯運算(=)的程序段。
包含控制語句(例如,GOTO,DO,END)的程序段。
包含宏程序調用指令(例如,用 G65,G66,G67或其它 G代碼,M代碼調用宏程序)的程序段。
除了宏程序語句以外的任何程序段都為 NC語句。
轉移和循環
在程序中,使用 GOTO語句和 IF語句可以改變控制的流向。有三種轉移和循環操作可供使用:
無條件轉移(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的程序段。如果指定的條件表達式不滿足,執行下個程序段。
IF[]THEN 如果條件表達式滿足,執行預先決定的宏程序語句。只執行一個宏程序語句。
如果#1和#2的值相同,0賦給#3。
IF[#1 EQ #2] THEN #3=0;
注:條件表達式必須包括運算符。運算符插在兩個變量中間或變量和常數中間,並且用括號([,])封閉。表達式可以替代變量。
運算符
運算符由 2個字母組成,用於兩個值的比較,以決定它們是相等還是一個值小於或大於另一個值。注意,不能使用不等號。
循環(WHILE 語句)
在 WHILE後指定一個條件表達式。當指定條件滿足時,執行從 DO到END之間的程序。否則,轉到 END後的程序段
當指定的條件滿足時,執行 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
變量根據變量號可分為四中類型
是可編程機床控制器(PMC)和用戶宏程序之間交換的信號
用戶宏程序輸入信號
這些信號不對控制單元提供任何功能。這些信號作為系統變量的一種由用戶宏程序讀取,並用作用戶宏程序和 PMC之間的接口信號。
這些信號對應的系統變量表示如下:
用戶宏程序輸出信號
這些信號不對控制單元提供任何功能。這些信號作為一種由用戶宏程序讀或寫的系統變量,並用作用戶宏程序和 PMC之間的接口信號
這些信號對應的系統變量表示如下:
這些系統變量能夠用於賦值語句的左邊或右邊。
左側的賦值是賦給右側的變量。
信號地址如下:
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的系統變量
宏程序報警的系統變量
列如:
#3000=1(PROBE NO CONTACT)
報警屏幕顯示“3001 PROBE NO CONTACT”(探針沒有接觸
程序停止並顯示信息
時間信息的系統變量:
自動運行控制的系統變量(#3003)
當電源接通時,該變量的值為 0。
當單程序段停止無效時,即使單程序段開關設為 ON,也不執行單程序段停止。
當指定不等待輔助功能(M,S和 T功能)完成時,在輔助功能完成之前,程序即執行到下一程序段。而且分配完成信號 DEN不輸出。
自動運行控制的系統變量(#3004)
當電源接通時,該變量的值為 0。
當進給暫停無效時:
(1) 當進給暫停按鈕被按下時,機床以單段停止方式停止。但是,當用變量#3003使單程序段方式無效時,單程序段停止不執行。
(2) 當進給暫停按鈕壓下又鬆開時,進給暫停燈亮,但是,機床不停止;程序繼續執行,並且機床停在進給暫停有效的第一個程序段。
進給速度倍率無效時,倍率總為 100%,而不管機床操作面板上的進給速度倍率開關的設置。
準確停止檢測無效時,即使那些不執行切削的程序段也不進行準確停止檢測(位置檢測)。
SETTING值可用變量讀和寫。二進制數轉換為十進制數。
使用外部開關或 SETTING操作設置的各軸鏡像狀態可以通過輸出信號(鏡像檢測信號)讀出。可以檢測當前的鏡像狀態
得到的二進制值轉換成十進制。
當用鏡像信號和 SETTING兩者對某軸設置鏡像功能時,信號值和設定值相或,然後輸出。
當控制軸以外的軸的鏡像功能接通時,它們也被讀進系統變量#3007。
系統變量#3007是寫保護的系統變量。如果試圖在變量中寫數據,則發出 P/S116報警“WRITE PROTECTED VARIABLE”。
要求的零件數(目標數)和已加工的零件數(完成數)可以讀和寫
#3901:已加工的零件數(完成數)
#3902:要求的零件數(目標數)
注:不能使用負值。
正在處理的程序段之前的模態信息可以讀出
當執行#1=#4002;時,在#1中得到的值是 17,18或 19。
對於不能使用的 G代碼組,如果指定系統變量讀取相應的模態信息,則發出 P/S報警。
機床位置信息不能寫,只能讀
變量號的 第 1位代表軸號(從 1到 4)。
變量#5081~#5084存儲的刀具長度補償值是當前的執行值,不是後面程序段的處理值。
在 G31(跳轉功能)程序段中跳轉信號接通時的刀具位置儲存在變量#5061到#5064中。當 G31程序段中的跳轉信號未接通時,這些變量中儲存指定程序段的終點值。
移動期間不能讀是指由於緩衝(預讀)功能的原因,不能讀期望值。
工件零點偏移值可以讀和寫
可以使用以下變量
宏變量的算術和邏輯運算:
下表列出的運算可以在變量中執行。運算符右邊的表達式可包含常量和/或由函數或運算符組成的變量。表達式中的變量#j和#k可以用常數替換。左邊的變量也可以用表達式賦值。
函數 SIN,COS,ASIN,ACOS,TAN和 ATAN的角度單位是度。如90°30ˊ表示為90.5度。
宏程序語句和 NC語句
下面的程序段為宏程序語句:
包含算術或邏輯運算(=)的程序段。
包含控制語句(例如,GOTO,DO,END)的程序段。
包含宏程序調用指令(例如,用 G65,G66,G67或其它 G代碼,M代碼調用宏程序)的程序段。
除了宏程序語句以外的任何程序段都為 NC語句。
轉移和循環
在程序中,使用 GOTO語句和 IF語句可以改變控制的流向。有三種轉移和循環操作可供使用:
無條件轉移(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的程序段。如果指定的條件表達式不滿足,執行下個程序段。
IF[]THEN 如果條件表達式滿足,執行預先決定的宏程序語句。只執行一個宏程序語句。
如果#1和#2的值相同,0賦給#3。
IF[#1 EQ #2] THEN #3=0;
注:條件表達式必須包括運算符。運算符插在兩個變量中間或變量和常數中間,並且用括號([,])封閉。表達式可以替代變量。
運算符
運算符由 2個字母組成,用於兩個值的比較,以決定它們是相等還是一個值小於或大於另一個值。注意,不能使用不等號。
循環(WHILE 語句)
在 WHILE後指定一個條件表達式。當指定條件滿足時,執行從 DO到END之間的程序。否則,轉到 END後的程序段
當指定的條件滿足時,執行 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
閱讀更多 騰龍數控機床 的文章