Qt环境下基于PMAC运动控制器的控制系统开发与应用*

2014-07-18 11:59李一雄刘建群陈新度高伟强王彩芳
组合机床与自动化加工技术 2014年1期
关键词:定位精度上位代码

李一雄,刘建群,陈新度,高伟强,王彩芳

(广东工业大学 机电工程学院,广州 510006)



Qt环境下基于PMAC运动控制器的控制系统开发与应用*

李一雄,刘建群,陈新度,高伟强,王彩芳

(广东工业大学 机电工程学院,广州 510006)

研究了用Qt工具设计开发的基于IPC+PMAC运动控制器的控制系统。首先设计了系统的硬件平台,介绍了IPC与下位机PMAC卡的Ethernet接口通讯方式,然后通过主界面操作完成了对各轴的运动控制,并实现了软面板上轴的手动、急停等功能,最后在实验平台上对控制系统的单轴运动进行了误差补偿,有效提高了系统的定位精度。实践证明该系统具有很强的扩展性,能满足工业生产要求。

控制系统;PMAC;误差补偿

0 引言

PMAC是美国Delta Tau公司遵循开放式系统体系结构标准开发的开放式可编程多轴运动控制器,可处理运动控制、逻辑控制、资源管理及上位机交互工作。一个PMAC拥有独立的DSP数据处理器,可以最多同时控制32个伺服轴,进行联动或者插补运算,并且开放通信端口、存储结构在内的大部分地址空间,增加了用户使用的灵活性。本文基于PMAC运动控制器,研究在Qt开发环境中实现四轴联动的CNC控制系统的开发。Qt是一个跨平台的C++图形用户界面库,支持Windows、Linux、Max OSX和handheld平台,拥有丰富的窗口部件集,具有面向对象、易于扩展等特点[1]。Qt信号和槽机制代替了MFC的消息映射,独立于所有的GUI事件循环,为用户开发界面提供了更为简单的通讯方式。

本控制系统是由IPC(工控机)、多轴运动控制卡(PMAC)、伺服驱动器、直线电机、激光尺,共同构成一个开放性很强的全闭环控制系统,本次软件系统的开发利用Qt丰富的GUI设计了符合实际需求和用户审美的人机交互界面,并通过实验平台的测试,利用PMAC的软件补偿功能提高了整个控制系统的定位精度,减小了定位误差。

1 硬件平台设计

本系统采用“IPC+PMAC运动控制器”的模式,IPC与Turbo PMAC Clipper采用Ethernet 接口方式进行通讯,PMAC与伺服驱动器的连接采用ACC-8ES- 4通道模拟量输出接口板,对驱动器输入模拟信号,来控制电机,并接收从驱动器反馈回来的脉冲信号。选择Kollmorgen的AKD-P00606-NBAN-0000型号驱动器和直线电机,RENISHAW激光尺,硬件连接原理图如图1所示。

图1 硬件连接原理图

2 PMAC卡与上位机的通讯

在开发中,利用Qt开发的上位界面与下位机的Turbo PMAC连接,在上位机发送指令后,通过判断、反馈来将轴的各种运动状态显示到界面上。Turbo PMAC提供了一个封装库函数的组件PcommServer[2],用Qt的dumpcpp工具在Window XP系统的命令提示符界面访问生成PmacDevice.h和PmacDevice.cpp的文件,生成的库函数里面的参数类型则都是Qt参数类型,然后将文件导入到工程中,在生成的.pro文件中添加CONFIG += qaxcontainer连接QAxContainer模块,最后在程序开头添加“using namespace PCOMMSERVERLib”,并定义 PCOMMSERVERLib::PmacDevice *Pmac指针,然后用指针来调用库函数。在运动控制的初始化函数中依次用PcommServer提供的SelectDevice()和Open()函数来选择并打开运动控制器。

在上位机与PMAC完成通讯后,需要对PMAC中相关变量进行初始化。利用PcommServer的库函数DownLoad()函数,下载配置文件,配置文件中包含对I变量的赋值以及特定的运动寄存器、轴寄存器等的M变量及其地址[2]。

3 运动控制

在下位机运动控制的实现包括在界面中对各轴的运行状态的控制和检测。本次设计的控制系统可以实现通过PMAC卡来控制X、Y、Z、B四轴的运动,在运动控制时主要实时更新的参数有各轴在坐标系中的实际位置、剩余进给、进给速度、主轴转速、进给速度倍率、主轴转数倍率、工件毛坯参数等,对于这些数据用Qt中一个继承于QThread的MonitorThread类对PMAC的运行状态进行监控,并将这些数据保存到一个新建的AllData类中。

3.1 运动程序设计

运动控制部分是整个系统的核心部分,在本系统中,主要分为上位机运动控制部分和下位机运动程序设计。

3.1.1 上位机运动控制

