亚洲视频国产视频,亚洲综合首页,亚洲最大色视频,国内精品自产拍在线电影,日韩久久网,久久午夜影院,欧美亚洲高清

  • 歡迎光臨燃氣表信息網(wǎng)!
 

基于VISA標準的儀器驅(qū)動器設(shè)計

字體: 放大字體  縮小字體 發(fā)布日期:2007-11-27  作者:李揚 趙葛霄 汪仁煌  瀏覽次數(shù):1105

關(guān)鍵詞】VISA標準,儀器通信,驅(qū)動程序,命令參數(shù),屬性

摘要】本文以LabVIEW的VISA程序模塊為例,介紹基于VISA標準的儀器驅(qū)動器設(shè)計方法。包括VISA編程語法、子VI模塊、基于消息的通信編程、VISA屬性和事件等內(nèi)容。

1 VISA標準  
  儀器驅(qū)動器(Instrument Driver)是指使用標準化的I/O函數(shù)與一臺(或幾臺)儀器設(shè)備進行通信的一套(一組)程序,主要用于對儀器進行程控操作,如設(shè)置參數(shù)與工作方式、讀/寫測量數(shù)據(jù)、觸發(fā)及讀回儀器工作狀態(tài)等。在LabVIEW編程語言中,儀器驅(qū)動器采用VISA標準編程,從而可避開許多復雜而低級的儀器程控命令。
  VISA是虛擬儀器體系結(jié)構(gòu)(Virtual Instrument Software Architecture)的簡稱 。1993年9月,泰克公司、惠普公司、美國國家儀器公司等35家最大的儀器儀表公司成立了VXIplug&lay系統(tǒng)聯(lián)盟,其目的是研制出一種新的標準,確保不同廠商、不同接口標準的儀器能相互兼容、可通訊和數(shù)據(jù)交換,并且提供給用戶方便易用的驅(qū)動程序。為此,聯(lián)盟1996年2月推出了VISA標準,它的特點有:1)面向?qū)ο缶幊蹋?)VISA是當前所有儀器接口類型功能函數(shù)的超集,且十分簡潔。GPIB有60多個函數(shù),VXI有130多個函數(shù),惠普的SICL有100多個函數(shù)。而VISA具有上述所有接口函數(shù)的功能 ,但只有90多個函數(shù)操作;3)VISA作為標準函數(shù),與儀器的I/O接口類型無關(guān);4)VISA程序與操作系統(tǒng)與編程語言無關(guān),只需要很小的修改,就可以從一個平臺移植到另一個平臺。
  在VISA標準下的儀器驅(qū)動器的內(nèi)部模型,如同一個金字塔結(jié)構(gòu),如圖1—1所示。在金字塔的最底層,是VISA資源管理器,它負責管理與控制不同種類的儀器,進行標準化處理;在金字塔的上面,VISA定義了3個級別的儀器驅(qū)動資源:I/O級、儀器級和用戶級。每上一個級別的程序可以調(diào)用其下面級別所有程序的功能;在金字塔的最頂端,是人機接口應用程序。它利用VISA標準的開放性、兼容性和可移植性,將不同的儀器組合集成起來,構(gòu)成分布式集成控制系統(tǒng)。
                   

  VISA標準的推出,統(tǒng)一了儀器工業(yè)的軟件接口標準,使得儀器驅(qū)動程序兼容性強 ,并且可適應未來軟硬件的發(fā)展需要。目前,VISA正在進行IEEE1226.5的標準化工作 。 
    LabVIEW的VISA函數(shù)位于Instrument I/O>VISA模板中,如圖1—2所示。VISA編程時使用VISA session參數(shù),VISA session是每次程序操作過程的唯一邏輯標識符,它標識了與之通訊的設(shè)備名稱以及進行I/O操作所必需的配置信息。VISA session的缺省類值是Instr。如果需要,可以選擇如下值:GPIB Instr、Seri al Instr以及VXI、GPIB-VXIInstr。另一個重要的參數(shù)是Resorce Name,包含I/O接口類型以及設(shè)備地址等信息。其編程語法如表1—1所示。關(guān)鍵詞GPIB用于同GPIB接口儀器建立通訊,關(guān)鍵詞VXI通過內(nèi)置式或MXI總線控制器同VXI儀器建立通訊,關(guān)鍵詞GPIB-VXI用于GPIB-VXI控制器,關(guān)鍵詞SERIAL用于異步串行設(shè)備通訊。
                          
                      
    VISA標準具有90多個與儀器物理接口類型無關(guān)的I/O操作函數(shù),可分成下列的命令類型:Session的打開與關(guān)閉、VISA屬性、基于字符信息操作的儀器控制與觸發(fā)命令 、基于寄存器操作的儀器的程控命令、采用中斷子程序調(diào)用方法的事件處理命令和采用軟件查詢方法的事件處理命令等。下面介紹若干常用的VISA函數(shù):
  (1)VISA Open:打開一個指定設(shè)備(resource name)的session,返回可被用于調(diào)用的session標識符和設(shè)備的其它操作。
   (2)VISA Close:關(guān)閉一個指定設(shè)備的session或事件event。
  (3)VISA Write:將數(shù)據(jù)同步或異步地寫入基于字符操作的儀器。
  (4)VISA Read:從基于字符操作的儀器中同步或異步地讀出數(shù)據(jù)。
    VISA程序的基本流程圖如圖1—3所示。
                       
