自動氣象觀測站軟件設(shè)計研究

時間:2022-06-17 03:10:17

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

自動氣象觀測站軟件設(shè)計研究

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

1界面設(shè)計

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

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

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

3實驗結(jié)果與分析

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

4結(jié)論

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

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