台达用编码器测转速怎样比较准 点击:3080 | 回复:14



刘雨菡2011

    
  • 精华:0帖
  • 求助:7帖
  • 帖子:28帖 | 203回
  • 年度积分:5
  • 历史总积分:1119
  • 注册:2013年10月11日
发表于:2015-11-08 19:42:54
楼主

我想请教台达的大神,怎样写用编码器测转速的程序比较准,就是写出来的结果跟用转速表测得结果差不多的,用SPD指令应该有一点误差,然后再用系数修正,有没有比较准一点的写法,另外一种是我用的M1013的上下沿测半秒内的脉冲数,结果再*120就是一分钟内的脉冲数,这样不知道跟 SPD指令相比,哪一个准,还有没有大神写过的好的程序 ,并且用转速表测过的的程序给个思路,




江湖再见-余辉

  • [版主]
  • 精华:53帖
  • 求助:44帖
  • 帖子:3351帖 | 28451回
  • 年度积分:603
  • 历史总积分:131640
  • 注册:2006年4月25日
发表于:2015-11-08 21:25:57
1楼

高手呢   一起期待            

第五纪冰川

  • 精华:3帖
  • 求助:5帖
  • 帖子:37帖 | 4224回
  • 年度积分:3
  • 历史总积分:12263
  • 注册:2005年2月18日
发表于:2015-11-09 20:39:52
2楼

使用硬件计数器,时间中断,DCNT指令写在中断程序里面,执行到DCNT指令的时候就会去读硬件计数器的现在值,读到后立即执行复位计数器指令。

500mS时间比较长,需要在中断程序中做计数多长中断到500mS。

比如中断时间设置为50mS,中断程序中每次都执行DCNT指令(这样PLC启动后50mS就启动计数器了),再设置一个计数器,当计数到10次时(也就是500mS)就把计数器值读出来,立即复位计数器。

这样做最极端的情况下就是丢失一个脉冲而已,也就是在DCNT指令执行到复位计数器之间的几步指令之间(也就是数uS)内正好到来一个脉冲,这个脉冲虽然被计数器记录到,但却被复位了。也就是复位计数器指令要与DCNT指令尽量靠近,最小也得有一条DMOV指令把计数器读出来的指令。

刘雨菡2011

  • 精华:0帖
  • 求助:7帖
  • 帖子:28帖 | 203回
  • 年度积分:5
  • 历史总积分:1119
  • 注册:2013年10月11日
发表于:2015-11-10 07:34:26
3楼

回复内容:

对: 第五纪冰川 使用硬件计数器,时间中断,DCNT指令写在中断程序里面... 内容的回复!

 嗯,我试一下,我不是在PLC启动后50ms就启动计数器,需要在指定的M启动后才启动计数器,这样写您有用转速表在现场实际测过吗,在速度恒定的情况下误差有多少

第五纪冰川

  • 精华:3帖
  • 求助:5帖
  • 帖子:37帖 | 4224回
  • 年度积分:3
  • 历史总积分:12263
  • 注册:2005年2月18日
发表于:2015-11-10 15:00:03
4楼

使用时间中断的目的是非常精确的定位时间段,只有这个时间精确了才有测准确的基础。

如果要在指定的M启动后才开始计数,比较麻烦一点。因为时间中断是不受控的,是由系统自动启动的。启动M到来后到开始计数最大的允许延迟时间是多少?如果50mS觉得比较长,只能把时间中断调小些,比如10mS,但这样中断太过频繁,开销过大。


当然做过的,感觉特准确。


在忽略定时误差的情况下,最大也就是1个脉冲的误差。这个误差就是从DCNT指令开始到复位计数器的这个短暂时间内所丢失的脉冲。这个时间不过就是数uS定义为T1。速度脉冲的频率PLC最大接受100kHz,实际上比如用1000线的编码器,50rps,也就是50kHz的频率,周期20uS,显然大于T1,也就是最大丢一个脉冲。

检测周期你为500mS,那么1000线*50rpS*(500mS1/S)=25000个脉冲,也就是在忽略时间中断误差的情况下最大误差为1/2W5。定时中断的时间精度没有看到台达给出的参数,但应该是非常高的,估计在uS级别,即使在100uS级别,也不过就是100uS/20uS+1=6,也就是误差不过就是6/2W5.

再考虑晶体振荡器时间误差的情况(现在的高频晶体减震器精度还是挺高的),我觉得0.5/1000的综合精度是完全没有问题的。

刘雨菡2011

  • 精华:0帖
  • 求助:7帖
  • 帖子:28帖 | 203回
  • 年度积分:5
  • 历史总积分:1119
  • 注册:2013年10月11日
发表于:2015-11-11 07:49:17
5楼

 

回复内容:

对: 第五纪冰川 使用时间中断的目的是非常精确的定位时间段,只有这个时间... 内容的回复!

 谢谢老师的回答,我想错了一个问题,这个时间中断我可以上电就开始运行,但这个脉冲数我不但要用来计转速,我在程序中还要它来经过计算复位一个指定的M,就是我要计它的脉冲数到了指定的脉冲数如D100来复位一个M,那就意味着这个脉冲数我不能清零,那这样可以做吗

