很多用戶在使用億維UN200 CPU的高速計數(shù)功能時,或多或少都有一些不清楚的地方,下面我就將自己在這方面的一些心得分享給大家, 希望能幫助大家提高對億維UN200 CPU高速計數(shù)功能的理解和應用。
首先,提醒大家注意下:億維UN200 CPU高速脈沖計數(shù)器輸入端接受電平為24V的編碼器,NPN和PNP的輸出都可以接入。
普通計數(shù)器受CPU掃描速度的影響,是按照順序掃描的方式進行工作。在每個掃描周期中,對計數(shù)脈沖只能進行一次累加;對于脈沖信號的頻率比CPU的掃描頻率高時,如果仍采用普通計數(shù)器進行累加,必然會丟失很多對輸入脈沖信號。在CPU中,對比掃描頻率高的輸入信號的計數(shù)可也使用高速計數(shù)器指令來實現(xiàn)。
1.高速計數(shù)器指令
高速計數(shù)器的指令包括:定義高數(shù)計數(shù)器指令HDEF和執(zhí)行高速計數(shù)指令HSC,如下表
(1) 定義高速計數(shù)器指令HDEF
HDEF指令功能是為某個要使用的高速計數(shù)器選定一種工作模式。每個高速計數(shù)器在使用前,都要用HDEF指令來定義工作模式,并且只能用一次。它有兩個輸入端:HSC為要使用的高速計數(shù)器編號,數(shù)據(jù)類型為字節(jié)型,數(shù)據(jù)范圍為0~5的常數(shù),分別對應HC0~ HC5;MODE為高速計數(shù)的工作模式,數(shù)據(jù)類型為字節(jié)型,數(shù)據(jù)范圍為0~11的常數(shù),分別對應12種工作模式。當準許輸入使能EN有效時,為指定的高速計數(shù)器HSC定義工作模式MODE。
(2)執(zhí)行高速計數(shù)指令HSC
HSC指令功能功能是根據(jù)與高速計數(shù)器相關的特殊繼電器確定在控制方式和工作狀態(tài),使高速計數(shù)器的設置生效,按照指令的工作模式的工作模式執(zhí)行計數(shù)操作。它有一個數(shù)據(jù)輸入端N:N為高速計數(shù)器的編號,數(shù)據(jù)類型的字型,數(shù)據(jù)范圍為0~5的常數(shù),分別對應高速計數(shù)器HC0~HC5.當準許輸入EN使能有效時,啟動N號高速計數(shù)器工作。
2.高速計數(shù)器的輸入端
高速計數(shù)器的輸入端不像普通輸入端那樣有用戶定義,而是由系統(tǒng)指定的輸入點輸入信號,每個高速計數(shù)器對它所支持的脈沖輸入端,方向控制,復位和啟動都有專用的輸入點,通過比較或中斷完成預定的操作。每個高速計數(shù)器專用的輸入點如下表:
3.高速計數(shù)器的狀態(tài)字節(jié)
系統(tǒng)為每個高速計數(shù)器都在特殊寄存器區(qū)SMB提供了一個狀態(tài)字節(jié),為了監(jiān)視高速計數(shù)器的工作狀態(tài),執(zhí)行由高速計數(shù)器引用的中斷事件,其格式如下表:
只有執(zhí)行高速計數(shù)器的中斷程序時,狀態(tài)字節(jié)的狀態(tài)位才有效。
4.高速計數(shù)器的工作模式
高速計數(shù)器有12種不同的工作模式(0`~11),分為4類。每個高速計數(shù)器都有多種工作模式,可以通過編程的方法,使用定義高速計數(shù)器指令HDEF來選定工作模式。
(1)各個高數(shù)計數(shù)器的工作模式
a、高速計數(shù)器HC0是一個通用的增減計數(shù)器,共有8種模式,可以通過編程來選擇不同的工作模式,HC0的工作模式如下表:
b.高速計數(shù)器HC1共有12種模式,如下表:
c.高速計數(shù)器HC2共有12種模式,如下表:
d.高速計數(shù)器HC3共有1種模式,如下表:
e.高速計數(shù)器HC4共有8種模式,如下表:
f.高速計數(shù)器HC5共有1種模式,如下表:
5.高速計數(shù)器的控制字節(jié)
系統(tǒng)為每個高速計數(shù)器都安排了一個特殊寄存器SMB作為控制字,可也通過對控制字節(jié)指定為的設置,確定高速計數(shù)器的工作模式。UN200 CPU在執(zhí)行HSC指令前,首先要檢查與每個高速計數(shù)器相關的控制字節(jié),在控制字節(jié)中設置了啟動輸入信號和復位輸入信號的有效電平,正交計數(shù)器的計數(shù)倍率,計數(shù)方向采用內部控制的有效電平,是否允許改變計數(shù)方向,是否允許更新設定值,是否允許更新當前值,以及是否允許執(zhí)行高速計數(shù)指令。
說明:
(1) 在高速計數(shù)器的12種工作模式中,模式0、模式3、模式6和模式9,是既無
啟動輸入,又無復位輸入的計數(shù)器,在模式1、模式4、模式7和模式10中,是只有復位輸入,而沒有啟動輸入的計數(shù)器;在模式2、模式5、模式8和模式11中,是既有啟動輸入,又有復位輸入的計數(shù)器。
(2) 當啟動輸入有效時,允許計數(shù)器計數(shù);當啟動輸入無效時,計數(shù)器的當前值保
持不變;當復位輸入有效時,將計數(shù)器的當前值寄存器清零;當啟動輸入無效,而復位輸入有效時,則忽略復位的影響,計數(shù)器的當前值保持不變;當復位輸入保持有效,啟動輸入變?yōu)橛行r,則將計數(shù)器的當前值寄存器清零。
(3) 在UN200 CPU中,系統(tǒng)默認的復位輸入和啟動輸入均為高電平有效,正交計數(shù)器為4倍頻,如果想改變系統(tǒng)的默認設置,需要設置如上表中的特殊繼電器的第0,1,2位。
各個高速計數(shù)器的計數(shù)方向的控制,設定值和當前值的控制和執(zhí)行高速計數(shù)的控制,是由表4-22中各個相關控制字節(jié)的第3位至第7位決定的。
6.高速計數(shù)器的當前值寄存器和設定值寄存器
每個高速計數(shù)器都有1個32位的經(jīng)過值寄存器HC0-HC5,同時每個高速計數(shù)器還有1個32位的當前值寄存器和1個32位的設定值寄存器,當前值和設定值都是有符號的整數(shù)。為了向高速計數(shù)器裝入新的當前值和設定值,必須先將當前值和設定值以雙字的數(shù)據(jù)類型裝入如表所列的特殊寄存器中。然后執(zhí)行HSC指令,才能將新的值傳送給高速計數(shù)器。
7.高速計數(shù)器的初始化
由于高速計數(shù)器的HDEF指令在進入RUN模式后只能執(zhí)行1次,為了減少程序運行時間優(yōu)化程序結構,一般以子程序的形式進行初始化。下面以HC2為例,介紹高速計數(shù)器的各個工作模式的初始化步驟。
(1)利用SM0.1來調用一個初始化子程序。
(2)在初始化子程序中,根據(jù)需要向SMB47裝入控制字。例如,SMB47=16#F8,其意義是:準許寫入新的當前值,準許寫入新的設定值,計數(shù)方向為曾計數(shù),啟動和復位信號為高電平有效。
(3)執(zhí)行HDEF指令,其輸入?yún)?shù)為:HSC端為2(選擇2號高速計數(shù)器),MODE端為0/1/2(對應工作模式0,模式1,模式2)。
(4)將希望的當前技術值裝入SMD58(裝入0可進行計數(shù)器的清零操作) 5. 將希望的設定值裝入SMD62。
(5)如果希望捕獲當前值等于設定值的中斷事件,編寫與中斷事件號16相關聯(lián)的中斷服務程序。
(6)如果希望捕獲外部復位中斷事件,編寫與中斷事件號18相關聯(lián)的中斷服務程
序。
(7)執(zhí)行ENI指令
(8)執(zhí)行HSC指令
(9)退出初始化子程序
8.高速計數(shù)器應用舉例
某產(chǎn)品包裝生產(chǎn)線用高速計數(shù)器對產(chǎn)品進行累計和包裝,每檢測1000個產(chǎn)品時,自動啟動包裝機進行包裝,計數(shù)方向可由外部信號控制。 設計步驟:
(1)選擇高速計數(shù)器,確定工作模式
在本例中,選擇的高速計數(shù)器為HC0,由于要求技術方向可由外部信號控制,而其不要復位信號輸入,確定工作模式為模式3,采用當前值等于設定值得中斷事件,中斷事件號為12,啟動包裝機工作子程序,高速計數(shù)器的初始化采用子程序。
(2)用SM0.1調用高速計數(shù)器初始化子程序,子程序號為SBR_0。
(3)向SMB37寫入控制字SMB37=16#F8。
(4)執(zhí)行HDEF指令,輸入?yún)?shù):HSC為0,MODE為3。
(5)向SMD38寫入當前值,SMD38=0。
(6)向SMD42寫入設定值。SMD42=1000。
(7)執(zhí)行建立中斷連接指令ATCH,輸入?yún)?shù):INT為INT-0,EVNT為12。
(8)編寫中斷服務程序INT0,在本例中為調用包裝機控制子程序,子程序號為SBR -1。
(9)執(zhí)行全局開中斷指令ENI。
(10)執(zhí)行HSC指令,對高速計數(shù)器編程并投入運行。
下面是程序示例:
MAIN:
子程序和中斷程序沒有寫。
以上就是億維UN200 CPU的高速計數(shù)功能的詳解。希望此篇文章對大家在高速計數(shù)的理解和應用方面有所幫助。