張大海,齊亮,丁圓強,姜濤,鄭凱,姚抒均
(齊魯工業(yè)大學(山東省科學院),山東省科學院海洋儀器儀表研究所,山東 青島 266001)
目前,我國在位運行的大型海洋浮標已有將近200套[1-2],并且其數(shù)量仍然在不斷增長。長期以來,大型海洋浮標電源系統(tǒng)都是直接采用太陽能電池板、大功率二極管和蓄電池組相結合的方式,其中大功率二極管起到防止電源反充的作用,這種方式優(yōu)點是操作簡單、成本低,但是也有很多弊端,如蓄電池組易過充過放,嚴重影響蓄電池壽命;浮標在海上長時間無人值守,無法實時了解電源系統(tǒng)運行狀況等等。自2013年起,大型海洋浮標陸續(xù)更新安裝太陽能保護器,從而使浮標電源的充放電得到有效控制。但是對浮標電源系統(tǒng)的實時監(jiān)控管理,仍然缺乏一種行之有效的方法。
因此,本文提出了一種基于LabVIEW與SQL server的浮標遠程電源管理系統(tǒng),設計了浮標上使用的硬件電路電源控制系統(tǒng),以及基于LabVIEW與SQL server的岸基數(shù)據(jù)接收處理中心,通過網(wǎng)絡與北斗通訊,能定時/實時獲取浮標電源數(shù)據(jù),并遠程控制浮標電源通斷。其監(jiān)控的電源數(shù)據(jù),涵蓋太陽能電池組,蓄電池組,負載設備的電壓、電流、功率,蓄電池組的年、月、日充電量,負載設備的年、月、日用電量,浮標艙內溫度等以及浮標電源系統(tǒng)的運行狀態(tài)信息,既可以讓用戶實時直觀地看到浮標電源的狀態(tài)和總體變化趨勢,也可以為浮標以后的維修升級提供重要的電源方面參考依據(jù)。
本文設計的浮標遠程電源管理系統(tǒng)結構示意圖見圖1,中控板為浮標電源控制系統(tǒng)的控制中心,以RS485方式與4個太陽能保護器連接,以RS232方式與DTU網(wǎng)絡通訊機[3]或者北斗通訊機連接,采用定時方式向4個太陽能保護器索取電源系統(tǒng)數(shù)據(jù),然后通過網(wǎng)絡通訊[4]或者北斗衛(wèi)星通訊[5],將電源系統(tǒng)數(shù)據(jù)傳輸至岸基數(shù)據(jù)接收處理中心的終端軟件,并保存到SQL server數(shù)據(jù)庫[6]。岸基數(shù)據(jù)接收處理中心的終端軟件,可以遠程向中控板發(fā)送指令,采集實時數(shù)據(jù)、控制浮標電源輸出的通斷。本電源管理系統(tǒng)獨立于原有的浮標數(shù)據(jù)采集系統(tǒng)[7]之外,不受數(shù)據(jù)采集系統(tǒng)故障的影響。系統(tǒng)還具有遠程強制斷電重啟功能,一旦浮標數(shù)據(jù)采集器程序死機,可對其遠程強制斷電重啟,以恢復其正常運行。
圖1 系統(tǒng)結構示意圖Fig. 1 Schematic diagram of system structure
電源控制硬件電路部分安裝于浮標上,包括中控板、網(wǎng)絡通訊機(DTU)或者北斗通訊機、太陽能保護器。其中中控板采用C8051F021單片機做為MCU芯片,其硬件電路主要包括MCU模塊、電源模塊、SD2200時鐘模塊、RS485通信模塊、RS232通信模塊、SD卡存儲模塊。中控板硬件電路組成結構見圖2。MCU通過SMBUS總線向SD2200時鐘芯片獲取當前時間,在到達預定時間之后,控制繼電器給DTU或者北斗供電,并通過RS485接口向太陽能保護器發(fā)送指令,啟動一次數(shù)據(jù)采集,然后將采集到的數(shù)據(jù)按照通信協(xié)議編碼保存到SD卡中,并發(fā)送給岸基數(shù)據(jù)接收處理中心的終端軟件;在接收到岸基數(shù)據(jù)接收處理中心發(fā)送過來的遠程指令后,MCU會對指令進行識別,做出相應的動作。
圖2 浮標硬件電路組成結構圖Fig. 2 Structure diagram of buoy hardware circuit
岸基數(shù)據(jù)接收處理中心終端軟件使用NI公司的LabVIEW2014開發(fā)環(huán)境設計,LabVIEW是一種圖形化的編程語言,又稱為G語言,包含GPIB、VXI、PXI、RS-232、RS-485和網(wǎng)絡通信等諸多功能,其強大的數(shù)據(jù)采集和處理顯示功能,使其在工業(yè)測控領域得到廣泛的應用[8]。
本文所設計的終端軟件由網(wǎng)絡通信模塊、串口(北斗)通信模塊、SQL數(shù)據(jù)庫交互模塊、用戶界面控件4個主要部分組成,具備數(shù)據(jù)接收處理并顯示、數(shù)據(jù)保存SQL server數(shù)據(jù)庫、遠程獲取浮標實時電源數(shù)據(jù)、遠程控制浮標電源輸出通斷、浮標電源異常報警、查詢數(shù)據(jù)庫歷史數(shù)據(jù)等功能。采用多線程并行運行的設計思想,提高了程序的運行效率,同時也避免了程序在處理數(shù)據(jù)時,大量占用CPU,導致用戶界面反應遲鈍、卡死;軟件的很多功能采用模塊化編程[9],各功能模塊相對獨立,功能單一,方便程序維護升級,也有利于代碼的重用;網(wǎng)絡通信模塊和串口(北斗)通信模塊均采用狀態(tài)機方式實現(xiàn),使模塊中多個事件之間的邏輯關系更加簡潔明了[10],提高了程序的可讀性。本軟件對SQL server數(shù)據(jù)庫的操作訪問是利用LABSQL工具包實現(xiàn)的,LABSQL通過Microsoft ADO以及SQL語言完成對數(shù)據(jù)庫的訪問,將復雜的底層ADO和SQL語句封裝成功能函數(shù)[11],從而簡化了LabVIEW用戶對SQL server數(shù)據(jù)庫的操作,可以顯著提高編程效率。
(1)首次啟動終端軟件時,需設置北斗串口號、網(wǎng)絡端口號、通訊方式等通訊參數(shù)以及數(shù)據(jù)庫名、用戶名、密碼等數(shù)據(jù)庫參數(shù),配置完畢后保存配置,重啟軟件即可完成初始化。
(2)軟件啟動成功后會根據(jù)配置的通訊方式,監(jiān)聽北斗串口或者網(wǎng)絡端口,等待浮標上線,傳回數(shù)據(jù)。
(3)當有新報文到達時,會對報文進行校驗,只有長度和格式符合通信協(xié)議的報文才會進行處理。報文按照通信協(xié)議解碼之后,保存至SQL server數(shù)據(jù)庫,原始報文保存成txt文本,然后將解碼出來的數(shù)據(jù)在全局監(jiān)控界面以表格形式顯示,在實時監(jiān)控界面以文本和實時曲線形式顯示。數(shù)據(jù)接收處理流程見圖3,實時監(jiān)控界面見圖4。
圖3 數(shù)據(jù)處理接收流程圖Fig. 3 Flow chart of data processing and receiving
圖4 實時監(jiān)控界面Fig. 4 Real-time monitoring interface
(4)實時獲取浮標電源數(shù)據(jù)功能,在浮標上線期間,可以在軟件左側的在線浮標欄,選中欲控制浮標,在實時數(shù)據(jù)界面,點擊“實時數(shù)據(jù)”按鈕,軟件通過網(wǎng)絡或者北斗通訊,向浮標上的中控板發(fā)送采集指令,中控板接收到指令后,將會啟動一次數(shù)據(jù)采集,并將采集到的數(shù)據(jù)通過網(wǎng)絡或者北斗通訊,發(fā)送給終端軟件,從而實現(xiàn)遠程獲取該浮標電源當前數(shù)據(jù)。
(5)對浮標數(shù)據(jù)采集系統(tǒng)的強制斷電重啟功能,在浮標上線,與終端軟件連接通信期間,點擊“打開輸出”/“關閉輸出”按鈕,終端軟件通過網(wǎng)絡或者北斗通訊,向浮標上的中控板發(fā)送打開/關閉電源輸出的指令,中控板接收到指令后,控制太陽能保護器打開/關閉浮標蓄電池組輸出。遠程將蓄電池組輸出關閉,停止向浮標數(shù)據(jù)采集系統(tǒng)供電,然后再將蓄電池組輸出打開,重新向浮標數(shù)據(jù)采集系統(tǒng)供電,即完成一次對浮標數(shù)據(jù)采集系統(tǒng)的強制斷電重啟。遠程操作類按鈕默認為禁用狀態(tài),需點擊激活按鈕,并輸入密碼后,方可使用,防止誤操作。
以打開浮標的蓄電池組的輸出為例,首先等待欲控制的浮標上線,再在線浮標欄選中此浮標,點擊“打開輸出”按鈕,此時終端軟件會通過網(wǎng)絡或者北斗通訊,向浮標上的中控板發(fā)送預處理指令,中控板收到此指令后會將程序中打開標志變量置1,同時終端軟件會彈出確認窗口,點擊“確定”按鈕后,終端軟件會向中控板發(fā)送確認指令,中控板收到確認指令后,即向太陽能保護器發(fā)送打開輸出命令,實現(xiàn)打開電源輸出操作。一個打開電源輸出操作需兩次指令完全正確才會執(zhí)行。
(6)如需查詢某浮標的電源歷史數(shù)據(jù),可在數(shù)據(jù)查詢界面,選擇該浮標號、控制器ID、欲查詢時間,點擊“綜合數(shù)據(jù)查詢”或者“單一數(shù)據(jù)曲線”按鈕,從SQL server數(shù)據(jù)庫中讀取相應的數(shù)據(jù),以表格或者曲線圖的形式予以顯示。查詢單一數(shù)據(jù)曲線程序框圖見圖5,某時間段負載電流曲線圖見圖6。
圖5 查詢單一數(shù)據(jù)曲線程序框圖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號開始,本系統(tǒng)安裝到位于青島沙子口碼頭的10 m大型海洋浮標上,進行浮標現(xiàn)場拷機測試,經(jīng)過一周的連續(xù)運行,數(shù)據(jù)接收率100%。
圖7 2018.4.17 13:00—2018.4.20 22:00浮標發(fā)電功率變化曲線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時間段內浮標發(fā)電功率、太陽能陣列電壓和浮標艙內溫度的變化趨勢基本一致??梢苑治龀鲭S著光照強度的增大,浮標溫度上升,太陽能陣列的發(fā)電功率也隨之增大,直至蓄電池滿電后,充電電流變小,發(fā)電功率降低,穩(wěn)定在補償性的浮充充電狀態(tài)。
由圖10的浮標電源數(shù)據(jù)可以看到,隨著日照強度的增大,浮標發(fā)電功率也隨之增大,浮標進入提升充電狀態(tài),以恢復晚上損失的電量,直至中午10:54,4組蓄電池均滿電,進入補償性的浮充充電狀態(tài),也驗證了對曲線圖7~9的分析。
圖10 2018.4.20 05:00—13:00浮標電源數(shù)據(jù)Fig10 Buoy power data from 05:00 to 13:00 on April 20, 2018
通過以上實例分析,證明本系統(tǒng)可以為用戶提供較為詳細的電源數(shù)據(jù),方便用戶了解和總結浮標電源的運行規(guī)律和狀態(tài)。
本遠程電源管理系統(tǒng)能實時、準確地獲取浮標的電源數(shù)據(jù),并直觀地予以顯示,可以使浮標電源的工作狀態(tài)有一個量化呈現(xiàn),方便用戶及時掌握和分析浮標電源的運行情況、整體變化趨勢,以及電源系統(tǒng)異常和隱患,并且,在發(fā)現(xiàn)浮標數(shù)據(jù)采集系統(tǒng)或者某傳感器運行異常后,可遠程對其強制斷電重啟,可省去租船出海維修的費用,有效減少浮標運行成本。