OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3202|回复: 4

新手求教 步进电机 开环控制 精确控制脉冲数

[复制链接]

21

主题

144

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1132
金钱
1132
注册时间
2015-7-31
在线时间
155 小时
发表于 2015-10-19 14:36:55 | 显示全部楼层 |阅读模式
5金钱
新手求教 步进电机 开环控制 精确控制脉冲数

情况是这样的:

1、控制5个步进电机,开环,控制光闸开合
2、只有单侧有极限检测,只在闭合的时候有光电开关可以检测到位并给出信号,打开的时候没有光电开关检测打开极限,得用软限位
3、按键控制步进电机正反转,也就是光闸开合
4、有定值模式,比如按下某一个按键,电机会带着负载自动移动到相应的位置停下

大概就是以上的情况

现在虽然做出来了,但是有的地方还是感觉不妥,而且有一处缺陷

先说下做出来的思路

PWM控制步进电机的最高频率是:72M/8000 =9000,应该是这么算吧....

因为是开环控制,按键的时候光闸打开或闭合需要记住输出过多少脉冲,预先先确定了多少个脉冲能开到位,把这个值赋值给DMA作为软限位打开极限值。我用的是定时器比较模式输出PWM,然后更新事件请求给DMA,DMA能得到已经发出多少脉冲
然后将DMA剩余值赋值给一个变量。
打开的时候会得到一个数值Count,然后将DMA关闭并把这个Count赋值给DMA作为闭合时用的脉冲个数限位,这样打开闭合软限位的问题算解决了(虽然我不知道这么搞对不对,但是结果表示没问题

定值的时候重新光闸重新回一下零位,然后给DMA赋值,步进电机开始运行,到位停止。

现在的缺陷是,打开光闸需要开关并赋值一次DMA,闭合的时候也一样,问题就来了,不一定什么时候就会出现问题,问题是这样的:

定值模式是有加减速的,想让它更快到位,DMA剩余值分成3个阶段,在第一段时间加速,第二段时间到达最高速,第三段时间也就是快到位了减速。正常用不会出现问题,但是频繁开关光闸的时候(正常情况不会这么用,我只是为了检查BUG就做了写破坏性的动作)问题就来了,光闸会一个速度的缓慢打开,这个速度应该和手动打开时的速度是一样的,到位之后停了,然后自己就恢复了正常带有加减速的情况,再次反向动作就正常了。5个电机基本都是这个控制模式,都出现这个情况。于是我特意将一路电机取消DMA,用中断的方式计数,不管多频繁的赋值它都不会出现上述问题...

我一定是在哪个部分理解的不对请大神们指点

还有频繁对DMA进行开启关闭是不是导致这个错误发生的根源呢 ?

补充:我试过中断计数的方式,TIM更新事件出发中断,单独将一个电机用这种方式没问题,但是我怕5轴同时动的时候过于频繁的中断会对整体代码造成影响,比如计数不准或者中断飞了等等奇怪的问题,当然只是我想象的,具体会不会出现我也不清楚,但是总觉得很不靠谱,而且以后要是加入通讯后又要加一个中断请求,CPU没事净中断,太占资源应该会出问题吧?不知道我这个担心是不是多余.....

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

13

主题

206

帖子

1

精华

高级会员

Rank: 4

积分
613
金钱
613
注册时间
2014-10-26
在线时间
32 小时
发表于 2015-10-19 15:28:43 | 显示全部楼层
不用DMA试下不就行了,你数据量又不大
学习!
回复

使用道具 举报

21

主题

144

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1132
金钱
1132
注册时间
2015-7-31
在线时间
155 小时
 楼主| 发表于 2015-10-19 15:57:03 | 显示全部楼层
回复【2楼】q27488:
---------------------------------
是啊,我用中断的方式试了,没有问题,一用DMA就会出现这个情况,我是怕5轴同时动的时候中断太频繁了,而且以后可能会加入通讯,通讯也要中断,太多中断而且间隔还很小,系统不就不稳定了么,什么不干净中断了.....
回复

使用道具 举报

21

主题

144

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1132
金钱
1132
注册时间
2015-7-31
在线时间
155 小时
 楼主| 发表于 2015-10-19 18:16:15 | 显示全部楼层
沉了..............没人么....
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-10-20 23:06:39 | 显示全部楼层
精确脉冲个数控制,   论坛网友分享过,你搜索参考下了.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-18 20:08

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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