前置处理任务:完成对用数控语言编写的源程序进行翻译、处理与计算,最终形成一个记录刀具中心运动轨迹位置数据的文件(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号