如何理解和使用STEP7的循環(huán)中斷組織塊OB3x?
在西門子Step7 PLC的編程中,組織塊(OB)是操作系統(tǒng)與用戶程序溝通的橋梁。Step7提供了各種各樣的組織塊,比如用于主程序循環(huán)的組織塊OB1、用于日期時(shí)間中斷的組織塊OB10、用于延時(shí)中斷的組織塊OB20、用于硬件中斷的組織塊OB40、用于診斷中斷的組織塊OB82等等。今天這篇文章,我們想和大家談?wù)凷tep7的循環(huán)中斷組織塊OB3x(x取值從0到8)。

所謂“循環(huán)中斷(Cyclic Interrupt)”,其實(shí)就是周期性的觸發(fā)中斷。通俗的講,就是每隔一段時(shí)間就觸發(fā)一次中斷。誰來觸發(fā)呢?答案是:操作系統(tǒng)。
PLC的操作系統(tǒng)內(nèi)部有若干定時(shí)器,可以給這些定時(shí)器設(shè)置不同的時(shí)間(Interval time)。當(dāng)時(shí)間到了之后,定時(shí)器就會(huì)觸發(fā)一次中斷。之后定時(shí)器重新計(jì)時(shí),下次時(shí)間到了之后,再次觸發(fā)中斷。如此循環(huán),這就是“循環(huán)中斷”(別問我它累不累)。
當(dāng)然,觸發(fā)中斷并不是最終目的。操作系統(tǒng)希望當(dāng)中斷被觸發(fā)后,用戶能來干點(diǎn)什么。于是,它定義了一個(gè)接口模塊,用戶可以把程序?qū)懙竭@個(gè)模塊中。當(dāng)中斷被觸發(fā)后,操作系統(tǒng)會(huì)調(diào)用這個(gè)接口模塊,于是用戶程序就得以執(zhí)行。這就是“中斷處理(Interrupt Handling)”。
在Step7中,這個(gè)接口模塊,就是循環(huán)中斷組織塊。
在S7-300/400中,總共有九個(gè)循環(huán)中斷組織塊:OB30~OB38。不同的組織塊的時(shí)間周期和優(yōu)先級(jí)是不同的,請(qǐng)看下面的表格:

在Step7 V5.5中,OB35的時(shí)間周期是可以修改的,其它OB的周期都不能修改。優(yōu)先級(jí)不能修改,如下圖:

怎么來使用循環(huán)中斷組織塊呢?最簡單的例子是可以用來計(jì)時(shí)。
雖然PLC本身提供了定時(shí)器資源,但是這些定時(shí)器都只能在時(shí)間到了之后給一個(gè)信號(hào)。如果我們想查看定時(shí)器的當(dāng)前時(shí)間,比如某個(gè)過程從計(jì)時(shí)開始已經(jīng)走過了多少時(shí)間,傳統(tǒng)的定時(shí)器是做不到的(IEC定時(shí)器可以在背景數(shù)據(jù)塊中查看,但是不方便)。這種情況就可以利用循環(huán)中斷組織塊來實(shí)現(xiàn)。
比如,我們可以在OB35中寫如下一段代碼:

假設(shè)我們使用OB35的默認(rèn)時(shí)間周期:100ms。那么,每隔100ms,MD0的值就會(huì)加1,這樣就可以實(shí)現(xiàn)一個(gè)時(shí)基為100ms(0.1s)的定時(shí)器。
注:完整功能的定時(shí)器還需要其它代碼。
在S7-1200/1500中,循環(huán)中斷組織塊的時(shí)間周期和優(yōu)先級(jí)都可以根據(jù)需要修改。循環(huán)時(shí)間周期的取值范圍在1~60000ms之間;優(yōu)先級(jí)的取值范圍在2~24之間。如下圖:


好了,關(guān)于Step7的循環(huán)中斷組織塊就先介紹到這里。
-
Origin(Pro):學(xué)習(xí)版的窗口限制【數(shù)據(jù)繪圖】 2020-08-07
-
如何卸載Aspen Plus并再重新安裝,這篇文章告訴你! 2020-05-29
-
CAD視口的邊框線看不到也選不中是怎么回事,怎么解決? 2020-06-04
-
教程 | Origin從DSC計(jì)算焓和比熱容 2020-08-31
-
CAD外部參照無法綁定怎么辦? 2020-06-03
-
CAD中如何將布局連帶視口中的內(nèi)容復(fù)制到另一張圖中? 2020-07-03
