亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于VBA的快速測試自動化設(shè)計與實現(xiàn)

        2023-04-29 00:00:00王陰雨
        無線互聯(lián)科技 2023年17期

        摘要:文章針對雷達批生產(chǎn)中測試自動化的迫切需求,提出一種簡明實用的基于VBA編程環(huán)境、VISA標準庫和SCPI命令的自動化程序開發(fā)方法,以矢量網(wǎng)絡(luò)分析儀對射頻綜合網(wǎng)絡(luò)的測試為實例,闡述了開發(fā)流程和設(shè)計思路,使集成調(diào)試人員能夠靈活地根據(jù)被測產(chǎn)品自主完成編程,快速實現(xiàn)儀器程控、數(shù)據(jù)采集與處理分析、驗收測試報告數(shù)據(jù)的自動導(dǎo)入等。結(jié)果表明,使用該方法開發(fā)的測試自動化程序具有便利性、實用性、擴展性,大幅提升了測試效率。目前,已在實際工程中應(yīng)用。

        關(guān)鍵詞:VBA;VISA;SCPI;測試自動化

        中圖分類號:TP29文獻標志碼:A

        0 引 言

        隨著雷達技術(shù)的快速發(fā)展,為了提高大數(shù)據(jù)量和大批量產(chǎn)品的測試效率,測試自動化系統(tǒng)已經(jīng)廣泛應(yīng)用于批生產(chǎn)[1]。但定制化的測試系統(tǒng)產(chǎn)品覆蓋占比依舊很低,對非定制對象不具備兼容性,程序開發(fā)和更新需由專業(yè)軟件設(shè)計人員進行,開發(fā)成本高、周期長。

        批生產(chǎn)集成調(diào)試面對產(chǎn)品不斷更新的同時,還需保持出廠產(chǎn)品的售后維修支持,產(chǎn)品種類繁多,技術(shù)狀態(tài)迥異,專業(yè)涉及面廣,測試工作量大。使非軟件專業(yè)的集成調(diào)試人員具備自主開發(fā)能力,靈活地針對測試產(chǎn)品快速實現(xiàn)測試自動化是提高效率的必要手段之一。

        本文以矢量網(wǎng)絡(luò)分析儀對射頻綜合網(wǎng)絡(luò)的測試為實例,詳細闡述基于VBA編程環(huán)境、虛擬儀器軟件體系結(jié)構(gòu)(Virtual Instrument Software Architecture,VISA)標準庫和SCPI命令快速完成測試自動化程序開發(fā)的方法,實現(xiàn)儀器程控、數(shù)據(jù)采集與處理分析,并自動將數(shù)據(jù)導(dǎo)出至驗收測試報告。軟硬件構(gòu)架及工作流程如圖1所示。

        1 開發(fā)環(huán)境設(shè)置

        1.1 VBA

        VBA(Visual Basic for Applications)是基于VB(Visual Basic for Windows)發(fā)展而來的,與VB一樣是屬于面向?qū)ο蟮木幊陶Z言。在批生產(chǎn)集成調(diào)試中,基于VBA實現(xiàn)自動化開發(fā)有以下優(yōu)點[2]:

        (1)不需要單獨安裝IDE(集成開發(fā)環(huán)境),直接使用嵌套在Excel、Word等Office軟件開發(fā)工具中的VBA編程器進行編程;對上位機的軟、硬件配置要求也比較低(Windows7及Office2010足以滿足編程需求),可以充分地利用現(xiàn)有計算機硬件資源。

        (2)VBA的語法結(jié)構(gòu)與VB相似,編程環(huán)境在Office軟件內(nèi),對非軟件設(shè)計專業(yè)的集成調(diào)試人員而言相對簡單易學(xué),配合宏錄制功能,能夠在短時間內(nèi)完成程序編程,開發(fā)周期短。

        (3)VBA可以靈活地調(diào)用Office軟件自帶的函數(shù)和圖表功能,直接使用Excel進行數(shù)據(jù)的存儲和處理分析,無需安裝額外的數(shù)據(jù)處理軟件。

        (4)使用VBA可以方便地在Office軟件之間進行數(shù)據(jù)交互,采集到的數(shù)據(jù)經(jīng)過Excel分析處理后可直接導(dǎo)出至Word,生成驗收測試報告。

        1.2 VISA

        VISA 提供了簡單易用的控制函數(shù)集,具有完備的儀器控制功能與資源管理[3]。通過安裝Agilent/Keysight IO Libraries Suite,在Excel的VBA編輯器菜單欄“工具-引用”選項中,勾選 “VISA-COM Type Library”,即可調(diào)用VISA的函數(shù)庫[4]。

        1.3 SCPI

        可編程儀器標準命令(Standard Command for Program Instrument,SCPI)是為解決程控儀器標準化而制定的標準程控語言[5]。SCPI分為通用命令和儀器指定命令[6]。通用命令主要用來控制儀器復(fù)位、自檢以及狀態(tài)查詢等,該組命令以“*”開始;儀器指定命令用來進行測量、讀取數(shù)據(jù)等操作以及控制儀器的設(shè)置,通過廠家提供的程控手冊可以查詢、獲取對應(yīng)儀器的詳細命令集。

        2 軟件設(shè)計實現(xiàn)

        2.1 程序主界面設(shè)計

        在Excel軟件中使用組合鍵Alt+F11打開VBA編輯界面,在VBAProject中插入用戶窗體,利用工具箱中自帶的框架、文本框、選擇框、命令按鈕等窗體控件,可以快速地完成程序主界面的布局設(shè)計。

        程序主界面如圖2所示,分為顯示器、儀表控制、數(shù)據(jù)采集、數(shù)據(jù)分析、文件處理5個框架模塊。

        顯示器為程序響應(yīng)信息的顯示窗口,如儀表的連接狀態(tài)、打開文件的路徑名稱信息、報錯信息等。

        儀表控制為儀器通信連接方式的選擇、測試參數(shù)設(shè)置、窗口設(shè)置以及常用的儀表功能設(shè)置。根據(jù)測試產(chǎn)品的技術(shù)指標不同,可以使用分頁進行管理。

        數(shù)據(jù)采集通過按鈕點擊響應(yīng),可顯示累計采集次數(shù)。對誤操作的采集數(shù)據(jù),可以通過指定行號刪除。工作表的首行為采樣頻點,可一鍵實現(xiàn)隱藏和顯示。

        數(shù)據(jù)分析根據(jù)測試產(chǎn)品的實際需求定制,主要展示關(guān)鍵指標的測量和計算結(jié)果,在工作表中對指定數(shù)據(jù)進行自動篩選、定位和標記,一鍵生成圖表等。

        文件處理完成數(shù)據(jù)的導(dǎo)出、保存和回調(diào)。

        主程序保存在xlsm格式的Excel文件內(nèi),在ThisWorkbook中輸入以下代碼,實現(xiàn)打開Excel工作簿自動彈出程序主界面:

        Sub workbook_open()

        UserForm1.Show (0)

        End Sub

        2.2 儀器連接

        為了適應(yīng)新的通信技術(shù)發(fā)展,儀器廠家逐步在推廣LAN接口的儀器,但GPIB接口仍是目前被廣泛使用的儀器程控接口,利用VISA與接口無關(guān)的特性[7],使用一套程序可以通過這兩種方式與儀器進行通信。GPIB接口采用USB-GPIB轉(zhuǎn)換器、LAN口通過網(wǎng)線與主控計算機相連,在鏈接地址文本框中修改目標儀器的GPIB地址或IP地址就能完成連接,連接成功后在程序主界面顯示器內(nèi)顯示儀器的出廠信息。實現(xiàn)與儀器連接通信的核心代碼如下:

        '聲明VNA(矢網(wǎng))為VISA的一個對象(設(shè)備)

        Public VNA As VisaComLib.FormattedIO488

        '連接儀器并接收反饋信息

        '聲明IOManager為VISA的一個對象(資源管理器)

        Dim IOManager As VisaComLib.ResourceManager

        '連接不成功跳轉(zhuǎn)至錯誤提示

        On Error GoTo Error1

        '建立資源管理器和設(shè)備實例

        Set IOManager = New VisaComLib.ResourceManager

        Set VNA = New VisaComLib.FormattedIO488

        '發(fā)送地址碼連接儀器

        Set VNA.IO = IOManager.Open(GPIB地址或IP地址)

        '詢問儀器信息并將反饋信息顯示在顯示器

        VNA.WriteString (\"*IDN?\")

        TextBox1.Text = (\"連接成功!儀表信息如下:\" amp; Chr(10) amp; VNA.ReadString)

        Exit Sub

        Error1:

        '連接不成功提示

        TextBox1.Text = (\"連接不成功!請檢查連接方式和儀表地址。\")

        2.3 儀器設(shè)置

        根據(jù)實際測試儀器設(shè)計相應(yīng)的控制界面,本案例測試儀器為網(wǎng)絡(luò)分析儀,主要進行S參數(shù)測量,設(shè)置了4個窗口WIND1~ WIND4分別顯示軌跡trc1~trc4,顯示格式可以通過下拉選項選擇,測量參數(shù)默認分別設(shè)為S21幅度、S21相位、S11輸入駐波和S22輸出駐波。通過以下代碼對窗口、軌跡、測量格式、功能參數(shù)、起止頻率進行設(shè)置:

        '窗口設(shè)置

        With VNA

        '初始化儀器

        .WriteString (\"*RST\")

        .WriteString (\"CONF:CHAN1:STAT OFF\")

        '設(shè)置軌跡1測量為S21

        .WriteString (\"CALC:PAR:SDEF 'trc1','s21'\")

        '讀取下拉列表設(shè)置數(shù)據(jù)格式

        .WriteString (\"CALC:FORM\" amp; Space(1) amp; (Combox1.Text))

        '打開窗口1

        .WriteString (\"DISP:WIND1:STAT ON\")

        '打開軌跡1

        .WriteString (\"DISP:WIND1:TRAC:FEED 'trc1'\")

        '讀取文本框數(shù)值設(shè)置比例值

        .WriteString (\"DISP:WIND1:TRAC:Y:PDIV \" amp; Str(TextBox16.Text))

        End With

        '功能設(shè)置

        With VNA

        '選擇軌跡1

        .WriteString (\"CALC:PAR:SEL trc1\")

        '功率電平設(shè)置

        .WriteString (\"SOUR:POW\" amp; Space(1) amp; Str(TextBox11.Text) amp; \"dBm\")

        '平滑功能打開

        .WriteString (\"CALC:SMO:STAT ON\")

        '平滑值設(shè)置

        .WriteString (\"CALC:SMO:APER\" amp; Str(TextBox12.Text))

        '掃描點數(shù)量設(shè)置

        .WriteString (\"SWE:POIN\" amp; Str(TextBox13.Text))

        End With

        '頻率設(shè)置

        '聲明開始頻率、終止頻率、頻率間隔變量

        Dim fstart, fstop, interval As Single

        '聲明采集點數(shù)變量

        Dim i, points As Integer

        '清空工作表

        For i = 1 To 4

        Sheets(i).UsedRange.Rows.Clear

        Next

        '從文本框讀取起止頻率和采集點數(shù)

        fstart = TextBox8.Text

        fstop = TextBox9.Text

        points = TextBox10.Text

        '根據(jù)采集點數(shù)計算間隔

        interval = (fstop-fstart) / (points-1)

        '在工作表首行自動寫入采樣頻點

        For i = 1 To points

        Sheet1.Cells(1, i) = fstart + interval * (i-1)

        Next

        '以MHz為單位設(shè)置儀器的起止頻率

        With VNA

        .WriteString (\"FREQ:STAR\" amp; Str$(TextBox8.Text) amp; \"MHz\")

        .WriteString (\"FREQ:STOP\" amp; Str$(TextBox9.Text) amp; \"MHz\")

        End With

        2.4 數(shù)據(jù)采集

        通過點擊按鈕觸發(fā)數(shù)據(jù)采集命令,4個窗口采集到的數(shù)據(jù)直接存儲到工作簿內(nèi)對應(yīng)的4個Sheet(工作表)。核心代碼如下:

        '數(shù)據(jù)采集

        Dim i, points As Integer

        '讀取采樣點數(shù)

        points = TextBox10.Text

        For i = 1 To points

        With VNA

        '選擇軌跡,打開光標

        .WriteString (\"CALC:PAR:SEL trc1\")

        .WriteString (\"CALC:MARK1 ON\")

        '按工作表首行頻點設(shè)置光標頻率

        .WriteString (\"CALC:MARK1:X\" amp; Str$(Cells(1, i)) amp; \"MHz\")

        '讀取光標數(shù)值

        .WriteString (\"CALC:MARK1:Y?\")

        '存儲數(shù)據(jù)到工作表

        Sheet1.Cells(times + 1, i) = Format$(VNA.ReadString, \"Fixed\")

        End With

        Next

        '顯示采集累計次數(shù)

        times = times + 1

        TextBox15.Text = times

        2.5 數(shù)據(jù)分析

        幅相一致性是本案例射頻綜合網(wǎng)絡(luò)的主要技術(shù)指標,如圖3所示,使用VBA調(diào)用Excel函數(shù)可以方便地查找出數(shù)據(jù)內(nèi)的最大值、最小值,計算出起伏值,并以紅藍顏色字體在工作表中醒目地標記出所在位置,配合一鍵生成的折線圖可以輔助調(diào)試人員快速進行數(shù)值定位和數(shù)據(jù)分析。核心代碼如下:

        '查找最大值、最小值,計算起伏

        TextBox20.Text = WorksheetFunction. Max(Sheet1.UsedRange.Rows.Offset(1, 0))

        TextBox21.Text = WorksheetFunction. Min(Sheet1.UsedRange.Rows.Offset(1, 0))

        TextBox22.Text = ((TextBox20.Text – TextBox21.Text) / 2)

        '通過條件格式規(guī)則查找極值位置并以紅藍字體標記

        ActiveSheet.UsedRange.Rows.Offset(1, 0).Select

        Selection.FormatConditions.AddTop10

        Selection.FormatConditions _

        (Selection.FormatConditions.Count).SetFirstPriority

        With Selection.FormatConditions(1)

        .TopBottom = xlTop10Top

        .Rank = 1

        .Font.Color = RGB(255, 0, 0)

        End With

        With Selection.FormatConditions(2)

        .TopBottom = xlTop10Bottom

        .Rank = 1

        .Font.Color = RGB(0, 0, 255)

        End With

        '選擇數(shù)據(jù)區(qū)域,生成折線圖

        ActiveSheet.Shapes.AddChart.Select

        ActiveChart.SetSourceData Source:= _

        ActiveSheet.UsedRange.Rows.Offset(1, 0)

        ActiveChart.ChartType = xlLine

        2.6 文件處理

        VBA將Office軟件中的對象按層次結(jié)構(gòu)有邏輯地組織在一起,如Excel中的工作簿、工作表、單元格范圍(行、列)等;Word中的文檔、段落、字符、表格等。通過對這些對象的操作,VBA可以方便地在Office軟件間進行數(shù)據(jù)交互。如圖4所示,需將Excel中測得的幅相數(shù)據(jù)導(dǎo)出至Word驗收測試報告,按層次結(jié)構(gòu)梳理目標對象為Word文檔內(nèi)第2個表格,從第3行2列至第23行7列范圍;輸出對象為Excel工作簿sheet1、sheet2工作表前3列第2行至第21行。每列還做了幅相一致性的計算,用VBA命令將輸入輸出對象關(guān)聯(lián),即可實現(xiàn)數(shù)據(jù)一鍵導(dǎo)出。核心代碼如下:

        Dim wordobj, worddoc As Object

        Dim i As Integer

        Dim amax, amin As Single

        '打開目標Word文檔

        Set wordobj = CreateObject (\"word.application\")

        wordobj.Visible = True

        Set worddoc = wordobj.Documents.Open(ThisWorkbook.Path amp; \"\驗收測試報告.doc\")

        '將Ecxel工作表內(nèi)數(shù)據(jù)導(dǎo)出至Word文檔內(nèi)指定表格位置

        For i = 1 To 20 Step 1

        With worddoc

        .Tables(2).Cell(i + 2, 2).Range = Sheet1.Cells(i + 1, 1).Value

        .Tables(2).Cell(i + 2, 3).Range = Sheet1.Cells(i + 1, 2).Value

        .Tables(2).Cell(i + 2, 4).Range = Sheet1.Cells(i + 1, 3).Value

        .Tables(2).Cell(i + 2, 5).Range = Sheet2.Cells(i + 1, 1).Value

        .Tables(2).Cell(i + 2, 6).Range = Sheet2.Cells(i + 1, 2).Value

        .Tables(2).Cell(i + 2, 7).Range = Sheet2.Cells(i + 1, 3).Value

        End With

        Next

        '計算幅相一致性, 導(dǎo)出至Word文檔內(nèi)指定表格位置

        amax = WorksheetFunction.Max (Sheet1.Range(\"a2:a21\"))

        amin = WorksheetFunction.Min (Sheet1.Range(\"a2:a21\"))

        worddoc.Tables(2).Cell(23, 2).Range = Format((amax-amin) / 2, \"fixed\")

        3 應(yīng)用效果

        本文案例中矢量網(wǎng)絡(luò)分析儀對射頻綜合網(wǎng)絡(luò)的測試結(jié)果表明,基于VBA編程環(huán)境的測試自動化程序開發(fā)周期短,系統(tǒng)運行穩(wěn)定,數(shù)據(jù)采集高效,數(shù)據(jù)處理分析簡便直觀,一份驗收測試報告的數(shù)據(jù)導(dǎo)入,手動處理需30 min以上,自動化導(dǎo)入縮短至5 s以內(nèi),大大提高了工作效率,也避免了人為誤差。目前,儀器的程控開發(fā)已擴展至頻譜儀、示波器、功率計、信號源等,針對不同被測產(chǎn)品完善數(shù)據(jù)處理模塊,已應(yīng)用于多個型號微波組件和頻率源的測試工作。

        4 結(jié)語

        本文以實例論證了基于VBA編程環(huán)境實現(xiàn)測試自動化的便利性和實用性,程序?qū)x器的連接、參數(shù)的設(shè)置、數(shù)據(jù)的采集、數(shù)據(jù)的分析和數(shù)據(jù)的導(dǎo)出幾個關(guān)鍵功能設(shè)計為模塊化,參考代碼完整、釋義詳盡、方便移植,通過適當?shù)男薷?,可以靈活快速地適配應(yīng)用于其他儀器和產(chǎn)品,為雷達集成調(diào)試中自動化開發(fā)提供了一種便捷的設(shè)計實現(xiàn)方法。

        參考文獻

        [1]裴英.雷達數(shù)字T/R組件自動測試系統(tǒng)設(shè)計[J].現(xiàn)代雷達,2013(6):73-76.

        [2]焦萍萍,周顯春.EXCEL中的VBA程序設(shè)計[J].電腦知識與技術(shù),2016(11):63-64.

        [3]柴松剛,董緒豐,林禾,等.基于VBA的光電探測器RC參數(shù)測試技術(shù)研究[J].電子技術(shù),2020(8):4-7.

        [4]馮蕾潔,韓應(yīng)征,王娟.基于動態(tài)頻率選擇技術(shù)的射頻自動測試系統(tǒng)[J].制造業(yè)自動化,2014(1):124-131.

        [5]徐利,張良國.基于VISA_COM的測量儀器通用測試系統(tǒng)的開發(fā)[J].計算機測量與控制,2015(10):3297-3300.

        [6]劉陽,羅顯志,周楊羅.基于FPGA的IEEE488接口協(xié)議實現(xiàn)及驅(qū)動程序開發(fā)[J].計算機測量與控制,2022(8):134-141.

        [7]林立杰,耿濤,程剛,等.基于VC++6.0的泰克數(shù)字示波器應(yīng)用類設(shè)計[J].太赫茲科學(xué)與電子信息學(xué)報,2016(3):432-437.

        Design and implementation of rapid test automation based on VBA

        WangYinyu

        (Nanjing Research Institute of Electronic Technology, Nanjing 210039, China)

        Abstract:For the urgent need of test automation in radar batch production, this paper presents a concise and practical method of automation program development based on VBA programming environment, VISA standard library and SCPI commands, taking the testing of an RF synthetic network by a vector network analyzer as an example, it helps engineers complete programming flexibly according to the product, rapid implement instrument programming control, data acquisition and processing analysis, automatic import of acceptance test report data,etc. The results show that the testing automation program developed using this method has convenience, practicality and scalability, greatly improving testing efficiency. At present, it has been put into practical engineering applications.

        Key words: VBA; VISA; SCPI; test automation

        天天躁日日躁狠狠躁av中文| 真实夫妻露脸爱视频九色网| 亚洲乱码中文字幕久久孕妇黑人 | 处破痛哭a√18成年片免费| 国产精品入口蜜桃人妻| 偷拍与自偷拍亚洲精品| 国产一区二区三区在线综合视频 | 无遮挡激情视频国产在线观看| 日本黄色影院一区二区免费看| 热99re久久精品这里都是精品免费| 欧美大黑帍在线播放| 国产欧美日韩不卡一区二区三区 | 国产午夜精品一区二区三区| 国产精品一区二区在线观看99| 日韩精品国产一区二区| 中文字幕乱码在线人妻| 国产探花在线精品一区二区| 国产免费av片在线观看麻豆| 成人一区二区三区蜜桃| 日韩精品综合一本久道在线视频| 国产麻豆精品一区| 精品国产91久久综合| 亚洲精品一区二在线观看| 国产精品h片在线播放| 免费无码成人av在线播放不卡| 久久久亚洲欧洲日产国码是AV| 北条麻妃在线中文字幕| 久久国产亚洲高清观看| 国产污污视频| 中文字幕一区二区三区精品在线| 国产无套中出学生姝| 三上悠亚久久精品| 国产爆乳乱码女大生Av| 成人av在线免费播放| 少妇真实被内射视频三四区| 老头巨大挺进莹莹的体内免费视频| 亚洲国产成人手机在线观看| 中文字幕乱码在线婷婷| 国产av国片精品有毛| 中文幕无线码中文字蜜桃| 国产三级国产精品国产专区 |