基于QT+PMAC的V沟机数控软件的开发

来源:互联网

点击:2357

A+ A-

所属频道:新闻中心

关键词:PMACV沟机 数控软件

    0 引言

      随着近年来光纤通讯行业的迅猛发展,对光纤产品的质量要求越来越高。光纤连接器用于光纤之间的对接,其主要组成部件是V型槽结构。V型槽结构作为连接光纤的微光学器件,其加工精度直接影响着光纤连接器的性能。通常V型槽的加工精度由槽的倾斜角、表面粗糙度、直线度等来衡量。为了实现V槽的亚微米级的加工精度,需寻求一种最为有效的加工方式。目前V型槽阵列的加工方法主要有三种:湿法腐蚀,压膜,超精密加工。利用超精密机床对V型槽进行磨削加工,是实现其高精度的一种非常有效的方法。

      超精密数控系统作为超精密数控机床的控制核心,也是加工V型槽阵列需要重点研究的环节。QT是C++图形用户界面应用程序框架,具备艺术级的图形界面开发功能,QT的良好封装机制也使得QT的模块化程度非常高,可重用性较好。PMAC则是功能强大,市场定位较高的一款控制器。本课题在上位机上借助QT开发工具,调用Turbo PMAC clipper提供的PcommSeRer Pr02:Lih岬库函数,开发了V型槽加工机床的数控系统软件。该软件不仅实现了优越的人机界面功能,还能根据V槽的关键参数自动生成NC代码并检测代码的正确性,并能对系统的参数进行规范的数据库管理,以及进行V槽加工过程的三维模拟仿真,可视化强。同时,软件也实现了系统的CNC运动控制功能。针对这样一款专门应用于V型槽阵列加工的软件,它的实用性,市场需求度都是不言而喻的。

    1 V沟机数控系统的硬件设计

      系统硬件结构主要包括:研华工控机,Turbo PMAC Clipper多轴运动控制器,端子板,KOI工MORGEN AKD.P系列驱动,气浮主轴,KOmMORGEN直线电机,ReniShaw光栅尺,气浮工作台,配以其他的I/O等辅助设备。


    2 V沟机数控系统的软件开发

      V沟机数控系统具有普通数控系统的数控加工、系统诊断、数据采集等功能。同时还应具有本身特殊的功能,即根据V型槽的关键参数以及加工工艺自动生成NC代码,将代码下载至PMAC控制器中,从而进行加工。整个软件开发过程包括:软件功能的设计以及功能模块的划分,人机界面的设计,各功能模块的编写和调试,整个应用程序的集成、调试和运矧引。在访n(10ws7操作系统下,利用QT4.8开发工具,通过调用PcommServer Pr02 Library库函数,实现软件的编写和系统的控制功能。

      2.1 建立QT与PM渔C的通讯

      基于QT+PMAc的开放式数控系统,其开放性既体现在软件上,又体现在硬件上。QT提供了非常强大的图形用户功能,允许用户根据自己的需要开发人机交互界面;PMAC运动控制卡则提供了多于400个运动相关的函数,实现数控系统插补、前瞻、补偿、伺服算法、联动功能等各种控制功能。

      PcommSenrer Pm2“bEary是PMAC为在Windows系统下开发人机界面提供的动态链接库。它是基于COM组件的形式提供的,用户通过安装PMAC Executive pr02 suite软件包,在系统盘里可找到pcommserver.exe、pcomm32w.dll、pcomlIl32w.1ib等文件,但并没有提供库的头文件,因此不能用一般的显式隐式来调用。那么要在QT中调用库函数,就必须知道QT如何调用COM接口,下面说明其调用方法。

      QT提供的QAxContainer模块,该模块允许使用COM对象,以及在QT应用程序中嵌入ActiveX控件。它提供了2个类:QAxwidget(Qwidget的子类,作为ActiveX控件的容器)和QAxObject(QWidget的子类,易于访问非可视化COM对象)。本次开发中采用生成命名空间的方式来调用cOM对象的APIs。具体操作流程如下:

      (1)通过VC++6.0中的Tools工具条中的OLE/COM object viewer选项,查找类型库,可查得pcom—mserver.exe的类型库ID{50ECCF67-B73C-431B-A53D-9EDDAF3CE611}

      (2)叫提供了一个名为d啪pcpp的工具可以为想要访问的类型库生成一个c++名空间,将dumpcpp工具所在的bin目录添加到系统路径中。

      (3)运行命令提示符,在用户名后输人命令:dumpcpp-n PCOMMSERVERKb{50ECCF67-B73C-431B-A53D-9EDDAF3CE611}。运行后,会自动生成两个文件:ponmmserverHb.cpp和ponmmserverlib.h。

      (4)在QT应用程序的.pm中添加“CONnG+=qaxcontainer”,并添加上述导出的头文件和源文件。通过包含头文件“#include ponmmserverlib.h”和在程序开头使用“using namespace PCOMMSERVERLib;”语句,并定义“PCOMMSERVERLib:PmacDevice*Pmac”对象指针,利用Pmac即可调用运动库函数。

      2.2 数控软件主界面设计

      利用QT优越的图形界面设计功能,实现人机接口界面如图2所示,界面实现:坐标、速度、状态、程序的显示,三维图形的显示和模拟仿真,自动加工信息处理,文件的管理,零件尺寸、系统、伺服、砂轮等参数设置,MDI,G代码编译,错误诊断等功能。整个界面秉承了设计友好,操作简单,交互性好的原则。

      2.3 各功能模块的设计和开发

      数控软件作为整个数控系统的核心组成部分,功能众多。为了使数控系统易于维护,具有可重构性、可扩展性,采用模块化设计方法。

      (1)系统的初始化

      建立injtial()函数实现控制器的初始化,首先调用SelectDevice(int hWiIldow,im&pdwDe、rice,bool&pbsuccess)函数选择设备号,调用后会弹出设备选择对话框,选择PMAC 00,点击OK按钮。然后,调用open(int&pdwDevice,b001&pbSuccess)函数打开运动控制器,若PC未连接卡或通讯出现异常则报错,另外系统关闭时需调用close(int&p“Device)关闭控制卡。

      (2)系统设置及处理下载系统的配置文件,如I、M、P、Q变量配置,G代码的解释程序,监控的PLC程序以及其它的特殊的参数设置。

      (3)NC文件的读取、编译、下载

      对系统进行设置完成后,打开并读取加工文件,然后对其进行编译,编译成功后下载至运动控制器,下载文件到控制器时使用:D响rIlload(int dwDevice,constQString&fileP讪,bool bMacro,b00l bM印,bool bkg,b001 bDmd,bool&pbSuccess)函数,该函数在使用时需要注意参数:①filepatll指的是绝对路径,相对路径无法识别。②bDIlld代表是否下载,所以需要置为tme,否则,不能成功执行。③执行多个DowIlload命令需要中间调用Sleep()函数。

      另外,PMAC虽然支持G、M、D、T代码,但是需要按照要求的格式来预先对各种代码进行解释,PMAC在执行上述代码时会自动转去调用相应的子程序(即解释程序),例如:执行G01会自动调用PROGl000的N1000行,执行M03会自动调用豫OGl001的N3000行,其它类似。

      (4)自动加工、手动运行、回零等功能的实现下载编译完加工程序文本,通过调用GetResponse(0,”&1BlR”,pAnswer)使程序自动连续运行,同样的对于单步运行、暂停亦可通过该函数发送命令“S”、“H"。GetResponse(int dwDevice,const QString&question,QString&pAnswer)相当于万能函数,它能直接向控制器发送指令,而pmac自带类似Basic的语言,两者结合使用。手动功能的实现通过发送手动命令“#nJ+”或“#nJ-”(n为电机号),回零发送回零指令“#nHM”,该函数执行成功则字符串pAnswer为空,否则会报错。若要发送控制符指令,则利用GetcontmlRe—sponse(int dwDeVice,int number,QString&pAnswer)函数,number代表控制符的ASCII码的十进制值。在编写软件时,利用GetRespo璐e函数直接发送指令,同在PMAC自带的PEWIN32软件终端窗口操作类似,通过变量、命令和程序三者相互配合,完成运动控制、过程控制和主机通信等任务。

      (5)坐标、速度、状态的实时显示开设一个监控线程类MoIlitorThread,实时获取系统的状态反馈并显示。在一个statusGeⅡtems()函数内调用GetResponse()函数获取位置、速度、行号等程序信息,并将获取的信息传递给对应的全局变量。线程启动时就调用stamsGetItems(),设定多长时间获取一次数据,获取完一次则发送信号,激发updatedata()槽,使得显示在编辑框中的信息随之更新。

      (6)基于OpenGL的三维模拟仿真Qt提供的QOpenGL模块,轻松地实现了在应用程序中使用openGL功能,建立基于OpenGL交互控制的虚拟数控机床加工仿真系统,实现G代码的三维模拟仿真,使系统具有良好的实时性、交互性以及三维图形显示能力。

      (7)工艺参数、系统参数、坐标系设置参数的有效管理

      建立基于Micros硪Omce Access(微软数据库管理系统)的数据库表格,通过QT提供的Qtsql模块以及QODBc驱动来实现对数据库文件的访问和操作。要执行数据库的各种操作,必须首先建立数据库模型QSqlDatab鹊e的一个对象,拥有一个QSqlDatabase对象代表着拥有一个数据库的连接,在一个已经打开的QSqlDatabase对象上,就可以执行各种数据库操作。创建一个QSqlDatabase对象的方法是使用QSqlDatabase类的静态函数addDatab鹊e,而打开这个数据库连接,则需要先设置数据库的DSN(Data S0urce Name),DSN的设置是通过成员函数setDatabaseName完成的。在QODBc中,DSN选用”DRIVER={Microsoft Access Driver(术.mdb)};FIL={Ms Access};DBQ=Xxx.mdb”字符串的形式提供。部分代码如下:

      QSqlDatabase db=QSqlDatabase::addDatabase(”QODBC”);  ∥建立一个数据库连接并指定驱动  QString fliePatll=”..\CNCnew\Test.mdb”;∥指定数据库相对路径  QString dsn:QString(”DRIVER={Microsoft Ac—  cess Driver(宰.mdb)};”  ”FIL={MS Access};DBQ=%1”).argfniePatll);∥设置dsn  db.setDateName(dsn);∥设置数据库名字  db.open();∥打开连接

      完成连接后即可用QsqlTableModel类来访问数据表,用record(),values()函数获取相应记录的字段值。  (8)V沟槽的参数化编程

      最后,将生成的G代码用正确的格式显示到文本框,并以PMAC能下载的格式保存在.pmc类型的文件里。

    3 软件测试

      连接好设备,在PC上运行软件,打开参数设置页,设置好系统、坐标系等参数,将要加工的V槽的关键参数输入到工件参数设置页,点击相应的功能按钮自动获取NC代码,同时,可以对代码进行保存、编辑、修改、删除等操作,选择代码文件,点击编译按钮,实现NC代码的自动编译,编译通过,方可运行。运行程序之前,根据成功编译的代码来进行三维模拟加工仿真,页面可以实现仿真速度的设置,以及单步、多步测试。整个过程操作非常简单,根据按钮选择相应的功能。程序运行正常,控制精准。

    4 结束语

      采取QT+PMAC的模式,初步设计和开发出了V沟槽加工数控系统软件。软件实现了界面友好,操作易行的人机交互功能,并集成数控系统各个模块,完成了从初始化、参数设置、加工文件处理、运行、显示及错误警告处理到三维模拟仿真的各种功能,整个程序采取模块化设计,可扩展性强,易于维护。


    (审核编辑: 智汇胡妮)

    声明:除特别说明之外,新闻内容及图片均来自网络及各大主流媒体。版权归原作者所有。如认为内容侵权,请联系我们删除。