張志利 侯傳勛, 姜 毅
(第二炮兵工程學(xué)院兵器發(fā)射理論與技術(shù)國家重點(diǎn)學(xué)科實(shí)驗(yàn)室1,陜西 西安 710025;北京理工大學(xué)宇航學(xué)院2,北京 100081)
隨著工業(yè)技術(shù)和儀表技術(shù)的發(fā)展,模塊化板卡得到了廣泛的應(yīng)用。為減小測量或控制偏差,在高精度應(yīng)用場合需要對板卡進(jìn)行周期性校準(zhǔn)。校準(zhǔn)是指在規(guī)定條件下,為標(biāo)定和(或)修訂測量儀器、測量系統(tǒng)所指示的量值,或?qū)嵨锪烤?、參考物質(zhì)所代表的量值與對應(yīng)的由標(biāo)準(zhǔn)復(fù)現(xiàn)的量值之間關(guān)系所進(jìn)行的一組校驗(yàn)和調(diào)校操作[1-2]。校準(zhǔn)是維持板卡精度的重要途徑。
對模塊化板卡而言,校準(zhǔn)就是通過必要的軟硬件調(diào)節(jié)操作,確保板卡精度滿足預(yù)期精度指標(biāo)。隨著板卡精度、集成度和復(fù)雜性的不斷提高,校準(zhǔn)操作的工作量和實(shí)施難度也與日俱增,傳統(tǒng)校準(zhǔn)方法已難以滿足板卡校準(zhǔn)工作的實(shí)際需要[3]。
本文以板卡 PXI-6123、PXI-6251、SCXI-1102和SCXI-1124的校準(zhǔn)為例,在闡述校準(zhǔn)軟硬件需求、校準(zhǔn)步驟和儀器控制技術(shù)的基礎(chǔ)上,著重探討通用板卡校準(zhǔn)程序的開發(fā)問題。由于硬件調(diào)校有悖于板卡的“黑箱”特性,且已逐步被軟件調(diào)校所取代,因此,本文未對其進(jìn)行討論。
板卡校準(zhǔn)可理解為在一定的軟硬件環(huán)境的支持下,按照校準(zhǔn)流程實(shí)施的以校驗(yàn)和調(diào)校為主的一系列操作的總和。在此過程中,不可避免地涉及到外部校準(zhǔn)儀器的控制問題。
模塊化板卡通常無法單獨(dú)工作,校準(zhǔn)的首要任務(wù)就是搭建可供其正常工作的最小硬軟件系統(tǒng)。為方便與校準(zhǔn)儀器連接,要求該系統(tǒng)具有豐富的外部互連接口。為此,選用PXI-8106控制卡、PXI-1042Q和SCXI-1000兩款機(jī)箱,將它們與4款被校準(zhǔn)板卡構(gòu)成PXI測試系統(tǒng)。其中,機(jī)箱擁有堅(jiān)固的模塊化封裝結(jié)構(gòu),并作為載體通過其背板為被校準(zhǔn)板卡提供電源、PCI或SCXI總線及專門的定時(shí)和觸發(fā)信號(hào)。
PXI-8106是高性能嵌入式計(jì)算機(jī),安裝了Windows XP Pro、LabVIEW 8.6和必要的設(shè)備驅(qū)動(dòng)軟件,為校準(zhǔn)操作提供必要的軟件環(huán)境,同時(shí)作為校準(zhǔn)操作的控制和數(shù)據(jù)處理中心。該板卡自帶 GPIB、RS-232、LAN和USB 2.0接口,可與常見校準(zhǔn)儀器直接連接。
除最小系統(tǒng)外,根據(jù)被校板卡的不同,校準(zhǔn)中還可能需要使用各種作為量值標(biāo)準(zhǔn)的高精度外部計(jì)量設(shè)備或輔助調(diào)節(jié)儀器,如數(shù)字萬用表(digital multi-meter,DMM)、信號(hào)發(fā)生器、示波器、直流電源、頻率計(jì)和頻譜分析儀等。校準(zhǔn)屬于精密操作,通常對所用儀器有很高的精度要求。
此外,為方便信號(hào)連接和提高校準(zhǔn)操作的自動(dòng)化水平,校準(zhǔn)中還需要使用GPIB電纜、SH68-68-EP屏蔽電纜、SCXI-1349電纜適配器、50芯排線、CB-50連接器和SCXI-1300接線端等多種連接附件(其中部分為可選附件)。校準(zhǔn)本文所述4種板卡時(shí)需使用的外部儀器如表 1 所示[4-6]。
表1 所需外部校準(zhǔn)儀器Tab.1 External calibration equipment required
需要注意的是,若推薦儀器不可用,則要求同類替換儀器的相應(yīng)精度指標(biāo)必須滿足同樣的精度要求,否則可能執(zhí)行錯(cuò)誤校準(zhǔn),導(dǎo)致板卡精度降低或板卡本身損壞。
校準(zhǔn)主要包括校驗(yàn)和調(diào)校兩個(gè)方面,前者用于驗(yàn)證已有精度是否達(dá)標(biāo),后者則通過調(diào)節(jié)板卡參數(shù)使其精度恢復(fù)指定要求。對板卡而言,軟件調(diào)校的本質(zhì)就是根據(jù)實(shí)測值與基準(zhǔn)值的偏差重新計(jì)算并更新存儲(chǔ)于板載EEPROM中的補(bǔ)償參數(shù)(又稱為校準(zhǔn)常數(shù))[7]。
板卡校準(zhǔn)流程如圖1所示。
圖1 校準(zhǔn)流程Fig.1 Calibration procedures
校準(zhǔn)準(zhǔn)備階段(又稱為初始化階段)完成硬件連接、設(shè)備預(yù)熱、軟件配置、溫濕度測量和校準(zhǔn)條件判斷等任務(wù),它是執(zhí)行正確校準(zhǔn)的重要保證。自校準(zhǔn)通過補(bǔ)償短期環(huán)境效應(yīng)的影響來提高后續(xù)校準(zhǔn)精度,是可選步驟,僅對支持自校準(zhǔn)操作的板卡有效。前校驗(yàn)通過測量板卡當(dāng)前的輸入輸出誤差決定是否需要進(jìn)行后續(xù)調(diào)校操作。對于誤差超限的板卡,調(diào)校根據(jù)基準(zhǔn)值和實(shí)測值的偏差,以特定算法計(jì)算并更新板卡的校準(zhǔn)常數(shù)。后校驗(yàn)則通過測量調(diào)校后板卡的實(shí)際精度決定是否需要進(jìn)行再次調(diào)校。
校準(zhǔn)流程的一致性為構(gòu)建“校準(zhǔn)引擎”與“校準(zhǔn)數(shù)據(jù)庫”分離的高效通用校準(zhǔn)程序提供了可能。但我們也應(yīng)注意到,由于板卡種類繁多,不同板卡的校準(zhǔn)流程可能呈現(xiàn)較大的細(xì)節(jié)差異。
此外,校準(zhǔn)作為高級(jí)操作,不可避免地涉及硬件(或固件)操作。為保持板卡的“黑箱”特性并提高校準(zhǔn)軟件的通用性,校準(zhǔn)軟件應(yīng)避免直接使用底層I/O操作,而應(yīng)盡量使用儀器驅(qū)動(dòng)級(jí)別的高級(jí)API,如在LabVIEW中,調(diào)校應(yīng)直接使用封裝了調(diào)校算法和底層寄存器訪問的子VI完成,從而避免板卡底層的寄存器操作。
板卡功能和結(jié)構(gòu)的多樣性,及其精度和集成度的提高極大地增加了校準(zhǔn)工作量和校準(zhǔn)操作難度。4款板卡校準(zhǔn)過程中主要的校驗(yàn)操作和調(diào)校操作如表2所示。
表2 校驗(yàn)調(diào)校任務(wù)表Tab.2 Verification and adjustment tasks
表2中,通道規(guī)格列中AI、AO、CO分別表示模擬輸入通道、模擬輸出通道和計(jì)數(shù)輸出通道,A×B表示板卡共有A個(gè)指定類型的物理通道,且每個(gè)通道有B個(gè)可選輸入或輸出范圍;校驗(yàn)點(diǎn)數(shù)和調(diào)校點(diǎn)數(shù)列中,C×D×E表示需對C個(gè)通道的共(C×D)個(gè)范圍執(zhí)行單獨(dú)校驗(yàn)或調(diào)校操作,且每次操作至少使用E個(gè)校驗(yàn)或調(diào)校數(shù)據(jù)點(diǎn);備注列中“*”表示相應(yīng)校驗(yàn)操作需要對每個(gè)校驗(yàn)數(shù)據(jù)點(diǎn)至少執(zhí)行10000次測量以求均值。
顯然,一次完整的校準(zhǔn)操作需要對板卡上眾多的工作點(diǎn)進(jìn)行校驗(yàn)和調(diào)校。在校準(zhǔn)過程中,除了要完成板卡本身的通道配置、輸入輸出控制外,還需要一臺(tái)或多臺(tái)外部精密儀器的配合以及大量諸如連接線轉(zhuǎn)換等手工操作。這也是導(dǎo)致基于手工操作的傳統(tǒng)校準(zhǔn)方法已不能滿足板卡實(shí)際校準(zhǔn)工作需要的一個(gè)重要原因。
此外,從表2也可以看出板卡結(jié)構(gòu)對校準(zhǔn)過程的影響。一般來說,S系列和SCXI系列板卡校準(zhǔn)時(shí)需要對其每路模擬物理通道的每個(gè)測量和(或)輸出范圍執(zhí)行單獨(dú)校驗(yàn)和調(diào)校;而B/E/M系列板卡由于其模擬輸入通道在內(nèi)部時(shí)分復(fù)用同一個(gè)ADC,因此,只需對一路進(jìn)行校驗(yàn)和調(diào)校即可。
PXI-6123屬S系列同步采集板卡,其8個(gè)模擬輸入通道之間相互獨(dú)立,正常情況下應(yīng)對每一通道執(zhí)行單獨(dú)調(diào)校,但由于涉及內(nèi)部鏈路轉(zhuǎn)換等硬件操作,驅(qū)動(dòng)程序?qū)ζ渥隽溯^高層次的封裝。因此,對用戶而言,只需要對首個(gè)模擬輸入通道AI0進(jìn)行調(diào)校即可。
外部儀器的大量調(diào)節(jié)操作在很大程度上增加了校準(zhǔn)工作量,因此,實(shí)現(xiàn)校準(zhǔn)儀器的自動(dòng)控制是提高校準(zhǔn)自動(dòng)化程度的一個(gè)重要方面。便捷的硬件互連和軟件互操作性是校準(zhǔn)軟件中儀器自動(dòng)控制技術(shù)的關(guān)鍵。通常,作為基準(zhǔn)使用的外部儀器都十分昂貴,硬件互連就是當(dāng)推薦儀器不可用時(shí),允許用戶直接使用現(xiàn)有的同等級(jí)的其他儀器,而不受限于儀器的硬件接口類型。軟件互操作性是指當(dāng)更換不同廠商、不同接口的同類儀器時(shí),校準(zhǔn)軟件能不加修改或幾乎不加修改地控制新儀器,實(shí)現(xiàn)自動(dòng)操作。
GPIB總線作為自19世紀(jì)60年代以來應(yīng)用最為廣泛的儀器控制總線,允許多達(dá)15個(gè)設(shè)備以串行、并行或串并混合的方式連接至同一個(gè)控制器,很多情況下它是儀器控制的首選方式[8]。校準(zhǔn)本文所述板卡時(shí),就是使用PXI-8106的GPIB接口直接與外部校準(zhǔn)儀和數(shù)字萬用表連接的。當(dāng)然,PXI-8106豐富的外部接口也為直接或間接(通過轉(zhuǎn)換板卡)與其他接口類型的外部儀器互連提供了可能。
在軟件層面上,實(shí)現(xiàn)儀器自動(dòng)控制的途徑包括:針對特定總線或虛擬儀器軟件架構(gòu)(virtual instrument software architecture,VISA)的基于寄存器操作或程控儀器標(biāo)準(zhǔn)命令集(standard commands for programmable instrumentation,SCPI)字符串操作的直接 I/O、VXIplug&play驅(qū)動(dòng)和交互式虛擬儀器(interchangeable virtual instruments,IVI)驅(qū)動(dòng)[9-10]。IVI作為當(dāng)今較新的儀器控制技術(shù),提供了獨(dú)立于設(shè)備廠商和接口類型的儀器控制解決方案,是校準(zhǔn)軟件中實(shí)現(xiàn)儀器互操作性的理想選擇。更重要的是,IVI還提供了狀態(tài)緩存、自動(dòng)范圍檢查、儀器仿真和多線程安全等高級(jí)功能[11],特別是其仿真功能,若再結(jié)合MAX(measurement&automation)的設(shè)備仿真功能,則可提供從機(jī)箱、控制器和被校準(zhǔn)板卡到外部校準(zhǔn)儀器的完整軟件仿真環(huán)境,從而極大地方便了校準(zhǔn)軟件的調(diào)試開發(fā)。
校準(zhǔn)軟件是實(shí)施板卡自動(dòng)化校準(zhǔn)的關(guān)鍵,而結(jié)構(gòu)和功能的多樣性決定了板卡通用校準(zhǔn)程序的開發(fā)是一項(xiàng)復(fù)雜而頗具難度的工作。
針對板卡校準(zhǔn)的特點(diǎn),在實(shí)施4款板卡校準(zhǔn)的過程中,基于“校準(zhǔn)引擎+校準(zhǔn)數(shù)據(jù)庫+校準(zhǔn)插件”模型開發(fā)的NI板卡通用校準(zhǔn)程序的結(jié)構(gòu)如圖2所示。它主要由校準(zhǔn)引擎、校準(zhǔn)數(shù)據(jù)庫和校準(zhǔn)插件三部分組成。
圖2 校準(zhǔn)軟件結(jié)構(gòu)Fig.2 Structure of the calibration software
校準(zhǔn)引擎是校準(zhǔn)軟件的主體,定義了板卡校準(zhǔn)操作中的公共操作,如界面顯示與交互、設(shè)備檢測、校準(zhǔn)條件判斷、通道配置、板卡輸入輸出控制、外部校準(zhǔn)儀器檢測與控制、校準(zhǔn)數(shù)據(jù)獲取與分析、校準(zhǔn)數(shù)據(jù)庫解析、校準(zhǔn)數(shù)據(jù)庫編輯、校準(zhǔn)插件調(diào)用接口、實(shí)時(shí)幫助和校準(zhǔn)結(jié)果存儲(chǔ)打印等。校準(zhǔn)引擎中不包含與特定板卡校準(zhǔn)相關(guān)的數(shù)據(jù),其正常運(yùn)行依賴于外部校準(zhǔn)數(shù)據(jù)庫。校準(zhǔn)操作中可采用手動(dòng)模式和自動(dòng)模式控制外部儀器。在自動(dòng)模式下,儀器選擇與控制子模塊除了要根據(jù)當(dāng)前板卡的校驗(yàn)點(diǎn)和調(diào)校點(diǎn)數(shù)據(jù)信息,通過IVI類驅(qū)動(dòng)控制相應(yīng)外部儀器自動(dòng)輸出基準(zhǔn)信號(hào)或自動(dòng)測量板卡輸出信號(hào),還要完成必要的時(shí)序控制,以確保測量時(shí)輸入輸出信號(hào)已穩(wěn)定。
外部校準(zhǔn)數(shù)據(jù)庫為一個(gè)文本文件,采用XML語言定義特定板卡校準(zhǔn)所需的數(shù)據(jù)信息,如校準(zhǔn)溫濕度要求、校準(zhǔn)周期、校驗(yàn)和調(diào)校通道類別、通道配置參數(shù)、校驗(yàn)和調(diào)校數(shù)據(jù)點(diǎn)、允許誤差限、幫助資源信息以及所需插件信息等。由于允許誤差限取決于校準(zhǔn)周期,因此在數(shù)據(jù)庫定義和程序開發(fā)過程中,將兩者綁定,以避免允許誤差限和校準(zhǔn)周期不對應(yīng)而造成錯(cuò)誤校準(zhǔn)。校準(zhǔn)引擎根據(jù)用戶選擇的待校準(zhǔn)板卡,從數(shù)據(jù)庫中查找并讀取相應(yīng)字段,然后通過數(shù)據(jù)庫解析模塊,轉(zhuǎn)換為可為其他子模塊使用的內(nèi)部格式。實(shí)踐表明,XML語言簡單、高效、易于維護(hù)和擴(kuò)充的優(yōu)點(diǎn)為校準(zhǔn)程序的調(diào)試和功能擴(kuò)充提供了很大方便,大大加速了程序開發(fā)進(jìn)程。
校準(zhǔn)插件是具有共同調(diào)用入口的動(dòng)態(tài)鏈接庫dll文件,用于解決特定板卡校準(zhǔn)中出現(xiàn)的特殊問題。由于板卡種類繁多,在程序開發(fā)過程中會(huì)遇到一些特殊板卡的校準(zhǔn)功能或部分校準(zhǔn)功能無法通過校準(zhǔn)引擎完成,或雖通過修改校準(zhǔn)引擎可以完成,但因其屬于個(gè)例操作而不宜置于校準(zhǔn)引擎中的現(xiàn)象。如SCXI-1124電流輸出通道的校準(zhǔn)就是通過校準(zhǔn)插件完成的。校準(zhǔn)引擎從校準(zhǔn)數(shù)據(jù)庫中讀取板卡的校準(zhǔn)插件信息,并通過插件調(diào)用接口動(dòng)態(tài)調(diào)用該插件,以完成特定校準(zhǔn)操作。
校準(zhǔn)軟件采用LabVIEW 8.6開發(fā)。作為專為數(shù)據(jù)采集、測試測量和儀器儀表等領(lǐng)域設(shè)計(jì)的高級(jí)圖形化編程語言,LabVIEW專業(yè)的UI、完善的驅(qū)動(dòng)支持和良好的交互式調(diào)試工具極大地簡化了校準(zhǔn)軟件的開發(fā)過程。如板卡和儀器檢測功能,可借助“DAQmx設(shè)備名”和“IVI邏輯名稱”等控件直接實(shí)現(xiàn);設(shè)備自檢、自校準(zhǔn)和調(diào)校等復(fù)雜操作可直接調(diào)用相應(yīng)子VI完成;儀器控制問題則可使用LabVIEW內(nèi)置IVI類驅(qū)動(dòng)解決。但應(yīng)注意的是,在使用IVI類驅(qū)動(dòng)子VI編寫儀器控制模塊時(shí),用戶必須先自行安裝外部儀器對應(yīng)的IVI兼容驅(qū)動(dòng),否則程序無法正常運(yùn)行。此外,為確保儀器可互換性,應(yīng)避免使用IVI兼容驅(qū)動(dòng)中那些相應(yīng)IVI類驅(qū)動(dòng)沒有提供的功能。校準(zhǔn)引擎是校準(zhǔn)程序開發(fā)的難點(diǎn)。由于規(guī)模較大,主程序采用“生產(chǎn)者-消費(fèi)者”模型(producer-consumer pattern)和模塊化設(shè)計(jì)方法構(gòu)建。
“生產(chǎn)者-消費(fèi)者”模型是使用LabVIEW構(gòu)建大型程序,特別是復(fù)雜用戶交互界面程序的有力手段,其本質(zhì)是借助計(jì)算機(jī)的多任務(wù)處理能力,通過隊(duì)列操作(“生產(chǎn)者”將消息壓入隊(duì)列,“消費(fèi)者”從隊(duì)列中取出消息并執(zhí)行相應(yīng)操作),實(shí)現(xiàn)界面響應(yīng)進(jìn)程和事件處理進(jìn)程的分離,從而提高界面響應(yīng)速度和程序執(zhí)行效率。同時(shí),根據(jù)界面控件的依賴關(guān)系,通過人為事件觸發(fā),該模型還可以在很大程度上簡化界面處理代碼。此外,為提高代碼重用效率,保持代碼視圖的簡潔,采用將大多數(shù)事件處理(非常簡單的除外)代碼放于一個(gè)或多個(gè)分級(jí)調(diào)用的子VI中實(shí)現(xiàn)。實(shí)踐表明,傳遞控件引用是實(shí)現(xiàn)在底層子VI中更新、維護(hù)頂層界面視圖的有效手段。
對用戶而言,校準(zhǔn)引擎表現(xiàn)為封裝了校準(zhǔn)流程的向?qū)酱翱诮缑?,主要由初始化、自校?zhǔn)、前校驗(yàn)、調(diào)校和后校驗(yàn)5個(gè)頁面組成。該向?qū)Ы缑娉?fù)責(zé)處理大量相互關(guān)聯(lián)的視圖更新外,還要根據(jù)用戶選擇、操作狀態(tài)和板卡屬性等信息調(diào)用底層子VI,以完成條件判斷、校驗(yàn)和調(diào)校等操作。由于校準(zhǔn)操作中不可避免地存在如板卡端子連線等硬件操作,為方便操作,向?qū)н€要根據(jù)校準(zhǔn)數(shù)據(jù)庫中記錄的與當(dāng)前操作狀態(tài)相應(yīng)的幫助信息,打開并顯示相應(yīng)html幫助文件。
校準(zhǔn)插件獨(dú)立于校準(zhǔn)引擎,每個(gè)插件置于一個(gè)單獨(dú)的LabVIEW動(dòng)態(tài)鏈接庫工程中開發(fā)。插件可包含底層處理代碼和相應(yīng)用戶界面,且必須擁有共同的調(diào)用入口。
本文以LabVIEW環(huán)境下的4款板卡的校準(zhǔn)為例,探討了板卡校準(zhǔn)的步驟和實(shí)施校準(zhǔn)的硬軟件需求,基于對儀器控制技術(shù)、校準(zhǔn)流程和校準(zhǔn)任務(wù)的分析,提出了基于“校準(zhǔn)引擎+校準(zhǔn)數(shù)據(jù)庫+校準(zhǔn)插件”構(gòu)架的校準(zhǔn)軟件實(shí)施方案,詳細(xì)分析了校準(zhǔn)軟件的模塊組成和實(shí)際開發(fā)過程中采用的關(guān)鍵技術(shù)。
目前,NI設(shè)備校準(zhǔn)軟件已在某大型溫度場測試項(xiàng)目中得到成功運(yùn)用,它為終端用戶提供了對4款板卡實(shí)施校準(zhǔn)的有效技術(shù)手段。該校準(zhǔn)軟件開放的體系結(jié)構(gòu)為構(gòu)建一款通用板卡校準(zhǔn)軟件提供了有益的嘗試和探索。
[1]曲正偉,趙偉.測量儀器的Internet校準(zhǔn)[J].電測與儀表,2006,43(8):1-5.
[2]吳靜,趙偉,胡毅飛.基于Internet的計(jì)量校準(zhǔn)方法探討[J].計(jì)量學(xué)報(bào),2005,26(1):70 -73.
[3]郭占山,李建一.NI數(shù)據(jù)采集卡校準(zhǔn)方法探討[J].計(jì)量技術(shù),2007(6):50-52.
[4]National Instruments Corporation.B/E/M/S series calibration proce-dure for NI-DAQmx[EB/OL].[2008 - 05 - 30].http://digital.ni.com/manuals/websearch/1591DOAB650/D5/88625744A0069FBIC.
[5]National Instruments Corporation.SCXI-1102/B/C calibration procedure[EB/OL].[2003 - 10 - 28].http://www.ni.com/pdf/manuals/370029b.pdf.
[6]National Instruments Corporation.SCXI-1124 user manual[EB/OL].[1999 - 09 - 01].http://www.ni.com/pdf/manuals/320712b.pdf.
[7]Pheanis D,Creasman S.Automated calibration and validation ofautomotive test instrumentation[C]//Automation Congress,2008.WAC 2008,World,2008:1 -6.
[8]羅光坤,張令彌,王彤.基于GPIB接口的儀器與計(jì)算機(jī)之間的通訊[J].儀器儀表學(xué)報(bào),2006,27(6):634-637.
[9]李寧,李進(jìn)杰.儀器控制技術(shù)在自動(dòng)測量系統(tǒng)中的應(yīng)用[J].工業(yè)控制計(jì)算機(jī),2008,21(1):1 -2.
[10]Franklin P,Ryland J.IVI instrument driver guided tour[C]//Autotestcon Proceedings,2004:167 -173.
[11]Cheij D.Using IVI drivers to increase test system performance[C]//IEEE Autotestcon Proceedings,2000:375-79.