【请登录】【免费注册】

首页新闻技术产品供应二手培训展会物流维修求购招商招标招聘企业

技术

搜索
技术文章机械知识技术技巧论文试题维修知识招投标知识
您的位置:盘古机械网>技术文章>机械知识>详情

数控编程系统——后置处理程序设计(2)

时间:2008年11月03日浏览:796次收藏分享:

㈣运动指令处理部分的程序设计 
    运动指令的处理主要是指3000类与5000类记录的处理,后置处理程序每处理完一条5000类记录,即完成了一条数控加工程序段中所有指令的处理,然后需按数控系统指令格式的要求进行排序,从而生成一条数控加工程序,处理流程如图3-56所示。
1. 3000类记录(圆弧参数)的处理 
    在5000类加工圆弧记录前,均有一条3000类记录,记录了圆心坐标、半径值及圆弧的顺、逆方向信息。后置处理时(见图3-56),先根据数控系统的脉冲当量,将圆心坐标及半径值进行数据圆整化,然后记下该圆弧的所有参数,为处理下一条5000类走圆记录服务。
有关程序:
Dim CS As Integer‘存放圆弧顺逆信息
Dim U As Single, V As Single, R As Single‘存放圆弧圆心坐标及半径
CS = 0: U = 0: V = 0: R = 0
Case3000
For j = 4 To 6‘圆弧参数圆整化及传递参数
W(j) = Int(Abs(W(j) * 1000 + 0.5) * Sgn(W(j))) ‘对W(j)中的小数部分四舍五入
Next j
CS = W(3): U = W(4): V = W(5): R = W(6)
2. 5000类记录的处理 
    由于MPAPT系统主要是解决平面类零件的数控加工的自动编程,5000 类记录中所包含的子类型包括起刀点指定、Z方向走一增量、点位控制、直线加工和圆弧加工语句的记录,根据FANUC-6M数控系统程编要求,各子类型的处理流程见图3-56。 
    (1) FROM语句记录的处理 
    FANUC-6M系统数控加工程序一开始就要求设定被加工工件坐标系,并作为第一段程序。这可根据起刀点位置,即取出“FROM”语句后面的坐标,选用G92(或G54)指令进行设定;然后分别排序该程序段序号,并连接已处理的指令字,以形成一条数控加工程序;最后为处理下一程序段传递起点坐标值。
有关程序:
Dim OX As Single, OY As Single‘存放终点坐标
OX = 0: OY = 0
Public Sub ProcFRM(OX, OY)
Dim XX As Single, YY As Single
Dim X$, Y$, G$, N$
XX = W(4): YY = W(5): G$ = "G92"
N$ = FunN()‘N指令排序
If XX >= 0 Then X$ = "X" + LTrim(Str$(XX)) Else X$ = "X" + Str$(XX)
If YY >= 0 Then Y$ = "Y" + LTrim(Str$(YY)) Else Y$ = "Y" + Str$(YY)
NC$(NI) = N$ + G$ + X$ + Y$ + "Z0" + "CR"
OX = XX: OY = YY
End Sub 
    (2) GODLTA语句记录的处理 
    该语句记录反应了机床Z方向抬刀或下刀一段距离(增量坐标)。机床抬刀或下刀可看作刀具沿ZOX平面内运动,即平面选择指令为G18。刀具运动速度若超过500mm/分时,则约定为快速(G00)定位,否则作为直线插补(G01)运动,刀具具体运动速度由前面已处理的F指令决定,处理流程见图3-56。


有关程序:
Public Sub ProcGD(F$, M$, FG$())
Dim FF As Single, ZZ As Single
Dim GG$(4), G$, N$, Z$
GG$(1) = "G91": GG$(3) = "G18": GG$(4) = ""
FF = Val(Mid$(F$, 2, Len(F$) - 1))
If FF > 0 And FF <= 500 Then GG$(2) = "G01" Else GG$(2) = "G00": F$ = ""
N$ = FunN()‘N指令排序
G$ = FunG(GG$(), FG$())‘G指令排序(见后)
ZZ = W(4)
If ZZ >= 0 Then Z$ = "Z" + LTrim(Str$(ZZ)) Else Z$ = "Z" + Str$(ZZ)
NC$(NI) = N$ + G$ + Z$ + F$ + M$ + "CR"
F$ = "": M$ = ""‘赋空字符
End Sub
说明:(1)程序中的F$、M$为存放前面已处理的F、M指令,其初值均为空字符,待程序段中的序号、指令字和运动字等被连接成一条加工程序后,由于F、M指令均为模态指令(有续效),所以赋空字符。 
    (2)对于G指令的排序,除坐标系统设定(或选择)指令外还剩四组,它们在程序段中的排列顺序一般为:
G00
G90G01G17G40
G91G02G18G41
G03G19G42 
    由于这四组G指令均是模态的,因此本程序段中每组G指令,若与前一程序段中的同组G指令相同,则在程序段中该相同的G指令可省略,具体处理过程如图3-57所示。
有关程序:
Dim FG$(4)‘存放上段程序的G指令组
Dim GG$(4)‘存放本段程序的G指令组
FOR I=1 T 4:FG$(I)=BB$: NEXT I
Public Function FunG(GG$(), FG$()) ‘G指令排序
Dim G$
G$ = ""
For I = 1 To 4
If GG$(I) <> FG$(I) Then FG$(I) = GG$(I): G$ = G$ + GG$(I)
Next I
FunG = G$
End Function

    (3) 其他运动语句记录的处理 
    GOTO语句(点位运动)、初始切入语句和连续运动语句(直线或圆弧加工)记录的处理方法均大同小异,如图3-56所示。除有关G指令处理和X、Y 值的排序等内容外,其他问题的处理与前面所介绍的二种运动语句记录的处理方法基本相同。 
    对于G指令的处理,若为点位运动,即刀具快速定位,则对应的G指令为G00,若前一程序段中含有刀具补偿指令,则应取消刀具补偿,否则因G 指令的模态性,影响刀具正确定位;若为初始切入运动或直线运动,对应的G指令为G01,而刀具偏置G指令可由前面2000类已处理的刀偏信息(TS)确定,其后的D代码已由前面已处理的6000类确定(一般在初始切入程序段中才含有D代码);若为圆弧运动,顺、逆圆G指令可由前面3000类已处理的顺、逆信息(CS)确定,其他G指令的处理同直线运动。 
    另外,圆弧加工时,需求圆弧圆心相对圆弧起点(即前一程序段的终点)的增量坐标(II,JJ)值。
有关程序:
Public Sub ProcGT(F$, M$, OX, OY, FG$())‘GOTO语句记录的处理
Dim XX As Single, YY As Single
Dim GG$(4), N$, G$, X$, Y$
GG$(1) = "G90": GG$(2) = "G00": GG$(3) = "G17"
If FG$(4) = "G41" Or FG$(4) = "G42" Then GG$(4) = "G40"
N$ = FunN()‘N指令排序
G$ = FunG(GG$(), FG$())‘G指令排序
XX = W(4): YY = W(5)
X$ = PaixuX(XX, OX): Y$ = PaixuY(YY, OY)‘X和Y指令排序
NC$(NI) = N$ + G$ + X$ + Y$ + M$ + "CR"
M$ = "": OX = XX: OY = YY‘为下一程序段传递起点坐标
End Sub
Public Sub ProcGOL(F$, M$, D$, OX, OY, TS, CR, FEED$, FG$())   ‘初始运动语句和连续运动语句(走直线)记录的处理
Dim XX As Single, YY As Single
Dim GG$(4), N$, G$, X$, Y$
If TS = 0 And CR = 0 Then ER = 999 : MsgBox ("CUTTER语句或刀偏{TLLFT,TLRGT,TLONN}语句没有按规定书写!"): Exit Sub‘转文本编辑
If FG$(2) = "G00" Then F$ = FEED$‘确定是否需要F指令
If FG$(4) = "G41" Or FG$(4) = "G42" And FD$ = D$ Then D $ = "" Else FD$ = D$‘确定是否需要源代码
GG$(1) = "G90": GG$(2) = "G01": GG$(3) = "G17"
Select Case TS
Case 0
GG$(4) = "G40"
Case 1
GG$(4) = "G42"
Case -1
GG$(4) = "G41"
End Select
N$ = FunN()                 ‘N指令排序
G$ = FunG(GG$(), FG$())                 ‘G指令排序
XX = W(4): YY = W(5)
X$ = PaixuX(XX, OX): Y$ = PaixuY(YY, OY)          ‘X和Y指令排序
NC$(NI) = N$ + G$ + X$ + Y$ + D$ + F$ + M$ + "CR"
M$ = "": F$ = "": OX = XX: OY = YY
End Sub
Public Sub ProcGOC(F$, M$, OX, OY, TS, CS, U, V, FG$())              ‘连续运动语句(走圆弧)记录的处理
Dim XX As Single, YY As Single, II As Single, JJ As Single
Dim GG$(4), N$, G$, X$, Y$
GG$(1) = "G90": GG$(3) = "G17"
If CS = 1 Then GG$(2) = "G03" Else GG$(2) = "G02"
If TS = 0 Then
GG$(4) = "G40"
Else
If TS = -1 Then GG$(4) = "G41" Else GG$(4) = "G42"
End If
N$ = FunN()‘N指令排序
G$ = FunG(GG$(), FG$())‘G指令排序
XX = W(4): YX = W(5)
X$ = PaixuX(XX, OX): Y$ = PaixuY(YY, OY)‘X和Y指令排序
II = U - OX: JJ = V - OY
I$ = PaixuI(II): j$ = PaixuJ(JJ)‘I和J指令排序
NC$(NI) = N$ + G$ + X$ + Y$ + I$ +J$ + F$ + M$ + "CR"
M$ = "": F$ = "": OX = XX: OY = YY
End Sub 
    对于X、Y值的排序,由FANUC-6M系统绝对坐标编程方法可知,当本程序段中的X(或Y)值与前一程序段中的X(或Y)值相等时,说明该方向的工作台没有位移量,则本程序段中的X(或Y)运动字可省略,故运动字的排序为空字符。
