搜索
bottom↓
回复: 44

用CPLD制作做雕刻机运动控制板 de 数控插补算法 (图)

[复制链接]

出0入0汤圆

发表于 2009-3-11 12:09:21 | 显示全部楼层 |阅读模式
1.数控运动控制原理
(1)将运动轨迹细分为每段0.5mm或1mm,无论是圆弧还是直线,都按直线(X,Y)来插补;
(2)将这一个细分的线段(X,Y)分解为坐标的脉冲值(Px,Py);
(3)在同一个细分的时间段(如10ms)同时产生Px和Py个脉冲,驱动XY方向步进电机;
2.实现方法
(1)打印机并行接口直接驱动计数器8254产生脉冲,CLK频率4MHz,输出脉冲200-500kHz
(2)串行口驱动CPLD产生脉冲和数字量I/O
(3)单片机可脱机控制方案(带有PPG或者2CH 16Bit Timer)
以上方案都可以在运动中无极调速(0-24m/min),有梯形或S形加减速控制。

抛砖引玉,有好东东大家分享!

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

 楼主| 发表于 2009-3-11 12:52:24 | 显示全部楼层

(原文件名:CPLD脉冲波形图.JPG)

出0入0汤圆

发表于 2009-3-11 13:46:52 | 显示全部楼层
MCU也可以集成,不过要使用FPGA。

出0入0汤圆

发表于 2009-3-11 17:37:49 | 显示全部楼层
对楼主的东西很感兴趣,可以发份详细的资料给我不?谢谢了。
azha@friendess.com

出0入0汤圆

 楼主| 发表于 2009-3-11 17:56:15 | 显示全部楼层
CPLD脉冲发生器可以产生1~4路脉冲信号。脉冲是由上位机(IMB-PC机)通过RS232串行接口传送的命令数据来设定的。命令数据是接连不断传送的,每一组数据决定一段脉冲的频率、数量和方向。在一组数据执行期间,脉冲频率和方向是不变化的,下一组数据可以改变脉冲频率和方向,1楼的波形图是由5组数据产生的脉冲波形示意图。一组数据执行时间最快约10ms,每组脉冲所用时间并不一定相同。串口通讯波特率约定为38400 b/s 。

出0入0汤圆

发表于 2009-3-11 20:09:57 | 显示全部楼层
这样说来,那个T形/s形加减速的实现是要上位机预先算好,以合适的命令组合来实现的了。
像国外的专业运动控制芯片,不知道别人是怎么把算法,集成到电路里去的。呵呵,这方面一点想法也没有啊。还望指教。

出0入0汤圆

 楼主| 发表于 2009-3-12 08:55:29 | 显示全部楼层
回复5楼,T形/S形加减速的实现确实是预先算好的。再通过控制时基频率实现(倍率)调速,还可以对预先计算的命令数据通过乘法运算施加调速(系数),实现动态调速。主要麻烦还是在加减速的处理过程,特别是光滑拟合的小线段的速度控制更要细心。

出0入0汤圆

发表于 2009-3-12 15:21:12 | 显示全部楼层
呵呵,谢谢楼主的指导阿。
我现在在从事运动控制行业的工作,呵呵,有自己的公司。交个朋友吧,希望能与您合作。
我的qq:21227461     加我qq时,请注明  运动控制,谢谢啦。

出0入0汤圆

 楼主| 发表于 2009-9-27 14:46:14 | 显示全部楼层
ARM+CPLD实现的3轴插补控制 成功应用在“打印式切割机”


“ARM+CPLD”构成的插补线路板,有RS232传口与PC Windows通讯,控制3轴 伺服电机运动。
相关资料和图片,陆续上传交流。

出0入0汤圆

发表于 2009-11-26 20:14:20 | 显示全部楼层
期待!

出0入0汤圆

发表于 2009-11-26 23:39:03 | 显示全部楼层
www.21control.com 的老板好像做这行的可以找他交流一下~

出0入0汤圆

发表于 2009-11-27 11:53:57 | 显示全部楼层
不错啊!比较先进的。

出0入0汤圆

发表于 2009-11-27 13:03:12 | 显示全部楼层
拿个板凳慢慢看

出0入0汤圆

发表于 2009-11-27 13:51:10 | 显示全部楼层
就是把每10MS的数据计算出来,在送给CPLD发出去是不?
但有一个问题,当剩余脉冲不足发10MS怎么办啊!
"(1)将运动轨迹细分为每段0.5mm或1mm,无论是圆弧还是直线,都按直线(X,Y)来插补;"这样做小圆弧w会不会很大的误差啊!

出0入0汤圆

发表于 2009-11-27 15:20:03 | 显示全部楼层
关注,期待楼主发更详细的资料。

