如何使用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定時器中常用的參數有五個(可以訪問控制):
- IN(Input,定時器啟動,Start timer);
- R(Reset,定時器複位,Reset timer);
- PT(Preset time,時間預設值,必須大於0);
- ET(Elapse time,當前時間值,時間流逝值);
- 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定時器就先介紹到這裡,官網(http://www.founderchip.com)提供本文PDF版本下載。
推薦閱讀:
※如何利用S7通信在兩台S7-300PLC之間交換數據?
※自動開關基礎及其參數選擇
※一個案例,教你PLC傳送與比較指令用法
※西門子PLC乙太網開放式用戶通信連載(3)-TURCV
TAG:可編程邏輯控制器PLC | 電氣工程 | 電氣工程及其自動化 |