当前位置: 首页 » 行业资讯 » 技术资料 » 正文

基于FPGA实现的多轴数控雕刻机系统

放大字体  缩小字体 发布日期:2016-01-22  来源:中国极速体育排球_jrs手机直播_jrs直播的网址网  作者:[db:作者]  浏览次数:105
核心提示:  众所周知步进电机有起动频率和运行频率两个参数,要使步进电机能够正常起动又能够达到设计要求的运行速度,以提高加工效率,就要有电机加速、恒速、减速的过程。传统的利用单片机来控制步进电机,由于单片机资源

  众所周知步进电机有起动频率和运行频率两个参数,要使步进电机能够正常起动又能够达到设计要求的运行速度,以提高加工效率,就要有电机加速、恒速、减速的过程。传统的利用单片机来控制步进电机,由于单片机资源有限,通常选用查表法。查表法就是将相邻脉冲之间的时间间隔放入一张表中,每发一个脉冲就依次从表中取出相应的延时数据,从而使步进电机实现变速。查表法控制简单,但控制不够灵活,在最大速度或者加速度改变以后都要修改延时数据表,丨工作量很大。

  在数控雕刻机系统中,还常常涉及到平面上两轴(x,y)连动和空间的三轴(x,y,z)连动的问题,传统的做法大多是找到三轴中的长轴,对长轴进行调速,然后用:数字积分法(DDA)完成空间直线的插补,以实现多轴连动。直线插补法在该领域应用广泛,为了方便起见,在很多雕刻文件中各种圆弧或弧线都用很短的一段直线来拟和,但是用传统的单片机来完成雕刻直线拟和的圆弧或弧线时,在编程中涉及到长短轴的频繁切换,较难实现三轴连动的整体速度控制,以至于在雕刻过程中存在运动不流畅,加工效率不高,噪声大等问题。丨本文将重点介绍一种基于FPGA来完成的一种灵活的空间直线插补的速度控制算法,可以任意的改变初速度、加速度和最大速度,并且很容易的控制三轴连动时的整体速度,在圆弧或弧线加工、字体沟边时,雕刻动作连续,提高了加工效率,降低了噪声。

  1前期数据预处理要对待加工的数据文件进行前期的数据预处理,用常用的雕刻软件一般都能得到待雕刻的数据文件,数据文件一般是以每段直线x,y,z三轴的绝对坐标形式给出。

  将前后对应的x、y、z三轴的绝对坐标值对应相减,以得到整个文件中每条直线在x、y、z方向上对应的绝对长度。

  算出每条直线的矢量长度1,对于x、y两轴连动有:l=!x+y;对于x、y、z三轴连动有:1(4-4.1,4-1-电)有较大变化时5°)为每大段直线的分界点,然后求出该大段连续运动的线的矢量合S.假设由上述标准划分的一大段数据中有n条小的直线li、12ln,则该S的长度的脉冲数Ps为:PS="P1i;这样数据的预处理便完成。虽然看上去比较繁琐,但是明白基本原理后在PC机上用VC或VB编程可以很容易的完成,而且还可以直接放到MCU上来完成,在MCU通过USB接口读入数据的过程中就可以通过对MCU的编程来完成这个数据的预处理过程。

  其实,求e和4仅仅利用它们来完成对整个数据文件的分段,以确定可以合并哪些数据来进行连续的运动,分段完成后的和便可舍去,以减小文件的数据量。假设待雕刻的数据文件由下图生成,那么数据处理过后整个数据就被分成了3个可以连续运动的加减速段即:Si、S2、Sb且Si=1i,S2=l2+l3+1(n.i),S3=1n.那么在整个雕刻过程中,只会在Pi和P2这两个地方停顿,虽然整个半圆是由12到l(n-i)共n-2条短直线拟和,但画整个半圆的雕刻过程中将会很流畅的完成,而不会出现停顿。

  2MCU和FPGA之间的数据传送经过前期数据处理过后,我们已经得到每个具有完整加减速段的脉冲数Ps,和每个小段的脉冲数Px、Py、Pz、Pl,这些数据由MCU通过USB接口读入SDRAM后再送给FPGA执行。而初速度v.,加速度a(该系统采用的是设定恒定加速度的加减速方式),以及设定加工速度即最大速度则从键盘输入,通过MCU显示到液晶屏上,并通过i6位的数据总线送给FPGA.最终送入FPGA执行的数据,由原始的每小段的转换成Px、Py、Pz、Pl、Ps.MCU和FPGA的数据传送通过i6位的数据总线来完成,通过对FPGA的编程,生成一级数据缓存,当ARM检测到缓存为空且自身有数据要向FPGA传输的时候,MCU便向FPGA的缓存中写入下一小段数据,其接口方式相当于MCU在读写一个外部存储器。当FPGA的下一级功能执行模块完成其功能处于空闲状态时,如果缓存中有数据就立刻来执行,并清空缓存,MCU继续送下一段数据。缓存的作用不仅方便MCU和FPGA的数据传输,并且i6位由总线送入的数据全部转换成并行的数据后等待FPGA的下一级功能模块的读取,大大缩短了FPGA的下一级功能模块读取并开始执行下一小段数据的时间,消除了FPGA执行完当前数据后等待MCU再次送下一数据的时间,在FPGA中对前后两段数据的衔接处理可以完全看成是连续的,以至于对外部电机的连续运动不会造成丝3用FPGA设计与DDA插补的定制功能:电路用Ps来完成对一个完整减速大段的调速,然后用数字积分插补法(DDA),在每个小段中通过P1来对Px、Py、Pz进行插补完成对x、y、z三轴输出脉冲,实质可以看成是:将以前常用的对长轴(即x、y、z三轴中的最长轴)进行调速,演变成对每条直线的矢量方向轴进:行调速,然后通过DDA插补完成在x、y、z三轴上的速度分解。这样做的优点是可以以一个合成的矢量速度来处理每个具有完整加减速段的S的运动,然后利用DDA插补自动功能完成在x、y、z三轴上的速度分解,并且:避免了传统找长轴进行DDA插补的方法中找长轴的过程,和每条直线上矢量速度不一致的问题。同时,正如在前期数据处理中讲到的以>5为界来确定一条具有完整加减速段的S,就是为了防止在以同一矢量速度运行的过程中,前后两条小直线的夹角变化较大的话,在前后两条小直线切换时,分解到x、y、z三轴上的速度分量的变化可能就比较大,以至于电机的速度跳变就可能很候我们就以>5为界,当大于5时整个运行的矢量速度就降为零,即让x、y、z电机停下来,然后再重新加速,以避免电机在前后两条小段直线切换的过程中可能突然:出现的较大的速度跳变,而小于等于5时,我们就可以认为以同一个矢量速度切换时分解到x、y、z三轴上的速度的跳变并不大,没有减速和停下来的必要,以同一个矢量速度来进行切换对电机来说是完全可以承受的,不会出现丢步或过冲。正如我们加工圆弧时,前后两两小直线的夹角都相当的小,我完全可以通过上述方法把拟和整个圆弧的所有小直线全加起来构成一个S,然后在整个S上调速(即进行加速,恒速和减速的过程),然后用S的矢量速度来完成对整个圆弧的加工。这样加工过程很流畅,不会在每一小段直线上都出现加减速和停顿的现象,并且噪声小,加工效率也很高。

  :在FPGA中如何不用查表方式来实现恒定加减速的过程,实现对S进行调速。

  在步进电机的数字控制系统中,其位移量总是以脉冲的个数表示的,每个脉冲代表一定的位移量,通常称之为脉冲当量,用5表示。脉冲当量可以通过传动丝杆的螺距,一个脉冲驱动步进电机走的转角和步进电机驱动器的细分度等参数来换算得到。起跳频率f,加速度a,设定加工速度即最大速度都可由键盘设定,并且I通过起跳频率f我们可以得到初始速度:v=笔者使用的FPGA的时钟晶振为40风那么每个时钟周期为25ns,为了运算方便我们以100ns为一个极小的时间段At,即4个时钟周期。由于前期对数据进行了预处理,FPGA会得到加速度a初速度v、加工速度v、一条具有完整加减速段的Ps和其中每条小段直线的Px、Py、Pz、P1.值得注意的是:Px、Py、Pz、P1、Ps均已通过对应的脉冲当量5转换成脉冲个数,即它们的基本单位是脉冲数,并且加速度a和初速度v不能在雕刻机运行的时候进行改变,因为改变了这些参数,涉及到数据的重新处理,不过在笔者的系统中,可以在雕刻的过程中随时改变加工速度v,如需改变加速度a和初速度v则只需按下暂停键,系统将以加速度a进行减速并停止,然后通过键盘改变上述参数后重新启动即可继续进行雕刻。由于篇幅有限加上整个完整的系统比较复杂不在这里进行详细阐述,此仅阐述基本工作原理。

  根据上述的基本参数,以最小单位时间,在加速段1,2,n;S="si;在恒速段得到如下递推关系式:si=递推关系式:si=vi.1At- n;S="s,值得一提的是,由上面的式子可以看到现在介绍的算法有别于传统的调延时的做法,我们是以At为最小单位时间,计算在这个时间内以一定的初速度vi.1和加速度a移动的距离然后得到n个最小单位时间内si的累加值S,原本所关心的时间问题在这里已经转换成了距离问题,当累加值时S>5(5为1的脉冲当量),让S=S-5然后继续累加,并且通过P1来对Px、Py、Pz进行DDA插补来判断x、y、z三轴是否有脉冲输出,与此同时,让已处理的数据PlqPlcpt+1和PsqPsq 1.当运行速度viv且Ps+Ps时我们以加速段的形式进行处理,当vi>v时以恒速段的形式进行处理,同时记下在加速段Ps所走的脉冲数Psadd,当Ps-PstPsadd时就以减速段的形式进行处理。值得一提的是,在加速段的时候如果PsPs,则直接跳过恒速段以减速段的形式进行处理;当PloPl时,表示当前小段的数据处理结束,如果缓存中有数据则重新调入下一小段数I据继续处理并清空缓存,当PsoPs时,表示当前调速大段的数据处理结束,调入下一调速大段的新调速过程。在FPGA编程中,实现上述功能是相当容易的,并且将距离,速度和加速度都统一单位,还可以避免平方和乘法运算。

  :笔者选用的MCU是S3C44B0X芯片,但用于步进电机的数字控制系统中已足以胜任其工作量,与其配合的FPGA是Cyclone系列的EP1C6T144,用Verilog对其进行编程,共用去了5,839个逻辑单元,除了完成本文中调且三轴脉冲当量不一致时的不变形雕刻,掉电数据保护,上电无缝续刻,自动对刀,手控状态下的单步、微步和连续的运动等一系列功能。由于现阶段在功能和性能上已完全达到客户的要求,加上开发时间比较紧,所以至今未对FPGA的程序进行进一步优化,相信优化过;后在不影响性能的前提下,可以大大减少逻辑单元的使用量。该系统已通过后期测试,即将投入生产。

 
 
[ 行业资讯搜索 ]  [ ]  [ 告诉好友 ]  [ 打印本文 ]  [ 关闭窗口 ]

 
0条 [查看全部]  相关评论

 
推荐图文
推荐行业资讯
点击排行