LabWindowsCVI入門之第三章:計(jì)算機(jī)外設(shè)開發(fā)_第1頁(yè)
LabWindowsCVI入門之第三章:計(jì)算機(jī)外設(shè)開發(fā)_第2頁(yè)
LabWindowsCVI入門之第三章:計(jì)算機(jī)外設(shè)開發(fā)_第3頁(yè)
LabWindowsCVI入門之第三章:計(jì)算機(jī)外設(shè)開發(fā)_第4頁(yè)
LabWindowsCVI入門之第三章:計(jì)算機(jī)外設(shè)開發(fā)_第5頁(yè)
已閱讀5頁(yè),還剩40頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、LabWindows/CVI入門之第三章:計(jì)算機(jī)外設(shè)開發(fā)通過(guò)上一章節(jié)的學(xué)習(xí),大家已經(jīng)掌握了在CVI下開發(fā)GUI應(yīng)用程序的基本步驟和基本方法。CVI的重要應(yīng)用是工業(yè)接口通信、復(fù)雜的數(shù)據(jù)采集和儀器控制系統(tǒng)的開發(fā),所以對(duì)于學(xué)習(xí)CVI來(lái)說(shuō)僅僅掌握GUI程序的開發(fā)還遠(yuǎn)遠(yuǎn)不夠。實(shí)際生產(chǎn)生活中,有些設(shè)備要求能夠滿足軍用或工業(yè)領(lǐng)域惡劣環(huán)境或極端天氣下對(duì)于可靠性的要求,有些設(shè)備要求能夠滿足快速大容量數(shù)據(jù)的持續(xù)傳輸?shù)囊?,有些設(shè)備要求能夠滿足防塵防水防暴防震防撬的要求,有些設(shè)備要求滿足低成本的要求,紛繁的要求導(dǎo)致了不同的接口標(biāo)準(zhǔn)以及接口協(xié)議的誕生。僅僅掌握了CVI下GUI的編程只能說(shuō)是對(duì)CVI入門,卻沒(méi)有充分的體

2、會(huì)到CVI的精華。在紛繁的接口與個(gè)性化的需求下,開發(fā)簡(jiǎn)捷高效、穩(wěn)定易用、用戶體驗(yàn)良好的程序才是我們學(xué)習(xí)CVI的終極目標(biāo)。3.1 計(jì)算機(jī)組件編程在本節(jié)中,我們將會(huì)接觸到在CVI下進(jìn)行文件操作、音頻播放、OpenGL操作、SQL數(shù)據(jù)庫(kù)查詢、剪貼板操作、動(dòng)態(tài)數(shù)據(jù)交換、ActiveX控件操作、調(diào)用.Net操作等相關(guān)內(nèi)容。在介紹相關(guān)內(nèi)容時(shí),我們只介紹原理與CVI對(duì)應(yīng)的函數(shù)功能,具體使用方法需要大家查詢CVI的幫助文檔。3.1.1 在CVI中進(jìn)行文件操作在程序運(yùn)行時(shí),常常需要將一些數(shù)據(jù)(運(yùn)行的最終結(jié)果或中間數(shù)據(jù))輸出到磁盤上存放起來(lái),以后需要時(shí)再?gòu)拇疟P中輸入到計(jì)算機(jī)內(nèi)存。這樣就需要對(duì)文件進(jìn)行讀寫操作,La

3、bWindows/CVI中對(duì)文件讀寫操作的常用函數(shù)如下:(1) OpenFile 打開一個(gè)文件用以讀或者寫,函數(shù)返回文件句柄;(2) CloseFile 關(guān)閉指定的文件;(3) ReadFile 從文件中讀取指定字節(jié)數(shù)的內(nèi)容到字符串緩沖區(qū);(4) WriteFile 將字符串緩沖區(qū)中指定字節(jié)數(shù)的內(nèi)容寫到文件中;(5) ArrayToFile 將數(shù)組內(nèi)容保存到文件中;(6) FileToArray 從文件中讀取數(shù)據(jù)存儲(chǔ)到數(shù)組中。(7) ReadLine 從文件讀取字節(jié)直到換行。(8) WriteLine 將緩沖區(qū)中指定的字節(jié)數(shù)寫入文件中,同時(shí)換行。(9) DeleteFile 刪除文件(10)

4、RenameFile 重命名文件(11) CopyFile 復(fù)制文件下面給出了一個(gè)簡(jiǎn)單的新建test.txt文件,并且向文本文件中寫入字符并讀出來(lái)的例子。該函數(shù)運(yùn)行之后,將在工程文件夾下新建一test.txt的文本文件,文件內(nèi)容如圖 31所示。程序運(yùn)行結(jié)果如圖 32所示。圖31 文本文件內(nèi)容圖32 程序運(yùn)行結(jié)果與文件讀寫有關(guān)的函數(shù)可以在Formatting and I/O Library的File I/O中找到,與文件操作有關(guān)的函數(shù)可以在Utility Library的File Utilities中找到,與文件夾有關(guān)的函數(shù)可以在Utility Library的Directory Utiliti

5、es中找到。另外,ANSI C中對(duì)文件的操作的函數(shù)如fopen、fread、fputs等函數(shù)在CVI中仍然可以使用。3.1.2網(wǎng)絡(luò)通信:在CVI中調(diào)用TCP庫(kù)在測(cè)控領(lǐng)域,隨著網(wǎng)絡(luò)計(jì)算、遠(yuǎn)程監(jiān)控與遠(yuǎn)程診斷等在儀器儀表領(lǐng)域的應(yīng)用與發(fā)展,網(wǎng)絡(luò)通信已經(jīng)成為儀器的基本功能。CVI也提供了Internet庫(kù)、TCP庫(kù)、DataSocket庫(kù)以供用戶使用。Internet庫(kù)主要提供了FTP協(xié)議、Telnet協(xié)議以及POP3協(xié)議的客戶端的函數(shù)支持。TCP庫(kù)主要提供了基于TCP協(xié)議的網(wǎng)絡(luò)數(shù)據(jù)收發(fā)函數(shù)。DataSocket庫(kù)提供了比TCP更加方便有效的NI推出的DataSocket的操作函數(shù)。在本小節(jié)的介紹之前,

