PAUSE用法以及方波發生器的設計

一、定時器S_PAUSE

S_PAUSE在STEP7中稱為“脈衝定時器”,其用法如圖1所示。

STEP7中定時器的S_PAUSE用法以及方波發生器的設計

圖1 S_PAUSE的基本用法

STEP7中定時器的S_PAUSE用法以及方波發生器的設計

圖2 S_PAUSE的時序邏輯

如圖2為S_PAUSE定時器的時序邏輯。根據邏輯可知,S_PAUSE定時器有以下幾個特點:

1、復位優先,無論定時器處於何種狀態,R端檢測到上升沿信號,定時器會被複位;且當R端為“1”時,無論S端什麼狀態,定時器都不會投入工作。

2、定時器通過S端的上升沿信號觸發計時功能,S端恆定的“1”信號不會使定時器工作。

3、“短”者為尊。定時器開始計時後,S端“1”狀態的持續時間t和TV端定義的定時器計時時間T,輸出端Q會跟隨二者之間“持久性”短的那個變化。

S_PAUSE定時器的邏輯特性,決定了其多用於現場設備的限時動作。TV端給定的時間決定了由該定時器驅動的設備一段時間內最長的工作時間。因此,S_PAUSE可用於設備的輔助性限位控制(主要由限位開關控制)以及某些設備的動作精度輔助控制。

二、方波發生器

在駝子上篇文章《西門子S7系列PLC應用實例——用PLC實現對交通信號燈的控制》中,在控制綠燈的閃爍時,涉及到了方波發生器,有小夥伴想知道方波發生器程序如何編寫。其實,用S_PAUSE定時器就可以實現。

所謂的方波發生器,即輸出如圖3所示的波形。

STEP7中定時器的S_PAUSE用法以及方波發生器的設計

圖3 方波

用兩個S_PAUSE定時器即可組成一個方波發生器,如圖4、圖5所示。(駝子將方波發生器寫在一個單獨的FC中,其中u_time、l_time以及out1均為該FC塊的形式參數,在程序調用時賦值以實際參數即可)

其工作原理如下:

1、假設初始時#out1=0,則PLC上電瞬間,T7的S端檢測到上升沿信號,T7開始計時,其Q端輸出為“1”;

2、T7計時結束後,其Q端由“1”變為“0”,其取反後作為T8的S端信號,則此時T8的S端檢測到上升沿信號,T8開始計時,同樣其Q端輸出為“1”,並賦值給#out1;

3、T8計時結束後,#out1由“1”變為“0”,則T7再次檢測到上升沿信號,計時器開始工作;

4、如此往復,循環不斷。當T7工作時,#out1=0;當T8工作時,#out1=1;適當的設定T7、T8的定時器初始值,(即u_time、l_time),即可產生不同週期、不同佔空比的方波信號。

STEP7中定時器的S_PAUSE用法以及方波發生器的設計

圖4 方波發生器,輸出低電平

STEP7中定時器的S_PAUSE用法以及方波發生器的設計

圖5 方波發生器,輸出高電平

《西門子S7系列PLC應用實例——用PLC實現對交通信號燈的控制》一文中,綠燈的閃爍控制即是利用了上述的方波發生器功能,當然在程序實現上略有不同。

三、小結

照例留下疑問,供有興趣的小夥伴思考:

如圖6所示,在方波發生器的FC塊中,定義臨時變量temp1,將圖5中的#out1均替換為#temp1,然後再將#temp1賦值給#out1作為輸出,此時,方波發生器還能工作嗎?

STEP7中定時器的S_PAUSE用法以及方波發生器的設計

圖6 思考題


分享到:


相關文章: