天天看點

C#通過NI-VISA操作Tektronix TBS 2000B系列示波器

一、概述

本文描述采用C#語言通路控制Tektronix TBS 2000B 系列示波器。接口協定采用NI-VISA。

最近一個項目需要和一款示波器進行通信,需要對示波器進行一些簡單控制并擷取到波形資料。經過一段時間研究,大緻了解了相關操作,因為發現相關資料不是很多,是以把我了解的相關知識和大家分享一下。文末将提供本文涉及的相關文檔、代碼、安裝程式的下載下傳位址。

正常情況下,我們如果需要和一個裝置進行通信,首先需要知道PC通過什麼方式和裝置進行連接配接,通信協定是什麼。由于工作需要和很多裝置進行過連接配接,常用的連接配接方式主要有:網絡連接配接、序列槽連接配接、USB接口連接配接等;通信協定都是自定義的協定文本。 本來以為這個項目首先得需要搞清楚示波器的通信協定,然後才能進行下一步開發,在官方網站下載下傳了一些程式設計資料,發現該裝置是可以通過VISA進行連接配接的,那什麼是VISA呢?VISA是由National Instruments公司牽頭,聯合一些裝置制造廠商共同指定的一個通用裝置連接配接标準,不管裝置通過何種方式進行連接配接,隻要符合VISA規範就可以通過該标準協定進行連接配接,而NI-VISA就是NI公司實作的一個協定,通過這個協定接口,我們不用直接和裝置進行通信,隻需要通過NI-VISA提供的接口就可以通路裝置,而常用的接口非常簡單,主要就是OPEN、WRITE、READ等幾個指令。符合規範的裝置都會公開一份SCPI指令集的文檔,隻要仔細閱讀該文檔就可以實作裝置的控制。在整個項目過程中,我僅僅通過幾個官方網站下載下傳的文檔就完成項目開發,幾乎沒有什麼障礙,在此不得不感慨我們的制造業和發達國家相比确實有很大差距,我們就缺少這樣标準性的東西,什麼事情都得從底層做起,很不科學。要是那些巨頭們肯做一些這方面的工作就太好了,比做什麼買菜、賣魚的APP有意義得多了。

示波器通過網絡接口和PC進行連接配接

C#通過NI-VISA操作Tektronix TBS 2000B系列示波器

 配置示波器IP和PC在同一個網段,例如:192.168.11.11,在設定時注意IP内不要有0,然後在PC上先ping一下,看能否ping通。

C#通過NI-VISA操作Tektronix TBS 2000B系列示波器

 如果能ping通就在浏覽器輸入http://192.168.11.11看能否打開示波器首頁,确認SCPI指令可以運作。

C#通過NI-VISA操作Tektronix TBS 2000B系列示波器

運作NI-VISA Runtime安裝程式,選中運作時基礎包和.NET支援包。 

C#通過NI-VISA操作Tektronix TBS 2000B系列示波器

  .NET支援包選.NET 4.0-4.5.1 Runtime Support(IVI),不選.NET XX Runtime Support(NS),NS的包是老版本。

安裝完成後形成兩個包:Ivi.Visa和NationalInstruments.Visa

其中Ivi.Visa有兩個版本:

32位位置:C:\Program Files (x86)\IVI Foundation\VISA\Microsoft.NET\Framework32\v2.0.50727\VISA.NET Shared Components 5.8.0

64位位置:C:\Program Files\IVI Foundation\VISA\Microsoft.NET\Framework64\v2.0.50727\VISA.NET Shared Components 5.8.0

NationalInstruments.Visa位置:C:\Windows\Microsoft.NET\assembly\GAC_MSIL\NationalInstruments.Visa\v4.0_17.0.0.0__2eaa5af0834e221d

建立VS工程,按上述位址添加Ivi.Visa和NationalInstruments.Visa兩個引用。Ivi.Visa的庫根據需要可以選32位或64位。

程式運作需要在目标機器安裝運作時,是以引用的庫不需要複制到項目檔案夾。

C#通過NI-VISA操作Tektronix TBS 2000B系列示波器

 已經有網友把VISA接口調用進行了封裝,我直接使用了相關代碼,幾乎一字未改,相關代碼請查閱:https://www.cnblogs.com/cncc/p/7866899.html

連接配接代碼:

C#通過NI-VISA操作Tektronix TBS 2000B系列示波器
C#通過NI-VISA操作Tektronix TBS 2000B系列示波器

View Code

寫指令一共有兩種,一種不需要傳回資料、一種需要傳回資料,下發了需要傳回資料的指令後才能進行讀取指令,否則就會讀取失敗。

讀寫指令如下:

C#通過NI-VISA操作Tektronix TBS 2000B系列示波器
C#通過NI-VISA操作Tektronix TBS 2000B系列示波器

核心代碼就這麼多,剩下的就根據需要查詢SCPI指令表就可以了。

 以下指令僅适用于Tektronix TBS 2000B系列示波器。

C#通過NI-VISA操作Tektronix TBS 2000B系列示波器
C#通過NI-VISA操作Tektronix TBS 2000B系列示波器

相關文檔、代碼下載下傳:https://gitee.com/seabluescn/tksamples.git

簽名區:

如果您覺得這篇部落格對您有幫助或啟發,請點選右側【推薦】支援,謝謝!