丁宏林,周立忠,周桐,王筠韻,張晟愷,李亞東
(國網陜西省電力有限公司商洛供電公司,陜西商洛 726000)
智能設備已經廣泛應用于電力系統(tǒng)[1],設備的功能越強大,操作也就越簡單便捷?,F在幾乎所有的電力設備都具備了通信功能,有相應的通信接口[2],但是設備的用途、分類各不相同,廠家的技術水平也各有高低,導致除國家強制要求的接口外,特別是一些專用設備,其接口不統(tǒng)一,例如電能表現場校驗儀就有232 接口、網口、USB 等不同硬件接口的設備。隨著國家電網信息化要求的不斷提升,需要將這些設備也納入到信息化應用中[3],以往的做法都是由廠家提供對應的連接線纜和PC 端的應用程序,實現設備的通信,這種方式導致的后果就是設備的專有性太強,一旦更換其他廠家的設備,整個流程和應用軟件就全部需要調整,而且設備的更新?lián)Q代速度很快,導致這些設備的數字化應用一直未能有效實現。
為了解決計量設備驗收工作的自動化、信息化問題,應用無線通信技術,實現不同規(guī)約和硬件接口檢驗設備的數據訪問,設計了“關口計量設備一鍵式驗收及故障診斷裝置”項目,對電能表現場校驗儀、電壓互感器校驗儀、電流互感器校驗儀、二次回路接線、負荷檢測儀、標準電能表等多種設備完成數據采集[4],最終在手持終端(安卓平臺)進行展示。
“關口計量設備一鍵式驗收及故障診斷裝置”項目需要解決的主要問題是與現場使用的不同廠家、不同硬件接口和規(guī)約的設備進行通信并讀取數據。如果這些工作全部由軟件實現會使項目不可控,因為在不考慮硬件接口的情況下,每種設備的通信規(guī)約和數據均不相同,必須針對每種設備開發(fā)專門的接口程序,雖然采用模塊化設計可以有效地降低工作量,但是每加入一種新的設備都需要軟件人員再次進行開發(fā),而軟件項目的開發(fā)都需要一個團隊的合作,要求有明確的目標,以最高的效率來完成,這樣可以有效降低成本,不可能針對某項功能提供長期的反復開發(fā)和設計[5],否則項目的周期和成本將顯著增加,最終失控。
因此該項目設計使用硬件接口裝置將應用APP的開發(fā)和底層硬件分開,針對每類設備,確定其需要交互的數據,并考慮一定的擴展需求。先確定APP與接口裝置的連接方式,明確通信協(xié)議,則APP 的開發(fā)與硬件就可以獨立進行,將硬件設備的接入交由接口裝置來實現,這樣軟件開發(fā)人員可以集中精力在軟件的功能和設計上,直接啟動軟件的開發(fā),提升效率。
針對不同的設備,從便攜性和易用性考慮,決定將整個接口裝置再分為轉換裝置和接口模塊。這樣的好處是連接的端口單一,電路的設計簡化,代碼簡化,可靠性提升,可以使裝置的體積比較小,設想裝置和模塊最終組合的成品類似一個U 盤,需要采集數據時連接到設備上,即插即用,用完即走。且所連接的設備基本為低速設備,傳遞的數據量小,傳輸時間短,這樣裝置的工作時間也短,可以優(yōu)先考慮電池供電,進一步提升便攜性。接口模塊獨立也便于后期的維護和二次開發(fā),對于新的設備,僅需要對接口模塊進行調整,匹配對應設備的規(guī)約,即可實現接入。項目的功能結構圖如圖1 所示。
圖1 功能結構圖
接口轉換裝置部分主要實現各個設備的接入,并與APP按預定的協(xié)議實現數據的交互,各種設備的接入由對應的接口模塊來實現,與接口裝置之間也定義標準的硬件通信接口和協(xié)議,主要實現硬件之間的數據交互,并可以緩存部分數據,確保通信的可靠。
因為APP 最終的運行環(huán)境為安卓平臺的掌機,為此必須選擇易于在安卓平臺上實現的接口,所以裝置的上行接口采用藍牙和WiFi 雙通道,該項目中采用樂鑫的ESP32 模組[6]來實現,該模組支持藍牙和WiFi[7],是成熟穩(wěn)定的產品,成本低,可靠性高,而且其接口豐富,有SPI 接口、串口,還有有線網絡接口,便于實現與接口模塊的連接。
項目中選擇使用串口來實現與接口模塊的本地連接,主要考慮到使用的設備對數據通信的實時性要求不高,且串口結構簡單、成本低、可靠性好,ESP32 模組內置串口最高速率可達5 Mbps,支持硬件流控,完全滿足需要。
接口模塊的功能是實現與各個設備的硬件連接,根據設備接口的不同,匹配不同的接口模塊,可以為232 接口、485 接口、有線網口或USB 接口等,該項目中先實現各種硬件接口的連接,匹配對應的設備,后期可以安排專人進行維護,對新設備僅需完成相應通信協(xié)議的二次開發(fā),不用再次開發(fā)硬件,有效地減少工作量,降低維護成本。
轉換裝置與APP 通信協(xié)議的設計是該項目的重點,因為要接入不同的設備,設備的種類不同,讀寫的數據類型、數據項、數據長度等各不相同,不能每接入一種設備就修改一次通信協(xié)議或者上層的軟件,必須使其具有強大的兼容性和擴展性[8]。
協(xié)議設計首先是對設備的操作流程和傳遞的數據進行標準化,這是實現不同設備兼容的關鍵,結合相關設備的具體使用場景,設備操作流程如圖2所示。
圖2 設備操作流程圖
針對交互的數據,按所有設備最大信息量進行設計,此外預留部分擴展字段,可以通過軟件進行調整,增加程序的靈活性。
協(xié)議設計以上述標準化流程為基礎,首先按功能對命令進行劃分,具體分為控制、讀取、設置(寫入)三種。其中控制命令主要實現對設備的管理,包括上電、復位、啟動等操作;讀取命令即對設備數據進行訪問,可以是設備描述符、檢測數據,也可以是相關參數;設置命令主要對設備的運行參數進行設置,這幾種操作使用命令字的方式來區(qū)分。
針對數據的傳遞,規(guī)約中確定每項數據傳遞都必須同時傳遞數據的類型和長度,具體為一個字節(jié)的數據類型,一個字節(jié)的數據長度,后續(xù)為具體的數據,規(guī)約中包含數組和結構體兩種類型,數組類型為多個相同類型數據的集合,而結構體則可以是不同數據類型的集合,提升了整體的靈活性。
規(guī)約中幀格式的定義如表1 所示,其中控制字實現了功能的劃分。
表1 幀格式定義
規(guī)約中數據區(qū)定義如表2 所示,其中數據標識給出數據的定義,數據類型說明數據的格式,數據長度說明有多少個相同類型的數據,可以看到靈活性很高,只需要定義新的數據標識以及數據類型,即可引入新的數據項,便于后期進行擴展。
表2 數據區(qū)定義
裝置設計了電源管理部分,采用鋰電池作為電源,使用鋰電的充放電管理芯片TP5400[9],電源管理部分原理圖如圖3 所示。下行模塊的接口使用具備硬件流控的串口實現,同時設計了模塊插入檢測和硬件復位引腳,檢測到模塊插入后,才開始對模塊進行供電,同時可以對模塊的硬件進行復位,提升其可靠性。
裝置本身充電接口設計為TYPE-C 接口,并使用FDTI232RL 轉換芯片連接模組的本地調試接口,使用電腦方便充電的同時也可實現對模組的監(jiān)控、調試和升級,增強了設備的易用性,接口部分原理圖如圖4 所示。
ESP32模組本身支持FreeRTOS嵌入式系統(tǒng)[10],支持多任務,因此軟件的設計采用多任務的方式實現,接口轉換裝置初始化流程圖如圖5 所示。當裝置上電后,首先完成初始化操作,接著開啟兩個任務,一個為上行通信任務,一個是下行通信任務,下行通信任務首先檢查下行轉換模塊的連接情況,當檢測到轉換模塊后,讀取模塊的設備描述符,了解具體的設備類型,匹配對應的數據項和數據內容,做好數據傳遞的準備,此時等待上行通信任務的進一步操作;上行通信任務檢測到與APP 連接后,主動上報設備的類型和支持的數據項,APP 此時即可開始對設備數據的訪問和控制。
接口模塊的設計思路主要是低成本,易實現,因為與轉換裝置的接口為串口,這樣基本所有的嵌入式平臺都滿足需要,只需要針對設備的硬件接口,使用成熟的方案,實現接口和規(guī)約的轉換即可。
圖3 電源管理部分原理圖
圖4 充電及調試接口原理圖
圖5 轉換裝置初始化流程圖
實際應用中同樣使用ESP32 模組實現了232 接口、485 接口、有線網口、藍牙[11]等設備的接入。針對USB 接口的設備,使用STM32 平臺進行了連接[12];針對CAN 總線設備,應用Microchip 平臺進行連接[13],因為硬件均為成熟的電路,此處不做詳細描述。
設計中需要考慮的是與APP 連接斷開的情況,因為轉換裝置與APP 之間為無線連接,設備的故障或者意外均有可能導致連接失效的情況。采取措施如下:1)應用硬件設計的流控機制對下行數據傳輸進行管理;2)在規(guī)約的設計中增加了斷點恢復重傳的功能,同時增加轉換裝置的緩存,可以將一次的試驗數據完整地保存在內存,必要時保存到閃存中,連接恢復后重新傳輸到手機端,提升可靠性。
轉換裝置和接口模塊的設計均支持OTA 升級[14],在APP 中預留接口,這樣可以針對不同的設備,現場直接更改對應的固件,減少硬件的數量。
在實際工作中,使用裝置連接了山西互感器電測設備有限公司的HLE1-F 型電流互感器現場檢定裝置、山西互感器電測設備有限公司的HYE1-C 型電壓互感器現場檢定裝置、秦皇島海納電測儀器有限公司的HN-2K01B1 電壓互感器現場校驗裝置、浙江涵普電力科技有限公司的HPU-3030B 型電能表現場校驗儀、保定新云達電力設備有限責任公司的WDX-2NH 型智能電表校驗儀、武漢南電至誠電力設備有限公司的LYPT-C 型無線二次壓降及負荷測試儀,均實現了檢測數據的正常訪問,并使用APP 完成了對應的驗收工作。
該項目的設計思路與以往的嵌入式開發(fā)不同,以往出于成本考慮,總是盡量將嵌入式系統(tǒng)潛力發(fā)掘出來,一個平臺既實現上行通信,同時又匹配下行的各種接口[15],硬件的復雜程度高,編程的工作量較大,但隨著技術的進步,嵌入式系統(tǒng)的成本和復雜程度大大降低,如今嵌入式芯片的集成度越來越高,外圍電路有效簡化,很多芯片只需要幾個元件,并提供電源即可正常工作[16]。這也是該項目的設計來源,不采用單一的平臺來實現全部的功能,而是由不同的平臺各完成部分的功能,硬件的開發(fā)工作也因此進行了分解,可以由多人同步完成,有效提升了工作效率,所有的工作在接口上進行統(tǒng)一??此葡到y(tǒng)的結構變得復雜了,但是每個模塊的工作卻簡化了,難度降低也意味著可靠性的提升,可以由不同的人員同時完成,效率得到有效的提升,更適合大型項目的需求。