工控網(wǎng)首頁
>

應(yīng)用設(shè)計(jì)

>

在PLC程序中使用定時(shí)器

在PLC程序中使用定時(shí)器

2006/10/12 9:35:00
1 引言 對(duì)于搞工控的人士來說,一定對(duì)定時(shí)器不會(huì)陌生,甚至可以說,每時(shí)每刻都離不開定時(shí)器。無論是為了濾除信號(hào)的抖動(dòng),還是定期循環(huán)執(zhí)行特定的任務(wù),還是在規(guī)定的時(shí)刻自動(dòng)采樣數(shù)據(jù),還是歷經(jīng)一定的工藝過程后中止任務(wù)的執(zhí)行,諸如此類等等、等等,都要借助定時(shí)器來完成。在各種PLC系統(tǒng)中,也大都提供了豐富靈活的定時(shí)指令,但要真正用好定時(shí)器,讓它恰如其分地發(fā)揮它應(yīng)有的作用,并非是一件容易的事情。筆者想結(jié)合自己的經(jīng)驗(yàn)和體會(huì),來著重探討一下西門子PLC系統(tǒng)中的各種定時(shí)器,以及如何構(gòu)筑符合自己需要的定時(shí)器。 在西門子的S7-300和S7-400系列PLC系統(tǒng)中,有5條定時(shí)器指令,根據(jù)我們的實(shí)際需要,可以靈活選擇使用。但是,如果定時(shí)的預(yù)置時(shí)間特別長(zhǎng),就不能簡(jiǎn)單地直接使用基本定時(shí)器指令了,而這要用到集成在STEP7軟件中的功能塊;或者定時(shí)的精度要求特別高,比如間隔特定的時(shí)間重復(fù)采樣,這樣的任務(wù)可能使用時(shí)間中斷OB塊應(yīng)該更可靠。所以我們應(yīng)該根據(jù)控制任務(wù),選擇使用合適的定時(shí)器。 2 使用基本定時(shí)器指令 在STEP7中,基本定時(shí)器指令共有5條,分別是:延時(shí)接通型定時(shí)器,保持型延時(shí)接通定時(shí)器,脈沖型定時(shí)器,擴(kuò)展脈沖型定時(shí)器和延時(shí)斷開型定時(shí)器。它們的預(yù)置值數(shù)據(jù)類型都是S5TIME類型,參見圖1,所以最大定時(shí)預(yù)置值是999×0.01 =9,990 秒或999×10 =9999 秒,即2小時(shí)46分鐘30秒(取決于選取的時(shí)基)。我們分別來看一下這5類定時(shí)器:
2.1 延時(shí)接通型定時(shí)器 顧名思義,觸發(fā)信號(hào) “0”到“1”的跳變(上升沿)啟動(dòng)定時(shí)器開始計(jì)時(shí),定時(shí)器的狀態(tài)保持為“0”,直到預(yù)置的時(shí)間達(dá)到,定時(shí)器才會(huì)輸出“1”。如果在定時(shí)運(yùn)行過程中,觸發(fā)信號(hào)復(fù)位為“0”,或復(fù)位輸入端有上升沿信號(hào),那么,定時(shí)器終止定時(shí)運(yùn)行,輸出仍為“0”信號(hào)。正確使用該定時(shí)器,關(guān)鍵要確保啟動(dòng)信號(hào)是可以保持的信號(hào)。 2.2 保持型延時(shí)接通定時(shí)器 它與延時(shí)接通型定時(shí)器的功能差不多,唯一的區(qū)別是觸發(fā)信號(hào)不必是保持的信號(hào),一個(gè)瞬時(shí)脈沖信號(hào)足以觸發(fā)定時(shí)器的運(yùn)行,并且能走完定時(shí)值,輸出為“1”信號(hào)。如果循環(huán)使用時(shí)要注意給它復(fù)位,如果沒有復(fù)位輸入端的上升沿信號(hào),或沒有新的啟動(dòng)觸發(fā)信號(hào),它的輸出始終保持為“1”。 2.3 脈沖型定時(shí)器 輸出脈沖的最大寬度是預(yù)置的時(shí)間值。它的啟動(dòng)運(yùn)行也需要觸發(fā)信號(hào) “0”到“1”的跳變(上升沿),而且運(yùn)行過程中,觸發(fā)信號(hào)必須保持為“1”信號(hào),如果觸發(fā)信號(hào)變?yōu)椤?”,定時(shí)器就停止計(jì)時(shí)運(yùn)行,輸出也復(fù)位為“0”。只要計(jì)時(shí)運(yùn)行中,輸出就為高電平保持型。 2.4 擴(kuò)展脈沖型定時(shí)器 它是脈沖定時(shí)器的擴(kuò)展,就像保持型延時(shí)接通定時(shí)器是延時(shí)接通型定時(shí)器的擴(kuò)展一樣,它也不需要觸發(fā)信號(hào)在計(jì)時(shí)運(yùn)行過程中保持為“1”,即使信號(hào)變?yōu)椤?”,計(jì)時(shí)照常運(yùn)行,直到預(yù)置時(shí)間到,除非觸發(fā)信號(hào)又有新的跳變,計(jì)時(shí)重新開始進(jìn)行。 2.5 延時(shí)斷開型定時(shí)器 與延時(shí)接通型定時(shí)器相反,它是計(jì)時(shí)過程中,輸出為“1”信號(hào),直到預(yù)置定時(shí)時(shí)間達(dá)到,定時(shí)器復(fù)位為“0”信號(hào)。與之顯著不同的是,觸發(fā)信號(hào)的“1”到“0”的跳變(下降沿)觸發(fā)定時(shí)器計(jì)時(shí)運(yùn)行,且運(yùn)行過程中觸發(fā)信號(hào)必須保持為“0”,否則定時(shí)器終止運(yùn)行。
3 使用集成在系統(tǒng)的功能塊庫來實(shí)現(xiàn)定時(shí) 集成在STEP7軟件中,有許多功能庫,在庫中有些功能塊是與計(jì)時(shí)相關(guān)的。比如:SF3"TP"對(duì)應(yīng)基本定時(shí)器中的脈沖型定時(shí)器;SFB4 "TON"對(duì)應(yīng)延時(shí)接通型定時(shí)器;SFB5 "TOF"對(duì)應(yīng)延時(shí)斷開型定時(shí)器。但這些功能塊的預(yù)置定時(shí)值卻是32位的TIME數(shù)據(jù)類型,計(jì)時(shí)精度是1ms。最大的定時(shí)值可以達(dá)到24天20小時(shí)31分23秒648毫秒,這樣極大地?cái)U(kuò)展了計(jì)時(shí)的范圍。 這三個(gè)功能塊的參數(shù)是類似的,下面以SFB4 "TON"為例作介紹,參照?qǐng)D3,IN端是觸發(fā)信號(hào)輸入端,它的上升沿觸發(fā)定時(shí)器運(yùn)行;PT是 預(yù)置定時(shí)時(shí)間,是TIME數(shù)據(jù)類型;Q端是輸出端,可以得到定時(shí)器的狀態(tài);ET是當(dāng)前計(jì)時(shí)值輸出端。
此外,在STEP7標(biāo)準(zhǔn)功能塊中,還有其他類型的定時(shí)器,比如說軟件型延時(shí)接通定時(shí)器FC80“TONR”。它的特性與普通的定時(shí)器沒什么不同,所不同的是它每步累加的時(shí)間是OB1上次循環(huán)掃描的執(zhí)行時(shí)間,這一點(diǎn)要特別注意。 4 使用時(shí)間中斷OB塊 在STEP7中,有兩類組織塊與時(shí)間有關(guān)。分別是時(shí)間中斷組織塊OB10到OB17和延時(shí)中斷組織塊OB20到OB23。前者可以執(zhí)行一次,或間隔一定的時(shí)間(比如:每分鐘、每小時(shí)、每天、每周等等)來自動(dòng)執(zhí)行,后者則是延時(shí)設(shè)定的時(shí)間后執(zhí)行設(shè)定的任務(wù)。 使用時(shí)間中斷組織塊時(shí),我們只要把要執(zhí)行的程序代碼編寫到選中的OB塊中,然后激活該OB塊就可以了。有兩種方法可以激活OB塊的中斷運(yùn)行。其一是在做硬件配置時(shí),選中CPU的屬性選項(xiàng)卡,參照?qǐng)D4,選擇“Time-of-Day Interrupts”標(biāo)簽,特別注意要選中“Active”復(fù)選框,在“Execution”的下拉框中選擇執(zhí)行的時(shí)間間隔。完成這些選項(xiàng)后也就激活了該時(shí)間中斷。其二是調(diào)用系統(tǒng)功能塊來完成時(shí)間的設(shè)定和組織塊的激活,其中SFC28 "SET_TINT"是設(shè)定時(shí)間中斷,SFC30 "ACT_TINT." 是激活時(shí)間中斷的執(zhí)行。
延時(shí)中斷組織塊的執(zhí)行只有調(diào)用系統(tǒng)功能塊來實(shí)現(xiàn)了。分別有3個(gè)系統(tǒng)功能塊與之對(duì)應(yīng),它們是:SFC32 (SRT_DINT)激活延時(shí)中斷,SFC33 (CAN_DINT)取消延時(shí)中斷和SFC34 (QRY_DINT)查詢延時(shí)中斷。 由于中斷組織塊的優(yōu)先級(jí)比較高,不會(huì)被低優(yōu)先級(jí)的任務(wù)所打斷,可以把一些對(duì)時(shí)間要求比較苛刻的任務(wù)放到中斷組織塊中來執(zhí)行,這樣可以更充分地保證特定任務(wù)的可靠運(yùn)行。 5 使用其它方法構(gòu)造定時(shí)器 構(gòu)造定時(shí)器還可以采用一些非常規(guī)的方法,比如說,我們可以用加法構(gòu)造遞加定時(shí)器,用加法構(gòu)造遞減定時(shí)器。參照?qǐng)D5,我們用整數(shù)加法構(gòu)造出了計(jì)時(shí)長(zhǎng)度為65535秒的定時(shí)器。當(dāng)然,我們可以還使用計(jì)數(shù)器對(duì)時(shí)鐘脈沖進(jìn)行計(jì)數(shù),靈活地構(gòu)造定時(shí)器。
6 結(jié)束語 以上介紹了使用定時(shí)器的各種各樣的方法,歸根結(jié)底目的只有一個(gè):為我們的生產(chǎn)生活服務(wù)。根據(jù)我們的實(shí)際情況來選擇合適的方法,如果基本的定時(shí)器可以滿足要求,我們沒有必要非要舍近求遠(yuǎn),以炫耀我們的編程技巧,因?yàn)槟菢又荒苁菄W眾取寵,有些情況下可能是事半功倍的。記?。汉?jiǎn)單的是最可靠的。 參考文獻(xiàn) [1] 西門子公司. Ladder Logic (LAD) for S7-300 and S7-400 Programming. [2] 西門子公司. System and Standard Functions for S7-300/400. 作者簡(jiǎn)介 劉安杰(1969年) 男 工程師 現(xiàn)致力于數(shù)控機(jī)床的開發(fā)和組態(tài)軟件的應(yīng)用設(shè)計(jì)。
投訴建議

提交

查看更多評(píng)論
其他資訊

查看更多

SEW-EuroDrive Movitrac07

淺談變頻器在不同運(yùn)行模式下的參數(shù)設(shè)定和接線

歐陸調(diào)功器資料

西門子遠(yuǎn)程訪問診斷的應(yīng)用

Siemens NC刀庫管理