6、我們假設(shè)大家已經(jīng)知道了TCP/IP協(xié)議、FTP協(xié)議、POP3協(xié)議、HTTP協(xié)議、Telnet協(xié)議以及他們之間的相互關(guān)系,知道了IP地址、子網(wǎng)掩碼、DNS、網(wǎng)關(guān)是什么。若對(duì)以上問(wèn)題有含糊之處,建議立即通過(guò)Google等手段理解這些概念。本節(jié)主要介紹TCP通信的相關(guān)內(nèi)容。利用TCP函數(shù)庫(kù)進(jìn)行網(wǎng)絡(luò)傳輸都要涉及服務(wù)器端和客戶端。TCP服務(wù)器可以通過(guò)網(wǎng)絡(luò)向用戶應(yīng)用程序發(fā)送數(shù)據(jù)和從客戶應(yīng)用程序接收數(shù)據(jù)。TCP客戶可以向TCP服務(wù)應(yīng)用程序發(fā)送連接請(qǐng)求,并從服務(wù)器接收數(shù)據(jù)和向服務(wù)器發(fā)送數(shù)據(jù)。服務(wù)器需要注冊(cè),注冊(cè)以后等待客戶向它發(fā)送連接請(qǐng)求,而客戶只能向已經(jīng)存在的服務(wù)器發(fā)送連接請(qǐng)求。運(yùn)行TCP服務(wù)器應(yīng)用程序的計(jì)

7、算機(jī)一般叫做主機(jī)。服務(wù)器端的傳輸控制函數(shù)如下:(1) RegisterTCPServer 注冊(cè)TCP服務(wù)器(2) ServerTCPRead 從客戶端讀取數(shù)據(jù)(3) ServerTCPWrite 向客戶端發(fā)送數(shù)據(jù)(4) UnregisterTCPServer 注銷TCP服務(wù)器(5) DisconnectTCPClient 斷開與客戶端的連接要是程序成為TCP服務(wù)器,必須要運(yùn)行RegisterTCPServer函數(shù)。客戶端的傳輸控制函數(shù)如下:(1) ConnectToTCPServer 連接到TCP服務(wù)器(2) ClientTCPServer 從服務(wù)器讀取數(shù)據(jù)(3) ClientTCPWrite

8、 向服務(wù)器寫數(shù)據(jù)(4) DisconnectFromTCPServer 斷開與TCP服務(wù)器的連接另外CVI的TCP庫(kù)還提供了TCP的回調(diào)函數(shù),并提供了連接開始(TCO_CONNECT)、斷開連接(TCP_DISCONNECT)以及數(shù)據(jù)有效(TCP_DATAREADY)3種消息。下面給出了一個(gè)簡(jiǎn)單的建立TCP服務(wù)器,并通過(guò)客戶端連接TCP服務(wù)器的例子。在該示例程序中,TCP服務(wù)器運(yùn)行后客戶端向服務(wù)器發(fā)送“Hello,Im client.”的文本信息,服務(wù)器向客戶端返回“OK”信息。TCP服務(wù)器代碼如下:TCP客戶端的代碼如下:TCP服務(wù)器與TCP客戶端的程序分別保存在兩個(gè)不同的工程中。運(yùn)行時(shí),先

9、運(yùn)行TCP服務(wù)器程序,再運(yùn)行TCP客戶端程序,運(yùn)行效果如所示。圖 33 TCP示例程序運(yùn)行結(jié)果3.1.3 網(wǎng)絡(luò)通信:在CVI中調(diào)用Internet庫(kù)Internet庫(kù)主要提供了FTP協(xié)議、Telnet協(xié)議以及POP3協(xié)議的客戶端的函數(shù)支持。FTP是應(yīng)用層的協(xié)議,它基于TCP協(xié)議,負(fù)責(zé)進(jìn)行文件的傳輸。CVI通過(guò)封裝隱藏了一些底層的FTP操作 ,提供了兩個(gè)方便的FTP操作函數(shù):(1) InetFTPAutoSend 將本地的文件傳輸?shù)街付ǖ倪h(yuǎn)程服務(wù)器主機(jī)上(2) InetFTPAutoRetrieve 將指定遠(yuǎn)程服務(wù)器上的文件傳輸?shù)奖緳C(jī)上。Telnet協(xié)議也是應(yīng)用層的協(xié)議,同樣基于TCP協(xié)議,是I

10、nternet遠(yuǎn)程登陸服務(wù)的標(biāo)準(zhǔn)協(xié)議和主要方式。CVI提供了對(duì)Telnet操作的以下函數(shù):(1) InetTelnetOpen 建立Telnet連接(2) InetTelnetRead 從Telnet服務(wù)器中讀取數(shù)據(jù)(3) InetTelnetWrite 向Telnet服務(wù)器寫數(shù)據(jù)(4) InetTelnetClose 關(guān)閉Telnet連接(5) InetTelnetReadUntil 從Telnet服務(wù)器中讀取數(shù)據(jù),直到遇到指定字符或達(dá)到指定字節(jié)數(shù)或者超時(shí)(6)InetTelnetRunScript 在Telnet服務(wù)器上執(zhí)行指定的腳本POP3也是應(yīng)用層的協(xié)議,基于TCP協(xié)議,規(guī)定個(gè)人計(jì)算機(jī)

11、如何連接到互聯(lián)網(wǎng)上的郵件服務(wù)器進(jìn)行收發(fā)郵件。POP3協(xié)議允許用戶從服務(wù)器上把郵件存儲(chǔ)到本地主機(jī)(即自己的計(jì)算機(jī))上,同時(shí)根據(jù)客戶端的操作刪除或保存在郵件服務(wù)器上的郵件。CVI提供了對(duì)POP3操作的以下函數(shù):(1) InetPop3Open 連接POP3服務(wù)器(2) InetPop3Close 關(guān)閉與POP3服務(wù)器的連接(3) InetPop3GetNumMessages 獲取POP3服務(wù)器上的消息數(shù)量(4) InetPop3GetMessageSize 獲取POP3服務(wù)器上消息的大小(5) InetPop3GetMessageInfo 獲取POP3服務(wù)器上郵件的具體信息(6) InetPop3

12、DeleteMessage 刪除POP3服務(wù)器上的消息(7) InetPop3GetMessage 獲取POP3電子郵件消息頭與內(nèi)容(8) InetPop3ParseMessageHeader 解析POP3郵件的消息頭3.1.4 網(wǎng)絡(luò)通信:在CVI中調(diào)用DataSocket庫(kù)DataSocket技術(shù)是NI公司推出的面向測(cè)控領(lǐng)域的網(wǎng)絡(luò)通信技術(shù)。DataSocket技術(shù)基于Microsoft的COM和ActiveX技術(shù),對(duì)TCP/IP協(xié)議進(jìn)行高度封裝,面向測(cè)量和自動(dòng)化應(yīng)用,用于共享和發(fā)布實(shí)時(shí)數(shù)據(jù)DamSockd能有效地支持本地計(jì)算機(jī)上不同應(yīng)用程序?qū)μ囟〝?shù)據(jù)的同時(shí)應(yīng)用,以及網(wǎng)絡(luò)和不同計(jì)算機(jī)的多個(gè)應(yīng)用

