儀器驅動自動測試系統(tǒng)
自動測試系統(tǒng)儀器驅動VXI總線即插即用規(guī)范提出的VXI總線測試平臺被公認為21世紀儀器總線系統(tǒng)和自動測試系統(tǒng)的優(yōu)秀平臺。自 1987 年推出以來,它已成為儀器測試領域的總線標準。為了使VXI總線更易于使用,實現VXI總線系統(tǒng)的互換性,使VXI總線系統(tǒng)在系統(tǒng)層面成為真正開放的系統(tǒng)結構,NI等著名儀器公司建立了VXI總線即插即用。 1993. 聯盟(VXI plug&play),簡稱VPP聯盟,隨后發(fā)布了VXI即插即用規(guī)范。VXI總線即插即用規(guī)范VPP的提出是對VXI總線標準的補充和發(fā)展,主要解決VXI總線系統(tǒng)級的軟件標準問題。VPP規(guī)范制定了標準的系統(tǒng)軟件結構框架,提供了操作系統(tǒng)、編程語言、I/O庫、儀器驅動和高級應用軟件工具的原理,真正實現了VXI總線系統(tǒng)的開放性。,兼容性和互換性,進一步縮短VXI系統(tǒng)的集成時間,降低系統(tǒng)成本。10個VPP技術規(guī)范文件 目前,VPP聯盟制定了10個技術規(guī)范文件: VPP1 章程文件 VPP2 系統(tǒng)框架規(guī)范 VPP3.1 儀器驅動結構與設計規(guī)范 VPP3.2 儀器驅動功能體規(guī)范 VPP 3.
用戶需要花更多的時間來了解系統(tǒng)中每臺儀器的具體編程要求和儀器操作命令集。如果系統(tǒng)中的各種設備由不同廠家提供,用戶需要學習系統(tǒng)集成的所有儀器的用戶手冊,并根據自己的需要對命令進行一一編程調試。所有儀器都需要同時完成低級儀器 I/O 操作和高級儀器交互能力。這一切都大大增加了系統(tǒng)集成商的負擔。儀器驅動的由來 由于上述問題,儀器用戶嘗試將儀器編程結構化和模塊化,以便可以重用控制特定儀器的程序。因此,一方面,對儀器編程語言提出了標準化要求。另一方面,需要定義一層模塊化、獨立的儀器操作程序,即具有相對獨立的儀器驅動程序。儀器驅動的由來隨著虛擬儀器的出現,軟件在儀器中的地位越來越重要,傳統(tǒng)的儀器編程留給用戶的方式越來越不符合儀器的標準化、模塊化。I/O接口軟件作為獨立軟件層的出現,也使得儀器編程任務的劃分成為可能。處理與特定儀器的控制和通信的更抽象的軟件層被定義為儀器驅動程序。儀器驅動以I/O接口軟件為基礎,是與應用程序通信的中間環(huán)節(jié)。儀器驅動的由來 VXI儀器的出現為儀器驅動的發(fā)展帶來了機遇。

但是,VXI 儀器驅動程序的編寫比 GPIB 儀器要復雜得多。因此,VXI即插即用系統(tǒng)聯盟在定義虛擬儀器系統(tǒng)的結構時,也規(guī)定了符合VXI即插即用規(guī)范的虛擬儀器系統(tǒng)的儀器驅動程序。程序的結構和設計,即VXI Plug and Play規(guī)范中的VPP3.1~VPP3.4。這些規(guī)范明確了儀器驅動的概念:儀器驅動是一組用戶可以調用的子程序,只需要調用一些相應的函數就可以完成儀器各種功能的操作。VPP儀器驅動特點儀器驅動是一個完整的軟件模塊。儀器模塊由儀器模塊供應商提供,提供給用戶。通過閱讀和理解儀器驅動源碼,可以根據自己的需要對驅動進行修改和優(yōu)化。. 儀器供應商并未完全限制儀器的功能。儀器具有可擴展性和修正性,可以方便地將儀器集成到系統(tǒng)中,也可以方便地實現虛擬儀器系統(tǒng)的優(yōu)化。VPP儀器驅動的特點 儀器驅動不是I/O層的底層操作,而是更抽象的儀器測試和控制。所有儀器程序的設計遵循外部接口模型和內部設計模型的雙重結構。儀器驅動的設計和實現機制是統(tǒng)一的。用戶在了解了一個儀器驅動程序后,可以利用儀器驅動程序的一致性,方便、有效地了解另一個儀器驅動程序。即使在儀器驅動程序的基礎上,也可以進行適當的修改,為新的儀器模塊開發(fā)符合 VPP 的儀器驅動程序。