2 基于消息(message-based)的通信  
  基于消息(message-based)的通信用于向儀器讀/寫字符型數(shù)據(jù)。如圖2—1所示,VISA程序向地址設(shè)定為1的GPIB設(shè)備讀/寫數(shù)據(jù)。在寫入緩沖區(qū)中使用“*IDN?”命令參數(shù),它返回儀器的標識符,該命令適用于大多數(shù)儀器(如TDS320/420數(shù)字存儲示波器等)。byte count為讀出字符的字節(jié)數(shù)(100個字節(jié))。
                       
    LabVIEW的流程圖如圖2—2所示,VISA Open根據(jù)Resource name和VISA session與儀器建立通訊。本VISA Write模塊把write buffer中的字符串寫入設(shè)備,而dup VISA session向下傳送相同的session值。return count返回實際傳送的字節(jié)數(shù),VISA Read讀取指定設(shè)備中的字符數(shù)據(jù)。(在UNIX工作平臺上,數(shù)據(jù)為同步寫入/讀出;在其他工作平臺上,數(shù)據(jù)為異步寫入/讀出。)VISA Close關(guān)閉由VISA session指定的設(shè)備的通訊過程,釋放相應資源。error out字串包含出錯信息。
                   
   該程序運行后,應在read buffer指示框中顯示儀器的標識符。如果無數(shù)據(jù)返回 ,驅(qū)動程序?qū)⒔邮盏揭粋€VISA出錯信息,表示你的儀器不能讀命令參數(shù)“*IDN?”。(查閱儀器使用手冊,可找到更多的儀器操作命令。)
                  
  如圖2—3所示的VI例子可對儀器進行多次讀/寫操作。將所有組態(tài)命令寫在一個字串中,然后連接至Write.vi模塊的wirte buffer輸入端。這樣就可避免每完成一次操作內(nèi)容都要中斷程序的運行,然后才能進行下次的讀/寫操作?! ?br>  如果在一次操作中只需要執(zhí)行一項內(nèi)容,可考慮設(shè)計選擇項,如使用Case結(jié)構(gòu)或Select控件等,但通常使用Pick Line&Appent函數(shù)更方便。Pick Line&Append函數(shù)可與Format into String函數(shù)配合使用以建立命令串,如圖2—4所示。
                   
   Pick line&Append函數(shù)的作用是從multi-linestring(多行字串)選擇由lineindex指定的一行,并擴充到string中。Formatinto String函數(shù)的作用是將自變量(arguments)組合并轉(zhuǎn)換為另一字串形式resul ting string,其格式由formatstring確定。
