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