黄色三级片无码高清-一级国产黄色片传媒-下载日韩一级黄色片-国产黄片卡片一级-看三四级黄色毛片-国产一级爱做c片免费-欧美一级电影播放观看-日韩一级视频在线看-成人簧片一级AAA片

【請登錄】【免費注冊】

首頁新聞技術產品供應二手培訓展會物流維修求購招商招標招聘企業

技術

搜索
技術文章機械知識技術技巧論文試題維修知識招投標知識
您的位置:盤古機械網>技術文章>機械知識>詳情

數控編程系統——后置處理程序設計(1)

時間:2008年11月03日瀏覽:890次收藏分享:

    任務:將前置處理程序輸出的CL文件中的刀位數據及有關信息轉換成特定數控機床控制系統所要求的數控加工程序。 
    特點:后置處理程序是專用的,在同一前置處理程序的條件下,后置處理程序的設計,主要與具體數控機床的加工程序格式有關。 
    本節所介紹的后置處理程序設計,是將MPAPT系統前置處理程序輸出的CL 文件數據轉換成FANUC-6M數控加工程序,即前接MPAPT系統,后接FANUC-6M數控系統。 
    現以FANUC-6M系統用于數控銑床的后置處理程序設計為例,介紹一般后置處理程序的結構及其設計方法。
一、后置處理程序的一般結構 
    后置處理程序的已知輸入數據即為前置處理程序的輸出結果─CLDATA,而后置處理程序的輸出結果,即為數控加工程序。由于設計CLDATA的類型、格式及其所包含的數據內容與指令信息時,已考慮到盡可能簡化專用的后置處理程序設計,所以后置處理程序設計的難易程度及工作量遠不如前置處理程序,即只需將CL文件中的有關數據進行傳遞、轉換和作少量的簡單計算,其一般結構如圖3-55所示。

    程序結構:按程序中的功能化分,主要包含五部分,即輸入、輸出、控制、輔助指令處理和運動指令處理部分。 
    ㈠輸入部分 
    這部分是把外存貯器中的CLDATA讀入計算機內存,并將CLDATA轉換成便于后置處理程序能接受的已知數據。 
    ㈡控制部分 
    這部分是根據CLDATA的類型,控制程序的轉向。即控制程序轉入輔助部分或運動部分進行分別處理,以及輸入/輸出部分的調用。如CLDATA的輸入和數控加工程序的輸出等均受其支配。從而控制整個程序流程。 
    ㈢輔助部分 
    這部分主要是針對2000類中的CLDATA,將其傳遞或轉換成特定數控機床的準備、輔助等功能,即主要是指G、F、T、M等指令的處理。 
    ㈣運動部分 
    這部分主要是針對3000類及5000類中CLDATA進行處理。這些記錄的處理與數控系統的準備功能有關,是后置處理程序中的主要處理部分。其內容主要包括:坐標轉換計算,數據圓整化,根據數控機床程序格式要求,進行指令排序等,從而形成一條條數控加工程序段。 
    ㈤輸出部分 
    這部分主要是將處理結果,即已形成的數控加工程序進行存盤、打印、通信傳送等。 
    處理方法:后置處理程序也是讀一條CLDATA記錄,處理一條記錄,即根據與數控機床有關的不同記錄類型,轉移到對應的地方去處理,直到最后一條記錄為止,從而生成被加工零件的數控加工程序。
三、FANUC-6M數控系統后置處理程序設計 
    根據MPAPT系統CLDATA的格式及記錄類型和該數控系統的指令格式及編程方法,該數控系統的后置處理程序總框圖見圖3-56。現分別介紹各部分程序的設計方法。 


    ㈠輸入部分的程序設計 
    若系統是從前置處理程序直接轉入后置處理程序,則CLDATA已駐留在計算機內存中(CL(N0,7)),若磁盤中已存有CL文件,則可利用文件菜單直接打開所需文件,并使文本中的數據讀入數組CL(N0,7)中,該方法已在總體設計中做了介紹。
處理方法:后置處理實際上就是對一個二維的數組進行處理,即用“取出一條CLDATA記錄子程序”從內存中按CLDATA記錄順序,取出一條記錄,以便后繼程序逐條進行處理。CLDATA有N0條記錄,則該子程序就要執行N0次。 
    取出一條CLDATA記錄子程序 
    Public Sub GetCldata(I) 
    For T = 1 To 7 
    W(T) = CL(I, T)‘I為當前處理的一條CL文件記錄序號 
    Next T 
    End Sub 
    ㈡控制部分的程序設計 
    由于CLDATA中的數據已分成不同的類型,故可直接根據其數據類型控制程序的流向。因CLDATA數據類型中還包括了子類型,還需根據子類型地不同進行處理。因此,控制部分實際上是被分布在程序各部分之中的。
例如,2000類記錄控制程序流程的有關語句: 
    Select Case W(2)‘判斷記錄類型 
    Case 2000 
    If W(3) = 1009 Then ProcFD F$, FEED$‘記錄內容轉換為F指令 
    If W(3) = 1030 Then ProcCL M$‘記錄內容轉換為對應的M 指令 
    If W(3) = 1031 Then ProcSP M$‘記錄內容轉換S指令及對應的M 指令 
    If W(3) = 1000 Then TS = W(4)‘向下傳遞刀偏信息 
    例如,5000類記錄控制程序流程的有關語句: 
    Case 5000 
    For j = 4 To 5‘參數圓整化 
    W(j) = Int(Abs(W(j) * 1000 + 0.5) * Sgn(W(j))) 
    Next j 
    Select Case W(3)‘判斷記錄子類型 
    Case 1‘FROM語句記錄的處理 
    ProcFRM OX, OY 
    Case 2‘GODLTA語句記錄的處理 
    ProcGD F$, M$, FG$() 
    Case 3‘GOTO語句記錄的處理 
    ProcGT F$, M$, OX, OY, FG$() 
    Case 4 To 5‘GO直線語句記錄的處理 
    ProcGOL F$, M$, D$, OX, OY, TS, CR, FEED$, FG$() 
    Case 6‘GO圓弧語句記錄的處理 
    ProcGOC F$, M$, OX, OY, TS, CS, U, V, FG$() 
    End Select 
    ㈢輔助指令處理部分的程序設計