VPP儀器驅動的特點 VPP規(guī)范對儀器驅動的要求不僅適用于VXI儀器,也適用于GPIB儀器和串行接口儀器的驅動開發(fā)。同樣,VPP規(guī)范不僅適用于基于消息的設備驅動程序的開發(fā),也適用于基于寄存器的設備驅動程序的開發(fā)。在虛擬儀器系統(tǒng)中,所有類型的虛擬儀器都有結構和形式相同的儀器驅動程序,極大地改進了儀器系統(tǒng)的集成和調試過程,對虛擬儀器系統(tǒng)的維護和開發(fā)非常有利。儀器驅動結構模型 VPP儀器驅動規(guī)范規(guī)定了儀器驅動開發(fā)者編寫驅動的規(guī)范和要求。它使來自多個制造商的儀器驅動程序可以一起使用自動測量設備,并增強系統(tǒng)級的開放性、兼容性和互操作性。可交換性。VPP 規(guī)范提出了兩個基本的結構模型,其儀器驅動程序就是圍繞這兩個模型編寫的。第一個模型是儀器驅動程序的外部接口模型,它表明儀器驅動程序如何與外部軟件系統(tǒng)接口。儀器驅動應用程序外部接口模型 儀器驅動(函數體) 子程序接口 VISA I/O 接口 Programmatic Developer Interface Interactive Developer Interface 外部接口模型 程序主體是儀器驅動的實際源代碼。VPP 規(guī)范定義了兩種形式的源代碼:語言代碼形式(C 語言)和 G(圖形)語言形式。

其中定義了儀器驅動函數體結構的內部設計并進行了詳細描述。所有 VPP 儀器驅動程序的源代碼都是根據此設計模型編寫的。因此,該模型對于儀器驅動程序的開發(fā)人員來說非常重要。一旦用戶了解了模型并知道如何使用儀器驅動程序,那么用戶就完全知道如何使用所有儀器驅動程序。儀器驅動程序內部設計模型 用戶程序編程 開發(fā)者界面 交互開發(fā)者界面 功能體 應用功能 初始功能 初始功能 配置功能 動作/狀態(tài)功能 數據功能 實用功能 組件功能 子程序接口 VISA I/O接口 內部設計模型 儀器功能體驅動主要由兩部分組成:

應用功能使用多個組件功能共同實現完整的測試和測量操作。從組件函數的類型可以看出組件函數。初始化函數、關機函數和實用函數是所有VPP儀器驅動程序都需要的,屬于儀器的通用函數部分,而配置函數、動作/狀態(tài)函數和數據函數分別是。儀器驅動的不同部分,屬于儀器特有的功能部分,即: 初始化函數 關機函數 實用函數 配置函數 動作/狀態(tài)函數 數據函數 特定函數 通用函數 應用函數 應用函數是一組面向測試任務的函數高級功能,在大多數情況下,這些例程通過配置、觸發(fā)和從儀器讀取數據來完成整個測試操作。這些函數不僅提供了如何使用小部件功能的示例,而且當用戶只需要面向測試的功能接口而不是使用單獨的小部件功能時,它們也很有用。應用功能本身是基于組件功能的。儀器驅動函數介紹-通用函數初始化函數-建立驅動與儀器的通訊聯系參數表:rsrcName儀器描述ViRsrc id查詢系統(tǒng)確認是否執(zhí)行ViBoolean Reset instr是否執(zhí)行ViBoolean vi儀器句柄Visession儀器驅動函數介紹- 通用函數返回狀態(tài)值表:返回狀態(tài)值說明 VI_SUCCESS 初始化完成 VI_WARN_NSUP_ID_QUERY ID 查詢不支持 VI_WARN_NSUP_RESET 復位不支持 VI_ERROR_FAIL_ID_RESET 儀器ID 查詢失敗 查詢關機功能終止軟件與儀器之間的通信并釋放系統(tǒng)資源。儀器驅動功能介紹——具體功能 每臺儀器不僅有通用功能,而且有自己的具體功能。

