, , ,
(湖北大學(xué) 計(jì)算機(jī)與信息工程學(xué)院,武漢 430062)
目前,太陽(yáng)能并網(wǎng)發(fā)電的應(yīng)用對(duì)象主要分為3個(gè)方向:集中型光伏電站、商用型并網(wǎng)發(fā)電和家庭戶用型并網(wǎng)發(fā)電。光伏數(shù)據(jù)對(duì)于供應(yīng)運(yùn)營(yíng)商和用戶都十分重要,如發(fā)電量、發(fā)電效率和設(shè)備運(yùn)行情況等都是供應(yīng)商和用戶重點(diǎn)關(guān)注的信息,如何高效的收集這些數(shù)據(jù)就顯得非常重要[1]。
在光伏監(jiān)控系統(tǒng)中,PC機(jī)直接通過(guò)RS485總線或RS485總線伺服器將采集到的數(shù)據(jù)直接或通過(guò)網(wǎng)絡(luò)傳輸至數(shù)據(jù)中心,傳輸正確率無(wú)法保證,傳輸方式單一,丟包可能性大,鋪設(shè)通信線纜成本高,數(shù)據(jù)無(wú)法存儲(chǔ),無(wú)法本地顯示,出現(xiàn)故障無(wú)法報(bào)警,無(wú)法兼容多種主流受控逆變器設(shè)備等[2]。同時(shí),商用和戶用型發(fā)電設(shè)備具有布局分散、網(wǎng)絡(luò)連接受限等特點(diǎn),這就亟需依托嵌入式的平臺(tái)的具有數(shù)據(jù)顯示、存儲(chǔ)、轉(zhuǎn)發(fā)功能的軟件系統(tǒng)來(lái)實(shí)現(xiàn)基礎(chǔ)數(shù)據(jù)的安全管理和傳輸,而分布式光伏數(shù)據(jù)采集器能夠滿足商用和戶用型的需求[3]。
分布式光伏數(shù)據(jù)采集系統(tǒng)主要包括分布式光伏數(shù)據(jù)采集器和后臺(tái)信息中心兩部分,其總體架構(gòu)如圖1所示。
分布式光伏數(shù)據(jù)采集器由嵌入式處理器、RS485通信模塊、GPRS通信模塊、LCD液晶、SD卡模塊組成[4]。其中,嵌入式處理器采用基于ARM Coretx-M3內(nèi)核的芯片,運(yùn)行符合工業(yè)規(guī)范的嵌入式實(shí)時(shí)操作系統(tǒng)uCOS II,負(fù)責(zé)控制數(shù)據(jù)采集、通信和顯示等任務(wù);RS485通信模塊負(fù)責(zé)采集光伏發(fā)電設(shè)備組中逆變器等設(shè)備的運(yùn)行參數(shù);GPRS通信模塊負(fù)責(zé)定時(shí)將采集的數(shù)據(jù)通過(guò)網(wǎng)絡(luò)傳輸至后臺(tái)信息中心,供PC端應(yīng)用程序訪問(wèn),為管理者提供遠(yuǎn)程的光伏發(fā)電數(shù)據(jù)可視化;LCD在本地顯示設(shè)備運(yùn)行數(shù)據(jù),方便普通用戶查看光伏發(fā)電信息,也利于維修人員檢修設(shè)備;SD卡用于自動(dòng)備份光伏數(shù)據(jù)采集器獲取的信息,在網(wǎng)絡(luò)條件不穩(wěn)定的情況下,可延期發(fā)送數(shù)據(jù),避免數(shù)據(jù)丟失。
后臺(tái)信息中心由服務(wù)器、PC Web端和移動(dòng)APP終端三部分組成。分布式光伏數(shù)據(jù)采集器通過(guò)GPRS通過(guò)TCP/IP協(xié)議將數(shù)據(jù)傳輸?shù)椒?wù)器,再由PC Web端和移動(dòng)APP終端對(duì)光伏數(shù)據(jù)進(jìn)行多樣展示[5]。按照數(shù)據(jù)采集系統(tǒng)的總體結(jié)構(gòu)設(shè)計(jì)要求,設(shè)計(jì)的光伏數(shù)據(jù)采集器的硬件結(jié)構(gòu)如圖2所示。本文將從著重描述分布式光伏數(shù)據(jù)采集器的硬件和軟件的設(shè)計(jì)與實(shí)現(xiàn)。
圖1 分布式光伏數(shù)據(jù)采集系統(tǒng)架構(gòu)
圖2 分布式光伏數(shù)據(jù)采集器硬件框圖
硬件設(shè)計(jì)主要包括基于ARM Cortex-M3[6]內(nèi)核的控制器最小系統(tǒng)、RS485通信模塊、GPRS通信模塊、LCD顯示、SD卡外部存儲(chǔ)和電源模塊。
分布式光伏數(shù)據(jù)采集器控制器選型綜合處理器速度、存儲(chǔ)容量和外設(shè)接口等情況,采用低成本、穩(wěn)定性高的STM32F207VET6芯片。該芯片為32位處理器,主頻可達(dá)120MHz,能夠運(yùn)行uCOS II實(shí)時(shí)操作系統(tǒng);擁有192KB SRAM、512KB FLASH、32位定時(shí)器、2個(gè)DMA控制器、6個(gè)串口、1個(gè)RTC(具備日歷功能)、1個(gè)SDIO接口、1個(gè)以太網(wǎng)MAC控制器和1個(gè)FSMC接口等硬件資源,配置滿足光伏數(shù)據(jù)采集器的硬件電路設(shè)計(jì)需求[7]。
LCD顯示選用晶聯(lián)訊電子的JLX256128G-257型模塊,驅(qū)動(dòng)IC為ST75256功能較強(qiáng)、穩(wěn)定性好,采用3.3V供電,整個(gè)LCD帶背光情況下功耗不大于100 mW。LCD可顯示圖片、漢字、英文、數(shù)字和符號(hào),如最大顯示256×128點(diǎn)陣單色圖片或顯示16個(gè)×8行=64個(gè)的16×16點(diǎn)陣的漢字,單頁(yè)面可顯示信息量滿足本次需求。LCD不帶字庫(kù),降低LCD成本,將設(shè)備所需文字取模后,存放在數(shù)據(jù)采集器本地,實(shí)現(xiàn)UI的自定義顯示,提升界面的美觀性。LCD接口連接在處理器自帶的FSMC總線上,提高了LCD的刷屏速度,降低了LCD驅(qū)動(dòng)開發(fā)難度,采用8080時(shí)序并口方式進(jìn)行數(shù)據(jù)傳輸。LCD背光通過(guò)處理器的GIPO進(jìn)行控制,用戶觸發(fā)液晶顯示時(shí)點(diǎn)亮背光,超時(shí)未操作液晶時(shí)背光將熄滅。液晶顯示電路如圖3所示。
圖3 液晶顯示電路
RS485通信模塊采用MAX3485芯片進(jìn)行電平轉(zhuǎn)換,RS485接口電路如圖4所示。R33為終端匹配電阻,減弱反射信號(hào),保證通信穩(wěn)定。R32和R34為偏置電阻,以保證RS485總線空閑時(shí)維持高電平[8]。RS485具有抗干擾能力、傳輸距離遠(yuǎn)、數(shù)據(jù)傳輸速度快和支持大量節(jié)點(diǎn)等特性,在工業(yè)領(lǐng)域得到廣泛應(yīng)用。設(shè)計(jì)的兩路RS485接口均增加隔離環(huán)節(jié),即完成電平轉(zhuǎn)換又實(shí)現(xiàn)信號(hào)隔離,減少了干擾信號(hào)經(jīng)由信號(hào)線傳入傳出,提高系統(tǒng)的抗干擾能力。RS485總線在10m時(shí)數(shù)據(jù)傳輸速率最高可達(dá)10Mbps,總線最長(zhǎng)可傳輸距離為1200m,此時(shí)速度可達(dá)100kbps。一般RS485最多支持32個(gè)節(jié)點(diǎn),特定的RS485芯片節(jié)點(diǎn)最大可達(dá)400個(gè),本次設(shè)備連接8個(gè)節(jié)點(diǎn),即支持對(duì)8臺(tái)光伏逆變器進(jìn)行數(shù)據(jù)采集。
圖4 RS485接口電路
與后臺(tái)中心通信采用GPRS模塊進(jìn)行數(shù)據(jù)通信,預(yù)留了以太網(wǎng)和WIFI擴(kuò)展接口。GPRS是在現(xiàn)有GSM系統(tǒng)上發(fā)展出來(lái)的一種新的數(shù)據(jù)承載業(yè)務(wù),支持TCP/IP協(xié)議,可以與分組數(shù)據(jù)網(wǎng)(Internet等)直接互通。GPRS無(wú)線傳輸系統(tǒng)的應(yīng)用范圍非常廣泛,幾乎可以涵蓋所有的中低業(yè)務(wù)和低速率的數(shù)據(jù)傳輸,尤其適合突發(fā)的小流量數(shù)據(jù)傳輸業(yè)務(wù)。本硬件平臺(tái)的GPRS無(wú)線通信模塊為SIM900A,內(nèi)嵌了TCP/IP協(xié)議,采用工業(yè)級(jí)的GPRS模塊,適用于單片機(jī)數(shù)據(jù)采集傳輸系統(tǒng)沒有TCP/IP協(xié)議棧但采用串口通信的情況。SIM900A采用4V供電,功耗較低,待機(jī)模式電流低于18mA,支持900/1800 MHz頻段,滿足分布式光伏數(shù)據(jù)采集器所處網(wǎng)絡(luò)環(huán)境。采用SIM900A設(shè)計(jì)的最小系統(tǒng)如圖5所示,模塊射頻發(fā)射時(shí)電流峰值可達(dá)2A,設(shè)計(jì)時(shí)VBAT引腳應(yīng)并接大電容,且VBAT在PCB走線時(shí)盡量短、寬來(lái)減少走線阻抗,提高模塊的穩(wěn)定性。
圖5 GPRS模塊最小系統(tǒng)
SD卡接口采用STM32F207VET6自帶的SDIO接口[9]進(jìn)行連接,其連接電路如圖6所示。SD卡通過(guò)SDIO接口進(jìn)行數(shù)據(jù)讀寫,通過(guò)時(shí)鐘信號(hào)線CLK(SDIO_CLK引腳)控制時(shí)鐘周期,命令信號(hào)線CMD(SDIO_CMD引腳)傳輸SD卡主機(jī)發(fā)送的命令,數(shù)據(jù)線DATA(SDIO_D0~ SDIO_D3引腳)傳輸SD讀寫的數(shù)據(jù)。SD卡采用容量為8GB的micro SD,減少設(shè)備體積。
圖6 SD卡接口電路
電源模塊電路如圖7所示,輸入5V/2A直流電,通過(guò)ASM1117芯片轉(zhuǎn)換為3.3V,為整個(gè)設(shè)備(除GPRS模塊外)供電。5V通過(guò)MIC29302芯片轉(zhuǎn)換為4V,為GPRS模塊供電。整個(gè)電路具有完善的濾波電路,供電穩(wěn)定可靠。在PCB設(shè)計(jì)時(shí)應(yīng)考慮電源布局和布線,GPRS模塊的供電走線應(yīng)適當(dāng)加寬、布線短。
圖7 電源模塊電路
數(shù)據(jù)采集器選用小功率的LED指示燈來(lái)實(shí)現(xiàn)電源供應(yīng)、設(shè)備運(yùn)行狀態(tài)和網(wǎng)絡(luò)情況的指示,便于觀察、分析整個(gè)設(shè)備運(yùn)行情況。數(shù)據(jù)采集器還預(yù)留了四位撥碼開關(guān),用于后期設(shè)備功能的擴(kuò)展。4個(gè)按鍵用于切換LCD顯示界面、本地配置數(shù)據(jù)采集器運(yùn)行參數(shù),如服務(wù)器IP地址和端口號(hào)、數(shù)據(jù)采集波特率、數(shù)據(jù)發(fā)送時(shí)間間隔和屏幕休眠時(shí)間參數(shù)。
由于分布式光伏數(shù)據(jù)采集器通常用在網(wǎng)絡(luò)環(huán)境有限的環(huán)境,數(shù)據(jù)在網(wǎng)絡(luò)不穩(wěn)定的情況下不能及時(shí)傳輸,結(jié)合SD卡數(shù)據(jù)備份功能,通過(guò)GPRS網(wǎng)絡(luò)可在網(wǎng)絡(luò)良好且無(wú)工作任務(wù)的情況下,將未發(fā)送的數(shù)據(jù)繼續(xù)傳輸,數(shù)據(jù)傳輸成功率要求達(dá)到100%。整個(gè)采集器實(shí)現(xiàn)了本地?cái)?shù)據(jù)可視化、運(yùn)行狀態(tài)可視化、參數(shù)可配置和低功耗運(yùn)行等功能,通過(guò)GPRS網(wǎng)絡(luò)實(shí)現(xiàn)了數(shù)據(jù)和狀態(tài)的遠(yuǎn)程可視化,極大地方便了對(duì)分布式光伏逆變器的監(jiān)控,提升了用戶使用效果。
光伏數(shù)據(jù)采集器軟件系統(tǒng)基于C語(yǔ)言開發(fā),在集成開發(fā)環(huán)境Keil MDK下編譯、調(diào)試。設(shè)計(jì)時(shí)采用由總到分式策略進(jìn)行模塊化開發(fā),以便于調(diào)試、維護(hù)、升級(jí)。開發(fā)的軟件保存在用戶層,通過(guò)調(diào)用CMSIS層的設(shè)備外設(shè)函數(shù)和uCOS II API來(lái)管理硬件以及實(shí)現(xiàn)相應(yīng)的功能,其架構(gòu)如圖8所示。
圖8 光伏數(shù)據(jù)采集器軟件架構(gòu)
光伏數(shù)據(jù)采集器軟件系統(tǒng)主要包括5個(gè)部分,分別是在線設(shè)備查詢、數(shù)據(jù)獲取、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)傳輸和人機(jī)交互界面。該軟件系統(tǒng)通過(guò)查詢和識(shí)別在線的受控設(shè)備,并定時(shí)的從這些設(shè)備上獲取光伏電參量數(shù)據(jù)和環(huán)境數(shù)據(jù)。同時(shí),通過(guò)GPRS模塊或以太網(wǎng)與服務(wù)器建立的TCP/IP連接將數(shù)據(jù)傳輸?shù)椒?wù)器上,相關(guān)數(shù)據(jù)也被保存到SD卡中。人機(jī)交互界面則用以實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)顯示與系統(tǒng)參數(shù)的顯示和修改。光伏數(shù)據(jù)采集器軟件結(jié)構(gòu)如圖9所示。
圖9 數(shù)據(jù)采集器軟件功能劃分
1)設(shè)備查詢流:光伏數(shù)據(jù)采集器通過(guò)485總線與受控逆變器連接,其通信接口為串行通信口采用標(biāo)準(zhǔn)的RS485,信息傳輸方式為異步方式,起始位1位,數(shù)據(jù)位8位,停止位1位,無(wú)校驗(yàn)位。傳輸時(shí)先傳高字(節(jié)),后傳低字(節(jié)),數(shù)據(jù)傳輸波特率默認(rèn)使用9600bps。檢查在線設(shè)備之前先設(shè)置所查詢的初始設(shè)備地址,根據(jù)地址生成測(cè)試幀。發(fā)送測(cè)試幀,根據(jù)Modbus協(xié)議,如果該設(shè)備號(hào)地址在線則會(huì)響應(yīng)包含地址的數(shù)據(jù)幀。通過(guò)解析發(fā)送和響應(yīng)的地址相同則可判斷該設(shè)備在線,依次增加地址查詢?cè)O(shè)備即可獲取所有在線設(shè)備,并將這些地址保存在在線設(shè)備地址表中,同時(shí)記錄總的在線設(shè)備數(shù)。查詢?cè)诰€設(shè)備流程如圖10所示。
圖10 設(shè)備查詢流程圖
2)中斷信號(hào)量:數(shù)據(jù)采集器設(shè)備的數(shù)據(jù)獲取存儲(chǔ)和傳輸有明顯的周期規(guī)律,在工作時(shí)間段(7:00~18:00)數(shù)據(jù)采集器會(huì)每個(gè)15分鐘一場(chǎng)采集數(shù)據(jù),存儲(chǔ)數(shù)據(jù),發(fā)送數(shù)據(jù)。采集、存儲(chǔ)和發(fā)送數(shù)據(jù)的時(shí)間依次間隔1分鐘。該過(guò)程的實(shí)現(xiàn)是鬧鐘A每分鐘產(chǎn)生一次中斷,以15次中斷為一個(gè)周期。每個(gè)中斷周期中,當(dāng)RTC時(shí)間為工作時(shí)間段且中斷累積到13次時(shí)及向獲取數(shù)據(jù)任務(wù)發(fā)送獲取數(shù)據(jù)的信號(hào)量;當(dāng)RTC時(shí)間為工作時(shí)間段且中斷累積到14次時(shí)及向存儲(chǔ)數(shù)據(jù)任務(wù)發(fā)送存儲(chǔ)數(shù)據(jù)的信號(hào)量;當(dāng)RTC時(shí)間為工作時(shí)間段且中斷累積到13次時(shí)及向傳輸數(shù)據(jù)任務(wù)發(fā)送傳輸數(shù)據(jù)的信號(hào)量。具體流程如圖11所示。
圖11 中斷信號(hào)流程圖
3)數(shù)據(jù)獲?。和ㄐ诺奈锢韺邮菙?shù)據(jù)采集器與受控設(shè)備通過(guò)串口轉(zhuǎn)接的RS485連接,數(shù)據(jù)采集器串口與轉(zhuǎn)換芯片的收發(fā)直接連接,數(shù)據(jù)采集器另有I/O控制芯片收發(fā)方向。軟件中先初始化串口和方向控制口,再通過(guò)應(yīng)用層的Modbus協(xié)議獲取受控設(shè)備的數(shù)據(jù)。
其中物理層通信流程如下:
(1)通過(guò)將USART_CR1寄存器中的UE位置1來(lái)使能USART;
(2)在程序中配置USART_CR1中的M位來(lái)定義字長(zhǎng);
(3)在程序中設(shè)置USART_CR2中的停止位數(shù);
(4)若執(zhí)行多緩沖區(qū)通信,在USART_CR3中使能DMA,并根據(jù)多緩沖區(qū)通信方式來(lái)進(jìn)行DMA寄存器的設(shè)置;
(5)使用USART_BRR寄存器來(lái)配置合適的波特率;
(6)將USART_CR1中的TE設(shè)置為高電平,使得在第一次傳輸數(shù)據(jù)時(shí)首先發(fā)出一個(gè)空閑幀;
(7)往USART_DR寄存器傳入需要傳輸?shù)牟杉瘮?shù)據(jù);
(8)當(dāng)傳輸?shù)臄?shù)據(jù)全部寫入U(xiǎn)SART_DR寄存器后,若TC位變?yōu)楦唠娖?,則表明最后一個(gè)幀的傳送已完成。
數(shù)據(jù)采集器與逆變器通信的總線采用RS485,應(yīng)用層協(xié)議采用工業(yè)界通用的Modbus標(biāo)準(zhǔn)協(xié)議。Modbus標(biāo)準(zhǔn)包含兩個(gè)通信規(guī)程中采用的Modbus應(yīng)用層協(xié)議以及服務(wù)規(guī)范:串行鏈路上的Modbus和TCP/IP上的Modbus[10]。本文的數(shù)據(jù)采集器應(yīng)用層通信協(xié)議采用的是Modbus串行鏈路上基于485-A的通信協(xié)議。Modbus的工業(yè)通用幀結(jié)構(gòu)如圖12所示,一般通過(guò)應(yīng)用數(shù)據(jù)單元(ADU)來(lái)表示。ADU主要由簡(jiǎn)單數(shù)據(jù)單元(PDU)和其他的附加域構(gòu)成,其中PDU與基礎(chǔ)通信層無(wú)關(guān)。對(duì)于串行鏈路通信方式,RS485 ADU最大可為256字節(jié),一般服務(wù)器地址域占1字節(jié),CRC校驗(yàn)碼占2字節(jié),則PDU最大為253字節(jié)。Modbus通過(guò)一個(gè)“big-Endian”表示地址和數(shù)據(jù)項(xiàng),傳輸多個(gè)數(shù)據(jù)時(shí)將先發(fā)送最高有效位。
圖12 Modbus工業(yè)通用幀結(jié)構(gòu)
數(shù)據(jù)采集器在收到RTC鬧鐘A中斷每15分發(fā)送給該模塊的信號(hào)量后,按在線設(shè)備地址編號(hào)表內(nèi)的地址依次生成發(fā)送數(shù)據(jù)幀獲取光伏數(shù)據(jù)并更新到數(shù)據(jù)緩沖區(qū)。如果獲取數(shù)據(jù)失敗,則只更新對(duì)應(yīng)設(shè)備地址號(hào)對(duì)應(yīng)緩沖區(qū)的設(shè)備狀態(tài),數(shù)據(jù)不更新。獲取數(shù)據(jù)流程如圖13所示。
圖13 獲取數(shù)據(jù)流程圖
4)保存數(shù)據(jù):在數(shù)據(jù)獲取后,收到RTC鬧鐘A中斷每15分發(fā)送給該模塊的信號(hào)量,則根據(jù)獲取到的設(shè)備狀態(tài)將緩沖區(qū)數(shù)據(jù)存儲(chǔ)到SD卡中,同時(shí)保持存儲(chǔ)時(shí)間。保存數(shù)據(jù)流程如圖14所示。
圖14 保存數(shù)據(jù)流程圖
其中SD卡的初始化[12]過(guò)程比較復(fù)雜,具體過(guò)程分析如下:
(1)對(duì)常見SD卡的錯(cuò)誤類型進(jìn)行報(bào)錯(cuò)處理,確保SDIO接口初始化成功;
(2)初始化SDIO的外設(shè)時(shí)鐘,進(jìn)行工作模式設(shè)置;
(3)上電后發(fā)送CMD0命令,SD卡進(jìn)入空閑狀態(tài);
(4)發(fā)送CMD8命令,若SD由響應(yīng)且CRC檢驗(yàn)一致,則SD卡為支持2.0版本的SD卡,無(wú)響應(yīng)則為1.x版本的SD卡或者M(jìn)MC卡;
(5)通過(guò)命令CMD55+ACMD41,檢測(cè)SD卡上電情況,若響應(yīng)ACMD41命令后,OCR寄存器第30位CCS為1,則SD卡為2.0版本的SDHC卡,反之為SDSC卡;
(6)發(fā)送CMD2命令,判斷SD卡接入情況,以及獲取CID寄存器內(nèi)容,如SD卡生產(chǎn)商ID、名稱和生產(chǎn)信息等;
(7)發(fā)送CMD3命令,將SD卡的相對(duì)地址傳輸給主機(jī)(數(shù)據(jù)采集器),主機(jī)發(fā)送CMD9命令來(lái)獲得SD卡的具體數(shù)據(jù),如容量和扇區(qū)大小等信息;
根據(jù)上面步驟,SD卡初始化基本完成。通過(guò)發(fā)送CMD7命令,使得SD卡進(jìn)入傳輸模式,可開始對(duì)SD卡的讀/寫操作。
5)數(shù)據(jù)傳輸:在通信流程中,數(shù)據(jù)獲取并收到RTC鬧鐘A中斷每15分發(fā)送給該模塊的信號(hào)量后,則將緩沖區(qū)數(shù)據(jù)通過(guò)TCP連接發(fā)送到遠(yuǎn)處服務(wù)器上。具體流程如圖15所示。
圖15 發(fā)送數(shù)據(jù)流程圖
其中,GPRS狀態(tài)機(jī)是保證軟件在多個(gè)GPRS運(yùn)行狀態(tài)之間正常轉(zhuǎn)換,使GPRS正常完成數(shù)據(jù)發(fā)送或正常關(guān)閉,以保證下一次數(shù)據(jù)正常發(fā)送。其狀態(tài)轉(zhuǎn)換如圖16所示。
圖16 GPRS狀態(tài)轉(zhuǎn)換圖
整個(gè)流程的運(yùn)行步驟如下:
(1)查詢是否需要SIM 密碼檢測(cè);
(2)查詢GPRS模塊信號(hào)質(zhì)量;
(3)網(wǎng)絡(luò)注冊(cè);
(4)附著GPRS業(yè)務(wù);
(5)設(shè)置接入點(diǎn)CMNET;
(6)啟動(dòng)網(wǎng)絡(luò)連接功能;
(7)查詢本機(jī)IP地址;
(8)建立連接,配置遠(yuǎn)程服務(wù)器IP地址和端口號(hào)和TCP連接方式;
(9)發(fā)送數(shù)據(jù);
(10)發(fā)送結(jié)束幀標(biāo)識(shí)符;
(11)關(guān)閉TCP連接;
(12)關(guān)閉移動(dòng)場(chǎng)景;
(13)關(guān)機(jī)斷電。
6)人機(jī)交互界面:人機(jī)界面用于數(shù)據(jù)顯示,系統(tǒng)狀態(tài)顯示,系統(tǒng)參數(shù)顯示和系統(tǒng)設(shè)置,本人機(jī)交互的主要設(shè)計(jì)思想是查找表狀態(tài)機(jī)設(shè)計(jì),窗體結(jié)構(gòu)體設(shè)計(jì),控件設(shè)計(jì)和回調(diào)函數(shù)[13]。
其中,查找表狀態(tài)機(jī)是用以通過(guò)查找表搜索界面跳轉(zhuǎn)的邏輯關(guān)系;窗體結(jié)構(gòu)體這包含了所有界面的窗體信息,如窗體ID,窗體控件指針,回調(diào)函數(shù)的指針;控件設(shè)計(jì)則是根據(jù)控件的不同功能設(shè)計(jì)窗體中的背景控件,列表控件和輸入焦點(diǎn);回調(diào)函數(shù)則是根據(jù)不同的按鍵和整體的輸入所執(zhí)行的函數(shù),有些與窗體相關(guān)的函數(shù)具有通用性可以重復(fù)調(diào)用,如窗體初始化函數(shù)、窗體切換函數(shù)、焦點(diǎn)切換函數(shù)和列表內(nèi)容切換函數(shù)等。
對(duì)應(yīng)不同的窗體,其大部分的結(jié)構(gòu)和回調(diào)函數(shù)都是相同的,他們的區(qū)別這主要在于背景信息,焦點(diǎn)信息,列表控件和初始化過(guò)程中的數(shù)據(jù)綁定函數(shù)及按鍵更新回調(diào)中的數(shù)據(jù)更新函數(shù)的不同。其中窗體結(jié)構(gòu)體設(shè)計(jì)如圖17所示。
圖17 窗體結(jié)構(gòu)體設(shè)計(jì)
窗體UI設(shè)計(jì)主要功能函數(shù)有窗體初始化函數(shù)、窗體退出函數(shù)、窗體異常函數(shù)、按鍵響應(yīng)函數(shù)和窗體定時(shí)刷新函數(shù)。窗體初始化函數(shù)負(fù)責(zé)初始化每個(gè)界面顯示的內(nèi)容,窗體退出函數(shù)負(fù)責(zé)切換到當(dāng)前窗體退出后的窗體,窗體異常函數(shù)負(fù)責(zé)跳轉(zhuǎn)到異常發(fā)生時(shí)所設(shè)置的跳轉(zhuǎn)窗體,按鍵響應(yīng)函數(shù)負(fù)責(zé)將窗體切換到按鍵切換的窗體,窗體定時(shí)刷新函數(shù)用于定時(shí)更新界面上動(dòng)態(tài)顯示的內(nèi)容,如設(shè)備運(yùn)行時(shí)間和日累計(jì)光伏發(fā)電量等。
窗體通過(guò)唯一的ID進(jìn)行索引來(lái)切換。窗體上顯示的內(nèi)容通過(guò)x、y坐標(biāo)來(lái)放置,利用按鍵來(lái)選擇切換項(xiàng),反顯用來(lái)指示選中項(xiàng)。
窗體的運(yùn)行是依賴于信號(hào)量的觸發(fā),信號(hào)量主要是通過(guò)本地4個(gè)按鍵輸入來(lái)產(chǎn)生,其運(yùn)行流程如圖18所示。
圖18 人機(jī)界面流程圖
根據(jù)光伏數(shù)據(jù)采集器功能需要,其界面結(jié)構(gòu)圖如圖19所示。用戶可通過(guò)本地按鍵查詢所關(guān)心的日累計(jì)發(fā)電量,工程師可在本地查看數(shù)據(jù)采集器故障代碼,也可通過(guò)本地按鍵配置設(shè)備運(yùn)行參數(shù)。
圖19 人機(jī)交互界面結(jié)構(gòu)圖
通過(guò)硬件設(shè)計(jì)的電路圖繪制PCB文件進(jìn)行打樣,采集元器件進(jìn)行實(shí)物制作。在完成硬件實(shí)物基本版本制作后,根據(jù)軟件設(shè)計(jì)的功能進(jìn)行硬件模塊測(cè)試。經(jīng)過(guò)多次測(cè)試硬件的模塊功能,確認(rèn)硬件設(shè)計(jì)無(wú)誤后,開始軟件和硬件的整體聯(lián)合測(cè)試。
光伏數(shù)據(jù)采集器的LCD顯示了連接逆變器的數(shù)量和輪詢方式查詢逆變器運(yùn)行數(shù)據(jù)。本地可以通過(guò)4個(gè)按鍵進(jìn)行參數(shù)設(shè)置和界面切換。
光伏數(shù)據(jù)采集器的維護(hù)只需定期檢查網(wǎng)絡(luò)指示燈是否正常,發(fā)送數(shù)據(jù)時(shí)間是否有誤。如果網(wǎng)絡(luò)異常則重新檢查連接網(wǎng)絡(luò),若無(wú)網(wǎng)絡(luò)接入條件且需要獲取數(shù)據(jù),則將設(shè)備中SD卡取出,通過(guò)SD卡中的ID.txt獲取該設(shè)備保存的備份數(shù)據(jù)。
數(shù)據(jù)傳輸成功率通過(guò)數(shù)據(jù)庫(kù)中日傳輸數(shù)據(jù)量、該數(shù)據(jù)生成時(shí)間戳和傳輸時(shí)間戳來(lái)判斷,設(shè)置傳輸時(shí)間(7:00~18:00)期間,每隔一小時(shí)整點(diǎn)傳輸一次數(shù)據(jù),7:00開始傳輸數(shù)據(jù),日傳輸數(shù)據(jù)條目應(yīng)為12條,且數(shù)據(jù)生成時(shí)間戳與傳輸時(shí)間范圍內(nèi)的整點(diǎn)時(shí)間大致接近。若數(shù)據(jù)傳輸時(shí)間戳不在7:00~18:00期間,則該條數(shù)據(jù)網(wǎng)絡(luò)不穩(wěn)定情況下,從SD卡備份數(shù)據(jù)導(dǎo)出對(duì)應(yīng)時(shí)間段的數(shù)據(jù)。
在連續(xù)一周的GPRS網(wǎng)絡(luò)發(fā)送數(shù)據(jù)測(cè)試過(guò)程中,數(shù)據(jù)發(fā)送成功率達(dá)到了99%以上,表明光伏數(shù)據(jù)采集器的數(shù)據(jù)傳輸比較穩(wěn)定。結(jié)合本地SD卡數(shù)據(jù)備份,在沒有發(fā)電數(shù)據(jù)傳輸任務(wù)期間(18:00至次日7:00),對(duì)傳輸失敗的數(shù)據(jù)進(jìn)行二次發(fā)送,數(shù)據(jù)發(fā)送成功率可達(dá)100%。
本文設(shè)計(jì)與實(shí)現(xiàn)了分布式光伏數(shù)據(jù)采集器,解決了戶用型光伏領(lǐng)域數(shù)據(jù)監(jiān)控的難題。通過(guò)分布式光伏數(shù)據(jù)采集器,可實(shí)現(xiàn)對(duì)戶用型光伏發(fā)電數(shù)據(jù)的遠(yuǎn)程監(jiān)控,在網(wǎng)絡(luò)受限的情況下仍可通過(guò)SD卡進(jìn)行數(shù)據(jù)備份,避免運(yùn)行數(shù)據(jù)丟失。
通過(guò)分布式光伏數(shù)據(jù)采集器傳輸?shù)臄?shù)據(jù),可以監(jiān)測(cè)光伏電站生產(chǎn)運(yùn)行情況,統(tǒng)計(jì)分析電站歷史運(yùn)行數(shù)據(jù),有利于實(shí)現(xiàn)電站日常工作和流程的規(guī)范化、標(biāo)準(zhǔn)化、數(shù)字化管理。分布式光伏數(shù)據(jù)采集器為光伏電站的正常運(yùn)行和生產(chǎn)管理提供技術(shù)保障,在光伏發(fā)電領(lǐng)域?qū)⒂兄芎玫膽?yīng)用前景。