在FANUC-0I数控系统仿真界面中,某些G、M、T等代码需要转换成可供PMAC识 别的数控代码。基于PMAC加工中心数控系统利用VB 6.0开发数控G代码编译程序处理 模块,主要用于FANUC-0I数控系统仿真界面中G代码的转换,现以基于PMAC的宏程 序编程在数控机床上的应用为例进行介绍。
1. FANUC系统宏程序
FANUC系统提供两种用户宏程序,即用户宏程序功能A和用户宏程序功能B[31]。由 于用户宏程序功能A的宏程序需要使用G65Hm格式的宏指令来表达各种数学运算和逻辑 关系,极不直观,且可读性非常差,因而导致在实际工作中很少人使用它[31]。由于绝大部 分的FANUC系统都支持用户宏程序功能B,因而重点介绍用户宏程序功能B的相关知识。
1.1变量及赋值
格式:# i= # j+ # k;
FANNC系统宏程序的变量是用变量符号#和后面的变量号指定,变量号是用以区分各 变量。=就是变量的赋值指令,=左边是被赋值的变量,=右边是一个数值表达式[32]。 表达式中包含的运算符有:+、-、*、/、[]以及一些数学运算函数,也可以包括变量。常 用的数学运算函数有:正弦SIN[]、正切TAN[]、平方根SQRT[]、余弦COS[]、反正切 ATAN[]、或OR、反余弦ACOS[]、与AND[]、反正弦ASIN[]、异或XOR和绝对值函 数ABS[]等。
1. 2无条件转移GOTO语句
格式:GOTO n;
n是目标程序段的标号,本指令将无条件地转移到标有顺序号(行号)n的程序段[32];
1.3条件转移指令IF语句
格式1: IF [<条件表达式>]GOTO n;
格式2: IF [<条件表达式>]THEN;
[]中是一个条件表达式,条件表达式中可以包含的运算符有:等于EQ、不等于NE、 大于GT、大于等于GE、小于LT、小于等于LE[33]。如果[]中的条件表达式成立,格式1 中程序将转移(跳转)到标有顺序号(行号)n的程序段,否则,顺序执行下一条指令, 如图3-3所示[33]。如果[]中的条件表达式成立,格式2中程序将执行预先指定的宏程序语 句,而且只执行一个宏程序语句。
1. 4循环指令WHILE
格式: WHILE [<条件表达式>] DO m
……
END m
[]里是程序执行的判断条件。DO与END命令后的m是循环编号;二者之间的程序是 被循环执行的语句,其中允许嵌套另一个WHILE循环。如果[]中的判断条件成立,DO 与END命令之间的程序会不断运行,否则,将运行END命令后面的程序,如图3-4所示。
1.5嵌套
格式1:D0循环可以多重嵌套,如图3-5所示。 格式2:条件转移可以跳出循环的外面,如图3-6所示。
2.基于PMAC的数控宏程序的实现
在基于PMAC构成的数控系统中,PMAC将G代码作为特殊子程序来调用。例如在 运动程序中遇到G65代码,它将认为这是调用子程序Program 1000中N65000程序段。 为了增加程序的可读性,我们采用GOSUB{数值}命令,此命令使运动程序跳转型到同一 运动程序段中{数值}指定的行号(N或0),当程序遇到GOSUB后的RETURN命令后马 上返回。CALL {数值}命令与此相似,只是它可以跳转到另一个运动程序,比如CALL 7 将执行PROG 7并返回,可用于用户宏程序功能A的宏程序G65(或G66)。用户宏程序功 能A的宏程序的调用格式是G65(或G66)P_L_[参数],其中P值为宏程序的程序号,L 为调用次数[34]。
FANUC数控系统的宏程序在PMAC上无法实现直接运行,因此需要将宏程序转化成 PMAC能识别的代码格式。
2.1进行指令替换,
PMAC能识别的加工程序指令和FANUC机床的编程语言稍有差别。为适应机床操作 人员的习惯,需要将机床操作人员输入的程序中的某些指令替换成PMAC能识别的指令, 转换后再进行下载、运行。
例如“EQ”需要替换成“=”,“#”需要替换成“vall”,这一过程通过 VB 软件来进行,
程序代码如下:
stra1 = Replace(stra1, "EQ", "=", 1, -1, 0)
stra1 = Replace(stra1, "#", "vall", 1, -1, 0)
另外还有一些不能通过替换直接修改的指令,如循环指令 WHILE,在 FANUC 机床
中,用法为:
WHILE [ <条件表达式>] DO m
……
END m
在 PMAC 中应用需要改为:
WHILE [<条件表达式>]
..….
END WHILE
故需要vb软件将DO m删除,将ENDm替换为END WHILE,程序的嵌套通过距离 最近的的未配对的WHILE和END WHILE来实现。
2.2增加程序的可读性
PMAC中参数的存储变量都是P, Q等固定字母加数字组成的,例如p201,因此变量 名称没有特定含义,加工程序易读性较差,VB软件在进行加工程序处理时可自动在加工 程序之前加上定义,增强可读性,例如定义变量p201为vail:
Text2.Text = "#define val1 p201" & vbCrLf & Text2.Text
为了 PMAC能够识别程序代码,需要按照PMAC程序代码格式对程序进行转换。例 如在经过校验的运动程序开头添加清空缓冲区指令,把程序号00007转换为open prog 7 clear,在程序结尾处加上关闭缓冲区指令’’close”,VB程序代码如下:
t1 (0) = "define tbuf 1" & vbCrLf & "open prog " & zzz & " clear"
Text2.Text = t1 (0) & Text2.Text & vbCrLf & " close "
对于PMAC可以直接识别的代码,把原程序代码进行复制即可。例如G、M、T、D 代码,+、-、*、/运算代码,SIN()、COS〇等数学运算函数代码,X、Y、Z等代码[2]。
[1] VB软件界面设计
为对上述构想进行程序验证,采用VB软件编写数控界面。左上角的窗口用来给操作 人员输入程序。右上角的窗口用来显示转换后的PMAC能识别的程序。点击“宏程序椭圆” 转换按钮,在PMAC程序窗口出现转换后的结果,即PMAC可识别的控制卡代码[35]。如 图3-7所示。
下面列出实现宏程序功能的关键VB源代码:
Private Sub 宏程序椭圆_Click()
stra1 = Text1(0).Text
hcxpd = 0
If (InStr(stra1, "#")) Then hcxpd = 1
stra1 = Replace(stra1, "#", " vall ", 1, -1, 0)
……
stra1 = Replace(stra1, "]", ")", 1, -1, 0)
t1 = Split(stra1, ";")
t2 = Split(t1(0), " ")
n = t2(1)
cxh = Replace(n, "0", "", 1, -1, 0)
zzz = Replace(n, "0", "", 1, -1, 0)
t1(0) = "define tbuf 1" & vbCrLf & "open prog " & zzz & " clear"
Text2.Text = ""For i = 1 To ( UBound (t1) - 1)
t1(i) = Mid(t1(i), 8, 255)
Text2.Text = Text2. Text & vbCrLf & t1(i)
Next i
Text2.Text = t1(0) & Text2. Text & vbCrLf & "close"
If hcxpd = 1 Then
For i = 1 To 10
Text2.Text = "#define val" & i & " p20" & i - 1 & vbCrLf & Text2.Text
Next i
For i = 11 To 12
Text2.Text = "#define val" & i & " p2" & i - 1 & vbCrLf & Text2.Text
Next i
End If
End Sub
2.4将宏程序下载到PMAC中和运行程序
下载PMAC程序,需要先将转换后的G代码程序存入文件中,文件后缀pmc,之后 通过PmacDownloadA指令将上述程序下载到PMAC中,“Download代码”按钮可以将转 换后的程序下载到PMAC中。
点击“运行”按钮,通过PmacGetResponseA指令将运动命令下载到PMAC中,即可
实现PMAC的宏程序加工。其中关键的VB源代码如下:
retum_value = PmacGetResponseA(DeviceNumber, response, 255, ”#lb” & cxh & ”r”)其 中“cxh”为程序号。
本文由伯特利数控整理发表文章均来自网络仅供学习参考,转载请注明!
相关内容可查阅:主页(加工中心)、产品页(CNC加工中心)、文章页(数控加工中心)
本文采摘自“基于PMAC的加工中心开放式数控系统研究”,因为编辑困难导致有些函数、表格、图片、内容无法显示,有需要者可以在网络中查找相关文章!
2021-09
星瀚系列是宇匠数控打造的颠覆性产品,在高精度加工的情况下保证高速、高刚的特性,是真正意义的高速加工中心,其性能及质量可媲美进口高速加工中心。同时可配置超声波系统与石墨集尘系统,亦可运用在陶瓷等硬脆料、石墨等高粉尘料的加工;… [了解更多]
2021-09
星瀚S系列是宇匠数控打造的颠覆性产品,采用全闭环设计,在高精度加工的情况下保证高速、高刚的特性,是真正意义的高速加工中心,其性能及质量可媲美进口高速加工中心。同时可配置超声波系统与石墨集尘系统,亦可运用在陶瓷等硬脆料、石墨等高粉尘料的加工;… [了解更多]
2021-09
TC系列超声波陶瓷雕铣机,是利用了超声波高频振动原理作用于刀具,使刀具产生了16KHz-40KHz(每秒16000-40000次)的连续高强度脉冲冲击,带动磨头冲击工作。当工件的局部应力远远超过材料脆裂极限,材料局部破碎去除。 适用范围 特别适用于陶瓷(氧化锆、氧化铝、氮化铝… [了解更多]
2020-10
1 问题的提出数控加工夹具是数控CNC机械制造加工过程中用来 固定加工对象,使之占有正确的位置,以满足加工工艺条件、迅速、方便、安全地安装工件的装置。夹具通常由定位元件、夹紧装置 、对刀引导元件、分度装置、连接元件及夹具体等组成[1]。图1所示零件是应用于系列矿用防爆电器产品上的… [了解更多]