經(jīng)典案例
  • 金融大數(shù)據(jù)解決方案
  • 汽車大數(shù)據(jù)解決方案
  • 政府大數(shù)據(jù)解決方案
  • 鐵路大數(shù)據(jù)解決方案
  • 電力大數(shù)據(jù)解決方案
  • 軍工大數(shù)據(jù)解決方案
  • 解放軍總裝備部
  • 中國航天科工集團(tuán)
  • 航天科技集團(tuán)

電子備件高頻信號通用測試平臺

發(fā)布于:2020-01-03 20:36來源:北京軟件開發(fā)公司 作者:北京大數(shù)據(jù)公司 點擊:
北京軟件開發(fā)公司----電子備件高頻信號通用測試平臺

1整個結(jié)構(gòu)設(shè)計

 
 圖 1  原理結(jié)構(gòu)圖
 

2軟件整體結(jié)構(gòu)流程圖

 
圖2 軟件整體流程圖
 

3模塊詳細(xì)設(shè)計說明


3.1  與通用測試平臺的交互

通用測試平臺是一個多功能的虛擬環(huán)境測試軟件平臺,具備強(qiáng)大的TPS功能。二次封裝的DLL文件將被通用測試平臺調(diào)用,調(diào)用的過程如下:

  1. 打開通用測試平臺
  2. 打開通用測試平臺中的“IVI儀器管理”
  3. 將二次封裝的DLL文件,加入到通用測試平臺的模塊路徑中,這樣便與通用測試平臺對接起來。
 
 
 
圖3 在通用測試平臺的“IVI儀器管理”中加載二次封裝的DLL文件
 
 
3.2  加載二次封裝的驅(qū)動庫


3.2.1硬件驅(qū)動程序的二次封裝

作為上層應(yīng)用和測試儀器驅(qū)動程序之間的適配器,根據(jù)各個檢測功能,對廠商提供的驅(qū)動程序進(jìn)行封裝,包括:33250A(Agilent)、N5183A(Agilent)、5500A(FLUKE)、53148A(Agilent)、MSO7054B(Agilent)、N9020A-526(Agilent)、34410A(Agilent)七種儀器,每種儀器封裝為一個DLL,向上層應(yīng)用提供一個調(diào)用接口,方便上層應(yīng)用統(tǒng)一調(diào)用,這些接口包括但不限于:加載、接口查詢、各個檢測功能接口,獲得錯誤類型,卸載等接口。
儀器模塊有FLUKE、53148A(Agilent)、MSO7054B(Agilent)、N9020A-526(Agilent)、34410A(Agilent)。
儀器驅(qū)動由任務(wù)提出方提供,每臺儀器實現(xiàn)的功能如下表1所示:北京大數(shù)據(jù)公司

 

序號 儀器名稱 功能 封裝要求
1 33250A 輸出波形 正弦波、方波、斜波、脈沖 要求對左側(cè)所列功能可配置
頻率范圍 輸出波形:1μHz~80MHz(正弦波、方波);500μ~50MHz(脈沖);1μHz~25MHz(任意波)
垂直精度:12bit
調(diào)制方式 調(diào)幅、調(diào)相、調(diào)頻、FSK
2
 