出0入0汤圆

发表于 2009-11-29 18:06:06 | 显示全部楼层
关注

出0入0汤圆

发表于 2009-12-2 14:53:40 | 显示全部楼层
本人小菜,也来参与讨论一下。LZ的圆弧查补貌似只是软件模拟的。其实国内有很多的公司基本都在用硬件实现。
加减速我的想法和LZ差不多。关于圆弧和直线查补,国外的一款控制芯片的做法值得参考。
在查补的时候,设定主轴,主轴连续输出脉冲,从轴按照一定的函数关系输出脉冲。
例如:圆的标准方程:X^2+Y^2=R^2;X,为脉冲数
       假设设定X轴是主轴,则X连续输出脉冲,在X轴每输出一个脉冲以后,做以下处理:
       如果X^2+Y^2>R^2+m (M应该是一个与查补精度有关系的数)则Y输出一个脉冲。 否则Y轴不输出脉冲。
不知道这样用FPGA实现是否存困难。我准备试一下。国外的那款芯片可以做到查补的主轴脉冲频率4M.
不知道我想法可不可行

出0入0汤圆

发表于 2009-12-2 15:18:36 | 显示全部楼层
这我做过,cpld的门数不够用的,赶紧用fpga吧!

出0入0汤圆

发表于 2010-1-4 23:13:18 | 显示全部楼层
拿个板凳慢慢等

出0入0汤圆

发表于 2010-1-6 17:03:44 | 显示全部楼层
16楼的思路很好,我在单片机上做的插补算法就是这样做的。

主轴(移动距离大的一轴)的脉冲频率就是插补时钟的频率。

想在CPLD上来做插补算法,用单片机读取G代码,再将G代码中的坐标值转换为脉冲数传给CPLD来实现插补

加减速控制在CPLD上似乎不是很好实现。

出0入0汤圆

发表于 2010-1-6 17:18:18 | 显示全部楼层
回复【4楼】HONY0411 小蜜蜂
CPLD脉冲发生器可以产生1~4路脉冲信号。脉冲是由上位机(IMB-PC机)通过RS232串行接口传送的命令数据来设定的。命令数据是接连不断传送的,每一组数据决定一段脉冲的频率、数量和方向。在一组数据执行期间,脉冲频率和方向是不变化的,下一组数据可以改变脉冲频率和方向,1楼的波形图是由5组数据产生的脉冲波形示意图。一组数据执行时间最快约10ms,每组脉冲所用时间并不一定相同。串口通讯波特率约定为38400 b/s 。
-----------------------------------------------------------------------
“每一组数据决定一段脉冲的频率、数量和方向”

当下一组数据的方向发生变化时,要进行减速控制,
再执行到下一组时,要进行加速控制

出0入0汤圆

发表于 2010-1-22 11:33:48 | 显示全部楼层
台湾在这行研究的比较早,可以去找些他们的硕博论文看看,会有很大帮助

出0入0汤圆

 楼主| 发表于 2010-2-28 23:38:33 | 显示全部楼层
大家好!
许久没有来过,未想到有这么多人关心这个话题。
惭愧的是没有及时参加讨论和学习,高兴的是1楼的插补控制器,实际应用效果良好。
已经制作了4层核心板,基于STM32,除了2~3轴脉冲之外,还有CAN接口和RS232接口。
我会在近期,上传一些照片和开发应用体会。

出0入0汤圆

 楼主| 发表于 2010-3-1 00:00:04 | 显示全部楼层
回复【16楼】semonpic
-----------------------------------------------------------------------

你是在深圳吗,我也经常在深圳的。希望有机会交流。
刚开始试验时,是用CPLD+ARM的方案,
后来实际工程中,我是用STM32 制作的,没有使用CPLD和FPGA。

出0入0汤圆

发表于 2010-3-1 09:19:36 | 显示全部楼层
回复【23楼】HONY0411 小蜜蜂
-----------------------------------------------------------------------
我在深圳,有空交流一下。我的QQ是442999791

出0入0汤圆

发表于 2010-3-18 08:29:47 | 显示全部楼层
回复【23楼】HONY0411 小蜜蜂
回复【16楼】semonpic  
-----------------------------------------------------------------------
你是在深圳吗,我也经常在深圳的。希望有机会交流。
刚开始试验时,是用CPLD+ARM的方案,
后来实际工程中,我是用STM32 制作的,没有使用CPLD和FPGA。
-----------------------------------------------------------------------

楼主是用的STM32(双核?)



插补算法是用的软件实现的吗

楼的的step最高可达多少

出0入0汤圆

发表于 2010-3-18 10:07:31 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-3-18 15:35:54 | 显示全部楼层
有FPGA实现T型加速不难

