一、 背景
暗室测试通过PC 软件直接控制信号源(信号发生器),不用手动操作。像这种标准控制仪器都有提供有PC接口,要完成信号源的控制我们需要了解两方面的知识:SPCI和VISA。
SPCI:SCPI(可编程仪器的标准命令)是一种基于 ASCII 的仪器命令语言,供测试和测量仪器使用,简单来说就是你发送给一个设备一串SCPI格式的字符串,它就能完成相应操作,这就是它们的通用语言。SCPI分为标准SCPI和扩展的SCPI,前者是各种设备通用的,如重置命令RST,后者是各个厂家各种设备自己扩展的命令。如果相应设备支持SCPI,在其操作手册中会对SCPI详细说明,一个简单的参考在这里,最好是查看需要控制的设备说明文档。
VISA:VISA(Virtual Instrument Software Architecture,简称为"Visa"),即虚拟仪器软件结构,是VXI plug&play联盟制定的I/O接口软件标准及其规范的总称。VISA提供用于仪器编程的标准I/O函数库,称为VISA库,计算机通过它来控制仪器。
VISA的适用和各种仪器接口通信,无论仪器使用的串口还是其他任何一种总线,诸如USB、GPIB、VXI、PXI和LXI等,都具有相同的操作函数,从而实现了控制操作上的统一。
这里我们使用Agilent的visa库。
二、 关于库文件和测试工具
1、我们可以去是德科技官网下载Agilent IO Library 或 是德科技仪器控制捆绑套件。
官网地址:https://www.keysight.com/cn/zh/home.html
捆绑套件下载:
https://www.keysight.com/cn/zh/lib/software-detail/computer-software/keysight-instrument-control-bundle-download-1184883.html

IO程序库套件:用于检测和链接仪器
Command Expert:用于构建仪器控制应用软件
BenchVue:无需编程即可用于查看和捕获仪器数据
2、仪器控制捆绑套件如下图所示

3、安装完毕后我们可以打开Keysight IO Librarise Suite测试设备通信是否正常,通信测试后在开始编程控制,如下图所示:
① 选择网口
② 填写仪器ip地址,点击OK即可
③ 连接成功后,会显示如下图信息(这里我没有连接)
三、 开始编程,使用visa编程控制信号发生器(这里只实现了控制频率)
① 库文件
因为我之前已经安装了捆绑套件,所以visa库可以去安装目录下找,我这里的库文件路径是:
头文件:C:\Program Files\IVI Foundation\VISA\Win64\Include

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

② 关于visa接口
仪器控制,主要使用到的接口有:viOpen()、viWrite()、viRead()、viClose()。
③代码如下(我这里使用的信号源是:安捷伦 ESG E4438C)
.h文件
#pragma once
#include <QObject>
#include "visatype.h"
#include "visa.h"
class SGControl
{
public:
SGControl();
~SGControl();
public:
/*连接设备*/
bool connectDev();
/*关闭设备*/
bool closeDev();
/*设置频率*/
bool setFreq(int freqMHz);
/*获取设备信息*/
void getDevInfo(QString &text);
private:
ViSession m_defaultRM;
ViSession m_cmdSession;
};
.cpp文件
#include "SGControl.h"
#include <QByteArra

本文介绍如何使用SCPI命令和VISA库实现对信号发生器的远程控制,包括连接设备、设置频率等功能,并提供了完整的编程示例。
最低0.47元/天 解锁文章
1807





