可以使用“ 生成關斷延時”(Generate off-delay) 指令將延時所指定的時間 PT 復位輸出 Q。當輸入 IN 的邏輯運算結果 (RLO) 從“0”變為“1”(上升沿)時,置位 Q 輸出。當輸入 IN 處的信號狀態變回“0”時,預設的時間段 PT 開始計時。在 PT 計時過程中,輸出 Q 期間將保持置位。
超出所指定的時間段 PT 后,復位輸出 Q。如果輸入 IN 的信號狀態在時間段 PT 計時結束之前變為“1”,則復位該時間。而輸出 Q 處的信號狀態則保持為“1”。
可以在輸出 ET 處查詢當前時間值。該時間值從 T#0s 開始,達到 PT 時間值時結束。經過時間 PT 后,輸出 ET 會保持為當前值,直至輸入 IN 切換回“ 1” 。如果在經過時間 PT 前輸入 IN切換回“1”,則輸出 ET 會復位為值 T#0 。
該指令與標準 TOF 指令的功能上存在以下幾點不同:
? 如果在時間 PT = 0 ms 時調用該指令,則輸出 Q 和 ET 復位。
? 如果在 PT < 0? ms 時調用該指令,則輸出 Q 和 ET 復位。?
需要在 PT 大于 0 且輸出 IN 出現另一個下降沿時,重新啟動關斷延時。
① 對于循環 n+1 中的首次調用,相對于 F 運行組開始的時間,該指令的調用時間比在循環 n 中的調用時間早 Δ1 ,這是因為在循環 n+1 中調用該指令之前跳過了 F 運行組部分安全程序。對于時間更新,該指令將考慮時間 T Base_1,而不是循環 n 中從調用開始實際已用完的 T 1 時間。
② 在循環 n+1 中第二次調用該指令。此時,不考慮其它時間更新(增量為 Δ2 )。
③ 在循環 n+2 中調用該指令時,相對于 F 運行組開始的時間,該指令的調用時間比在循環 n 中的調用時間晚 Δ3 ,這是因為在循環 n+2 中調用該指令之前,更高優先級的中斷已中斷了 F 運行組。該指令將使用時間 T Base_1 + TBase_2,而不是循環 n 中從調用開始算起已實際經過的時間 T 3 。即使在循環 n+1 中沒有調用該指令,也將發生以上狀況。
例如:
如果操作數“TagIn_1”的信號狀態從“0”變為“1”,則將輸出 Q 處操作數“TagOut” 的信號狀態置位為“1”。
如果操作數“TagIn_1”的信號狀態變為“0”,則輸入 PT 處所指定的時間 (200 ms) 開始計時。
超出該時間時,將輸出 Q 處操作數“TagOut” 重新置位為“0”。而在操作數“"F_DB_1".Tag_ET”中則為當前時間值。
說明
可以使用“生成關斷延時”(Generate off-delay) 指令將 Q 輸出的復位延時設定的時間 PT。當輸入 IN 的邏輯運算結果 (RLO) 從“0”變為“1”(信號上升沿)時,將置位 Q 輸出。當輸入 IN 處的信號狀態變回“0”時,預設的時間 PT 開始計時。只要 PT 持續時間仍在計時,輸出 Q 就保持置位。持續時間 PT 計時結束后,將復位輸出 Q。如果輸入 IN 的信號狀態在持續時間 PT 計時結束之前變為“1”,則復位定時器。輸出 Q 的信號狀態仍將為“1”。
可以在 ET 輸出查詢當前的時間值。該定時器值從 T#0s 開始,在達到持續時間值 PT 后結束。當持續時間 PT 計時結束后,在輸入 IN 變回“1”之前,輸出 ET 會保持被設置為當前值的狀態。在持續時間 PT 計時結束之前,如果輸入 IN 的信號狀態切換為“1”,則將 ET 輸出復位為值 T#0s。
每次調用“關斷延時”指令,必須將其分配給存儲指令數據的 IEC 定時器。
說明 如果程序中未調用定時器(例如,由于跳過定時器而導致),則輸出 ET 會在定時器計時結束后立即返回一個常數值。 |
對于 S7-1200 CPU
IEC 定時器是一個 IEC_TIMER 或 TOF_TIME 數據類型的結構,可如下聲明:
聲明為一個系統數據類型為 IEC_TIMER 的數據塊(例如,“MyIEC_TIMER”)
聲明為塊中“Static”部分的 TOF_TIME 或 IEC_TIMER 類型的局部變量(例如,#MyIEC_TIMER)
對于 S7-1500 CPU
IEC 定時器是一個 IEC_TIMER、IEC_LTIMER、TOF_TIME 或 TOF_LTIME 數據類型的結構,可如下聲明:
聲明為一個系統數據類型為 IEC_TIMER 或 IEC_LTIMER 的數據塊(例如,“MyIEC_TIMER”)
聲明為塊中“Static”部分的 TOF_TIME、TOF_LTIME、IEC_TIMER 或 IEC_LTIMER 類型的局部變量(例如,#MyIEC_TIMER)
在以下應用中,將更新該指令數據:
ET 或 Q 輸出未互連時調用該指令。如果輸出未互連,則不更新輸出 ET 中的當前時間值。
訪問 Q 或 ET 輸出時。
執行“關斷延時”指令之前,需要事先預設一個邏輯運算。該運算可以放置在程序段的中間或者末尾。
下表列出了“關斷延時”指令的參數:
參數 | 聲明 | 數據類型 | 存儲區 | 說明 | ||
---|---|---|---|---|---|---|
S7-1200 | S7-1500 | S7-1200 | S7-1500 | |||
IN | Input | BOOL | BOOL | I、Q、M、D、L 或常量 | I、Q、M、D、L、P 或常量 | 啟動輸入 |
PT | Input | TIME | TIME、LTIME | I、Q、M、D、L 或常量 | I、Q、M、D、L、P 或常量 |
關斷延時的持續時間 PT 參數的值必須為正數。 |
Q | Output | BOOL | BOOL | I、Q、M、D、L | I、Q、M、D、L、P | 超出時間 PT 時復位的輸出。 |
ET | Output | TIME | TIME、LTIME | I、Q、M、D、L | I、Q、M、D、L、P | 當前時間值 |
脈沖時序圖
下圖為“關斷延時”指令的時序圖:
示例
以下示例說明了該指令的工作原理:
下表將通過具體的操作數值對該指令的工作原理進行說明:
參數 | 操作數 | 值 |
---|---|---|
IN | Tag_Start | 信號躍遷“0”=>“1”;信號躍遷“1”=>“0” |
PT | Tag_PresetTime | T#10s |
Q | Tag_Status | TRUE |
ET | Tag_ElapsedTime | T#10s => T#0s |
當操作數“Tag_Start”的信號狀態從“0”變為“1”時,操作數“Tag_Status”的信號狀態將置位為“1”。
當“Tag_Start”操作數的信號狀態從“1”變為“0”時,PT 參數預設的時間將開始計時。
只要該時間仍在計時,“Tag_Status”操作數就會保持置位為 TRUE。
該時間計時完畢后,“Tag_Status”操作數將復位為 FALSE。當前時間值存儲在“Tag_ElapsedTime”操作數中。
審核編輯:劉清
-
存儲器
+關注
關注
38文章
7514瀏覽量
164005 -
定時器
+關注
關注
23文章
3251瀏覽量
115023 -
狀態機
+關注
關注
2文章
492瀏覽量
27579 -
復位器
+關注
關注
0文章
5瀏覽量
6825
原文標題:西門子博途:TOF:生成關斷延遲/TOF:生成關斷延時
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論