问题标签 [visa]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1763 浏览

python - PyVISA:无法通过 VICP 连接到 LeCroy 示波器

我正在尝试通过他们的 VICP VISA 护照 (TCP/IP) 在 Windows7/32bit 和 NI-VISA 5.4.1 下使用 PyVISA 1.7 连接到 LeCroy Wavesurfer 400 系列:

我收到以下错误:

警告(来自警告模块):文件“C:\Python27\lib\site-packages\pyvisa\ctwrapper\functions.py”,第 1378 行 alias_if_exists)

VisaIOWarning: VI_WARN_EXT_FUNC_NIMPL (1073676457): 操作成功,但较低级别的驱动程序没有实现扩展功能。

回溯(最后一次调用):文件“C:\path\scopeTest.py”,第 4 行,范围 = rm.open_resource("VICP::169.254.201.2::INSTR")

文件“C:\Python27\lib\site-packages\pyvisa\highlevel.py”,第 1614 行,在 >open_resource info = self.resource_info(resource_name)

文件“C:\Python27\lib\site-packages\pyvisa\highlevel.py”,第 1584 行,位于 >resource_info

raise ValueError('Could not parse resource: %s (error code %s)' % >(resource_name, ret))

ValueError:无法解析资源:VICP::169.254.201.2::INSTR(错误代码无)

在 LabVIEW 下,与该 VICP 地址下的设备的连接和通信工作正常。此外,当使用TCPIP::而不是VICP::open_resource()连接中建立时,没有警告和错误并且print(scope.ask("*IDN?"))可以正常工作,但其他设备命令scope.write("C1:VDIV .02")不起作用

得出的结论是,为了正确控制设备,必须使用 VICP 通行证。当使用 PyVISA 1.5 但其他配置相同并尝试通过以下方式连接时:

给出:

警告(来自警告模块):文件“C:\Python27\lib\site-packages\pyvisa-1.5-py2.7.egg\pyvisa\ctwrapper\functions.py”,第 1208 行 alias_if_exists)

VisaIOWarning: VI_WARN_EXT_FUNC_NIMPL (1073676457): 操作成功,但较低级别的驱动程序没有实现扩展功能。

警告(来自警告模块):
文件“C:\Python27\lib\site-packages\pyvisa-1.5-py2.7.egg\pyvisa\highlevel.py”,第 315 行返回 Instrument(resource_name, resource_manager=self, **夸格斯)

用户警告:给定资源不是 INSTR 但未知

对于 PyVISA 的早期版本,讨论了仪器的空字符串返回:

http://osdir.com/ml/python.pyvisa.devel/2007-07/msg00003.html

http://sourceforge.net/p/pyvisa/bugs/5/

我怀疑问题出在C:\Python27\lib\site-packages\pyvisa\constants.py中的InterfaceType对于 PyVISA 中的 VICP 连接协议不存在。当,在C:\Python27\lib\site-packages\pyvisa\highlevel.py中引发错误的行被调用resource_info()

似乎导致与interface_type不匹配,或者它可能是resource_class的问题和与旧版本的 PyVISA 一样的返回问题?

0 投票
1 回答
1471 浏览

serial-port - 如何在 LabVIEW 中诊断 VISA/RS-232 通信故障?

我一直在编写一个 LabVIEW 程序来驱动 3 轴 Newport SMC-100 步进电机控制器进行水平、垂直和旋转运动。我已经实现了一个 for 循环,它重复执行 0.3 度转弯,然后是 5 次单独的水平移动,直到它转了一圈。该程序总是在 tellcontrollerstatus.vi 失败,并给我 VISA 1073807339 超时错误。当我重新启动程序时,它会告诉我没有可用的 RS-232 连接。奇怪的是,它发生在各种循环迭代中。

我确定 COM 端口设置是正确的。如果它是一个简单的程序,告诉旋转台以 1000 步完成一个完整的转动,它没有任何问题。只有当我尝试在每个循环中控制两个轴时才会出现问题。

我尝试使用平面序列实现延迟,但它并没有真正帮助。最终,我放弃了更改程序,只是尝试了另一条 USB-RS-232 适配器电缆。然后问题就消失了。

尽管问题已解决,但它并非基于良好的诊断程序,而且似乎纯粹是运气。我想知道是否有正确的方法来诊断这种问题?

0 投票
3 回答
4676 浏览

c# - Visual Studio 2015 使用 VISA 库进行通信时出现问题

我在使用 VISA-Com 库与 Keysight (N6700B) 电源进行通信时遇到问题。

我有一些在 Visual Studio 2015 中编译的 C# 代码,但它不起作用。但是,如果我在 Visual Studio 2012 中编译相同的代码,它就可以工作。

基本上我只是在与设备进行简单的通信:

此外,电源的错误状态为:“错误 -420,查询未终止”

该代码不适用于 VS2015,但可以用于 VS2012。(在 VS2012 中我完全没有错误。)

我已尝试从 KeySight 下载最新的驱动程序,但仍然无法正常工作 ( www.keysight.com/find/iosuitedownload )。

有谁知道为什么它会与 VS2015 中断但与 VS2012 一起使用?

我查找了“Quere Unterminated”,有人说它可能是缺少终止字符“\n”。我尝试将“\n”添加到两个 writeStrings 中,但仍然失败。


编辑:我现在也尝试使用(在不同的地方):

我还尝试添加:

到 WriteStrings。

0 投票
1 回答
794 浏览

python - 侦听 GPIB 事件

