找回密码
 注册
LabVIEW+单片机学习套件全套教程资料下载[免费]LabVIEW论坛精华列表贴USB0816数据采集卡《LabVIEW宝典》
LabWindows/CVI论坛精华贴NET0816以太网数据采集卡RC0210远程设备授权系统 关闭关停锁定打开设备 户外分布式数据采集
NET1624低速高精度以太网数据采集卡WIFI0824SD无线WIFI网络数据采集卡脱机运行 SD存储 小尺寸微型 串口采集远程采集 安卓 手持移动采集 纪录仪
查看: 2552|回复: 6

NI采集卡随便counter口控制伺服和读取编码器角度

[复制链接]
发表于 2009-9-30 14:11:33 | 显示全部楼层 |阅读模式
NI采集卡的脉冲口与三菱伺服的MR-J2S-40A的使用总结

驱动器型号为 MR-J2S-40A
,NI采集卡用了PXI6220 与PXI6602试验


首先玩转电机,让其可被控制快慢正反转

伺服能接受外部控制的必要条件就是先让其处于 伺服ON状态

1、电源和编码器的接线按照说明书即可

2、CINB 20针 插头的5个针脚就可以使其处于伺服ON状态   
VDD----COM
(3- --13)
(内部24V电源)
EMG----SG
(15—10)

LSP------SG
(16—10)

LSN------SG
(17---10)

SON-----SG
( 5----10)


按上面接好后 马达即可处于锁定的伺服ON状态 (嗡嗡响着,但被锁住)

(如果还不处于伺服ON状态,请检查你的此处焊接线是否有问题,其次就是检查电源UVW是否接反,因为第一台我的调试成功,后来新装的两个不假思索的让装配人员照样安装,恰恰就是因为UVW接反导致其他两个伺服不能ON状态挂起,非常郁闷,检查焊接头没错啊,甚至怀疑驱动器是坏的,抱去检修,一切正常,其实是我被简单的认定不会出错的思维定势了,以后要注意了自己!)

3、在此状态下,若想让其被控制随意转动,只要对其脉冲口发送不同频率的脉冲即可

4、位置控制模式下 有两种脉冲发送方式:集电极开路和差分接法

   按照说明书接线图:

集电极开路 需要将CINA脚上的OPC与COM口接到24V上

   同给PP NP与SG之间发送脉冲即可,可是我怎么弄都不转,最后电话给三菱客服说

需要15V的脉冲信号,而我的板卡只能提供5V的脉冲信号,因此集电极开路接法不行

差分接法 需要对CINA脚上的PP PG NP NG发送脉冲即可(不需要24V供电,说明书图就

这么画的,)

我用了PXI 6602卡的counter0
接PP ,DGND接PG,Counter1接NP,DGND接NG

(随便什么采集卡的Conunter口都可以,我用这张卡因为他脉冲口多,可以挂好几台)

跟三菱确认过接线和设置完全没错,可是就是TMD不转,我脑袋都想爆了,他还是不转

三菱给我的回答是:不可能的,怎么可能呢,不会不转的,.肯定你哪还没接好,不可能的你自

己再查查看吧,傻呼呼的我盯着他看了半天,试运行模式也可以JOG转,就是发脉冲不转

检查了自己的卡,用示波器检查过我发的脉冲没有错误,而且确认了差分接法的脉冲只要

5V就可以,他就是不转

无意中,非常的无意,我把PP接到DGND, PG接到Conter0,NP接GND,NG接Conter1

转的非常的流畅,改动频率后可以快慢转,counter0与counter1可以控制正反转

当然 一个counter就可以了,用一个继电器切换接收脉冲的PG与NG口即可!

脉冲的最大频率是500KHZ,超过这个频率,马达就报警了

P3/P4=速度的倍数

中间小结:三菱的技术支持真恶心,动不动就说不可能,我是因为不可能找你的.,你又用不可能

来应付我,冒火!(更冒火的在后面)

图纸标错了还是采集卡的做反了?反正是反过来了!总之玩转了就好!

马达玩转了,下面就是需要读取其编码器反馈的脉冲数啦

编码器计数读取::

编码器的输出信号在CINA脚的6
16
(A相)与 7
17
(B相),


接到我采集卡6220 的 CTR 0 A(37脚)与CTR 0 B(45脚)

设置好驱动器的P27号参数,为每一圈输出的脉冲个数,我设置为2000个!

伺服ON取消掉,自己在轴和马达壁上标记一条红线后,手旋转一圈跟自己设置的一圈个数

