4. 5 加工程序段及轨迹图形跟踪显示
同样也是利用Timer 控件在Timer 事件里执行。要将三维图形二维显示,可以采用投影映射的方法。轨迹曲线可以看成由无数条直线组成,加工轨迹实时跟踪的时候就采用沿着加工轨迹画直线的方式,部分程序代码如下:
Private Sub Timer2 Timer ()
Dim pro As String 3 255
Call PmacGetResponseA(0 , pro , 255 , ″list pe″)′列出将要
执行的下一条程序
display txt (0) . Caption = display txt (1) . Caption
display txt (1) . Caption = display txt (2) . Caption
display txt (2) . Caption = pro
PictureLine.Line - (100 3 (Poslabel (0) . Caption -
Poslabel (2) .Caption 3 Cos (45 3 0. 0174532925) / 2) , 100 3
(Poslabel (1) .Caption - Poslabel (2) . Caption 3 Cos (45 3 0.
0174532925) / 2) ) , RGB(255 , 0 , 0) ′加工轨迹实时显示
. . . . . .
End Sub
4.6 运动程序的编制及下载
PMAC 开放式数控系统的运动程序实际上就是轴的运动控制程序,在机床行业即加工程序。PMAC 的运动程序语言有它自己的特点,采用类似于BASIC的高级语言编程,以调用子程序的形式支持机床行业的G代码和M、T、D 代码编程。
编写完运动程序后,如果是在PWIN 终端窗口编写的,那么程序已经被送到缓冲区中,可以在终端窗口键入“&mBnR”运行程序,其中m为坐标系号,n 为程序号;如果是在文本编译器中编写程序,必须将其下载到PMAC 卡中,部分程序代码如下:
Private Sub Download Click()
Mainform. CommonDialog1.DialogTitle = ″Download A File
to PMAC″
Mainform. CommonDialog1. Filter = ″PMAC files | 3 . p ??;
3 . h ; 3 . dat | All files | 3 . 3 ″
Mainform. CommonDialog1. filename = ″″
Mainform. CommonDialog1. ShowOpen
If Mainform. CommonDialog1. filename < > ″″Then
Call PmacDownloadFile (0 , Mainform. CommonDialog1.
filename)
′下载数控代码转换程序到PMAC
Dim I ,int Fp ,int Fp End As Integer ′定义″\ ″在字符
串中的位置
. . . . . .
pro = Mid $(Mainform. CommonDialog1. filename , intFp End + 1 , i)
Call PmacSendLineA(0 , ″b″+ pro) ′指定要运行的程序号
End If
End Sub
由于PMAC 内存有限,几百K以上的大程序不能一次性下载运行,这个问题的解决依赖于循环运动程序缓冲区。循环运动程序缓冲区允许在程序执行期间对程序进行下载,并覆盖已经执行的程序行,这就能够连续执行比PMAC 的存储空间大的程序,并且实时下载程序行。
每个坐标系都有一个循环缓冲区,为了给一个坐标系创建一个循环缓冲区, 对该坐标系选址(&n) 发出DEFINE ROT{常量} ,其中{常量} 是存储器中缓冲区的大小,被定义的缓冲区在希望加载的程序执行点之前的距离应该有足够大的空间。
4.7 数控程序的译码
数控程序中G代码和M、T、D 功能指令由G代码解释程序、M代码解释程序、T代码解释程序以及D代码解释程序分别进行解释。这四个解释程序分别以运动程序PROG1000、PROG1001、PROG1002 和PROG1003的形式存在,在系统调试时由PMAC可执行程序PEWIN 将它们下载到PMAC 的固定内存中,在实际加工中被PMAC 自动调用。
PMAC将G、M、T、D代码作为子程序来调用,在解释程序中,可以针对特定的机床定制代码。在运动程序中遇到G3 代码时,将会调用解释程序PROG1000 ,跳转到行标为( 3×1000) 的解释代码行,如G17 将跳转到PROG1000 的N17000 行。例如:把G65 定义为螺纹加工循环, 则可以在PROG1000 中加入解释子程序“N65000...(螺纹加工循环运动程序)...RET”,然后在标准G代码程序中调用G65 即可执行螺纹加工循环。
4.8 内置PLC 功能的实现
PMAC自带的PLC功能,其工作原理同于在工业控制领域应用广泛的PLC ,都是以循环逻辑顺序来执行命令的。但它又不同于其它PLC ,它的编程方式不是其他PLC 的梯图编程,而是采用类似于BASIC等高级语言的编程方式,无须专用编程器,更加灵活、方便,易于存储、打印观看和调试,并且执行速度远超过普通PLC。
PMAC 的内装PLC 与NC 共用微处理器,利用微处理器的余力来发挥PLC 的功能,所以I/ O 点数较少。PLC 程序在这些方面都非常有用:监视模拟和数字输入,设置输出,发送信息,监视运动参数,执行命令,改变增益以及开始和停止运动。通过PLC 程序可以完全地对PMAC变量和I/ O进行操作,并且它具有非同步的特性,因此它能有力地协助运动控制程序完成任务。
5 结论
开放式数控系统是对传统封闭式数控系统的突破,是当今数控技术发展的趋势和研究热点,因此本系统的研究是一项跟踪国际数控发展前沿的工作。本系统现已调试成功,运行良好。经实践证明,该系统是一个可以用于生产的实用化系统,具有较强的设计和加工能力。