0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

采用VC++語(yǔ)言實(shí)現(xiàn)基于通用接口總線GPIB的遠(yuǎn)程測(cè)量系統(tǒng)的設(shè)計(jì)

電子設(shè)計(jì) ? 來(lái)源:郭婷 ? 作者:電子設(shè)計(jì) ? 2019-05-03 09:17 ? 次閱讀

引言

隨著數(shù)字化的智能化儀器的快速發(fā)展,工程上越來(lái)越希望將常用儀器設(shè)備與計(jì)算機(jī)連接起來(lái)組成一個(gè)由計(jì)算機(jī)控制的智能系統(tǒng)。而工程中常用的儀器設(shè)備種類(lèi)繁多、功能各異、獨(dú)立性強(qiáng),一個(gè)系統(tǒng)往往需要多臺(tái)不同類(lèi)型的儀器協(xié)同工作。而基于通用接口總線GPIB則可以把各種可編程儀器與計(jì)算機(jī)緊密地聯(lián)系起來(lái),使電子測(cè)量由獨(dú)立的、傳統(tǒng)的單臺(tái)儀器向大規(guī)模自動(dòng)測(cè)試系統(tǒng)的方向發(fā)展。本文提出了一種在VC++6.0編程環(huán)境中利用SCPI對(duì)基于GPIB接口的儀器進(jìn)行遠(yuǎn)程測(cè)量的實(shí)現(xiàn)方法。

1 GPIB接口總線

GPIB主要是為臺(tái)式測(cè)量?jī)x器(或裝置)組成自動(dòng)測(cè)量系統(tǒng)而設(shè)計(jì)的。GPIB儀器系統(tǒng)主要利用GPIB接口卡將若干GPIB儀器連接起來(lái),每個(gè)設(shè)備(包括計(jì)算機(jī)接口卡)必須有一個(gè)0~30之間的GPIB地址。一般GPIB接口卡設(shè)置為地址0,儀器的GPIB地址則從1到30。GPIB有一個(gè)控者(電腦)來(lái)控制總線。在總線上傳送儀器命令和數(shù)據(jù),控者尋址一個(gè)講者以及一個(gè)或多個(gè)聽(tīng)者。數(shù)據(jù)串在總線上從講者向聽(tīng)者傳送。

GPIB系統(tǒng)的連接方式可以是線型、星型或者混合拓?fù)湫汀R话闱闆r下,GPIB電纜的連接器都具有特殊的構(gòu)造,它都允許多個(gè)連接器堆疊連接在一起。對(duì)GPIB總線系統(tǒng)連接的基本配置要求主要有兩個(gè):

第一種配置,其兩個(gè)設(shè)備之間的最大距離為4米,整個(gè)電纜的長(zhǎng)度不得超過(guò)20米(第一個(gè)器件與最后一個(gè)器件之間的距離);

在第二種配置下,GPIB母線上最多可掛15個(gè)器件,這主要是受TTL接口收發(fā)器驅(qū)動(dòng)能力限制。當(dāng)測(cè)試系統(tǒng)有必要使用多于15個(gè)器件時(shí),只需在控制器上再添置一個(gè)GPIB接口,這樣可多拉一個(gè)母線,再多掛14個(gè)器件。該總線的最大數(shù)據(jù)傳輸速率為1 MB/s,在20米總線上,最高可工作于500 KB/s。

2 系統(tǒng)組成

基于VC++的GPIB儀器遠(yuǎn)程測(cè)量系統(tǒng)組成如圖1所示。該系統(tǒng)主要包括計(jì)算機(jī)、GPIB電纜、USB-GPIB控制器、GPIB儀器等。

采用VC++語(yǔ)言實(shí)現(xiàn)基于通用接口總線GPIB的遠(yuǎn)程測(cè)量系統(tǒng)的設(shè)計(jì)

系統(tǒng)的主要優(yōu)勢(shì)表現(xiàn)在以下幾個(gè)方面:

(1)編程方便,可使用高級(jí)語(yǔ)言編程;

(2)提高儀器設(shè)備的性能指標(biāo)??衫糜?jì)算機(jī)對(duì)帶有GPIB接口的儀器實(shí)現(xiàn)操作和控制,以實(shí)現(xiàn)各種自動(dòng)標(biāo)準(zhǔn)、多次測(cè)量平均等功能,從而提高測(cè)量精度;

