• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于腳本的通用自動測試系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

      2018-03-06 03:45:41朱望純張大偉
      火力與指揮控制 2018年2期
      關(guān)鍵詞:關(guān)鍵字腳本命令

      朱望純,王 麗,張大偉

      (1.桂林電子科技大學(xué)電子工程與自動化學(xué)院,廣西 桂林 541004;2.解放軍91872部隊(duì),北京 100000)

      0 引言

      隨著測試技術(shù)不斷發(fā)展和對測試要求的不斷提高,自動測試系統(tǒng)(Automatic Test System,ATS)組建難度不斷增加,尤其在測試任務(wù)改變和測試平臺換代更新的情況下,經(jīng)常需要重新構(gòu)建新的測試系統(tǒng)來滿足測試需求,造成資源和資金的浪費(fèi)[1]。因此,構(gòu)建一個(gè)架構(gòu)開發(fā)靈活,軟硬件通用,可擴(kuò)展、易升級的通用ATS平臺成為國內(nèi)外ATS研究的趨勢[2]。腳本語言作為一種可在測試平臺上直接運(yùn)行的可執(zhí)行語言,具有可靈活編程、可復(fù)用、易維護(hù)的特點(diǎn),關(guān)鍵字驅(qū)動的測試腳本將常用的ATS測試方法包裝為關(guān)鍵字,提高測試腳本的復(fù)用性[3],為實(shí)現(xiàn)在ATS硬件環(huán)境基本不變,依據(jù)不同測試需求編寫相應(yīng)測試腳本完成測試任務(wù),提供了一個(gè)良好的解決方案。

      1 通用測試平臺總體結(jié)構(gòu)

      通用ATS集成了測試信號與測試儀器,由軟件平臺控制完成各種狀態(tài)、性能測試。系統(tǒng)構(gòu)建基于PCI總線的通用ATS硬件平臺,如圖1所示,主要包括各類PCI板卡和控制開關(guān)網(wǎng)絡(luò)組合的測控儀器、主控計(jì)算機(jī)等[4]。

      主控計(jì)算機(jī)用于實(shí)現(xiàn)系統(tǒng)測試腳本編寫和解析、數(shù)據(jù)管理和顯示,以及軟件平臺管理、測試資源控制等;各類PCI板卡包括IO卡、AO卡、采集卡、定時(shí)計(jì)數(shù)器卡等,用于實(shí)現(xiàn)模擬量或者數(shù)字量的輸入或輸出,完成各種測試所需激勵(lì)、測量、輸出測試等操作;連接器、適配器由軟件控制信號切換和連接UUT與測試資源,實(shí)現(xiàn)測試資源的合理分配和調(diào)用,增強(qiáng)了系統(tǒng)通用性[5]。

      測試系統(tǒng)具有良好的通用性和開放性,針對不同被測對象,測試時(shí)主控計(jì)算機(jī)和測控儀器通用,配合靈活的軟件設(shè)計(jì),只需更換適配器即可實(shí)現(xiàn)平臺重構(gòu),完成多種信號和接口的測試任務(wù),使系統(tǒng)具有良好的擴(kuò)展性、易升級。

      2 軟件平臺總體方案

      測試系統(tǒng)軟件平臺如圖2所示,包括應(yīng)用系統(tǒng)管理層、腳本解析、腳本指令功能函數(shù)等[6]。

      系統(tǒng)軟件平臺是系統(tǒng)設(shè)計(jì)的關(guān)鍵,首先根據(jù)測試需求設(shè)計(jì)測試腳本,經(jīng)解析模塊,將解析出的腳本指令和參數(shù)帶入對應(yīng)的關(guān)鍵字腳本指令功能函數(shù),進(jìn)而調(diào)用儀器或板卡驅(qū)動執(zhí)行相應(yīng)的測試操作,完成測試任務(wù)。系統(tǒng)應(yīng)用管理層的主要功能是管理平臺的軟硬件資源,測試任務(wù)腳本管理模塊完成對不同測試任務(wù)的腳本設(shè)計(jì)、增刪和保存等;系統(tǒng)配置模塊完成儀器或板卡資源的通道配置、采樣率配置、輸入/出模式配置等;數(shù)據(jù)處理模塊對測試結(jié)果評估、存儲和報(bào)表打??;數(shù)據(jù)顯示模塊對測試數(shù)據(jù)、測試參數(shù)進(jìn)行波形或圖形顯示[7]。

      系統(tǒng)設(shè)計(jì)中引入了關(guān)鍵字測試腳本,其編程便捷靈活,可重用或相互調(diào)用,可完成多種測試任務(wù),使得搭建的ATS具有更好的通用性。

      3 關(guān)鍵技術(shù)

      3.1 腳本命令關(guān)鍵字體系搭建

      腳本命令是由關(guān)鍵字組成的森林結(jié)構(gòu),分為命令節(jié)點(diǎn)關(guān)鍵字和參數(shù)關(guān)鍵字,腳本詞法語法的設(shè)計(jì)是系統(tǒng)設(shè)計(jì)的一個(gè)關(guān)鍵,直接關(guān)乎到系統(tǒng)軟件的健壯性和可操作性[8],設(shè)計(jì)中的腳本命令關(guān)鍵字的詞法、語法規(guī)則如下:

      1)詞法格式:一個(gè)英文單詞或短語構(gòu)成一條命令關(guān)鍵字

      舉例:AO(AO),SAMP(SAMPle),VOLT(VOLT-age),DWAV(DWAVe),CALC(CALCulate)...

      2)語法格式:根結(jié)點(diǎn)關(guān)鍵字:一級節(jié)點(diǎn)關(guān)鍵字:二級節(jié)點(diǎn)關(guān)鍵字:···:n 級節(jié)點(diǎn)關(guān)鍵字[+‘空格’+參數(shù) 1[+ 單位]+‘,’+ 參數(shù) 2[+ 單位]···]+‘;’[+···+‘;:’]

      說明:節(jié)點(diǎn)分隔符為“:”,命令分隔符為“;”,參數(shù)分割符為“,”,節(jié)點(diǎn)與參數(shù)分隔符為“(空格)”,不同層次命令(前后兩條命令有不同的根節(jié)點(diǎn))分割符為“;:”,“[]”內(nèi)的部分是可選的。

      舉例:AO:CCH Dev2/ao2,-10 V,10 V;CONF:VOLT:DC 3V;SAMP 10000,500,CSAM;

      其中:AO:根結(jié)點(diǎn)關(guān)鍵字;CCH、CONF、SAMP:AO的一級節(jié)點(diǎn)關(guān)鍵字;VOLT:AO的二級節(jié)點(diǎn)關(guān)鍵字;DC:AO 的三級節(jié)點(diǎn)關(guān)鍵字;Dev2/ao2,-10 v,10 v:指令CCH的3個(gè)參數(shù),10 000,500,1:指令SAMP的3個(gè)參數(shù)。

      根據(jù)通用ATS測試任務(wù)和軟件平臺設(shè)計(jì)方案,設(shè)計(jì)的腳本命令關(guān)鍵字主要包括信號類型(模擬/數(shù)字、輸入/輸出)、測量控制(電壓/電流/頻率等)、采樣配置、數(shù)據(jù)計(jì)算、數(shù)據(jù)顯示、結(jié)構(gòu)控制(選擇/循環(huán))等。下頁圖3僅列出本文設(shè)計(jì)的模擬信號輸入AI根節(jié)點(diǎn)下的部分關(guān)鍵字邏輯結(jié)構(gòu)圖(根結(jié)點(diǎn)及其子節(jié)點(diǎn)已排序)。

      3.2 腳本命令設(shè)計(jì)

      遵循腳本指令詞法語法格式和搭建的基于關(guān)鍵字的腳本驅(qū)動體系,設(shè)計(jì)了6類功能腳本指令。

      3.2.1 板卡操作指令

      Card:Operate1 Para1,Para2...;Operate2 Para1,Para2...;

      指令說明:Card:根結(jié)點(diǎn),板卡類型,如“AO”(模擬輸出)、“DI”(數(shù)字輸入);Operate1、Operate2:分別是Card的子節(jié)點(diǎn),按照樹形邏輯結(jié)構(gòu)引用,如“CCH”(創(chuàng)建通道)、“SAMP”(采樣設(shè)置)、CONF(配置)、VOLT(配置電壓)、SINe(配置正弦電壓);Para1,Para2...:是命令節(jié)點(diǎn)Operate1或Operate2的參數(shù),有設(shè)備/端口名、信號類型、采樣率/點(diǎn)數(shù)、電壓/電流幅值、電壓/電流范圍、周期等,其順序關(guān)系確定后就被固定下來。

      舉例:AO:CCH Dev2/ao2,-10 V,10 V;CONF:VOLT:DC 3V;SAMP 10 000,500,CSAM;

      功能說明:利用設(shè)備名為Dev2的AO卡,模擬輸出電壓端口ao2輸出3 V直流電壓,輸出電壓限制為±10 V,采樣率為10 000,采樣點(diǎn)數(shù)為500,采樣方式為連續(xù)采樣。

      3.2.2 數(shù)據(jù)處理指令

      Card:DProcess1 Para1,Para2...;DProcess2 Para1,Para2...;

      指令說明:Card:為根結(jié)點(diǎn),板卡類型;DProcess1、DProcess2:分別是Card的子節(jié)點(diǎn),按照樹形邏輯結(jié)構(gòu)引用,如“CALC”(計(jì)算)、“AVER?”(計(jì)算平均值)、“RMS?”(計(jì)算有效值)、“VPP?”(計(jì)算峰峰值)、“SAVe?(存儲)”[9];

      舉 例 :AI:CCH Dev1/ai1;CALC:AVER?;VPP?;RMS?;

      功能說明:設(shè)備名為Dev1的AI卡,計(jì)算模擬輸入通道ai1的數(shù)據(jù)平均值、峰峰值、有效值。

      3.2.3 數(shù)據(jù)顯示指令

      Card:DDisplay1 Para1,Para2...;DDisplay2 Para1,Para2...;

      指令說明:Card:根結(jié)點(diǎn),板卡類型;DDisplay1、DDisplay2:分別是Card的子節(jié)點(diǎn),按照樹形邏輯結(jié)構(gòu)引用,如“PORT”(選擇端口)、“DIRection”(端口方向)、“STATus”(端口狀態(tài));Para1,Para2...:是命令節(jié)點(diǎn)DDisplay1或DDisplay2的參數(shù),有端口名、輸入/輸出控制參數(shù)、端口狀態(tài)參數(shù)等。

      舉 例 :DO:PORT Dev1/port0/line0:7;DIR#B11 010010;STAT#B10011110;

      功能說明:設(shè)置板卡名為Dev1的DO卡,端口port0的第 0到 7位的端口方向及狀態(tài),“DIR#B11010010”設(shè)置第 0、2、3、5位端口方向?yàn)檩敵?,其他位為輸入,“STATus#B11011110”將第 0、2、3、5位端口狀態(tài)分別設(shè)置為輸出低、高、高、低電平,另外對DO卡的第1、4、6、7位輸入端狀態(tài)的設(shè)置無意義。

      3.2.4 選擇控制指令

      IF、ELSe、SWITch、CASe、DEFault

      指令說明:IF/ELSe語句是用來判定所給定的條件是否滿足,若滿足執(zhí)行IF后的腳本語句,不滿足執(zhí)行ELSE后的腳本語句;SWITch/CASe/DEFault語句是用來實(shí)現(xiàn)多分支選擇結(jié)構(gòu),如果CASe后的某個(gè)條件滿足,則執(zhí)行該語句,如果條件都不滿足,執(zhí)行DEFault后的腳本語句。

      3.2.5 循環(huán)控制指令

      DO、WHILe、BREak、UNTil、IF/GOTO

      指令說明:IF/GOTO語句實(shí)現(xiàn)循環(huán)結(jié)構(gòu),GOTO后的參數(shù)為語句標(biāo)號,當(dāng)IF后的條件語句滿足時(shí),往下執(zhí)行到GOTO:lable;:語句跳轉(zhuǎn)到標(biāo)號lable處繼續(xù)執(zhí)行;UNTil語句,執(zhí)行UNTil后的條件語句,直到為真才能繼續(xù)執(zhí)行下面的腳本語句[10]。

      3.2.6 腳本延時(shí)指令

      DELay para1;:

      指令說明:延時(shí)para1<s>

      3.3 腳本命令解析

      通過分析腳本命令的詞法、語法規(guī)則,將腳本命令解析分為命令存儲及查詢、詞法分析等6個(gè)模塊,腳本解析的流程如下頁圖4所示。

      3.3.1 腳本命令存儲及查詢

      腳本命令選用數(shù)組鏈表存儲結(jié)構(gòu),將根結(jié)點(diǎn)的每級子節(jié)點(diǎn)關(guān)鍵字按照字母大小順序存儲在命令節(jié)點(diǎn)數(shù)組中,數(shù)組記錄了節(jié)點(diǎn)長/短型關(guān)鍵字、子節(jié)點(diǎn)個(gè)數(shù)、子節(jié)點(diǎn)對應(yīng)的功能函數(shù)編號等。根據(jù)腳本命令的存儲結(jié)構(gòu),選用二分查詢算法,每次查詢的時(shí)間復(fù)雜度是O(log2n),平均查找長度是(n+1)*log2(n+1)/n-1,n為子節(jié)點(diǎn)數(shù)組長度[11]。

      3.3.2 詞法分析模塊

      腳本命令詞法分析分為命令分解和詞法語法分析兩個(gè)階段,命令分解是按照腳本命令的詞法規(guī)則,從首字符開始解析,遇到“;、;:、(空格)、:”便將腳本命令分解成命令節(jié)點(diǎn)和命令參數(shù)并分別存儲。命令參數(shù)的詞法語法分析,首先識別出首字符來判斷參數(shù)類型,首字母為“#”、“+/-/數(shù)字”、“char型字母”的參數(shù)類型分別為二八十六進(jìn)制類型、十進(jìn)制數(shù)據(jù)類型、標(biāo)識符類型,然后進(jìn)入到相應(yīng)的參數(shù)處理模塊,有單位的進(jìn)入到單位處理模塊。

      3.3.3 命令參數(shù)處理模塊

      在不同數(shù)據(jù)類型參數(shù)的處理模塊中,首先通過語法分析判斷是否符合該參數(shù)類型的語法格式,再分別存儲。若是標(biāo)識符類型,則通過二分查詢算法與參數(shù)存儲結(jié)構(gòu)中的參數(shù)關(guān)鍵字比較;若是數(shù)值類型,則通過語法分析判斷是否符合數(shù)值類型語法規(guī)則,若有單位,進(jìn)入數(shù)值型數(shù)據(jù)單位處理模塊。

      3.3.4 參數(shù)單位處理模塊

      字符型和十進(jìn)制參數(shù)字符串解析完,參數(shù)后的字符串即是該參數(shù)的單位,將單位字符串與單位存儲結(jié)構(gòu)中的單位參數(shù)關(guān)鍵字比較,如果一致,則參數(shù)單位正確[12]。

      3.3.5 錯(cuò)誤信息報(bào)告模塊

      當(dāng)解析過程出現(xiàn)錯(cuò)誤時(shí),將錯(cuò)誤信息字符串指針指向錯(cuò)誤信息存儲結(jié)構(gòu),報(bào)告錯(cuò)誤信息[13]。

      3.3.6 功能函數(shù)模塊

      腳本指令經(jīng)解析,將得到的命令及參數(shù)引入到對應(yīng)的功能函數(shù)中,通過調(diào)用儀器或板卡驅(qū)動函數(shù),在函數(shù)中完成腳本指令的執(zhí)行。

      4 測試結(jié)果

      為驗(yàn)證基于腳本設(shè)計(jì)的通用ATS平臺的通用性和可行性,設(shè)計(jì)了兩通道測試腳本——AnalogSamps2Ch,實(shí)現(xiàn)了兩路電壓輸出,并實(shí)時(shí)采集通道1輸出的5 V斜坡電壓,當(dāng)其電壓最大值達(dá)到3 V時(shí)啟動通道2采集。

      設(shè)計(jì)采用NI公司的多通道高性能數(shù)據(jù)采集卡PCI-6259(設(shè)備名為Dev2)完成數(shù)據(jù)輸出和采集,首先通道1和通道2分別由板卡端口ao0和ao1連續(xù)輸出5 V斜坡電壓和5 V正弦電壓信號,啟動通道1的ai0回采ao0的輸出信號;直到ai0采樣得到的電壓最大值等于3 V時(shí),配置ao0輸出3 V直流電壓,并啟動通道2的ai1回采ao1的輸出電壓;繪制兩路通道的波形圖,同時(shí)計(jì)算波形峰峰值、有效值、平均值等參數(shù)信息,經(jīng)延時(shí)10 s后停止測試任務(wù)。測試結(jié)果顯示界面如圖5,點(diǎn)擊“腳本選擇”,從路徑中選擇測試腳本,并分別在編輯框中顯示腳本名稱和腳本語句,腳本執(zhí)行后,兩通道的波形數(shù)據(jù)顯示、配置信息、參數(shù)信息都由腳本解析得到并顯示在用戶界面中。

      從執(zhí)行結(jié)果可知,設(shè)計(jì)的基于腳本測試系統(tǒng)成功完成了腳本解析執(zhí)行,各項(xiàng)指標(biāo)和運(yùn)行狀態(tài)達(dá)到了期望,從而驗(yàn)證系統(tǒng)設(shè)計(jì)的可行性和通用性。

      5 結(jié)論

      本文設(shè)計(jì)并實(shí)現(xiàn)的基于腳本的通用ATS,具有靈活的編程方式和人性化的操作界面,可以滿足ATS中各類復(fù)雜的測試任務(wù)需求,而且基于腳本的設(shè)計(jì)編程方式簡單、靈活,具有較好的通用性和可擴(kuò)展性。

      [1]郭榮斌,趙秀才.自動測試系統(tǒng)的發(fā)展趨勢[J].國外電子測量技術(shù),2014,32(6):1-4.

      [2]呂曉峰,馬羚,馮小南.ATS軟件平臺的通用性研究與設(shè)計(jì)[J].計(jì)算機(jī)測量與控制,2012,20(2):538-540.

      [3]張杲軒,張誼,李春雷.基于腳本的自動化軟件測試框架[J].太赫茲科學(xué)與電子信息學(xué)報(bào),2013,11(5):797-801.

      [4]付瑩,黃曉晴,繆永生.通用測試軟件開發(fā)平臺的設(shè)計(jì)方法及應(yīng)用[J].計(jì)算機(jī)測量與控制,2014,22(12):4190-4193.

      [5]謝化勇,肖明清,陳偉明,等.某型導(dǎo)發(fā)架通用測試系統(tǒng)軟件復(fù)用性設(shè)計(jì) [J].火力與指揮控制,2010,35(1):156-159.

      [6]葉海明,周紹磊,王昆平.通用測試系統(tǒng)軟件平臺設(shè)計(jì)[J].國外電子測量技術(shù),2010(2):54-57.

      [7]劉陽,李璽.某型導(dǎo)彈測試系統(tǒng)模塊化設(shè)計(jì)[J].火力與指揮控制,2015,40(7):168-169.

      [8]黃威,聶藩,丁建完.關(guān)鍵字驅(qū)動的測試自動化框架模型與系統(tǒng)實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2012,22(4):57-60.

      [9]祁琳瑩,洪玫,馮麗云,等.一種針對單元測試框架的測試腳本重用方法 [J].計(jì)算機(jī)應(yīng)用研究,2013,30(6):1764-1768.

      [10]王軍,孟凡鵬.基于關(guān)鍵字驅(qū)動的自動化測試研究與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2012,33(9):3652-3656.

      [11]陳效儒,何宇化.關(guān)鍵字驅(qū)動的嵌入式實(shí)時(shí)軟件自動化測試框架研究[J].工業(yè)控制計(jì)算機(jī),2014(2):46-47.

      [12]李海龍,劉文文.基于VC++6.0的SCPI解釋器設(shè)計(jì)[J].電子設(shè)計(jì)工程,2012,20(4):94-96.

      [13]程專.數(shù)字示波器SCPI命令系統(tǒng)及程控軟件的設(shè)計(jì)與實(shí)現(xiàn)[D].成都:電子科技大學(xué),2014.

      猜你喜歡
      關(guān)鍵字腳本命令
      酒駕
      履職盡責(zé)求實(shí)效 真抓實(shí)干勇作為——十個(gè)關(guān)鍵字,盤點(diǎn)江蘇統(tǒng)戰(zhàn)的2021
      只聽主人的命令
      安奇奇與小cool 龍(第二回)
      成功避開“關(guān)鍵字”
      數(shù)據(jù)庫系統(tǒng)shell腳本應(yīng)用
      電子測試(2018年14期)2018-09-26 06:04:24
      移防命令下達(dá)后
      快樂假期
      這是人民的命令
      藍(lán)色命令
      共和县| 新沂市| 阜新| 云霄县| 新余市| 九寨沟县| 铜山县| 闽清县| 寿光市| 临清市| 遵义市| 山东| 广东省| 平远县| 海门市| 方城县| 和平区| 兴文县| 南平市| 岳西县| 土默特右旗| 广宁县| 礼泉县| 浏阳市| 武义县| 华容县| 白银市| 卢湾区| 永州市| 嘉义县| 凯里市| 建德市| 田阳县| 济宁市| 呼伦贝尔市| 长垣县| 仙桃市| 三穗县| 高淳县| 余江县| 慈溪市|