前置處理任務:完成對用數控語言編寫的源程序進行翻譯、處理與計算,最終形成一個記錄刀具中心運動軌跡位置數據的文件(CL文件),作為不同數控機床的后置處理程序的輸入數據。
后置處理任務:將前置處理程序輸出的CL文件中的刀位數據及有關信息轉換成特定數控機床控制系統所要求的數控加工程序。
另外,為了直觀檢查CL文件中的數據(CLDATA)的正確程度,以圖形方式用CLDATA在屏幕上進行繪圖,若所繪圖形與所要求的加工刀心軌跡不符,可進一步修改源程序。其前置處理程序的基本結構及流程如圖3-11所示。
程序對源語句的處理過程:是取出一條處理一條,直到最后一條源語句(FINI)為止,生成一張幾何定義語句的幾何參數表和一個反映工藝參數、運動語句等數據的CL文件。因此,它實際上是屬于一種解釋程序的設計方法。
一、幾何定義語句的處理
任務:主要是將MPAPT語言中的幾何定義語句所定義的幾何元素換算為標準型數據:即將點表示為直角坐標值;線表示為直線的一般方程;圓表示為圓心直角坐標和半徑;列表曲線采用雙圓弧樣條擬合,分別求出該雙圓弧的圓心坐標、半徑和切點坐標,并分別記入幾何元素參數表中,以便向后續幾何定義語句與運動語句處理程序提供參數。
處理內容:主要為源程序語句的分類、錯誤診斷和針對不同的定義方式進行不同的數學處理。
為了便于描述上述有關內容的處理,先介紹程序設計中的某些常用子程序。
(一) 常用子程序設計
在APT語言中,不同元素之間分別用“=”、“/”或“;”等符號分隔。為了便于取出與處理這些不同的元素,應首先確定這些分隔符號在被處理語句中的位置,然后進行分類、查錯、確定修飾詞信息及數學處理等內容。
例如,一條幾何定義語句,暫存到某一字符串變量(AA$)中,語句中分隔符號的位置與語句所含字符串的長度,分別存放于某一數組(N(8))中,如下所示:
"L1=LINE/Point;ATANGL;112;Line"→AA$
↓↓↓↓↓↓
N(0)N(1)N(2)N(3) N(4) N(8)
則N(0)=3;N(1)=8;N(2)=14;N(3)=21;N(4)=25與N(8)=29(沒用上N(5)~N(7)其值為0,為了取出語句中的每個元素,首先必須確定以上數組中的值。
1. 查找幾何定義語句中“=”位置子程序
幾何定義語句的一個顯著標志是語句中含有“=”號,程序中指定N(0)存放“=”的位置。
有關程序:
Public N(8) As Integer
Public Sub FindEq(AA$)
For I = 0 To 8
N(I) = 0
Next I
N(8) = Len(AA$)
For I = 1 To 8
If Mid$(AA$, I, 1) = "=" Then
N(0) = I
Exit Sub
End If
Next I
End Sub
由上述子程序可知,若語句中沒有“=”,則N(0)=0。
2. 查找語句中“/”位置子程序
幾何定義語句(包括大部分工藝參數語句和所有的刀具運動語句)中均含有“/”,程序中指定N(1)存放“/”的位置。 有關程序:
Public Sub Findx(AA$)
For I = 1 To N(8)
If Mid$(AA$, I, 1) = "/" Then
N(1) = I
Exit Sub
End If
Next I
ER = 2
End Sub
由上述子程序可知,若需查找語句中沒有“/”,則返回出錯信息(ER=2)。
3. 查找語句中“;”位置子程序
幾何定義語句(包括有的工藝參數語句和刀具運動語句)中均含有“;”,程序中指定N(2)~N(7)存放“;”的位置(除列表曲線定義語句外,MPAPT 系統的幾何定義語句中最多含有六個“;”)。
有關程序:
Public Sub FindF(AA$)
Dim numf As Integer
numf = 2
For I = N(1) + 1 To N(8) - 1
If Mid$(AA$, I, 1) = ";" Then
N(numf) = I
numf = numf + 1
End If
Next I
End Sub
4. 取點、線、圓定義語句的內部形式子程序
概念:按序取出幾何定義語句“=”后前五個元素中第一個字符(若取出的字符為數字則以“N”代替),組成的字符串(不足五位的以空格補齊),稱為點、線、圓定義語句的內部形式。
作用:由于點、線、圓定義語句的定義方式多種多樣,且形式又不統一,為了便于點、線、圓各幾何定義語句的分類、查錯等內容的處理,把點、線、圓定義語句化為統一形式的目標代碼。
例如下列語句:“L1=LINE/PARLEL;LIN;XSMALL;112”,其內部形式為LPLXN。
有關程序:
Public WS As String
Public Sub PLCForm(AA$)
Dim NS As String,v$
NS = "1234567890.+-"‘數字表
WS = ""‘用于存放幾何定義語句的內部形式
For I = 0 To 4
If N(I) = 0 Then
V$ = " "‘不足五位以空格補齊
WS = WS + V$
Else
V$ = Mid$(AA$, N(I) + 1, 1)‘取出分隔符號后第一位字符
For j = 1 To 13
If V$ = Mid$(NS, j, 1) Then‘查數字表,若為數字則以“N”代替
V$ = "N"
Exit For
End If
Next j
WS = WS + V$
End If
Next I
End Sub.
5. 查標準內部形式表子程序
作用:為了便于點、線、圓各幾何定義語句的分類與查錯處理,將第二章所述的點、線、圓定義語句的內部形式,組成一張標準內部形式表,如表3-1所示。
方法:被取出的幾何定義語句內部形式與標準內部形式逐個進行比較,即可確定該語句的書寫是否有語法錯誤及該語句在標準內部形式表中的位置(如果沒有語法錯誤),從而可按位置編碼(EI)值進行分類。
有關程序:
Public EI As Integer
Public Sub FindTab()‘查標準內部形式表子程序
Tb = "PNNPILL PXILCPYILCPXICCPYICCPCCPRNN LNNNNLPPLPAN
LPANLLPLXNLPLYNLPRTCLPLTCLRTCR"
Tb = Tb + "LRTCLLLTCRLLTCLCNNN CCPRNCCPLTCCPSTCXLXLCXLYL"
Tb = Tb + "CYLXLCYLYLCXLXICXLXOCXLYICXLYOCYLXICYLXOCYLYI"
Tb = Tb + "CYLYOCXICICYICICXICOCYICOCXOCICYOCICXOCOCYOCO"‘標準內部形式表
For EI = 1 To 44
If WS = Mid$(Tb, (EI - 1) * 5 + 1, 5) Then Exit Sub ‘查標準內部形式表
Next EI
ER = 8
End Sub
表3-1 點、線、圓、定義語句的標準內部形式表
位置(EI) |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
標準 形式 |
PNN |
PILL |
PXILC |
PYILC |
PXICC |
PYICC |
PCC |
PRNN |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
LNNN |
LPP |
LPAN |
LPANL |
LPLXN |
LPLYN |
LPRTC |
LPLTC |
LRTCR |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
LRTCL |
LLTCR |
LLTCL |
CNNN |
CCPRN |
CCPLT |
CCPST |
CXLXL |
CXLYL |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
CYLXL |
CYLYL |
CXLXI |
CXLXO |
CXLYL |
CXLYO |
CYLXI |
CYLXO |
CYLYI |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
CYLYO |
CXICI |
CYICI |
CXICO |
CYICO |
CXOCI |
CYOCI |
CXOCO |
CYOCO |
程序中將幾何定義語句內部形式與標準內部形式表每隔五位逐個進行比較,若相符返回EI值,否則返回錯誤信息。
標準內部形式表的作用:不僅是點、線、圓定義語句分類的依據,而且是檢查這些點、線、圓定義語句的書寫是否含有語法錯誤的診斷依據。也就是說點、線、圓定義語句語法的診斷過程,實際上就是一個查表對照過程。
業務咨詢:932174181 媒體合作:2279387437 24小時服務熱線:15136468001 盤古機械網 - 全面、科學的機械行業免費發布信息網站 Copyright 2017 PGJXO.COM 豫ICP備12019803號