13、程序之間的數(shù)據(jù)交互,實(shí)現(xiàn)跨機(jī)器、跨語(yǔ)言、跨進(jìn)程實(shí)時(shí)數(shù)據(jù)共享。在測(cè)試測(cè)量過(guò)程中,用戶只需要知道數(shù)據(jù)源和數(shù)據(jù)庫(kù)及需要交換的數(shù)據(jù)就可以直接進(jìn)行高層應(yīng)用程序的開發(fā),實(shí)現(xiàn)高速數(shù)據(jù)傳輸,而不必關(guān)心 底層的實(shí)現(xiàn)細(xì)節(jié),從而簡(jiǎn)化通信程序的編寫過(guò)程、提高編程效率。DataSocket包括DataSocket Server Manager(以下簡(jiǎn)稱Manager),DataSocket Server和DataSocket API一部分。Manager是一個(gè)獨(dú)立運(yùn)行的程序,主要功能有:設(shè)置DataSocket Server連接的客戶端程序的最大數(shù)目和創(chuàng)建數(shù)據(jù)項(xiàng)的最大數(shù)目:創(chuàng)建用戶組和用戶;設(shè)置用戶創(chuàng)建和讀寫數(shù)據(jù)項(xiàng)的權(quán)

14、限;限制身份不明的客戶對(duì)服務(wù)器進(jìn)行訪問(wèn)和攻擊。例如,將Manager中的Default Reader設(shè)置為everyhost,則網(wǎng)中的每臺(tái)客戶計(jì)算機(jī)都可以讀取服務(wù)器上的數(shù)據(jù)。Manager對(duì)DataSocket Server 的配置必須在本地計(jì)算機(jī)上進(jìn)行,而不能遠(yuǎn)程配置或通過(guò)運(yùn)行程序來(lái)配置。DataSocket Server 是一個(gè)必須運(yùn)行在服務(wù)器端的程序,負(fù)責(zé)監(jiān)管Manager中所設(shè)定的具有各種權(quán)限的用戶組和客戶端程序之間的數(shù)據(jù)交換。DataSocket Server通過(guò)內(nèi)部數(shù)據(jù)自描述格式對(duì)TCP/IP進(jìn)行優(yōu)化和管理,簡(jiǎn)化Internet通信方式,提供自由的數(shù)據(jù)傳輸,可以直接傳送虛擬儀器程序

15、所采集到的布爾型、數(shù)字型、字符串型、數(shù)組型和波形等常用類型的數(shù)據(jù)。它可以和測(cè)控應(yīng)用程序安裝在同一臺(tái)計(jì)算機(jī)上,也可以分裝在不同的計(jì)算機(jī)上,以便用防火墻進(jìn)行隔離來(lái)增加整個(gè)系統(tǒng)的安全性。DataSocket Server不會(huì)占用測(cè)控計(jì)算機(jī)CPU的工作時(shí)間,測(cè)控應(yīng)用程序可以運(yùn)行得更快。使用DataSocket技術(shù)進(jìn)行通信時(shí)服務(wù)器和客戶端得計(jì)算機(jī)上筆形都進(jìn)行DataSocket Server。DataSocket API提供獨(dú)立的接口,用于不同的語(yǔ)言平臺(tái)內(nèi)部多種數(shù)據(jù)類型的通讀。在LabVIEW中,DataSocket API被制作成ActiveX控件和一系列功能VI(Virtual Instrument

16、),用戶可以方便地使用。一般由服務(wù)器進(jìn)行數(shù)據(jù)采集,根據(jù)需要將測(cè)量地?cái)?shù)據(jù)寫入DataSocket 數(shù)據(jù)公共區(qū),然后客戶端通過(guò)網(wǎng)絡(luò)從數(shù)據(jù)公共區(qū)讀取所需地測(cè)量數(shù)據(jù)。DataSocket 庫(kù)函數(shù)介紹如下。(1) DS_Open創(chuàng)建 DataSocket 對(duì)象并連接到數(shù)據(jù)源(2) DS_DiscardObjHandle 釋放 DataSocket 句柄和它占用的相關(guān)資源(3) DS_GetDataType 獲取 DataSocket 對(duì)象的數(shù)據(jù)類型(4) DS_GetDataValue 獲取 DataSocket 對(duì)象相關(guān)的數(shù)據(jù)值(5) DS_SetDataValue 設(shè)置 DataSocket 對(duì)象相

17、關(guān)的數(shù)據(jù)值(6)DS_Update在寫連接,把 DataSocket 對(duì)象的屬性和數(shù)據(jù)寫到 DataSocket 服務(wù)器;在讀連接,從 DataSocket 服務(wù)器讀取 DataSocket 對(duì)象的屬性和數(shù)據(jù)(7) DS_SelectURL 允許終端用戶選擇連接的 DataSocket URL(8) DS_FreeMemory 釋放 DataSocket 庫(kù)函數(shù)占用的內(nèi)存(9) DS_GetLibraryErrorString 返回描述庫(kù)錯(cuò)誤的字符串DataSocket是一個(gè)獨(dú)立于平臺(tái)的解決方案,限于篇幅,此處不再給出DataSocket的示例程序,感興趣的同學(xué)可以通過(guò)CVI安裝目錄下的sam

18、ples中datasocket相關(guān)部分自行學(xué)習(xí)。3.1.5在CVI中使用音頻動(dòng)畫在許多測(cè)控系統(tǒng)中,常常需要加入音頻、圖像、動(dòng)畫或具有互動(dòng)功能的3D模型。在本節(jié)中,我們將會(huì)詳細(xì)介紹如何向應(yīng)用程序中添加這些控件。圖像在程序中添加圖像相對(duì)比較簡(jiǎn)單,CVI中直接提供了圖像控件,通過(guò)控件的幫助文檔很容易掌握在GUI中添加圖像以及通過(guò)程序更改圖像的方法。動(dòng)畫動(dòng)畫控件是由Picture Ring(圖像列表)控件轉(zhuǎn)化而來(lái),在編輯界面添加PictureRing之后,通過(guò)菜單-File-Open-Function Tree(*.fp),打開CVI安裝目錄下toolslibcustctrlanimate.fp文件,

