电子手轮编程 点击:0 | 回复:60



离苏州很近

    
  • 精华:1帖
  • 求助:0帖
  • 帖子:16帖 | 462回
  • 年度积分:0
  • 历史总积分:800
  • 注册:2003年8月12日
发表于:2005-08-23 13:56:00
楼主
请教各位:电子手轮的编程。 转动电子手轮,向正方向转,步进电机正转,向反方向转,步进电机反转。步进电机的转速与电子手轮的转速成正比。请教编程方法。谢谢!



凡夫俗子

  • 精华:0帖
  • 求助:0帖
  • 帖子:8帖 | 540回
  • 年度积分:0
  • 历史总积分:642
  • 注册:2003年11月27日
发表于:2005-08-23 14:51:00
1楼
您好。编码器的A、B相信号与步进脉冲+方向信号之间的转换?准备用什么来实现?PLC?

离苏州很近

  • 精华:1帖
  • 求助:0帖
  • 帖子:16帖 | 462回
  • 年度积分:0
  • 历史总积分:800
  • 注册:2003年8月12日
发表于:2005-08-23 15:01:00
2楼
编码器的A、B相信号送入PLC,PLC带一个脉冲模块,脉冲模块输出的脉冲给步进电机驱动器。

凡夫俗子

  • 精华:0帖
  • 求助:0帖
  • 帖子:8帖 | 540回
  • 年度积分:0
  • 历史总积分:642
  • 注册:2003年11月27日
发表于:2005-08-23 15:43:00
3楼
以S7-200为例: 1、方向判别:A的上升沿“置位”中间继电器M0.0,B的上升沿“复位”M0.0;M0.0导通一个自加1(从0开始)的加法运算,输出给VD100(选VD字节长以免数据溢出),,,同样B的上升沿“置位”M0.1,A的上升沿“复位”M0.1;M0.1导通一个自加1(从0开始的)加法运算,输出给VD104。。。最后用A的上升沿触发比较VD100>VD104?输出的结果给方向输出,同时A的上升沿对VD100和VD104清零(赋值0给他们)。。。 利用系统程序运算周期作为基本周期虽然精度不准确,但作为判断方向足够了,如果自加1出现数据溢出,适量改为自加10或100。。。将M0.1换为M0.0取非去触发VD104的自加也可以。。。

凡夫俗子

  • 精华:0帖
  • 求助:0帖
  • 帖子:8帖 | 540回
  • 年度积分:0
  • 历史总积分:642
  • 注册:2003年11月27日
发表于:2005-08-23 16:11:00
4楼
2、速度判别:在方向判别后,速度的判别就可以只采样A相或B相了,其实这就是个频率和数字量之间的转换了,客观的说,无论您的PLC的CPU运算能力多快,采样周期多短,速度必然会出现延迟和失真,因为您只能让PLC发出单位时间内的平均速度脉冲。。。如果做倍频,可以这样做:用A相上升和下降沿、B相上升和下降沿同时触发一个自加1运算(从0开始)输出给VD110,然后用一个定时器去关断终止自加运算并且将VD110经一定比例运算后给脉冲输出作为速度设定,同时关断定时器并将定时器、VD110清零以便下一周期进行速度采样。。。定时器的时间长短就是速度采样周期,具体大小您要根据实际情况来设定。。。 还有就是编码器的脉冲输入速度了?如果是高速脉冲,就要采用高速脉冲计数模块了,那样就不用自加1运算了,但也是固定采样周期采计数器值给速度设定并对计数器清零既可。。。手轮的脉冲速度应该不高,您的手轮分辨率多少?几百? 具体使用计数器还是自加1运算都可以,您根据情况自己定吧。。。

凡夫俗子

  • 精华:0帖
  • 求助:0帖
  • 帖子:8帖 | 540回
  • 年度积分:0
  • 历史总积分:642
  • 注册:2003年11月27日
