Qt程控基础篇

Qt 程控基础篇 #

操作系统: Windows 7 IDE:Qt Creator 4.14.0 Visa版本: 17.5 通信方式: LAN

在开发之前请确保已配置visa开发环境,参考 Visa开发环境搭建

本例使用程控命令为“*IDN?\n“,其功能是输出仪器标识。运行本例程序后,点击界面上的按钮,会在下方的文本框中输出得到的仪器标识:“Ceyear Technologies,3672A,,2.1.2”。下面具体介绍整个实现过程。

第一步:在项目管理文件.pro中添加visa库 #

在**.pro**的文件中右击->添加库

图-添加库图1

点击下一步

图-添加库图2

库文件:C:\Program Files\IVI Foundation\VISA\Win64\Lib_x64\msc\visa32.lib

包含路径:C:\Program Files\IVI Foundation\VISA\Win64\Include

注意:这个是根据我的路径和版本来添加的,操作时要根据不同的路径和版本进行修改。

自动添加的代码如下所示:

win32: LIBS += -L'C:/Program Files (x86)/IVI Foundation/VISA/WinNT/lib/msc/' -lvisa32
INCLUDEPATH += 'C:/Program Files (x86)/IVI Foundation/VISA/WinNT/Include'
DEPENDPATH += 'C:/Program Files (x86)/IVI Foundation/VISA/WinNT/Include'

第二步:设计界面 #

这里只设置了一个简单的按钮和文本框:

图-设置的界面图

第三步:编写程序 #

在mainwindow.cpp文件中输入以下代码:

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "visa.h"//导入visa库的头文件

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}

ViSession defaultRM;//VISA资源管理器
ViSession vi;//资源对话通道标识符(句柄)
ViChar buff[256];//指令存储字符串
ViChar buff1[256];//指令存储字符串
ViUInt32 retCnt;//32位无符号整型

void MainWindow::on_pushButton_clicked()
{
    viOpenDefaultRM(&defaultRM);//打开VISA资源管理器句柄
    
    // viOpen(defaultRM, "TCPIP0::172.16.1.201::inst0::INSTR",0,2000, &vi);// 打开VXI-11接口的仪器句柄
    // viOpen(defaultRM, "GPIB0::16::INSTR",0,2000, &vi);// 打开GPIB接口的仪器句柄
    // viOpen(defaultRM, "USB0::0x0525::0x1000::ZKC00523::INSTR",0,2000, &vi);// 打开USB接口的仪器句柄
    viOpen(defaultRM, "TCPIP0::172.16.1.201::5025::SOCKET",0,2000, &vi);// 打开网络接口的仪器句柄
    
    viSetAttribute(vi, VI_ATTR_TERMCHAR, '\n');//设置结束符为\n。
    viSetAttribute(vi, VI_ATTR_TERMCHAR_EN, VI_TRUE);//启用结束符。VI_ATTR_TERMCHAR_EN为是否允许终止符
    viSetAttribute(vi, VI_ATTR_TMO_VALUE, 5000);//超时设置为5秒。VI_ATTR_TMO_VALUE为超时值
    
    sprintf(buff," *IDN?\n");//查询仪器标识
    
    viWrite(vi, (ViBuf) buff,strlen(buff), &retCnt);//将数据同步写入到器件中
    viRead(vi, (ViBuf) buff1, 256, &retCnt);//从器件同步读取数据
    
    viClose(vi);//关闭仪器
    viClose(defaultRM);//关闭VISA资源管理器
    
    ui->lineEdit->setText(buff1);//在lineEdit中显示查询到的仪器标识
}

第四步:运行程序 #

注意:运行时要保证打开了矢量网络分析仪

运行程序,点击按钮后输出:

图-运行程序后输出图