19、在CVI窗口的左下角即出現(xiàn)Animation Control的庫(kù)。庫(kù)中提供了如下四個(gè)函數(shù):(1) AnimateCtrl_Create 直接創(chuàng)建動(dòng)畫控件(此函數(shù)會(huì)自動(dòng)在編輯界面添加Picture Ring控件,但不會(huì)自動(dòng)給Picture Ring添加圖片)(2) AnimateCtrl_ConvertFromPictRing 將Picture Ring控件轉(zhuǎn)換為動(dòng)畫控件(3) AnimateCtrl_SetAttribute 設(shè)置動(dòng)畫控件的屬性(4) AnimateCtrl_GetAttribute 獲取動(dòng)畫控件的屬性另外在最新版的CVI中,Picture控件提供了gif的支持,用戶可以直接添

20、加gif動(dòng)畫。音頻同樣CVI也提供了對(duì)音頻播放功能的支持。CVI只提供了對(duì)wav文件播放的支持,若需要支持其他格式的文件需要調(diào)用其他的dll文件完成。函數(shù)為:sndPlaySound 播放指定文件路徑的wav文件OpenGLCVI默認(rèn)提供對(duì)OpenGL的支持,函數(shù)庫(kù)文件為cviogl.fp,位于CVI安裝目錄的toolslibcustctrlcviogl.fp。該函數(shù)庫(kù)文件包含了控件與作圖兩個(gè)子類的函數(shù),可以完成創(chuàng)建、更新、刪除OpenGL控件以及獲取OpenGL控件屬性等功能。尤其需要注意的是,我們不僅可以使用cviogl.fp中提供的函數(shù),OpenGL中通用的glau.lib、glu32.

21、lib、opengl32.lib庫(kù)中的所有函數(shù)都可以使用。也就是說(shuō),OpenGL強(qiáng)大的功能也可以在CVI環(huán)境下發(fā)揮的淋漓盡致。OpenGL本身就是一個(gè)功能強(qiáng)大的庫(kù),目前很多3D游戲都是基于OpenGL設(shè)計(jì),此處篇幅所限不再展開,感興趣的讀者可以將以前寫的OpenGL代碼移植到CVI環(huán)境下。3.1.6在CVI中使用SQL ToolKitLabWindows/CVI SQLToolkit是一個(gè)用來(lái)訪問(wèn)數(shù)據(jù)庫(kù)的軟件工具包。工具包里包含了一個(gè)用來(lái)完成一般數(shù)據(jù)庫(kù)任務(wù)的高級(jí)函數(shù)集。在其基礎(chǔ)上,可實(shí)現(xiàn)定制任務(wù)等高級(jí)功能的開發(fā)。LabWindows/CVI SQL工具包提供若干ODBC數(shù)據(jù)庫(kù)驅(qū)動(dòng)器,工具包符合

22、ODBC標(biāo)準(zhǔn),因此對(duì)任何符合ODBC數(shù)據(jù)庫(kù)驅(qū)動(dòng)器均可使用。常見的Microsoft Office Access支持的.accdb、.mdb文件都可以通過(guò)ODBC數(shù)據(jù)庫(kù)驅(qū)動(dòng)器使用。SQL Toolkit并不隨CVI的安裝發(fā)行包一起安裝,用戶若想使用CVI開發(fā)數(shù)據(jù)庫(kù)需要額外從NI的官方網(wǎng)站下載:/evaluation/cvi/pc/toolkits/NILWCVISQL220.exe利用CVI SQL Toolkit進(jìn)行數(shù)據(jù)庫(kù)操作通常由以下五步完成:連接數(shù)據(jù)庫(kù)-激活SQL連接-處理SQL語(yǔ)句-斷開SQL連接-斷開數(shù)據(jù)庫(kù)。圖 35提供了使用SQL Toolkit實(shí)現(xiàn)數(shù)據(jù)庫(kù)操作的流程圖,一般對(duì)ODBC

23、數(shù)據(jù)庫(kù)進(jìn)行操作都是根據(jù)圖 35的說(shuō)明依次調(diào)用內(nèi)部的函數(shù)實(shí)現(xiàn)的。連接數(shù)據(jù)庫(kù)CVI提供的連接數(shù)據(jù)庫(kù)的函數(shù)只有一個(gè):DBConnect。DBConnect的參數(shù)為ODBC連接字符串。ODBC連接字符串可以在ODBC數(shù)據(jù)源管理器(在“開始菜單”-“程序”-“管理工具”-“數(shù)據(jù)源 (ODBC)”中打開)的系統(tǒng)DSN中添加。如圖 34所示的第一個(gè)數(shù)據(jù)庫(kù)的連接字符串應(yīng)該為:DSN=CVI SQL Samples激活SQL連接CVI提供了兩種激活SQL連接的方式:自動(dòng)SQL和顯式SQL。自動(dòng)SQL對(duì)應(yīng)圖 35的DBBeginMap及下面的系列函數(shù),只能構(gòu)造簡(jiǎn)單的SELECT語(yǔ)句和CREATE TABLE語(yǔ)句。

24、顯式SQL對(duì)應(yīng)圖 35的DBActivateSQL及下方的系列函數(shù),可以執(zhí)行更復(fù)雜的SELECT語(yǔ)句以及其他語(yǔ)句。處理SQL語(yǔ)句使用SELECT語(yǔ)句必須將選擇的字段綁定到程序中的變量上。接著用取值函數(shù)獲取所選記錄。每次調(diào)用取值函數(shù),工具包將列變量拷貝到在程序中綁定的變量。更新行或創(chuàng)建行時(shí)還可用綁定的變量,即更新行或創(chuàng)建行時(shí)將新值拷貝到綁定的變量并隨后調(diào)用適當(dāng)?shù)暮瘮?shù),將程序中的數(shù)據(jù)添加到數(shù)據(jù)庫(kù)對(duì)應(yīng)的字段。CVI SQL Toolkit提供了DBMapColumnTo函數(shù)以及DBBindCol函數(shù)(如圖 35),幫助用戶綁定數(shù)據(jù)庫(kù)的對(duì)應(yīng)數(shù)據(jù)到變量中。斷開SQL連接SQL操作后,應(yīng)該斷開SQL連接來(lái)

