王志欣,黃建凌
(浙江亞太機電股份有限公司,浙江杭州 311203)
宏程序在設備中的運用
王志欣,黃建凌
(浙江亞太機電股份有限公司,浙江杭州 311203)
從宏變量運算、接口系統變量、宏程序條件運算等方面,介紹宏程序的變量以及宏程序在設備生產中的運用。
宏程序;變量;數控機床
10.16621/j.cnki.issn1001-0599.2017.12.52
宏程序在數控機床上有著重要作用,在現實生產加工中非常重要。有一些復雜零件,離開了宏程序,它的加工程序就無法編制(利用CAM繪圖軟件并進行后處理生成的程序除外);簡單重復的零件,利用宏程序可以大大提高生產效率,減少編程量。
以北京FANUC 0i系統 B-6351C為參考,通過多方面的內容和應用實例,向大家介紹宏程序的變量以及宏程序在設備生產中的運用。
宏變量根據變量號和用途可以分4大類(表1)。
系統變量是和NC內部數據以及PMC交流通信的變量,各個變量有著不同的功用和性能。有些變量可讀可寫,有些變量只能寫,有些變量只能讀,因此,系統變量是機床自動控制和通用加工程序編寫以及開發的基礎。系統變量與CNC,PMC之間關系如表2~表4所示(一些不常用的變量略談)。

表1 宏變量的分類

表2 工件零點偏移值的系統變量

表3 機床位置信息的系統變量

表4 刀具補償的系統變量
表3中,位置信息不能寫,只能讀取使用;每組變量最后一位數字代表軸號,一般表示第1軸~第4軸。
表4中,刀具補償的系統變量可讀可寫。當偏置組數≤200組時,也可以使用括號中的#2001~#2400。
宏變量的運算包括算術、函數、邏輯以及條件等運算符(表5)。
進行宏變量運算時,需注意10點。
(1)宏變量運算時,必須先賦值,后運算。例如:

(2)反三角函數取值范圍由參數P6004.0的取值決定(表6)。
例如:#1=ATAN[-1]/[-1]=225°(變量賦值省略,假設變量等于-1);#1=ATAN[-1]/[-1]=-135°(變量賦值省略,假設變量等于-1)。
(3)宏變量值的精度約為8位十進制數,當在加/減運算處理非常大的數時,可能得不到期望的結果。
(4)宏變量運算先后順序一般遵循:①先函數,②再乘除,與運算,③最后是加減、邏輯或、邏輯異或運算。
(5)宏變量的運算都是在方括號內進行的,不能用小括號。小括號內只能用作注釋。此外,括號可以改變運算順序,但一行宏程序中最多只能使用5級方括號,超過5級時宏程序會P/S No.118報警。
(6)宏程序中引用的變量值會根據地址的最小單位自動四舍五入。如精度為0.001mm時,當用#1=12.3456,G00 X#1時,實際X位置是12.346。
(7)使用負號“-”時,負號必須放到#號前面,當使用未定義的變量時(也叫空變量,變量#0總是空變量),變量和地址都會被忽略不計,機床不報警。
(8)表達式也可以用于指定變量號,但必須在封閉的方括號中,如:#1=#[#1+#3-29]。
(9)局部變量,公共變量取值是有范圍的,正值為+10-29~+1047,0 值;負值時為-1047~-10-29,超出會產生 P/S No.111 報警。
(10)相關參數說明。
參數P3204.0等于0時,括號是方括號“[]”,等于1時是小括號“()”。
參數P6000.5 SMB等于0時程序單節運行時宏程序不停止,等于1時宏程序單節也停止.
參數P6001.6 CCV等于0時局部變量#1~#33值復位時變成空,等于1時不變。
參數P6001.7 CLV等于0時公用變量#100~#199值復位時變成空,等于1時不變。
參數P3209.2 MCY等于0時在MDI方式下可以輸入宏變量的值,等于1時不可以輸入。
參數P3209.6MC等于0時任何方式下都可以輸入宏變量的值,等于1時只有在MDI方式下才能輸入。
該類變量可以實現宏程序與PMC之間的信號交流和電平轉換,以達到利用外部控制條件實現對宏程序的控制,同時也可以實現利用宏程序對PMC控制的影響(表7)。這類變量在無人值守的自動化以及復雜加工方面有重要應用。

表5 宏變量運算說明

表6 函數取值范圍與參數的關系
從表7可以看出,宏程序與PMC信號傳遞是通過如圖1所示方式進行的。
(1)#3000。給CNC程序設置一個報警的系統變量,其取值范圍為0~200。當把以上范圍的任何一個值賦予#3000時,CNC就會停止并產生一個報警號為3000+#3000值的報警(例如,#3000=8,則報警號是3008),并且可以在屏幕報警欄上顯示不超過26個字符的報警信息。書寫格式:#3000=8(PART NOT FOUND)。

