張大海,齊亮,丁圓強,姜濤,鄭凱,姚抒均
(齊魯工業大學(山東省科學院),山東省科學院海洋儀器儀表研究所,山東 青島 266001)
目前,我國在位運行的大型海洋浮標已有將近200套[1-2],并且其數量仍然在不斷增長。長期以來,大型海洋浮標電源系統都是直接采用太陽能電池板、大功率二極管和蓄電池組相結合的方式,其中大功率二極管起到防止電源反充的作用,這種方式優點是操作簡單、成本低,但是也有很多弊端,如蓄電池組易過充過放,嚴重影響蓄電池壽命;浮標在海上長時間無人值守,無法實時了解電源系統運行狀況等等。自2013年起,大型海洋浮標陸續更新安裝太陽能保護器,從而使浮標電源的充放電得到有效控制。但是對浮標電源系統的實時監控管理,仍然缺乏一種行之有效的方法。
因此,本文提出了一種基于LabVIEW與SQL server的浮標遠程電源管理系統,設計了浮標上使用的硬件電路電源控制系統,以及基于LabVIEW與SQL server的岸基數據接收處理中心,通過網絡與北斗通訊,能定時/實時獲取浮標電源數據,并遠程控制浮標電源通斷。其監控的電源數據,涵蓋太陽能電池組,蓄電池組,負載設備的電壓、電流、功率,蓄電池組的年、月、日充電量,負載設備的年、月、日用電量,浮標艙內溫度等以及浮標電源系統的運行狀態信息,既可以讓用戶實時直觀地看到浮標電源的狀態和總體變化趨勢,也可以為浮標以后的維修升級提供重要的電源方面參考依據。
本文設計的浮標遠程電源管理系統結構示意圖見圖1,中控板為浮標電源控制系統的控制中心,以RS485方式與4個太陽能保護器連接,以RS232方式與DTU網絡通訊機[3]或者北斗通訊機連接,采用定時方式向4個太陽能保護器索取電源系統數據,然后通過網絡通訊[4]或者北斗衛星通訊[5],將電源系統數據傳輸至岸基數據接收處理中心的終端軟件,并保存到SQL server數據庫[6]。岸基數據接收處理中心的終端軟件,可以遠程向中控板發送指令,采集實時數據、控制浮標電源輸出的通斷。本電源管理系統獨立于原有的浮標數據采集系統[7]之外,不受數據采集系統故障的影響。系統還具有遠程強制斷電重啟功能,一旦浮標數據采集器程序死機,可對其遠程強制斷電重啟,以恢復其正常運行。

圖1 系統結構示意圖Fig. 1 Schematic diagram of system structure
電源控制硬件電路部分安裝于浮標上,包括中控板、網絡通訊機(DTU)或者北斗通訊機、太陽能保護器。其中中控板采用C8051F021單片機做為MCU芯片,其硬件電路主要包括MCU模塊、電源模塊、SD2200時鐘模塊、RS485通信模塊、RS232通信模塊、SD卡存儲模塊。中控板硬件電路組成結構見圖2。MCU通過SMBUS總線向SD2200時鐘芯片獲取當前時間,在到達預定時間之后,控制繼電器給DTU或者北斗供電,并通過RS485接口向太陽能保護器發送指令,啟動一次數據采集,然后將采集到的數據按照通信協議編碼保存到SD卡中,并發送給岸基數據接收處理中心的終端軟件;在接收到岸基數據接收處理中心發送過來的遠程指令后,MCU會對指令進行識別,做出相應的動作。

圖2 浮標硬件電路組成結構圖Fig. 2 Structure diagram of buoy hardware circuit
岸基數據接收處理中心終端軟件使用NI公司的LabVIEW2014開發環境設計,LabVIEW是一種圖形化的編程語言,又稱為G語言,包含GPIB、VXI、PXI、RS-232、RS-485和網絡通信等諸多功能,其強大的數據采集和處理顯示功能,使其在工業測控領域得到廣泛的應用[8]。
本文所設計的終端軟件由網絡通信模塊、串口(北斗)通信模塊、SQL數據庫交互模塊、用戶界面控件4個主要部分組成,具備數據接收處理并顯示、數據保存SQL server數據庫、遠程獲取浮標實時電源數據、遠程控制浮標電源輸出通斷、浮標電源異常報警、查詢數據庫歷史數據等功能。采用多線程并行運行的設計思想,提高了程序的運行效率,同時也避免了程序在處理數據時,大量占用CPU,導致用戶界面反應遲鈍、卡死;軟件的很多功能采用模塊化編程[9],各功能模塊相對獨立,功能單一,方便程序維護升級,也有利于代碼的重用;網絡通信模塊和串口(北斗)通信模塊均采用狀態機方式實現,使模塊中多個事件之間的邏輯關系更加簡潔明了[10],提高了程序的可讀性。本軟件對SQL server數據庫的操作訪問是利用LABSQL工具包實現的,LABSQL通過Microsoft ADO以及SQL語言完成對數據庫的訪問,將復雜的底層ADO和SQL語句封裝成功能函數[11],從而簡化了LabVIEW用戶對SQL server數據庫的操作,可以顯著提高編程效率。
(1)首次啟動終端軟件時,需設置北斗串口號、網絡端口號、通訊方式等通訊參數以及數據庫名、用戶名、密碼等數據庫參數,配置完畢后保存配置,重啟軟件即可完成初始化。
(2)軟件啟動成功后會根據配置的通訊方式,監聽北斗串口或者網絡端口,等待浮標上線,傳回數據。
(3)當有新報文到達時,會對報文進行校驗,只有長度和格式符合通信協議的報文才會進行處理。報文按照通信協議解碼之后,保存至SQL server數據庫,原始報文保存成txt文本,然后將解碼出來的數據在全局監控界面以表格形式顯示,在實時監控界面以文本和實時曲線形式顯示。數據接收處理流程見圖3,實時監控界面見圖4。

