趙曉旭
(中國石油西部管道酒泉輸油氣分公司,甘肅 酒泉 735100)
安全生產是企業的生命線,是企業各項工作的重中之重。只有安全生產得到保障,企業才能不斷地發展。輸氣站場中為保證管道及設備安全平穩運行,關鍵時刻有效保護人員生命與設備安全,在現場自動化控制系統中有一整套的保護系統及邏輯,ESD系統作為現場緊急安全系統其重要性不言而喻。

圖1 ESD程序中COMM_PLC例程下ESD與PLC通信程序Fig.1 ESD and PLC communication program under COMM_PLC routine in ESD program
輸氣站場SCADA系統關鍵設備都是冗余配置,常見的有控制器冗余、電源冗余、通信服務器冗余以及通信網絡冗余,其目的是減少系統故障發生概率,提高SCADA系統的可靠性,確保油氣管道穩定、可控運行[1]。但單純的硬件上的冗余不能夠完全保證整個系統的冗余,且局部的不冗余也會導致某個環節薄弱,大大降低了系統的可靠性,這就需要在系統規劃時兼顧硬件與軟件、整體與局部,同時還要考慮如何避免某些極端情況下可能發生的事故。
在西氣東輸三線站場SCADA系統中,過程控制PLC和緊急停車系統ESD均選用了羅克韋爾自動化公司的AB ControlLogix控制器及相關控制系統。站控PLC主要負責普通工藝參數采集,如一般閥門、壓縮機、空壓機、空冷器以及壓縮機廠房進排風機的狀態采集和控制等工作;而ESD系統則負責關鍵工藝參數采集與邏輯判斷、ESD閥門控制以及站場三級ESD的執行。每個設備一般只能由一個系統控制,而在實際的工藝運行和聯鎖保護邏輯中則需要ESD和PLC相互配合工作。比如全站ESD觸發后,ESD系統首先向過程控制PLC發送一個命令,然后由PLC再向壓縮機廠房所有進、排風機再下發停機命令[2]。
以西三線某站為例,通過對站控PLC和ESD系統程序進行細致分析,可以看出三線站場ESD與站控PLC是通過使用MSG指令中的CIP Data Table Write和CIP Data Table Read功能由ESD向PLC傳送和讀取數據的。ESD和PLC程序中分別建立了ESD_to_PLC_INT和PLC_to_ESD_INT的DINT[10]類型的同名數組來相互傳送所需要的數據。ESD與PLC通信程序MSG指令的配置如圖2、圖3、圖4、圖5所示。

圖2 A網數據寫入配置Fig.2 A network data write configuration

圖3 A網數據寫入路徑Fig.3 A network data write path

圖4 A網數據讀取配置Fig.4 A network data read configuration
根據ESD與PLC通信配置可知,三線站場ESD與PLC是通過SCADA系統以太網A網(172.17.153. XXX)進行相互通信的。一旦出現某些情況(比如ENBT模塊故障、網線接頭松動、交換機故障等)將會導致ESD與PLC通信中斷,且現有的系統邏輯中并沒有對ESD與PLC間的通信狀態進行診斷,運行人員無法及時發現ESD與PLC系統通信故障,使得系統容易帶病運行。如果在ESD與PLC通信中斷的情況下全站ESD邏輯觸發,壓縮機廠房進、排風機將無法停止運行,二、三線聯絡閥XV1701、XV1702無法正常關閉,燃料氣撬進口閥XV37107、XV37207無法關閉,燃料氣撬放空閥ESDV37105也無法放空,勢必造成事故的擴大化。
此外,西三線站場壓縮機聯鎖保護停機信號(出站超溫、壓縮機出口匯管超壓、壓縮機進口匯管低壓、儀表氣低壓)均接入了ESD系統,在控制器中進行2oo3表決運算后通過通信軟點傳送至過程PLC,再由PLC向壓縮機UCP系統下發正常停機命令(硬點信號)。如果ESD與PLC通信中斷,壓縮機所有保護聯鎖停機邏輯也將失效,對壓縮機的安全運行也極為不利。
要實現ESD與PLC系統通信的網絡冗余,基本思路是增加通信B網(172.17.21. XXX),另外還需要配置一套通信狀態檢測機制來對兩個系統間的通信狀態進行實時診斷。當A網出現故障后由系統自動切換至B網,或當B網出現故障后自動切換為A網,同時SCADA系統上位機中產生故障報警,提醒運行人員及時處理故障。此外,還應限制A網和B網同時傳送數據,不增加MSG指令的非預定性連接數和系統資源的占用。修改邏輯時還應注意編程思路和新建標簽盡量與原來的程序保持一致,數據結構與標簽域設置合理。
由于ESD與PLC系統均配置了兩塊以太網通信模塊,物理上的冗余通信鏈路本身就存在,所以新增的B網不增加任何硬件成本,只需要在各自的控制器進行相應的組態即可。
在ESD程序中需要新建ESD_to_PLC_W1和ESD_to_PLC_R1的數據類型為MESSAGE的控制器域標簽,用來供ESD通過B網與PLC交換數據,圖6與圖7為數據讀寫路徑配置。

