kingie2006 发表于 2014-5-28 10:38:16

求助,安川伺服电机在停止运转后,编码器输出脉冲

最近在使用安川200w的SGMAH伺服电机,使用位置控制,编码器为2048线的增量式的,用MC3486差分接收器接收伺服驱动器的PAO/PBO,然后用HCTL2032采集MC3486输出的A相/B相脉冲。电机运转时,MCU能够准确读到HCTL2032采集到的电机转动量(即编码器的输出脉冲量)。
现在的问题是:停止运转的电机(停止对伺服驱动位置控制的输入脉冲,电机处于使能状态),HCTL2032一直采集到脉冲,也就是说,编码器一直在输出脉冲,HCTL2032读到的脉冲数一直在增加。如果使电机禁止然后使能但电机还是停止,这时候编码器就没有输出了。电机停止后,编码器一直在输出同向的脉冲,是干扰的原因?振动的话有可能,但是如果是振动的话,脉冲应该是有正向和反向的哈。各位有经验的达人帮分析哈。

ddqq 发表于 2014-5-28 10:56:29

上示波器看看到底是啥东西

huangxiaolpbany 发表于 2014-5-28 10:59:17

伺服电机停止的时候不是完全停止的,而是在一个小范围内正反转动。所以HCTL2032能够接收到脉冲,但是是有正有负的,你可以同时检测下HCTL2032的方向信号就知道了

kingie2006 发表于 2014-5-28 11:03:07

huangxiaolpbany 发表于 2014-5-28 10:59
伺服电机停止的时候不是完全停止的,而是在一个小范围内正反转动。所以HCTL2032能够接收到脉冲,但是是有正 ...

一直是一个方向的,所以很纳闷

huangxiaolpbany 发表于 2014-5-28 11:17:43

HCTL2032的方向输出也是一个方向的?

kingie2006 发表于 2014-5-28 12:25:33

huangxiaolpbany 发表于 2014-5-28 11:17
HCTL2032的方向输出也是一个方向的?

是的,而且换了几个电机,也一样

kingie2006 发表于 2014-5-28 12:26:02

ddqq 发表于 2014-5-28 10:56
上示波器看看到底是啥东西

确实要用示波器看看

szmachine 发表于 2014-5-28 17:37:35

为什么不用AM26LS32C呢

RobotRD 发表于 2014-5-28 18:48:41

本帖最后由 RobotRD 于 2014-5-28 18:51 编辑

看波形,是4*模式吗

john78 发表于 2014-5-28 20:37:28

“抖动”???看看波形,应该是不合法的正交脉冲吧

kingie2006 发表于 2014-5-28 22:23:08

RobotRD 发表于 2014-5-28 18:48
看波形,是4*模式吗

1x 模式,2x模式 都一样,4x模式没试过

kingie2006 发表于 2014-5-28 22:25:49

szmachine 发表于 2014-5-28 17:37
为什么不用AM26LS32C呢

用过AM26LS32C,效果差不多,据说AM26LS32C与安川的sn75174与AM26LS32C配合会丢脉冲,没验证过

kingie2006 发表于 2014-5-28 22:26:12

jswd0810 发表于 2014-5-28 17:17
lz没有换个驱动器看看?

换了,一样的效果

kingie2006 发表于 2014-5-28 22:26:54

john78 发表于 2014-5-28 20:37
“抖动”???看看波形,应该是不合法的正交脉冲吧

应该是,是得上示波器看看了

不知勿笑 发表于 2014-5-29 00:20:47

爬行,控制器的问题

wqm8181 发表于 2014-5-29 07:25:39

楼主可以查看驱动器的诊断,看电机编码器有没有在计数,如果驱动器显示也有脉冲累加,那可能是的位置控制的上位机有问题,干扰什么的。如果驱动器上电机编码器不动,那是你的计数问题。

RobotRD 发表于 2014-5-29 08:18:08

编码器计数必须4*才对

bulejeans 发表于 2014-5-29 09:02:58

编码器 计数方法有问题吧

kingie2006 发表于 2014-5-29 09:40:50

不知勿笑 发表于 2014-5-29 00:20
爬行,控制器的问题

电机轴没有任何转动,没有爬行,但不排除抖动

kingie2006 发表于 2014-5-29 09:42:04

RobotRD 发表于 2014-5-29 08:18
编码器计数必须4*才对

你是说HCTL2302必须采用4x模式?

RobotRD 发表于 2014-5-31 12:58:20

只有4*模式计数才正确,另外还要看伺服驱动器输出端子的上升沿、下降沿的宽度,          沿触发

iwqt1983 发表于 2014-5-31 17:48:58

换个编码器重新试下

不知勿笑 发表于 2014-5-31 19:51:43

kingie2006 发表于 2014-5-29 09:40
电机轴没有任何转动,没有爬行,但不排除抖动

怎么知道轴没转动?1024个脉冲停止后有多少呢,将编码器脱开,看还有增加么?

xss_2082 发表于 2014-6-2 15:03:29

楼主的电机在哪里买的,多少前?

iixin 发表于 2014-6-2 23:17:39

是不是测量的时间不够?抖动会有十几个或几十个脉冲吧。

heky 发表于 2014-6-3 06:59:49