控制系统的运动控制模块包含了程序的下载、G代码的转换、语法检测、运行、暂停等功能。本系统的G代码程序编写格式以华中数控的数控G代码程序格式为标准,在加工运行之前将标准的G代码程序转换为PMAC可运行的加工代码。在PMAC运动控制器初始化后,可通过上位机操作完成对轴的运动控制。

在软件设计中,为了增强系统开发的可扩展性以及方便后续开发,利用了虚函数的多态性将接口与实现分离,用一个NVG_MotionControl的类包含所有基本的运动控制的函数,然后创建一个继承于该类的PMAC_MotionControl类实现具体的运动控制,然后在PMAC_MotionControl类中实现轴的各种运动状态控制的响应函数。代码如下:

class NVG_MotionControl

{

public:

AllData *data;

NVG_MotionControl(AllData *allData); ∥将所有参数传进来

virtual boolprogramRun(QString Gcode) = 0; ∥程序运行

virtual boolinitial() = 0; ∥初始化

virtual boolcloseMotionControl() = 0; ∥关闭运动控制器

virtual boolsystemStop() = 0; ∥停止运动控制器

virtual boolstatusGetItems() = 0; ∥状态获取

virtual boolprogramFeedHold(bool feedholdEnabled) = 0; ∥进给量保持

virtual boolprogramStart() = 0; ∥ 程序开始

virtual boolprogramPause() = 0; ∥ 程序暂停

virtual boolprogramLoad(QString filePath) = 0; ∥程序下载

virtual boolprogramStop() = 0; ∥程序停止运行

virtual boolisRunning() = 0; ∥检测是否在加工

................

};

通过在上位机上实时监控获取轴运动状态数据并更新,运动状态监控可以通过QT提供的QThread类来实现。在程序中,重载QThread::run()函数,在函数中,每隔采样时间用emit()函数发送一个monitorupdate()信号并调用NVG_MotionControl的成员函数statusGetItems(),statusGetItems()函数中利用PMAC提供的GetResponse()或GetResponseEx()函数发送指令并返回各种运动状态,系统的运动状态监控界面如图2所示。

图2 运动状态监控界面

3.1.2 下位机运动程序设计

图4 软控制面板功能图

数控机床用数字化的信息来实现自动控制,将加工零件有关的信息如切削加工的工艺参数和各种辅助信息用规定的文字、数字和符号组成代码,由数控装置经过分析处理后发出相对应的信号和指令控制机床进行自动加工。

Turbo PMAC的运动程序语言结合了RS-274标准G代码机床的编程语言,允许机床加工程序把G、M、T和D代码作为子程序调用,在运动程序中遇到首字母为G且有数字的时候,就将这个命令当做运动程序固定缓冲区PROG 10n0上的调用[3-5]。另外选择M代码使用PROG 10n1,T代码使用PROG 10n2,D代码使用PROG 10n3,大多数情况下打开缓冲区PROG 1000,PROG 1001,PROG 1002,PROG 1003就可以满足需要。

本控制系统对于G代码的处理包括G代码的语法检测、编辑、转换、执行等过程,G代码处理流程图如图3所示。

图3 G代码处理流程图

3.2 软控制面板的手动功能

PMAC拥有64个非同步执行的PLC程序(32个已编译的和32个未编译的),PLC程序下载后将I5=2,前台PLC关,后台PLC开,PLC程序会在后台不断循环扫描。PLC大部分的功能依靠触发已定义的M、P变量的状态,用IF、ENDIF、ELSE等判断语句,在触发成功后用command命令完成相应的指令,然后再将M或P变量的状态置为初始值。

手动控制的前进方式有两种,点动和定距移动。点动可以使机床在安全行程内自由移动;定距移动可以使机床推进一段用户预先设定的距离。当定距离移动按钮按下时,可选择相对或绝对的方式进给指定的距离。软控制面板设置旋钮区、手动按钮区来实现各轴的慢快速移动、定距离移动、回零、急停、倍率调整等功能,软控制面板功能图如图4所示。

在软件设计时,软控制面板上的各个按钮的响应函数都封装在一个继承于QMainWindow的MenualModel类中,当按钮按下或释放时,通过发送信号来响应槽函数。Qt的信号槽机制可以使多个信号响应同一个槽函数,将X、Y、Z、B四轴的点动响应和定距移动响应函数分别集中在两个槽函数内,响应两种不同的运动方式。

4 误差补偿

定位精度的高低用定位误差的大小来衡量。为了满足高速度和高精度的要求,PMAC提供了包括1维(1D)和2维(2D)的螺距补偿(丝杠补偿)、间隙误差补偿及力矩补偿功能。在执行补偿功能时将来自激光尺反馈的直线电机位置信息按照PMAC补偿表的格式制成补偿表下载到运动控制器里,PMAC通过取得源电机即取得补偿数据的参考电机的位置,在表内找到匹配的位置,从而将误差补偿值加到目标电机即需要补偿的电机上。补偿是在伺服环(伺服周期)内被执行的,以获得最大的速度和最高的精度。

