最新新闻
我要投稿
联系电话:027-87592219/20/21转188
投稿邮箱:tb@e-works.net.cn
您所在的位置:首页 > 智库 > 智能装备

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

发布时间:2014-06-17 作者:王彩芳 刘建群 高伟强 李一雄  来源:万方数据
关键字:PMAC V沟机 数控软件 
在windows平台上利用QT4.8图形界面开发工具,调用PMAC的库函数,开发V沟机的数控软件。论文介绍了QT与PMAC的通讯方法,软件主界面的设计和实现,系统的初始化,NC代码的编译,自动、手动、回零等CNC控制功能,三维图形的显示和模拟仿真。并详述了系统的参数设置,V槽参数化编程模块的实现过程。初步完成了V沟机数控软件应用程序的开发。

  2.2 数控软件主界面设计

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

图2人机接口界面
图2人机接口界面 

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

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

图3软件功能模块
图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()函数。其中G代码的编译流程图如图4所示。

图4 G代码编译流程图
图4 G代码编译流程图 

  另外,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代码的三维模拟仿真,使系统具有良好的实时性、交互性以及三维图形显示能力。

本文为授权转载文章,任何人未经原授权方同意,不得复制、转载、摘编等任何方式进行使用,e-works不承担由此而产生的任何法律责任! 如有异议请及时告之,以便进行及时处理。联系方式:editor@e-works.net.cn tel:027-87592219/20/21。