2000个脉冲数(用DAQMX直接读数看到的),刚好一致,心理那叫一个高兴啊,好简单,

好顺利,就读到了!!

开始写程序,2000个脉冲=360度嘛,很简单的换算关系,刚好同事说,NI里有一个直接读

取编码器角度的例子,可以直接用,他手头的项目步进电机带的编码器就是用那个例子,非

常好,简直就是天助我也,直接找到那个例子,直接打开设置为当前卡的端口就OK!

运行程序,手拨动一圈,0—300多度,翻转一圈退不回0度简直是不动弹,有点纳闷

抛离这个VI程序,直接用DAQmax查询脉冲数,看到A相的脉冲技术是2000个,可是翻转

的脉冲数字不对,为什么呢??接了Z相信号看转一圈是否能读取到一个+1,发现非常凌乱

的在乱加,不管这个了,直接看AB相计数始终是不一样的!烦躁!为什么啊??

费解郁闷中 拨通了泛华的AE电话,对话刘工很专业的给我上了一堂关于AB相脉

冲的读数和计算知识课,非常感谢他,经过沟通得知,NI的此系列板卡只能采集单端脉冲

信号,就是说我现在伺服自带的编码器是差动模式的+ -5V的脉冲信号是不能被板卡正确识

别的吧,我问刘工解决方案,他说帮我找一下差分转单端的电路和芯片,我自己试图联系

三菱问其是否有是集电极开路输出的编码器的伺服电机,对方直接否定没有,再次联系松下

同样是没有,我初步断定。。可能是伺服的编码器都是差分模式的输出(是这样的吗?),

于是只能做板子了,

拿了刘工发给我的电路图和芯片型号,让同事去赛格给我捎带了材料,自己用笨拙的手焊了

一个非常恶心非常烂的板子出来(自己看的都倒胃口),信号转换OK后,看起来似乎良好,

用手旋转,明显正转一圈是360度了,翻转一圈归零,松了口气,至少我看到正确的角度值

了,准备挂器伺服ON来读取角度值,挂起以后角度值一直在无限的ADD+++加到无穷大!

去掉伺服ON信号在拨动一圈,逆向一圈,还是正确的!!!我脑袋顶上冒了一个硕大的问号!!

不可能啊,手拨动你能正确的分清正反转的角度,为什么挂上伺服ON信号就不好了呢?

仔细的琢磨着,理论上应该是+ -0.01度或者正负1度的变化,而不应该是无限增大啊!非

常非常的纳闷了,我业余的理解伺服ON状态可能在正负抖动1个脉冲变化的相对静止锁住

状态,也就是说伺服是正确的,板卡为什么分不出来???不可能的啊!!!

电话再次甩到泛华AE,无解,电话到三菱问其伺服ON状态是否编码器会输出脉冲,他们

告诉我不转动的话肯定不会输出脉冲啊,而且很肯定的告诉我,你只要没发脉冲让他转,仅

仅是挂起伺服ON,是不会有脉冲输出的,而我确能看到编码器此时的脉冲输出,我抱来示

波器同样能看到方波的存在,于是第二天抱着驱动器去了三菱代理商那,他们的技术支持给

了我一定的正解,感觉比三菱的AE强八辈子,恶心的三菱AE!

结论如下:伺服ON 是相对静止,肯定会有一个或者半个脉冲输出,保持自己的相对稳定,

但是此时他是在正反微弱抖动,除非你采集卡分不出方向才可能一直加,于是拨通泛华

的电话,了解到采集卡是A相计数B相判断方向,此时问题就出现了,如果电机抖动的时

候恰好在B的上升沿下降沿之间抖动的脉宽,采集卡是不是就不知道他换向了?就一直累加

了,至少这个是我目前认为比较合理的解释了(我理解的很业余希望专业人士指示,谢谢),

我问PLC怎么没问题,代理商的技术支持说

PLC是双向双计数,肯定不会出错,当然我也不很了解了。。反正我的问题纠结找到了!!

如何 解决如何解决……采集卡不行要有个死刑前的办法啊,于是当时就试验了串口通信读取

脉冲值,正确无误,至少我的最后一招能用串口通信做啊(慢就慢点吧,我项目要求不高)

我回公司路上一直在想这个问题就这么死了??

NI的采集卡就这么水货(NI的fans别喷我,我不是骂人,只是愤懑下)??NI就没有成功

脉冲口控制伺服并且读取伺服的编码器的案例??

电话直接打给NI AE,跟我扯了半天算法,去除伺服ON的计数,我就说我计时伺服ON瞬

