自動氣象觀測站軟件設計研究

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

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

自動氣象觀測站軟件設計研究

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

1界面設計

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

2應用軟件的架構設計

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

3實驗結果與分析

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

4結論

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

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