苗子YJ 发表于 2018-10-13 11:16:54

步进电机控制问题

请教大佬几个简单的控制问题,
背景:如下图,步进电机驱动丝杠带动平台上下移动,有上限位和下限位开关,下限位是原点位,上限位是目标位。
电机任意位置时回原点的动作是不是这样的:连续给脉冲驱动丝杠带动平台碰到下限位时脉冲可以自动停止让电机停止,然后平台上升也是连续给脉冲使平台碰到上限位时脉冲可以自动停止让电机停止。
问题:电机是不是可以通过限位开关来控制,我无限连续给脉冲型号,只要限位开关被触发了就停止脉冲。也就不存在失步的现象了,直到触碰限位开关才停止。
还是说电机只能按程序给多少个脉冲就走多少个脉冲,不接受第三方指令。


DianGongN 发表于 2018-10-14 19:30:57

本帖最后由 DianGongN 于 2018-10-14 19:40 编辑

先简单说一下步进电机控制原理,然后回答LZ的问题。
常用的步进电机有A相和B相两个绕组,所以有4个引线。
改变A、B绕组电流的方向,可以前进或者后退1个步距角,比如1.8°。对1.8°进行32细分,可以得到0.05625°的理论精度。细分通过改变A、B绕组电流的比值来实现。通常采用成品步进电机驱动器来控制步进电机,一般都有细分功能。细分数值一般通过微型拨动开关设定,也可以软件设定。一般可设为16、32、64、.....256。过大的细分数值没什么意义,实际精度达不到。
控制器的控制信号有2个:1、方向信号,比如高电平=正向,低电平=反向;2、脉冲信号,每个脉冲走0.05625°。(假定步距角=1.8°,32细分)
回答LZ问题1: Q:“问题:电机是不是可以通过限位开关来控制,我无限连续给脉冲型号,只要限位开关被触发了就停止脉冲。也就不存在失步的现象了,直到触碰限位开关才停止。”A:直接通过限位开关来控制原理上可行,实际很少见,一般用程序控制。限位开关作为输入信号进入cpu。控制算法:上限位到达时,如果方向信号也是向上,则禁止脉冲信号。上限位到达时,如果方向信号是向下,则允许脉冲信号。下限位算法类似。可见直接通过限位开关来控制,必须增加逻辑电路才能实现。LZ所说“停止脉冲”,将使运动完全停止,无法脱离限位。
回答LZ问题2:Q: ‘还是说电机只能按程序给多少个脉冲就走多少个脉冲,不接受第三方指令。”A:一般的控制器,就是接受方向信号和脉冲信号,只要能够提供这2个信号即可,无论用程序还是其他方式都可以。比如可以简单的用1个乒乓开关产生高电平和低电平来控制方向,用1个按钮来产生脉冲信号控制走多少个0.05625°,每按1次按钮产生1个脉冲。如果没有控制器,只要有电源,也能直接控制步进电机的运动,这需要一定的电路知识。



Cavalier_Ricky 发表于 2018-10-14 10:10:52

楼主,先把机械惯性对设备的影响和步进电机的加减速考虑好了再想这个问题。

因为,楼主提的问题,仔细阅读控制卡之类的说明书,差不多都有理论性答案的。

但,怎么把这些理论性原理结合到铁疙瘩的运动里去,这就需要考虑负载和机械惯性。

限位,理论上,就是一堵墙,不论怎么编的运动程序,只要启用这个限位开关,运动件不会碾压过去这个位置。

当然,我买的控制卡,可以启用和关闭限位功能,不当限位开关用,那个端口,还可以当普通输入点来用。

原点位,理论上就是程序认为的基准点,运动件,可以正负方向跨过原点运动。

理论和实际的差别,比如楼主的情况:检测到了就停?怎么个“就停”法,得看负载和惯性了吧。一考虑这个,程序的分叉口就多了去了。

嗜血之翼 发表于 2018-10-13 11:27:07

你程序接收开关指令不就可以控制脉冲了。。。。

520zjwtcabc 发表于 2018-10-13 12:27:37

限位开关一般不做目标位和原点位。限位开关原意只是为了保护而设。当然你表达的意思是可以的,这样不需要考虑丢步。

苗子YJ 发表于 2018-10-13 13:54:00

520zjwtcabc 发表于 2018-10-13 12:27
限位开关一般不做目标位和原点位。限位开关原意只是为了保护而设。当然你表达的意思是可以的,这样不需要考 ...

嗯。谢谢!
不使用限位开关来做原点位,那一般靠什么方式来回原点?
电机一般是给多少个脉冲来走到目标位。限位开关装在目标位的上面,为了防止不受控制时超出最大极限位吗?
如果我直接用限位控制脉冲停止来达到目标位,那是不是就不用在极限位再加限位开关了,因为目标位的限位已经触发了脉冲停止,不会再往上移动了。

shentu 发表于 2018-10-13 14:22:12

你说的可以实现。

制造商 发表于 2018-10-13 15:40:40

触发感应器之后再走N步,这样位置是靠程序控制而不是靠调整光电开关,这样也有减速时间,防止过冲丢步。

去缸活塞泵 发表于 2018-10-13 17:39:26

在数控里限位开关的意义是触发后标记了一个点,你可以编程后续动作,比如制动,减速,或者再次触发后停止等等

duanyz 发表于 2018-10-13 20:22:12

你是想弄懂控制的原理自己编程,还是想应用现成的控制器?

一般回原点是一个命令,执行后就会一边按设定的方向移动一边检测原点位置,检测到了就停。

给固定脉冲数是另一个命令,给多少它就走多少
页: [1] 2 3
查看完整版本: 步进电机控制问题