18luck网站

18luck网站電子設計 | 18luck网站Rss 2.0 會員中心 會員注冊
搜索: 您現在的位置: 18luck网站 >> 18luck平台 >> PLC基礎及應用 >> 正文

plc高速計數器指令及舉例

作者:佚名    文章來源:本站原創    點擊數:    更新時間:2018-08-08

高速計數器指令及舉(ju) 例

1. 高速計數器指令

高速計數器指令有兩(liang) 條:高速計數器定義(yi) 指令HDEF、高速計數器指令HSC。指令格式如表6-9所示。

(1)高速計數器定義(yi) 指令HDEF。指令指定高速計數器(HSCx)的工作模式。工作模式的選擇即選擇了高速計數器的輸入脈衝(chong) 、計數方向、複位和起動功能。每個(ge) 高速計數器隻能用一條“高速計數器定義(yi) ”指令。

(2)高速計數器指令HSC。根據高速計數器控製位的狀態和按照HDEF指令指定的工作模式,控製高速計數器。參數N指定高速計數器的號碼。

表6-9 高速計數器指令格式

LAD

STL

HDEF  HSC,MODE

HSC  N

功能說明

高速計數器定義(yi) 指令HDEF

高速計數器指令HSC

操作數

HSC:高速計數器的編號,為(wei) 常量(0~5)數據類型:字節

MODE工作模式,為(wei) 常量(0~11)

數據類型:字節

N:高速計數器的編號,為(wei) 常量(0~5)數據類型:字

ENO=0的出錯條件

SM4.3(運行時間),0003(輸入點衝(chong) 突),

0004(中斷中的非法指令),000A(HSC重複定義(yi) )

SM4.3 (運行時間),0001(HSC在HDEF之前),0005(HSC/PLS同時操作)

2. 高速計數器指令的使用

(1)每個(ge) 高速計數器都有一個(ge) 32位當前值和一個(ge) 32位預置值,當前值和預設值均為(wei) 帶符號的整數值。要設置高速計數器的新當前值和新預置值,必須設置控製字節(表6-7),令其第五位和第六位為(wei) 1,允許更新預置值和當前值,新當前值和新預置值寫(xie) 入特殊內(nei) 部標誌位存儲(chu) 區。然後執行HSC指令,將新數值傳(chuan) 輸到高速計數器。當前值和預置值占用的特殊內(nei) 部標誌位存儲(chu) 區如表6-10所示。

表6-10  HSC0-HSC5當前值和預置值占用的特殊內(nei) 部標誌位存儲(chu) 區

要裝入的數值

HSC0

HSC1

HSC2

HSC3

HSC4

HSC5

新的當前值

SMD38

SMD48

SMD58

SMD138

SMD148

SMD158

新的預置值

SMD42

SMD52

SMD62

SMD142

SMD152

SMD162

除控製字節以及新預設值和當前值保持字節外,還可以使用數據類型HC(高速計數器當前值)加計數器號碼(0、1、2、3、4或5)讀取每台高速計數器的當前值。因此,讀取操作可直接讀取當前值,但隻有用上述HSC指令才能執行寫(xie) 入操作。

(2)執行HDEF指令之前,必須將高速計數器控製字節的位設置成需要的狀態,否則將采用默認設置。默認設置為(wei) :複位和起動輸入高電平有效,正交計數速率選擇4×模式。執行HDEF指令後,就不能再改變計數器的設置,除非CPU進入停止模式。

(3)執行HSC指令時,CPU檢查控製字節和有關(guan) 的當前值和預置值。

3. 高速計數器指令的初始化

高速計數器指令的初始化的步驟如下:

(1)用首次掃描時接通一個(ge) 掃描周期的特殊內(nei) 部存儲(chu) 器SM0.1去調用一個(ge) 子程序,完成初始化操作。因為(wei) 采用了子程序,在隨後的掃描中,不必再調用這個(ge) 子程序,以減少掃描時間,使程序結構更好。

(2) 在初始化的子程序中,根據希望的控製設置控製字(SMB37、SMB47、SMB137、SMB147、SMB157),如設置SMB47=16#F8,則為(wei) :允許計數,寫(xie) 入新當前值,寫(xie) 入新預置值,更新計數方向為(wei) 加計數,若為(wei) 正交計數設為(wei) 4×,複位和起動設置為(wei) 高電平有效。

(3)執行HDEF指令,設置HSC的編號(0-5),設置工作模式(0-11)www.fpxing.com。如HSC的編號設置為(wei) 1,工作模式輸入設置為(wei) 11,則為(wei) 既有複位又有起動的正交計數工作模式。

(4)用新的當前值寫(xie) 入32位當前值寄存器(SMD38,SMD48,SMD58 ,SMD138, SMD148, SMD158)。如寫(xie) 入0,則清除當前值,用指令MOVD   0,SMD48實現。

(5)用新的預置值寫(xie) 入32位預置值寄存器(SMD42 ,SMD52, SMD62, SMD142 ,SMD152, SMD162)。如執行指令MOVD  1000,SMD52,則設置預置值為(wei) 1000。若寫(xie) 入預置值為(wei) 16#00,則高速計數器處於(yu) 不工作狀態。

(6)為(wei) 了捕捉當前值等於(yu) 預置值的事件,將條件CV=PV中斷事件(事件13)與(yu) 一個(ge) 中斷程序相聯係。

(7)為(wei) 了捕捉計數方向的改變,將方向改變的中斷事件(事件14)與(yu) 一個(ge) 中斷程序相聯係。

(8)為(wei) 了捕捉外部複位,將外部複位中斷事件(事件15)與(yu) 一個(ge) 中斷程序相聯係。

(9)執行全局中斷允許指令(ENI)允許HSC中斷。

(10)執行HSC指令使S7-200對高速計數器進行編程。

(11)結束子程序。

【例6-4】高速計數器的應用舉(ju) 例。

(1)主程序

如圖6-11所示,用首次掃描時接通一個(ge) 掃描周期的特殊內(nei) 部存儲(chu) 器SM0.1去調用一個(ge) 子程序,完成初始化操作。

 

 高速計數器指令及舉(ju)

 















(2)初始化的子程序

如圖6-12所示,定義(yi) HSC1的工作模式為(wei) 模式11(兩(liang) 路脈衝(chong) 輸入的雙相正交計數,具有複位和起動輸入功能),設置SMB47=16#F8(允許計數,更新新當前值,更新新預置值,更新計數方向為(wei) 加計數,若為(wei) 正交計數設為(wei) 4×,複位和起動設置為(wei) 高電平有效)。HSC1的當前值SMD48清零,預置值SMD52=50,當前值 = 預設值,產(chan) 生中斷(中斷事件13),中斷事件13連接中斷程序INT-0。

(3)中斷程序INT-0,如圖6-13所示。

LD SM0.0

MOVD +0 SMD48     // HSC1的當前值清0

MOVB 16#C0 SMB47  //隻寫(xie) 入一個(ge) 新當前值,                                                

預置值不變,計數方向不變,  

HSC1允許計數

HSC 1               //執行HSC1指令

Tags:高速計數器,指令,plc指令,plc梯形圖  
責任編輯:admin
請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
1分 2分 3分 4分 5分

還可以輸入 200 個字
[ 查看全部 ] 網友評論
關於我們 - 聯係我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
返回頂部
刷新頁麵
下到頁底
晶體管查詢