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