QT+Linux+Microblaze实现的三轴数控系统

电子说

1.2w人已加入

描述

高速化、高精度、低成本、小型化数控控制系统已经成为数控机床加工行业的发展趋势。本文提出QT+Linux+Microblaze的设计方法,由QT设计人机交互数控加工软件,以供绘制加工所需的图形以及获得图形数据,将此软件通过Linux向Microblaze移植;加工数据信息通过UART发送给下位机数控加工模块;在下位机FPGA模块上配置出UART模块、插补IP核以及脉冲发生IP核,最后控制三轴电机联动走出需要的加工轨迹。简要介绍了项目的背景和设计原理,详细说明了系统中三个最主要的部分:三轴数控驱动模块,抗干扰自适应波特率UART模块,基于QT的加工作图上位机软件,并给出了这三个模块的各自功能效果,最后分析了该项目的改进方向以及应用前景。实验证明,该系统非常适合当今数控行业对控制模块的运行速度、加工精度和体积的要求。

1项目背景及简介

数控机床广泛应用于国防、航空航天和国民经济各个部门,是自动化加工行业中最基本的装备,也关系到国家的安全和工业生产能否健康地增长。突破国家装备制造业发展的技术瓶颈,高速、高精度的数控机床要先行。嵌入式系统在功能、可靠性、成本、体积、功耗等方面的巨大优点,已使它逐渐被广泛应用于具有高速化、小型化需求的数控加工控制系统。

目前的中高档机床的数控加工系统的载体是以由传统PC机衍生出的工控机为主,而一些小型数控工作装置的控制系统则主要是PC机(上位机)+下位机的控制方式。第一种方法,由于采用了类似于PC机顺序执行命令代码方式,限制了加工速度的提高,尤其是现代加工行业对加工精度的高要求导致了大量传感器及其外围电路的应用,这就需要系统CPU具备高速运算处理的能力。第二种方法,由于需要在下位机和上位机之间频繁的传送数据,外围电路比较简单,难于外接较多的辅助传感模块,主要应用于对加工精度和速度要求均不高的数控装置。

针对数控机床控制系统的需求和现状,本文提出并进行相关实验验证了以QT+Linux+Microblaze的数控控制系统设计方式,利用QT美观的图形界面及其良好的绘图功能,进行数控加工软件的设计,用于绘制加工图形,并获得图形数据;结合Linux的移植能力,将QT数控软件先在Linux中运行通过,再移植到Microblaze(考虑到芯片无PowerPC,移植入PowerPC效果可能将会更好);最后由Verilog HDL语言编写的并行执行模块根据加工图形数据控制数控设备。本方案将兼具高速运算处理能力以及图形化友好操作界面。

2系统实现原理及总体设计

系统实现原理如图1所示,左侧虚线框表示原先设计方案即QT编写的数控加工软件通过Linux开发工具最终移植到Microblaze处理器,由于我们团队还未能成功实现Linux向Microblaze的移植,所以将QT数控软件放在PC机上运行实现,由PC机与FPGA模块通过串口交换数据。FPGA内部的功能模块以及外围所需控制的器件如图1所示。

Linux

图1系统实现原理框图

本文所述系统的总体设计框图可以表示如图2所示。

图2 总体设计框图

图3 系统硬件平台

图4 系统软硬件配合工作图
 

  3系统主要模块设计及实现功能

  由图2可知项目涉及到的系统主要由三大部分组成:下位机部分由FPGA处理器配置出三轴数控驱动模块;用于上位机和下位机通信的抗干扰波特率自适应UART模块;基于QT设计的数控加工软件。为了体现出系统的处理速度优势,各模块的设计均采用Verilog HDL语言设计。

  3.1 三轴数控驱动模块设计

  该模块主要具有插补计算功能和脉冲发生功能。该模块通过UART模块获取信息,先判断图形形状(目前能加工出正方形、任意角度的折线以及圆弧),然后提取出图形尺寸信息如边长(起始点)、角度、弧度、半径等信息,进而计算出X、Y轴的运行方向、运行的总位移以及脉冲数,接着驱动脉冲发生模块工作发出脉冲控制三轴电机,最终走出加工所需要的轨迹。

  直线插补方法:逐点比较法是一种代数运算,其特点是能逐点计算和判别运动偏差,并逐点就在以逼近理论轨迹。逐点比较法的理论误差是一个脉冲当量。

  整个插补过程中没走一步需要完成四个工作节拍:(1)偏差判别,判别当前运动点偏离理论曲线的位置。(2)进给控制,确定进给坐标及进给方向。(3)新偏差计算,计算新的偏差值。(4)终点判别,线段均有终点。结束,则停止插补;否则,继续插补进给,重复(1)~(4)工作节拍。直线插补示例如图5所示:

  