(3)便于將多臺(tái)帶有GPIB接口的儀器組合起來(lái),以形成較大的遠(yuǎn)程測(cè)量系統(tǒng),從而高效、靈活地完成各種不同的測(cè)試任務(wù);

(4)便于擴(kuò)展傳統(tǒng)儀器的功能。由于儀器與計(jì)算機(jī)相聯(lián),因此可在計(jì)算機(jī)的控制下對(duì)測(cè)試數(shù)據(jù)進(jìn)行更加靈活和方便的傳輸、處理、綜合利用和顯示,從而使原來(lái)儀器采用硬件邏輯很難解決的問(wèn)題迎刃而解。

3 系統(tǒng)軟件

本系統(tǒng)選用了可視化的Visual C++通用編程工具來(lái)開(kāi)發(fā)測(cè)試軟件,該工具的主要特點(diǎn)為易學(xué)易用、開(kāi)發(fā)高效率開(kāi)發(fā)功能強(qiáng)大等。開(kāi)發(fā)人員能在VC++環(huán)境下利用上述特點(diǎn)并使用Windows內(nèi)部的應(yīng)用程序接口(API)函數(shù)、動(dòng)態(tài)鏈接庫(kù)(DLL)、對(duì)象的鏈接與嵌入(OLE)以及開(kāi)放式數(shù)據(jù)庫(kù)連接(ODBC)等技術(shù),來(lái)快速、方便地開(kāi)發(fā)出圖形界面豐富、功能強(qiáng)大且工作于Windows平臺(tái)下的應(yīng)用軟件系統(tǒng)。

與儀器進(jìn)行通信的格式實(shí)際上有兩種:一種為基于寄存器的通信格式,另一種為基于消息的通信格式。此處的GPIB系統(tǒng)程序設(shè)計(jì)語(yǔ)言為可編程儀器的標(biāo)準(zhǔn)命令SCPI(Standard Commands for Programmable Instruments),其通信格式屬于后者。

3.1 SCPI的儀器控制命令

SCPI可編程儀器標(biāo)準(zhǔn)命令是一種用來(lái)控制儀器的命令語(yǔ)言。它可用一種標(biāo)準(zhǔn)方式來(lái)描述各種各樣的儀器功能,其中規(guī)定了在控制器到儀器和儀器到控制器之間的信息交換層消息的構(gòu)造和內(nèi)容,因而使各類(lèi)不同的儀器更容易被理解和使用。同時(shí)SCPI是一種“活”的標(biāo)準(zhǔn),可以滿(mǎn)足新儀器和新技術(shù)的需要。SCPI命令可分為儀器公用命令和儀器特定控制命令兩個(gè)部分。SCPI把IEEE488.2要求儀器必須執(zhí)行的公用命令作為SCPI儀器公用命令,這些公用命令用于控制儀器的某些基本功能操作,其句法和語(yǔ)義遵循IEEE488.2規(guī)定。儀器特定控制命令是指每個(gè)程控儀器完成自身命令操作的特定命令。采用SCPI編程有以下幾方面優(yōu)點(diǎn):

(1)SCPI是一個(gè)獨(dú)立于硬件的純粹軟件標(biāo)準(zhǔn),SCPI字符串可以通過(guò)任何儀器接口發(fā)送,無(wú)論是GPIB、RS-232、VXIbus、還是局域網(wǎng),都沒(méi)有問(wèn)題;

(2)SCPI允許用相同的代碼來(lái)控制許多不同的儀器,而且語(yǔ)法簡(jiǎn)單有力,方便易學(xué)。因此,在掌握了一種儀器的命令集之后,就很容易掌握其他儀器的命令集。這些命令集有很多的相似性,這種相似性體現(xiàn)在兩個(gè)層面:其一是在垂直層面上,同一類(lèi)型的儀器命令集比較相似;其二是在水平層面上,不同類(lèi)型儀器之間的同種功能的SCPI命令也一致;