间就发脉冲让他转,可是这个时隙内也是有伺服ON状态的脉冲出来 我无法知道是多少个

啊??怎么弄!!问了N个NI的AE,无解,有的推荐运动控制卡!!无语!

现在就死在最后一步,伺服ON 的 时候 采集卡不能正确分清楚那个丁点儿脉宽的换相而

造成无法在正常使用的时候计算角度!

最后泛华一位老前辈徐总(现在离开泛华)来公司玩,经验丰富的很,跟他唠叨了下,他很

肯定的说他遇见过,并且肯定能解决,坐下来给我的程序改了半个小时,OKOK了~~~

非常 简单非常简单,NI自己的采集卡通过软件可以实现硬件滤波,滤波范围可以自己写,

但是其实只有四档,写错他会提示你只能填写某某四个范围,然后试着写进去一个总算找到

一个好的了,大致原理就是虑掉脉宽或者XX频率下的脉冲吧,我很不专业,自己给自己理

解过去就是啦(理解对吗)。。总之从此一切OK 角度准确无误读取到!

回过头来问我同事为什么没这个周折,才注意到他是步进电机不需要伺服ON,人家STOP

就是安静的躺在那,而我伺服是嗡嗡锁在那。。。差距就在这。。

试验成功,印刷电路图,开始动工,硬着头皮买了另外两个伺服…用吧!

下一个项目我放弃用伺服了,继续步进+编码器,因为我们是NI的忠实用户,继续用NI的

卡啦!
 楼主| 发表于 2009-9-30 14:13:27 | 显示全部楼层
本帖最后由 baochuan 于 2009-9-30 14:14 编辑

还是这个论坛亲和,发的这么流畅,去VIHOME又是说我是广告贴,有说我字数多

我修改字数时超过1分钟 还自动给我关闭掉编辑画面,我修改了10几次都被中途关闭了,郁闷,最后分三半发出去的

我发贴希望用过用过伺服电机的便宜在读取伺服编码器的时候有没有遇见过类似问题

你们是怎么解决的希望能分贴分享下,谢谢
回复 顶

使用道具 举报

发表于 2009-9-30 15:27:40 | 显示全部楼层
不是很清楚,在我的理解中,仔细阅读用户手册,实在不懂就和他们技术人员沟通(别和售后的),然后搜索,问题不是很大~~~除非你用最新的产品,被你发现BUG了o(∩_∩)o...

不过还是很喜欢这样的类似笔记的技术档,加油~~
回复 顶

使用道具 举报

 楼主| 发表于 2009-10-1 09:31:01 | 显示全部楼层
谢谢斑竹支持
是这样子的 控制转动很简单

问题出现在读取编码器的反馈信号,如果是步进电机的话,静止就是静止,很简单

但是伺服电机的话,貌似NI很擅长就是运动控制卡了,尔用Counter口读取伺服编码器的时候

会出现采集卡无法辨认到伺服出于伺服ON状态的换向信号而导致计数出错

有时间你可以试验下 随便NI采集卡counter口读取编码器一圈脉冲数,伺服不ON  手波动很正常

伺服一ON  计数器就 over了 就傻掉了。。不灵光了!
回复 顶

使用道具 举报

苏扬 该用户已被删除
发表于 2009-10-30 13:17:32 | 显示全部楼层
我想看一下你的采集编码器角度的程序,可以吗?
回复 顶

使用道具 举报

spoon77 该用户已被删除
发表于 2011-6-9 16:30:56 | 显示全部楼层
差分转为单端的电路图 我找到了  给大家分享一下
按照这个网址,可以看到电路, http://digital.ni.com/public.nsf ... EC1862574A50025FED9
回复 顶

使用道具 举报

spoon77 该用户已被删除
发表于 2011-6-9 16:27:58 | 显示全部楼层
楼主,我遇到了和你一样的问题,看了你的试验经验,帮助很大的,我是用PCI-6259驱动mr-j3-100a伺服放大器,现在实现了采集卡脉冲输出驱动伺服电机,采集编码器信号的时候,也遇到了问题,采集卡通过软件可以实现硬件滤波的程序,可不可以发上来分享一下,急需!!我邮箱:shaofan@japhl.com.cn   
回复 顶

使用道具 举报

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

本版积分规则

Archiver|手机版|cpubbs论坛. ( 粤ICP备09171248号 )

GMT+8, 2026-9-28 14:43 , Processed in 0.031911 second(s), 8 queries , Gzip On, File On.

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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