恵德榮
(新疆安控科技有限公司,新疆克拉瑪依,834000)
RockE50控制器是基于SafeRTOS實時操作系統(tǒng)設計的一款安全產(chǎn)品,兩個CPU模塊采用雙機熱備冗余模式。本系統(tǒng)采用主控制器容錯架構,該產(chǎn)品有冗余的主控制器模塊、一個輸入模塊(DI/AI)、一 個輸出模塊(DO)和一個通訊模塊組成。主要用于對信號、工業(yè)設備的檢測與控制。其中通訊模塊(FSC5301)負責485通訊,包括現(xiàn)場485設備數(shù)據(jù)讀取、監(jiān)控小屏數(shù)據(jù)交互等;模擬量輸入模塊(FSC5101)主要負責采集現(xiàn)場儀表模擬量信號采集;數(shù)字量輸入模塊(FSC5112)主要負責現(xiàn)場設備開關量信號的采集;數(shù)字量輸出模塊(FSC5133)主要負責對現(xiàn)場設備進行開關控制。這套控制器基于以太網(wǎng)進行數(shù)據(jù)傳輸,通過MODBUS RTU協(xié)議與SCADA系統(tǒng)進行數(shù)據(jù)交互,從而實現(xiàn)對現(xiàn)場設備與儀表遠程監(jiān)控的功能。
對于FSC5501CPU模塊(主控模塊)來講,主要工作流程分四步走,四個步驟按順序執(zhí)行。第一步:設備上電后進行硬件初始化操作;第二步:初始化調(diào)度器;第三步:創(chuàng)建應用程序任務;第四步:啟動任務協(xié)調(diào)器執(zhí)行應用程序任務。最終CPU工作在第四步持續(xù)執(zhí)行創(chuàng)建的應用程序,直到異常發(fā)生跳出循環(huán)進入Safe state(安全)狀態(tài)。Safe state 狀態(tài)是安全儀表系統(tǒng)發(fā)生故障時,使被控制過程轉(zhuǎn)入預定安全狀態(tài)。此狀態(tài)還可以根據(jù)現(xiàn)場生產(chǎn)環(huán)境設備運行的安全要求做進一步訂制。
CPU模塊 對AI模塊采集數(shù)據(jù)的處理是利用創(chuàng)建應用程序任務來完成的,主控模塊通過CAN總線讀取AI模塊各通道的原始值(4~20mA)與AI模塊的故障碼。為了讓最終用戶或系統(tǒng)集成商來開發(fā)應用程序和配置安全控制站(SCS),我們使用FlexiSafe Workbench開發(fā)工具進行應用程序程序編寫。它支持IEC 61131-3語言 (SFC、FBD、LD、ST、IL) ,使開發(fā)人員能使用合適的語言來滿足應用的要求。由于現(xiàn)場儀表的量程有多種,我們需要量程轉(zhuǎn)化公式(1)對讀取的數(shù)據(jù)進行處理,從而得到我們想要的值。AI故障的獲取方式有兩種:一種是通過主控模塊進行程序編寫計算獲取(圖3);一種是主控模塊從AI模塊直接讀取故障狀態(tài)碼(FSC5101_AI_006_ERR.5),其中“006”代表的是第0機架06號槽位,“ERR.5”代表的是AI模塊的第6個通道的故障狀態(tài);為了系統(tǒng)的健壯性,以上兩種方式均采用。以PT10101A為例,講述具體做法。
PT10101A ,量程0~50MPa,低報10MPa 高報21MPa,經(jīng)過代碼優(yōu)化、增加系統(tǒng)故障自診斷功能具體實現(xiàn)如圖3所示。值表1中修改電流的對應值,要通過修改AI模塊底層程序來完成,其修改的目的有兩點:一是與安控科技開發(fā)的其他系列產(chǎn)品的電流對應值保持一致,來適應最終用戶的使用習慣;二是提高采集數(shù)據(jù)的分辨率。
表1 AI通道接線故障的判斷標準
圖3 AI數(shù)據(jù)處理程序?qū)崿F(xiàn)
AI模塊采集現(xiàn)場儀表的的電流信號需要實時地傳輸?shù)街骺啬K中,為了提高數(shù)據(jù)傳輸?shù)男?,當AI模塊采集到的電流信號發(fā)生改變時,才將數(shù)據(jù)通過冗余的CAN總線(圖
1中CAN1、CAN2總線)傳輸至主控模塊,這里以千分之一精度指標進行處理,即電流對應值大于50時進行數(shù)據(jù)傳送,這塊的實現(xiàn)仍需要修改AI模塊的底層程序來實現(xiàn)。其中FSC5301_AI_RG功能塊的實現(xiàn)代碼如圖4所示。
圖4
以現(xiàn)場閥門(ESDV10101A_ZIO)開到位狀態(tài)為例,講述對數(shù)字量輸入信號處理方法。FSC5112_DI_008_ERR.0其中“008”代表的是第0機架08號槽位,“ERR.0”代表的是DI模塊的第1個通道的故障狀態(tài)。圖4為具體的代碼,實現(xiàn)如圖5所示。
表2 DI信號點表
圖5 DI數(shù)據(jù)處理程序?qū)崿F(xiàn)
圖5 中DI_ERR_CODE1 ~ DI_ERR_CODE4,是從主控器定義好的Modbus地址中獲的。DI8_Err_Code按照事先定義好的規(guī)則將其解析后進行輸出。DI8_Channel_Err功能塊也是類似操作。
以現(xiàn)場閥門(ESDV10101A_ZIO)開命令為例,講述對數(shù)字量輸入信號處理方法。FSC5133_DO_009_ERR.0其中“009”代表的是第0機架09號槽位,“ERR.0”代表的是D0模塊的第1個通道的故障狀態(tài)。對于DO的故障處理過程類似與對DI處理過程。
表3 DO信號點表
通過圖1不難發(fā)現(xiàn)我們搭建的這套系統(tǒng),采用主控制器雙機熱備用冗余是不錯的選擇。兩個主控模塊同時工作,每個主控模塊都有兩個網(wǎng)卡,因為該系統(tǒng)與其他設備、系統(tǒng)之間通訊是基于TCP傳輸控制協(xié)議的。TCP協(xié)議是一種面向連接的、可靠的、基于字節(jié)流的傳輸層通信協(xié)議,也就意味著Clinet端與Server端需要進行三次握手的過程。當主控模塊進行冗余切換時,如果要切換冗余網(wǎng)卡的IP地址,那么就意味著Clinet端與Server端必定要重新建立鏈接,系統(tǒng)冗余切換的效率也將受到局域網(wǎng)網(wǎng)絡環(huán)境的影響。但對于切換時效要求不高的生產(chǎn)環(huán)境,這種冗余方式無疑是很好的選擇,因為用這種架構搭建的系統(tǒng),結構簡單且容易實現(xiàn)。對于圖1中的SCADA系統(tǒng)說,主控模塊IP切換與否都不影響系統(tǒng)冗余的可靠性。SCADA讀取主控模塊數(shù)據(jù)時先從主IP設備讀取數(shù)據(jù),超時仍未讀取到數(shù)據(jù)則從備IP設備讀取數(shù)據(jù)。寫數(shù)據(jù)時主、備IP設備均寫入。若Clinet端與Server端建立的鏈接未發(fā)生中斷,冗余可靠性、時效將大幅提高。由于在網(wǎng)設備中還有其他廠家的產(chǎn)品與其通訊??紤]現(xiàn)場環(huán)境實際情況,本次搭建的系統(tǒng)需要進行冗余IP地址切換。更換網(wǎng)卡的地址可以通過向網(wǎng)卡操作寄存器中寫值來實現(xiàn)。
圖1 RockE50系統(tǒng)冗余架構示意圖
除了使用FlexiSafe Workbench工具進行應用程序編寫外,還可以用C語言代碼來實現(xiàn)實際的工況需求。在圖2可以看出,主控模塊有創(chuàng)建應用程序任務的過程。在此創(chuàng)建用戶自定義任務,根據(jù)現(xiàn)場需求編寫控制邏輯代碼。如添加創(chuàng)建用戶自定義任務代碼(xCreateUserProgramTask),需要在創(chuàng)建Flexisafe任務(xCreateFlexisafeTask)成功之后在進行創(chuàng)建,目的是為了不影響FlexiSafe Workbench工具的正常使用,創(chuàng)建的用戶自定義任務的優(yōu)先級要低于Flexisafe任務的優(yōu)先級。值得注意的是,對寄存器的操作沖突部分將會被覆蓋,需要編程人員多加注意。關于用戶自定與任務的創(chuàng)建函數(shù)編寫可以參考FreeRTOS 任務創(chuàng)建過程。
圖2 主控模塊工作邏輯圖
這種方式實現(xiàn)的好處有以下幾點:一、不需要購買FlexiSafe Workbench授權,而是用RockESet工具進行硬件組態(tài);二、可以滿足復雜的工況需求;三、可以調(diào)用主控模塊所有軟、硬件資源而不受約束。缺點主要表現(xiàn)在以下幾個方面:一、對編程人員的技術要求較高,需要對這款產(chǎn)品所使用的軟、硬件有一定的了解;二、沒有直觀的圖形化界面供現(xiàn)場調(diào)試時使用。
通過對該款產(chǎn)品的應用,認為RockE50邏輯控制器是一款高可用的安全產(chǎn)品,它使用多重冗余的方式來保證系統(tǒng)的可靠運行,電源、控制器I/O 模塊、數(shù)據(jù)通訊雙重冗余使得該產(chǎn)品具有高可用性,能夠檢測危險故障并快速處理,支持 I/O 斷線、 短路監(jiān)測功能,具有很高的自診斷覆蓋率,極大限度的保證生產(chǎn)的安全運行并最高限度的避免事故的發(fā)生。
感謝安控科技提供產(chǎn)品與技術支持,感謝呼圖壁儲氣庫作業(yè)區(qū)提供生產(chǎn)實驗環(huán)境與支持。