S7-300/400進階筆記12:step7不止有S5定時器,帶你認識IEC定時器

【前言】

前面我們介紹了西門子的S5定時器,根據功能區分,共有5種定時器,分別為脈衝定時器SP、擴展脈衝定時器SE、接通延時定時器SD、保持型接通延時定時器SS以及斷開延時定時器SF。根據應用需求,結合編程技巧,通過S5定時器可以實現許多控制功能。

S5定時器在使用中有以下侷限性:

1、S5定時器的數量是有限的,比如CPU315中共有256個定時器。不同的CPU支持的定時器的數量有所不同,但都是有限的;

2、不僅過編程擴展的情況下,S5定時器的定時時長較短,最大定時時長為9990s,即2小時46分鐘30秒。

基於上述S5定時器的兩個侷限性,這裡我們引出IEC定時器。


一、IEC定時器

IEC定時器沒有數量限制,其通過調用系統功能塊SFB3(TP)、SFB4(TON)和SFB5(TOF)來實現,3者分別對應脈衝定時器、接通延時定時器和斷開延時定時器。

SFB3(TP):脈衝定時器

SFB4(TON):接通延時定時器

SFB5(TOF):斷開延時定時器

S7-300/400進階筆記12:step7不止有S5定時器,帶你認識IEC定時器

圖1 IEC定時器

如圖1所示,為IEC定時器在程序中的使用方法。由於涉及到系統功能塊SFB的調用,因此,每次調用時,都要為其關聯背景數據塊。大型應用中,甚至會用到"多重背景數據塊"( ),這裡不多贅述。


二、接口定義

1、接口

由圖1可見,三種IEC定時器的接口定義類似,歸納如下:

S7-300/400進階筆記12:step7不止有S5定時器,帶你認識IEC定時器

圖2 IEC定時器接口定義

2、TIME數據類型

S5定時器的時間採用的是"s5time"的數據類型,其完整格式為:

S5T#aH_bM_cS_dMS

其中:H表示小時,M為分鐘,S為秒,MS為毫秒。

與S5定時器不同,IEC定時器採用"TIME"數據類型來定義IEC時間,其數據長度為32位,時基為固定的1ms,時間值的數據類型為雙整數,所表示的時間值為整數值乘以時基。其格式為:

T#aaD_bbH_ccM_ddS_eeeMS

其中:aa為天數,bb為小時,cc為分鐘,dd為秒,eee為毫秒

由於時間值為雙整數,其最大值為16#7FFFFFFF,即十進制數2,147,483,647。時基為固定的1ms,所以:

IEC定時器的最大定時時長為2,147,483,648MS,即

24天20小時31分23秒648毫秒


三、定時器邏輯

IEC定時器的時序邏輯與S5定時器基本類似,我們以接通延時定時器SFB4(TON)為例進行簡單分析,如圖3所示,為SFB4(TON)的時序邏輯圖。

S7-300/400進階筆記12:step7不止有S5定時器,帶你認識IEC定時器

圖3 SFB4(TON)時序邏輯

1、輸入"IN"端檢測到上升沿信號,定時器開始計時,定時時間由"PT"端給定,輸出"ET"端指示"流逝"的時間;

2、定時器計時期間,輸出"Q"(即定時器狀態)一直為0;

3、如果定時器計時結束期間輸入端"IN"一直保持高電平,則計時結束後,輸出"Q"置位,直到"IN"變為低電平,輸出"Q"也隨之復位,從而實現"接通延時功能"。

4、如果"IN"端高電平的持續時間小於"PT"端的值時(圖3籃框所示),定時器會在"IN"端回零時隨之停止計時,直到"IN"端檢測到下一個上升沿,定時器再重新計時。這與S5定時器中的"接通延時定時器SD"是一致的。

總的來說,在時序邏輯上,IEC定時器與S5定時器並沒有本質的差異,有興趣的小夥伴可以自行分析一下SFB3(TP)和SFB5(TOF)的時序邏輯,如圖4、圖5所示,這裡懶得寫了

S7-300/400進階筆記12:step7不止有S5定時器,帶你認識IEC定時器

圖4 SFB3(TP)時序邏輯

S7-300/400進階筆記12:step7不止有S5定時器,帶你認識IEC定時器

圖5 SFB5(TOF)時序邏輯


【幾點注意事項】

  • IEC定時器只在STARTUP和RUN模式下運行。
  • 操作系統會在冷啟動期間重置SFB4"TON"的背景數據塊。如果希望在暖啟動後初始化此SFB的背景,必須在OB100中使用PT=0ms調用SFB4。如果此SFB的背景位於另一個塊中,可以通過初始化更高級別的塊,重置這些背景。


分享到:


相關文章: