一、NI-VISA介绍
NI-VISA(National Instruments - Virtual Instrument Software Architecture)是National Instruments公司开发的一个编程接口标准,它定义了一套编程接口,用于与仪器进行通讯和控制。
NI-VISA的主要功能和特点包括:
-
提供一套标准的接口函数,可以用来访问和控制不同类型、不同厂家的仪器设备。包括USB、串口、GPIB等接口。
-
支持多种编程语言,如LabVIEW、C/C++、Python等。程序员可以用一套相同的NI-VISA函数调用来访问不同的仪器。
-
具有架构和平台无关性。NI-VISA的架构可以跨不同的操作系统平台使用,如Windows、Linux、Mac OS等。
-
提供了一套配置函数,可以自动发现系统中安装的仪器,获取其信息等。简化了系统配置和程序开发。
-
支持多线程调用和同步操作,可以实现对多个仪器的同时访问。
-
可以对通讯进行缓冲、同步等操作,提高数据吞吐量。
-
提供了完善的错误处理机制。
总之,NI-VISA是一个强大的工业标准接口,简化了测试程序对不同仪器的访问和开发工作。在自动化测试和工控系统中得到广泛应用。
二、使用QT和C++调用NI-VISA接口
使用QT和C++调用NI-VISA接口,主要可以通过以下步骤:
1、安装NI-VISA运行环境及开发包
在系统上需要安装NI-VISA的运行时引擎和开发包,它提供了VISA共享库、头文件、示例代码等。
2、QT项目中包含VISA头文件
在QT C++项目中包含visa.h头文件,可以调用NI-VISA接口。
3、初始化VISA库
使用viOpenDefaultRM()函数初始化VISA库,获取VISA Resource Manager对象。
4、打开仪器连接
使用viOpen()打开到仪器的连接,获取一个visa session对象。
5、调用VISA函数执行操作
使用visa session对象,调用NI-VISA接口函数,如viWrite、viRead、viSetAttribute等来对仪器进行操作。
6、关闭连接
使用viClose()关闭session並退出。
7、释放VISA库
使NI-VISAC用viCloseDefaultRM()释放VISA Resource Manager。
8、处理错误和状态
调用viStatusDesc、viGetAttribute等获取执行状态。
9、构建UI界面
使用QT提供的UI框架构建界面,绑定信号槽,完成对仪器的操作。
以上是利用QT和C++调用NI-VISA进行仪器编程的基本步骤。NI-VISA为各类通讯接口提供了统一的函数调用方式,使得基于QT的测试程序开发简单方便。
#include <visa.h>
#include <QApplication>
#include <QMessageBox>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
// 初始化VISA库
ViSession defaultRM;
viOpenDefaultRM(&defaultRM);
// 打开到仪器的连接
ViSession instrument;
viOpen(defaultRM, "GPIB0::18::INSTR", VI_NULL, VI_NULL, &instrument);
// 写入数据
viPrintf(instrument, "*IDN?\n");
// 读取数据
ViString idn;
viScanf(instrument, "%t", &idn);
QMessageBox::information(NULL, "Idenfication", idn);
// 关闭连接
viClose(instrument);
viClose(defaultRM);
return app.exec();
}
这个示例使用NI-VISA接口初始化资源管理器,打开GPIB仪器连接,写入查询命令,读取仪器身份信息,并在Qt消息框中显示。可以作为使用Qt调用NI-VISA的简单示例。
本文介绍了如何使用QT和C++调用NI-VISA接口与仪器进行通讯。首先,讲述了NI-VISA的功能和特点,然后详细阐述了在QT项目中调用VISA接口的步骤,包括安装开发包、初始化库、打开仪器连接、执行操作、关闭连接、释放资源、错误处理以及构建UI界面。

303

被折叠的 条评论
为什么被折叠?



