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