功能類別function定義的儀器類型按功能分為測量儀器、源儀器和開關儀器。整個儀器驅動的結構是樹形結構,儀器是樹形結構的根節(jié)點。將包含的函數類別函數按照類別劃分為子節(jié)點,然后將包含的子函數分解到孫節(jié)點,直到分解完所有函數。所有子功能可以對應一個儀器功能操作功能。三種功能類別功能 測量類別功能類別功能——完成特定測量任務的儀器配置,初始化測量過程,讀取測量值。這些函數一般包含在測量儀器模塊(如萬用表模塊)的儀器驅動程序中,包含多個參數,不需要與其他驅動函數操作交互。測量函數類別函數函數初始化函數讀取函數配置函數不提供返回結果的讀取函數——完成一個完整的測量操作。從測量的初始化到提供測量結果的三個功能類別2.源類別功能——該類型的功能完成了針對特定勵磁輸出的儀器配置并在一次操作中對其進行初始化。這些功能一般都包含在源輸出類模塊(如信號發(fā)生器等)的儀器驅動中。初始化函數配置函數源類函數源類函數類結構圖為源類儀器提供高級抽象功能接口,不進行設備初始化,不為源操作登錄提供返回結果,完成激勵輸出操作初始化三個功能類函數3.開關函數類別函數在一次操作中,該函數完成信號的開關選通。
這些功能一般都包含在各種開關模塊的儀器驅動中。這些函數函數包含多個參數,不需要與其他驅動函數操作交互。初始化函數配置函數開關類函數開關類函數類型結構模型為開關類儀器提供了一個高級抽象功能接口。它不初始化設備,不提供返回結果,執(zhí)行開關操作登錄,完成開關門操作。初始化儀器驅動函數到儀器分為以上三類比較模糊。有些儀器同時具有測量功能和源輸出功能。所以,它們必須滿足 VPP 規(guī)范對測量和源功能的要求。儀器驅動功能面板 交互式開發(fā)者界面定義在儀器驅動對外接口模型中,本質上是一個功能面板文件。功能面板文件是對儀器驅動程序的圖形化描述,以C語言源代碼的形式提供的各個功能操作函數的圖形化表達。使用功能面板文件,用戶可以交互了解整個儀器驅動的結構、操作函數的組成和使用,了解儀器的功能以及儀器驅動中各個功能和各個參數的含義和作用。功能,并制作儀器驅動程序' s 功能設計和使用變得直觀方便。儀器驅動設計 儀器驅動設計步驟可分為七個步驟: 編寫儀器驅動相關文檔 確定儀器模塊的應用目標和功能指標以及儀器硬件模塊的開發(fā) 重點不同: 硬件性能指標,包括精度、靈敏度、線性度、動態(tài)響應、環(huán)境溫度范圍、可靠性指標等動態(tài)和靜態(tài)指標 儀器的功能指標選擇系統(tǒng)框架是根據外部接口模型定義的,儀器驅動必須包含以下文件: 應用開發(fā)者接口:動態(tài)鏈接庫文件(.dll、.lib、.def 文件) 交互式開發(fā)人員界面:
另一種方法是在儀器驅動核心結構上使用擴展設計,稱為儀器驅動必需的內核文件,還包括源代碼和功能面板文件。確定樹形結構 在參考模塊的基礎上,確定儀器驅動的組成結構,即設計功能面板的樹形結構,從上到下依次為儀器節(jié)點(根節(jié)點)和功能節(jié)點(葉節(jié)點))分層。功能面板樹形結構的確定也決定了驅動程序需要包含的所有功能,也是儀表驅動程序內部設計模型的體現。設計各個操作功能的功能面板儀表驅動源代碼必須符合規(guī)范:所有功能均基于 VISAI/O 接口庫。函數名不能超過31個字符,在定義函數名之前,應包含宏定義名_VI_FUNC。在函數中定義數組類型參數和輸出參數時,宏定義名稱_VI_FAR必須在參數前面。避免引出全局變量自動測量設備,避免聲明大型數組結構,不要使用屏幕輸入/輸出。儀器驅動中實現的功能應避免包含高級復雜的數學分析庫函數,將復雜的分析操作留給應用完成調試在應用開發(fā)平臺上運行、調試、細化儀器驅動。通過調試和完善儀器驅動等控件中的功能,在程序開發(fā)平臺中進行配置和集成。該應用程序通過對多臺儀器的控制和管理,加上先進的分析處理功能、多種形式的數據存儲和交換功能,實現了自動測試系統(tǒng)的集成。編寫儀器驅動相關文檔 儀器驅動的功能和功能通過后,需要編寫儀器驅動相關文檔,包括函數功能描述的文本幫助文件、VB函數原型描述文件等,以便儀器驅動可以真正成為一個統(tǒng)一封裝形式的軟件模塊,方便使用和修改。該應用程序通過對多臺儀器的控制和管理,加上先進的分析處理功能、多種形式的數據存儲和交換功能,實現了自動測試系統(tǒng)的集成。編寫儀器驅動相關文檔 儀器驅動的功能和功能通過后,需要編寫儀器驅動相關文檔,包括函數功能描述的文本幫助文件、VB函數原型描述文件等,以便儀器驅動可以真正成為一個統(tǒng)一封裝形式的軟件模塊,方便使用和修改。該應用程序通過對多臺儀器的控制和管理,加上先進的分析處理功能、多種形式的數據存儲和交換功能,實現了自動測試系統(tǒng)的集成。編寫儀器驅動相關文檔 儀器驅動的功能和功能通過后,需要編寫儀器驅動相關文檔,包括函數功能描述的文本幫助文件、VB函數原型描述文件等,以便儀器驅動可以真正成為一個統(tǒng)一封裝形式的軟件模塊,方便使用和修改。