1. 2000類記錄的處理 
    該類記錄的類型較多,然而根據數控系統的程序編制要求,并不是所有2000類記錄均需處理,而只要求與程編指令有關的記錄內容進行處理。如FANUC-6M數控系統,只需對FEDRAT、COOLNT、SPINDL和刀偏語句的記錄進行直接轉換或傳遞,具體處理過程見圖3-56。 
    有關程序: 
    Public WI,NI,PN$,W(7),CR,NC$(200) 
    DimFEED$, F$, M$, D$‘存放F、M、D功能指令 
    BB$ = "": F$ = BB$: M$ = BB$: D$ = BB$: FEED$ = BB$ 
    Public Sub ProcFD(F$, FEED$)‘FEDRAT語句記錄的處理 
    Dim FF As Single 
    FF = W(4) 
    F$ = "F" + LTrim(Str$(FF)): FEED$ = F$ 
    End Sub 
    Public Sub ProcCL(M$)‘COOLNT語句記錄的處理 
    Dim N$ 
    If M$ <> "" Then N$ = FunN(): NC$(NI) = N$ + M$ + "CR"‘N指令排序 
    If W(4) = 1 Then M$ = "M08" Else M$ = "M09" 
    End Sub 
    Public Sub ProcSP(M$)‘SPINDIE語句記錄的處理 
    Dim SS As Single 
    Dim S$, N$ 
    If M$ <> "" Then N$ = FunN(): NC$(NI) = N$ + M$ + "CR" 
    SS = W(4) 
    If SS = 0 Then 
    M$ = "M05" 
    Else 
    If SS > 1800 Then SS = 1800‘機床最高轉速為1800轉/分 
    S$ = "S" + LTrim(Str$(SS)) 
    If W(5) = 1 Then M$ = "M03" Else M$ = "M04" 
    M$ = S$ + M$ 
    End If 
    End Sub 
    說明:

    (1)程序中多處出現“LTrim(Str$(X))”字符串函數式(X為函數自變量:正數),由于正數前有一空格(符號位),故此函數式是為了去掉正數前的空格字符。 
    (2)由FNAUC-6M數控系統編程說明可知,該系統一條數控加工程序(或稱為程序段)中,最多只允許出現一個M指令,否則只有最后一個M指令有效,因此程序中若連續遇到二個M指令時,則先將前一個已處理M指令作為一個程序段保留于NC$(NI)數組中,該數組中的N$為已排序的程序段序號;“CR”即為程序段結束符。 
    (3)排序子程序:由FANUC-6M系統編程說明可知,該系統加工程序開頭的固定格式(參見表3-7)一般為: 
    ER 
    CR 
    O00001(五位數)CR 
    N1------------CR 
    N2------------CR 
    即程序段序號從第四條開始,則加工程序的總條數(包括前三條)與帶有程序段序號的程序條數差值為3。為了確定加工程序段的序號和總條數,可分別用二個計數器進行自動計數得到,從而對程序段序號進行排序。 
    有關程序: 
    NC$(1) = "ER": NC$(2) = "CR": NC$(3) = PN$ + "CR"‘NC$()和PN$為全局變量 
    NI = 3‘NI加工程序段序號計數器,全局變量 
    Public Function FunN()‘N指令排序 
    Dim NN$,EOB 
    NI = NI + 1: NOB = NI - 3‘NI加工程序段序號計數器,NOB程序段序號計數器 
    NN$ = "N" + LTrim(Str$(NOB)) 
    FunN = NN$ 
    End Function 
    (4)對于機床主軸轉數的處理,由于轉速指令(S)總是與M03或M04指令配合使用,故程序中把S與M指令同存放于M$中。 
    (5)刀偏語句(TLLFT、TLRGT或TLON)的記錄信息,見前面控制部分程序中的2000類語句處理, 即直接賦給某一標識符(TS)中,以便為后面處理G41、G42或G40提供已知信息。
2. 6000類記錄(刀具參數)的處理 
    由于FANUC-6M數控系統具有刀具半徑補償功能,所選用的刀具半徑通過MID方式輸入控制系統中,即存入“D”代碼后面數字(刀補號)所指定的寄存器中。由于“D”代碼的刀補號取值范圍為0~32, 故后置處理程序對APT語言中“CUTTER”語句的書寫,一般約定為“CUTTER/0;數字(0~32)”。因此后置處理時,根據該語句中的后一個數字,處理成“D”代碼。 
    有關程序: 
    Dim CR As Single‘存放刀具半徑 
    D$ = BB$:CR=0 
    Public Sub ProcCUT(D$, CR)‘CUTTER語句記錄的處理 
    Dim CNO As Integer 
    CR = W(4): CNO = W(5) 
    If CNO > 32 Then CNO = 32 
    D$ = LTrim(Str$(CNO)) 
    If CNO < 10 Then D$ = "D0" + D$ Else D$ = "D" + D$ 
    End Sub.

熱門文章

業務咨詢:932174181   媒體合作:2279387437    24小時服務熱線:15136468001 盤古機械網 - 全面、科學的機械行業免費發布信息網站 Copyright 2017 PGJXO.COM 豫ICP備12019803號