前置處理任務(wù):完成對(duì)用數(shù)控語言編寫的源程序進(jìn)行翻譯、處理與計(jì)算,最終形成一個(gè)記錄刀具中心運(yùn)動(dòng)軌跡位置數(shù)據(jù)的文件(CL文件),作為不同數(shù)控機(jī)床的后置處理程序的輸入數(shù)據(jù)。
后置處理任務(wù):將前置處理程序輸出的CL文件中的刀位數(shù)據(jù)及有關(guān)信息轉(zhuǎn)換成特定數(shù)控機(jī)床控制系統(tǒng)所要求的數(shù)控加工程序。
另外,為了直觀檢查CL文件中的數(shù)據(jù)(CLDATA)的正確程度,以圖形方式用CLDATA在屏幕上進(jìn)行繪圖,若所繪圖形與所要求的加工刀心軌跡不符,可進(jìn)一步修改源程序。其前置處理程序的基本結(jié)構(gòu)及流程如圖3-11所示。
程序?qū)υ凑Z句的處理過程:是取出一條處理一條,直到最后一條源語句(FINI)為止,生成一張幾何定義語句的幾何參數(shù)表和一個(gè)反映工藝參數(shù)、運(yùn)動(dòng)語句等數(shù)據(jù)的CL文件。因此,它實(shí)際上是屬于一種解釋程序的設(shè)計(jì)方法。
一、幾何定義語句的處理
任務(wù):主要是將MPAPT語言中的幾何定義語句所定義的幾何元素?fù)Q算為標(biāo)準(zhǔn)型數(shù)據(jù):即將點(diǎn)表示為直角坐標(biāo)值;線表示為直線的一般方程;圓表示為圓心直角坐標(biāo)和半徑;列表曲線采用雙圓弧樣條擬合,分別求出該雙圓弧的圓心坐標(biāo)、半徑和切點(diǎn)坐標(biāo),并分別記入幾何元素參數(shù)表中,以便向后續(xù)幾何定義語句與運(yùn)動(dòng)語句處理程序提供參數(shù)。
處理內(nèi)容:主要為源程序語句的分類、錯(cuò)誤診斷和針對(duì)不同的定義方式進(jìn)行不同的數(shù)學(xué)處理。
為了便于描述上述有關(guān)內(nèi)容的處理,先介紹程序設(shè)計(jì)中的某些常用子程序。
(一) 常用子程序設(shè)計(jì)
在APT語言中,不同元素之間分別用“=”、“/”或“;”等符號(hào)分隔。為了便于取出與處理這些不同的元素,應(yīng)首先確定這些分隔符號(hào)在被處理語句中的位置,然后進(jìn)行分類、查錯(cuò)、確定修飾詞信息及數(shù)學(xué)處理等內(nèi)容。
例如,一條幾何定義語句,暫存到某一字符串變量(AA$)中,語句中分隔符號(hào)的位置與語句所含字符串的長(zhǎng)度,分別存放于某一數(shù)組(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,為了取出語句中的每個(gè)元素,首先必須確定以上數(shù)組中的值。
1. 查找?guī)缀味x語句中“=”位置子程序
幾何定義語句的一個(gè)顯著標(biāo)志是語句中含有“=”號(hào),程序中指定N(0)存放“=”的位置。
有關(guān)程序:
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. 查找語句中“/”位置子程序
幾何定義語句(包括大部分工藝參數(shù)語句和所有的刀具運(yùn)動(dòng)語句)中均含有“/”,程序中指定N(1)存放“/”的位置。 有關(guān)程序:
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
由上述子程序可知,若需查找語句中沒有“/”,則返回出錯(cuò)信息(ER=2)。
3. 查找語句中“;”位置子程序
幾何定義語句(包括有的工藝參數(shù)語句和刀具運(yùn)動(dòng)語句)中均含有“;”,程序中指定N(2)~N(7)存放“;”的位置(除列表曲線定義語句外,MPAPT 系統(tǒng)的幾何定義語句中最多含有六個(gè)“;”)。
有關(guān)程序:
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. 取點(diǎn)、線、圓定義語句的內(nèi)部形式子程序
概念:按序取出幾何定義語句“=”后前五個(gè)元素中第一個(gè)字符(若取出的字符為數(shù)字則以“N”代替),組成的字符串(不足五位的以空格補(bǔ)齊),稱為點(diǎn)、線、圓定義語句的內(nèi)部形式。
作用:由于點(diǎn)、線、圓定義語句的定義方式多種多樣,且形式又不統(tǒng)一,為了便于點(diǎn)、線、圓各幾何定義語句的分類、查錯(cuò)等內(nèi)容的處理,把點(diǎn)、線、圓定義語句化為統(tǒng)一形式的目標(biāo)代碼。
例如下列語句:“L1=LINE/PARLEL;LIN;XSMALL;112”,其內(nèi)部形式為L(zhǎng)PLXN。
有關(guān)程序:
Public WS As String
Public Sub PLCForm(AA$)
Dim NS As String,v$
NS = "1234567890.+-"‘數(shù)字表
WS = ""‘用于存放幾何定義語句的內(nèi)部形式
For I = 0 To 4
If N(I) = 0 Then
V$ = " "‘不足五位以空格補(bǔ)齊
WS = WS + V$
Else
V$ = Mid$(AA$, N(I) + 1, 1)‘取出分隔符號(hào)后第一位字符
For j = 1 To 13
If V$ = Mid$(NS, j, 1) Then‘查數(shù)字表,若為數(shù)字則以“N”代替
V$ = "N"
Exit For
End If
Next j
WS = WS + V$
End If
Next I
End Sub.
5. 查標(biāo)準(zhǔn)內(nèi)部形式表子程序
作用:為了便于點(diǎn)、線、圓各幾何定義語句的分類與查錯(cuò)處理,將第二章所述的點(diǎn)、線、圓定義語句的內(nèi)部形式,組成一張標(biāo)準(zhǔn)內(nèi)部形式表,如表3-1所示。
方法:被取出的幾何定義語句內(nèi)部形式與標(biāo)準(zhǔn)內(nèi)部形式逐個(gè)進(jìn)行比較,即可確定該語句的書寫是否有語法錯(cuò)誤及該語句在標(biāo)準(zhǔn)內(nèi)部形式表中的位置(如果沒有語法錯(cuò)誤),從而可按位置編碼(EI)值進(jìn)行分類。
有關(guān)程序:
Public EI As Integer
Public Sub FindTab()‘查標(biāo)準(zhǔn)內(nèi)部形式表子程序
Tb = "PNNPILL PXILCPYILCPXICCPYICCPCCPRNN LNNNNLPPLPAN
LPANLLPLXNLPLYNLPRTCLPLTCLRTCR"
Tb = Tb + "LRTCLLLTCRLLTCLCNNN CCPRNCCPLTCCPSTCXLXLCXLYL"
Tb = Tb + "CYLXLCYLYLCXLXICXLXOCXLYICXLYOCYLXICYLXOCYLYI"
Tb = Tb + "CYLYOCXICICYICICXICOCYICOCXOCICYOCICXOCOCYOCO"‘標(biāo)準(zhǔn)內(nèi)部形式表
For EI = 1 To 44
If WS = Mid$(Tb, (EI - 1) * 5 + 1, 5) Then Exit Sub ‘查標(biāo)準(zhǔn)內(nèi)部形式表
Next EI
ER = 8
End Sub
表3-1 點(diǎn)、線、圓、定義語句的標(biāo)準(zhǔn)內(nèi)部形式表
位置(EI) |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
標(biāo)準(zhǔn) 形式 |
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 |
程序中將幾何定義語句內(nèi)部形式與標(biāo)準(zhǔn)內(nèi)部形式表每隔五位逐個(gè)進(jìn)行比較,若相符返回EI值,否則返回錯(cuò)誤信息。
標(biāo)準(zhǔn)內(nèi)部形式表的作用:不僅是點(diǎn)、線、圓定義語句分類的依據(jù),而且是檢查這些點(diǎn)、線、圓定義語句的書寫是否含有語法錯(cuò)誤的診斷依據(jù)。也就是說點(diǎn)、線、圓定義語句語法的診斷過程,實(shí)際上就是一個(gè)查表對(duì)照過程。
業(yè)務(wù)咨詢:932174181 媒體合作:2279387437 24小時(shí)服務(wù)熱線:15136468001 盤古機(jī)械網(wǎng) - 全面、科學(xué)的機(jī)械行業(yè)免費(fèi)發(fā)布信息網(wǎng)站 Copyright 2017 PGJXO.COM 豫ICP備12019803號(hào)