恵德榮
(新疆安控科技有限公司,新疆克拉瑪依,834000)
RockE50控制器是基于SafeRTOS實時操作系統設計的一款安全產品,兩個CPU模塊采用雙機熱備冗余模式。本系統采用主控制器容錯架構,該產品有冗余的主控制器模塊、一個輸入模塊(DI/AI)、一 個輸出模塊(DO)和一個通訊模塊組成。主要用于對信號、工業設備的檢測與控制。其中通訊模塊(FSC5301)負責485通訊,包括現場485設備數據讀取、監控小屏數據交互等;模擬量輸入模塊(FSC5101)主要負責采集現場儀表模擬量信號采集;數字量輸入模塊(FSC5112)主要負責現場設備開關量信號的采集;數字量輸出模塊(FSC5133)主要負責對現場設備進行開關控制。這套控制器基于以太網進行數據傳輸,通過MODBUS RTU協議與SCADA系統進行數據交互,從而實現對現場設備與儀表遠程監控的功能。
對于FSC5501CPU模塊(主控模塊)來講,主要工作流程分四步走,四個步驟按順序執行。第一步:設備上電后進行硬件初始化操作;第二步:初始化調度器;第三步:創建應用程序任務;第四步:啟動任務協調器執行應用程序任務。最終CPU工作在第四步持續執行創建的應用程序,直到異常發生跳出循環進入Safe state(安全)狀態。Safe state 狀態是安全儀表系統發生故障時,使被控制過程轉入預定安全狀態。此狀態還可以根據現場生產環境設備運行的安全要求做進一步訂制。
CPU模塊 對AI模塊采集數據的處理是利用創建應用程序任務來完成的,主控模塊通過CAN總線讀取AI模塊各通道的原始值(4~20mA)與AI模塊的故障碼。為了讓最終用戶或系統集成商來開發應用程序和配置安全控制站(SCS),我們使用FlexiSafe Workbench開發工具進行應用程序程序編寫。它支持IEC 61131-3語言 (SFC、FBD、LD、ST、IL) ,使開發人員能使用合適的語言來滿足應用的要求。由于現場儀表的量程有多種,我們需要量程轉化公式(1)對讀取的數據進行處理,從而得到我們想要的值。AI故障的獲取方式有兩種:一種是通過主控模塊進行程序編寫計算獲取(圖3);一種是主控模塊從AI模塊直接讀取故障狀態碼(FSC5101_AI_006_ERR.5),其中“006”代表的是第0機架06號槽位,“ERR.5”代表的是AI模塊的第6個通道的故障狀態;為了系統的健壯性,以上兩種方式均采用。以PT10101A為例,講述具體做法。

PT10101A ,量程0~50MPa,低報10MPa 高報21MPa,經過代碼優化、增加系統故障自診斷功能具體實現如圖3所示。值表1中修改電流的對應值,要通過修改AI模塊底層程序來完成,其修改的目的有兩點:一是與安控科技開發的其他系列產品的電流對應值保持一致,來適應最終用戶的使用習慣;二是提高采集數據的分辨率。

表1 AI通道接線故障的判斷標準

圖3 AI數據處理程序實現
AI模塊采集現場儀表的的電流信號需要實時地傳輸到主控模塊中,為了提高數據傳輸的效率,當AI模塊采集到的電流信號發生改變時,才將數據通過冗余的CAN總線(圖
1中CAN1、CAN2總線)傳輸至主控模塊,這里以千分之一精度指標進行處理,即電流對應值大于50時進行數據傳送,這塊的實現仍需要修改AI模塊的底層程序來實現。其中FSC5301_AI_RG功能塊的實現代碼如圖4所示。

圖4
以現場閥門(ESDV10101A_ZIO)開到位狀態為例,講述對數字量輸入信號處理方法。FSC5112_DI_008_ERR.0其中“008”代表的是第0機架08號槽位,“ERR.0”代表的是DI模塊的第1個通道的故障狀態。圖4為具體的代碼,實現如圖5所示。

