西門子網(wǎng)關(guān)6GK1411-5AB00
6GK1411-5AB00IE/PB LINK PN IO 網(wǎng)關(guān) 在工業(yè)以太網(wǎng)和 PROFIBUS(帶 PROFINET IO)之間 功能 S7 路由和 數(shù)據(jù)記錄路由,10/100 it/s 以太網(wǎng) 9.6 kbit/s 至 12 it/s PROFIBUS
1. 簡介
在另一個技術(shù)文檔《連接面板到S7-400H系統(tǒng)——主站跟蹤方法》(文檔編號:F0244)中,已經(jīng)介紹了一種用于將面板連接到S7-400H系統(tǒng)的方法。該文檔中,通過選擇連接主CPU的方法,使與S7-400H連接的面板(操作屏)能在冗余系統(tǒng)中自動切換。該方法實現(xiàn)簡單、思路清楚、切換速度較快;但在“面板與S7-400H間的網(wǎng)絡(luò)線路故障”等情形下,不能實現(xiàn)地自動切換。所以,本文提供了另一種方法,可以解決上述問題。
本方法基本原理如下:
1) 在H-CPU中使用的一個心跳信號變量,并周期性變化。在面板中,通過檢測其變化,來實現(xiàn)對兩個連接狀態(tài)的判斷。
2) 在面板中使用兩個的連接與兩個機架的CPU通訊,接收來自H-CPU的心跳信號以及與CPU連接狀態(tài)信號。建立第三個連接,用于創(chuàng)建除以上兩種信號之外的其他的工程變量。
3) 為兩個CPU分別建立亡計數(shù)器,當(dāng)對應(yīng)于其中一條連接的亡計數(shù)器數(shù)值出限制時,此連接可用。同時,利用連接切換函數(shù),將第三個連接切換至另一個CPU。
4) 如果系統(tǒng)檢測到正常的心跳信號,對應(yīng)的亡計數(shù)器將被周期性地復(fù)位至初始值,此時該計數(shù)器數(shù)值會維持在較低的范圍(本例中為2~3);如果其中一個連接失效后,亡計數(shù)器數(shù)值會維持在較高的范圍(本例中為11~12)。
本文的方法適用于:
? IE方式(推薦方式)
? MPI方式
? DP方式㈡*
*注:可以參考技術(shù)文檔《連接面板到S7-400H系統(tǒng)——主站跟蹤方法》(文檔編號:F0244)的應(yīng)用場合。
此方法只適合于支持3個及以上連接的、并且支持“ChangeConnection” 函數(shù)的面板。像OP 77、OP/TP 170、OP/TP177、OP/TP 270、OP/TP 277、MP 270、MP 277、MP 370等面板都滿足這些要求。
關(guān)于使用“主站跟蹤方法”連接面板到S7-400H系統(tǒng),可以參考下面連接。
本文不介紹WinCC Flexible的基本使用和HMI畫面的組態(tài)過程與組態(tài)方法。詳細(xì)可以參考下面鏈接。
2.1 配置CPU的心跳信號2. 心跳信號方法組態(tài)步驟
對于S7-400H,我們可以使用Clock Memory來作為心跳信號。關(guān)于Clock Memory的說明,可以參考在線幫助獲得更詳細(xì)的信息。
注1:項目程序或其他應(yīng)用中沒有占用Clock Memory所組態(tài)的地址區(qū)域。本例中,使用 10作為Clock Memory(心跳信號)。
注2:若S7-400H系統(tǒng)已經(jīng)在生產(chǎn)運行中,且不能停機,可以參考: 3. 不停機增加心跳信號產(chǎn)生程序。

圖1 組態(tài)Clock Memory作為心跳信號
2.2 配置面板連接
在WinCC Flexible中,為面板組態(tài)與S7-400H的三個連接,分別為:
| Connection_A | 與CPU 0的連接 |
| Connection_B | 與CPU 1的連接 |
| Connection_X | 可變的連接,過程變量都建立在此連接上。 初始時,此連接參數(shù)與Connection_A相同。 |
表1 連接配置
組態(tài)配置可以參考下圖。
西門子網(wǎng)關(guān)6GK1411-5AB00圖2 為面板組態(tài)與S7-400H的三個連接
2.3 創(chuàng)建要的變量
在WinCC Flexible中,在相應(yīng)的連接下創(chuàng)建要變量,如下圖所示。(其中Procs_Data為測試變量,可根據(jù)實際情況使用用戶自定義的變量。)

圖3 在相應(yīng)的連接下創(chuàng)建要的變量
變量的具體意義如下:
| ActiveConnection | (內(nèi)部變量)指示當(dāng)前Connection_X正在使用連接鏈路 |
| CPU0_DeathCounter | 用于累計與CPU 0連接丟失周期的“亡計數(shù)變量” |
| CPU0_DeathCounter_Ret | 復(fù)位時使用的與CPU 0連接的“亡計數(shù)變量” |
| CPU0_DeathDeclare | 用于宣布與CPU 0連接丟失的“亡計數(shù)變量” |
| CPU0_Heartbeat | CPU 0的心跳信號 |
| CPU1_DeathCounter | 用于累計與CPU 1連接丟失周期的“亡計數(shù)變量” |
| CPU1_DeathCounter_Ret | 復(fù)位時使用的與CPU 1連接的“亡計數(shù)變量” |
| CPU1_DeathDeclare | 用于宣布與CPU 1連接丟失的“亡計數(shù)變量” |
| CPU1_Heartbeat | CPU 1的心跳信號 |
| Procs_Data | 本例中使用的用于測試的過程變量MW 100(本例中只使用了一個,用戶可根據(jù)需求創(chuàng)建過程變量) |
表2 變量的具體意義
本例方法中,為兩個心跳信號在H-CPU各注冊了一個變量地址。但在面板項目中,對兩個心跳信號各創(chuàng)建了三個“具有相同地址”的變量。原因為:
CPU?_DeathCouter定義了亡計數(shù)的上限值以及使用此變量進(jìn)行計數(shù)的累加和復(fù)位;CPU?_DeathDeclare用于“判定亡計數(shù)器是否已經(jīng)亡標(biāo)準(zhǔn)(觸發(fā)上限)”;CPU?_DeathCounter_Ret用于“當(dāng)一個連接失效后,將另一個連接亡計數(shù)器復(fù)位至非亡區(qū)域內(nèi)”(此變量與前兩個變量使用相反的連接,參考圖3)。
* 注:由于同一變量不能自加計數(shù)過自身上限,所以須至少使用兩個相同地址的變量,一個用于觸發(fā)一個上限,另一個用于累加計數(shù)并能過前者的上限。因此,CPU0_DeathCounter、CPU0_DeathCounter_Ret和CPU0_DeathDeclare這三個“亡計數(shù)變量”使用相同的物理地址;同樣,CPU1_DeathCounter、CPU1_DeathCounter_Ret和CPU1_DeathDeclare也使用相同的物理地址。
2.4 為部分變量設(shè)置上限
CPU0_DeathCounter和CPU1_DeathCounter設(shè)置上限為12,定義了“亡計數(shù)變量”的值為12;CPU0_DeathDeclare和CPU1_DeathDeclare設(shè)置上限10,定義了當(dāng)“亡計數(shù)變量 > 10”時,宣布連接丟失。
西門子網(wǎng)關(guān)6GK1411-5AB00圖4 為變量設(shè)置上限
2.5 增加亡計數(shù)與心跳監(jiān)測相關(guān)的函數(shù)
當(dāng)“亡計數(shù)變量 > 10”時,宣布連接丟失: 切換連接,并將另一個亡計數(shù)復(fù)位回“非亡區(qū)”。

圖5 增加亡計數(shù)與心跳監(jiān)測相關(guān)的函數(shù)(1)
每心跳被檢測到,都復(fù)位相應(yīng)“亡計數(shù)變量”,并向上累計與另一個CPU的“亡計數(shù)變量”。

圖6 增加亡計數(shù)與心跳監(jiān)測相關(guān)的函數(shù)(2)
2.6 設(shè)計畫面
項目中畫面的設(shè)計,應(yīng)根據(jù)用戶需求而定。本例中,提供一些常用的相關(guān)設(shè)計。
與連接狀態(tài)判斷和切換無關(guān)的變量(工程變量),都應(yīng)基于連接“Connection_X”創(chuàng)建。

圖7 為連接狀態(tài)、連接切換和切換測試組態(tài)畫面(1)
可以設(shè)計兩個按鈕用于手動的連接切換,如上圖和下圖。

圖8 為連接狀態(tài)、連接切換和切換測試組態(tài)畫面(2)
2.7 結(jié)果測試
當(dāng)兩個連接鏈路都正常時的畫面狀態(tài),如下圖。

圖9 測試結(jié)果——與兩個CPU連接都正常
當(dāng)與CPU 0連接時并失敗時的畫面狀態(tài),如下圖。西門子網(wǎng)關(guān)6GK1411-5AB00

圖10 測試結(jié)果——與CPU0的連接故障
3. 不停機增加心跳信號產(chǎn)生程序
如果當(dāng)前系統(tǒng)正在運行,且無法停機修改組態(tài)來增加Clock Memory。此時,我們可以通過增加程序或程序段的方式來產(chǎn)生心跳信號(代替Clock Memory)。下面給出了用于梯形圖LAD編程和CFC編程使用的兩種示例程序段。

圖11 心跳信號生成程序段——LAD編程

圖12 心跳信號生成程序段——CFC編程
注:項目程序或其他應(yīng)用中沒有占用“心跳信號”使用的地址區(qū)域。本例中,使用 10作為心跳信號。使用上述程序后,不要再將相同的地址區(qū)域組態(tài)為Clock Memory使用。
支 持?jǐn)U展診斷功能的PROFINET IO設(shè)備只能被同樣支持?jǐn)U展診斷功能的PROFINET IO控制器操作。在STEP7硬件組態(tài)中把支持?jǐn)U展診斷功能的PROFINET IO設(shè)備(如ET200S IM151-N接口模塊67151-3BA23-0AB0)連接到不支持?jǐn)U展診斷功能的PROFINET IO控制器(如CP443-1Advanced模塊6GK7443-1EX41-0XE0)上時,會提示出錯,如圖1所示:

此 時,要么更換PROFINET IO控制器為支持?jǐn)U展診斷功能的控制器(如CP443-1Advanced模塊6GK7443-1GX20-0XE0),或者將實際支持?jǐn)U展診斷功能的 PROFINET IO設(shè)備(如ET200S IM151-N接口模塊67151-3BA23-0AB0)組態(tài)為較低版本的不支持?jǐn)U展診斷功能的PROFINET IO設(shè)備(如ET200S IM151-N接口模塊67151-3BA20-0AB0),如下圖,此時可以正常組態(tài)和通訊,但不能應(yīng)用接口模塊的擴展診斷功能。

西門子網(wǎng)關(guān)6GK1411-5AB00










