自動(dòng)氣象觀測站軟件設(shè)計(jì)研究

時(shí)間:2022-06-17 03:10:17

導(dǎo)語:自動(dòng)氣象觀測站軟件設(shè)計(jì)研究一文來源于網(wǎng)友上傳,不代表本站觀點(diǎn),若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。

自動(dòng)氣象觀測站軟件設(shè)計(jì)研究

目前潛油電泵機(jī)組已經(jīng)系列化,但每口油井的參數(shù)不同[1],潛油電泵在推薦范圍以外工作可能會(huì)使電機(jī)過載或欠載,嚴(yán)重時(shí)可能損壞系統(tǒng)。通過開發(fā)軟件進(jìn)行潛油電泵選擇優(yōu)化,充分考慮井況和影響油泵選擇的主要因素,高效率準(zhǔn)確地計(jì)算出可靠的潛油電泵機(jī)組型式[2],采用簡單易學(xué)的VisualBasic語言,開發(fā)出潛油電泵選井設(shè)計(jì)軟件[3,4],優(yōu)化潛油電泵機(jī)組參數(shù),滿足現(xiàn)場需求。

1界面設(shè)計(jì)

1.1潛油電泵選井選泵軟件界面設(shè)計(jì)。軟件包括基礎(chǔ)數(shù)據(jù)、氣體計(jì)算、產(chǎn)能預(yù)測、機(jī)組選型設(shè)計(jì)等多個(gè)部分(圖1)。本文介紹產(chǎn)能預(yù)測部分設(shè)計(jì)功能,基礎(chǔ)參數(shù)設(shè)置見表1。1.2產(chǎn)能預(yù)測界面設(shè)計(jì)。在產(chǎn)能預(yù)測功能區(qū),設(shè)置1個(gè)Frame控件、7個(gè)Label控件、2個(gè)ComboBox控件、5個(gè)TextBox控件。其中,分離器配用可選,油井滲流類型包括純液硫、油氣兩相滲流、油氣水滲流三種類型可選,設(shè)計(jì)泵吸入口氣液比由“氣體計(jì)算模塊”得到,預(yù)測結(jié)果包括泵吸入口壓力、油層中部流壓、預(yù)測油井產(chǎn)能三項(xiàng)2)。各控件的屬性及參數(shù)值設(shè)置如表2所示。摘要:當(dāng)前在區(qū)域小氣候觀測項(xiàng)目中,隨著社會(huì)發(fā)展的需要出現(xiàn)了不同主題的小氣候站;典型的代表有農(nóng)業(yè)氣象,交通氣象,空氣質(zhì)量,湖泊生態(tài)監(jiān)測等;這些小氣候站的構(gòu)成一般包括支架地基、供電系統(tǒng)、傳感器組合、采集系統(tǒng)、傳輸模塊及應(yīng)用軟件等;隨著科技的發(fā)展,這些小氣候站硬件方面不斷采用新技術(shù),結(jié)構(gòu)和傳感器也朝著一體化趨勢演進(jìn);但是應(yīng)用軟件卻沒有跟隨軟件開發(fā)技術(shù)的更新而升級換代,還普遍停留在較舊的技術(shù)體系;軟件整體功能性不強(qiáng),擴(kuò)展性較差,無法兼容其他廠家的設(shè)備;數(shù)據(jù)結(jié)構(gòu)也缺少規(guī)范統(tǒng)一;針對區(qū)域站應(yīng)用軟件的建設(shè)情況,結(jié)合實(shí)際項(xiàng)目情況,充分利用分層設(shè)計(jì)、軟件復(fù)用、插件開發(fā)等設(shè)計(jì)模式提出了一種架構(gòu)合理、功能規(guī)范、數(shù)據(jù)統(tǒng)一、兼容性強(qiáng)的基于區(qū)域自動(dòng)氣象觀測站的應(yīng)用軟件架構(gòu)設(shè)計(jì)。

2應(yīng)用軟件的架構(gòu)設(shè)計(jì)

軟件架構(gòu)也稱為軟件體系結(jié)構(gòu),是一系列相關(guān)的抽象模式,用于指導(dǎo)軟件系統(tǒng)各個(gè)方面的設(shè)計(jì)[15-17]。首先,可將軟件在功能上分層,各層在邏輯上可以保持相對獨(dú)立,使得整個(gè)系統(tǒng)邏輯更加清晰,能提高系統(tǒng)和軟件的可維護(hù)性和可擴(kuò)展性。其次,在各層中遵循軟件設(shè)計(jì)的基本原則即信息隱蔽性和模塊獨(dú)立性,設(shè)計(jì)出獨(dú)立性比較強(qiáng)的高內(nèi)聚低耦合的模塊。最后,通過使用設(shè)計(jì)模式,在模塊中進(jìn)行邏輯設(shè)計(jì)和編碼實(shí)現(xiàn)。設(shè)計(jì)模式包括創(chuàng)建型模式、結(jié)構(gòu)型模式和行為型模式三大類幾十種模式,常用的模式有模板方法、抽象工廠方法、策略、裝飾者、觀察者、訪問者和組合等模式[11]。抽象工廠模式,是一種面向?qū)ο蟮脑O(shè)計(jì)模式,指提供一個(gè)創(chuàng)建一系列相關(guān)或相互依賴對象的接口,而無需在編碼階段指定具體實(shí)現(xiàn)它們的類[18-20]。本文即以分層及模塊化思想為指導(dǎo),采用抽象工廠設(shè)計(jì)模式,利用插件控制器等方法實(shí)現(xiàn)通用區(qū)域自動(dòng)氣象觀測站系統(tǒng)的設(shè)計(jì)和實(shí)踐應(yīng)用。按照分層思想,從低往高將軟件功能分為基礎(chǔ)服務(wù)層、業(yè)務(wù)服務(wù)層、用戶界面層等3個(gè)層次。按照模塊化思想,在各個(gè)層次中將功能分成功能獨(dú)立的模塊。其中,基礎(chǔ)服務(wù)層包括設(shè)備交互、質(zhì)控警示、統(tǒng)一存儲(chǔ)等3個(gè)模塊;業(yè)務(wù)服務(wù)層包括統(tǒng)計(jì)分析、系統(tǒng)監(jiān)控、數(shù)據(jù)交換等3個(gè)模塊;用戶界面層包括統(tǒng)一API、顯示、文檔知識等3個(gè)模塊。如圖1軟件整體架構(gòu)圖所示。圖1中的層次劃分充分考慮了區(qū)域站的觀測業(yè)務(wù)需要。基礎(chǔ)服務(wù)層主要面向觀測設(shè)備和主程序,是連接設(shè)備和主程序的紐帶。通過該層主程序可以控制設(shè)備,與之交互,接收設(shè)備上傳的數(shù)據(jù)。然后對數(shù)據(jù)進(jìn)行分析和質(zhì)控處理,對異常進(jìn)行警示,然后提供統(tǒng)一的存儲(chǔ)方式進(jìn)行存放。可以看出基礎(chǔ)層雖然僅僅實(shí)現(xiàn)了設(shè)備的交互和數(shù)據(jù)的處理與存儲(chǔ),但這是整個(gè)系統(tǒng)的基礎(chǔ)部分,而對數(shù)據(jù)的進(jìn)一步加工處理就由業(yè)務(wù)服務(wù)層實(shí)現(xiàn)。業(yè)務(wù)服務(wù)層主要完成三個(gè)工作:一是對數(shù)據(jù)加工形成統(tǒng)計(jì)分析報(bào)表;二是對異常數(shù)據(jù)及系統(tǒng)異常進(jìn)行監(jiān)控;三是將加工后的觀測數(shù)據(jù)及系統(tǒng)異常對第三方進(jìn)行交換分享。業(yè)務(wù)服務(wù)層立足業(yè)務(wù)需求,同時(shí)起到承上啟下的作用,為用戶界面層提供數(shù)據(jù)。用戶界面層首先通過統(tǒng)一接口服務(wù)(API),可以為不同的應(yīng)用類型提供數(shù)據(jù)支持。如可以是窗口桌面程序(Windows),也可以是網(wǎng)站應(yīng)用(WebSite),還可以是移動(dòng)應(yīng)用(APP),不管哪種應(yīng)用都可以通過該API進(jìn)行數(shù)據(jù)的顯示和。其次,可以將觀測業(yè)務(wù)常用的小工具、小常識、經(jīng)驗(yàn)總結(jié)等知識,文檔化,格式化存儲(chǔ)和展示給用戶查看。以上,通過3個(gè)邏輯層次實(shí)現(xiàn)了從設(shè)備接入到基礎(chǔ)數(shù)據(jù)解析再到數(shù)據(jù)加工和異常監(jiān)控,最后再通過API的集中控制,實(shí)現(xiàn)了包括常見軟件類型的觀測數(shù)據(jù)顯示和功能。2.1基礎(chǔ)服務(wù)層基礎(chǔ)服務(wù)層包括設(shè)備交互、質(zhì)控警示和統(tǒng)一存儲(chǔ)三大模塊,是應(yīng)用軟件的基礎(chǔ)模塊。1)設(shè)備交互:面向各氣象設(shè)備,采用有線或無線的方式實(shí)現(xiàn)軟件與設(shè)備的交互,可向設(shè)備發(fā)送命令,也能接收原始數(shù)據(jù),并將數(shù)據(jù)初步解析和轉(zhuǎn)換為格式化的數(shù)據(jù)。2)質(zhì)控警示:對格式化的觀測數(shù)據(jù)進(jìn)行氣候?qū)W閾值檢查,缺值處理,異常值人工訂正干預(yù),利用業(yè)務(wù)預(yù)警模型對觀測值進(jìn)行分析和發(fā)出報(bào)警。3)統(tǒng)一存儲(chǔ):對原始數(shù)據(jù)、訂正后的格式化數(shù)據(jù)及其它加工后的數(shù)據(jù)提供統(tǒng)一的管理,主要包括統(tǒng)一數(shù)據(jù)存儲(chǔ),統(tǒng)一數(shù)據(jù)訪問,統(tǒng)一數(shù)據(jù)緩存。存儲(chǔ)形式可以是文件、關(guān)系型數(shù)據(jù)庫等。在本層還有其它輔助類、公共操作類,方便軟件復(fù)用。本層可以作為獨(dú)立程序運(yùn)行,推薦以服務(wù)方式運(yùn)行,不需要提供界面即能完成氣象設(shè)備的數(shù)據(jù)采集和處理及存儲(chǔ)功能。其數(shù)據(jù)流程圖如圖2基礎(chǔ)服務(wù)層數(shù)據(jù)流程圖。從數(shù)據(jù)流程圖中可以看出,設(shè)備交互模塊是系統(tǒng)獲取數(shù)據(jù)的第一入口,擔(dān)負(fù)著數(shù)據(jù)接收和設(shè)備交互的工作,是此類系統(tǒng)的關(guān)鍵模塊。為提高系統(tǒng)穩(wěn)定性、適應(yīng)性和可擴(kuò)展性,需要此模塊具備各種氣象設(shè)備數(shù)據(jù)接收和處理的能力。此處采用抽象工廠模式,將與設(shè)備交互的各種方法抽象為一個(gè)設(shè)備工廠類接口,交互方法主要有建立通訊連接、接收數(shù)據(jù),數(shù)據(jù)格式化操作,發(fā)送數(shù)據(jù),向設(shè)備發(fā)送命令等。農(nóng)業(yè)小氣候站、能見度站等設(shè)備分別繼承并實(shí)現(xiàn)這個(gè)接口,在接口內(nèi)部分別根據(jù)自身數(shù)據(jù)協(xié)議實(shí)現(xiàn)相應(yīng)方法。在軟件運(yùn)行階段,程序主體即可以根據(jù)配置參數(shù)實(shí)例化不同的工廠子類,從而完成不同類型設(shè)備的通訊連接,數(shù)據(jù)接收,數(shù)據(jù)格式化及其它交互操作。抽象工廠模式實(shí)現(xiàn)了在編碼階段已經(jīng)確定的設(shè)備類型的接入,采用插件式開發(fā)方法,可對未知設(shè)備類型的動(dòng)態(tài)接入提供便利。插件式開發(fā)方法由一個(gè)插件控制器完成,插件控制器可以將系統(tǒng)內(nèi)部實(shí)現(xiàn)了抽象工廠接口的設(shè)備類加載編譯[21-23]。當(dāng)系統(tǒng)中增加新的氣象設(shè)備類型時(shí),如大氣電場儀,只需新建大氣電場儀類實(shí)現(xiàn)抽象工廠接口,在主程序中增加參數(shù)配置項(xiàng),重啟主程序后,大氣電場儀類就會(huì)被插件控制器加載然后動(dòng)態(tài)編譯為一個(gè)整體類庫,抽象工廠實(shí)例化時(shí)就能選擇到大氣電場儀設(shè)備類型進(jìn)行后續(xù)操作。圖3中IDeviceFactory為抽象工廠接口,假設(shè)已有農(nóng)業(yè)小氣候站和能見度觀測站,并分別實(shí)現(xiàn)了該抽象工廠接口。PlugController為插件控制器,當(dāng)主程序運(yùn)行后,會(huì)調(diào)用插件控制器,該控制器就自動(dòng)把實(shí)現(xiàn)了抽象工廠接口的各種設(shè)備工廠類動(dòng)態(tài)編譯到主程序中,從而作為主程序的一部分被調(diào)用。通過插件控制的方法,可以很方便地將諸如大氣電場觀測設(shè)備(ElectricDevice,如圖3中虛線框內(nèi)所示)等設(shè)備的工廠類動(dòng)態(tài)加載到主程序中。2.2業(yè)務(wù)服務(wù)層面向區(qū)域氣象觀測業(yè)務(wù)實(shí)際,提供切實(shí)可行的統(tǒng)計(jì)分析、系統(tǒng)監(jiān)控及數(shù)據(jù)交換功能。主要包括以下三個(gè)模塊。1)統(tǒng)計(jì)分析:提供小時(shí)、日、月極值統(tǒng)計(jì),月報(bào)表分析等功能。2)系統(tǒng)監(jiān)控:提供系統(tǒng)運(yùn)行日志、業(yè)務(wù)日志、硬件運(yùn)行情況、傳感器狀態(tài)、網(wǎng)絡(luò)通訊狀態(tài)等監(jiān)控功能。3)數(shù)據(jù)交換:對外提供統(tǒng)一接入接口,可以快速接入其它外部系統(tǒng)的觀測數(shù)據(jù)或集成設(shè)備。對外提供統(tǒng)一訪問接口,用通用且規(guī)范的方式向外部傳輸數(shù)據(jù)。氣象觀測業(yè)務(wù)需求并不完全統(tǒng)一,需要根據(jù)實(shí)際情況進(jìn)行開發(fā),此處也是整個(gè)系統(tǒng)中變化較多的部分。但是,在系統(tǒng)初始建設(shè)階段,可以考慮依據(jù)氣象法規(guī),形成標(biāo)準(zhǔn)地面氣象觀測規(guī)范中建議的報(bào)表格式。這樣后續(xù)系統(tǒng)只需對規(guī)范外的特殊需求做少許改動(dòng)即可。2.3用戶界面層用戶界面層主要面向使用用戶,是聯(lián)系用戶與主程序的橋梁,向用戶展示軟件功能的窗口。在邏輯上分為以下三個(gè)部分。2.3.1顯示即用戶看到的最終界面。按照不同的軟件技術(shù)體系可以有不同的實(shí)現(xiàn)方式。目前無外乎桌面應(yīng)用程序、網(wǎng)站、移動(dòng)應(yīng)用及微信公眾號等形式。但不管采用哪種表現(xiàn)形式,一般都包含以下功能要求:1)提供多種監(jiān)測界面,顯示實(shí)時(shí)數(shù)據(jù)、狀態(tài)數(shù)據(jù)、警示信息及觀測時(shí)間;2)可以查詢歷史數(shù)據(jù)、歷史數(shù)據(jù)趨勢圖;3)可以查詢數(shù)據(jù)統(tǒng)計(jì)和分析結(jié)果等;4)通過電腦屏幕、電視墻、手機(jī)或者現(xiàn)場顯示設(shè)備顯示數(shù)據(jù)功能。2.3.2統(tǒng)一APIAPI服務(wù)層是一組定義好的功能接口類庫,通過該接口類庫,可以為不同的應(yīng)用界面提供功能統(tǒng)一、數(shù)據(jù)一致、訪問規(guī)范、安全可控的數(shù)據(jù)服務(wù)。2.3.3文檔知識:一個(gè)好的軟件設(shè)計(jì),不僅軟件的功能強(qiáng)大,易用性較好,而且軟件相關(guān)文檔的完整性和幫助手冊的易用性也要求較高。因此,在業(yè)務(wù)功能之外,強(qiáng)調(diào)文檔知識模塊很有必要。文檔模塊包括軟件使用手冊、常見問題問答。知識模塊包括業(yè)務(wù)觀測知識、觀測技巧等知識匯總顯示。與之前的基礎(chǔ)服務(wù)層和業(yè)務(wù)服務(wù)層不同,用戶界面層直接面向用戶,除了實(shí)現(xiàn)用戶需求,滿足用戶要求外,界面是否炫酷,操作是否易用直接影響用戶的使用感受和對軟件的印象評價(jià)。因此,本層除了實(shí)現(xiàn)以上三個(gè)模塊,還采用主題技術(shù)、模版技術(shù)、開源框架等方式為用戶提供風(fēng)格統(tǒng)一,支持皮膚定制等功能。

3實(shí)驗(yàn)結(jié)果與分析

近年來,針對農(nóng)業(yè)生產(chǎn)經(jīng)營特點(diǎn)設(shè)計(jì)的區(qū)域自動(dòng)氣象監(jiān)測站(農(nóng)業(yè)小氣候站)被越來越多地建設(shè)和使用。農(nóng)業(yè)小氣候站不僅監(jiān)測要素齊全,而且還能實(shí)現(xiàn)實(shí)地監(jiān)測和遠(yuǎn)距離數(shù)據(jù)監(jiān)測。主要監(jiān)測傳感器有溫度、濕度、風(fēng)向、風(fēng)速、雨量和氣壓等6種常規(guī)傳感器,以及土壤濕度、光照度、葉面濕度和土壤水分等多種專業(yè)傳感器,另外還會(huì)配置顯示屏(多為發(fā)光二極管LED顯示屏)以在實(shí)地實(shí)時(shí)顯示采集的數(shù)據(jù)。在用戶界面方面,多以GIS地圖方式展示觀測數(shù)據(jù)[24]。本次實(shí)驗(yàn)通過以下步驟和方法進(jìn)行該系統(tǒng)設(shè)計(jì)的可行性驗(yàn)證。首先,通過分析農(nóng)業(yè)小氣候站的功能需求,確認(rèn)可以采用上述方法,在該系統(tǒng)上通過增加“農(nóng)業(yè)小氣候站”工廠類,實(shí)現(xiàn)農(nóng)業(yè)小氣候觀測數(shù)據(jù)的接入和分析處理。其次,參照圖3,編碼實(shí)現(xiàn)農(nóng)業(yè)小氣候站工廠類(Agricul-tureDevice),該類與“能見度站”(VisiDevice)工廠類類似,都繼承自接口工廠類(IDeviceFactory),通過實(shí)現(xiàn)接口工廠類中定義的格式化數(shù)據(jù)方法和命令交互等方法即可對該代碼進(jìn)行編譯,形成農(nóng)業(yè)小氣候站工廠類靜態(tài)類庫。然后,將編譯后的類庫放入主程序執(zhí)行文件夾內(nèi),啟動(dòng)主程序后,新增加的農(nóng)業(yè)小氣候站工廠類即可被插件控制器自動(dòng)識別和加載。當(dāng)農(nóng)業(yè)小氣候站建設(shè)完畢,采用無線通訊方式接入到主程序中。在通電后設(shè)備會(huì)主動(dòng)向主程序發(fā)起連接,主程序通過設(shè)備標(biāo)識,識別出該設(shè)備。然后利用工廠實(shí)例自動(dòng)找到農(nóng)業(yè)小氣候工廠類進(jìn)行數(shù)據(jù)的解析及與設(shè)備的交互工作。自此,實(shí)現(xiàn)了農(nóng)業(yè)小氣候站的數(shù)據(jù)接入和交互。針對農(nóng)業(yè)小氣候站的業(yè)務(wù)應(yīng)用,可以直接利用之前的用戶界面實(shí)現(xiàn)數(shù)據(jù)的展示等功能。最后,根據(jù)前文所述軟件設(shè)計(jì)架構(gòu)方法,系統(tǒng)軟件整體結(jié)構(gòu)圖如圖4所示。圖4軟件整體結(jié)構(gòu)圖相比圖1,圖4給出了設(shè)備層的概念,其它從低到高依次為基礎(chǔ)服務(wù)層、業(yè)務(wù)服務(wù)層、用戶界面層。提出設(shè)備層是為了方便將硬件與軟件功能整體展示,設(shè)備層不僅可以是不同廠家的農(nóng)業(yè)小氣候站,還可以是不同類型的監(jiān)測設(shè)備,可以是一臺(tái)設(shè)備獨(dú)立監(jiān)測,也可以多臺(tái)設(shè)備進(jìn)行組網(wǎng)監(jiān)測?;A(chǔ)服務(wù)層實(shí)現(xiàn)農(nóng)業(yè)小氣候站的數(shù)據(jù)接入和交互,然后形成格式統(tǒng)一,質(zhì)量完整的基礎(chǔ)數(shù)據(jù),并存入數(shù)據(jù)庫等文件中。業(yè)務(wù)服務(wù)層從數(shù)據(jù)庫中取出基礎(chǔ)數(shù)據(jù),然后對基礎(chǔ)數(shù)據(jù)加工分析得到統(tǒng)計(jì)數(shù)據(jù)和監(jiān)控等數(shù)據(jù),最后存回?cái)?shù)據(jù)庫中備用。用戶界面層利用統(tǒng)一API服務(wù)將各種加工后的數(shù)據(jù)提供給中心站軟件、Web客戶端網(wǎng)站及移動(dòng)APP應(yīng)用等使用。通過本次實(shí)驗(yàn),僅需增加一個(gè)“農(nóng)業(yè)小氣候”工廠類,即可快速實(shí)現(xiàn)農(nóng)業(yè)小氣候觀測數(shù)據(jù)的接入和處理。極大地提高了工作效率,不但降低企業(yè)的開發(fā)成本,還因?yàn)楣δ芨叨燃伞⒐δ苣K化、軟件復(fù)用等優(yōu)勢,保證了軟件的開發(fā)質(zhì)量和軟件的穩(wěn)定性,這將有利于降低軟件的維護(hù)成本,同時(shí)提高企業(yè)履約能力和盈利能力。

4結(jié)論

本文依托分層架構(gòu)設(shè)計(jì)思想,提煉了區(qū)域自動(dòng)氣象站的應(yīng)用軟件設(shè)計(jì)架構(gòu)。提出基礎(chǔ)服務(wù)層、業(yè)務(wù)服務(wù)層、用戶界面層共三個(gè)層次。通過分層隔離使得層與層之間都是相互獨(dú)立的,架構(gòu)中的每一層的變化不會(huì)影響其它層。在每層中采用模塊化設(shè)計(jì),進(jìn)一步提高內(nèi)聚降低耦合,保證了系統(tǒng)的健壯性,使得系統(tǒng)更加易維護(hù)。針對不同類型的區(qū)域自動(dòng)站,采用抽象工廠模式設(shè)計(jì),配合插件式開發(fā),利用動(dòng)態(tài)編譯技術(shù),極大地提高了系統(tǒng)的適用性和擴(kuò)展性。通過農(nóng)業(yè)小氣候站的實(shí)驗(yàn)應(yīng)用,可以方便地實(shí)現(xiàn)設(shè)備的數(shù)據(jù)接入,提高了工作效率。但是在用戶界面層,不同類型設(shè)備表現(xiàn)出一致的界面,顯得有些呆板,下一步可以考慮在界面層實(shí)現(xiàn)時(shí)也可以利用插件式開發(fā),實(shí)現(xiàn)不同設(shè)備類型,提供不同的用戶界面。

作者:吳頻頻 李長明 單位:1.洛陽職業(yè)技術(shù)學(xué)院信息技術(shù)與城建學(xué)院 2.凱邁(洛陽)環(huán)測有限公司