N5183A,附件N5183A-532、N5183A-1EA、N5183A-UNU、N5183A-UNT 和N5183A-1E1 輸入頻率范圍 100kHz~31.8GHz 要求左側(cè)所列 功能可配置
頻率分辨率 0.01Hz
輸出功率 -90dBM~+12dBm
頻率開關(guān)速度 ≤900μs
調(diào)制方式 AM、FM、φM、脈沖
3 5500A 直流電壓輸出 0~±1020V 要求對左側(cè)所列功能可配置
直流電流輸出 0~±11A
電阻輸出 0~329.99MΩ
交流電壓輸出 1mV~1020V,10Hz~500kHz,正弦波
交流電流輸出 29mA~11A,10Hz~10kHz,正弦波
電容輸出 0.33nF~1.1mF
熱電偶源和測量 -250℃~+2316℃
RTD源 -200℃~+630℃
4 53148A 通道數(shù) 1 頻率測試,功率測試,頻率穩(wěn)定度,功率穩(wěn)定度
頻率范圍 50MHz~26.5GHz
功率范圍 -70dBm~+20dBm
精度 ±50mVDVM
5 MSO7054B 示波器通道 4 波形分析,要求能夠測試頻率,周期,峰值,最大值,最小值,上升沿持續(xù)時間、下降沿持續(xù)時間、占空比、
帶寬 500MHz
采樣率 4GSa/s
測試 頻率,峰峰值,最大值,最小值
存儲深度 8Mpts
垂直分辨率 8bit
6 N9020A-526,附件N9068A-2FP(負(fù)責(zé)相位噪聲測試的軟件組件) 頻率范圍 20Hz~26.5GHz 頻譜儀,可測量相位噪聲、噪聲系數(shù)、噪聲系數(shù)穩(wěn)定度,相位噪聲穩(wěn)定度
絕對幅度精度 0.3dB
第三階截距 +15dBm
顯示的平均噪聲電平 -154dBm/Hz
W-CDMAACLR動態(tài)范圍 78dB
標(biāo)記峰值搜索速度 5ms
測量/模式切換速度 75ms
分析帶寬 25MHz
7 34410A 直流電壓 100mV~1000V 可測試直流電壓、直流電流、電阻測試、交流電壓交流電流、二極管導(dǎo)通測試、頻率測試、電容測試
直流電流 100
電阻測試 100Ω~1000MΩ
交流電壓 100mV~750V
3Hz~300KHz
交流電流 100μA~3A
3Hz~10KHz
二極管導(dǎo)通測試  
頻率測試 3Hz~300KHz
電容測試 1nF~10uF
 
表1  儀器驅(qū)動封裝列表
 
以某數(shù)字IO儀器模塊為例:該儀器模塊有很多函數(shù),但我們使用時將函數(shù)分成三個:初始化儀器、測試儀器、關(guān)閉儀器。對驅(qū)動程序二次封裝,封裝為若干主要接口函數(shù),如:InitInstrument( )TestInstrument()、CloseInstrument()、GetResultDataType( )、GetLastConfig()、GetDriverVersion( )等等。在初始化儀器時,我們將配置儀器的參數(shù),如:通道選擇(Channel)、IO輸出方向(輸入或輸出)、狀態(tài)(置高或置低)等,在測試函數(shù)中有返回的測量結(jié)果,該結(jié)果將在通用測試平臺中顯示出來。
對硬件驅(qū)動程序的二次封裝的詳細(xì)過程如下:
需要先加載硬件本身自帶的驅(qū)動動態(tài)庫文件,加載過程如下:
一般的動態(tài)庫有三個文件,分別為.h頭文件、DLL庫文件、Lib文件。
*.lib是索引文件,用來保存DLL庫文件函數(shù)一些索引信息。
封裝硬件原始驅(qū)動程序時,需要將這三個文件配置到軟件開發(fā)環(huán)境中。將這三個文件加入的軟件的開發(fā)環(huán)境中(這里使用VC6.0)。

 
流程圖如下:
 
 
圖4  加載硬件本身驅(qū)動程序的過程
 
詳細(xì)過程步驟如下:

 
第一步,打開軟件開發(fā)環(huán)境VC6.0,如下圖:
 
 
圖5  打開VC6.0 軟件開發(fā)環(huán)境的Project菜單項
 
 
第二步,加入*.lib文件,如下圖:
 
 
圖7 在Project的Setting設(shè)置項的Link中加入*.lib文件
 
 
第三步,加載*.h頭文件
 
 
圖8  在程序里加入*.h文件和相關(guān)的頭文件
 
 
第四步 實現(xiàn)各函數(shù)的功能
1、初始化儀器InitInstr函數(shù)的實現(xiàn):
 