X,Y值排序程序:
Public Function PaixuX(XX, OX)‘X指令排序
Dim X$
If XX = OX Then
X$ = ""
Else
If XX >= 0 Then X$ = "X" + LTrim(Str$(XX)) Else X$ = "X" + Str$(XX)
End If
PaixuX = X$
End Function
Public Function PaixuY(YY, OY)‘Y指令排序
Dim Y$
If YY = OY Then
Y$ = ""
Else
If YY >= 0 Then Y$ = "Y" + LTrim(Str$(YY)) Else Y$ = "Y" + Str$(YY)
End If
PaixuY = Y$
End Function 
    ㈤输出部分的程序设计 
    后置处理程序通过对CLDATA记录一条条地进行处理,形成了一条条的数控加工程序。当处理到14000类记录时,表示记录已处理完毕,这时应置数控加工程序的结束指令(M02或M30),如图3-56所示。后置处理完毕,可进行数控加工程序仿真加工、显示、打印、存盘、穿孔制带和通信(将数控加工程序直接传送到数控系统)等操作。
1. 数控加工程序的显示、打印或存盘 
    因数控加工程序已存于字符串数组(NC$(N))中,故可通过窗体中文件菜单将其显示、打印或存盘。
2.仿真加工 
    根据数控加工程序中刀具位移坐标,利用计算机的绘图功能及动画技术,借助于图形显示器可形象地模仿数控机床加工。首先根据加工要求,选择所需要的刀具,仿真加工从确定刀具的起始位置开始,然后沿着所定义零件几何形状表面按运动语句指定的运动方向移动。仿真加工时可采用彩色图形显示,即零件外形(含加工余量)用一种颜色显示,刀具轨迹或刀具中心轨迹用另一种颜色显示,因此能方便、直观地鉴别刀具轨迹是否正确。在屏幕中模拟动态刀具运动时,刀具运动的速度可忽快忽慢甚至停止,以便检查刀具与工件是否产生干涉。 
    仿真加工的刀具中心轨迹图形可通过绘图机绘制,并可整体或局部放大与缩小。
    仿真加工程序的设计方法与前置处理程序中的图形显示程序类同,只不过绘图输入数据不同,前者为CLDATA,而后者为数控加工程序。对于刀具运动速度的忽快忽慢及停止显示的处理,可参照有关动画程序的设计。
3. 数控加工程序的穿孔制带 
    早期的数控机床有的是通过纸带将数控加工程序输入数控系统,故需将数控加工程序按一定的代码及格式穿孔制带。由于穿孔机对通用计算机而言,属于专用外部设备,故一般需设计专用接口电路,因此, 穿孔制带程序的设计与专用接口电路有关。
4. 数控加工程序的通信
    数控加工程序的通信通常是双向的,即从编程机传送到数控系统或从数控系统传递到编程机中。其程序设计往往与通信口有关,即分通用接口和专用接口,且通用接口又分并行口和串行口。

热门文章

业务咨询:932174181   媒体合作:2279387437    24小时服务热线:15136468001 盘古机械网 - 全面、科学的机械行业免费发布信息网站 Copyright 2017 PGJXO.COM 豫ICP备12019803号