发表于:2005-08-23 16:18:00
5楼
3、位置有无控制要求,如果要进行位置控制,那么就比较头疼了,PLC内部一般都具有A、B两相加减计数器,自动识别正反转并进行相应的加减计数,头疼的难点就是计数值是累积的,代表的应该算是绝对位置,而脉冲模块发送脉冲一般都是相对的,就是只针对发送的脉冲数,不针对目前停留的位置,还有如果做位置控制,速度的设定就要根据位置相应变化,而不是2中所述的那么简单了。。。 只是本人的一点点拙见,有误之处见谅啊。。。

离苏州很近

  • 精华:1帖
  • 求助:0帖
  • 帖子:16帖 | 462回
  • 年度积分:0
  • 历史总积分:800
  • 注册:2003年8月12日
发表于:2005-08-23 16:38:00
6楼
PLC我打算用三菱的FX2N的。 控制中并无位置控制要求。只是作为设备调整零位用。 非常感谢“凡夫俗子”的指导。

凡夫俗子

  • 精华:0帖
  • 求助:0帖
  • 帖子:8帖 | 540回
  • 年度积分:0
  • 历史总积分:642
  • 注册:2003年11月27日
发表于:2005-08-23 17:03:00
7楼
to:离苏州很近,您好 什么指导不指导的,大家一起学习讨论,共同提高,再说了“送人玫瑰,手留余香”。。。帮助别人其实也能帮助自己,大家取长补短才能共同进步,中国想要科技进步就需要大家互相信任互相帮助的。。。 三菱的发脉冲命令相对而言要方便很多,FNC57(PLSY)和FNC59(PLSR)都是对脉冲指令频率可以直接赋值,相比较西门子S7-200的脉冲指令对脉冲周期赋值方便多了。。。

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14399帖 | 54471回
  • 年度积分:0
  • 历史总积分:579
  • 注册:2008年9月08日
发表于:2005-08-23 18:18:00
8楼
你的手轮有几个信号通道?如果有两个通道,就可以直接把信号接到驱动器也可以,只是速度调节不是很爽。

刘岩利

  • [版主]
  • 精华:2帖
  • 求助:0帖
  • 帖子:20帖 | 8089回
  • 年度积分:1199
  • 历史总积分:26632
  • 注册:2005年3月09日
发表于:2005-08-24 06:46:00
9楼
是手轮,就是说速度不会很快,那么只要检测单位之间从手轮收到几个脉冲,然后发给驱动器就可以了(一般也就是0或者1而已)。以手摇的速度而言,这样足够了,没必要检测速度。至于“速度的延迟和失真”,对于手轮这个东西,它是由人手操作的,延迟0.1秒,人能察觉吗? 把手轮信号直接到驱动器,带来的问题一个是没有比例调节了,长距离移动会让操作者很烦,另外,A/B相的信号形式直接当作脉冲/方向信号来用,我也这么干过,能用,但还是存在出问题的可能性。

离苏州很近

  • 精华:1帖
  • 求助:0帖
  • 帖子:16帖 | 462回
  • 年度积分:0
  • 历史总积分:800
  • 注册:2003年8月12日
发表于:2005-08-24 08:20:00
10楼
TO:刘老师: “把手轮信号直接到驱动器,带来的问题一个是没有比例调节了,长距离移动会让操作者很烦”,我所用的场合移动距离不太长,操作应该能忍受。 “A/B相的信号形式直接当作脉冲/方向信号来用,......但还是存在出问题的可能性”。估计可能会产生的问题有哪些? 谢谢!

凡夫俗子

  • 精华:0帖
  • 求助:0帖
  • 帖子:8帖 | 540回
  • 年度积分:0
  • 历史总积分:642
  • 注册:2003年11月27日