3 屬性(VISA Properties)  
  具有VISA屬性的儀器操作將允許寄存器訪問和基于消息的通信。VISA Resource具有各種帶數(shù)值的屬性(attributes)。在程序中,這些屬性可以被讀取或進行設(shè)置 。VISA屬性節(jié)點(property node)如下:
  VISA屬性節(jié)點包括VISA class和一些屬性(at-tributes)。設(shè)置VISA class時,可以將一個VISA Session連接至reference端子,也可以用鼠標點擊圖標并彈出一菜單,然后從select VISA Class子菜單中選擇Instr。當在流程圖中第一次放置屬性節(jié)點時,它只有一個屬性端子。如果需要增加屬性端子,可以使用菜單中的Add element操作。各屬性端子的屬性定義由Selet Item選擇,Selet Item中有所有可能被設(shè)置的屬性列表。
    如圖3—1所示的程序使用了屬性在VISA讀(Read)操作中設(shè)置一個終止符。(一些基于消息的設(shè)備當無數(shù)據(jù)傳送時可發(fā)送一個特殊的終止符)。該VI打開GPIB儀器的一個session(地址2),然后設(shè)置VISA屬性。它有3個屬性:終止符(TermChar)、終止符允許(TermChar Enable)和超時值(Timeout Valu e)。其中,終止符為一個10進制數(shù)(99),超時值為10s。接著,該VI將命令“*IDN?”寫入儀器,并要求返回100個字符的數(shù)據(jù)。如收到終止符(TermChar)讀操作就會結(jié)束。
                 
4 事件(Events)  
  事件(Events)是設(shè)備的源(Resource)與應用程序之間的VISA通信方式。也就是說 ,源以事件(Events)的方式通知設(shè)備,告知應用程序所要求活動的一些條件已經(jīng)出現(xiàn)。
  如圖4—1所示為VISA處理GPIB服務請求(SRQ)事件的一個例子。其中,命令(*ESE0x01;SRE0x30;SOUR ;FUNCSIN;*OPC)用于通知指定的波形發(fā)生器發(fā)出正弦波 ,完成之后將產(chǎn)生一個服務請求SRQ。(注意:每種儀器可能使用不同的命令集,用戶有必要查詢有關(guān)儀器編程參考手冊。)該程序執(zhí)行流程如下:
  1)Open a VISAS ession:打開一個由Resourcename指定的設(shè)備。一個VISAsession是一個特定儀器(或引導VISA創(chuàng)建一個指定的VISA class數(shù)據(jù)結(jié)構(gòu)的事件)的一個信道 。
  2)VISA Enable Event:允許VISA檢測事件。
GPIBSRQ的事件類型為x3FFF200B。
  3)VISA Write:向設(shè)備發(fā)送命令和送出SRQ指令,SRQ的格式與個別儀器有關(guān)。
  4)Wait for RQS.vi:等待設(shè)備的服務請求SRQ。
如果消息(events)在timeout周期內(nèi)到達(串行點名),將讀取Status Byte并返回 。
  5)VISA Read reads:從儀器讀出前面所要求的數(shù)據(jù)。
  6)VISA Disable Event:禁止VISA從該session檢測事件。
  7)VISA Close:關(guān)閉已打開的GPIB設(shè)備的session。
                 
5 結(jié)束語  
  基于VISA標準的儀器驅(qū)動器設(shè)計,使用戶擺脫了繁瑣的低層接口命令函數(shù),因此用戶只需要使用圖形化的人機界面,就可以控制各種復雜的智能儀器。儀器驅(qū)動器的VISA編程標準化無論對于儀器生產(chǎn)商,還是對于用戶來說都是有益的。


  [參考文獻]

 
免責聲明:
本站所提供的文章資訊、圖片、音頻、視頻來源于互聯(lián)網(wǎng)及公開渠道,僅供學習參考,版權(quán)歸原創(chuàng)者所有! 如有侵犯您的版權(quán),請通知我們,我們會遵循相關(guān)法律法規(guī)采取措施刪除相關(guān)內(nèi)容。


 
[ 技術(shù)前沿搜索 ]  [ 加入收藏 ]  [ 告訴好友 ]  [ 打印本文 ]  [ 關(guān)閉窗口 ]

 
 
 
一周資訊排行
圖文推薦