詳細(xì)介紹
西門(mén)子X(jué)C224交換機(jī)
6GK5224-0BA00-2AC2 SCALANCE XC224 可管理層面 2 IE 交換機(jī); 24x 10/100 Mbit/s RJ45 端口,; 1x 控制臺(tái)端口,,診斷 LED; 冗余電源,; 溫度范圍 -40°C 至 +70°C,; 安裝: 凹頂導(dǎo)軌/S7 型軌/墻壁 Office 冗余功能 特性(RSTP,VLAN,,...),; PROFINET 輸入輸出設(shè)備 以太網(wǎng) /IP *性, C-PLUG 插槽,; |
問(wèn)題:在S7-CPU中使用嵌套程序需要注意什么,,如何使用?
回答:S7-CPU支持嵌套程序,,但對(duì)于不同的CPU類型,,在使用時(shí)需要注意一些問(wèn)題。
1. 不同的CPU類型,,支持的嵌套程序深度不同,,用戶可在CPU的技術(shù)數(shù)據(jù)中查到此參數(shù),以6ES7315-2AG10-0AB0為例,。
圖1:CPU的嵌套深度參數(shù)
2. 用戶可以按照如下方式使用嵌套功能:
a) 在某個(gè)優(yōu)先級(jí)組織塊中調(diào)用多個(gè)嵌套FC/FB。例如,,在OB1 (優(yōu)先級(jí)為1)調(diào)用FC1,,F(xiàn)C1中調(diào)用FC2,F(xiàn)C2中調(diào)用FC3,,等等,,一直到FC7,與OB1共8層深度,。如果在FC7 中又調(diào)用了FC8 ,,此時(shí)會(huì)導(dǎo)致CPU 停機(jī),,在CPU在線信息界面中可查看到此情況,如圖2所示,。用戶也可在OB35(優(yōu)先級(jí)為12)調(diào)用FC11,,F(xiàn)C11中調(diào)用FC12,F(xiàn)C12中調(diào)用FC13,,等等,,一直到FC17。
圖2:嵌套調(diào)用
b) 在某個(gè)優(yōu)先級(jí)中調(diào)用某個(gè)FC,,此FC多次調(diào)用自身,。例如,在OB1 (優(yōu)先級(jí)為1)調(diào)用FC1,,F(xiàn)C1中仍然調(diào)用FC1,,用戶在FC1 的程序中必須編程累計(jì)FC1被調(diào)用的次數(shù),如果達(dá)到了7次,,則需要從FC1 中跳出調(diào)用(此方法即為軟件行業(yè)廣泛應(yīng)用的遞歸編程方法),。如果在FC1 調(diào)用自身次數(shù)超出了CPU允許的嵌套深度,此時(shí)會(huì)導(dǎo)致CPU 停機(jī),。
3. 當(dāng)用戶在使用嵌套功能時(shí),,可能出現(xiàn)幾種錯(cuò)誤:
a) The nesting depth of block calls (U-Stack) is too high(嵌套深度太高)。例如:
? 用戶在某個(gè)優(yōu)先級(jí)(如OB1)中調(diào)用嵌套程序深度超出所使用CPU支持深度,,如第2節(jié)(a) 部分所描述,。
? 用戶在某個(gè)優(yōu)先級(jí)(如OB1)中調(diào)用嵌套程序深度超出所使用CPU支持深度,如第2節(jié)(b) 部分所描述,。
此時(shí)CPU將報(bào)16#4575錯(cuò),,如圖3所示:
圖3:同步錯(cuò)誤嵌套1
b) The nesting depth of synchronous errors is too high(同步錯(cuò)誤嵌套深度太高)。例如:
? 用戶在OB1中使用L DB1.DBB0 語(yǔ)句(CPU中并未下載DB1),,
? 此時(shí)CPU出現(xiàn)編程錯(cuò)誤,,將調(diào)用OB121。
? 如果用戶在下載的OB121中又使用了L DB1.DBB0 指令,,將導(dǎo)致CPU停機(jī)
此時(shí)CPU將報(bào)16#4573錯(cuò),,如圖4所示:
圖4:同步錯(cuò)誤嵌套2
c) Error during allocation of local data (分配本地?cái)?shù)據(jù)錯(cuò)誤) 。對(duì)于S7-CPU每個(gè)優(yōu)先級(jí)都有對(duì)本地?cái)?shù)據(jù)大小的限制,,如果用戶使用的范圍超出了此限制,,CPU將出現(xiàn)錯(cuò)誤。以6ES7315-2AG10-0AB0為例,,其每個(gè)優(yōu)先級(jí)下的本地?cái)?shù)據(jù)大小為512 BYTE,。如下錯(cuò)誤使用都可能導(dǎo)致此錯(cuò)誤:
? OB1 調(diào)用FC1,F(xiàn)C1 中定義的local data(TEMP數(shù)據(jù)類型)與OB1中定義的local data(TEMP數(shù)據(jù)類型)總和超出了CPU 對(duì)此優(yōu)先級(jí)分配的local data 數(shù)量,。
? OB1 中嵌套調(diào)用多個(gè)FC,, 這些FC 使用的local data 與OB1中定義的local data(TEMP數(shù)據(jù)類型)總和超過(guò)了分配給此優(yōu)先級(jí)的local data 數(shù)量,。
此時(shí)CPU將報(bào)16#3576錯(cuò),如圖5所示:
圖5:分配本地?cái)?shù)據(jù)錯(cuò)誤
? 對(duì)于S7-400CPU,, 用戶可以在硬件配置中調(diào)節(jié)每個(gè)優(yōu)先級(jí)下的本地?cái)?shù)據(jù)大小,,以6ES7412-2XG04-0AB0為例,如圖6所示:
西門(mén)子X(jué)C224交換機(jī)
圖6:分配本地?cái)?shù)據(jù)
4. 當(dāng)用戶在使用嵌套功能出現(xiàn)錯(cuò)誤時(shí),,對(duì)于支持OB88的CPU(例如S7-400CPU),,可用通過(guò)下載OB88來(lái)防止CPU停機(jī),此時(shí)CPU將處于SF狀態(tài),,但OB88不可以再出現(xiàn)嵌套使用錯(cuò)誤,,否則CPU將進(jìn)入停機(jī)狀態(tài)。對(duì)于不支持OB88的CPU(例如S7-300CPU),,當(dāng)出現(xiàn)嵌套調(diào)用錯(cuò)誤時(shí),,無(wú)法避免CPU進(jìn)入停機(jī)狀態(tài)。
描述
S7-PLCSIM 支持以下通訊塊來(lái)實(shí)現(xiàn)兩個(gè)S7-400 CPU模塊間的通信:
- SFB8 "USEND"
- SFB9 "URCV"
- SFB12 "BSEND"
- SFB13 "BRCV"
- SFB15 "PUT"
- SFB14 "GET"
- SFB19 "START"
- SFB 20 "STOP"
- SFB 22 "STATUS"
- SFB 23 "USTATUS"
要求
- 需要S7-PLCSIM V5.4 SP3(或更高版本),。
- 在STEP 7(TIA Portal)中建立一個(gè)項(xiàng)目,,對(duì)兩個(gè)S7-400 CPU進(jìn)行硬件組態(tài)和網(wǎng)絡(luò)組態(tài)。
- 在模塊之間已經(jīng)組態(tài)了S7連接和通信連接,。
- 在主動(dòng)站S7-400 CPU的用戶程序中,,調(diào)用“BSEND”指令來(lái)給被動(dòng)站CPU發(fā)送數(shù)據(jù)。
- 在被動(dòng)站S7-400CPU中調(diào)用“BRCV”指令來(lái)接收來(lái)自主動(dòng)站S7-400 CPU的數(shù)據(jù),。
注意
本條目提供的項(xiàng)目包含兩個(gè)S7-400 CPU的組態(tài)和連接組態(tài)以及用戶程序,。
以下步驟列出了如何使用PLCSIM仿真通訊。下載附件中的STEP 7(TIA Portal)項(xiàng)目包含了兩個(gè)S7-400站通過(guò)工業(yè)以太網(wǎng)通信 ,。
Station_1中的OB1包含計(jì)數(shù)器的程序,,將其輸出值傳送到Station_2。
- 在項(xiàng)目導(dǎo)航中選中“Station_1”并打開(kāi)S7-PLCSIM,,可以通過(guò)菜單命令“Online > Simulation > Start”或者菜單欄的“Start simulation” 圖標(biāo)打開(kāi),。實(shí)例編號(hào)為“S7-PLCSIM1”的*個(gè)仿真CPU的對(duì)話框被打開(kāi)。
- 如果是*仿真這個(gè)項(xiàng)目,,就會(huì)打開(kāi)“Extended download to device”對(duì)話框,。在“PG/PC Interface”中選擇如圖1所示的設(shè)置,并單擊“Start search”,。
圖. 1
- 當(dāng)在線連接已經(jīng)建立時(shí),,單擊“Load”按鈕。
- 然后,,在打開(kāi)的“Load preview”對(duì)話框中,繼續(xù)單擊“Load”按鈕,。
- 在S7-PLCSIM 中使用“Add”菜單來(lái)加載子窗口“Input”和“Counter”,,用來(lái)監(jiān)視和控制程序,。對(duì)于“Station_1”需要“EB2”和“Z1”。
- 在S7-PLCSIM1的“CPU”子窗口中,,將運(yùn)行模式從“STOP”切換到“RUN-P”,。
圖. 2
- 選中項(xiàng)目導(dǎo)航中的“Station_2”并重復(fù)步驟1來(lái)打開(kāi)第二個(gè)“S7-PLCSIM2”實(shí)例。
- 在“Load preview”對(duì)話框中單擊“Load”按鈕,。
- 與步驟5相同,,給實(shí)例“S7-PLCSIM2”添加“Output”。對(duì)于“Station_2”需要“AW1”,。
- 在S7-PLCSIM2中的“CPU”子窗口中,,將運(yùn)行模式從“STOP”切換到“RUN-P”。
圖. 3
- 在S7-PLCSIM1(仿真Station 1)中,,EB2控制計(jì)數(shù)器Z1并將計(jì)數(shù)值傳送到S7-PLCSIM2 (仿真Station 2)中的AW1,。
- E2.0: 自動(dòng)向上計(jì)數(shù)的時(shí)鐘標(biāo)記
- E2.1:向上計(jì)數(shù)
- E2.2: 向下計(jì)數(shù)
- E2.3: 計(jì)數(shù)器的預(yù)設(shè)值
- E2.4: 復(fù)位計(jì)數(shù)器