Linux

  图5 直线插补示例

  圆弧插补和直线插补类似,每走一步也分四个工作节拍: (1)偏差判别,X2+Y2=R2;令Fi=X2+Y2-R2(i=0,1,2,…,N);Fi=0,点在圆上; Fi《0,点在圆外;Fi》0,点在圆内。(2)进给控制,当Fi≥0时,进给-ΔX;当Fi《0时,进给ΔY。(3)偏差计算,①进给-ΔX后, Fi+1=(Xi-1)2+Yi2-R2= Fi -2Xi+1;②进给ΔY后,Fi+1=Xi2+(Yi+1)2-R2= Fi +2Yi+1。(4)终点判别,计数长度法,令M=|X|或者|Y|,这样X方向(Y方向)每走一步,M就减1;双向计数法,令M=|X|+|Y|,这样X方向或Y方向每走一步,M就减1。圆弧插补示意图如图6所示。

  

Linux

  图6 圆弧插补示意图

  

Linux

  图7 三轴数控插补加工设计界面

  3.2 抗干扰自适应波特率UART模块设计

  本文利用电路板上的UART进行下位机与上位机之间的通信。通用异步收发器(UART)常运用于多MCU的总线通信系统中进行数据交换。为了应对多种波特率通信需求,本文设计了一个波特率自适应UART,UART模块可以根据通信需求自动改变下位机波特率,波特率更新过程如图8所示。根据上位机按新波特率发送的特殊数据(该字节数据保证2bit高电平,如0x18H),UART接收到此数据后即可计算出新的波特率,并更新自身波特率与上位机通信波特率,表1列举了采用该方法计算出的波特率值与理想波特率的误差值。目前利用FPGA设计UART多采用16倍频码元中部采样法,即对一个码元采样16次,将中间采样作为本码元的有效电平,这样可以消除边缘噪声的影响,但是没能解决随机噪声问题。码元受到噪声干扰示意图如图9所示。对于UART抗干扰问题,常用16倍频码元中部采样法抗随机干扰差,本文设计引入数字相关器对UART进行抗干扰设计,并采用流水线设计方法对数字相关器进行了优。图10所示为两位数字相关器运算数据流图。实验表明该方法设计的UART具有灵活、可靠的优点。

  

Linux

  图8 波特率变更流程图

  波特率(bit/s)分频计数值误差

  240026030.0448%

  96006510.16%

  192003250.16%

  115200540.4672%

  200000310.8%

  500000124%

  65000096.4%

  

Linux

  图9 含噪声干扰码元采样示意图

  表1 各波特率误差表

  

Linux

  图10 相关器运算数据流图

  图11、图12、图13表示波特率自适应过程,并能以新的波特率正常通信。

  

Linux

  图11 串口调试助手显示及数码管显示(波特率9600bit/s)

  

Linux

  图12 发送06H通知下位机改变波特率(新波特率115200bit/s)

  

Linux

  图13 以新波特率正常通信(波特率115200bit/s)

  3.3 基于QT的加工作图模块设计(上位机部分)

  利用QT软件良好的界面效果来设计数控加工软件。可以在这个软件界面下绘制加工图,如图14所示:

  

  图14 数控加工软件界面

  在图中,先绘制出加工图,目前可以绘制直线、折现、四边形、圆等图形,然后点击菜单栏中“机械加工”,则软件会自动提取图形的起点、折点或者凸点、终点以及每个加工段的插补值,然后通过串口发送给下位机。

  如图13和图14所示,下位机驱动三轴电机在布上(下面是海绵)画正方形,因为海绵会变形,所以轨迹不是笔直的。

  

  图15 图16

  4 结论

  本项目利用了嵌入式体积小的优点,结合QT良好的界面效果设计了一套简易数控加工系统。由于未能成功将QT软件移植到Microblaze,故在上位机运行QT数控软件,获得加工信息后将有关数据发送到基于FPGA处理器的下位机,进而控制三轴数控平台进行加工。将FPGA器件用于数控加工,可以有效解决目前由于运算速度低带来的加工技术瓶颈(由于目前数控处理器运算不高,部分计算量较大的提高加工精度的算法未能付诸应用),可以促进FPGA在数控加工领域的应用。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分