发表于:2005-08-24 10:13:00
11楼
好晕。。。 1、首先是方向信号的判定,A、B相信号“直接”当作脉冲/方向信号?脉冲信号我可以理解,方向信号如何直接用?向刘兄请教学习学习。。。如果是单方向的转动可以直接用,换向就必须先就A、B的相位关系判断出方向才可以。。。有些伺服驱动器可以接收A、B相信号作为指令,因为里面有转换电路和算法,步进驱动器能直接接收A、B相的好象很少。。。如果加一个“方向识别单元”我可以理解,欧姆龙就有“方向识别单元”的产品。。。 2、速度的脉冲信号,直接用?或者经过PLC接收一个脉冲就发送一个脉冲?这个方式我考虑过,如果作为手轮控制步进的演示可以这么做也简单,实际使用就涉及比例无法调节(即使通过调节细分也是跳跃范围很大),在电机整步基础上如果您希望电机跟随手轮的的比例速度大些无法实现,采用速度采样后发脉冲可以任意调节比例,这个比例的常数您可以使用几个档位也可以加入个电位器用外部模拟量设定。。。手轮分辨率100的常见,300PPS算您摇的比较快的了,那么步进整步的转速就是90转/分,如果您可以接受步进整步的这个速度,直接用也可以。。。

凡夫俗子

  • 精华:0帖
  • 求助:0帖
  • 帖子:8帖 | 540回
  • 年度积分:0
  • 历史总积分:642
  • 注册:2003年11月27日
发表于:2005-08-24 10:29:00
12楼
to:离苏州很近,您好 如果您对步进速度可以接受低速且跟随手轮速度正比固定的话,建议采用方案: 1、方向信号将手轮AB相信号经过“方向识别单元”给步进驱动器的方向输入口。。。不经过处理的A、B相信号是无法当方向信号给步进的。。。 2、速度信号,将手轮A相或B相,或A、B两相同时都给驱动器的脉冲输入口,同时给会将脉冲频率翻倍,前提您先搞清楚A、B相信号的方波的占空比、“高”和“低”位的电压值范围等等。。。 切记还有个要点,注意选择的手摇编码器的输出形式、电压匹配尽量和驱动器接口一致,以免再做信号处理。。。 我前面给您介绍的PLC编程的方案是在您自己提出要“编码器的A、B相信号送入PLC,PLC带一个脉冲模块,脉冲模块输出的脉冲给步进电机驱动器。”的要求下建议的,因为我自己做过一个步进电机跟随编码器(1024分辨率)输出信号的系统,“速度的延迟和失真”问题确实有,采样周期内短时间发生的速度波动无法快速响应,这些人眼是无法察觉的,但产品加工的质量以及对工艺的影响是显而易见的,现在评判的标准有多少是用人来察觉的?。。。呵呵,不同的工艺要求对控制要求也不同,我不罗嗦了。。。

离苏州很近

  • 精华:1帖
  • 求助:0帖
  • 帖子:16帖 | 462回
  • 年度积分:0
  • 历史总积分:800
  • 注册:2003年8月12日
发表于:2005-08-24 10:54:00
13楼
TO 凡夫俗子&刘老师:你们好! 二位的指点我已基本理解。谢谢! “A/B相的信号形式直接当作脉冲/方向信号来用”估计是刘老师笔误了。我的理解也是“不经过处理的A、B相信号是无法当方向信号给步进的”。

刘岩利

  • [版主]
  • 精华:2帖
  • 求助:0帖
  • 帖子:20帖 | 8089回
  • 年度积分:1199
  • 历史总积分:26632
  • 注册:2005年3月09日
发表于:2005-08-24 22:54:00
14楼
对不起,没有笔误。把A/B向信号直接在步进电机的脉冲/方向输入上,我的客户这么接的,我自己也试了一下,确实可以算能用。我不是驱动器的生产厂家,我只能从现象来猜测,驱动器是在脉冲信号的前沿检测方向信号的电平的。 至于速度波动,既然应用的前提只是手动调整零位用,自然是眼睛看不出来就够了。

凡夫俗子

  • 精华:0帖
  • 求助:0帖
  • 帖子:8帖 | 540回
  • 年度积分:0
  • 历史总积分:642
  • 注册:2003年11月27日
