高速計數器HSC一般和編碼器配合使用,在現代自動控制中實現精確定位和測量長度。它可用來累計比可編程序控制器的掃描頻率高得多的脈沖輸入,利用其產生的中斷事件完成預定的操作。
一、數量及編號(一)中斷源及種類
高速計數器在程序中使用時的地址編號用HCn來表示(在非程序中有時用HSCn),n為編號。
HCn除了表示高速計數器的編號之外,還代表兩方面的含義:高速計數器位和高速計數器當前值。編程時,從所用的指令可以看出是位還是當前值。
二、高速計數指令(一)高速計數器指令
高速計數器指令有兩條:HDEF和HSC。
1、HDEF,定義高速計數器指令
使能輸入有效時,為指定的高速計數器分配一種工作模式,即用來建立高速計數器與工作模式之間的聯系。
梯形圖指令盒中有兩個數據輸入端:HSC,高速計數器編號,為0~5的常數,字節型;MODE,工作模式,為0~11的常數,字節型。
2、HSC,高速計數器指令
使能輸入有效時,根據高速計數器特殊存儲器位的狀態,并按照HDEF指令指定的工作模式,設置高速計數器并控制其工作。
梯形圖指令盒數據輸入端N:高速計數器編號,為0~5的常數,字型。
高速計數器的時鐘、方向控制、復位和啟動所使用輸入如下圖所示。
(二)高速計數器的使用方法
每個高速計數器都有固定的特殊功能存儲器與之相配合,完成高速計數功能。具體對應關系如下圖所示。
每個高速計數器都有一個狀態字節,程序運行時根據運行狀況自動使某些位置位,可以通過程序來讀相關位的狀態,用以作為判斷條件實現相應的操作。狀態字節中各狀態位的功能如下圖所示。
使用高速計數器時,要按以下步驟進行:
◆ 選擇計數器及工作模式
◆ 設置控制字節
◆ 執行HDEF指令
◆ 設定當前值和預設值
◆ 設置中斷事件并全局開中斷
◆ 執行HSC指令
(三)應用實例
要對一高速事件精確控制,通過對脈沖信號進行增計數,計數當前值達到24產生中斷,重新從0計數,對中斷次數進行累計。計數方向用一個外部信號控制,并能實現外部復位。所用的主機型號為CPU221。
設計步驟:
①選擇高速計數器HSC0,并確定工作方式4
②令SM37=16#F8
③執行HDEF指令,輸入端HSC為0,MODE為4
④裝入當前值,令SMD38=0
⑤裝入設定值,令SMD42=24
⑥執行中斷連接ATCH指令,輸入端INT為INT0,EVNT為10。
主程序、初始化子程序和中斷程序分別如圖所示。