歡迎光臨
每天分享高質量文章

西門子S7-1200基本指令(2)——定時器執行


點選 《福利來了!PLC的資料(免費),你要嗎?

點選第二波福利來了!PLC的資料(免費),你要嗎?

使用定時器指令可建立程式設計的時間延時。 使用者程式中可以使用的定時器數僅受CPU儲存器容量限制。 每個定時器均使用 16 位元組的 IEC_Timer 資料型別的DB結構來儲存功能框或線圈指令頂部指定的定時器資料。 STEP 7會在插入指令時自動建立該 DB。

定時器指令

其引數型別如下表:

PT 和 IN 引數值變化的影響:

PT(預設時間)和ET(經過的時間)值以表示毫秒時間的有符號雙精度整數形式儲存在指定的 IEC_TIMER DB 資料中。 TIME 資料使用 T# 識別符號,可以簡單時間單元(T#200ms 或200)和複合時間單元(如 T#2s_200ms)的形式輸入。

TIME 資料型別的大小和範圍:

定時器線圈示例

-(TP)-、-(TON)-、-(TOF)- 和 -(TONR)- 定時器線圈必須是 LAD 網路中的最後一個指令。
如定時器示例中所示,後面網路中的觸點指令會求出定時器線圈 IEC_Timer DB資料中的Q 位值。 同樣,如果要在程式中使用經過的時間值,必須訪問IEC_timer DB 資料中的ELAPSED 元素。

重置定時器 -(RT)- 和預設定時器 -(PT)- 線圈

這些線圈指令可與功能框或線圈定時器一起使用並可放置在中間位置。
線圈輸出能流狀態始終與線圈輸入狀態相同。 若 -(RT)- 線圈啟用,指定IEC_Timer DB資料中的 ELAPSED 時間元素將重置為 0。若 -(PT)-線圈啟用,使用所分配的時間間隔值載入指定 IEC_Timer DB 資料中的 PRESET時間元素。

定時器的執行

當由於 TP、TON、TOF 或 TONR指令的輸入上出現沿跳變而啟動定時器時,連續執行的內部 CPU定時器的值將被覆制到為該定時器指令分配的 DB 結構的START 成員中。該起始值在定時器繼續執行期間將保持不變,隨後將在每次更新定時器時使用。
每次啟動定時器時,都會從內部 CPU 定時器將一個新的起始值載入到定時器結構中。
更新定時器時,將從內部 CPU 定時器的當前值中減去上述起始值以確定經過的時間。
再將經過的時間與預設值進行比較以確定定時器 Q 位的狀態。 然後在為該定時器分配的DB 結構中,更新 ELAPSED 和 Q 成員。
註意,經過的時間將停留在預設值上(達到預設值後定時器便不會繼續累加經過的時間)

當且僅當滿足以下條件時才會執行定時器更新:
● 已執行定時器指令(TP、TON、TOF 或 TONR)
● 某個指令直接取用 DB 中定時器結構的“ELAPSED”成員
● 某個指令直接取用 DB 中定時器結構的“Q”成員

定時器程式設計

規劃和建立使用者程式時應考慮以下定時器執行說明:
● 可在同一個掃描週期內多次更新定時器。
每次執行定時器指令(TP、TON、TOF、TONR)和每次將定時器結構的ELAPSED或 Q 成員用作其它已執行指令的引數時,都會更新定時器。
這在需要最新時間資料(本質上是立即讀取定時器)時會是一項優點。
但是,如果希望在整個程式掃描週期內保持一致的值,則請將定時器指令放置在需要這些值的其它所有指令之前,並使用定時器指令的 Q 和 ET輸出中的變數而不是定時器 DB 結構的 ELAPSED 和 Q 成員。
● 掃描期間可以不執行定時器更新。
可以在函式中啟動定時器,然後在一個或多個掃描週期內不再呼叫該函式。
如果沒有執行取用定時器結構中 ELAPSED 或 Q成員的其它指令,則不會更新定時器。
直到再次執行定時器指令或執行將定時器結構的 ELAPSED 或 Q用作引數的其它指令時,才會再次更新定時器。
● 儘管並不常見,但可以將同一個 DB 定時器結構分配給多個定時器指令。
通常,為避免意外互動作用,應當使每個 DB定時器結構僅對應一個定時器指令(TP、TON、TOF、TONR)。

● 自複位定時器適合用於觸發需要週期性發生的動作。
通常,將取用定時器位的常閉觸點放置在定時器指令前面可建立自複位定時器。
該定時器網路通常位於使用該定時器位來觸發動作的一個或多個依賴型網路上面。
當定時器時間已到(經過的時間達到預設值)時,定時器位將在一個掃描週期內為ON,因而可執行由該定時器位控制的依賴型網路邏輯。
下次執行定時器網路時,常閉觸點將為 OFF,從而複位定時器並清除定時器位。
下次掃描期間,常閉觸點將為 ON,因此將重啟定時器。
建立此類自複位定時器時,請勿將定時器 DB
結構的“Q”成員用作該定時器指令前面常閉觸點的引數。
而是要使用與該定時器指令的“Q”輸出相連的變數。 如果訪問定時器 DB 結構的Q成員,將導致定時器更新,且如果因常閉觸點而更新定時器,該觸點將立即複位該定時器。 定時器指令的 Q 輸出將在一個掃描週期內不為ON,並且依賴型網路不會執行。

RUN-STOP-RUN 切換或 CPU 迴圈上電後保留時間資料

