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