由于前段时间提供给客户的一个2000线增量A/B/Z编码器出现丢脉冲的情况,所以现在对新采购的编码器都要逐一测试。
测试的思路是这样的:A/B接计数器,Z接中断,当Z中断时把A/B计数器的值读出来,并且复位A/B计数器,这样编码器每转一圈计数器读出的数据就应该是编码器的分辨率,如果编码器丢脉冲,计数器读出的值就会比编码器分辨率小。
最开始使用西门子S7-200,使用A/B接硬件计数器,Z接外部中断,但外部中断受输入滤波时间影响,编码器速度稍快就出现数据不准确,用手旋转编码器。
改为Z接另外一个编码器,计数到1中断,在中断程序中读A/B计数器,复位A/B计数器,复位Z计数器。这样编码器速度会稍快些(大约2转/秒),就出现数据不准确。
再换台达ES2,用同样的A/B硬件计数器,Z接硬件计数器中断,编码器速度稍快(大约2转/秒),同样出现计数不准确的情况,大多数是丢脉冲。
计数器的速度是没有问题的,按道理,Z计数中断到复位A/B计数器速度会很快,数条指令而已。出现计数不准,估计是Z计数中断——A/B计数器复位用时过长。
大家看看这是怎么个情况!
[ 此帖被lvpretend在2018-09-27 17:04重新编辑 ]