25、釋放系統(tǒng)資源。對(duì)于自動(dòng)SQL連接,使用DBDeactivateMap函數(shù),對(duì)于顯式SQL連接,使用DBDeactivateSQL函數(shù)。斷開數(shù)據(jù)庫(kù)連接數(shù)據(jù)庫(kù)操作結(jié)束后,應(yīng)該斷開數(shù)據(jù)庫(kù)連接來(lái)釋放系統(tǒng)資源。CVI提供了DEDisconnect斷開連接。具體的函數(shù)使用說(shuō)明參見CVI安裝目錄中bincvisqlref.chm的幫助文件。圖34 ODBC數(shù)據(jù)源管理器圖35 CVI SQL Toolkit函數(shù)庫(kù)使用流程圖從上面的圖 35可以看出,若不需要綁定變量,則可使用DBImmediateSQL執(zhí)行一個(gè)SQL語(yǔ)句,更加方便快捷。下面的例子給出了從數(shù)據(jù)庫(kù)的USERS表中查找用戶ID為2的用戶名與用戶年齡的

26、完整代碼。USER表數(shù)據(jù)庫(kù)參見圖 36。其中ID為自動(dòng)編號(hào)類型,UserName為文本類型,Age為數(shù)字類型。運(yùn)行代碼前,需要實(shí)現(xiàn)在數(shù)據(jù)源ODBC管理器中添加數(shù)據(jù)源名為“CVI SQL Samples”的mdf文件。圖36 數(shù)據(jù)庫(kù)USERS表3.1.7在CVI中使用剪貼板與動(dòng)態(tài)數(shù)據(jù)交換(DDE)剪貼板(ClipBoard)與動(dòng)態(tài)數(shù)據(jù)交換(DDE,Dynamic Data Exchange)都是用于用于應(yīng)用程序交換數(shù)據(jù)共享信息的工具和途徑,廣泛應(yīng)用于Windows操作系統(tǒng)中。CVI對(duì)于剪貼板提供了四個(gè)函數(shù),分別提供了向剪貼板中寫入文本、圖像以及從剪貼板中讀出文本、圖像的功能。(1) Clipbo

27、ardPutText 向剪貼板拷貝文本格式的數(shù)據(jù)(2) ClipboardPutBitmap 向剪貼板拷貝位圖格式的數(shù)據(jù)(3) ClipboardGetText 從剪貼板中讀取文本格式的數(shù)據(jù)(4) ClipboardGetBitmap 從剪貼板中讀取位圖格式的數(shù)據(jù)使用DDE通訊需要兩個(gè)Windows應(yīng)用程序,其中一個(gè)作為服務(wù)器處理信息,另外一個(gè)作為客戶機(jī)從服務(wù)器獲得信息??蛻魴C(jī)應(yīng)用程序向當(dāng)前所激活的服務(wù)器應(yīng)用程序發(fā)送一條消息請(qǐng)求信息,服務(wù)器應(yīng)用程序根據(jù)該信息作出應(yīng)答,從而實(shí)現(xiàn)兩個(gè)程序之間的數(shù)據(jù)交換。DDE最早是隨著Windows3.1由微軟公司提出的,雖然目前很多軟件支持DDE,但是目前諸多公

28、司已經(jīng)停止了對(duì)DDE的支持。DDE通常用來(lái)在程序中實(shí)現(xiàn)導(dǎo)出數(shù)據(jù)保存為Excel或者Word中,但是CVI提供了效率更高更易用的ActiveX控件的功能,可以達(dá)到同樣的目的。3.1.8在CVI中進(jìn)行ActiveX控件操作ActiveX是Microsoft對(duì)于一系列策略性面向?qū)ο蟪绦蚣夹g(shù)和工具的稱呼,其中主要的技術(shù)是組件對(duì)象模型(COM),可被其他應(yīng)用程序編程驅(qū)動(dòng),實(shí)現(xiàn)特殊的程序間調(diào)用功能。COM組件(ActiveX控件)可由不同語(yǔ)言的開發(fā)工具開發(fā),VC、PowerBuilder等編程開發(fā)工具均可開發(fā)ActiveX控件。ActiveX在廣義上是指微軟公司的整個(gè)COM架構(gòu),但是現(xiàn)在通常用來(lái)稱呼基于標(biāo)

29、準(zhǔn)COM接口來(lái)實(shí)現(xiàn)對(duì)象連接與嵌入的ActiveX控件,常常用于在IE中增加豐富的擴(kuò)展功能。而在本教程中,我們提到的ActiveX控件均指的廣義上的ActiveX控件,即基于COM模型的開發(fā)組件。點(diǎn)擊CVI菜單Tools-Create ActiveXController,打開創(chuàng)建ActiveX Controller Wizard,點(diǎn)擊Next即可發(fā)現(xiàn)有大量可供我們使用的ActiveX控件。通過(guò)添加適當(dāng)?shù)腁ctiveX控件,我們不僅可以從常用的Office軟件中寫入、讀取數(shù)據(jù),操作數(shù)據(jù)庫(kù),獲取與Matlab的接口以使用Matlab進(jìn)行數(shù)據(jù)處理,還可以利用AutoCAD、QQ、IE、PowerDes

30、igner、SolidWorks等諸多領(lǐng)域主流的軟件的組件進(jìn)行相關(guān)程序的編寫。限于篇幅,本節(jié)只以一個(gè)實(shí)例向大家介紹使用ActiveX控件開發(fā)應(yīng)用程序的基本過(guò)程與方法。在這個(gè)實(shí)例中,我們將通過(guò)Microsoft Excel 9.0 Object Lib這個(gè)ActiveX控件打開Excel文件并向其中寫入099這100個(gè)數(shù)據(jù)并將Excel文件保存在指定位置。假設(shè)我們計(jì)算機(jī)上安裝了Office2000。單擊CVI菜單Tools-Create ActiveXController,點(diǎn)擊下一步,在ActiveX Server選項(xiàng)中找到Microsoft Excel 9.0,點(diǎn)擊下一步,選擇函數(shù)庫(kù).fp文件

31、保存的位置之后,CVI即在當(dāng)前工程中添加了Microsoft Excel 9.0 Object Lib的相關(guān)庫(kù)文件。若在計(jì)算機(jī)上安裝的Office版本不是2000,那也沒(méi)關(guān)系,從CVI安裝目錄中的“samplesactivexexcel”中找到excel2000.fp、excel2000.h、excel2000.obj和excel2000.sub文件,將此四個(gè)文件復(fù)制到工程目錄下,將fp文件添加到當(dāng)前工程中之后同樣可以達(dá)到添加Microsoft Excel 9.0 Object Lib庫(kù)的功能。在工程的C語(yǔ)言文件中輸入以下代碼:上面的例子運(yùn)行后,將會(huì)在系統(tǒng)的D盤根目錄下多出一份叫做123.xl

