日本无码免费高清在线|成人日本在线观看高清|A级片免费视频操逼欧美|全裸美女搞黄色大片网站|免费成人a片视频|久久无码福利成人激情久久|国产视频一二国产在线v|av女主播在线观看|五月激情影音先锋|亚洲一区天堂av

  • 手機站
  • 小程序

    汽車測試網(wǎng)

  • 公眾號
    • 汽車測試網(wǎng)

    • 在線課堂

    • 電車測試

TMCTL類庫使用詳解

2022-11-02 19:29:10·  來源:橫河測試測量  
 
數(shù)據(jù)交互一直是計測領(lǐng)域非常重要的環(huán)節(jié)。當(dāng)我們利用上位機與儀器儀表進行通信時,通常需要一座“橋梁”連接彼此,而充當(dāng)這座橋梁的便是應(yīng)用程序接口(API)。各家儀器供應(yīng)商會公開自己的類庫供客戶調(diào)用。橫河TMCTL類庫應(yīng)運而生。TMCTL即TestMeasurement Contr
圖片


數(shù)據(jù)交互一直是計測領(lǐng)域非常重要的環(huán)節(jié)。當(dāng)我們利用上位機與儀器儀表進行通信時,通常需要一座“橋梁”連接彼此,而充當(dāng)這座橋梁的便是應(yīng)用程序接口(API)。


各家儀器供應(yīng)商會公開自己的類庫供客戶調(diào)用。橫河TMCTL類庫應(yīng)運而生。

TMCTL即Test & Measurement Controller,用以控制橫河測量儀器設(shè)備。

該類庫中的函數(shù)主要包括:

  • 連接、斷開儀器

  • 搜索設(shè)備

  • 發(fā)送、接收指令

  • 設(shè)置遠(yuǎn)程、本地模式

  • 清除在線儀器及發(fā)送觸發(fā)信號

  • 獲取狀態(tài)字節(jié)


在實際使用過程中并非需要調(diào)用以上所有函數(shù),用戶可以參照以下流程實現(xiàn)最基本的數(shù)據(jù)交互。

圖片

圖片

通過流程圖可以看出,數(shù)據(jù)交互必須要執(zhí)行的函數(shù)僅有:

  • 連接、斷開儀器

  • 發(fā)送、接收指令

只要掌握上述函數(shù),我們就能夠初步實現(xiàn)數(shù)據(jù)交互的目的。

由于篇幅所限,僅以C#語法作為案例講述。


01連接儀器


Initialize方法:初始化接口并將接口開放給指定設(shè)備。

語法:int Initialize(int wire, string adr, ref int id)。

第一個傳參值為int類型的wire,其對應(yīng)關(guān)系參考下圖。

圖片

第二個傳參值為string類型的adr,對應(yīng)目標(biāo)設(shè)備的地址。

例如wire為VXI-11,adr為設(shè)備IP address;wire為RS232,adr為”COM,Baud rate,bit,handshaking number”。

第三個傳參值為int類型的引用參數(shù)id,這是為設(shè)備分配的唯一識別號。

返回值為int類型,0代表連接成功,1表示連接失敗。

02斷開儀器

Finish方法:通信結(jié)束后斷開設(shè)備接口。

語法:int Finish(int id)。

只需要傳參設(shè)備id,即可斷開儀器連接。

返回值為int類型,0代表斷開成功,1表示斷開失敗。

03發(fā)送指令

Send方法:發(fā)送指令給對應(yīng)設(shè)備。

語法:int Send(int id, string msg )。

第一個傳參值為設(shè)備id,指定發(fā)送指令的對象。

第二個傳參值為string類型的msg,也就是設(shè)備的通信指令。

例如設(shè)置功率計WT310E的電壓量程為Auto,即Send(id,”:INPUT:VOLTAGE:AUTO ON”)。

返回值為int類型,0代表發(fā)送成功,1表示發(fā)送失敗。

04接收指令

接收指令包括接收消息和接收塊數(shù)據(jù)兩類。

接收消息Receive方法:

接收Send方法得到的反饋信息。

語法:int Receive(int id, [Out] StringBuilder buff, int blen, ref int rlen)。

第一個傳參值為設(shè)備id,指定接收指令的對象。

第二個傳參值為StringBuilder類型的輸出參數(shù)buff,用來存放接收數(shù)據(jù)的緩沖區(qū)。

例如接收WT310E的儀器型號,即先發(fā)送問詢指令Send(id,”*IDN?”),再接收消息Receive(id,buff,blen,ref rlen)。儀器型號信息即賦值于buff變量中。

第三個傳參值為int類型的blen,用來規(guī)定接收數(shù)據(jù)的容量上限。

第四個傳參值為int類型的引用參數(shù)rlen,表示實際接收數(shù)據(jù)的大小。

返回值為int類型,0代表接收成功,1表示接收失敗。


接收塊數(shù)據(jù)ReceiveBlockData方法:

當(dāng)接收來自示波器、錄波儀等Image和WaveForm數(shù)據(jù)時,需要用該方法接收塊數(shù)據(jù)。語法:int ReceiveBlockData(int id, ref **buff, int blen, ref int rlen, ref int end) 。

  • 第一個傳參值為設(shè)備id,指定接收指令的對象。

  • 第二個傳參值為值類型的引用參數(shù)buff,用來存放接收數(shù)據(jù)的緩沖區(qū),根據(jù)指定的值類型來定義buff。例如接收DLM3000示波器Byte格式的波形數(shù)據(jù),即先發(fā)送設(shè)定指令Send(id, ":WAVEFORM:FORMAT BYTE)設(shè)定示波器輸出波形的格式為BYTE類型;再發(fā)送問詢指令Send(id,”WAVeform:SEND?"),最終通過循環(huán)接收塊數(shù)據(jù)ReceiveBlockData(id, ref data[totalsize], blen, ref rlen, ref end)。

  • 第三個傳參值為int類型的blen,用來規(guī)定接收數(shù)據(jù)的容量上限??梢杂蒳nt ReceiveBlockHeader(id, ref blen)方法的引用參數(shù)blen事先確定。

  • 第四個傳參值為int類型的引用參數(shù)rlen,表示實際接收數(shù)據(jù)的大小。

  • 第五個傳參值為int類型的引用參數(shù)end,用來判斷終止符。0代表數(shù)據(jù)未傳輸完成,1表示檢測到終止符,數(shù)據(jù)傳輸終止。

返回值為int類型,0代表接收成功,1表示接收失敗。

通過以上講解相信大家能夠更快上手與橫河儀器的數(shù)據(jù)交互,當(dāng)然如果與TMCTL Library API文檔的6.3節(jié)API功能規(guī)范以及第7章節(jié)的樣例結(jié)合使用,一定可以幫助大家事半功倍。


再給大家一些Tips:

  • C#需要將tmctlAPINet.dlltmctl.dll、YKMUSB.dll和應(yīng)用程序文件放在同一文件夾下。而且目前不支持”Any CPU”架構(gòu),需指定”x86””x64”。

  • 通信協(xié)議對應(yīng)橫河儀器型號參考下表:

圖片


分享到:
 
反對 0 舉報 0 收藏 0 評論 0
滬ICP備11026917號-25