內(nèi)蒙古西門子S7-200SMARTPLC代理批發(fā)銷售
西門子S7-200 PLC高速計(jì)數(shù)器的初始化

每個(gè)高速計(jì)數(shù)器都有一個(gè)32位的當(dāng)前值寄存器和一個(gè)32位的設(shè)定值寄存器,當(dāng)前值和設(shè)定值都是有符號(hào)整數(shù)。為了向高速計(jì)數(shù)器裝入新的當(dāng)前值和設(shè)定值,必須設(shè)定包含當(dāng)前值或設(shè)定值的控制字節(jié)及特殊內(nèi)存字節(jié)。然后執(zhí)行HSC指令,使新數(shù)值傳送到高速計(jì)數(shù)器。表4-31列舉了用于裝入新當(dāng)前值及設(shè)定值的特殊內(nèi)存字節(jié)。
表4-31 高速計(jì)數(shù)器的當(dāng)前值和設(shè)定值
高速計(jì)數(shù)器 | HSC0 | HSC1 | HSC2 | HSC3 | HSC4 | HSC5 |
當(dāng)前值寄存器 | SMD38 | SMD48 | SMD58 | SMD136 | SMD148 | SMD158 |
設(shè)定值寄存器 | SMD42 | SMD52 | SMD62 | SMD142 | SMD152 | SMD162 |
由于高速計(jì)數(shù)器的HDEF指令在進(jìn)入RUN模式后只能執(zhí)行一次,為了減少程序運(yùn)行時(shí)間,優(yōu)化程序結(jié)構(gòu),一般以子程序的形式進(jìn)行初始化。下面以HSC1為例,介紹高速計(jì)數(shù)器各個(gè)工作模式的初始化步驟。
定義計(jì)數(shù)器及計(jì)數(shù)器模式后,可對(duì)計(jì)數(shù)器動(dòng)態(tài)參數(shù)進(jìn)行編程。各高速計(jì)數(shù)器均有控制字節(jié),可起動(dòng)或關(guān)閉計(jì)數(shù)器、控制方向(只用于模式0、1、2)或其他全部模式的初試計(jì)數(shù)方向、裝載當(dāng)前數(shù)值及預(yù)設(shè)數(shù)值。高速計(jì)數(shù)器的控制字見(jiàn)表4-30。
表4-30 高速計(jì)數(shù)器的控制字
HSC0 | HSC1 | HSC2 | HSC3 | HSC4 | HSC5 | 說(shuō) 明 |
SM37.0 | SM47.0 | SM57.0 | - | SM147.0 | - | 復(fù)位控制:0=高電平有效,1=低電平有效 |
- | SM47.1 | SM57.1 | - | - | - | 啟動(dòng)控制:0=高電平有效,1=低電平有效 |
SM37.2 | SM47.2 | SM57.2 | - | SM147.2 | - | 正交速率:0=4倍頻,1=1倍頻 |
SM37.3 | SM47.3 | SM57.3 | SM137.3 | SM147.3 | SM157.3 | 計(jì)數(shù)方向:0=減計(jì)數(shù),1=增計(jì)數(shù) |
SM37.4 | SM47.4 | SM57.4 | SM137.4 | SM147.4 | SM157.4 | 計(jì)數(shù)方向改變:0=不改變,1=允許改變 |
SM37.5 | SM47.5 | SM57.5 | SM137.5 | SM147.5 | SM157.5 | 設(shè)定值更新:0=不更新,1=允許更新 |
SM37.6 | SM47.6 | SM57.6 | SM137.6 | SM147.6 | SM157.6 | 當(dāng)前值更新:0=不更新,1=允許更新 |
SM37.7 | SM47.7 | SM57.7 | SM137.7 | SM147.7 | SM157.7 | 高速計(jì)數(shù)控制:0=禁止計(jì)數(shù),1=允許計(jì)數(shù) |
①調(diào)用初始化程序:利用SM0.1來(lái)調(diào)用一個(gè)初始化子程序。
②裝載控制字:在初始化子程序中,根據(jù)需要向SMB47裝入控制字節(jié)。
例如:

對(duì)于模式0、1、2來(lái)說(shuō),SMB47=16#F8,其意義是:允許計(jì)數(shù),允許寫入新的當(dāng)前值,允許寫入新的設(shè)定值,計(jì)數(shù)方向?yàn)樵鲇?jì)數(shù),啟動(dòng)和復(fù)位信號(hào)均為高電平有效。
對(duì)于模式3、4、5來(lái)說(shuō),SMB47=16#F8,其意義是:允許計(jì)數(shù),允許寫入新的當(dāng)前值,允許寫入新的設(shè)定值,計(jì)數(shù)方向由外部輸入點(diǎn)I0.7控制(I0.7=0為減,I0.7=1為增),啟動(dòng)和復(fù)位信號(hào)均為高電平有效。
對(duì)于模式6、7、8來(lái)說(shuō),SMB47=16#F8,其意義是:允許計(jì)數(shù),允許寫入新的當(dāng)前值,允許寫入新的設(shè)定值,I0.6為增脈沖輸入端,T0.7為減脈沖輸入端,啟動(dòng)和復(fù)位信號(hào)均為高電平有效。
對(duì)于模式9、10、11來(lái)說(shuō),SMB47=16#F8,其意義是:允許計(jì)數(shù),允許寫入新的當(dāng)前值,允許寫入新的設(shè)定值,計(jì)數(shù)方向?yàn)樵鲇?jì)數(shù),啟動(dòng)和復(fù)位信號(hào)均為高電平有效,計(jì)數(shù)頻率為4倍頻。如果SMB47=16#FC時(shí),計(jì)數(shù)頻率改為1倍頻。
③執(zhí)行HDEF指令:HSC端為1(選擇1號(hào)高速計(jì)數(shù)器),MODE端為0~11(12種模式的區(qū)別見(jiàn)表4-30)。
④裝載高速計(jì)數(shù)器的當(dāng)前值:將希望的當(dāng)前計(jì)數(shù)值裝入SMD48(裝載0進(jìn)行清除)。
⑤裝載高速計(jì)數(shù)器的設(shè)定值:將希望的設(shè)定值裝入SMD52(雙字尺寸數(shù)值)。
⑥設(shè)置中斷:如果希望捕獲當(dāng)前值等于設(shè)定值,則將CV=PV中斷事件(事件13)與中斷程序連接( ATCH),并編寫中斷服務(wù)程序;如果希望捕獲外部復(fù)位中斷事件,則編寫與中斷事件號(hào)15相關(guān)聯(lián)的中斷服務(wù)程序。
⑦全局開(kāi)中斷:執(zhí)行ENI指令,啟動(dòng)全局中斷。
⑧執(zhí)行HSC指令:執(zhí)行HSC指令,使S7-200對(duì)HSC1進(jìn)行編程。
⑨退出初始化子程序。
高速計(jì)數(shù)器的指令有2條:定義高速計(jì)數(shù)器指令HDEF和執(zhí)行高速計(jì)數(shù)指令HSC。
①定義高速計(jì)數(shù)器指令HDEF(High-speed counter Definition)。HDEF指令的功能是為某個(gè)要使用的高速計(jì)數(shù)器選定一種工作模式。每個(gè)高速計(jì)數(shù)器在使用前,都要用HDEF指令來(lái)定義工作模式,并且每個(gè)高速計(jì)數(shù)器只能有一種工作模式,即只能定義一次。其格式如圖4-75所示。


