1 引言
数控系统作为数控机床的核心部件,其功能是接受载体送来的加工信息,经计算和处理后去控制机床的动作。随着数控技术的不断发展,传统数控系统由于其采用专用的、封闭式的体系结构,已不能适应当今制造业市场变化与竞争,也不能满足现代制造业向信息化、敏捷制造模式发展的需要。这就要求CNC 系统必须设法摆脱其传统的封闭模式,向开放式方向发展。我国在最近几年也开始进行开放式CNC 系统的研究,但就总体而论,国内开放式数控系统的开发还仅仅处于开始阶段,还没有具有自主知识产权的很成熟的系统。
为解决目前市场需求与封闭控制系统之间的矛盾、开放性不够的根本缺陷,本文研发了一套以PMAC 多轴运动控制器为核心的开放式数控系统,该系统能满足现代数控机床对开放式数控系统的要求。
2 PMAC 简介
美国DELTA TAU 公司推出的PMAC(Programmable Multi-Axis Controller) 全称为可编程多轴控制器,它是DELTA TAU 公司1990 年推出的基于工控PC机和Windows 操作系统的多轴、多通道开放式运动控制器。该产品提供了运动控制、离散控制、内务处理、同主机的交互等数控的基本功能。它本身就是一个数控系统,可以单独使用。它开放的函数库供用户在Windows 平台下自行开发构造所需的控制系统。它借助于Motorola 的DSP56001/ 56002 数字信号处理芯片,可同时控制1 ~ 8 个轴,它的速度、分辨率、带宽等指标远优于一般的控制器。它甚至可连接MACRO 现场总线的高速环网,直接进行生产线的联动控制。PMAC 共有四种硬件形式:PMAC - PC ,PMAC - LITE ,PMAC- VME 和PMAC - STD。
PMAC具有开放性的特点,给系统集成者和用户提供了更大的柔性,它允许同一控制软件在四种不同总线( PC 、LITE 、VME 和STD) 上运行,由此提供了多平台的支持特性,并且每轴可以分别配置成不同的伺服类型和多种反馈类型。
3 系统的硬件结构
CNC 的硬件采用“NC 嵌入PC”的开放式结构,如图1所示。主机采用工业PC 机箱和工控机电源,PC 主板使用普通商用主板,主频833MHz ,内存128M,硬盘30G,此配置足够使用户能使用各种系统软件以及各种大型CAD/ CAM软件。CNC的内核采用PMAC - LITE型运动控制器,以工业PC作为主机,工控机的CPU 与PMAC 卡的CPU 构成主从式双微处理器结构,两个CPU各自实现相应的功能,其中PMAC 完成插补运算、位置控制、刀补、速度处理、以及PLC 等实时控制; 工业PC 则通过调用Pcomm32 包函数库里的相应功能函数,实现数控系统的基本功能。PMAC 卡插于PC 机的ISA 总线槽中,接口卡对CNC 控制信息、反馈信息以及PLC 控制信息由进行信号转换及隔离。为了实现PMAC多轴运动控制的功能,还需在PMAC板上扩展相应的I/ O 板、伺服驱动单元、伺服电机、编码器等,最终形成一个完整的控制系统。
图1 数控系统结构图
4 系统的软件设计
在Windows2000 操作系统下,以Visual Basic6. 0为开发工具采用面向对象的编程方法,充分利用控制卡配套的动态链接库中的函数,对开放式数控系统软件进行了开发,实现了数控系统的基本功能。具体实现的功能包括:Windows 风格的人机接口界面、系统初始化预处理、工作方式的选择、手轮跟踪进给、机床状态的监控、坐标位置和转速的实时显示、加工程序段及轨迹图形跟踪显示、运动程序的编制及下载,数控程序的译码、内置PLC功能等。系统软件主界面如图2所示。
图2 系统软件主界面
4.1 系统初始化
系统的初始化在系统主界面窗口调入的过程中完成,主要进行PMAC 卡参数的预置、电机返回原点以及与服务器建立TCP/ IP 连接。初始化子过程如下:
Private Sub Form load() Call OpenPmacDevice (0) ′起动PMAC 卡 Call PmacFlush(0) ′清空PMAC 内存缓冲区 Call PmacDPRControlPanel (0 , 1) ′置控制面板功能 Call PmacSendLineA(0 , ″# 1j/ # 3j/ # 4j/ # 1hm # 3hm # 4hm″)电机闭环控制并返回原点
tcpclient. RemoteHost = ″192. 168. 142. 10″′指定远程主机 IP 地址 tcpclient. RemotePort = 1000 初始化端口 tcpclient. Close 关闭连接 tcpclient. Connect ′请求与主机连接 End Sub
4.2 工作方式的选择
本系统设有7 种工作方式,Auto 、Mdi 、Step 、Handle、Rapid、Jog、Home。各种工作方式间实现了互锁,系统不能同时工作于两种方式下。在机床运行期间,方式选择无效。图3 所示的是方式选择的程序流程图。方式选择的实现使用了一组OptionButton控件,使用Case 语句触发各方式,并利用PictureBox控件使用贴图的方式点亮所选工作方式。方式选择之前使用条件判断语句确定机床是否处于程序运动状态,若是,屏蔽方式选择操作。
图3 工作方式选择流程图
4.3 手轮跟踪进给( Handle)
手轮直接连接PMAC 的控制面板(Control Panel) 接口J2 ,接好手轮的四个端子:HWCA、HWCB、+ 5V、GND。关闭伺服,摇动手轮,ENC2 的坐标值稳定均匀变化。
手轮脉冲编码器必须占用一个码盘信号输入口,跳上短接块E22 和E23 , 手轮输入就连接至PMAC 的第2 编码计数器ENC2 ,ENC2 上不能再接任何其它编码器,而且要保证跳线E26接在1、2 脚上。
控制面板的输入使能由参数I2控制,设置I2=0 ,启动控制面板输入功能。
控制面板各输入点原始状态位都为1,当前轴的选择由选择位FPD0~ FPD3通过外部轴选择开关指定,如表1所示。
4.4 机床状态的监控、进给轴坐标值和转速的实时显示
这里利用了Timer 定时器控件。系统的每坐标每轴的状态以及各种参数变量都存在PMAC 内存中,分别用M变量去指向各状态,可通过操作M变量进行状态的读取和参数的写入以及完成I/O口的控制,部分程序代码如下:
Private Sub Timer1 Timer () Dim limit1p ,limit1n ,imit3p ,limit3n , limit4p , limit4n As String Dim PosX, PosY, PosZ, responsex , responsey , responsez As String 3 255 If tcpClient. State = 7 Then 若已与主机通讯连接,网络指示灯闪烁 If Picture12 = LoadPicture () Then Picture12 = LoadPicture (E: \ . . . . . . \ red. bmp) Else : Picture12 = LoadPicture () End If End If Call PmacGetResponseA(0 , limit1p , 2 , m121) 读取极限状态 Call PmacGetResponseA(0 , limit1n , 2 , m122) If Val (limit1p) = 1 Or Val (limit1n) = 1 Then If Picture6 = LoadPicture () Then Picture6 = LoadPicture (E: \ . . . \ red. bmp) ′指示极限状态,红灯亮 End If Else : Picture6 = LoadPicture () End If Call PmacGetResponseA(0 , PosX, 255 , ″m162″) 取# 1 位置实际值 Poslabel (0) . Caption = Format (Val (PosX) / 4000/ 32/ 96 , ;# # # # 0. 000″) ;将单位转换为mm Call PmacGetResponseA(0 , responsex , 255 ,m166″) 取# 1 实际速度 Speedx. Text = Format (Val (responsex) 3 8388608 /3713707 3 60 / 24 , # # # # 0. 000″) rpm
. . . . . . End Sub
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 结论
开放式数控系统是对传统封闭式数控系统的突破,是当今数控技术发展的趋势和研究热点,因此本系统的研究是一项跟踪国际数控发展前沿的工作。本系统现已调试成功,运行良好。经实践证明,该系统是一个可以用于生产的实用化系统,具有较强的设计和加工能力。
(审核编辑: 智汇张瑜)