32、s的Excel文件。打開Excel文件之后,發(fā)現(xiàn)Excel中數(shù)據(jù)如所示。圖 37 ActiveX控件示例程序運(yùn)行結(jié)果在上面的例子中,我們依次通過(guò)獲取Excel的程序句柄、獲取Excel的工作簿組句柄、獲取Excel的工作簿句柄、獲取Excel的工作表組句柄、獲取Excel的工作表句柄、獲取Excel第一個(gè)工作表句柄,最終獲取Excel工作表的范圍句柄。獲取了Excel工作表句柄之后便可對(duì)工作表指定區(qū)域內(nèi)的內(nèi)容進(jìn)行操作了。操作結(jié)束之后,務(wù)必將獲取的句柄逐個(gè)銷毀,否則會(huì)導(dǎo)致系統(tǒng)資源被占用,生成的文件被占用,無(wú)法進(jìn)行后續(xù)操作。利用ActiveX控件在CVI下可以實(shí)現(xiàn)諸多有用的功能,但是仍然不可避免的

33、存在有的ActiveX控件無(wú)法找到的問(wèn)題。在Windows下可以“開始菜單”-“運(yùn)行”中輸入regsvr32命令以注冊(cè)Active控件。詳細(xì)信息可自行通過(guò)幫助文檔或者Google查找。3.2 自動(dòng)化測(cè)試接口編程3.2.1 綜述自動(dòng)化測(cè)試系統(tǒng)(ATS,Automatic Test System)是指測(cè)試儀器在計(jì)算機(jī)的控制下,向被測(cè)對(duì)象按照一定的時(shí)序和順序提供激勵(lì),同時(shí)對(duì)被測(cè)對(duì)象在該激勵(lì)下的響應(yīng)進(jìn)行測(cè)量的系統(tǒng)。自從20世紀(jì)70年代惠普正式推出了第一種測(cè)試總線GPIB以來(lái),先后出現(xiàn)了GPIB、VXI、PXI以及LXI等大量測(cè)試總線。此外,在PC接口方面,PCI、ISA、RS232、USB、1394、

34、CAN等總線也得到了廣泛的發(fā)展和利用,也有不少總線如ISA總線因?yàn)閹掚y以滿足當(dāng)今大部分的需求而逐漸退出歷史舞臺(tái)。GPIB總線是在美國(guó) HP公司一種1965年推出的的儀器接口系統(tǒng) (HP-IB)發(fā)展起來(lái)的。GPIB接口具有以下基本特性:測(cè)試系統(tǒng)所使用的全部?jī)x器和計(jì)算機(jī)均通過(guò)一組標(biāo)準(zhǔn)母線相互連接,儀器“并聯(lián)”在系統(tǒng)內(nèi)部,同時(shí)儀器之間可以直接 “通話”。 GPIB總線的母線由16條信號(hào)線構(gòu)成,其器件容量為15臺(tái),在GPIB 系統(tǒng)中,GPIB接口共定義了10種接口功能:控者功能、講者功能、聽者功能,源方掛鉤功能、受方掛鉤功能,服務(wù)請(qǐng)求功能、并行查詢功能、遠(yuǎn)程控制本功能、器件觸發(fā)功能、器件清除功能。在

35、2007年的第三季度,由測(cè)試與測(cè)量領(lǐng)導(dǎo)廠商發(fā)布的新型儀器中,超過(guò)80%含有GPIB接口。VXI總線(VMEbus Extensions For Instrumentation)是于 1987年推出的總線規(guī)范 ,根據(jù)器件支持的通信協(xié)議,VXI器件分成4類:消息基器件、寄存器基器件、存儲(chǔ)器器件、擴(kuò)展器件。一個(gè)VXI機(jī)箱具有13個(gè)擴(kuò)展槽 (1個(gè)系統(tǒng)槽和 12個(gè)儀器模塊槽)。PXI總線(PCI Extensions for Instrumentation)是 1997年發(fā)布的總線規(guī)范。 PXI是 PCI總線在儀器領(lǐng)域的擴(kuò)展,與 CompactPCI兼容,可提供同步、觸發(fā)和時(shí)鐘等方面的信號(hào),一個(gè) PXI

