版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第四章虛擬儀器硬件模塊驅(qū)動(dòng)程序第一頁,共四十八頁,編輯于2023年,星期五第四章虛擬儀器硬件模塊驅(qū)動(dòng)程序的設(shè)計(jì)方法本章需要掌握的知識(shí)點(diǎn):VISA的特點(diǎn)利用VISA進(jìn)行編程的基本步驟熟記常用的SCPI命令掌握IVI制訂的目的以及目前都制訂了哪幾類儀器的IVI規(guī)范第二頁,共四十八頁,編輯于2023年,星期五(1)儀器驅(qū)動(dòng)程序的概念儀器驅(qū)動(dòng)程序是一套可被用戶調(diào)用的子程序庫,利用它就不必了解每個(gè)儀器的編程協(xié)議和具體編程步驟,只需調(diào)用相應(yīng)的一些函數(shù)就可以完成對(duì)儀器各種功能的操作。儀器驅(qū)動(dòng)程序一般是控制物理儀器的,但也有的是純軟件工具。6.1虛擬儀器驅(qū)動(dòng)程序第三頁,共四十八頁,編輯于2023年,星期五由于虛擬儀器需要提供模擬實(shí)際儀器操作面板的虛擬面板,因此虛擬儀器驅(qū)動(dòng)程序不僅僅是實(shí)施儀器控制的程控代碼,而是儀器程控代碼、高級(jí)軟件編程與先進(jìn)人際交互技術(shù)三者相結(jié)合的產(chǎn)物,是一個(gè)包含實(shí)際儀器使用、操作信息的軟件模塊。(2)虛擬儀器系統(tǒng)中引入驅(qū)動(dòng)程序的必要性第四頁,共四十八頁,編輯于2023年,星期五(3)儀器驅(qū)動(dòng)程序功能儀器驅(qū)動(dòng)程序負(fù)責(zé)處理與某一專門儀器通信和控制的具體過程,通過封裝復(fù)雜的儀器編程細(xì)節(jié),為用戶使用儀器提供了簡(jiǎn)單的函數(shù)接口。用戶不必對(duì)各種諸如GPIB、VXI、PXI等儀器硬件有專門的了解,就可以通過驅(qū)動(dòng)程序來使用這些儀器硬件。第五頁,共四十八頁,編輯于2023年,星期五(4)儀器驅(qū)動(dòng)程序的歷史基本的臺(tái)式系統(tǒng),GPIB儀器(解釋語言BASIC)——70年代中期個(gè)人計(jì)算機(jī)的影響,插卡式儀器(編譯語言C)——80年代可程控儀器標(biāo)準(zhǔn)命令(SCPI,488.2)——90年代初期模塊化儀器驅(qū)動(dòng)程序(Driver)VXI即插即用儀器驅(qū)動(dòng)程序(VXIplug&play,
VPP)
——1993年可互換虛擬儀器驅(qū)動(dòng)程序(IVI)——1997年,還在不斷完善第六頁,共四十八頁,編輯于2023年,星期五第七頁,共四十八頁,編輯于2023年,星期五6.2虛擬儀器驅(qū)動(dòng)程序設(shè)計(jì)標(biāo)準(zhǔn)(VISA)
VISA:VirtualInstrumentationSoftwareArchitecture,即虛擬儀器軟件結(jié)構(gòu),是VPP系統(tǒng)聯(lián)盟制定的I/O接口軟件標(biāo)準(zhǔn)及其相關(guān)規(guī)范的總稱。VISA為虛擬儀器提供了標(biāo)準(zhǔn)化的I/O接口軟件規(guī)范。VISA是整個(gè)工業(yè)界的統(tǒng)一的軟件基礎(chǔ)。虛擬儀器軟件結(jié)構(gòu)中的標(biāo)準(zhǔn)I/O接口軟件稱為VISA庫。第八頁,共四十八頁,編輯于2023年,星期五1.VISA的作用為整個(gè)工業(yè)界提供統(tǒng)一的軟件基礎(chǔ)對(duì)驅(qū)動(dòng)程序、應(yīng)用程序不必考慮接口類型僅規(guī)定為用戶提供的標(biāo)準(zhǔn)函數(shù),不對(duì)具體實(shí)現(xiàn)作任何說明用于編寫符合VPP規(guī)范的儀器驅(qū)動(dòng)程序,完成計(jì)算機(jī)與儀器之間的命令和數(shù)據(jù)傳輸,實(shí)現(xiàn)對(duì)儀器的控制。VISA庫作為低層I/O接口軟件,運(yùn)行于計(jì)算機(jī)系統(tǒng)中。第九頁,共四十八頁,編輯于2023年,星期五2.VISA的特點(diǎn)適用于各類儀器:VXI,PXI,GPIB,RS-232,TCP,USB……與硬件接口無關(guān)既適用于單處理器結(jié)構(gòu)又適用于多處理器或分布式結(jié)構(gòu)適用于多種網(wǎng)絡(luò)機(jī)制第十頁,共四十八頁,編輯于2023年,星期五3.VISA的組成原理第十一頁,共四十八頁,編輯于2023年,星期五幾個(gè)重要概念資源管理器。用于管理所有資源的一種系統(tǒng)資源(控制設(shè)備資源),執(zhí)行管理、控制和分配VISA資源的存在。資源。類似于面向?qū)ο笾械念?。VISA中的資源是一個(gè)計(jì)算機(jī)可以訪問或可與之通信的實(shí)體。會(huì)話。指與任何已經(jīng)存在資源的連接,包括默認(rèn)資源管理器的連接。第十二頁,共四十八頁,編輯于2023年,星期五4.VISA庫函數(shù)資源管理類函數(shù)viOpenDefaultRM(ViPSessionRsrc_Manager_Handle);viOpenDefaultRM(&defaultRMHandle);ViStatusviOpen(ViSessionRsrc_Manager_Handle,ViRsrcInstrument_Descriptor,ViAccessModeAccess_Mode,ViUInt32Open_Timeout,ViPSessionInstrument_Handle);viOpen(defaultRMHandle,"VXI0::24::INSTR",VI_NULL,VI_NULL,&dmmHandle);ViStatusviClose(ViSessionSession_Handle);viClose(dmmHandle);第十三頁,共四十八頁,編輯于2023年,星期五資源操作類函數(shù)寄存器基儀器通訊viIn8,viIn16,viIn32viIn16(dmmHandle,VI_A16_SPACE,0,&manufactureID);viOut8,viOut16,viOut32viOut16(dmmHandle,VI_A16_SPACE,4,0);消息基儀器通訊viRead,viWriteviRead(dmmHandle,readbuf,100,&count);viWrite(dmmHandle,writebuf,100,&count);格式化I/OviPrintf,viScanfviPrintf(dmmHandle,"*IDN?\n");viScanf(dmmHandle,"%t",result);第十四頁,共四十八頁,編輯于2023年,星期五資源模板事件處理viEnableEvent,viDisableEventviInstallHandler,viUninstallHandlerviWaitOnEvent資源屬性viGetAttribute,viSetAttribute第十五頁,共四十八頁,編輯于2023年,星期五用VISA函數(shù)操作儀器的步驟打開VISA資源管理器句柄,用到的函數(shù):viOpenDefaultRM;打開儀器句柄,用到的函數(shù):viFindRsrc、viFindNext、viOpen等;設(shè)置儀器狀態(tài)、控制儀器操作、讀取測(cè)量數(shù)據(jù)、處理儀器事件,用到的函數(shù):viGetAttribute、viSetAttribute、viIn16、viOut16、viPrintf、viScanf、viInstallHandler、viUninstallHandler、viEnableEvent、viDisableEvent、viWaitOnEvent等;釋放儀器句柄,用到的函數(shù):viClose;釋放VISA資源管理器句柄,用到的函數(shù):viClose。第十六頁,共四十八頁,編輯于2023年,星期五VISA函數(shù)應(yīng)用舉例voidmain(void){ error=viOpenDefaultRM(&rsrcManager); /*打開VISA資源管理器*/ //rsrcManager為得到的VISA資源管理器句柄
if(error!=VI_SUCCESS)/*如果出錯(cuò),彈出錯(cuò)誤信息對(duì)話框,返回*/ { MessagePopup("Error","OpenVISAResourceManagerError!"); return; } error=viOpen(rsrcManager,"VXI0::16::INSTR",VI_NULL,VI_NULL, &instHandle);//instHandle為得到的儀器句柄
if(error!=VI_SUCCESS){ MessagePopup("Error","OpenInstrumentError!"); return; } else{ /*獲取儀器模塊代碼,設(shè)置儀器操作超時(shí)時(shí)間為2000毫秒*/
viGetAttribute(instHandle,VI_ATTR_MODEL_CODE,&moduleID); viSetAttribute(instHandle,VI_ATTR_TMO_VALUE,2000); }
viClose(instHandle);/*關(guān)閉儀器句柄和VISA資源管理器*/ viClose(rsrcManager);}第十七頁,共四十八頁,編輯于2023年,星期五6.3可編程儀器標(biāo)準(zhǔn)命令(StandardCommandforProgrammable
Instrument,簡(jiǎn)稱SCPI(1)基本概念:SCPI是為解決程控儀器編程進(jìn)一步標(biāo)準(zhǔn)化而制訂的標(biāo)準(zhǔn)程控語言,目前已經(jīng)成為重要的程控儀器軟件標(biāo)準(zhǔn)之一。第十八頁,共四十八頁,編輯于2023年,星期五(2)與過去的儀器編程語言比較1)SCPI描述的是人們正在試圖測(cè)量的信號(hào),而不是正在用以測(cè)量信號(hào)的儀器;2)相同的SCPI命令可用于不同類型的儀器,這稱為SCPI的“橫向兼容性”;3)SCPI命令可以擴(kuò)展,其功能可隨著儀器功能的增加而升級(jí)擴(kuò)展,并適用于儀器產(chǎn)品的更新?lián)Q代,這稱為SCPI的“縱向兼容性”。第十九頁,共四十八頁,編輯于2023年,星期五(3)SCPI儀器模型信號(hào)路徑選擇測(cè)量功能格式化觸發(fā)器存儲(chǔ)器信號(hào)路徑選擇信號(hào)發(fā)生格式化數(shù)據(jù)總線數(shù)據(jù)總線第二十頁,共四十八頁,編輯于2023年,星期五(4)SCPI命令句法包括三部分:1)語法和式樣,用于描述SCPI命令的產(chǎn)生規(guī)則以及基本的命令結(jié)構(gòu);2)命令標(biāo)記,用于提供SCPI要求和可供選擇的命令;3)數(shù)據(jù)交換格式,描述了在儀器與應(yīng)用程序之間、應(yīng)用程序與應(yīng)用程序之間或者儀器與儀器之間可以使用的數(shù)據(jù)集標(biāo)準(zhǔn)表示方法。第二十一頁,共四十八頁,編輯于2023年,星期五1)語法和式樣SCPI命令由程控題頭、程控參數(shù)和注釋三部分組成。有兩種形式:采用IEEE488.2命令,也稱為SCPI公用命令。它可以是詢問命令也可是非詢問命令,前一種情況命令結(jié)尾處有問號(hào)。舉例:*IDN?第二十二頁,共四十八頁,編輯于2023年,星期五采用以冒號(hào)分割的一個(gè)或者數(shù)個(gè)SCPI助記符構(gòu)成。舉例:OUTPut:FILTer:LPAss第二十三頁,共四十八頁,編輯于2023年,星期五關(guān)鍵詞組成短形助記符的規(guī)則1)如果關(guān)鍵詞不多于四個(gè)英語字母,則關(guān)鍵詞就是短形助記符;2)如果關(guān)鍵詞多于四個(gè)英語字母,則通常保留關(guān)鍵詞的前四個(gè)字母作為短形助記符。3)所有長(zhǎng)形、短形助記符均允許有數(shù)字后綴,以區(qū)別類似結(jié)構(gòu)的多種應(yīng)用場(chǎng)合。第二十四頁,共四十八頁,編輯于2023年,星期五2)命令標(biāo)記主要給出SCPI要求的和可供選擇的命令。SCPI命令分為儀器公用命令(IEEE488.2命令)和SCPI主干命令兩部分。第二十五頁,共四十八頁,編輯于2023年,星期五3)數(shù)據(jù)交換格式SCPI的交換格式方法與IEEE488.2語法是兼容的,分為標(biāo)準(zhǔn)參數(shù)格式和數(shù)據(jù)交換格式兩部分。第二十六頁,共四十八頁,編輯于2023年,星期五(5)常用SCPI命令簡(jiǎn)介1)常用儀器公用命令*IDN?功能:用于查詢儀器種類的查詢命令,儀器用一條帶有四個(gè)字段的信息進(jìn)行回答,這四個(gè)字段分別為:生產(chǎn)廠家、儀器型號(hào)、系列號(hào)和固件級(jí)別。使用方法:如連接了一個(gè)泰克公司的函數(shù)發(fā)生器VX5520,則執(zhí)行該命令后,返回代碼如下:Tektronix、VX5520、BO356、V1.1第二十七頁,共四十八頁,編輯于2023年,星期五*CLS?功能:清除命令。中斷正在執(zhí)行的命令,消除在命令緩沖區(qū)等待的命令。第二十八頁,共四十八頁,編輯于2023年,星期五*RST功能:復(fù)位儀器到初始上電狀態(tài)。在儀器工作過程中,程序出錯(cuò)或者其他死機(jī)情況經(jīng)常需要復(fù)位儀器。用法:一般情況下,要先用*CLS?清除儀器中的命令,在進(jìn)行復(fù)位。第二十九頁,共四十八頁,編輯于2023年,星期五*TST?功能:自檢命令用法:該命令復(fù)位儀器,完成自檢。返回“0”表示儀器正常;否則儀器存在故障需要維修。第三十頁,共四十八頁,編輯于2023年,星期五*ERR?功能:錯(cuò)誤信息查詢命令。當(dāng)儀器操作過程中發(fā)生錯(cuò)誤時(shí),錯(cuò)誤代碼和信息存儲(chǔ)在儀器的錯(cuò)誤隊(duì)列中。用法:用該命令可讀入錯(cuò)誤隊(duì)列
SYST:ERR?第三十一頁,共四十八頁,編輯于2023年,星期五2)SCPI主干命令MEASure?功能:測(cè)量命令。該命令配置儀器,并用指定量程和儀器進(jìn)行測(cè)試。當(dāng)儀器觸發(fā)后,該指令完成測(cè)試并返回讀數(shù)到輸出緩沖區(qū)。用法:MEASure:VOLTage:AC?[<range>[,<resolution>]][,<channel-list>]參數(shù)range指定待測(cè)信號(hào)最大可能電壓值,然后儀器自動(dòng)選擇最接近的量程。第三十二頁,共四十八頁,編輯于2023年,星期五CONFigure:功能:配置命令。該命令用指定參數(shù)設(shè)置儀器。用法:可以使用初始化命令I(lǐng)NITiate命令置儀器在等待觸發(fā)狀態(tài);或者使用Read命令完成測(cè)量并將讀數(shù)送入輸出緩沖區(qū)。執(zhí)行該命令后,測(cè)量不會(huì)立即開始,因此可以允許用戶在實(shí)際測(cè)量前改變儀器的配置。第三十三頁,共四十八頁,編輯于2023年,星期五Read?功能:該命令通常與CONFigure命令配合使用,它完成兩個(gè)功能:置儀器在等待觸發(fā)狀態(tài)(執(zhí)行INITiate命令);當(dāng)觸發(fā)后,直接將讀數(shù)送入輸出緩沖區(qū)。第三十四頁,共四十八頁,編輯于2023年,星期五Fetch?功能:取命令。該命令取出由最近的INITiate命令放在內(nèi)存中的讀數(shù)值,并將這些讀數(shù)送到輸出緩沖區(qū)。在送該命令前,必須先執(zhí)行INITiate命令,否則將產(chǎn)生錯(cuò)誤。第三十五頁,共四十八頁,編輯于2023年,星期五CALIbration功能:校準(zhǔn)命令。該命令選擇儀器的參考工作頻率,指定打開或者關(guān)閉自動(dòng)調(diào)零方式。第三十六頁,共四十八頁,編輯于2023年,星期五FORMat:功能:格式化命令。該命令確定通過MEASure?、READ和FETch?命令得到的測(cè)量數(shù)據(jù)格式。第三十七頁,共四十八頁,編輯于2023年,星期五SAMPle:功能:采樣命令。該命令控制觸發(fā)信號(hào)類型與參數(shù)。第三十八頁,共四十八頁,編輯于2023年,星期五/*以下是聲明區(qū)*/Intmain(void){CharrdResponse[RESPONSE_LENGTH]:/*響應(yīng)返回值*/Intstatus;/*返回狀態(tài)值*/Shortid;/*器件軟件句柄*//*以下是開啟區(qū)*/Id=ibfind(”devl”);/*開啟GPIB器件*/Status=ibPad(5):/*器件主地址為5*//*以下是器件I/O區(qū)*/status=ibwrt(id,”*IDN?”,5):/*/*以下是關(guān)閉區(qū)*//*以下是關(guān)閉語句空*/Return;}例1.用非VISA的I/0接口軟件庫實(shí)現(xiàn)對(duì)GPIB儀器的讀/寫操作第三十九頁,共四十八頁,編輯于2023年,星期五例2.用非VISA的I/O接口軟件庫實(shí)現(xiàn)對(duì)VXI消息基儀器的讀/寫操作
Intmain(void)CharrdResponse[PESPONSE_LENGTH];/*響應(yīng)返回值*/Int16status;/*返回狀態(tài)值*/Unit32retCount;/*傳送字節(jié)數(shù)*/Int16logicalAddr,mode;/*器件邏輯地址和傳送模式*/Status==initVXILibrary():logicalAddr=5:/*以下是器件I/O區(qū)*/Status=WSwri(logiealAddr,”*IDN”?,5,mode,&retCount);/*發(fā)送查詢標(biāo)識(shí)符命令*/Status=WSrd(logiealAddr,rdResPonse,RESPONSE_LENGTH,mode,&retCount):/讀回響應(yīng)值*/……以下是關(guān)閉區(qū)CloseVXIUbrary();Returno;}第四十頁,共四十八頁,編輯于2023年,星期五例3.用VISA的I/O接口軟件庫實(shí)現(xiàn)對(duì)GPIB儀器與VXI消息基儀器的讀/寫操作Intmain(void){VicharrdResponse[PESPONSE_LENGTH];/*響應(yīng)返回值*/Viintl6status;l*返回狀態(tài)值*lViuint32retCount;/*傳送字節(jié)數(shù)*/VISessionvi;/*儀器軟件句柄*//*以下是開啟區(qū)*lStatus=viOPen(viDefaultRM,”GPIBO::5”,0,0,&vi);/*若對(duì)VXI消息基儀器進(jìn)行操作.將GPIB換成即可*//*以下是器件I/O區(qū)*/Status=viwrite(vi,”*IDN?”,5,&retCount);/*發(fā)送查詢標(biāo)識(shí)符命令*/Status=viRead(vi,rdResponse,RESPONSE_LENGTH,&retCount):/*讀回響應(yīng)值*/Status=viClose(vi):Returno;}第四十一頁,共四十八頁,編輯于2023年,星期五總結(jié)在聲明區(qū)。聲明所用的函數(shù)類型均為VISA數(shù)據(jù)類型,它是與編程語言無關(guān)的。VISA數(shù)據(jù)類型與編程語言數(shù)據(jù)類型的對(duì)應(yīng)什么包含在特定的頭文件中。在開啟區(qū)。調(diào)用的是ViOpenDefaultRM(ViSessionsesn),打開與默認(rèn)資源管理器的會(huì)話,與之建立聯(lián)系。然后調(diào)用vIOpen(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年股權(quán)融資合同:中小企業(yè)擴(kuò)展版圖3篇
- 2024設(shè)計(jì)費(fèi)合同范本:科技館互動(dòng)展項(xiàng)設(shè)計(jì)專約3篇
- 2024年精煉煤炭購(gòu)銷標(biāo)準(zhǔn)協(xié)議模版一
- 2025年度藝術(shù)品拍賣居間合同范本3篇
- 2025年度出口合同履行中的匯率波動(dòng)應(yīng)對(duì)與風(fēng)險(xiǎn)管理協(xié)議3篇
- 2024年魚塘租賃與管理合同典范2篇
- 2025年度綠色廠房租賃中介服務(wù)費(fèi)合同范本3篇
- 2024年物流服務(wù)合同:跨境電商B2C業(yè)務(wù)的物流解決方案
- 2024年高性能計(jì)算機(jī)硬件采購(gòu)與銷售合同一
- 2024年跨界電商合作框架協(xié)議
- 2022年長(zhǎng)春市中小學(xué)教師筆試試題
- 肉牛肉羊屠宰加工項(xiàng)目選址方案
- 清洗劑msds清洗劑MSDS
- 中學(xué)數(shù)學(xué)教學(xué)案例
- 同等學(xué)力申碩英語詞匯400題及解析
- 大二上學(xué)期 植物地理學(xué)ppt課件5.3 植物生活與環(huán)境-溫度條件(正式)
- 人教版七年級(jí)上冊(cè)數(shù)學(xué)第一章有理數(shù)計(jì)算題訓(xùn)練(無答案)
- 新能源發(fā)電技術(shù)教學(xué)大綱
- 微生物在農(nóng)業(yè)上的應(yīng)用技術(shù)課件
- 國(guó)家自然科學(xué)基金申請(qǐng)書填寫課件
- 各種面料服裝用洗滌標(biāo)志及說明
評(píng)論
0/150
提交評(píng)論