安捷伦示波器使用说明书_安捷伦labview采集

安捷伦示波器使用说明书_安捷伦labview采集Step1:配置VISA协议。VISA协议是AgilentIOLibraries的一部分,主要包含一个虚拟仪器软件架构VISA(一个比较通用的工业仪器软件架构)和标准控制库SICL.我理解前者相当一个底层架构,后者相当于一个指令集.先配置好VISA,然后通过SICL指令集发命令。直接上例子,简单明了。agilent示波器可以直接用VISA,所以只要在C++项目里进行配置。首先在C++里配…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

Step1:配置VISA协议。

VISA协议是Agilent IO Libraries的一部分, 主要包含一个虚拟仪器软件架构VISA (一个比较通用的工业仪器软件架构) 和标准控制库SICL.我理解前者相当一个底层架构,后者相当于一个指令集.先配置好VISA,然后通过SICL指令集发命令。

直接上例子,简单明了。agilent示波器可以直接用VISA,所以只要在C++项目里进行配置。

首先在C++里配置VISA的库,这里会比较麻烦,需要去网站找下资源和说明。先在库函数里加上VISA的路径如下图,还要在链接器里的附加依赖项加上visa64.lib。

安捷伦示波器使用说明书_安捷伦labview采集

加库函数

安捷伦示波器使用说明书_安捷伦labview采集

在link的附加依赖项里添加visa64.lib

值得一提的是,在配置库函数时,发现库里还包括了NI的库,说明VISA协议也适用于NI仪器。

然后,在c++文件里include “visa.h” 文件,这样就可以使用VISA库了。库里面有很多VISA的数据类型和函数,大多以vi开头,比如ViSession,vistate, viPrintf, viScanf。后两者是最重要的函数,用来向示波器读写命令。比如viPrintf(vi, message); vi是程序里连接示波器的句柄的地址,message是需要发送给示波器的SCIP指令集里的字符串。

之后,在示波器的帮助文件里找到一个地址,名为”USB0::0x0957::0x900B::MY52090114::0::INSTR”。将其宏定义在C++里,

#define VISA_ADDRESS “USB0::0x0957::0x900B::MY52090114::0::INSTR”

用来识别机器。连接方式有好几种,我们选择的是usb端口,所以需要用这个address,其他还有用IP地址等。

Step2: 写代码

在agilent的programme reference帮助文件里可以查询所有的命令集,用来做各种远程操作,我是直接把示波器里的help拷贝出来啦。

安捷伦示波器使用说明书_安捷伦labview采集

我的主要方法是参考aglient的C例程,直接代码复用,非常方便。比如查询仪器是否error的函数代码如下,其中有些QT界面的代码请忽略:

void VISA_Control::check_instrument_errors()

{

char str_err_val[255] = { 0 };

char str_out[800] = “”;

err = viQueryf(vi, “:SYSTem:ERRor? STRing\n”, “%t”, str_err_val);

if (err != VI_SUCCESS) QMessageBox::warning(pParent, “QueryStringFail”, “check_instrument_errors”);

while (strncmp(str_err_val, “0,”, 2) != 0)

{

strcat(str_out, “, “);

strcat(str_out, str_err_val);

err = viQueryf(vi, “:SYSTem:ERRor? STRing\n”, “%t”, str_err_val);

if (err != VI_SUCCESS) QMessageBox::warning(pParent, “QueryStringFail”, “check_instrument_errors”);

}

if (strcmp(str_out, “”) != 0)

{

err = viFlush(vi, VI_READ_BUF);

if (err != VI_SUCCESS) QMessageBox::warning(pParent, “QueryStringFail”, “check_instrument_errors”);

err = viFlush(vi, VI_WRITE_BUF);

if (err != VI_SUCCESS) QMessageBox::warning(pParent, “QueryStringFail”, “check_instrument_errors”);

}

}

利用visa库,我们写了一个VISA_Control.cpp的自用库函数,将功能进一步集成,用来在以后的程序中调用。

Step3: 有些BUG

用C++里的visa函数连接示波器后,示波器的面板按键经常就无法使用。但有时又可以,挺麻烦的。。。因为有些东西的调节程控并不方便,比如信号窗格,时间窗格等。

help例程里操作的存储的指令(writeString 貌似是一些其他平台的语法,只看引号里的内容即可),如

myScope.WriteString “:DISK:CDIRECTORY “”C:\Document and Settings\All Users\Shared Documents\Infiniium\Data”””(设置存储路径),

貌似无效。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/182856.html原文链接:https://javaforall.net

(0)
上一篇 2022年10月12日 上午11:16
下一篇 2022年10月12日 上午11:16


相关推荐

  • 矩阵乘以其矩阵转置

    矩阵乘以其矩阵转置在推导公式和计算中,常常能碰到矩阵乘以其矩阵转置,在此做个总结。1.假设矩阵A是一个m∗nm∗nm*n矩阵,那么A∗ATA∗ATA*A^T得到一个m∗mm∗mm*m矩阵,AT∗AAT∗AA^T*A得到一个n∗nn∗nn*n的矩阵,这样我们就能得到一个方矩阵。看一个例子:Xθ=HXθ=HX\theta=H求解θθ\theta.XTXθ=XTHXTXθ=XT…

    2022年6月30日
    58
  • 美股实时行情api接口(美股开户)

    所有美股历史交易行情数据,完整历史交易/任意时间段查询。1.产品功能支持所有历史美股交易查询;支持指定任意时间段查询;超高的查询效率,秒级返回;所有的交易数据为未复权的数据;全接口支持HTTPS(TLSv1.0/v1.1/v1.2/v1.3);全面兼容AppleATS;全国多节点CDN部署;接口极速响应,多台服务器构建API接口负载均衡。2.API文档接口地址:https://api.gugudata.com/stock/us返回格式:

    2022年4月11日
    137
  • Python常用数据结构之collections模块建议收藏

    collectionscollections是日常工作中的重点、高频模块,常用类型有:计数器(Counter)双向队列(deque)默认字典(defaultdict)有序字典(Ordered

    2021年12月18日
    48
  • ubuntu更换国内源

    ubuntu更换国内源ubuntu16.04和18.04更换国内源写在前面:安装好ubuntu双系统后,默认的软件更新源是国外的,在国内使用速度很慢,用”aptinstallxxx”安装软件时可能出现”网络不可达”、”你的网络需要认证吗”、”无法定位软件包”等错误,所以我们需要更换成国内的源,这样才能正常安装和更新软件。一、ubuntu16.04更换国内源1.备份原始源文件source.list桌面…

    2022年6月4日
    103
  • 怎么新建pytest的ini文件_pytest.ini配置

    怎么新建pytest的ini文件_pytest.ini配置前言pytest配置文件可以改变pytest的运行方式,它是一个固定的文件pytest.ini文件,读取配置信息,按指定的方式去运行查看pytest.ini的配置选项pytest-h找到以下

    2022年7月30日
    6
  • Zuul网关_为什么网关老是断开

    Zuul网关_为什么网关老是断开一、前言Zuul网关是具体核心业务服务的看门神,相比具体实现业务的系统服务来说它是一个边缘服务,主要提供动态路由,监控,弹性,安全性等功能。在分布式的微服务系统中,系统被拆为了多套系统,通过zuul网关来对用户的请求进行路由,转发到具体的后台服务系统中。本Chat主要内容如下:服务网关演化历程。Zuul1.0服务架构与源码剖析。Zuul2.0服务架构新特性。二、服务网关演化历程网关是…

    2022年8月15日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号