cyh1986
級別: 家園常客
|
以前使用三菱的時候,直接讀取C251的數值,然后換成成距離。C251過零之后應該是繼續減計數變成負值。現在手頭有個工控板,防三菱的那種。他的C251是循環計數的,當C251超過65535的時,又繼續從0開始計數。當減計數超過0的時候,在繼續從65535開始減計數。編碼器是增量編碼器 請問大家這個在編程時怎么處理呢? 以前用過絕對值編碼,感覺意思上差不多。之前用的是單圈的絕對值編碼器,在做多圈用的時候,比較麻煩,后來是找的某一個點,判斷是正過圈還是反過圈,然后設置一個圈數,最后來計算距離的。感覺好麻煩,不知道大家只怎么處理這種的。 |
---|---|
|
1421448580
級別: 略有小成
|
說一個思路: 高速記數轉移到一個寄存器,然后除以一個數字(或者直接用原始數據),確保這個商值在PLC的每個運行周期間的變化不會太大,然后取相鄰周期商值 變化 類似求導 如果結果是負值,位置直接減這個負值表示的距離 得到當前位置,如果結果是相當大的一個正數 那么 也是反轉 直接把這個正數減一個寄存器里可能的最大值 得到一個負數,當前位置減這個負數表示的距離為當前位置。 類似有正轉的的判斷和處理 |
---|---|
|