36、機(jī)箱具有 8個(gè)擴(kuò)展槽 (1個(gè)系統(tǒng)槽和7個(gè)儀器模塊槽)。LXI總線((LAN Extension for Instrument)是由國(guó)際LXI聯(lián)盟(LXI Consortium)針對(duì)GPIB傳輸速率低、VXI機(jī)箱昂貴并且需要零槽控制器、PXI尺寸電源以及EMI方面等問(wèn)題而提出的一種低成本小體積的靈活的自動(dòng)化測(cè)試總線技術(shù)。LXI在以太網(wǎng)的物理標(biāo)準(zhǔn)下,基于以太網(wǎng)的基礎(chǔ),提供了網(wǎng)絡(luò)界面,并且具有可選擇的觸發(fā)方式(LAN,IEEE1588,Trigger Bus)。VXI、PXI、PXIe、LXI都是VME、PCI、PCIe、LAN 等PC接口在自動(dòng)化測(cè)試系統(tǒng)總線領(lǐng)域的延伸。不管是VME-VXI、PCI

37、-PXI、PCIe-PXIe還是LAN-LXI,基本的物理傳輸層都沒(méi)有改變或僅加入了測(cè)試系統(tǒng)需要的時(shí)鐘同步、觸發(fā)等信號(hào)線,在上層的協(xié)議中也很少發(fā)生改變,僅某些接口的機(jī)械構(gòu)造發(fā)生了相應(yīng)的改變。所以,PC上的接口驅(qū)動(dòng)技術(shù)同樣可以運(yùn)用到自動(dòng)化測(cè)試系統(tǒng)中。世界上沒(méi)有任何一種總線是萬(wàn)能的,每一種總線都具有不同的帶寬、時(shí)延、性能、軟件支持、魯棒性、體積、傳輸距離乃至成本等特性,通過(guò)了解系統(tǒng)需求選用最合適的總線技術(shù)才最重要。圖 38列出了常用的測(cè)試總線技術(shù)的帶寬與延時(shí)的性能的比較。圖38 常用測(cè)試總線技術(shù)帶寬與時(shí)延比較3.2.2 GPIB接口GPIB是一種在業(yè)界已經(jīng)得到證明的專為儀器控制應(yīng)用設(shè)計(jì)的總線。GP

38、IB在過(guò)去30年來(lái)一直是魯棒的、可靠的通信總線,由于其低時(shí)延和可接受的帶寬的特點(diǎn),GPIB目前仍然是儀器控制中最常見的選擇。GPIB的優(yōu)勢(shì)在于為業(yè)界廣泛采納,并有超過(guò)10,000種儀器模型帶有GPIB接口。由于其最大帶寬為1.8 MB/s,GPIB最為適合與分立儀器通信,并對(duì)分立儀器進(jìn)行控制。最新的高速版HS488將帶寬提高到8 MB/s。GPIB中的數(shù)據(jù)傳遞采用基于信息的通信模式,并最常使用ASCII字符。多個(gè)GPIB儀器可以通過(guò)電纜連接,其總距為20米,帶寬為總線上的所有儀器共享。雖然GPIB的帶寬相對(duì)較低,但其時(shí)延要比USB尤其比以太網(wǎng)低得多(即性能好)。盡管GPIB有目前最好的軟件,而

39、且穩(wěn)定的線纜和連接器也能適合最惡劣的物理環(huán)境,但GPIB儀器在連接到系統(tǒng)時(shí),并不能自動(dòng)檢測(cè)或自動(dòng)配置。對(duì)于現(xiàn)有儀器的自動(dòng)化或要求高度專業(yè)化儀器的系統(tǒng),GPIB是理想的選擇。圖 39 GPIB接口外觀圖 310 GPIB接口引腳圖除了地線外,GPIB接口一共具有16條信號(hào)線,分別為8條信號(hào)線(D1D8)、3條掛鉤線(DAV、NRED、NDAC)以及5條管理線(ATN、IFC、REN、EOI、SRQ)。各條線纜的作用如下:(1) D1D8:8條數(shù)據(jù)線,既可做輸入又可做輸出(2) DAV(Data Valid):數(shù)據(jù)有效線,用于源方向受方發(fā)出通知可以從數(shù)據(jù)線上拉取數(shù)據(jù)(3) NRED(Not Rea

40、dy For Data):數(shù)據(jù)沒(méi)有準(zhǔn)備好,用于受方向源方發(fā)出通知以告知源方不能在數(shù)據(jù)線上傳遞消息(4) NDAC(No Data Accepted):數(shù)據(jù)未接受:用于受方向源方通知至少還有一個(gè)器件尚未從數(shù)據(jù)線上拉取數(shù)據(jù)(5) ATN(Attention):注意線,表示數(shù)據(jù)線上的數(shù)據(jù)是由現(xiàn)在總線上的主控器件發(fā)出的(6) IFC(Interface Clear):接口清除線,用于現(xiàn)在總線上的主控器件要求其他器件的接口回到指定的初始狀態(tài)(7) REN(Remote Enable):遠(yuǎn)控可能線,用于現(xiàn)在總線上的主控器件發(fā)送REN消息,以使得接收者進(jìn)入遠(yuǎn)地程控狀態(tài)(8) EOI(End Or Ident

41、ify):結(jié)束或識(shí)別線,用于現(xiàn)在總線上的主控器件或者源方發(fā)送END(結(jié)束)消息或者IDY(識(shí)別)消息。(9) SRQ(Service Request):服務(wù)請(qǐng)求線,由由服務(wù)請(qǐng)求的各器件共同使用,是各器件的邏輯或。CVI對(duì)GPIB提供了函數(shù)庫(kù)并提供了諸多強(qiáng)大的函數(shù):(1) OpenDev 尋找一個(gè)未使用的GPIB設(shè)備并打開設(shè)備(2) ibdev 打開設(shè)備同時(shí)設(shè)置GPIB參數(shù)(3) ibfind 通過(guò)設(shè)備名稱獲取設(shè)備的唯一描述符(4) Ibpad 設(shè)置GPIB板主地址(5) Ibsad 設(shè)置GPIB板輔助地址(6) Ibbna 設(shè)置訪問(wèn)的GPIB板(7) Ibtmo 設(shè)置超時(shí)限制(8) Ibeos

42、 設(shè)置字符串結(jié)束標(biāo)志(9) Ibeot 設(shè)置傳輸結(jié)束后是否發(fā)送消息(10) Ibdma 設(shè)置是否啟動(dòng)直接內(nèi)存訪問(wèn)模式(11) Ibrsc 設(shè)置GPIB請(qǐng)求或者放棄系統(tǒng)控制(12) Ibconfig 設(shè)置配置參數(shù)(13) Ibask 獲得配置參數(shù)(14) ibrd 從設(shè)備中讀出指定長(zhǎng)度的數(shù)據(jù)(15) ibrda 從設(shè)備中一部讀出指定長(zhǎng)度的數(shù)據(jù)(16) ibrdf 從設(shè)備中讀出數(shù)據(jù)并儲(chǔ)存在指定的文件中(17) ibwrt 向設(shè)備寫入指定長(zhǎng)度的數(shù)據(jù)(18) ibwrta 向設(shè)備異步寫入指定長(zhǎng)度的數(shù)據(jù)(19) ibwrtf 從指定文件中向設(shè)備寫入數(shù)據(jù)(20) ibstop 終止指定設(shè)備的異步I/O操作

43、(21) ibInstallCallback 安裝GPIB回調(diào)函數(shù)以上函數(shù)的詳細(xì)使用說(shuō)明參見CVI幫助文檔,限于篇幅,此處不再做具體的示例與說(shuō)明。3.2.3 RS232接口RS-232標(biāo)準(zhǔn)是美國(guó)電子工業(yè)協(xié)會(huì)(EIA)等于1969年開發(fā)并公布的通信協(xié)議,適用于傳輸速率在020kb/s的異步數(shù)據(jù)傳輸。串行接口是計(jì)算機(jī)通信必不可少的標(biāo)準(zhǔn)配置,幾乎每一臺(tái)計(jì)算機(jī)、外設(shè)、智能儀器都配有標(biāo)準(zhǔn)串行接口。采用標(biāo)準(zhǔn)串行接口后,各種計(jì)算機(jī)、外部設(shè)備、智能儀器就能有機(jī)的連接起來(lái)進(jìn)行串行通信。為方便用戶進(jìn)行 RS-232 編程,LabWindows/CVI 提供了RS-232函數(shù)庫(kù)。RS-232C 的機(jī)械指標(biāo)規(guī)定: R

44、S-232C接口通向外部的連接器 (插針插座) 是一種 “D”型 25 針插頭。由于 25 芯中有許多是不常用的,IBM-PC 對(duì)其進(jìn)行了簡(jiǎn)化,取了其中的常用的 9 芯,構(gòu)成了 9 芯 RS-232C 串行接口,使其成為一種事實(shí)上的串行接口標(biāo)準(zhǔn)配置。RS-232C 的“D”型 9 針插頭引腳定義如圖 311所示。圖311 “D”型9針插頭引腳定義圖RS-232C 標(biāo)準(zhǔn)接口中的主要信號(hào)是“發(fā)送數(shù)據(jù)”和“接收數(shù)據(jù)” ,它們用來(lái)在兩個(gè)系統(tǒng)或設(shè)備之間傳送串行信息。對(duì)于異步通信,傳輸?shù)拇形粩?shù)據(jù)信息的單位是字符。圖 312示出了 RS-232C以位串行方式傳輸數(shù)據(jù)的格式,這是微機(jī)系統(tǒng)中最通用的格式。7