我正在使用 PyVisa/GPIB 控制一个测试系统。该系统由两个独立的测试仪(A 和 B)和一台笔记本电脑组成。笔记本电脑被动地侦听来自测试人员 A 的 GPIB 消息,当收到笔记本电脑触发测试人员 B 时。

我正在使用以下代码被动侦听来自测试人员 A 的事件:

有没有更好的方法来监听和响应来自测试人员 A 的事件?有没有更好的方法通过 GPIB 控制这个系统?

0 投票
1 回答
225 浏览

matlab - 使用 Matlab 并行读取两份签证文书

我尝试使用 Matlab (2015a) 从两个 Keysight 示波器中读取数据。为此,我使用带有 spmd 命令的并行计算工具箱。我有一个函数来读取接受签证对象作为参数并返回原始数据的数据。这在 spmd 命令之外可以正常工作(范围 1 和范围 2 是开放签证对象):

我从两个示波器中获取数据。

如果我做:

我收到以下错误:

任何想法出了什么问题?

干杯尼尔斯

0 投票
2 回答
2350 浏览

python - Python:使用 pyvisa 或 pyserial 获取设备“模型”

我编写了一个数据采集程序/脚本,它与我们合作开发的设备一起工作。问题是我只能从此设备读取。无法写入,因此无法使用串行“?IDN*”命令知道这是什么设备。

唯一定义此设备的是它的“型号”,可以在 Windows 控制面板的“设备和打印机”中看到。下图显示了它:

在此处输入图像描述

设计该设备的人能够创建一个 labview 简单程序,该程序通过 NI-VISA 通过称为“Intf Inst Name”的东西从设备中提取此名称,该名称称为“接口信息:接口描述”。

如果我得到这个型号名称并将其与 pyvisa 设备名称进行比较,我将能够自动检测我们设备的存在,这是一件很重要的事情,以防发生 USB 断开连接。这是因为 VISA 通过一个在每台计算机上可能不同的名称打开设备,但这个名称“GPS DATA LOGGER”在任何地方和任何时候都是相同的。

我需要这个解决方案是跨平台的。这就是为什么我需要使用 pyvisa 或 pyserial。尽管任何跨平台替代方案都可以。

所以我的问题是:如何使用 pyvisa/pyserial 找到与设备型号对应的型号名称(在我的情况下为“GPS DATA LOGGER”)?

请询问您可能需要的任何其他信息。


更新

我了解到有一个名为“VI_ATTR_INTF_INST_NAME”的“属性”pyvisa 可以获得这个名称,但我不知道如何使用它。有谁知道如何阅读这些属性?

0 投票
1 回答
73 浏览

python - PYVISA 中的 ENUM 模块和 cStringIO 模块

我有一些麻烦要解决。我将 Python 3.2 与pyvisaPython 3.2 32 位一起使用。当我使用:

它显示:

但是当我使用:

我得到:

我只想使用pyvisaGPIB 的 Agilent 33250a。

0 投票
0 回答
609 浏览

python - 如何通过 python 2.7(pyVISA,NIVISA)将 ASCII 182 字符发送到 TCP/IP 仪器

我有一个通过 TCP/IP 和 pyVISA 作为 SOCKET 连接的仪器(Vötsch 气候室 VT 4002),我可以使用 *IDN? 查询它。现在我需要向它发送一个包含 ASCII 182 字符和普通字符串的命令:

但我得到错误:

我知道ASCII值在128以上,但是怎么写到仪器上呢?甚至写正确的命令(尽管 *IDN? 查询有效)?我是python和pyVISA的新手,所以请为新手回答:)谢谢!

PS:

不工作

PPS:我认为问题在于 write() 方法总是使用 ASCII 解码。因此,无论我的字符串在 write() 方法之前采用哪种格式,都将始终解码为 ASCII(这不能用 >128 完成)。但是有没有不使用 write() 方法通过 TCP/IP 发送命令的替代方法?

0 投票
1 回答
1719 浏览

python - 使用 PyVisa 读取 Agilent 4156C 的输出缓冲区

我正在尝试使用 PyVisa 使用其 FLEX 命令集来控制 Agilent 4156C。通信似乎工作正常,因为我可以使用 *IDN? 查询仪器?并读取状态字节。我还认为我现在正在正确设置电压扫描,因为当我执行 Python 脚本时,我在 4156 的屏幕上看不到任何错误。我的问题是,当我尝试使用 RMD 读取测量数据时?命令,仪器无响应,超时导致程序错误。这是我目前的程序:

当我在写入'RMD? 0',或者如果我查询该命令。我觉得我遗漏了一些简单的东西,但无法在可用的 Agilent 或 PyVisa 文档中找到它。任何帮助将不胜感激。我正在使用 LabView 附带的标准 NI VISA(我提到这一点是因为我遇到了这篇文章)。

0 投票
0 回答
887 浏览

c# - C# 编程 Unisource 4100 GPIB DMM

我正在尝试从我的 Unisource 4100 GPIB DMM 读取电压测量值。我知道我可以连接到设备,因为我使用命令“*RST”和“*IDN?”得到了适当的响应,但是我无法使用“SYST:ERR?”等其他命令得到任何响应 或“CONF:VOLT:DC 1000, 0.001”。我已经在 Agilent 34410A 上测试了我正在尝试使用的代码,并设法获得了我想要的响应,但在 Unisource 4100 上却没有。我正在使用 NI GPIB-USB-HS 控制器进行交互。我已经包含了下面的代码。SCPI 命令是否应该不适用于所有 GPIB 接口?我必须做出哪些改变才能引起 Unisource 4100 的响应?

我已经包含了一些代码供参考: