国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于LabView圖形化編程語言的軟件架構(gòu)設(shè)計方法研究

2016-03-11 10:48蘇娟鄭國昆張帆李志超北京航天發(fā)射技術(shù)研究所北京100076
工程建設(shè)與設(shè)計 2016年18期
關(guān)鍵詞:功能模塊線程隊列

蘇娟,鄭國昆,張帆,李志超(北京航天發(fā)射技術(shù)研究所,北京100076)

基于LabView圖形化編程語言的軟件架構(gòu)設(shè)計方法研究

蘇娟,鄭國昆,張帆,李志超
(北京航天發(fā)射技術(shù)研究所,北京100076)

分析了LabView圖形化編程語言的特點及運行機理,提煉出應(yīng)用LabView語言編寫地面發(fā)射支持系統(tǒng)監(jiān)控類軟件的總體架構(gòu)、功能模塊劃分及優(yōu)先級設(shè)定方法,并對各個功能模塊的可重用程序框圖進行說明,提供了一種基于LabView編程語言的地面發(fā)射支持系統(tǒng)監(jiān)控類軟件通用設(shè)計方法。

LabView;監(jiān)控類軟件;可重用

【DOI】10.13616/j.cnki.gcjsysj.2016.12.182

1 引言

目前,我國航天地面發(fā)射支持系統(tǒng)型號配套軟件、仿真測試軟件,并使用了LabView語言準(zhǔn)確地實現(xiàn)了用戶需求。近年來,在軟件的使用過程中,軟件出現(xiàn)了時序不同導(dǎo)致的多線程變量賦值錯誤、軟件界面觸發(fā)邏輯混亂導(dǎo)致用戶誤觸發(fā)等典型的質(zhì)量問題,分析主要原因為:軟件無統(tǒng)一設(shè)計架構(gòu),設(shè)計師精力集中在功能實現(xiàn)及代碼級,導(dǎo)致當(dāng)軟件使用場景及輸入負載變化時,軟件性能不達標(biāo),并影響正常功能的實現(xiàn)。

針對上述問題,論文提出一種基于LabView語言的通用設(shè)計架構(gòu),并提出了功能模塊劃分依據(jù)和優(yōu)先級設(shè)定方法,提煉出了常用功能模塊可重用設(shè)計思路,為監(jiān)控類軟件提供了一種可靠的設(shè)計方法。

2 軟件總體架構(gòu)設(shè)計

在進行程序框圖設(shè)計時,應(yīng)考慮將源代碼控制在一屏能顯示的范圍內(nèi)。主VI只處理前面板用戶事件,涉及數(shù)據(jù)處理和通信接口,均通過調(diào)用子VI實現(xiàn)。

基于LabView的軟件總體架構(gòu)一般采用標(biāo)準(zhǔn)狀態(tài)機設(shè)計架構(gòu),通過While循環(huán)+狀態(tài)判斷條件架構(gòu)實現(xiàn)軟件運行狀態(tài)的切換,基于狀態(tài)機的架構(gòu)設(shè)計,關(guān)鍵在于狀態(tài)的定義和狀態(tài)切換條件定義。

數(shù)據(jù)采集需要持續(xù)執(zhí)行的功能模塊,一般采用動態(tài)調(diào)用的方法,實現(xiàn)主VI和子VI并行運行。

3 軟件多線程架構(gòu)設(shè)計

3.1 多線程運行機理

LabView通過6個執(zhí)行系統(tǒng)實現(xiàn)了多線程調(diào)度系統(tǒng),并為每個執(zhí)行系統(tǒng)分配一個線程池和一個調(diào)度隊列,實現(xiàn)程序框圖中多個循環(huán)模塊并行執(zhí)行。一般情況下,可通過VI屬性—執(zhí)行—首選執(zhí)行系統(tǒng)來實現(xiàn)對執(zhí)行系統(tǒng)的選擇。一般為默認選項:與調(diào)用方一致。調(diào)用方(主VI)的選項一般為默認標(biāo)準(zhǔn)系統(tǒng),當(dāng)界面顯示要求高,頻繁使用屬性節(jié)點時,應(yīng)將與界面顯示相關(guān)的VI執(zhí)行系統(tǒng)設(shè)置為用戶界面,以避免頻繁的執(zhí)行系統(tǒng)和線程切換導(dǎo)致程序性能下降。

3.2 多線程架構(gòu)設(shè)計方法

設(shè)計多線程架構(gòu)時,應(yīng)當(dāng)遵循這樣的原則:一般一個功能模塊對應(yīng)一個線程,對于通信類多通道并行執(zhí)行的功能一般按照通道數(shù)建立多個線程并行運行??梢酝瑫r運行的功能模塊可并排擺放,不要用連線、順序框等方式強制它們依次執(zhí)行。在并行執(zhí)行時,LabView會自動把它們安排在不同的線程下同時運行,以提高程序的執(zhí)行速度,節(jié)省運行時間。為避免某一個線程占用CPU資源達100%,其他線程反應(yīng)遲鈍,導(dǎo)致用戶認為程序死鎖的情況,應(yīng)在循環(huán)中加延時函數(shù)。延時的時間長短應(yīng)根據(jù)本循環(huán)實現(xiàn)功能的優(yōu)先級來確定,優(yōu)先級越高的線程延時時間越短。

4 軟件功能模塊設(shè)計

根據(jù)軟件功能不同,將系統(tǒng)劃分為“參數(shù)初始化”“數(shù)據(jù)接收”“數(shù)據(jù)解析”“數(shù)據(jù)發(fā)送”“UI界面顯示”“曲線圖像”“數(shù)值顯示”“系統(tǒng)心跳”“錯誤響應(yīng)”“數(shù)據(jù)存儲”10個功能模塊,每個功能模塊設(shè)計思路如下。

4.1 參數(shù)初始化

采用順序結(jié)構(gòu),程序首先完成參數(shù)初始化工作,初始化成功后順序結(jié)構(gòu)后移,開始運行主程序。程序在初始化模塊中可進行變量初始化、讀取硬盤參數(shù)配置文件等工作。

4.2 數(shù)據(jù)接收

軟件實際應(yīng)用中,必須保證分析處理的實時性,此處軟件設(shè)計無延時,While循環(huán)實現(xiàn)數(shù)據(jù)接收功能。同時為保證數(shù)據(jù)的完整性和實時性,接收完數(shù)據(jù)后將數(shù)據(jù)與時間信息打包為簇常量,并入數(shù)據(jù)接收隊列。若存在多個數(shù)據(jù)接收通道,為保證多個通道間數(shù)據(jù)互補干擾,采用多個獨立While循環(huán)實現(xiàn)多通道數(shù)據(jù)接收工作[1]。

4.3 數(shù)據(jù)解析

數(shù)據(jù)解析功能模塊用于將數(shù)據(jù)接收隊列內(nèi)的數(shù)據(jù)進行解析,并賦給相應(yīng)的系統(tǒng)變量。由于系統(tǒng)解析在要求一定的處理實時性的同時,還具有一定的處理復(fù)雜度,設(shè)計采用循環(huán)間隔為200ms的While循環(huán)結(jié)構(gòu)實現(xiàn)。將所有系統(tǒng)變量打包至一個簇常量,對數(shù)據(jù)進行解析,分別更新簇常量內(nèi)對應(yīng)系統(tǒng)的參數(shù)值,可以避免系統(tǒng)變量增多導(dǎo)致結(jié)構(gòu)復(fù)雜的現(xiàn)象,同時提高數(shù)據(jù)刷新速度。在完成數(shù)據(jù)解析功能的同時,設(shè)計數(shù)據(jù)存儲隊列,解析數(shù)據(jù)完成入列操作,為數(shù)據(jù)存儲模塊準(zhǔn)備。

4.4 數(shù)據(jù)發(fā)送

數(shù)據(jù)發(fā)送模塊用于將數(shù)據(jù)發(fā)送隊列中的數(shù)據(jù)出列并按照一定的格式發(fā)送出去,由于軟件發(fā)送數(shù)據(jù)一般為指令幀,為非周期觸發(fā),故采用隊列傳遞方式,當(dāng)隊列中無數(shù)據(jù)時,此線程處于阻塞模式,此時,線程一次循環(huán)的等待時間設(shè)置為250ms,在本時間段內(nèi),其他線程占用CPU資源執(zhí)行。

4.5 UI界面響應(yīng)

UI界面以While循環(huán)結(jié)合事件觸發(fā)的結(jié)構(gòu)實現(xiàn),用于響應(yīng)用戶在UI界面進行的操作,同時生成相應(yīng)的操作代碼,并將操作代碼入列數(shù)據(jù)發(fā)送隊列。

4.6 曲線圖像

曲線圖像模塊用于以曲線的方式顯示系統(tǒng)反饋參數(shù),由于多曲線多通道占用系統(tǒng)資源,此處設(shè)計使用時間間隔為100ms的定時While循環(huán)模塊。由于人眼錯覺,100ms的刷新速度可以滿足需求,又可以降低系統(tǒng)資源占用。

4.7 數(shù)值顯示

數(shù)值顯示模塊用于以數(shù)值的方式顯示系統(tǒng)反饋參數(shù),由于占用系統(tǒng)資源較少,此處設(shè)計使用時間間隔為100ms的定時While循環(huán)模塊。由于人眼錯覺,100ms的刷新速度滿足需求。

4.8 系統(tǒng)心跳

系統(tǒng)心跳用于檢測系統(tǒng)心跳信息,周期固定2s,用間隔周期2000ms的定時While循環(huán)實現(xiàn)。設(shè)計中采用心跳數(shù)組,每接收一次心跳信息,數(shù)組值加1,軟件周期判斷該數(shù)值是否增加,若增加則心跳指示燈亮,否則為滅。

4.9 錯誤響應(yīng)

錯誤響應(yīng)模塊用于響應(yīng)系統(tǒng)錯誤并執(zhí)行相應(yīng)處理操作。使用時間間隔為1000ms的While循環(huán)控件實現(xiàn),模塊獨立運行,采集系統(tǒng)錯誤,經(jīng)過系統(tǒng)信息處理函數(shù)處理,根據(jù)處理信息選擇相應(yīng)執(zhí)行操作。

4.10 數(shù)據(jù)存儲

數(shù)據(jù)存儲模塊用來實現(xiàn)系統(tǒng)接收發(fā)送數(shù)據(jù)的存儲功能。本模塊基于數(shù)據(jù)完成性要求高,而存儲實時性低且文件讀取寫入資源消耗高的特點,使用數(shù)據(jù)存儲隊列與While循環(huán)結(jié)合進行設(shè)計實現(xiàn)。本模塊使用循環(huán)間隔為10000ms的定時While循環(huán),讀取數(shù)據(jù)存儲隊列內(nèi)數(shù)據(jù),每次將隊列中的所有數(shù)據(jù)讀出,并以二維數(shù)組的形式批量寫入存儲文件,當(dāng)存儲隊列中無數(shù)據(jù)時,結(jié)束本次循環(huán),避免造成軟件響應(yīng)滯后。

存儲數(shù)據(jù)線程通過對存儲隊列的出列操作,按照時間、數(shù)據(jù)解除簇常量捆綁,分別經(jīng)過“時間存儲格式化輸出”“數(shù)據(jù)存儲格式化輸出”子VI,實現(xiàn)存儲格式格式化存儲。同時,模塊檢測當(dāng)前系統(tǒng)時間,按照小時為單位進行數(shù)據(jù)存儲,若存在新的小時,則創(chuàng)建新的存儲文件路徑,這樣可以避免長時間運行程序造成存儲文件異常,同時提高文件檢索效率。

5 應(yīng)用效果評估

在發(fā)射平臺環(huán)境監(jiān)測上位機軟件中應(yīng)用了上述設(shè)計方法。經(jīng)試驗表明,本架構(gòu)滿足系統(tǒng)使用功能、性能需求,軟件使用過程中未發(fā)生卡滯、死機等異?,F(xiàn)象。在軟件參加總裝調(diào)試階段,對于總體及用戶提出的界面易用性更改,只涉及主VI變更,并未影響子VI及軟件架構(gòu)改變,大大降低了軟件維護成本。

【1】謝冰.基于LabView的數(shù)據(jù)采集與信號處理系統(tǒng)設(shè)計[J].現(xiàn)代電子技術(shù),2011(14):13-15.

Research on the Software Architecture Design Methods Based on the LabView Graphical Programming Language

SU Juan,ZHENG Guo-kun,ZHANG Fan,LI Zhi-chao
(Beijing Space Launch Technology Institude,Beijing 100076,China)

This paper analyzes the characteristics and operation mechanism of the Labview,and refined the architecture、the function moduledivision and the priority setting of the monitoring software on the ground support system.And it described the reusable program block diagram ofeach functional module,provided ageneral designing method of monitoring software on the ground support system.

LabView;monitoring software;reusable

TP311.52

A

1007-9467(2016)12-0196-03

2016-11-07

蘇娟(1982~),女,河南鄭州人,工程師,從事控制系統(tǒng)軟件設(shè)計研究。

猜你喜歡
功能模塊線程隊列
基于C#線程實驗探究
隊列里的小秘密
基于多隊列切換的SDN擁塞控制*
基于國產(chǎn)化環(huán)境的線程池模型研究與實現(xiàn)
在隊列里
豐田加速駛?cè)胱詣玉{駛隊列
淺談linux多線程協(xié)作
基于ASP.NET標(biāo)準(zhǔn)的采購管理系統(tǒng)研究
輸電線路附著物測算系統(tǒng)測算功能模塊的研究
功能模塊的設(shè)計與應(yīng)用研究