圖5 A網數據讀取路徑Fig.5 A network data read path

圖6 B網數據寫入路徑Fig.6 B Network data write path

圖7 B網數據讀取路徑Fig.7 B network data read path

圖8 PLC程序COMM_ESD例程的最后增加的通信診斷程序Fig.8 The last added communication diagnostics for PLC program COMM_ESD routines

圖9 ESD程序COMM_PLC例程中修改的程序段Fig.9 Program segments modified in COMM_PLC routines for ESD programs
通信診斷的功能是實時檢測ESD與PLC系統的通信狀態,通信中斷后產生報警,確保通信可靠。PLC每秒鐘向ESD系統發送一次時鐘檢測數據,該數據在1~60的范圍內循環遞增。ESD每秒鐘將PLC發送的時鐘檢測數據與前一周期接收到的該數據進行比較,如果不相等,則說明接收到的值是實時變化的,表明通信正常;如果兩者相等,則說明ESD沒有收到最新的時鐘檢測數據,ESD與PLC系統通信不正常,ESD與PLC通信故障點ESD_PLC_COMM_FLT被置1。
網絡自動切換用于實現兩條通信鏈路的熱備用,在通信故障產生時實現自動切換,確保通信的可靠性。以上程序中ESD_to_PLC_W與ESD_to_PLC_R兩個MSG指令只是在原來的邏輯上增加了執行條件,參數設置并沒有改變。上述程序段所實現的功能是在每次ESD與PLC通信中斷時,使雙整形數ESD_PLC_COMM_SHIFT(ESD與PLC通信鏈路切換點)二進制取反一次,使得布爾量ESD_PLC_COMM_SHIFT.0在0和1之間切換。當ESD_PLC_COMM_SHIFT.0為0時,ESD與PLC通過A網交換數據;當ESD_PLC_COMM_SHIFT.0為1時,ESD與PLC通過B網交換數據,這樣即可實現通信故障時網絡自動切換。為了防止由于干擾造成網絡的頻繁切換,通過現場實際測試,此處設置的故障延遲時間為3s即可滿足要求。
為了實現ESD與PLC系統通信故障的及時發現與處理,需要將通信故障點ESD_PLC_COMM_FLT上傳至上位機進行報警提示。首先應在將通信故障點賦值給一個空的N7地址,然后根據該N7地址換算出IEC地址,通過在RCI和上位機數據庫中進行相應的配置即可實現通信故障的實時報警。
需要注意的是在兩個通信服務器中均要進行配置,且兩個RCI中的配置信息要相同,以保證在RCI進行主備切換時不影響該數據的上傳。
通過少量的程序設計,實現了西三線站場SCADA系統中最重要的兩個子系統間通信網絡的冗余熱備,修復了薄弱環節,使得整個SCADA系統網絡結構趨于合理,大大減小了運行風險。