圖3 數據處理接收流程圖Fig. 3 Flow chart of data processing and receiving

圖4 實時監控界面Fig. 4 Real-time monitoring interface
(4)實時獲取浮標電源數據功能,在浮標上線期間,可以在軟件左側的在線浮標欄,選中欲控制浮標,在實時數據界面,點擊“實時數據”按鈕,軟件通過網絡或者北斗通訊,向浮標上的中控板發送采集指令,中控板接收到指令后,將會啟動一次數據采集,并將采集到的數據通過網絡或者北斗通訊,發送給終端軟件,從而實現遠程獲取該浮標電源當前數據。
(5)對浮標數據采集系統的強制斷電重啟功能,在浮標上線,與終端軟件連接通信期間,點擊“打開輸出”/“關閉輸出”按鈕,終端軟件通過網絡或者北斗通訊,向浮標上的中控板發送打開/關閉電源輸出的指令,中控板接收到指令后,控制太陽能保護器打開/關閉浮標蓄電池組輸出。遠程將蓄電池組輸出關閉,停止向浮標數據采集系統供電,然后再將蓄電池組輸出打開,重新向浮標數據采集系統供電,即完成一次對浮標數據采集系統的強制斷電重啟。遠程操作類按鈕默認為禁用狀態,需點擊激活按鈕,并輸入密碼后,方可使用,防止誤操作。
以打開浮標的蓄電池組的輸出為例,首先等待欲控制的浮標上線,再在線浮標欄選中此浮標,點擊“打開輸出”按鈕,此時終端軟件會通過網絡或者北斗通訊,向浮標上的中控板發送預處理指令,中控板收到此指令后會將程序中打開標志變量置1,同時終端軟件會彈出確認窗口,點擊“確定”按鈕后,終端軟件會向中控板發送確認指令,中控板收到確認指令后,即向太陽能保護器發送打開輸出命令,實現打開電源輸出操作。一個打開電源輸出操作需兩次指令完全正確才會執行。
(6)如需查詢某浮標的電源歷史數據,可在數據查詢界面,選擇該浮標號、控制器ID、欲查詢時間,點擊“綜合數據查詢”或者“單一數據曲線”按鈕,從SQL server數據庫中讀取相應的數據,以表格或者曲線圖的形式予以顯示。查詢單一數據曲線程序框圖見圖5,某時間段負載電流曲線圖見圖6。

圖5 查詢單一數據曲線程序框圖Fig 5 Program block diagram for querying a single data curve

圖6 查詢某時間段負載電流曲線Fig 6 Load current curve for a certain time period
2018年4月16號開始,本系統安裝到位于青島沙子口碼頭的10 m大型海洋浮標上,進行浮標現場拷機測試,經過一周的連續運行,數據接收率100%。

圖7 2018.4.17 13:00—2018.4.20 22:00浮標發電功率變化曲線Fig 7 Variation curve of buoy power generation from April 17, 2018 13:00 to April 20, 2018 22:00

圖8 2018.4.17 13:00—2018.4.20 22:00浮標太陽能陣列電壓變化曲線Fig 8 Voltage variation curve of buoy solar array from April 17, 2018 13:00 to April 20, 2018 22:00

圖9 2018.4.17 13:00—2018.4.20 22:00浮標艙內溫度變化曲線Fig 9 Temperature curve in the buoy cabin from April 17, 2018 13:00 to April 20, 2018 22:00
曲線圖7 ~ 9中,2018.4.17 13:00—2018.4.20 22:00時間段內浮標發電功率、太陽能陣列電壓和浮標艙內溫度的變化趨勢基本一致。可以分析出隨著光照強度的增大,浮標溫度上升,太陽能陣列的發電功率也隨之增大,直至蓄電池滿電后,充電電流變小,發電功率降低,穩定在補償性的浮充充電狀態。
由圖10的浮標電源數據可以看到,隨著日照強度的增大,浮標發電功率也隨之增大,浮標進入提升充電狀態,以恢復晚上損失的電量,直至中午10:54,4組蓄電池均滿電,進入補償性的浮充充電狀態,也驗證了對曲線圖7~9的分析。

圖10 2018.4.20 05:00—13:00浮標電源數據Fig10 Buoy power data from 05:00 to 13:00 on April 20, 2018
通過以上實例分析,證明本系統可以為用戶提供較為詳細的電源數據,方便用戶了解和總結浮標電源的運行規律和狀態。
本遠程電源管理系統能實時、準確地獲取浮標的電源數據,并直觀地予以顯示,可以使浮標電源的工作狀態有一個量化呈現,方便用戶及時掌握和分析浮標電源的運行情況、整體變化趨勢,以及電源系統異常和隱患,并且,在發現浮標數據采集系統或者某傳感器運行異常后,可遠程對其強制斷電重啟,可省去租船出海維修的費用,有效減少浮標運行成本。