西門子博途SCL程式語言系列分享5——定時器指令介紹

前面一章節,我們介紹了沿指令的運用以及如何自寫沿指令,這一章節我們來說一說另外一種常用指令---定時器。在SCL中常用的定時器指令有:

TP 生成脈衝

TON 接通延時

TOF 關斷延時

TONR 時間累加器

RESET_TIMER 復位定時器

PRESET_TIMER 載入持續時間

下面我們一一介紹這些指令的含義以及它們的用法。

1、TP 生成脈衝

指令的功能含義:

當引數IN檢測到訊號上升沿時,指令啟動,預設時間PT開始計時,隨後不管輸入IN如何變化,引數Q都會持續導通PT所預設的時間。

參考下面的時序圖可以加深你對該指令的理解:

西門子博途SCL程式語言系列分享5——定時器指令介紹

TP時序圖

案例:

透過一個例子來說明指令的運用,要求:收到觸發脈衝訊號後,讓指示燈亮3S,然後熄滅。

分析下:呼叫我們上節課學習到的上升沿指令,作為TP定時器IN介面的引數,TP預設時間3S,當DATA。TP_IN上升沿訊號觸發後,R_TRIG_DB。Q輸出一個掃描週期的脈衝訊號,TP定時器啟動,此時定時器輸出Q有輸出,即DATA。TP。Q為1,持續時間3S,3S後輸出為0。

西門子博途SCL程式語言系列分享5——定時器指令介紹

TP_SCL例子

2、TON 接通延時

指令的功能含義:

當引數 IN 的邏輯運算結果 (RLO) 從“0”變為“1”(訊號上升沿)時,啟動該指令。指令啟動時,預設的時間 PT 即開始計時。超過持續時間 PT 時,引數 Q 的訊號狀態變為“1”。只要啟動輸入仍為“1”,引數 Q 就保持置位。如果 IN 引數的訊號狀態從“1”變為“0”,則復位引數 Q。當在引數 IN 上檢測到一個新的訊號上升沿時,將重新啟動定時器功能。

參考下面的時序圖可以加深你對該指令的理解:

西門子博途SCL程式語言系列分享5——定時器指令介紹

TON時序圖

案例:

透過TON指令實現對某電機的延時啟動;TON延遲指令很簡單也很好理解,這裡主要是看下在SCL程式設計環境中是如何去運用的。

西門子博途SCL程式語言系列分享5——定時器指令介紹

TON例子

3、TOF 關斷延時

指令的功能含義:

當引數 IN 的邏輯運算結果 (RLO) 從“0”變為“1”(訊號上升沿)時,置位引數 Q。當引數 IN 的訊號狀態更改回“0”時,預設的時間 PT 開始計時。只要時間 PT 正在計時,引數 Q 就保持置位狀態。超過時間 PT 時,將復位引數 Q。如果引數 IN 的訊號狀態在超出時間值 PT 之前變為“1”,則將復位定時器。引數 Q 的訊號狀態保持置位為“1”。

參考下面的時序圖可以加深你對該指令的理解:

西門子博途SCL程式語言系列分享5——定時器指令介紹

TOF時序圖

案例:

透過TOF指令完成對某訊號的延遲關斷,TOF指令與TON指令使用上面基本相同,只是功能相反,TOF是IN接通後Q立即輸出,當IN訊號關斷後,PT開始計時,待達到設定時間後Q點停止輸出,

需要注意的是,在PT計時過程中,若IN有變為1,則定時器復位,Q點任為1。

西門子博途SCL程式語言系列分享5——定時器指令介紹

TOF例子

4、TONR 時間累加器(保持時間定時器)

指令的功能含義:

引數 IN 的訊號狀態變為“1”時,執行該指令並且從 PT 設定的時間開始計時。時間 PT 計時過程中,如果 IN 引數訊號狀態為“1”,則記錄的時間值將進行累加。累加後的時間將在引數 ET 中輸出以供查詢。達到時間 PT 時,引數 Q 的訊號狀態變為“1”。即使 IN 引數的訊號狀態變為“0”,Q 引數仍將保持置位為“1”。

不論引數 IN 的訊號狀態如何,引數 R 都將復位引數 ET 和 Q。

參考下面的時序圖可以加深你對該指令的理解:

西門子博途SCL程式語言系列分享5——定時器指令介紹

TONR時序圖

案例

:當IN狀態為1時,定時器開始計時,時間累加儲存在ET中,若中途IN斷開,則ET保持當前數值,待IN恢復導通後,繼續開始計時,直至到PT預設時間後,Q導通。只有R訊號觸發才能復位Q與ET。

西門子博途SCL程式語言系列分享5——定時器指令介紹

TONR例子

5、RESET_TIMER 復位定時器

指令的功能含義:

使用“復位定時器”指令,可將 IEC 定時器復位為“0”。將指定資料塊中定時器的結構元件復位為“0”。該指令不會影響 RLO。

該指令必須在 IF 指令中程式設計。

案例:

運用Reset_timer指令對貨物傳輸超時做報警監控,變數設定如下:

說明:

當啟動脈衝觸發後,Transfer訊號置位,累加定時器PT開始計時,當傳輸完成光電佔位且貨物佔位光電未佔位,傳輸完成Transfer_OUT置位,此時復位累加定時器,若在PT計時時間內,未完成傳輸則觸發TimeOUT超時報警,此時只有Alarm_reset可以復位。

變數

型別

說明

Start

Bool

啟動訊號

Transfer

Bool

傳輸執行訊號

Transfer_OUT

Bool

傳輸完成

Transfer_PE

Bool

傳輸完成PE

NO_PE

Bool

佔位光電

Alarm_reset

Bool

報警復位

西門子博途SCL程式語言系列分享5——定時器指令介紹

Reset_timer例子

6、PRESET_TIMER 載入持續時間

指令的功能含義:

可以使用“載入持續時間”指令為 IEC 定時器設定時間。如果該指令輸入邏輯運算結果 (RLO) 的訊號狀態為“1”,則每個週期都執行該指令。該指令將指定時間寫入指定 IEC 定時器的結構中。

如果在指令執行時指定 IEC 定時器正在計時,指令將覆蓋該指定 IEC 定時器的當前值。這將更改 IEC 定時器的定時器狀態。

案例:

接著上一個案例,我們定時器的PT時間預設可以用這一條指令來給定,下面我們演示一下。

西門子博途SCL程式語言系列分享5——定時器指令介紹

Preset_timer例子

以上就是我們在SCL語言中常用的定時器指令,大家可以多多練習,這一章節就到這裡,

感謝閱讀!