/**********************************************************************************/ //  模塊功能:初始化儀器
//  參數(shù)說明:
//  int iInstrID,標(biāo)識用于傳入數(shù)據(jù)的儀器ID
//  char* cAddress,標(biāo)識用于傳入數(shù)據(jù)的儀器地址;指針為空,則使用上次地址.
//  bool  bSimulate,標(biāo)識是否是仿真執(zhí)行;仿真為真時,可不指定 儀器ID 和 儀器地址 。
//  返 回 值:BOOL,返回初始化結(jié)果;TRUE,初始化成功;FALSE,失敗,錯誤信息通過
//  GetError()函數(shù)獲取。
//  unsigned  long   hHandle 儀器句柄
//  備 注:IVI驅(qū)動使用 儀器ID(邏輯名稱);普通驅(qū)動使用 儀器地址
****************************************************************************/
BOOL  InitInstr(int  iInstrID, char* cAddress, BOOL  bSimulate)
{
//調(diào)用Aglient公司的硬件本身的驅(qū)動程序接口
         If (VI_SUCCESS == Aglient_ N5183A_Init(“PXI6::5::INSTR”,  &g_hHandle ) )
{
       Return TRUE;
}
Else
{
       Return FALSE;
}
}
2、執(zhí)行測試儀器的功能或性能的InstrExecute函數(shù)的實現(xiàn):
 
Int  IntstExecture(unsigned long hHandle,  char *cParamList)
{
       //char *類型的配置數(shù)據(jù)轉(zhuǎn)換字符串類型,以便于解析
       CString sParamlist = cParamList; 
 
       //獲取儀器參數(shù)設(shè)置
CString param1 =  GetParamFromList(sParamlist, sKey1);
CString param1 =  GetParamFromList(sParamlist, sKey2);
……..
………
      
       //調(diào)用硬件本身的驅(qū)動程序接口,并將參數(shù)傳入接口,開始真正的測試執(zhí)行
       If  (Aglient_ N5183A_EXE(param1,  param1)  == SUCCESS)
       {
              //執(zhí)行成功,則獲取要測量的數(shù)據(jù)
              If  (Aglient_ N5183A_GetData ( &ResultData ))
              {
Return  ResultData;
}
Else
{
Return  0;
}
             
}
Else
{
       //執(zhí)行失敗,則獲取錯誤號
       lastError  =  GetLastError();
}
Return  lastError;
}
 
其他函數(shù)的實現(xiàn)與上述類似。
所有的函數(shù)以表格列出:

序號 函數(shù)名稱 函數(shù)參數(shù) 函數(shù)功能 返回值 備注
1 InitInstr   初始化儀器 BOOL  
2 InstrExecute   執(zhí)行測試 int  
3 CloseInstr   關(guān)閉儀器 BOOL  
4 ResetInstr   復(fù)位儀器 BOOL  
5 GetLastError   獲取最后一次發(fā)生的錯誤信息 BOOL  
6 GetResultDataType   獲取結(jié)果數(shù)據(jù)類型 BOOL  
7 GetResultDataInt   返回指定測試結(jié)果的整形數(shù)值 BOOL  
8 GetResultDataDouble   返回指定測試結(jié)果的浮點數(shù)值 BOOL  
9 GetResultDataBool   返回指定測試結(jié)果的布爾數(shù)值 BOOL  
10          
11 GetResultDataChar   返回指定測試結(jié)果的字符數(shù)值 BOOL  
12 GetResultDataDoubleArraySize   返回指定測試結(jié)果的浮點數(shù)組的大小 BOOL  
13 GetResultDataDoubleArrayValue   返回指定測試結(jié)果的浮點數(shù)組的值 BOOL  
14 GetResultDataIntArraySize   返回指定測試結(jié)果的整型數(shù)組的大小 BOOL  
15 GetResultDataIntArrayValue   返回指定測試結(jié)果的整型數(shù)組的值 BOOL  
16 GetResultDataBoolArray_Size   返回指定測試結(jié)果的布爾數(shù)組的大小 BOOL  
17 GetResultDataBoolArrayValue   返回指定測試結(jié)果的布爾數(shù)組的值 BOOL  
18 GetResultDataCharArraySize   返回指定測試結(jié)果的字符數(shù)組的大小 BOOL  
19 GetResultDataCharArrayValue   返回指定測試結(jié)果的字符數(shù)組的值 BOOL  
 