如果從執行樣式階段切換到停止樣式或 CPU迴圈上電並啟動了新執行樣式階段,則儲存在之前執行樣式階段中的定時器資料將丟失,
除非將定時器資料結構指定為具有保持性(TP、TON、TOF 和 TONR 定時器)。
將定時器指令放到程式編輯器中後,如果接受呼叫選項對話方塊中的預設設定,則將自動分配一個無法實現具有保持性的背景資料塊。
要使定時器資料具有保持性,必須使用全域性資料塊或多重背景資料塊。

指定全域性資料塊將定時器資料儲存為保持性資料

無論將定時器放在什麼位置(OB、FC 或 FB),該選項都有效。
1. 建立一個全域性資料塊:
– 在專案樹中雙擊“新增新塊”(Add new block)。
– 單擊資料塊 (DB) 圖示
– 對於“型別”(Type),選擇“全域性資料塊”(global DB)。
– 如果希望能夠將該資料塊中各資料元素選擇為具有保持性,則確保選中資料塊型別“最佳化”(Optimized) 框。 另一個資料塊型別選項“標準 – 與 S7-300/400相容”(Standard – compatible with S7-300/400) 僅允許將所有 DB資料元素都設定為具有保持性或沒有保持性。
– 單擊“確定”(OK)
2. 向該資料塊中新增定時器結構:
– 在新的全域性資料塊中,新增 IEC_Timer 資料型別的靜態變數。
– 在“保持性”(Retain) 列中,選中相應框以使該結構具有保持性。
– 重覆此過程為要儲存在該資料塊中的所有定時器建立結構。
可以將每個定時器結構放置在獨立的全域性資料塊中,也可以將多個定時器結構放置在同一個全域性資料塊中。
除定時器外,還可以將其它靜態變數放置在該全域性資料塊中。
將多個定時器結構放置在同一個全域性資料塊中可減少總的塊數。
– 可根據需要重新命名定時器結構。
3. 開啟程式塊來選擇保持性定時器的放置位置(OB、FC 或 FB)。
4. 將定時器指令放置在所需位置。
5. 在呼叫選項對話框出現後,單擊“取消”按鈕。
6. 在新的定時器指令上方,輸入上面所建立全域性資料塊和定時器結構的名稱(請勿使用助手瀏覽)(例如: “Data_block_3.Static_1”)。

指定多重背景資料塊以將定時器資料儲存為保持性資料

該選項僅對於將定時器放置在 FB 中有效。
該選項取決於 FB 屬性是否指定“最佳化塊訪問”(Optimized block access)(僅允許符號訪問)。 要檢查現有 FB訪問屬性的組態情況,請在專案樹中右鍵單擊該FB,選擇“屬性”(Properties),然後選擇“特性”(Attributes)。
如果 FB 指定“最佳化塊訪問”(Optimized block access)(僅允許符號訪問):
1. 開啟 FB 進行編輯。
2. 將定時器指令放在 FB 中的所需位置。
3. “呼叫選項”(Call options) 對話框出現後,單擊“多重背景”(Multi instance) 圖示。僅在將該指令放置於 FB 中後,“多重背景”(Multi instance) 選項才可用。
4. 如有需要,請在“呼叫選項”(Call options) 對話方塊中重新命名定時器。
5. 單擊“確定”(OK)。 定時器指令將出現在編輯器中,而 IEC_TIMER 結構將出現在“FB介面”(FB Interface) 的“靜態”(Static) 下。
6. 如有必要,開啟 FB 介面編輯器(可能需要單擊小箭頭以展開檢視)。
7. 在“靜態”(Static) 下,找到剛剛建立的定時器結構。
8. 在此定時器結構的“保持性”(Retain) 列中,改為選擇“保持性”(Retain)。
此後只要從另一程式塊呼叫此FB,都將利用此介面定義(包含標有保持性的定時器結構)建立背景資料塊。
如果 FB 未指定“最佳化塊訪問”(Optimized block access),則塊訪問型別為標準訪問,標準訪問與 S7-300/400傳統組態相容,且允許符號訪問和直接訪問。 要將多重背景分配給標準塊訪問FB,請按以下步驟操作:

  1. 開啟 FB 進行編輯。

  2. 將定時器指令放在 FB 中的所需位置。

  3. “呼叫選項”(Call options) 對話框出現後,單擊“多重背景”(Multi instance) 圖示。僅在將該指令放置於 FB 中後,“多重背景”(Multi instance) 選項才可用。

  4. 如有需要,請在“呼叫選項”(Call options) 對話方塊中重新命名定時器。

  5. 單擊“確定”(OK)。 定時器指令將出現在編輯器中,而 IEC_TIMER 結構將出現在“FB介面”(FB Interface) 的“靜態”(Static) 下。

  6. 開啟將使用此 FB 的塊。

  7. 將此 FB 置於所需的位置。 如此將為該 FB 建立一個背景資料塊。

  8. 開啟將 FB 放入編輯器時建立的背景資料塊。

  9. 在“靜態”(Static) 下,找到所需的定時器結構。 在此定時器結構的“保持性”(Retain)列中,選中相應框使該結構具有保持性。


尋找同路人

做自動化工業變革的踐行者


可透過選單查詢自己喜歡的文章彙總:

現場儀錶DCS部分PLC部分SIS部分通訊標準數字化問題解答】此處列出部分連結,更多文章透過選單獲取。



贊(0)

分享創造快樂