如何使用S7-1200的IEC定時器(IEC timer)

與傳統的S7-300/400系列PLC不同,S7-1200/1500系列PLC使用IEC定時器(IEC

timer)。IEC定時器的數據(設定值、當前值等)存儲在指定的數據塊中,用戶程序中可以使用的定時器的數量僅受CPU存儲容量大小的限制。今天這篇文章,我們就來談談IEC定時器的使用。

S7-1200提供了四種IEC定時器:TP(Timer Pulse,脈衝定時器)、TON(Timer ON-Delay,延時接通定時器)、TOF(Timer OFF-Delay,延時斷開定時器)和TONR(Timer Accumulator,時間累加定時器)。

在博途環境下添加IEC定時器時,系統會自動為其分配背景數據塊。本常式添加一個TON定時器,背景DB塊如下圖:

可以修改背景數據塊的名稱,也可以使用默認值。這裡我們採用默認值,點擊【OK】確認後,在系統塊(System blocks)中可以看到新生成的IEC定時器的背景數據塊包含如下參數:

IEC定時器中常用的參數有五個(可以訪問控制):

  1. IN(Input,定時器啟動,Start timer);
  2. R(Reset,定時器複位,Reset timer);
  3. PT(Preset time,時間預設值,必須大於0);
  4. ET(Elapse time,當前時間值,時間流逝值);
  5. Q(Ouput,輸出);

IEC定時器的時間值是一個32位的雙整型變數(DInt),默認為毫秒(ms),最大定時值為

2,147,483,647 ms。當然,以毫秒計算有時候是不方便的,S7-1200也支持以 天-小時-分鐘-秒

的方式計時,在時間值的前面加上符號「T#」,比如定時200s,寫作T#200s;定時1天-2小時-30分鐘-5秒-200毫秒,寫作:T#1d_2h_30m_5s_200ms,如下圖:

下面來分別介紹下各定時器的時序:

脈衝定時器(TP,Timer Pulse)用來產生一定時間寬度的脈衝信號,當IN信號從0變為1時,定時器開始計時,此時輸出Q為1,;在整個時間流逝的過程中,無論輸入IN的信號是否變化,輸出Q始終為1;當實際值ET大於等於預設值PT時,輸出Q變為0;當輸入值IN再次從0變為1時,定時器重新計時;

脈衝定時器的時序如下圖:

延時接通定時器(TON,Timer ON-delay)將信號延時接通。

當輸入信號IN從0變為1時,定時器開始計時,此時輸出Q為0。在計時的過程中,如果時間流逝值ET大於等於預設值PT且輸入IN的信號為1時,輸出Q為1;在計時過程中,如果輸入IN的信號從1變為0,則定時器停止計時。若再次從0變為1,則定時器重新開始計時。當輸出Q為1時,若輸入IN從1變為0,則輸出Q變為0。

延時接通定時器的時序如下圖:

延時斷開定時器(TOF,Timer Off-delay)將某個信號延時斷開。

當輸入信號IN從0變為1時,定時器啟動,此時輸出Q為1。當輸入信號IN從1變為0時,定時器開始計時,輸出Q保持為1,當流逝的時間值ET大於等於預設的時間值PT且輸入IN保持為0時,輸出Q變為0。在時間流逝的過程中,若輸入IN從0變為1,則定時器複位,當從1變為0時,定時器重新開始計時。

延時斷開定時器(TOF)的時序如下圖:

時間累加器(TONR,Timer accumulaor)

時間累加器可以對輸入信號IN的狀態1信號進行累加。當輸入信號IN從0變為1時,定時器開始計時,此時輸出Q的值為0。定時器計時的過程中,流逝的時間被記錄在ET中。若在到達預設值PT之前,輸入信號從1變為0,則定時器停止計時。當下次輸入信號IN從0變為1時,定時器從上次記錄的ET值開始繼續計時,直到ET累計的時間大於或等於PT時,輸出Q變為1;

當輸出Q變為1時,無論輸入IN的信號怎麼變化,都保持為1。

當複位信號R從0變為1時,輸出Q和時間流逝值ET均被複位為0;

時間累加器的時序如下圖:

好了,關於S7-1200的IEC定時器就先介紹到這裡,官網(founderchip.com)提供本文PDF版本下載。


推薦閱讀:

如何利用S7通信在兩台S7-300PLC之間交換數據?
自動開關基礎及其參數選擇
一個案例,教你PLC傳送與比較指令用法
西門子PLC乙太網開放式用戶通信連載(3)-TURCV

TAG:可編程邏輯控制器PLC | 電氣工程 | 電氣工程及其自動化 |