在重要的工業生產領域和軍用產品設計中,采用冗余技術提高控制系統可靠性的做法越來越普遍。常規的冗余就是采用成倍增加元件的方式來參與控制,以期能夠將因控制設備的意外而導致的停機降到最少。
燃油鍋爐是輸油管道加熱系統中的加熱設備,鍋爐的無故障運行是整個輸油管道網絡正常工作的保證。在鍋爐控制系統中,設計采用兩組獨立運行的西門子PLC軟件冗余控制系統,保證加熱系統的可靠、連續、安全運行。
冗余常見的方式是中央處理器冗余、I/O 冗余和通訊冗余。中央處理器單元冗余(即一用一備或一用多備),在主處理器單元失效時,備用處理器單元自動投入運行,接管控制。在控制權的交互方式上又可分為硬件冗余和軟件冗余兩種。硬件冗余是采用硬件方式進行切換,不用編程。除了成對的使用處理器外,還用專用的熱備模塊,熱備模塊負責檢測處理器,一旦發現主處理器失效,馬上將系統控制權交給備用處理器。硬件冗余均采用光纖通訊,通訊速度快,系統穩定,切換時間更短,但是成本也比較高。軟件冗余方式只需要成對的處理器,用軟件編程的方式進行處理器的切換,組成比較經濟,構成十分靈活,但程序處理需要一定的時間,對于時鐘同步及切換時間要求不是十分嚴格的場合,選用軟件冗余方式還是非常經濟有效的。
1.控制系統構成:
1.1 監控系統整體設計
本控制方案設計采用了SIMATIC WinCC 組態軟件來實現過程控制的上位機組態,WinCC是在生產和過程自動化中解決可視化和控制任務的工業技術系統。下位機控制系統設計采用兩套獨立的西門子 SIMATIC S7-300系列PLC實現冗余控制,其編程軟件STEP-7功能強大,模塊化結構,優化了用戶程序。
監控系統構成實現如圖1:
圖1 冗余監控系統
Fig.1 Software redundancy monitoring system
1.2 PLC軟件冗余控制系統
軟件冗余是Siemens實現冗余功能的一種低成本解決方案,可以應用于對主備系統切換時間要求不高的控制系統中。
1.2.1系統結構
Siemens軟件冗余系統的軟件、硬件包括:
1套STEP7編程軟件(V5.x)加軟冗余軟件包(V1.x);
2套PLC控制器及I/O模塊,可以是S7-300或S7-400系統;
3條通訊鏈路,主系統與從站通訊鏈路(PROFIBUS 1)、備用系統與從站通訊鏈路(PROFIBUS2)、主系統與備用系統的數據同步通訊鏈路(MPI 或 PROFIBUS 或 Ethernet);
軟冗余能夠實現:
1. 主機架電源、背板總線等冗余;
2. PLC處理器冗余;
3. PROFIBUS現場總線網絡冗余(包括通訊接口、總線接頭、總線電纜的冗余);
4. ET200M站的通訊接口模塊IM153-2冗余。
軟冗余系統由A和B兩套PLC控制系統組成。開始時,A系統為主,B系統為備用,當主系統A中的任何一個組件出錯,控制任務會自動切換到備用系統B當中執行,這時,B系統為主,A系統為備用,這種切換過程是包括電源、CPU、通訊電纜和IM153接口模塊的整體切換。系統運行過程中,即使沒有任何組件出錯,操作人員也可以通過設定控制字,實現手動的主備系統切換,這種手動切換過程,對于控制系統的軟硬件調整、更換非常有用。
1.2.2 系統工作原理
在軟冗余系統進行工作時,A、B控制系統(處理器,通訊、I/O)獨立運行,由主系統的PLC掌握對ET200從站中的I/O控制權。A、B系統中的PLC程序由非冗余用戶程序段和冗余用戶程序段組成,主系統PLC執行全部的用戶程序,備用系統PLC只執行非冗余用戶程序段,而跳過冗余用戶程序段。下面我們看一下軟冗余系統中PLC內部的運行過程(圖2):
圖2 冗余工作原理
Fig.2 The working principle of software redundancy
1.3 PLC控制系統設計
利用信號采集模塊實時采集鍋爐的輸油管進出口溫度和壓力,根據設定起爐、轉火、停爐溫度值控制燃燒機的自動啟動、轉火、停止等操作。根據溫度、壓力報警設定值,控制鍋爐緊急停爐和故障報警等處理。
控制系統組成:一組CPU 315-2 DP 處理器(帶PROFIBUS-DP接口);2組ET200M模塊(各自帶2個IM352接口);一組SM321 DI開關量輸入模塊;一組SM322 DO開關量輸出模塊;3組SM331 AI模擬量輸入模塊。一組CP343-1以太網通信處理器模塊。
1.4 WinCC與S7-300的通信實現
根據控制方案的設計,采用WinCC組態作為上位機監控,用西門子的S7_300作為下位機執行機構,我將采用以太網的標準Tcp/IP協議實現WinCC與S7-300的通信,將現場的狀態參數、控制參數等上傳到監控層。這個變量傳遞的過程可以用圖3來說明:
圖3 變量監控過程
Fig.3 Course of variable monitoring
1.5 WinCC組態冗余的實現
通過兩臺獨立計算機同時運行項目功能完全相同的WinCC組態項目,構成并行服務器來實現組態冗余結構,兩臺服務器通過以太網連接,并與PLC連接。每臺服務器都帶有其自身的過程連接和可用的數據歸檔,工作PLC站將過程數據和消息同時發送到兩臺冗余服務器。如果一臺服務器發生故障,另一臺將繼續接收和歸檔來自PLC工作站的過程值和消息。出現故障的服務器重新工作后,冗余服務器為故障時間的歸檔執行同步,通過將丟失的數據重新傳送到出故障的服務器,來消除故障引起的歸檔差別。
冗余服務器的組態實現:1.必須在兩個冗余服務器上組態功能完全相同的WinCC組態項目(建議使用WinCC項目復制器)。2. 對于WinCC冗余,需要同步服務器(建議使用設備的時間同步)。3. 配置冗余用戶歸檔,實現用戶歸檔同步。4. 組態在線消息同步。5. 打開冗余編輯器,在"冗余伙伴服務器"項,輸入冗余服務器的名稱,并在"用戶歸檔"項下,激活"用戶歸檔的同步"。
本系統通過動態向導設置讀取IP冗余地址,實現主S7-300數據監控。
1.6 軟冗余程序的設計
軟冗余程序需要西門子提供的軟冗余軟件包及STEP7,在A站的Block中插入OB1(主循環程序塊)、OB35(定時中斷組織塊)、OB100(暖啟動調用程序塊)、OB80(在主系統與備用系統切換時間超時,調用該塊)、OB82(DP-Slave ET200站上的IM153-2模塊出錯報警,調用該功能塊)、OB83(DP從站的接口模塊與主站鏈接斷開或鏈接重新建立時調用該塊)、OB86(主從站通訊出錯調用該塊)、OB87(通訊失敗調用該塊)、OB122(外圍設備訪問出錯調用該塊)、OB121等組織塊,并對其中的OB100、OB35、OB86進行編程。
首先,用戶需要在初始化程序中(OB100)定義冗余部分的數據區,該數據區可以包括:一個過程映像區,一個定時器區,一個計數器區和一個數據塊區,S7-300同步的最大數據量為8kBytes。本控制系統將每臺鍋爐的溫度、壓力采集值和運行狀態參數分別放置在不同的DB數據塊,并定義為需要冗余的數據塊。
使用的是OB35的默認屬性,即每100ms中斷觸發一次,可以根據實際的需要在CPU屬性中修改中斷的時間間隔。在OB35里調用FB101S 'WR_ZYK'功能塊,FB101塊中封裝了冗余功能的程序段,實現冗余功能。當執行'SWR_START'程序塊時,系統分配這些數據區,不能用S7 的定時器和計數器,只能使用IEC標準的定時器和計數器。
OB35中的程序段也可以在OB1中實現,只是不使用中斷的方式,而使用主循環的方式。
調用FB101時,你可以在線地讀出RETURN_VAL參數的數值,如果為0,說明冗余鏈接正常。如果為8015說明數據同步的連接不成功,原因是CP342-5之間的FDL鏈接建立的不正確或物理鏈路不通,或者是FC100的VERB_ID參數與NETPRO中的ID號不一致。
2.結束語:
以上簡要介紹了SIEMENS軟件冗余系統的系統組成、工作原理、程序編制,整個系統組成簡單、構成靈活、程序編制比較容易。系統在某輸油站投入運行以來,保證了系統無故障停機運行,提高了工作效率,降低了維護費用,以其可靠性、靈活性、便利性受到用戶好評。