表2  二次封裝DLL的接口函數(shù)列表
 
3.3用戶管理
3.3.1權(quán)限分級
第一級,超級管理員,擁有所有權(quán)限,可以刪除、添加、用戶及修改用戶權(quán)限。也能管理測試流程,比如添加、刪除、修改測試流程。
第二級,普通管理員,能管理測試流程,比如添加、刪除、修改測試流程。
第三級,普通用戶,只能執(zhí)行測試流程。本軟件不需要具備編寫測試流程的功能,測試流程在通用測試平臺中編寫。
 
 
圖8 用戶管理流程圖
 
圖9 用戶管理效果圖
 
 
3.3.2權(quán)限分配過程
將軟件界面(見圖10)上配置的用戶權(quán)限與權(quán)限結(jié)構(gòu)體對應(yīng),如果選擇了某項權(quán)限時,結(jié)構(gòu)體中的成員變量值再被賦值為1。
當(dāng)某一個用戶執(zhí)行某操作時,首先判斷用戶信息中的權(quán)限結(jié)構(gòu)體的值,當(dāng)值為TRUE 時表示用戶有權(quán)限,可以執(zhí)行操作,否則拒絕用戶執(zhí)行操作。
定義權(quán)限結(jié)構(gòu)體
Typedef   Rights
{
BOOL  AddUUT;        //添加UUT
BOOL  ModifyUUT;     //修改UUT
BOOL  TestExecute;      //測試執(zhí)行
BOOL  AddUser;        //添加用戶
BOOL  DeleteUser;      //刪除用戶
BOOL  DeleteUUT;      //刪除UUT
} Rights;
 
 
圖 10  讀取權(quán)限的流程圖
 
軟件界面配置與權(quán)限結(jié)構(gòu)的對應(yīng)過程:
將界面上的配置信息保存到數(shù)據(jù),用戶登錄軟件時,用戶信息(主要是權(quán)限信息)從數(shù)據(jù)庫中讀出來。這時,我們定義一個權(quán)限結(jié)構(gòu)體,把權(quán)限信息的值賦給權(quán)限結(jié)構(gòu)體。
Rights   admininstrator;    //定義一個有系統(tǒng)管理員權(quán)限的結(jié)構(gòu)體變量
admininstrator. AddUUT     =  TRUE;   //分配添加UUT的權(quán)限
admininstrator. ModifyUUT   =  TRUE;   //分配修改UUT的權(quán)限
admininstrator. TestExecute   =  TRUE;   //分配測試執(zhí)行的權(quán)限
admininstrator. AddUser      =  TRUE;   //分配添加用戶的權(quán)限
admininstrator. DeleteUser    =  TRUE;   //分配刪除用戶的權(quán)限
admininstrator. DeleteUUT    =  TRUE;   //分配刪除UUT的權(quán)限

4 功能測試模塊

4.1權(quán)限分配過程
       功能測試模塊用于運行一個包括了多個被測對象功能的測試流程集。測試流程集是由任務(wù)提出方通過通用測試平臺和完成,由任務(wù)承擔(dān)方通過編寫功能測試模塊來負(fù)責(zé)管理和運行。北京大數(shù)據(jù)公司。
       功能測試模塊的流程管理主要包括以下內(nèi)容:

  • 流程的名稱;
  • 流程的路徑;
  • 流程的功能
對以上這些內(nèi)容要求可顯示(采用列表方式)并可更改。同時要求對流程的數(shù)量可以增加、刪減,并可調(diào)整流程之間的順序。
功能測試模塊在運行測試流程時,要求調(diào)用任務(wù)提出方提供的通用測試平臺的ActiveX組件,將相關(guān)的功能模塊嵌入本軟件系統(tǒng)中。該組件可以根據(jù)測試任務(wù)進(jìn)行操作提醒、過程顯示等,組件的具體實現(xiàn)方式由任務(wù)提出方負(fù)責(zé)指導(dǎo)承擔(dān)方完成。
圖 13 功能控制模塊
用戶權(quán)限控制管理。
軟件模塊控制管理。
軟件模塊功能調(diào)用包括:功能測試的選擇、性能測試的選擇、測試數(shù)據(jù)庫調(diào)用選擇、質(zhì)量評估的選擇和接口函數(shù)庫的管理。