45、位 ASCII 碼數(shù)據(jù)的連續(xù)傳送由最低有效數(shù)字位開始,而以奇偶校驗(yàn)位結(jié)束。應(yīng)當(dāng)指出,RS-232C 標(biāo)準(zhǔn)接口并不限于 ASCII 數(shù)據(jù),事實(shí)上還可有 5 到 8 個(gè)數(shù)據(jù)位,后加一奇偶校驗(yàn)位,并有 1 或 2 位停止位。圖312 串行數(shù)據(jù)傳輸格式在電性能方面,這一標(biāo)準(zhǔn)使用負(fù)邏輯。邏輯 1電平是在-15V 到-5V范圍內(nèi),邏輯 0電平則在+5V到+15V范圍內(nèi)。 它要求 RS-232C接收器必須能識(shí)別低至+3V的信號(hào)作為邏輯 0,而識(shí)別高至-3V的信號(hào)作為邏輯 1,這意味著有 2V的噪聲容限。RS-232C 進(jìn)行數(shù)據(jù)傳輸?shù)淖罡咚俾蕿?20KB/S,通信距離最長(zhǎng)為 15m。作為PC上最常用的工業(yè)接口

46、之一,CVI提供的RS-232庫(kù)同樣具有強(qiáng)大的功能。常用的RS-232庫(kù)函數(shù)如下:(1) OpenComConfig 打開一個(gè)串行并進(jìn)行相關(guān)的參數(shù)設(shè)置(2) CloseCom 關(guān)閉一個(gè)串行口(3) ComRd 從指定串行口的輸入隊(duì)列讀取若干字節(jié)的信息(4) ComRdByte 從指定串行口的輸入隊(duì)列讀取一個(gè)字節(jié)的信息(5) ComWrt 向指定串行口的輸出隊(duì)列寫若干字節(jié)的信息(6) ComWrtByte 向指定串行口的輸出隊(duì)列寫一個(gè)字節(jié)的信息(7) FlushInQ 清空指定串行口的輸入隊(duì)列(8) FlushOutQ 清空指定串行口的輸出隊(duì)列(9) GetInQLen 獲取指定串行口輸入隊(duì)列內(nèi)

47、的字符數(shù)(10) GetOutQLen 獲取指定串行口輸出隊(duì)列內(nèi)的字符數(shù)(11) InstallComCallback 為指定串行口設(shè)置一個(gè)回調(diào)函數(shù)下面即是一個(gè)向環(huán)境參數(shù)測(cè)量的單片機(jī)發(fā)送“gettemp”命令獲取當(dāng)前的溫度值并且讀取返回的值的例子。編譯以上代碼,假設(shè)編譯生成的exe程序名稱為ComTest_dbg.exe,在命令行中輸入“ComTest_dbg.exe gettemp”,則程序運(yùn)行結(jié)果如圖 313所示。圖313 獲取溫度值運(yùn)行結(jié)果3.2.4 VXI、PXI通信(VISA)VXI、PXI作為應(yīng)用最為廣泛的自動(dòng)化測(cè)試總線之一,在工業(yè)及自動(dòng)化測(cè)試領(lǐng)域得到了廣泛的應(yīng)用。為此類設(shè)備開發(fā)驅(qū)

48、動(dòng)程序可以使用微軟公司的WDM(Win32 Driver Model)模型進(jìn)行開發(fā),但由于自動(dòng)化測(cè)試總線的高速發(fā)展,這樣的驅(qū)動(dòng)開發(fā)方法工作量相對(duì)較大且上層代碼不具備通用性,因此CVI并沒(méi)有直接提供VXI或者PXI的函數(shù)庫(kù)。VXI設(shè)備、PXI設(shè)備都遵從VPP(VXI Plug and Play)規(guī)范,其驅(qū)動(dòng)程序都使用單一的標(biāo)準(zhǔn)結(jié)構(gòu)。因此,NI等公司提出來(lái)了虛擬儀器軟件架構(gòu)(VISA,Virtual Instrumentation Software Architecture)給符合VPP硬件規(guī)范的接口設(shè)備提供了軟件規(guī)范與統(tǒng)一的驅(qū)動(dòng)。全世界虛擬儀器廠家以該接口軟件作為底層函數(shù)庫(kù)來(lái)開發(fā)虛擬儀器程序,可以使不同廠商的軟件在同一平臺(tái)上協(xié)調(diào)運(yùn)行。這大大減少了軟件的重復(fù)開發(fā),縮短了測(cè)試應(yīng)用程序的開發(fā)周期。對(duì)于驅(qū)動(dòng)程序、應(yīng)用程序開發(fā)者而言,VISA 庫(kù)函數(shù)是一套可方便調(diào)用的函數(shù),其中核心函數(shù)可控制各種類型設(shè)備,而不用考慮設(shè)備的接口類型。用戶可以用同一套函數(shù)為GPIB設(shè)備、VXI 設(shè)備等各種類型設(shè)備編寫軟件,不必再學(xué)習(xí)不同廠家、不同接口類型的不同 I/O接口軟件的使用方法。而且因?yàn)?VISA 可工作在各廠商的多種平臺(tái)上,可以對(duì)不同接口類型的設(shè)備調(diào)用相同的 VISA 函數(shù),用戶利用 VISA

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論