羅貴舟 李志鵬 韋國歆
摘要:隨著電力機房承載業務的增多,智能傳感設備得到廣泛部署使用,其在傳統監控領域,監控裝置的接入能力和協議適配性面臨新的挑戰。本文以ARM Cortex-A9架構的恩智浦i.MX6為核心板,擴展多通道物理串行接口,并在Linux操作系統中構建基于規約和通道引擎的多線程協議轉換框架,實現傳感設備的并行物理接入、多線程協議解析。經過第三方檢測和電網機房實際投運表明該裝置接入能力強,傳感協議適配性好,滿足實際電力機房數據監控需要。
關鍵詞:i.MX6;Cortex-A9;多通道;Linux;機房監控
0 引言
電力機房作為保證電網平穩運行的基礎設施,直接關系電網信息、通信以及通道安全。隨著物聯網、人工智能等技術的發展應用,面向機房基礎資源智能設備得到大規模應用,包括溫度傳感、濕度傳感、水浸傳感、煙霧傳感、電流傳感、電壓傳感以及監控裝置本體等,用戶通過中心主站業務平臺遠程監控機房設備實時數據、實時告警、歷史告警、工況以及查看運行曲線,實現無人值守目的。目前傳感器投運數量和種類眾多,早期機房部署的傳統數采裝置普遍選用MCU或者低端CPU配置,導致外設接口少,擴展性弱,且多業務數據處理實時性差,已很難滿足機房監控業務的集中管理。
本文綜合考慮成本、性能以及實際應用中的穩定性,選用ARM Cortex-A9架構的恩智浦i.MX6為核心板,擴展多路串行外設接口,滿足機房站點智能以及非智能傳感設備的并行接入,并設計開發了基于Linux操作系統的規約和通道的多線程協議適配框架,在內存承載范圍內,可同時滿足50多個協議并行解析,有效減輕站點新增傳感設備接入難度以及減少協議維護周期,使機房基礎資源數據快速準確上送至業務平臺。裝置實現電力機房環境、動力量傳感器采集、協議轉換、數據處理、告警處理、信息展示以及通信。
1 裝置整體方案
機房基礎資源監控裝置作為機房監控部署架構中的監控單元,下接傳感,上接平臺,其運行穩定性影響整個監控系統性能指標。首先需要考慮的其安全性和穩定性,選用的i.MX6[1]為工業級核心板硬件平臺,行業中應用較多,穩定性較好,擴展232/485進行全電氣隔離,并板載南瑞全自主的國網加密芯片,實現軟、硬件閉環防護。軟件除了參照國網漏洞、安全功能規范外,在服務中增加業務喂狗服務,使主板在異常狀態下,硬件能夠自復位。其次需要考慮對外接口,采用CPU+CPLD+串行集成芯片擴展多路串行接口,且232/485模式可軟調。為便于現場實施人員維護,裝置軟件采用B/S架構,操作方面,界面友好。
2 硬件設計
裝置硬件主要由核心板、主板和電源組成,其架構如圖1所示:
i.MX6核心板最小系統主要包括:四核1G主頻、1G內存電源管理[2],其內部集成一個MAC,外部通過擴展一個AR8031 phy實現一路千兆網口,再使用Intel 82574芯片擴展實現另一路千兆網口。為實現無線移動通信功能,采用標準的MINI PCIE接插件擴展4G模塊。通過CPU+CPLD+串行集成芯片擴展出了多路業務串口,實現一個站房傳感設備的全覆蓋。
3 軟件設計
3.1 軟件架構
本裝置嵌入式系統軟件包含多線程適配框架軟件(NRSys)[3 4]和規約軟件兩大部分。規約軟件分為兩類,一類規約程序作為設備驅動模塊(采集規約),通過協議語言實現針對智能設備的數據采集和命令交互功能,是裝置與智能設備的接口;另一類規約程序用于與上位機管理系統通訊(通信規約),將采集的設備數據傳輸給上位系統,并接收上位指令,實現上位系統對設備的數據采集和命令交互功能,是裝置與上位系統的接口。多線程適配框架軟件由規約和通道線程組成,實現裝置系統軟件功能實現,是規約程序運行的平臺,為規約進程提供參數供給、監控維護、內部信息交互等運行條件,使裝置成為一個具有通訊服務功能的實體。系統軟件主要包括NRSys,CSpy,CConfigManager,CWebsocket,CSQLiteManager和SCREEN_MANAGER模塊,如圖2所示。其中CSpy為裝置自管理模塊,實現裝置磁盤、內存、CPU以及軟件運行狀態實時監控,CConfigManager是配置管理模塊,實現了裝置license、固件升級、網口管理、串口管理的等靈活配置;CWebsocket是web后臺服務,實現了配置查詢、點位數據查詢、告警查詢、時間同步等功能,它為web界面提供了一套自定義的,基于Websocket通訊協議及JSON對象的簡單通信接口。Websocket子系統的存在使得前端WEB界面的開發和后臺服務進程充分解耦,使得WEB界面的開發人員無需充分了解業務邏輯,也能高效地進行軟件開發。CSQLiteManager為數據庫模塊,實現數據、告警、配置入庫以及查詢功能,SCREEN_MANAGER實現裝置與終端LCD的信息交互。
3.2 數據庫設計
數據庫服務由CSQLiteManager單例對象和SQLite3數據庫提供。在NRSys的程序框架中,數據的查詢操作頻率較低,一般在程序啟動時加載配置或用戶在web上查詢配置,但需要及時響應,而數據的插入、修改操作頻率較高,如數據點的歷史數據記錄,告警信息記錄等,對數據庫服務子系統的IO性能提出較高要求。因此CSQLiteManager在設計時分別實現了同步查詢和異步操作接口,保證用戶體驗的同時更注重IO效率。CSQLiteManager對外接口主要包含:
insert_request()函數提供異步接口,用戶將對數據庫的操作封裝為一個DBReq結構插入到數據庫異步操作隊列中,由數據庫服務線程負責實際的IO操作。
excute()函數提供同步接口,用戶將查詢操作封裝為一個DBQuery結構,函數將執行結構存放于該結構中,在IO完成時同步返回給用戶。
異步操作使用了QWaitCondition用于事件響應,數據庫服務線程在無異步插入請求時處于空閑狀態,并不消耗CPU資源,在緩存中存在異步插入請求時全速運行,保證數據及時地寫入數據庫。
數據庫服務子系統使用一個FIFO用于保存異步請求,在一般情況下,總是采用先提交,先處理的原則進行事務處理。然后,用戶可以設置提交的優先級,用于某些緊急事務的優先處理。例如:告警事件的插入操作總是高于數據的周期存儲操作。
4 測試與分析
設備通過國網電科院實驗驗證中心型試試驗,在江蘇、四川、河南、河北等省市的中心局站信息機房和500kV、220kV等不同電壓等級通信機房部署投運,目前已接入環境量(溫濕度、水浸、煙感)、動力量(蓄電池、交直流電源)以及控制量(空調)協議的加載解析、數據監控,實時數據刷新≤5s,告警準備率100%。
5 結束語
本文選用恩智浦的工業級i.MX6為核心板,擴展出了多路串口使一臺設備滿足一個站房范圍內被采設備的全接入,嵌入式軟件由規約和通道構建出適配性強的協議加載框架,并調度自管理、配置管理、WEB后臺模塊以及數據庫模塊,最終實現裝置在電力站房中的采集、協議轉換、數據處理、告警處理、信息展示以及通信功能。
參考文獻:
[1]數據手冊:i.MX 6Dual/6Quad Applications Processors for Consumer Products.2018-11-6。
[2]馮思維, 段金杰, 詹志明. 基于iMx6UL的汽車發動機艙噪聲檢測系統[J]. 軟件, 2021, 42(4):3.
[3]鄭于海, 亓凌, 于涵誠,等. 一種多協議適配的物聯網終端及其協議自適應方法, CN111586027A[P]. 2020.
[4]不公告發明人. 一種快速適配協議變更的解析方法,裝置及系統:, CN111343201A[P]. 2020.