SON信号使能,脉冲信号不给的话,电机轴其实是高频振荡的。
你用1*,2*模式采集脉冲不可能锁住位置。用4*模式计数可以解决问题。
伺服本身没问题,要是编码器错误,老早报故障了。

kingie2006 发表于 2014-6-5 00:39:16

xss_2082 发表于 2014-6-2 15:03
楼主的电机在哪里买的,多少前?

x宝上的二手货

kingie2006 发表于 2014-6-5 00:40:58

heky 发表于 2014-6-3 06:59
SON信号使能,脉冲信号不给的话,电机轴其实是高频振荡的。
你用1*,2*模式采集脉冲不可能锁住位置。用4*模 ...

用了4*模式,确实可以了,多谢。另外加了减速机,1*、2*、4*都正常了。应该是高频振荡的原因

rossih 发表于 2014-6-28 18:19:25

楼主,你好,请问你的HCTL2032的电路是怎么样的?我也在用HCTL2032,用30MHZ有源晶振提供时钟信号,输入10KHZ的相位固定的正交信号,但是方向引脚U/D输出的脉冲信号,而不是高低电平,不知道是怎么回事,单片机读出的数据一直是0。请帮忙分析一下,万分感谢!

rossih 发表于 2014-6-28 18:19:42

楼主,你好,请问你的HCTL2032的电路是怎么样的?我也在用HCTL2032,用30MHZ有源晶振提供时钟信号,输入10KHZ的相位固定的正交信号,但是方向引脚U/D输出的脉冲信号,而不是高低电平,不知道是怎么回事,单片机读出的数据一直是0。请帮忙分析一下,万分感谢

kingie2006 发表于 2014-6-29 00:52:53

rossih 发表于 2014-6-28 18:19
楼主,你好,请问你的HCTL2032的电路是怎么样的?我也在用HCTL2032,用30MHZ有源晶振提供时钟信号,输入10K ...

我采用单片机ECLK输出频率给到HCTL2032的时钟脚。读数脉冲失败和你的电路及程序都有关系,你帮你的电路和程序放上来,可以帮你看看

cpu100 发表于 2014-6-29 10:16:55

电机停止后,把伺服使能关闭,看看还有脉冲输出吗?

kingie2006 发表于 2014-6-29 11:37:57

cpu100 发表于 2014-6-29 10:16
电机停止后,把伺服使能关闭,看看还有脉冲输出吗?

谢谢,这个问题已经解决了,原因是电机的高频振荡引起的。关闭使能肯定是OK的,现在我的选择了HCTL2032的4*模式来解决这个问题的。

rossih 发表于 2014-6-29 21:26:35

电路图是这样接的,问题还没解决,明天上班把测试波形也贴上来,请帮忙赐教,谢谢!

kingie2006 发表于 2014-6-29 23:49:38

rossih 发表于 2014-6-29 21:26
电路图是这样接的,问题还没解决,明天上班把测试波形也贴上来,请帮忙赐教,谢谢!
...

首先测量你的CLK时钟波形是否正确,确保时钟OK
然后把你的电路如下更改:
1 Pin 23 -- Test 直接接地或悬空
2 Pin17 和Pin19 悬空
3 确保正常运行状态时 Pin11和Pin12为高电平

rossih 发表于 2014-6-30 10:47:44

还是不行,测试波形贴上,芯片应该没问题吧?

kingie2006 发表于 2014-6-30 12:10:42

你是采用的4*模式?看起来已经猜到脉冲了。检查了程序呢?

kingie2006 发表于 2014-6-30 12:11:55

rossih 发表于 2014-6-30 10:47
还是不行,测试波形贴上,芯片应该没问题吧?

你是采用的4*模式?看起来已经采到脉冲了。检查了程序呢

rossih 发表于 2014-6-30 13:08:45

你好,我用的是4*模式。CNTDECx的信号是正常的。但是U/Dx信号不正常,不知道为什么?
程序没应该没问题,现在芯片的方向信号是脉冲输出,工作不正常。
OE1(1);
XY1(1);
SELA1(1);
SELB1(1);
nRST1(1);
nRST2(1);
               
OE1(0);
SELA1(0);
SELB1(1);
cnt1 = PDL_Read();

SELA1(1);
SELB1(1);
cnt2 = PDL_Read();

SELA1(0);
SELB1(0);
cnt3 = PDL_Read();

SELA1(1);
SELB1(0);
cnt4 = PDL_Read();

OE1(1);

kingie2006 发表于 2014-6-30 13:35:16

rossih 发表于 2014-6-30 13:08
你好,我用的是4*模式。CNTDECx的信号是正常的。但是U/Dx信号不正常,不知道为什么?
程序没应该没问题,现 ...

在下面两条语句间延时25ms左右看看,你可以参考下官方的参考程序。我开始没有延时,也读不出数据
nRST2(1);
               
OE1(0);

至于U/Dx信号不正常,感觉很奇怪。

金色大元宝 发表于 2014-9-18 15:05:55

mark,伺服电机,备用

xiaoqianwh 发表于 2014-12-16 15:57:01

还是喜欢用德国的,除了伺服放大器麻烦一点。

xiaoqianwh 发表于 2014-12-16 15:59:36

检杳一下电源怎么样,原来碰过坏伺服的和谐波有关,当然各地电网情况不同,加隔离变就好了。
页: [1]
查看完整版本: 求助,安川伺服电机在停止运转后,编码器输出脉冲