问题标签 [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.
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 一样的返回问题?
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 适配器电缆。然后问题就消失了。
尽管问题已解决,但它并非基于良好的诊断程序,而且似乎纯粹是运气。我想知道是否有正确的方法来诊断这种问题?
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。
python - 侦听 GPIB 事件
我正在使用 PyVisa/GPIB 控制一个测试系统。该系统由两个独立的测试仪(A 和 B)和一台笔记本电脑组成。笔记本电脑被动地侦听来自测试人员 A 的 GPIB 消息,当收到笔记本电脑触发测试人员 B 时。
我正在使用以下代码被动侦听来自测试人员 A 的事件:
有没有更好的方法来监听和响应来自测试人员 A 的事件?有没有更好的方法通过 GPIB 控制这个系统?
matlab - 使用 Matlab 并行读取两份签证文书
我尝试使用 Matlab (2015a) 从两个 Keysight 示波器中读取数据。为此,我使用带有 spmd 命令的并行计算工具箱。我有一个函数来读取接受签证对象作为参数并返回原始数据的数据。这在 spmd 命令之外可以正常工作(范围 1 和范围 2 是开放签证对象):
我从两个示波器中获取数据。
如果我做:
我收到以下错误:
任何想法出了什么问题?
干杯尼尔斯
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 可以获得这个名称,但我不知道如何使用它。有谁知道如何阅读这些属性?
python - PYVISA 中的 ENUM 模块和 cStringIO 模块
我有一些麻烦要解决。我将 Python 3.2 与pyvisa
Python 3.2 32 位一起使用。当我使用:
它显示:
但是当我使用:
我得到:
我只想使用pyvisa
GPIB 的 Agilent 33250a。
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 发送命令的替代方法?
python - 使用 PyVisa 读取 Agilent 4156C 的输出缓冲区
我正在尝试使用 PyVisa 使用其 FLEX 命令集来控制 Agilent 4156C。通信似乎工作正常,因为我可以使用 *IDN? 查询仪器?并读取状态字节。我还认为我现在正在正确设置电压扫描,因为当我执行 Python 脚本时,我在 4156 的屏幕上看不到任何错误。我的问题是,当我尝试使用 RMD 读取测量数据时?命令,仪器无响应,超时导致程序错误。这是我目前的程序:
当我在写入'RMD? 0',或者如果我查询该命令。我觉得我遗漏了一些简单的东西,但无法在可用的 Agilent 或 PyVisa 文档中找到它。任何帮助将不胜感激。我正在使用 LabView 附带的标准 NI VISA(我提到这一点是因为我遇到了这篇文章)。
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 的响应?
我已经包含了一些代码供参考: