在 S7-1200 的固件版本為 4.1 或更高版本時,組態控制可用于組態控制系統的結構并且有助于使用與該組態不同的變型(選項)。
一系列相似設備單元或機器所需的所有模塊都在具有最大組態的主項目(全站組態方式)中進行組態。
在主項目的用戶程序中,包含有適用于不同設備單元或機器的各種站組態方式,以及站組態方式的選件。例如,某種站組態方式僅使用一部分已組態的模塊,而且這些模塊以不同的順序插入。
操作員可根據現場特定的設備選擇某種站組態方式。他們無需修改項目,因此也無需下載修改后的組態。
在啟動程序中編程的控制數據記錄會通知 CPU 哪些模塊缺失以及哪些模塊所在的插槽不同于預設組態。組態控制對模塊的參數分配沒有影響。
組態控制為用戶提供了靈活性,只要實際組態不超過預設的最高組態,就可以改變集中式安裝。
下文將介紹如何激活組態控制(CPU 參數分配)以及如何構造所需的數據記錄。
要求
STEP 7 版本 V13 SP1 或更高版本
CPU S7-12XX 固件版本 V4.1 或更高版本:支持“組態控制”功能的模塊還在硬件目錄的說明(信息文本)中提供“組態控制”(Configuration control) 條目。
建議:在裝載帶有修改后的控制數據記錄的新程序前,請執行存儲器復位。此操作可以防止因存在不兼容的控制數據記錄而造成狀態不一致。
啟動參數“比較預設組態與實際組態”設置為“即使不一致也啟動 CPU”(默認設置)。
所需步驟
在“組態控制”(Configuration control) 區域組態 CPU 時啟用“允許通過用戶程序重新組態設備”(Allow to reconfigure the device via the user program) 參數。
根據以下描述的控制數據記錄示例,按照當前組態創建控制數據記錄(例如在數據塊中)。控制數據記錄的編號為 196。如果要將控制數據記錄以整塊的方式傳送到 WRREC 指令(輸入參數 RECORD)中,則需注意,需要先創建一個包含控制數據記錄結構的 PLC 數據類型,并將該數據塊定義為此 PLC 數據類型。
在啟動程序中將控制數據記錄傳輸到 CPU。
對于集中插入的模塊,僅當 CPU 的操作模式從 STOP 更改為 RUN 后,組態控制才會生效。因此,請在啟動 OB 中調用擴展的 WRREC(寫入數據記錄)指令,將創建的控制數據記錄傳輸到 CPU;請參見下一章節。
如果在啟動 OB 中未傳輸有效的控制數據記錄,則控制未做好運行準備。在這種情況下,CPU 從啟動狀態恢復到 STOP 狀態。
在啟動程序中傳輸控制數據記錄
CPU 處理 WRREC 指令以便異步傳輸控制數據記錄。因此,必須在一個循環內,在啟動 OB 中重復地調用 WRREC,直到輸出參數“BUSY”或“DONE”指出數據記錄已傳輸。
提示信息:請使用 SCL 編程語言和 REPEAT ... UNTIL 指令編程此循環。
REPEAT
"WRREC_DB"(REQ := "start_config_control",
ID := 33,
INDEX := 196,
LEN := "conf_LEN",
DONE => "conf_DONE",
BUSY => "conf_BUSY",
ERROR => "conf_ERROR",
RECORD := "ConfDB".ConfigControl,
STATUS => "conf_STATUS");
UNTIL NOT "conf_BUSY"
END_REPEAT;
下表中列出了組態控制中需指定特定值的塊參數。有關其它塊參數,另請參見“WRREC”:
參數 | 說明 |
---|---|
ID | 硬件標識符,對于集中排列模塊的組態控制,始終為 33(十進制)。 |
INDEX | 數據記錄編號,對于集中排列模塊的組態控制,始終為 196(十進制)。 |
RECORD |
要傳輸的控制數據記錄。 參見“控制數據記錄”部分的控制數據記錄結構。 提示信息:WRREC 指令(V1.1 以及更高版本)塊參數“RECORD”的數據類型為“VARIANT”,因此需要帶數據類型的變量。如果將控制數據記錄存儲在數據塊中,那么此數據塊必須具有數據類型。所創建的數據塊不得是“全局 DB”類型,更確切地說,它必須屬于用戶數據類型。 請按以下步驟操作: 首先創建一個具有控制數據記錄結構的新 PLC 數據類型(用戶數據類型),并為其命名,例如命名為“ConfDB”。 創建一個新數據塊。選擇新創建的用戶數據類型(如“ConfDB”),作為該數據塊的類型。 |
在圖形編程語言中,使用程序控制指令實現循環。
FBD 中的示例:使用 LABEL(跳轉標簽)和 JMP(RLO=1 時跳轉)指令編寫循環。
模塊的排列
下表列出了插槽號的分配:
插槽 | 模塊 | 說明 |
---|---|---|
1 | 信號板、通信板、電池板 | CPU 前端的插槽 |
2 - 9 | 信號模塊 | CPU 右側的插槽 |
101 - 103 | 通信模塊 | CPU 左側的插槽 |
控制數據記錄
將包含插槽分配的控制數據記錄 196 定義為用于組態控制。
下列代碼適用:
0 | 模塊包括在硬件配置中,但在當前組態中未使用。 |
1 到 9,101 到 103 | 模塊的當前插槽 |
16#FF (255) | 在硬件配置中,模塊并不位于此插槽中。 |
字節 | 元素 | 代碼 | 說明 |
---|---|---|---|
0 | 塊長度 | 4 + 插槽數 | 標頭 |
1 | 塊 ID | 196 | |
2 | 版本 | 5 (用于集中式 I/O) | |
3 | 子版本 | 0 | |
4 | CPU 擴展板的分配 | 擴展板,0 或 16#FF |
控制元素 每個元素分別為設備中與已組態插槽對應的實際插槽。下面說明了控制元素的結構。 |
5 | 分配的已組態插槽 2 | 實際插槽,0 或 16#FF | |
... | ... | ... | |
12 | 組態的插槽 9 的分配 | 實際插槽,0 或 16#FF | |
13 | 組態的插槽 101 的分配 | 實際插槽或 16#FF | 相比于信號模塊,通信模塊的實際插槽必須對應已組態的插槽。 |
14 | 組態的插槽 102 的分配 | 實際插槽或 16#FF | |
15 | 組態的插槽 103 的分配 | 實際插槽或 16#FF |
控制元素的結構
控制元素包含有關哪個模塊插入哪個插槽的信息。
字節編號代表按升序排列的已組態插槽(參見上文):
字節 4 代表擴展板的已組態的插槽
字節 5 到 9 代表已組態的插槽 2 到 9
字節 13 到 15 代表已組態的插槽 101 到 103
在相應字節中輸入指定值,具體取決于以下規則:
如果模塊在實際組態中存在,則輸入模塊的實際插槽編號。
示例 1:組態為插入插槽 2 的模塊位于插槽 2。
在字節 5(= 組態的插槽 2)中輸入值 2(= 實際插槽)。
示例 2:組態為插入插槽 3 的模塊位于插槽 2。
在字節 6(= 組態的插槽 3)中輸入值 2(= 實際插槽)。
如果模塊已組態,但在實際結構中缺少此模塊,則在所組態插槽對應的字節中輸入 0。
如果模塊在硬件配置中并未位于此插槽,則在所組態插槽對應的字節中輸入 16#FF (255)。
規則
請遵守以下規則:
組態控制不支持通信模塊位置的調整。控制數據記錄中插槽 101 到 103 對應的插槽條目必須與模塊的實際位置相符或者必須在硬件配置中通過輸入 16#FF (255) 定義為不存在。
組態中不允許存在插槽間隙。例如,如果在實際組態中將信號模塊插入插槽 4,則實際組態中插槽 2 和 3 必須也被占用。這同樣適用于插槽 101 到 103。如果在實際組態中將通信模塊插入插槽 102,則在實際組態中插槽 101 內也必須插入一個通信模塊。
如果啟用了組態控制,沒有控制數據記錄 CPU 將不工作。如果在啟動 OB 中未傳送有效的控制數據記錄,則 CPU 將從啟動模式返回到 STOP 模式。此時,不會對集中式 I/O 進行初始化。CPU 轉入 STOP 操作模式的原因將保存在診斷緩沖區中。
要對 WRREC 指令尋址,請使用硬件標識符 33(十進制,適用于 ID 塊參數)寫入控制數據記錄。
控制數據記錄始終保存在 CPU 中,因此在重新啟動時如果組態沒有發生變更則無需重新寫入控制數據記錄 196。在調試前,建議對 CPU 執行存儲器復位,以刪除存在的任何控制數據記錄。
CPU 將忽略不在預設組態中的控制數據記錄中的插槽條目。
在控制數據記錄中,每個實際插槽只能記錄一次。
只能將實際插槽分配給一個已組態的插槽。
說明 修改過的組態 使用修改后的組態對控制數據記錄執行寫入操作時將導致 CPU 觸發以下自動反應: 存儲器在后續啟動時使用這個修改后的組態進行復位。 因此始終保存的原始數據記錄 196 將被刪除,并始終保存新的數據記錄 196。 |
操作期間的行為
預設組態和實際組態之間差異的影響:
對于在線顯示以及診斷緩沖區中的顯示(模塊正常或模塊發生故障),始終使用硬件配置而并非不同的實際組態。
示例:模塊提供診斷信息。此模塊組態為插入插槽 4,但實際卻插入到插槽 3 中(模塊缺失,參見下一章節中的示例)。在線視圖中,指示組態的插槽 4 發生故障。在實際組態中,插槽 3 中的模塊通過 LED 顯示屏指出出現錯誤。
如果模塊在控制數據記錄中記錄為缺失,那么自動化系統將會執行以下操作:
在控制數據記錄中指定為不存在的模塊不提供診斷,其狀態始終為“正常”(OK)。值狀態為“正常”(OK)
對輸出進行直接寫訪問,或者對不存在的輸出過程映像進行寫訪問:仍然無效;不顯示任何訪問錯誤。
對輸入進行直接讀訪問,或者對不存在的輸入過程映像進行讀訪問:提供值“0”;不顯示任何訪問錯誤。
將數據記錄寫入不存在的模塊:仍然無效;不顯示任何錯誤。
從不存在的模塊讀取數據記錄:顯示錯誤,因為無法返回有效的數據記錄。
錯誤消息
如果在寫入控制數據記錄的過程中發生錯誤,則將返回以下錯誤消息:
錯誤消息
錯誤代碼 | 含義 |
---|---|
16#80B1 | 長度無效;數據記錄 196 中的長度信息不正確。 |
16#80B5 | 未分配組態控制參數。 |
16#80E2 | 數據記錄在錯誤的 OB 中傳送。該數據記錄需在啟動程序中傳送。 |
16#80B8 | 參數錯誤;模塊指示存在無效參數。 |
S7-1200組態控制示例:
由一個 CPU 和 3 個信號模塊組成的組態按下文所述進行組態。
插槽 3 中的模塊在第一個組態擴展中不存在,被組態控制“隱藏”。
在第二個組態擴展中,最初隱藏的模塊位于最后一個插槽中。CPU 通過一條修改后的控制數據記錄獲知增加插槽的信息。
缺少模塊的實際組態
指定的組態包含所有可以在最后擴展階段顯示的模塊。
在指定組態中插入到插槽 3 的模塊在實際擴展組態中缺失。因此,插槽 3 必須在控制數據記錄中相應地進行編碼:"FF H" (= 不存在)。
① | 模塊在實際組態中缺失 |
后繼所添加模塊的實際組態
在指定組態中插入到插槽 3 的模塊作為最后一個模塊插入到插槽 4,添加到實際組態之后。
控制數據記錄會相應地進行調整。
審核編輯:劉清
-
plc
+關注
關注
5008文章
13150瀏覽量
462054 -
存儲器
+關注
關注
38文章
7452瀏覽量
163602 -
組態控制
+關注
關注
0文章
4瀏覽量
6448 -
SCL
+關注
關注
1文章
239瀏覽量
17036 -
S7-1200
+關注
關注
11文章
331瀏覽量
17909
原文標題:西門子博途:S7-1200有關組態控制的重要信息(選件處理)
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論