美國NI公司推出的虛擬儀器開發平臺LabVIEW(LaboratoryVirtual Instrument ,利用LabvIEW可以方便地建立自己的虛擬儀器,其圖形化的界面使得編程及使用過程都生動有趣。
特別是在儀器控制方面,NIVISA提供了方便的圖形化編程節點,可以讓用戶很快的根據自己所需儀器的特點編寫相應的儀器驅動,然后在LabVIEW開發環境中調用這些驅動,編寫需要的應用程序,從而方便快捷的完成計算機對儀器的控制以及計算機與儀器之間的通信。
? ?? ?
VlSA簡介
計算機與儀器通信的實現是儀器發展史的一個里程碑。可編程地控制儀器給儀器控制領域到來了極大的改進和靈活性,并且可以不再依賴于具體的人工操作。LabVIEW開發環境提供了強有力的編程支持,這就使得測試系統的主要任務轉移到計算機與儀器連接的接口和總線問題上。這就需要一個既可以表示接口特性又可以詳細表示儀器性能的軟件體系,而且這個軟件體系應具有很好的通用性。VISA驅動很好地滿足了這些需求。VISAAPI(Application Programming Interface,應用編程接口)可以通用于基于Ethernet,GPIB,GPIB—VXI,VXI,PXI和串口等多種總線的測試系統,使用者不必再研究各個接口總線特定的API。
作為儀器I/O函數庫,VISA編程與傳統的I/0軟件編程基本相同,主要是通過設備的端口讀寫操作和屬性控制,實現與儀器的命令與數據交換。VISA函數按照功能基本上可以分為基本I,0、格式化I/O、內存I/O、資源管理、共享內存管理、事件處理和屬性控制等幾大類。用戶可以在VISA中利用SCPI命令來控制基于消息基的儀器和帶有SCPI命令翻譯節點的基于寄存器級的儀器,對于不接收SCPI命令的儀器,也可以通過使用VISA的寄存器讀寫節點直接訪問儀器的底層寄存器的方法來實現對儀器的控制。VISA函數庫中的函數以VISA節點的形式出現。
VISA節點位于AllFunction>>Instrument I/O>>VISA目錄下, 基本的VISA節點有:VISA Write、VISARead、VISAClear、VISA Read STB.VISA Asserlt Trigger。
高級節點包含更多的函數:VISA Open(打開一個儀器資源),VISA Close(關閉一個一個資源),VIsA Find Resource(尋找VISA資源),VIsA write FromFile,VISA Read to File,VISALock Analy,VISA Unlock(VISA解鎖),VISA Status I)escription(狀態描述),VISA Set.Timeout,Property Node(屬性節點)以及Interface Specific(指定接口)子模板、Event Handling(事件處理)子模板、High Level RegisterAccess(高級寄存器讀寫)子模板、Low Level Register Access(低級寄存器讀寫)子模板等幾個部分。LabVIEw的幫助文檔給出了這些VISA節點的具體用法和詳細介紹。
? ?
1673G系列邏輯分析儀
1673G具有34通道的邏輯分析系統,150MHz狀態速率,500MHz定時速率,64k標準采集內存,使用選項001(選項001表示當前使用的是系統級的命令)時256k內存,使用選項002(選項002表示當前使用的是選件邏輯分析儀)時2M內存。選項003(選項003表示當前使用的是選件示波器)示波器:2通道,500MHz,2GSa/s,32k內存;選項004碼型發生器:32通道,100M矢量/秒,256k矢量深。1673G具有2GB硬驅和l-44 MB:DOS軟驅;配有VGA分辨率的彩色平板顯示器,幫助用戶迅速找到信息;可以選擇鼠標操作或前面板操作,使用簡便設計良好的用戶界面;支持可選的PC式鍵盤;支持ASCII數據和PCX/TIFF/EPS屏幕快照等文件格式,配有Centronics打印機端口,GPIB和RS-232編程能力;可以通過x-windows實現局域網遠程操作,通過FTP/NFs實現數據傳送;提供23種預先定義的觸發功能,支持圖形表示和普通語言描述,簡便地設置強大的測量功能。
驅動設計
儀器驅動是用來控制可編程儀器的一組函數的集合,包含對儀器的各種操作:配置,讀出、寫入和觸發等。儀器驅動函數的工作流程是:讀取前面板上對儀器的控制命令一把命令格式化為儀器能夠解析的命令字符串→讀取儀器返回的響應結果→根據讀取的結果更新前面板上的顯示。儀器驅動已具有交互性,可編程性和通用性。儀器驅動一般通用于某一類的儀器。對于某個儀器的特殊的性能,則另外編寫相應的函數。
儀器驅動包含兩大類的VIs,一類是組件VIs(componentVIs),一個函數控制儀器的一個特定的功能,另一類是高級的應用函數VIs(Application vIs),一個函數由多個組件vIs組合而成,實現儀器的一個基本的測試或測量操作。其設計模型如圖1所示。
應用函數VI位于儀器驅動層次的最高級,通過調用組件級的VI來實現一般的儀器配置和測試操作。用戶只調用這些高級應用VIs就可以實現單一的面向測量的儀器接口。
組件vIs是較低級的儀器驅動函數。組件VIs是模塊化的VIs,它們包含了儀器所有的配置和測量功能,共分為六類:初始化(Initialize),配置(Configuration),操作和狀態(Action/Status), 數據(data),功能(Utilitv)和結束(Close)。組件VIs與儀器的具體功能有關。在設計儀器驅動時,根據儀器的功能將相應的指令歸類。
要對邏輯分析儀1673G編寫儀器驅動,首先熟練儀器的操作,研究其指令系統,然后確定要實現的VIs。表l給出了選件003示波器要實現的vIs。
1673G的指令包括普通的SCPI命令,系統級的設置和配置命令,以及針對各個選件 (邏輯分析儀,示波器和碼型產生器)的命令。文中的驅動主要針對邏輯分析儀和示波器進行編寫,預達到可以對邏輯分析儀和示波器進行儀器控制,并且可以得到邏輯分析儀和示波器的采集數據,可以得到示波器的測量數據。
以實現初始化函數AGl673GInitialize.vi為例, 先用VISAOPEN節點打開一個儀器的Session,然后調用propertv nodtj識 別儀器的接口類型,建立計算機與儀器之間的通信。然后調用VIsA write向儀器發出%IDN?命令,接著調用vIsA 0PEN讀取儀器的響應結果,對讀取到的字符串進行分析,與儀器的標識符進行比較,若結果正確就輸出dupVIsA Session供以后的函數節點調用。程序調試成功后把程序制作成sutVI以備調用。具體流程如圖2所示。
然后根據表1的命令分類,依據各種命令的功能,組合成各種(20mponent VIs和ApplicatioVIs功能,然后同上的方法調用VISA節點和LahvIEw對字符串和數據、數組之間轉換的節點(VI模板)編寫所有的驅動VI,并且在最后形成一個VI樹。VI樹中應包含儀器驅動所有的V!,如圖3所示。
基于VISA儀器驅動的設計基本步驟:熟悉儀器的操作,熟悉儀器的變成指令,確定要實現的VIs,形成儀器驅動的設計框架;調用VISA節點實現組件VIs,并在組件VIs的基礎上實現需要的應用VIs;把儀器驅動中的VI制作成subVI以方便用戶調用;描述各個VI的功能和連接線用法。
文中的儀器驅動成功實現了計算機對安捷倫1673G的控制,并且可以把儀器采集到的數據讀人計算機中,利用LabVIEW強大的分析功能進行數據分析。而且文中使用的驅動制作方法適用于其他支持的VISA的儀器。
特別是在儀器控制方面,NIVISA提供了方便的圖形化編程節點,可以讓用戶很快的根據自己所需儀器的特點編寫相應的儀器驅動,然后在LabVIEW開發環境中調用這些驅動,編寫需要的應用程序,從而方便快捷的完成計算機對儀器的控制以及計算機與儀器之間的通信。
? ?? ?
VlSA簡介
計算機與儀器通信的實現是儀器發展史的一個里程碑。可編程地控制儀器給儀器控制領域到來了極大的改進和靈活性,并且可以不再依賴于具體的人工操作。LabVIEW開發環境提供了強有力的編程支持,這就使得測試系統的主要任務轉移到計算機與儀器連接的接口和總線問題上。這就需要一個既可以表示接口特性又可以詳細表示儀器性能的軟件體系,而且這個軟件體系應具有很好的通用性。VISA驅動很好地滿足了這些需求。VISAAPI(Application Programming Interface,應用編程接口)可以通用于基于Ethernet,GPIB,GPIB—VXI,VXI,PXI和串口等多種總線的測試系統,使用者不必再研究各個接口總線特定的API。
作為儀器I/O函數庫,VISA編程與傳統的I/0軟件編程基本相同,主要是通過設備的端口讀寫操作和屬性控制,實現與儀器的命令與數據交換。VISA函數按照功能基本上可以分為基本I,0、格式化I/O、內存I/O、資源管理、共享內存管理、事件處理和屬性控制等幾大類。用戶可以在VISA中利用SCPI命令來控制基于消息基的儀器和帶有SCPI命令翻譯節點的基于寄存器級的儀器,對于不接收SCPI命令的儀器,也可以通過使用VISA的寄存器讀寫節點直接訪問儀器的底層寄存器的方法來實現對儀器的控制。VISA函數庫中的函數以VISA節點的形式出現。
VISA節點位于AllFunction>>Instrument I/O>>VISA目錄下, 基本的VISA節點有:VISA Write、VISARead、VISAClear、VISA Read STB.VISA Asserlt Trigger。
高級節點包含更多的函數:VISA Open(打開一個儀器資源),VISA Close(關閉一個一個資源),VIsA Find Resource(尋找VISA資源),VIsA write FromFile,VISA Read to File,VISALock Analy,VISA Unlock(VISA解鎖),VISA Status I)escription(狀態描述),VISA Set.Timeout,Property Node(屬性節點)以及Interface Specific(指定接口)子模板、Event Handling(事件處理)子模板、High Level RegisterAccess(高級寄存器讀寫)子模板、Low Level Register Access(低級寄存器讀寫)子模板等幾個部分。LabVIEw的幫助文檔給出了這些VISA節點的具體用法和詳細介紹。
? ?
1673G系列邏輯分析儀
1673G具有34通道的邏輯分析系統,150MHz狀態速率,500MHz定時速率,64k標準采集內存,使用選項001(選項001表示當前使用的是系統級的命令)時256k內存,使用選項002(選項002表示當前使用的是選件邏輯分析儀)時2M內存。選項003(選項003表示當前使用的是選件示波器)示波器:2通道,500MHz,2GSa/s,32k內存;選項004碼型發生器:32通道,100M矢量/秒,256k矢量深。1673G具有2GB硬驅和l-44 MB:DOS軟驅;配有VGA分辨率的彩色平板顯示器,幫助用戶迅速找到信息;可以選擇鼠標操作或前面板操作,使用簡便設計良好的用戶界面;支持可選的PC式鍵盤;支持ASCII數據和PCX/TIFF/EPS屏幕快照等文件格式,配有Centronics打印機端口,GPIB和RS-232編程能力;可以通過x-windows實現局域網遠程操作,通過FTP/NFs實現數據傳送;提供23種預先定義的觸發功能,支持圖形表示和普通語言描述,簡便地設置強大的測量功能。
驅動設計
儀器驅動是用來控制可編程儀器的一組函數的集合,包含對儀器的各種操作:配置,讀出、寫入和觸發等。儀器驅動函數的工作流程是:讀取前面板上對儀器的控制命令一把命令格式化為儀器能夠解析的命令字符串→讀取儀器返回的響應結果→根據讀取的結果更新前面板上的顯示。儀器驅動已具有交互性,可編程性和通用性。儀器驅動一般通用于某一類的儀器。對于某個儀器的特殊的性能,則另外編寫相應的函數。
儀器驅動包含兩大類的VIs,一類是組件VIs(componentVIs),一個函數控制儀器的一個特定的功能,另一類是高級的應用函數VIs(Application vIs),一個函數由多個組件vIs組合而成,實現儀器的一個基本的測試或測量操作。其設計模型如圖1所示。
應用函數VI位于儀器驅動層次的最高級,通過調用組件級的VI來實現一般的儀器配置和測試操作。用戶只調用這些高級應用VIs就可以實現單一的面向測量的儀器接口。
組件vIs是較低級的儀器驅動函數。組件VIs是模塊化的VIs,它們包含了儀器所有的配置和測量功能,共分為六類:初始化(Initialize),配置(Configuration),操作和狀態(Action/Status), 數據(data),功能(Utilitv)和結束(Close)。組件VIs與儀器的具體功能有關。在設計儀器驅動時,根據儀器的功能將相應的指令歸類。
要對邏輯分析儀1673G編寫儀器驅動,首先熟練儀器的操作,研究其指令系統,然后確定要實現的VIs。表l給出了選件003示波器要實現的vIs。
1673G的指令包括普通的SCPI命令,系統級的設置和配置命令,以及針對各個選件 (邏輯分析儀,示波器和碼型產生器)的命令。文中的驅動主要針對邏輯分析儀和示波器進行編寫,預達到可以對邏輯分析儀和示波器進行儀器控制,并且可以得到邏輯分析儀和示波器的采集數據,可以得到示波器的測量數據。
以實現初始化函數AGl673GInitialize.vi為例, 先用VISAOPEN節點打開一個儀器的Session,然后調用propertv nodtj識 別儀器的接口類型,建立計算機與儀器之間的通信。然后調用VIsA write向儀器發出%IDN?命令,接著調用vIsA 0PEN讀取儀器的響應結果,對讀取到的字符串進行分析,與儀器的標識符進行比較,若結果正確就輸出dupVIsA Session供以后的函數節點調用。程序調試成功后把程序制作成sutVI以備調用。具體流程如圖2所示。
然后根據表1的命令分類,依據各種命令的功能,組合成各種(20mponent VIs和ApplicatioVIs功能,然后同上的方法調用VISA節點和LahvIEw對字符串和數據、數組之間轉換的節點(VI模板)編寫所有的驅動VI,并且在最后形成一個VI樹。VI樹中應包含儀器驅動所有的V!,如圖3所示。
基于VISA儀器驅動的設計基本步驟:熟悉儀器的操作,熟悉儀器的變成指令,確定要實現的VIs,形成儀器驅動的設計框架;調用VISA節點實現組件VIs,并在組件VIs的基礎上實現需要的應用VIs;把儀器驅動中的VI制作成subVI以方便用戶調用;描述各個VI的功能和連接線用法。
文中的儀器驅動成功實現了計算機對安捷倫1673G的控制,并且可以把儀器采集到的數據讀人計算機中,利用LabVIEW強大的分析功能進行數據分析。而且文中使用的驅動制作方法適用于其他支持的VISA的儀器。
評論
查看更多