<form id="djrbv"></form><address id="djrbv"><form id="djrbv"><th id="djrbv"></th></form></address>

<form id="djrbv"><nobr id="djrbv"></nobr></form>

      <form id="djrbv"></form>
      <form id="djrbv"></form>

      <form id="djrbv"><nobr id="djrbv"></nobr></form>

        經典案例
        • 金融大數據解決方案
        • 汽車大數據解決方案
        • 政府大數據解決方案
        • 鐵路大數據解決方案
        • 電力大數據解決方案
        • 軍工大數據解決方案
        • 解放軍總裝備部
        • 中國航天科工集團
        • 航天科技集團

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

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

        1整個結構設計

         
         圖 1  原理結構圖
         

        2軟件整體結構流程圖

         
        圖2 軟件整體流程圖
         

        3模塊詳細設計說明


        3.1  與通用測試平臺的交互

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

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


        3.2.1硬件驅動程序的二次封裝

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

         

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

         
        流程圖如下:
         
         
        圖4  加載硬件本身驅動程序的過程
         
        詳細過程步驟如下:

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

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

        4 功能測試模塊

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

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

        6 測試數據庫模塊設計說明

        6.1.1模塊描述

        測試數據庫的管理由任務提出方負責完成,本軟件的承擔方要求能夠調用提出方提供的可執行文件。

        圖 14 數據庫類之間的關系圖

        7 質量評估模塊設計說明

        7.1.1模塊描述

        質量評估模塊分為專家只是生產和故障分析兩個子模塊,這兩個部分均由任務提出方負責完成,并提供可執行文件。要求本軟件承擔方在設計時,可選擇調用不同的子模塊。

        7.2.1功能

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


        聯系方式:北京軟件開發公司
        電話:010-52895342,400-886-7161
        郵件:service@hivekion.com
        網址:http://www.bid-seminar.com
        【北京華盛恒輝科技有限公司 ——(hivekion)是一家軟件定制開發公司,在軟件產品研發與服務,華盛恒輝堅持穩健經營、持續創新、開放合作,在安全生產、大數據處理等領域構筑了端到端的解決方案優勢,為企業客戶提供有競爭力的IT解決方案、 產品和服務。
         
        ------分隔線----------------------------
        ------分隔線----------------------------
        QQ客服熱線