(3) SCPI的獨(dú)特設(shè)計(jì)使得它可以不斷擴(kuò)展而不會(huì)引起過(guò)多問(wèn)題。隨著新型儀器的出現(xiàn),新的命令*不斷加入SCPI;

(4)SCPI的語(yǔ)句以ASCⅡ文本的方式存在,因此,可以加入到任何計(jì)算機(jī)測(cè)試編程語(yǔ)言之中,如BASIC、C或C++;也可以用于如LabWin-dows/CVI、LabVIEW或者Agilent VEE這樣的專(zhuān)用測(cè)試程序開(kāi)發(fā)環(huán)境。

3.2 SCPI命令樹(shù)圖

命令樹(shù)圖用于定義SCPI的命令集,它描述了命令、命令之間的層次關(guān)系、相關(guān)的參數(shù)以及必要的注釋?zhuān)琒CPI命令樹(shù)如表1所列。

采用VC++語(yǔ)言實(shí)現(xiàn)基于通用接口總線GPIB的遠(yuǎn)程測(cè)量系統(tǒng)的設(shè)計(jì)

命令樹(shù)圖通常由三部分構(gòu)成:關(guān)鍵字(KEY-WORD)、參數(shù)形式(PARAMETER FORM)和注釋(NOTES)。其中關(guān)鍵字提供命令的名字,由于SCPI命令基于層次結(jié)構(gòu),一個(gè)實(shí)際的命令通常由一個(gè)或多個(gè)關(guān)鍵字構(gòu)成,關(guān)鍵字之間用“;”分隔;參數(shù)形式用于指明命令的參數(shù)個(gè)數(shù)和順序,以及它們的合法取值;注釋通常命令的詢(xún)問(wèn)形式可以由命令形式加上問(wèn)號(hào)構(gòu)成,但不是所有的命令都有詢(xún)問(wèn)形式,注釋部分的內(nèi)容通常用于指示必要的情況。

4 GPIB在功率測(cè)量系統(tǒng)中的應(yīng)用

下面以Agilent E4407功率計(jì)的遠(yuǎn)程測(cè)量系統(tǒng)為例來(lái)進(jìn)行說(shuō)明。為實(shí)現(xiàn)計(jì)算機(jī)對(duì)功率計(jì)的遠(yuǎn)程控制,需要通過(guò)VC調(diào)用GPIB接口控制卡驅(qū)動(dòng)程序接口函數(shù)。一般最常用到的函數(shù)有ibdev (GPIB接口控制卡初始化設(shè)置函數(shù))、ibwrt(寫(xiě)字符串命令函數(shù))和ibrda(讀字符串命令函數(shù))。以下是測(cè)量程序的部分控制代碼,其作用是通過(guò)GPIB接口卡對(duì)功率計(jì)進(jìn)行初始化,并對(duì)功率計(jì)進(jìn)行讀寫(xiě)操作。

首先是初始化GPIB卡,以使其具備控制和通信能力;然后初始化儀器,使儀器完成與GPIB的連接,并對(duì)儀器進(jìn)行相關(guān)的初始化操作,其代碼如下:

int m_iBoardIndex;//GPIB卡號(hào)此處為0

int m_iGPIBDev; //GPIB設(shè)備

int m_iSecondGPAdd;//GPIB設(shè)備第二地址

int m_iGPAddress; //GPIB地址此處設(shè)為19

char buf_pow[20];//數(shù)據(jù)緩存

InitGPIBDev();//初始化函數(shù)

{m_iGPIBDev=ibdev(m_ilndex,m_iG-PAdd,m_iSecAdd,Tls,1,0);

//初始化功率計(jì),GPIB接口卡的地址為0、功率計(jì)的主地址為19,沒(méi)有輔地址、超時(shí)設(shè)置為1S、使用默認(rèn)傳輸結(jié)束方式。

ibwrt(m_iGPIBDev,“*RST?”);//儀器復(fù)位

ibwrt(m_iGPIBDev,“*CLS?”);//清除狀態(tài)寄存器

ibwrt(m_iGPIBDev,“*SRE 0”);//允許服務(wù)請(qǐng)求

ibwrt(m_iGPIBDev,“*ESE 0”);//允許標(biāo)準(zhǔn)事件狀態(tài)

ibwrt(m_iGPIBDev,“:STAT:PRES”);//預(yù)調(diào)整狀態(tài)

ibwrt(m_iGPIBDev,“:FUNC:ON‘POW’”);//顯示屏進(jìn)行顯示

}