圖1 宏程序與PMC信號傳遞方式
(2)#3006。給CNC程序設置一個信息顯示的系統變量,取值范圍是“1”,當程序運行到該段程時,停止運行并停止,并且可以書寫不超過26個字符的信息并在屏幕信息欄上顯示。書寫格式:#3006=1(PARTFOUND)。
(3)#3001。該系統變量以毫秒(ms)為單位計時器,當計時值累積到2 147 483 648 ms時,歸零重計。當電源接通時,該變量值復位為0。該變量可以讀,也可以寫,常用作一次開機時間統計。

表7 接口系統變量對PMC的控制及影響
(4)#3002。該系統變量是當循環啟動燈亮起時以小時為單位計時器,當計時值累積到9544.371 767 h時,歸零重計。該計時器即使電源斷電時,累積值也不會丟失。該變量可以讀,也可以寫,常常用作設備自動運行時間統計。
(5)#3011。該系統變量用于讀取CNC系統的當前日期,并以10進制顯示年、月、日。如日期是2015年6月18日,則顯示為20150618。該變量不能寫,只能讀,常用作程序運行時間(日期)報警。
(6)#3012。該系統變量用于讀取CNC系統的當前時間,以24 h制并以10進制方式顯示時、分、秒時間。如12:30:46,則顯示123046。該變量不能寫,只能讀,常用作程序運行時間(日期)報警。
(7)#3003。該系統變量用于改變程序自動運行中的狀態,并且有時不受操作面板上單段按鈕選擇以及一些輔助(如常用的M,S,T等)功能命令是否完成信號輸出的影響(表8)。
(8)#3004。該系統變量用于改變程序自動運行中的狀態,并且有時不受操作面板上進給暫停、進給速度倍率按鈕選擇的影響(表9)。
(9)#3005。該系統變量是一個16位二進制數,以SEETING畫面方式輸入10進制數,它會變化成二進制后按位寫入。如果讀出時它會把二進制變換成10進制。0i系統中起作用的各位如表10所示。

表8 系統變量#3003取值及功用

表9 系統變量#3004取值及功用

表10 0i系統中#3005常用起作用的各位
#0(TVC):是否進行TV檢查。
#1(ISO):輸出代碼是國際標準,否則是ETA標準。
#2(INI):英寸輸入,否則以公制輸入。
#5(SEQ):是否需要自動插入行順序號。
#9(FCV):紙帶格式FS10,否則使用FS11格式(以前程序保存在紙帶上,以打點的格式,不同的孔代表不同的內容)
(10)#3007。該變量是利用SETTING或外部信號輸入設置各軸的鏡像功能,同時也可以讀出以查看各軸鏡像,它是一個8位二進制數,輸入時自動分解成二進制按位寫入。0i系統中起作用的各位見表11。
需要說明的是:①值是0時鏡像無效,1是有效;②當用鏡像信號和SEETING兩者對一個軸設置鏡像時,信號值和設定值相或(其中一個是1,則為1),然后輸出;③它是一個寫保護變量,只能在SEETING畫面設定,其他方式輸入則產生P/S116“WRITEPROTECTEDVARIABLE”報警。

表11 0i系統中#3007常用起作用的各位
(11)#3901。該變量是一個統計已加工的零件數(完成數),可讀可寫,但不能用負數寫入。
(12)#3902。該變量可以設置要求加工的零件數(目標數),可讀可寫,但不能用負數寫入。
(1)GOTON 語句,N的取值范圍是1~99999.如果超出取值范圍,則產生P/S 128報警。
(2)IF[ ]GOTON 語句,當IF方括號里邊條件滿足時,跳轉到N語句的地方。
(3)IF[ ]THEN 語句,當IF方括號里邊條件滿足時,執行一個語句。
(4)WHILE[ ]DOm

當WHILE語句方括號里的條件是滿足時,執行DOm~ENDm之間的程序。不滿足執行ENDm后邊的程序。
需要說明的是:①m取值只能是1,2,3,以外其他值產生報警P/S 126;②當指定了DOm和ENDm,而沒有指定WHILE[]條件語句時,程序在Dom和ENDm無限循環;③DOm~ENDm循環中的標號(m取值1,2,3)可以多次使用,但是不同的條件語句DO范圍不能有重疊,條件轉移時也不能進入循環內部,如有重疊或轉移進入循環內部時則會產生P/S 124報警(圖2)。
以上是對系統變量以及系統變量運算的簡要敘述,下面以實例說明宏變量的具體使用方法。
為了平衡生產,生產中產品夾具一般同時加工左右2個產品,分別設定坐標系為G54和G55。由于特殊原因需要單獨生產左產品或右產品時,需要調試員去轉換程序,調出左產品程序或右產品程序,加工結束后還要調出左右都有的程序,非常麻煩,而且影響生產。新手操作時,還容易出現調錯程序,發生撞刀事故的風險。為了適合生產要求,利用宏程序解決了上述問題。解決過程如下:
第1步:對產品夾具進行改造,在夾具的防錯位置加裝了傳感器,左邊的用A傳感器,來感知左產品是否存在,作為機床的輸入點設定為X1020.1;右邊的用B傳感器,來感知右產品是否存在,作為機床的輸入點設定為X1020.2。
第2步:利用FANUC編程軟件對PMC梯圖進行修改,在合適位置加入如圖3所示的一段程序。
第3步:將不同的狀態分別編程,作為子程序進行調用。圖4是將不同狀態進行了分解和編程。
狀態1是2種產品都有,設定程序為:


圖3 利用FANUC軟件修改PMC梯圖的程序1

圖4 不同狀態的分解和編程

狀態2:只有左產品,設定程序為:

狀態3:只有右產品,設定程序為:

第4步:編制主程序,見下列主程序(僅作參考,不同設備輔助功能不同)

檢查左右產品是否都存在,如存在跳轉至程序O0001

檢查左產品是否存在,如存在跳轉至程序O0002

檢查右產品是否存在,如存在跳轉至程序O0003

通過以上步驟,可以方便而且不用更改程序就能達到目的,提高了生產效率和安全性。
圖5左邊是泵體產品,為了保證產品的幾何精度和減少工藝步驟,將其放到帶有4軸的加工中心上進行加工。右邊是該產品的工裝夾具。

圖5 泵體加工程序示意
產品工藝及加工過程要求:① 以產品的X面,Y面定位,從Z面壓緊,同時C面用擺轉油缸壓緊,以免加工Φ20mm時產品移動。②伺服電機轉動至90°加工A面以及孔Φ20mm。③完畢之后,伺服電機帶動夾具轉動到-90°,加工B面,同時完成M10螺紋加工(要求:在加工上述過程中,為防止產品在加工過程中移動,回轉油缸壓緊在產品的C面)。④上述2個工序完成之后,伺服電機再轉回到0°,松開回轉油缸,壓腳分別向左右擺轉45°,再對C面進行加工,同時完成M8螺紋的加工。⑤最后壓緊缸松開,取出產品,并放置新的產品,壓緊缸壓緊產品(注:產品側面壓緊用按鈕)。
為了實現上述工藝要求,利用宏程序解決了上述問題。
第1步:對液壓油路進行了改進,主要是在回轉油缸夾緊松開油路加入了壓力繼電器,進行油缸位置的輔助監控,以免撞刀,其夾緊壓力用SP1 X1000.0作為壓緊信號。壓緊動作控制用Y1000.0來控制,放松壓力用SP2 X1000.1作為放松信號,放松動作控制用Y1000.1(圖6)。
第2步:利用FANUC編程軟件對PMC梯圖進行了修改,在合適的位置加入了如圖7所示的一段程序。
第3步:根據工藝要求編制程序

圖6 液壓油路的改進

圖7 利用FANUC軟件修改PMC梯圖的程序2

擺轉缸是否夾緊檢查,如夾緊轉跳到加工程序進行加工

如果擺轉油缸沒夾緊則報警停止。

擺轉缸是否放松檢查,如放松跳轉到加工程序進行加工

如果擺轉缸沒松開則報警停止

通過這個程序,你就很容易的達到了工藝過程要求。
在生產加工中刀具會出現磨損,如果檢查后刀具仍可繼續使用,就需要修改刀具的磨損量,以保證產品尺寸。如果刀具需要更換,則需要修改刀具的幾何尺寸。修改磨損量和修改刀具幾何尺寸,都有可能修改錯誤,特別是新職工更容易出現這種情況。修改發生錯誤后,機床運行時會出現撞刀和報廢產品,日常管理發現,修改刀具參數錯誤引起的撞刀故占總事故率的5%左右。為了減少該類事故的發生,利用宏程序,將刀具參數變化量限制到1mm,磨耗變化量限制在0.05mm之內。如果修改量超出控制范圍,將出現報警,停止運行(圖8)。具體操作如下(僅以長度為例說明)。
第1步:從圖8a)可以看出,該程序的T1用的是H8(程序的第5行),對應下圖中應該是8#刀偏,其具體尺寸是形狀H=-428.8,磨損 H=-0.020。
第2步:通過查看上邊表4,該刀具參數宏變量對應是#11008和#10008。
第3步:如果刀具長度更改量控制在±1mm,那么#11008應-429.8≤#11008≤-427.8。如果長度磨損更改量控制在±0.05mm,那么#10008應在-0.08≤#10008≤+0.03。
第4步:宏程序編寫如下:



圖8 程序與刀具參數
宏程序在設備中應用相當廣泛,本文通過對FANUC 0i系統B-6351C宏變量運算、接口系統變量以及對應的接口地址等等說明,加入作者自己的注解和理解,同時通過實際應用實例進行解說,敘述了宏程序在產品加工中的應用,對實際工作有一定借鑒意義。
TP271+.4
B
〔編輯 吳建卿〕