以螺距补偿为例,根据测定的螺距累积误差,按照1/16脉冲单位计算应该补偿的量并转换为螺距补偿表的格式,在程序中定义螺距补偿表后将补偿表下载到PMAC卡,DEFINE COMP命令创建表,并将其分配给需要补偿的电机,然后使补偿表生效[6]。每个所测点补偿的脉冲数根据公式(1)计算得出,其中ni是补偿的脉冲数,Xi是补偿误差值,单位为毫米。

ni=(16×Xi)/脉冲当量

(1)

在实验平台上测试X轴补偿前后的定位精度,以单行程1D螺距补偿表为例,用激光尺反馈回位置信息,补偿的有效行程是300mm,补偿如下:

#1->10000X;定义电机1控制X轴,10000个脉冲走1mm

DEFINE COMP 10,3200000 ;320mm的行程,设置16个补偿点

-31 -75 -163 -209 -219 -254

-359 -410 -431 -448 -545 -601

-618 -649 -704 01维补偿,目标电机和源电机相同,补偿前和补偿后的定位误差分别如图5,图6所示。

图5 补偿前的定位误差

图6 补偿后的定位误差

通过补偿后定位误差从4μ减小到0.6μ,精度明显提高。为了更好的提高定位精度,减小定位误差,可以多次往返运动,将在所测点每次测得的补偿值根据公式(2)求平均值。

(2)

然后根据公式(3),公式(4)求得轴线单向定位精度,根据公式(5)计算正向标准差Si↑,负向标准差计算类似[7],其中n为测量总次数,i为测量次数,j为测量的点。

(3)

(4)

(5)

5 结束语

本文研究了在Qt平台上基于IPC+PMAC运动控制器的控制系统的开发。通过上位机的操作实现了对各轴的运动控制,并进行了运动仿真,在实验平台上利用激光干涉仪测得的补偿值对系统的单轴运动进行了补偿,有效地提高了系统的定位精度。通过实验证明本系统的开发能满足工业生产要求。

[1]JasminBlanchette,MarkSummerfield著,闫峰欣,曾泉人,张志强等译.C++GUIQT4编程[M]. 北京:电子工业出版社,2012.

[2] 郭鼓,李树军,徐永新等.一种基于PMAC的开放式数控系统的设计与实现[J].制造业自动化,2012,34(2):106-110.

[3] 白海清,彭玉海,何宁.基于PMAC的数控系统软件开发研究[J].机床与液压,2007,35(2):59-61.

[4] 刘恒娟.基于PMAC的开放式数控系统的研制[J].组合机床与自动化加工技术, 2004(10):84-86.

[5] 贾旭,卢晓红.基于PMAC的微铣床数控系统中G代码编译研究[J].组合机床与自动化加工技术, 2012(3):104-107.

[6] 张生芳,王永青,康仁科.基于PMAC开放式数控系统的定位精度控制[J].组合机床与自动化加工技术,2008(3):38-41.

[7] 欧阳航空.基于PMAC的精密定位控制系统的研究[D]. 上海:上海大学,2005.

(编辑 李秀敏)

Development and Application of the Control System Based on the PMAC Motion Controller Under Qt Environment

LI Yi-xiong ,LIU Jian-qun,CHEN Xin-du,GAO Wei-qiang,WANG Cai-fang

(School of Electromechanical Engineering, Guangdong University of Technology, Guangzhou 510006, China)

The control system based on PMAC motion controller was developed with Qt development tools . Firstly, this paper designed the hardware platform and introduced the means of communication between the IPC(Industrial Personal Computer) and the PMAC motion controller. Then, the motion control of each axis was completed through the main interface operation, and the jogging moves ,emergency stop and other functions were achieved through the soft panel .Finally,error compensation effectively improved the precision of the system in the experimental platform.It has been proved that the system is highly scalable and can meet the requirement of industrial production.

control system; PMAC; error compensation

1001-2265(2014)01-0114-03

10.13462/j.cnki.mmtamt.2014.01.032

2013-05-20

广东省引进创新科研团队计划资助项目(201001G0104781202),广东省数控一代项目(2012B011300046, 2012B011300070), 广东省教育部产学研结合项目(2012B091100023)

李一雄(1987—),男,湖北仙桃人,广东工业大学硕士研究生,研究方向为数控技术,(E-mail)liyixiong1987@163.com。

TH165;TG65

A

猜你喜欢
定位精度上位代码
GPS定位精度研究
GPS定位精度研究
要攻城略地关键要有好筹码,这匹水产动保“黑马”如何能迅速上位?
创世代码
创世代码
创世代码
创世代码
特斯拉 风云之老阿姨上位
高分三号SAR卫星系统级几何定位精度初探
基于ZigBee和VC上位机的教室智能监测管理系统