何亞福 許 齊 姜子鵬
1.問題的提出
絕對值型編碼器測量范圍是從零到最大脈沖數,脈沖數恒為正數,正轉為當前脈沖遞加,反轉為當前脈沖遞減,斷電后重新上電,可保持斷電前的脈沖數。增量型編碼器斷電后重新上電,當前脈沖數歸零,正轉為正數脈沖遞增,反轉為負數脈沖遞減。
目前壓力機裝模高度調整等部件多采用絕對值型編碼器,總線通信控制方式,根據編碼器旋轉時脈沖數的變化測量編碼器旋轉位置,通過相關傳動軸,測量滑塊等部件位置的變化。但實際生產特別是設備改造過程中,有些舊PLC CPU不支持通信模塊,同時考慮到生產成本,有時需要增量型編碼器實現絕對值型編碼器的功能,下面通過實例,介紹實現過程。
2.實現方法
以OMRON C200HG CPU為例(圖1),C200H-CT021具有CH1和 CH2兩個高速計數通道,將模塊的地址單元號MACHINE NO.撥碼為1,則CH1地址為112,CH2地址為114;若將模式選擇MODE撥碼為0,則C200H-CT021工作方式設置為簡單計數模式。本例將編碼器接入CH1通道,地址112。

(1)系統斷電后重新上電,增量型編碼器當前脈沖數歸零,此時若編碼器正轉,編碼器當前脈沖就會從零開始正數累積增加計數,反轉則出現負脈沖,編碼器當前脈沖就會從零開始負數累積遞減計數。編碼器脈沖讀取地址112內脈沖從0遞增,地址113內數值為F000,最高位F代表負數。由于C200HG等CPU不能運算負數,因此要消除負脈沖里的負數。先將編碼器脈沖讀取地址112、113內的數據分別傳送到中間存儲區DM102、DM103,出現負脈沖時,如果用FFF與DM103中的F000相“邏輯與”,DM103中就變為0000,即消除了負數的負符號。程序見圖2,斷電后重新上電時,這時如果編碼器反轉,出現負脈沖,地址位113.15狀態為ON,通過ANDW字邏輯與指令,將DM103和#FFF相“邏輯與”后,去除DM103內負值位F。


(2)再編寫程序分別運算處理正轉時出現的正脈沖和反轉時出現的負脈沖(圖3)。系統重新上電時,編碼器的脈沖復位為零,當編碼器正轉出現正脈沖,地址位113.15狀態為OFF,用斷電前的脈沖數HR55加上編碼器正轉時出現的正脈沖數DM102,將結果值放進保存寄存器HR50。當編碼器反轉出現負脈沖時,地址位113.15狀態為ON,用斷電前的脈沖數HR55減去編碼器反轉時出現的負脈沖數DM102,將結果值放進保持寄存器HR50。HR50中的脈沖數就是用到的系統當前脈沖數。
(3)編寫程序(圖4),每次系統重新上電時,使用第一次循環標志指令,將斷電前系統的脈沖數HR50傳送給HR55,實現編碼器的斷電保持功能。
經過上述編程處理,該增量型編碼器可作為絕對值型編碼器使用,無論系統是否斷電,保持寄存器HR50中始終保持系統的當前脈沖,讀取地址HR50就可進行各種邏輯運算。