表2 DI信號點表

圖5 DI數據處理程序實現
圖5 中DI_ERR_CODE1 ~ DI_ERR_CODE4,是從主控器定義好的Modbus地址中獲的。DI8_Err_Code按照事先定義好的規則將其解析后進行輸出。DI8_Channel_Err功能塊也是類似操作。
以現場閥門(ESDV10101A_ZIO)開命令為例,講述對數字量輸入信號處理方法。FSC5133_DO_009_ERR.0其中“009”代表的是第0機架09號槽位,“ERR.0”代表的是D0模塊的第1個通道的故障狀態。對于DO的故障處理過程類似與對DI處理過程。

表3 DO信號點表
通過圖1不難發現我們搭建的這套系統,采用主控制器雙機熱備用冗余是不錯的選擇。兩個主控模塊同時工作,每個主控模塊都有兩個網卡,因為該系統與其他設備、系統之間通訊是基于TCP傳輸控制協議的。TCP協議是一種面向連接的、可靠的、基于字節流的傳輸層通信協議,也就意味著Clinet端與Server端需要進行三次握手的過程。當主控模塊進行冗余切換時,如果要切換冗余網卡的IP地址,那么就意味著Clinet端與Server端必定要重新建立鏈接,系統冗余切換的效率也將受到局域網網絡環境的影響。但對于切換時效要求不高的生產環境,這種冗余方式無疑是很好的選擇,因為用這種架構搭建的系統,結構簡單且容易實現。對于圖1中的SCADA系統說,主控模塊IP切換與否都不影響系統冗余的可靠性。SCADA讀取主控模塊數據時先從主IP設備讀取數據,超時仍未讀取到數據則從備IP設備讀取數據。寫數據時主、備IP設備均寫入。若Clinet端與Server端建立的鏈接未發生中斷,冗余可靠性、時效將大幅提高。由于在網設備中還有其他廠家的產品與其通訊。考慮現場環境實際情況,本次搭建的系統需要進行冗余IP地址切換。更換網卡的地址可以通過向網卡操作寄存器中寫值來實現。

圖1 RockE50系統冗余架構示意圖
除了使用FlexiSafe Workbench工具進行應用程序編寫外,還可以用C語言代碼來實現實際的工況需求。在圖2可以看出,主控模塊有創建應用程序任務的過程。在此創建用戶自定義任務,根據現場需求編寫控制邏輯代碼。如添加創建用戶自定義任務代碼(xCreateUserProgramTask),需要在創建Flexisafe任務(xCreateFlexisafeTask)成功之后在進行創建,目的是為了不影響FlexiSafe Workbench工具的正常使用,創建的用戶自定義任務的優先級要低于Flexisafe任務的優先級。值得注意的是,對寄存器的操作沖突部分將會被覆蓋,需要編程人員多加注意。關于用戶自定與任務的創建函數編寫可以參考FreeRTOS 任務創建過程。

圖2 主控模塊工作邏輯圖
這種方式實現的好處有以下幾點:一、不需要購買FlexiSafe Workbench授權,而是用RockESet工具進行硬件組態;二、可以滿足復雜的工況需求;三、可以調用主控模塊所有軟、硬件資源而不受約束。缺點主要表現在以下幾個方面:一、對編程人員的技術要求較高,需要對這款產品所使用的軟、硬件有一定的了解;二、沒有直觀的圖形化界面供現場調試時使用。
通過對該款產品的應用,認為RockE50邏輯控制器是一款高可用的安全產品,它使用多重冗余的方式來保證系統的可靠運行,電源、控制器I/O 模塊、數據通訊雙重冗余使得該產品具有高可用性,能夠檢測危險故障并快速處理,支持 I/O 斷線、 短路監測功能,具有很高的自診斷覆蓋率,極大限度的保證生產的安全運行并最高限度的避免事故的發生。
感謝安控科技提供產品與技術支持,感謝呼圖壁儲氣庫作業區提供生產實驗環境與支持。