出0入0汤圆

发表于 2010-3-18 18:59:30 | 显示全部楼层
学习了,以后做参考

出0入0汤圆

 楼主| 发表于 2010-3-18 23:15:53 | 显示全部楼层
回复【25楼】liu_xf
-----------------------------------------------------------------------

是软件插补,基于STM32F103,8M晶振,更新周期10ms~2ms都可以。我现在用的最高脉冲频率在200k。可以实现高达500k

出0入0汤圆

发表于 2010-3-19 10:57:12 | 显示全部楼层
软件插补最高脉冲频率在200k不会吧???

出0入0汤圆

发表于 2010-3-19 11:05:23 | 显示全部楼层
回复【30楼】caobin52095
软件插补最高脉冲频率在200k不会吧???
-----------------------------------------------------------------------

200K基本够用了吧

出0入0汤圆

发表于 2010-4-5 15:18:55 | 显示全部楼层
漂过

出0入0汤圆

发表于 2010-4-5 21:41:09 | 显示全部楼层
本人对运动控制感兴趣,
QQ:279379847

出0入0汤圆

发表于 2010-4-5 22:32:10 | 显示全部楼层
【楼主位】 HONY0411 小蜜蜂

积分:52
派别:
等级:------
来自:辽宁 大连
1.数控运动控制原理
(1)将运动轨迹细分为每段0.5mm或1mm,无论是圆弧还是直线,都按直线(X,Y)来插补;
----------------------------------------------------------------------------------
请问【楼主】 HONY0411 小蜜蜂  一个加工文件要多少M bit/8bit的存储器来保存,有多少M行G代码?

出0入0汤圆

发表于 2010-4-5 23:32:02 | 显示全部楼层
板凳搬完了,拿个草墩坐着看吧

出0入0汤圆

发表于 2010-4-8 22:50:06 | 显示全部楼层
每段0.5mm或1mm,的却圆弧太小精度问题要考虑了...
时间分割来粗插补,我用F2812来1ms中断粗插补(根据当前速度计算粗插补数据),所以每小段的长度相对较小(当然和速度成正比了),然后再用FPGA做DDA精插补,FPGA输出脉冲频率和粗插补数据大小成比例。最高能脉冲输出频率8MHz。现在基本调试完成了。

出0入0汤圆

发表于 2010-4-9 21:54:29 | 显示全部楼层
回复【29楼】HONY0411 小蜜蜂
回复【25楼】liu_xf  
-----------------------------------------------------------------------
是软件插补,基于STM32F103,8M晶振,更新周期10ms~2ms都可以。我现在用的最高脉冲频率在200k。可以实现高达500k
-----------------------------------------------------------------------

怀疑,软件插补能有这么快

出0入0汤圆

发表于 2012-6-1 14:37:38 | 显示全部楼层
楼主还在不?有问题请教?
请问您这个“软件插补,基于STM32F103,8M晶振,更新周期10ms~2ms都可以。我现在用的最高脉冲频率在200k。可以实现高达500k”是怎么实现的?
最近我正在使用STM32F103的一个芯片实现步进电机的插补控制,遇到一些问题想请教,可以加一下QQ吗?704958779

出0入0汤圆

发表于 2012-9-3 20:23:42 | 显示全部楼层
看帖,期待楼主解答插补算法。。。

出0入0汤圆

发表于 2012-11-17 14:08:51 | 显示全部楼层
HONY0411 发表于 2010-3-18 23:15
回复【25楼】liu_xf
-----------------------------------------------------------------------

想和楼主交流一下,最近也在弄这个,Q378688780,注明一下

出0入0汤圆

发表于 2012-11-19 09:50:13 | 显示全部楼层
HONY0411 发表于 2009-3-12 08:55
回复5楼,T形/S形加减速的实现确实是预先算好的。再通过控制时基频率实现(倍率)调速,还可以对预先计算的 ...

楼主能不能指导一下梯形和S形加减速算法 !

出0入0汤圆

发表于 2012-11-19 13:23:54 | 显示全部楼层
插补有直线插补和圆弧插补两种
但是基本现在都是用硬插补完成!软件只是做轨迹规划

出0入0汤圆

发表于 2012-11-19 19:21:30 | 显示全部楼层
fpga做最好!

出0入0汤圆

发表于 2014-9-5 21:12:18 | 显示全部楼层

研发了一款基于PCI的运动控制卡,省去了9052芯片,直接FPGA里面搞了一个PCI通信接口,并且大量的运动控制算法都集成在一块FPGA上。有整套方案贱卖包括软硬件跟PCB等,需要请联系我,2401547092。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 03:24

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表