6 測試數(shù)據(jù)庫模塊設(shè)計說明

6.1.1模塊描述

測試數(shù)據(jù)庫的管理由任務(wù)提出方負(fù)責(zé)完成,本軟件的承擔(dān)方要求能夠調(diào)用提出方提供的可執(zhí)行文件。

圖 14 數(shù)據(jù)庫類之間的關(guān)系圖

7 質(zhì)量評估模塊設(shè)計說明

7.1.1模塊描述

質(zhì)量評估模塊分為專家只是生產(chǎn)和故障分析兩個子模塊,這兩個部分均由任務(wù)提出方負(fù)責(zé)完成,并提供可執(zhí)行文件。要求本軟件承擔(dān)方在設(shè)計時,可選擇調(diào)用不同的子模塊。

7.2.1功能

接口函數(shù)庫負(fù)責(zé)將點子備件高頻信號設(shè)備中各種儀器設(shè)備的驅(qū)動接口二次封裝成統(tǒng)一格式的函數(shù)調(diào)用接口,供功能測試和性能測試模塊的調(diào)用。
  功能測試和性能測試包括了典型功能和性能蠶食的測試流程,選擇運行響應(yīng)的測試流程,并通過盜用接口函數(shù)庫控制響應(yīng)儀器設(shè)備完成各項預(yù)定測試,同時將測試數(shù)據(jù)和結(jié)果傳送給測試數(shù)據(jù)庫進(jìn)行管理。
  測試數(shù)據(jù)庫對功能測試和性能測試獲取的測試數(shù)據(jù)進(jìn)行管理,主要包括被測對象功能(性能)測試所需的供電激勵、連接路徑、檢測參數(shù)類型、測量結(jié)果標(biāo)準(zhǔn)值、檢測門限及結(jié)論等。
   質(zhì)量評估軟件通過調(diào)用測試數(shù)據(jù)庫中響應(yīng)對象的全部測試信息,采用相應(yīng)的數(shù)據(jù)分析方法,評估被測對象的狀態(tài)。
7.2.2   測試數(shù)據(jù)庫
       測試數(shù)據(jù)庫的管理由任務(wù)提出方負(fù)責(zé)完成,本軟件的承擔(dān)方要求能夠調(diào)用提出方提供的可執(zhí)行文件。
7.2.3  質(zhì)量評估模塊
       質(zhì)量評估模塊分為專家只是生產(chǎn)和故障分析兩個子模塊,這兩個部分均由任務(wù)提出方負(fù)責(zé)完成,并提供可執(zhí)行文件。要求本軟件承擔(dān)方在設(shè)計時,可選擇調(diào)用不同的子模塊。
7.2.4  接口函數(shù)庫
       接口函數(shù)庫將使用任務(wù)提出方提供的“IVI一起驅(qū)動管理”模塊。要求任務(wù)承擔(dān)方能夠調(diào)用并執(zhí)行該模塊。


聯(lián)系方式:北京軟件開發(fā)公司
電話:010-52895342,400-886-7161
郵件:service@hivekion.com
網(wǎng)址:http://m.ziyuangx.cn
【北京華盛恒輝科技有限公司 ——(hivekion)是一家軟件定制開發(fā)公司,在軟件產(chǎn)品研發(fā)與服務(wù),華盛恒輝堅持穩(wěn)健經(jīng)營、持續(xù)創(chuàng)新、開放合作,在安全生產(chǎn)、大數(shù)據(jù)處理等領(lǐng)域構(gòu)筑了端到端的解決方案優(yōu)勢,為企業(yè)客戶提供有競爭力的IT解決方案、 產(chǎn)品和服務(wù)。
 
------分隔線----------------------------
------分隔線----------------------------
QQ客服熱線