刘雨菡2011

  • 精华:0帖
  • 求助:7帖
  • 帖子:28帖 | 203回
  • 年度积分:5
  • 历史总积分:1119
  • 注册:2013年10月11日
发表于:2015-11-11 07:51:51
6楼

回复内容:

对: 刘雨菡2011  回复内容:对: 第五纪冰川 使用时间中断的目的是非常... 内容的回复!

 

回复内容:

对: 第五纪冰川 使用时间中断的目的是非常精确的定位时间段,只有这个时间... 内容的回复!

 就是这个M置位后开始计脉冲,到了指定的脉冲数如D100后复位这个M,那这样就不能复位计数器了,D100是不确定的,是根据用户调整大小的,那这样好做吗

第五纪冰川

  • 精华:3帖
  • 求助:5帖
  • 帖子:37帖 | 4224回
  • 年度积分:3
  • 历史总积分:12263
  • 注册:2005年2月18日
发表于:2015-11-11 08:52:35
7楼


回复内容:

对: 刘雨菡2011 回复内容:对: 刘雨菡2011  回复内容:对: 第五... 内容的回复!

用两个输入点并联,启用2个硬件计数器,一个计数器用于测速(时间中断),一个用于脉冲控制(计数器到达中断)。

中断优先级我记不清楚了,你查下。要想精度高点,我也没有找到更好的方法。

本来用软件计数器方便些,但必须在扫描周期中来处理数据,精度肯定不行。

测速的话还有个脉宽测试可以用,但定时分辨率只有0.1mS,精度本来也还不错,但分辨率达不到你的要求。

刘雨菡2011

  • 精华:0帖
  • 求助:7帖
  • 帖子:28帖 | 203回
  • 年度积分:5
  • 历史总积分:1119
  • 注册:2013年10月11日
发表于:2015-11-11 19:09:50
8楼

回复内容:

对: 第五纪冰川 回复内容:对: 刘雨菡2011 回复内容:对: 刘雨菡... 内容的回复!

 我用的是台达DVP48EH3-T,四个HHSC我都 已经用完了,没有办法并联了,两个用于伺服反馈的信号计算位置,两个用于编码器测转速,用AB相的话只有5KHZ的频率,不知道够不够用,我算出来编码器大概有600RPM,用500PPR的编码器的话就是5KHZ,再高的话就计不了了,我还有一个测线速的和计米的已经是用的软件计数器了,就是一个信号并联,一个测转速,一个计米,用的是NPN的感应头,一转10几个脉冲,就是两个编码器的转速我想测准一点,因为那个脉冲算出来是要给伺服的脉冲频率信号,转速越准伺服走得越准,

第五纪冰川

  • 精华:3帖
  • 求助:5帖
  • 帖子:37帖 | 4224回
  • 年度积分:3
  • 历史总积分:12263
  • 注册:2005年2月18日
发表于:2015-11-12 15:56:58
9楼

没招了!加个便宜点的PLC专门用来测速吧。

与伺服之间用通讯不行吗?留一部分工作给伺服自己做。

刘雨菡2011

  • 精华:0帖
  • 求助:7帖
  • 帖子:28帖 | 203回
  • 年度积分:5
  • 历史总积分:1119
  • 注册:2013年10月11日
发表于:2015-11-12 17:13:18
10楼

回复内容:

对: 第五纪冰川 没招了!加个便宜点的PLC专门用来测速吧。与伺服之间用... 内容的回复!

 

谢谢你的回答,我先按照自己的思路来做一下试试看,不行就改吧,主要是这个机器用了两套伺服,轮流更换使用,占用了全部计数器,

cyandsyp01

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 2回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2018-03-16 20:14:20
11楼


回复内容:

对: 第五纪冰川 使用硬件计数器,时间中断,DCNT指令写在中断程序里面... 内容的回复!

有没有程序样例发我一份谢谢

love2009xiu

  • 精华:0帖
  • 求助:2帖
  • 帖子:3帖 | 84回
  • 年度积分:0
  • 历史总积分:95
  • 注册:2011年10月05日
发表于:2018-05-31 22:59:43
12楼

建立缓存区,BMOV 类似于堆栈先进先出,加定时中断,做动态采集比SPD 准确的多。

jack779

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 207回
  • 年度积分:0
  • 历史总积分:116
  • 注册:2014年4月22日
发表于:2019-06-04 08:16:42
13楼

路过,谢谢

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 10回
  • 年度积分:0
  • 历史总积分:93
  • 注册:2019年8月21日
发表于:2019-11-25 20:12:22
14楼

回复内容:

对:love2009xiu 建立缓存区,BMOV 类似于堆栈先进先出,加定时中断,做动态采集比SPD 准确的多。     内容的回复:

可以描述的再详细一些吗


热门招聘
相关主题

官方公众号

智造工程师