其次是功率測(cè)量與顯示??刂苾x器完成相應(yīng)的測(cè)量和顯示時(shí),首先也應(yīng)初始化相關(guān)變量,其代碼如下:

采用VC++語(yǔ)言實(shí)現(xiàn)基于通用接口總線GPIB的遠(yuǎn)程測(cè)量系統(tǒng)的設(shè)計(jì)

采用VC++語(yǔ)言實(shí)現(xiàn)基于通用接口總線GPIB的遠(yuǎn)程測(cè)量系統(tǒng)的設(shè)計(jì)

程序運(yùn)行后,首先還應(yīng)對(duì)GPIB卡和GPIB儀器進(jìn)行初始化,并完成與儀器的連接,然后利用遠(yuǎn)程測(cè)量程序向功率計(jì)發(fā)送測(cè)量命令“:MEA-SURE:POW?”進(jìn)行功率測(cè)量,之后再通過(guò)ibrda(m_iGPIBDev,buf_pow,20)函數(shù)讀取功率值并將讀取的數(shù)據(jù)存儲(chǔ)在本地開(kāi)辟的數(shù)據(jù)緩存中,最后經(jīng)過(guò)本地處理后將測(cè)量數(shù)據(jù)顯示在遠(yuǎn)程測(cè)量的顯示屏上,從而實(shí)現(xiàn)功率計(jì)的遠(yuǎn)程控制和測(cè)量功能,其程序界面如圖2所示。

5 結(jié)束語(yǔ)

在采用VC++語(yǔ)言的編程環(huán)境下,利用SCPI儀器控制命令進(jìn)行GPIB儀器遠(yuǎn)程測(cè)量系統(tǒng)的開(kāi)發(fā),其程序直觀,可讀性強(qiáng),可提高測(cè)量效率。此外,利用該方法還可實(shí)現(xiàn)對(duì)多種GPIB儀器遠(yuǎn)程測(cè)量系統(tǒng)的開(kāi)發(fā),因而具有廣泛的推廣和應(yīng)用價(jià)值。


聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 控制器
    +關(guān)注

    關(guān)注

    112

    文章

    15885

    瀏覽量

    175379
  • 計(jì)算機(jī)
    +關(guān)注

    關(guān)注

    19

    文章

    7174

    瀏覽量

    87158
  • 總線
    +關(guān)注

    關(guān)注

    10

    文章

    2817

    瀏覽量

    87710
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    C,C++,VC,VC++,MFC,API......

    C,C++,VC,VC++,MFC,API......發(fā)現(xiàn)總有人把這些東西搞混,簡(jiǎn)單解釋一下.C,C++都是編程語(yǔ)言,兩者是不同的,不要認(rèn)為C++是C的升級(jí).C是面向過(guò)程的,C++是面向?qū)ο?封裝
    發(fā)表于 10-07 11:09

    LabVIEW以及GPIB接口系統(tǒng)組成結(jié)構(gòu)分析

    所示。系統(tǒng)具有以下四個(gè)顯著特點(diǎn):    (1)GPIB接口編程方便,減輕了軟件設(shè)計(jì)負(fù)擔(dān),可使用高級(jí)語(yǔ)言編程; ?。?)提高了儀器設(shè)備的性能指標(biāo)。利用計(jì)算機(jī)對(duì)帶有
    發(fā)表于 05-09 08:30

    USB接口小區(qū)電話(huà)報(bào)警平臺(tái)在VC++下怎么實(shí)現(xiàn)

    USB接口小區(qū)電話(huà)報(bào)警平臺(tái)在VC++下的實(shí)現(xiàn)
    發(fā)表于 02-25 06:30

    CH365代碼用VC++平臺(tái)的,但CH432里面的參考例程是C語(yǔ)言的,如何轉(zhuǎn)成VC++?

    有點(diǎn)小白,CH365代碼用VC++平臺(tái)的,但CH432里面的參考例程是C語(yǔ)言的,如何轉(zhuǎn)成VC++
    發(fā)表于 10-10 09:44

    基于GPIB接口總線的虛擬儀器

    本文介紹了虛擬儀器的GPIB 總線接口技術(shù)。計(jì)算機(jī)通過(guò)GPIB 接口卡控制帶有GPIB
    發(fā)表于 08-24 08:48 ?88次下載

    基于虛擬儀器GPIB接口總線

    在本文中,我們介紹了GPIB總線接口技術(shù)。通過(guò)GPIB接口板控制,計(jì)算機(jī)控制的電流源和電壓表,兩者都GP
    發(fā)表于 08-29 09:00 ?39次下載

    基于VCGPIB的數(shù)字示波器遠(yuǎn)程控制

             以Tektronix 公司生產(chǎn)的TDS6604B 數(shù)字存儲(chǔ)示波器為例,選用GPIB-LAN 適配器AD007,構(gòu)成遠(yuǎn)程控制系統(tǒng)。采用
    發(fā)表于 09-10 09:48 ?45次下載

    VC++環(huán)境下實(shí)現(xiàn)GPIB通訊設(shè)計(jì)

    本文介紹了一種在VC++環(huán)境下編程實(shí)現(xiàn)GPIB 通訊控制的設(shè)計(jì)。在設(shè)計(jì)中使用了CEC 公司的PCI-GPIB 接口卡,結(jié)合其軟件庫(kù)進(jìn)行編程,
    發(fā)表于 01-18 14:13 ?89次下載

    GPIB接口的FPGA實(shí)現(xiàn)

    摘    要:GPIB接口是測(cè)試儀器中常用的接口方式。通過(guò)將接口設(shè)計(jì)分解為同步狀態(tài)機(jī)設(shè)計(jì)和寄存器讀寫(xiě)電路設(shè)計(jì),采用
    發(fā)表于 03-24 13:32 ?5000次閱讀
    <b class='flag-5'>GPIB</b><b class='flag-5'>接口</b>的FPGA<b class='flag-5'>實(shí)現(xiàn)</b>

    GPIB接口總線簡(jiǎn)介及應(yīng)用

      GPIB(General-Purpose Interface Bus)-通用接口總線   大多數(shù)打印機(jī)就是通過(guò)GPIB線以及
    發(fā)表于 07-28 17:18 ?8296次閱讀

    通用接口總線轉(zhuǎn)接PC機(jī)串口解決方案

    通用接口總線 GPIB 作為IEEE 組織制定的儀器接口總線標(biāo)準(zhǔn),用于將各種數(shù)字化的自動(dòng)
    發(fā)表于 08-02 17:08 ?51次下載
    <b class='flag-5'>通用</b><b class='flag-5'>接口</b><b class='flag-5'>總線</b>轉(zhuǎn)接PC機(jī)串口解決方案

    什么是gpib_gpib接口

    本內(nèi)容簡(jiǎn)單概述了什么是gpib,gpib接口gpib總線的相關(guān)知識(shí)。GPIB可以用作多臺(tái)儀器通
    發(fā)表于 12-21 11:56 ?4.4w次閱讀

    基于VC++的指紋識(shí)別系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

    基于VC++的指紋識(shí)別系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
    發(fā)表于 02-07 18:01 ?23次下載

    基于GPIB接口總線的虛擬儀器詳解

    GPIB通用接口總線是一種設(shè)備和計(jì)算機(jī)連接的總線。大多數(shù)臺(tái)式儀器是通過(guò)GPIB線以及
    的頭像 發(fā)表于 04-24 16:41 ?1w次閱讀

    基于VHDL語(yǔ)言實(shí)現(xiàn)遠(yuǎn)程防盜報(bào)警設(shè)計(jì)

    電子發(fā)燒友網(wǎng)站提供《基于VHDL語(yǔ)言實(shí)現(xiàn)遠(yuǎn)程防盜報(bào)警設(shè)計(jì).pdf》資料免費(fèi)下載
    發(fā)表于 11-08 14:33 ?0次下載
    基于VHDL<b class='flag-5'>語(yǔ)言實(shí)現(xiàn)</b><b class='flag-5'>遠(yuǎn)程</b>防盜報(bào)警設(shè)計(jì)