发布于 2015-06-23 13:57:09
20楼
仔细捉摸一下就知道了。
HSC高速计数器,别说对那些1M、100K的脉冲计数了,就是1K的,脉冲周期宽度就是1毫秒。AB正交模式,在250微秒内就需要:取值-判断-存储一次。这得在中断中去写吧?可惜呀可惜,S7 1200的定时中断最快只能1毫秒。即便使用沿中断,程序循环中插入这么多次中断,不知道循环OB要延长到啥程度。
再说低速。我们知道AB正交序列:假定正转是00_A0_AB_0B_00;反转是00_0B_AB_A0_00。各为正反一个计数。
假定,停止时处于00和A0之处,由于振动,信号可能出现00_A0_00_A0。。。你说程序应该判断是故障呢?还是正常?
要是说正常吧,B相断掉了它也是00_A0_00_A0。
要是判断是故障吧;那就会看到经常性地“谎”报故障。
注意了么?在驱动中也是推荐采用A+/A-;B+/B-;R+/R-差分方式。编码器硬件模块实际并不是检测评估电平,而是电流方向。任意一相一旦断路,硬件直接报编码器故障。所以很多旋转编码器都提供OC的,就是方便对其检测做设计。
学而时习之,不亦说乎?温故而知新,不亦乐乎?