由于前段時間提供給客戶的一個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重新編輯 ]