圖4-75 定義高速計(jì)數(shù)器指令HDEF
定義高速計(jì)數(shù)器指令有兩個(gè)數(shù)據(jù)輸入端:
·HSC為要使用的高速計(jì)數(shù)器編號(hào),數(shù)據(jù)類型為字節(jié)型,數(shù)據(jù)范圍為0~5的常數(shù),分別對(duì)應(yīng)HSC0~HSC5。
·MODE為高速計(jì)數(shù)器的工作模私,數(shù)據(jù)類型為字節(jié)型,數(shù)據(jù)范圍為0~11的常數(shù),分別對(duì)應(yīng)12種工作模式。當(dāng)允許輸入EN有效時(shí),為的高速計(jì)數(shù)器HSC定義工作模式MODE。
影響高速計(jì)數(shù)器允許輸出ENO正常工作的出錯(cuò)條件為:SM4.3(運(yùn)行時(shí)間),0003(輸入沖突),0004(中斷中的非法指令),000A(HSC重新定義)。
為了滿足高速計(jì)數(shù)器的計(jì)數(shù)頻率,使得無(wú)法實(shí)時(shí)監(jiān)控高速計(jì)數(shù)器的當(dāng)前值,而且高速計(jì)數(shù)器也不存在自己的觸點(diǎn)。即對(duì)于高速計(jì)數(shù)器的運(yùn)行監(jiān)控是通過(guò)中斷來(lái)完成的,全部高速計(jì)數(shù)器均支持當(dāng)前值等于設(shè)定值( CV=PV)中斷,并且除HSC3和HSC5外還支持計(jì)數(shù)方向改變中斷和外部復(fù)位中斷。由表4-28可以看出,與高速計(jì)數(shù)器有關(guān)的中斷事件共有14個(gè),整理后如表4-28所示。
表4-28 高速計(jì)數(shù)器引發(fā)的中斷事件
高速計(jì) 數(shù)器編號(hào) | 當(dāng)前值等于設(shè)定值中斷 | 計(jì)數(shù)方向改變中斷 | 外部復(fù)位中斷 |
事件號(hào) | 優(yōu)先級(jí) | 事件號(hào) | 優(yōu)先級(jí) | 事件號(hào) | 優(yōu)先級(jí) |
HSC0 | 12 | 10 | 27 | 11 | 28 | 12 |
HSC1 | 13 | 13 | 14 | 14 | 15 | 15 |
HSC2 | 16 | 16 | 17 | 17 | 18 | 18 |
HSC3 | 32 | 19 | 無(wú) | 無(wú) | 無(wú) | 無(wú) |
HSC4 | 29 | 20 | 30 | 21 | 31 | 22 |
HSC5 | 33 | 23 | 無(wú) | 無(wú) | 無(wú) | 無(wú) |
②執(zhí)行高速計(jì)數(shù)指令HSC(High-Speed Counter)。局速計(jì)數(shù)器在定義之后,高速計(jì)數(shù)器在復(fù)位、更新當(dāng)前值、更新設(shè)定值時(shí),都要使用執(zhí)行高速計(jì)數(shù)器指令HSC,執(zhí)行HSC的目的是使高速計(jì)數(shù)器的設(shè)置生效,按照的工作模式執(zhí)行計(jì)數(shù)操作。其格式如圖4-76所示。

圖4-76 執(zhí)行高速計(jì)數(shù)器指令HSC

執(zhí)行高速計(jì)數(shù)指令有一個(gè)數(shù)據(jù)輸入端N,N為高速計(jì)數(shù)器的編號(hào),數(shù)據(jù)類型為字型,數(shù)據(jù)范圍為0~5的常數(shù),分別對(duì)應(yīng)高速計(jì)數(shù)器HSC0~HSC5。當(dāng)允許輸入EN有效時(shí),啟動(dòng)N號(hào)高速計(jì)數(shù)器工作。
影響HSC指令允許輸出ENO正常工作的出錯(cuò)條件為:SM4.3(運(yùn)行時(shí)間),0001(在HDEF之前使用HSC),0005(同時(shí)使用HSC/PLS)。
為了監(jiān)視高速計(jì)數(shù)器的工作狀態(tài),執(zhí)行由高速計(jì)數(shù)器引起的中斷事件,每個(gè)高速計(jì)數(shù)器都在特殊繼電器區(qū)SMB安排一個(gè)狀態(tài)字節(jié),該字節(jié)的低5位(0~4位)均未使用,其高三位反映了這個(gè)計(jì)數(shù)器的工作狀態(tài),表示當(dāng)前計(jì)數(shù)方向以及當(dāng)前值是否大于或等于預(yù)設(shè)數(shù)值。高速計(jì)數(shù)器的狀態(tài)字的有效位見(jiàn)表4-29。
表4-29 高速計(jì)數(shù)器的狀態(tài)字
HSC0 | HSC1 | HSC2 | HSC3 | HSC4 | HSC5 | 描 述 |
SM36.5 | SM46.5 | SM56.5 | SM136.5 | SM146.5 | SM156.5 | 當(dāng)前計(jì)數(shù)方向的狀態(tài)位:0=減計(jì)數(shù),1=增計(jì)數(shù) |
SM36.6 | SM46.6 | SM56.6 | SM136.6 | SM146.6 | SM156.6 | 當(dāng)前值等于設(shè)定值的狀態(tài)位:0=不等于,1=等于 |
SM36.7 | SM46.7 | SM56.7 | SM136.7 | SM146.7 | SM156.7 | 當(dāng)前值大于設(shè)定值的狀態(tài)位:0=不大于,1=大于 |
注:只有執(zhí)行高速計(jì)數(shù)器的中斷程序時(shí),狀態(tài)字節(jié)的狀態(tài)位才有效。
內(nèi)蒙古西門子S7-200SMARTPLC代理批發(fā)銷售