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

西門子S7-1200基本指令(3)——計數器操作


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

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

計數器指令

引數的資料型別如下

使用者程式中可以使用的計數器數僅受 CPU 儲存器容量限制。
計數器佔用以下儲存器空間:
● 對於 SInt 或 USInt 資料型別,計數器指令佔用 3 個位元組。
● 對於 Int 或 UInt 資料型別,計數器指令佔用 6 個位元組。
● 對於 DInt 或 UDInt 資料型別,計數器指令佔用 12 個位元組。
這些指令使用軟體計數器,軟體計數器的最大計數速率受其所在的 OB 的執行速率限制。
指令所在的 OB 的執行頻率必須足夠高,以檢測 CU 或 CD 輸入的所有跳變。

計數器的執行

CTU 運算(加計數)


CTD 運算(減計數)


CTUD 運算(加計數和減計數)

RUN-STOP-RUN 切換或 CPU 迴圈上電後保留計數器資料

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

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

無論將計數器放在什麼位置(OB、FC 或 FB),該選項都有效。
1. 建立一個全域性資料塊:
– 在專案樹中雙擊“新增新塊”(Add new block)。
– 單擊資料塊 (DB) 圖示
– 對於“型別”(Type),選擇“全域性資料塊”(global DB)。
– 如果希望能夠將該資料塊中的各個項選擇為具有保持性,則確保選中“僅符號訪問”(symbolic-access-only) 框。
– 單擊“確定”(OK)
2. 向該資料塊新增計數器結構:
– 在新的全域性資料塊中,新增使用以下計數器資料型別之一的新靜態變數。

務必要考慮到想要用於預設值和計數值的型別。
– 在“保持性”(Retain) 列中,選中相應框以使該結構具有保持性。
– 重覆此過程為要儲存在該資料塊中的所有計數器建立結構。
可以將每個計數器結構放置在獨立的全域性資料塊中,也可以將多個計數器結構放置在同一個全域性資料塊中。除計數器外,還可以將其它靜態變數放置在該全域性資料塊中。
將多個計數器結構放置在同一個全域性資料塊中可減少總的塊數。
– 可根據需要重新命名計數器結構。
3. 開啟程式塊來選擇保持性計數器的放置位置(OB、FC 或 FB)。
4. 將計數器指令放置在所需位置。
5. 在呼叫選項對話框出現後,單擊“取消”按鈕。
您現在應該看到新的計數器指令,在指令名稱的上面和下麵均顯示“???”。
6. 在新的計數器指令上方,輸入上面所建立全域性資料塊和計數器結構的名稱(請勿使用助手瀏覽)(例如: “Data_block_3.Static_1”)。
這需要填入對應的預設值和計數值型別(例如: UInt 對應於 IEC_UCounter 結構)。

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

該選項僅對於將計數器放置在 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)。 計數器指令將出現在編輯器中並且預設值和計數值的型別為INT,而 IEC_COUNTER 結構將出現在“FB 介面”(FB Interface) 的“靜態”(Static) 下。
6. 如有需要,請在計數器指令中將型別從 INT 更改為其它型別之一。
計數器結構將相應更改。
7. 如有必要,開啟 FB 介面編輯器(可能需要單擊小箭頭以展開檢視)。
8. 在“靜態”(Static) 下,找到剛剛建立的計數器結構。
9. 在此計數器結構的“保持性”(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)。 計數器指令將出現在編輯器中並且預設值和計數值的型別為INT,而 IEC_COUNTER 結構將出現在“FB 介面”(FB Interface) 的“靜態”(Static) 下。
6. 如有需要,請在計數器指令中將型別從 INT 更改為其它型別之一。
計數器結構將相應更改。
7. 開啟將使用此 FB 的塊。
8. 將此 FB 置於所需的位置。 如此將為該 FB 建立一個背景資料塊。
9. 開啟將 FB 放入編輯器時建立的背景資料塊。
10. 在“靜態”(Static) 下,找到所需的計數器結構。 在此計數器結構的“保持性”(Retain)列中,選中相應框使該結構具有保持性。


尋找同路人

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


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

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



贊(0)

分享創造快樂