发表于:2005-08-25 10:01:00
15楼
我判断错了,确实如刘兄所言A、B相可以直接用脉冲加方向。。。惭愧啊,这么多年了都不知道可以直接用,还差点误导“离苏州很近”兄弟,不好意思啊。。。 A、B相信号为相位相差90度电角度的占空比50%的方波信号,步进驱动器为了稳妥起见一般建议在脉冲信号50微秒前建立方向信号,方向信号的检测确实如刘兄所言在脉冲信号前沿检测。。。即使方向信号是脉冲,只要检测时对应正确的方向即可,而这时的方向信号就是和A、B的相位关系对应的。。。多谢刘兄赐教。。呵呵 这样用的隐患就是如果脉冲频率很高,例如2048的编码器安装在某电机后面,电机工作在1200转/分,那么脉冲频率就是40960HZ,周期约24.4微秒,90度相位即1/4周期=6.1微秒,可能就会造成方向信号采集不到的现象,但手轮脉冲频率低就没有此隐患了,呵呵,刘兄我分析的对不? 又学了一招,这样我以前的PLC程序的方向信号的判断完全可以按此思路改了,哈哈。。。 再次感谢刘岩利兄,改天请你喝酒哦。。。

离苏州很近

  • 精华:1帖
  • 求助:0帖
  • 帖子:16帖 | 462回
  • 年度积分:0
  • 历史总积分:800
  • 注册:2003年8月12日
发表于:2005-08-25 13:56:00
16楼
真的是受益匪浅! 再次谢谢各位! 干杯!

凡夫俗子

  • 精华:0帖
  • 求助:0帖
  • 帖子:8帖 | 540回
  • 年度积分:0
  • 历史总积分:642
  • 注册:2003年11月27日
发表于:2005-08-25 17:46:00
17楼
to:离苏州很近,您好 不好意思,差点误导您。。。 我罚酒3杯,呵呵,喝喝。。。喝罢黄河之水天上来,酒醒杨柳残月且偷欢。。。唱罢笑傲江湖祭沧海,雁渡寒潭有几只高飞。。。

刘岩利

  • [版主]
  • 精华:2帖
  • 求助:0帖
  • 帖子:20帖 | 8089回
  • 年度积分:1199
  • 历史总积分:26632
  • 注册:2005年3月09日
发表于:2005-08-25 18:34:00
18楼
把A/B相信号当脉冲/方向信号接在驱动器上,还有个可能的问题。对于A/B相的信号而言(无论是编码器还是手轮)如果B相不动,A相变化,一般理解成原地轻微抖动,可是,这时驱动器会一直向前走的。 干杯?这里不是论坛吗?把杯子撤了,用坛!

离苏州很近

  • 精华:1帖
  • 求助:0帖
  • 帖子:16帖 | 462回
  • 年度积分:0
  • 历史总积分:800
  • 注册:2003年8月12日
发表于:2005-08-26 08:31:00
19楼
有搞驱动器设计的朋友吗?以后设计驱动器试。。。 这里三缺一,喝酒用坛。 用坛的感觉一定很爽。。。

凡夫俗子

  • 精华:0帖
  • 求助:0帖
  • 帖子:8帖 | 540回
  • 年度积分:0
  • 历史总积分:642
  • 注册:2003年11月27日
发表于:2005-08-26 11:10:00
20楼
使用PLC可以解决该问题。。。 PLC程序里方向的判断程序改为: A的上升沿时,B=0,,,B的上升沿时,A=1,,,A的下降沿时,B=1,,,B的下降沿时,A=0,,,这四种情况为正方向。。。 A的上升沿时,B=1,,,B的上升沿时,A=0,,,A的下降沿时,B=0,,,B的下降沿时,A=1,,,这四种情况为反方向。。。 速度脉冲采用四倍频,即A上升沿、B上升沿、A下降沿、B下降沿都作为速度脉冲指令。。。 注意脉冲指令要比方向信号略微延迟些发送。。。 这样就解决了只在A相变化,B相不动的轻微震动问题,步进系统会随着一起轻微震动。。。 事实上能直接接受A、B相形式的某些伺服驱动器就是将此逻辑的判断做在了脉冲和方向的接受电路和控制芯片里了。。。

相关主题

官方公众号

智造工程师
首页 上一页 1 2 3 下一页 尾页