王志欣,黃建凌
(浙江亞太機電股份有限公司,浙江杭州 311203)
宏程序在設(shè)備中的運用
王志欣,黃建凌
(浙江亞太機電股份有限公司,浙江杭州 311203)
從宏變量運算、接口系統(tǒng)變量、宏程序條件運算等方面,介紹宏程序的變量以及宏程序在設(shè)備生產(chǎn)中的運用。
宏程序;變量;數(shù)控機床
10.16621/j.cnki.issn1001-0599.2017.12.52
宏程序在數(shù)控機床上有著重要作用,在現(xiàn)實生產(chǎn)加工中非常重要。有一些復(fù)雜零件,離開了宏程序,它的加工程序就無法編制(利用CAM繪圖軟件并進行后處理生成的程序除外);簡單重復(fù)的零件,利用宏程序可以大大提高生產(chǎn)效率,減少編程量。
以北京FANUC 0i系統(tǒng) B-6351C為參考,通過多方面的內(nèi)容和應(yīng)用實例,向大家介紹宏程序的變量以及宏程序在設(shè)備生產(chǎn)中的運用。
宏變量根據(jù)變量號和用途可以分4大類(表1)。
系統(tǒng)變量是和NC內(nèi)部數(shù)據(jù)以及PMC交流通信的變量,各個變量有著不同的功用和性能。有些變量可讀可寫,有些變量只能寫,有些變量只能讀,因此,系統(tǒng)變量是機床自動控制和通用加工程序編寫以及開發(fā)的基礎(chǔ)。系統(tǒng)變量與CNC,PMC之間關(guān)系如表2~表4所示(一些不常用的變量略談)。
表1 宏變量的分類
表2 工件零點偏移值的系統(tǒng)變量
表3 機床位置信息的系統(tǒng)變量
表4 刀具補償?shù)南到y(tǒng)變量
表3中,位置信息不能寫,只能讀取使用;每組變量最后一位數(shù)字代表軸號,一般表示第1軸~第4軸。
表4中,刀具補償?shù)南到y(tǒng)變量可讀可寫。當(dāng)偏置組數(shù)≤200組時,也可以使用括號中的#2001~#2400。
宏變量的運算包括算術(shù)、函數(shù)、邏輯以及條件等運算符(表5)。
進行宏變量運算時,需注意10點。
(1)宏變量運算時,必須先賦值,后運算。例如:
(2)反三角函數(shù)取值范圍由參數(shù)P6004.0的取值決定(表6)。
例如:#1=ATAN[-1]/[-1]=225°(變量賦值省略,假設(shè)變量等于-1);#1=ATAN[-1]/[-1]=-135°(變量賦值省略,假設(shè)變量等于-1)。
(3)宏變量值的精度約為8位十進制數(shù),當(dāng)在加/減運算處理非常大的數(shù)時,可能得不到期望的結(jié)果。
(4)宏變量運算先后順序一般遵循:①先函數(shù),②再乘除,與運算,③最后是加減、邏輯或、邏輯異或運算。
(5)宏變量的運算都是在方括號內(nèi)進行的,不能用小括號。小括號內(nèi)只能用作注釋。此外,括號可以改變運算順序,但一行宏程序中最多只能使用5級方括號,超過5級時宏程序會P/S No.118報警。
(6)宏程序中引用的變量值會根據(jù)地址的最小單位自動四舍五入。如精度為0.001mm時,當(dāng)用#1=12.3456,G00 X#1時,實際X位置是12.346。
(7)使用負號“-”時,負號必須放到#號前面,當(dāng)使用未定義的變量時(也叫空變量,變量#0總是空變量),變量和地址都會被忽略不計,機床不報警。
(8)表達式也可以用于指定變量號,但必須在封閉的方括號中,如:#1=#[#1+#3-29]。
(9)局部變量,公共變量取值是有范圍的,正值為+10-29~+1047,0 值;負值時為-1047~-10-29,超出會產(chǎn)生 P/S No.111 報警。
(10)相關(guān)參數(shù)說明。
參數(shù)P3204.0等于0時,括號是方括號“[]”,等于1時是小括號“()”。
參數(shù)P6000.5 SMB等于0時程序單節(jié)運行時宏程序不停止,等于1時宏程序單節(jié)也停止.
參數(shù)P6001.6 CCV等于0時局部變量#1~#33值復(fù)位時變成空,等于1時不變。
參數(shù)P6001.7 CLV等于0時公用變量#100~#199值復(fù)位時變成空,等于1時不變。
參數(shù)P3209.2 MCY等于0時在MDI方式下可以輸入宏變量的值,等于1時不可以輸入。
參數(shù)P3209.6MC等于0時任何方式下都可以輸入宏變量的值,等于1時只有在MDI方式下才能輸入。
該類變量可以實現(xiàn)宏程序與PMC之間的信號交流和電平轉(zhuǎn)換,以達到利用外部控制條件實現(xiàn)對宏程序的控制,同時也可以實現(xiàn)利用宏程序?qū)MC控制的影響(表7)。這類變量在無人值守的自動化以及復(fù)雜加工方面有重要應(yīng)用。
表5 宏變量運算說明
表6 函數(shù)取值范圍與參數(shù)的關(guān)系
從表7可以看出,宏程序與PMC信號傳遞是通過如圖1所示方式進行的。
(1)#3000。給CNC程序設(shè)置一個報警的系統(tǒng)變量,其取值范圍為0~200。當(dāng)把以上范圍的任何一個值賦予#3000時,CNC就會停止并產(chǎn)生一個報警號為3000+#3000值的報警(例如,#3000=8,則報警號是3008),并且可以在屏幕報警欄上顯示不超過26個字符的報警信息。書寫格式:#3000=8(PART NOT FOUND)。
圖1 宏程序與PMC信號傳遞方式
(2)#3006。給CNC程序設(shè)置一個信息顯示的系統(tǒng)變量,取值范圍是“1”,當(dāng)程序運行到該段程時,停止運行并停止,并且可以書寫不超過26個字符的信息并在屏幕信息欄上顯示。書寫格式:#3006=1(PARTFOUND)。
(3)#3001。該系統(tǒng)變量以毫秒(ms)為單位計時器,當(dāng)計時值累積到2 147 483 648 ms時,歸零重計。當(dāng)電源接通時,該變量值復(fù)位為0。該變量可以讀,也可以寫,常用作一次開機時間統(tǒng)計。
表7 接口系統(tǒng)變量對PMC的控制及影響
(4)#3002。該系統(tǒng)變量是當(dāng)循環(huán)啟動燈亮起時以小時為單位計時器,當(dāng)計時值累積到9544.371 767 h時,歸零重計。該計時器即使電源斷電時,累積值也不會丟失。該變量可以讀,也可以寫,常常用作設(shè)備自動運行時間統(tǒng)計。
(5)#3011。該系統(tǒng)變量用于讀取CNC系統(tǒng)的當(dāng)前日期,并以10進制顯示年、月、日。如日期是2015年6月18日,則顯示為20150618。該變量不能寫,只能讀,常用作程序運行時間(日期)報警。
(6)#3012。該系統(tǒng)變量用于讀取CNC系統(tǒng)的當(dāng)前時間,以24 h制并以10進制方式顯示時、分、秒時間。如12:30:46,則顯示123046。該變量不能寫,只能讀,常用作程序運行時間(日期)報警。
(7)#3003。該系統(tǒng)變量用于改變程序自動運行中的狀態(tài),并且有時不受操作面板上單段按鈕選擇以及一些輔助(如常用的M,S,T等)功能命令是否完成信號輸出的影響(表8)。
(8)#3004。該系統(tǒng)變量用于改變程序自動運行中的狀態(tài),并且有時不受操作面板上進給暫停、進給速度倍率按鈕選擇的影響(表9)。
(9)#3005。該系統(tǒng)變量是一個16位二進制數(shù),以SEETING畫面方式輸入10進制數(shù),它會變化成二進制后按位寫入。如果讀出時它會把二進制變換成10進制。0i系統(tǒng)中起作用的各位如表10所示。
表8 系統(tǒng)變量#3003取值及功用
表9 系統(tǒng)變量#3004取值及功用
表10 0i系統(tǒng)中#3005常用起作用的各位
#0(TVC):是否進行TV檢查。
#1(ISO):輸出代碼是國際標準,否則是ETA標準。
#2(INI):英寸輸入,否則以公制輸入。
#5(SEQ):是否需要自動插入行順序號。
#9(FCV):紙帶格式FS10,否則使用FS11格式(以前程序保存在紙帶上,以打點的格式,不同的孔代表不同的內(nèi)容)
(10)#3007。該變量是利用SETTING或外部信號輸入設(shè)置各軸的鏡像功能,同時也可以讀出以查看各軸鏡像,它是一個8位二進制數(shù),輸入時自動分解成二進制按位寫入。0i系統(tǒng)中起作用的各位見表11。
需要說明的是:①值是0時鏡像無效,1是有效;②當(dāng)用鏡像信號和SEETING兩者對一個軸設(shè)置鏡像時,信號值和設(shè)定值相或(其中一個是1,則為1),然后輸出;③它是一個寫保護變量,只能在SEETING畫面設(shè)定,其他方式輸入則產(chǎn)生P/S116“WRITEPROTECTEDVARIABLE”報警。
表11 0i系統(tǒng)中#3007常用起作用的各位
(11)#3901。該變量是一個統(tǒng)計已加工的零件數(shù)(完成數(shù)),可讀可寫,但不能用負數(shù)寫入。
(12)#3902。該變量可以設(shè)置要求加工的零件數(shù)(目標數(shù)),可讀可寫,但不能用負數(shù)寫入。
(1)GOTON 語句,N的取值范圍是1~99999.如果超出取值范圍,則產(chǎn)生P/S 128報警。
(2)IF[ ]GOTON 語句,當(dāng)IF方括號里邊條件滿足時,跳轉(zhuǎn)到N語句的地方。
(3)IF[ ]THEN 語句,當(dāng)IF方括號里邊條件滿足時,執(zhí)行一個語句。
(4)WHILE[ ]DOm
當(dāng)WHILE語句方括號里的條件是滿足時,執(zhí)行DOm~ENDm之間的程序。不滿足執(zhí)行ENDm后邊的程序。
需要說明的是:①m取值只能是1,2,3,以外其他值產(chǎn)生報警P/S 126;②當(dāng)指定了DOm和ENDm,而沒有指定WHILE[]條件語句時,程序在Dom和ENDm無限循環(huán);③DOm~ENDm循環(huán)中的標號(m取值1,2,3)可以多次使用,但是不同的條件語句DO范圍不能有重疊,條件轉(zhuǎn)移時也不能進入循環(huán)內(nèi)部,如有重疊或轉(zhuǎn)移進入循環(huán)內(nèi)部時則會產(chǎn)生P/S 124報警(圖2)。
以上是對系統(tǒng)變量以及系統(tǒng)變量運算的簡要敘述,下面以實例說明宏變量的具體使用方法。
為了平衡生產(chǎn),生產(chǎn)中產(chǎn)品夾具一般同時加工左右2個產(chǎn)品,分別設(shè)定坐標系為G54和G55。由于特殊原因需要單獨生產(chǎn)左產(chǎn)品或右產(chǎn)品時,需要調(diào)試員去轉(zhuǎn)換程序,調(diào)出左產(chǎn)品程序或右產(chǎn)品程序,加工結(jié)束后還要調(diào)出左右都有的程序,非常麻煩,而且影響生產(chǎn)。新手操作時,還容易出現(xiàn)調(diào)錯程序,發(fā)生撞刀事故的風(fēng)險。為了適合生產(chǎn)要求,利用宏程序解決了上述問題。解決過程如下:
第1步:對產(chǎn)品夾具進行改造,在夾具的防錯位置加裝了傳感器,左邊的用A傳感器,來感知左產(chǎn)品是否存在,作為機床的輸入點設(shè)定為X1020.1;右邊的用B傳感器,來感知右產(chǎn)品是否存在,作為機床的輸入點設(shè)定為X1020.2。
第2步:利用FANUC編程軟件對PMC梯圖進行修改,在合適位置加入如圖3所示的一段程序。
第3步:將不同的狀態(tài)分別編程,作為子程序進行調(diào)用。圖4是將不同狀態(tài)進行了分解和編程。
狀態(tài)1是2種產(chǎn)品都有,設(shè)定程序為:
圖3 利用FANUC軟件修改PMC梯圖的程序1
圖4 不同狀態(tài)的分解和編程
狀態(tài)2:只有左產(chǎn)品,設(shè)定程序為:
狀態(tài)3:只有右產(chǎn)品,設(shè)定程序為:
第4步:編制主程序,見下列主程序(僅作參考,不同設(shè)備輔助功能不同)
檢查左右產(chǎn)品是否都存在,如存在跳轉(zhuǎn)至程序O0001
檢查左產(chǎn)品是否存在,如存在跳轉(zhuǎn)至程序O0002
檢查右產(chǎn)品是否存在,如存在跳轉(zhuǎn)至程序O0003
通過以上步驟,可以方便而且不用更改程序就能達到目的,提高了生產(chǎn)效率和安全性。
圖5左邊是泵體產(chǎn)品,為了保證產(chǎn)品的幾何精度和減少工藝步驟,將其放到帶有4軸的加工中心上進行加工。右邊是該產(chǎn)品的工裝夾具。
圖5 泵體加工程序示意
產(chǎn)品工藝及加工過程要求:① 以產(chǎn)品的X面,Y面定位,從Z面壓緊,同時C面用擺轉(zhuǎn)油缸壓緊,以免加工Φ20mm時產(chǎn)品移動。②伺服電機轉(zhuǎn)動至90°加工A面以及孔Φ20mm。③完畢之后,伺服電機帶動夾具轉(zhuǎn)動到-90°,加工B面,同時完成M10螺紋加工(要求:在加工上述過程中,為防止產(chǎn)品在加工過程中移動,回轉(zhuǎn)油缸壓緊在產(chǎn)品的C面)。④上述2個工序完成之后,伺服電機再轉(zhuǎn)回到0°,松開回轉(zhuǎn)油缸,壓腳分別向左右擺轉(zhuǎn)45°,再對C面進行加工,同時完成M8螺紋的加工。⑤最后壓緊缸松開,取出產(chǎn)品,并放置新的產(chǎn)品,壓緊缸壓緊產(chǎn)品(注:產(chǎn)品側(cè)面壓緊用按鈕)。
為了實現(xiàn)上述工藝要求,利用宏程序解決了上述問題。
第1步:對液壓油路進行了改進,主要是在回轉(zhuǎn)油缸夾緊松開油路加入了壓力繼電器,進行油缸位置的輔助監(jiān)控,以免撞刀,其夾緊壓力用SP1 X1000.0作為壓緊信號。壓緊動作控制用Y1000.0來控制,放松壓力用SP2 X1000.1作為放松信號,放松動作控制用Y1000.1(圖6)。
第2步:利用FANUC編程軟件對PMC梯圖進行了修改,在合適的位置加入了如圖7所示的一段程序。
第3步:根據(jù)工藝要求編制程序
圖6 液壓油路的改進
圖7 利用FANUC軟件修改PMC梯圖的程序2
擺轉(zhuǎn)缸是否夾緊檢查,如夾緊轉(zhuǎn)跳到加工程序進行加工
如果擺轉(zhuǎn)油缸沒夾緊則報警停止。
擺轉(zhuǎn)缸是否放松檢查,如放松跳轉(zhuǎn)到加工程序進行加工
如果擺轉(zhuǎn)缸沒松開則報警停止
通過這個程序,你就很容易的達到了工藝過程要求。
在生產(chǎn)加工中刀具會出現(xiàn)磨損,如果檢查后刀具仍可繼續(xù)使用,就需要修改刀具的磨損量,以保證產(chǎn)品尺寸。如果刀具需要更換,則需要修改刀具的幾何尺寸。修改磨損量和修改刀具幾何尺寸,都有可能修改錯誤,特別是新職工更容易出現(xiàn)這種情況。修改發(fā)生錯誤后,機床運行時會出現(xiàn)撞刀和報廢產(chǎn)品,日常管理發(fā)現(xiàn),修改刀具參數(shù)錯誤引起的撞刀故占總事故率的5%左右。為了減少該類事故的發(fā)生,利用宏程序,將刀具參數(shù)變化量限制到1mm,磨耗變化量限制在0.05mm之內(nèi)。如果修改量超出控制范圍,將出現(xiàn)報警,停止運行(圖8)。具體操作如下(僅以長度為例說明)。
第1步:從圖8a)可以看出,該程序的T1用的是H8(程序的第5行),對應(yīng)下圖中應(yīng)該是8#刀偏,其具體尺寸是形狀H=-428.8,磨損 H=-0.020。
第2步:通過查看上邊表4,該刀具參數(shù)宏變量對應(yīng)是#11008和#10008。
第3步:如果刀具長度更改量控制在±1mm,那么#11008應(yīng)-429.8≤#11008≤-427.8。如果長度磨損更改量控制在±0.05mm,那么#10008應(yīng)在-0.08≤#10008≤+0.03。
第4步:宏程序編寫如下:
圖8 程序與刀具參數(shù)
宏程序在設(shè)備中應(yīng)用相當(dāng)廣泛,本文通過對FANUC 0i系統(tǒng)B-6351C宏變量運算、接口系統(tǒng)變量以及對應(yīng)的接口地址等等說明,加入作者自己的注解和理解,同時通過實際應(yīng)用實例進行解說,敘述了宏程序在產(chǎn)品加工中的應(yīng)用,對實際工作有一定借鑒意義。
TP271+.4
B
〔編輯 吳建卿〕