问题标签 [gpib]
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 - 尝试与作用域通信时出错,VisaIOError: VI_ERROR_TMO (-1073807339): Timeout expired before operation completed
我需要使用 python 2.7 与示波器进行通信,Agilent Infiniium DCA-J 86100C。Keysight 公司提供各种 python 代码,虽然我试图运行其中一个来帮助我学习,但它崩溃了。我正在使用 GPIB 和 pyvisa 进行连接。
我已经尝试更改为终止字符,但它没有改变任何东西。我不确定我可以尝试什么频段速率。
python - 如何通过 GPIB 轻松切换通道并从 Kiethley DMM 提取数据?
我正在编写一个简单的 DAQ 程序,它将记录来自各种来源的数据并将它们保存到 csv 文件中,同时提供实时绘图。除了一个一直困扰我的问题之外,它进展顺利。
我必须从中提取数据的地方之一是旧的 Kiethley 2001 DMM,其中装有 scan-2001 10 通道扫描卡。使用 Pymeasure 和 Prologix USB 到 GPIB 适配器,我可以轻松地与设备通信,但我不知道我需要使用哪些 GPIB 命令字符串才能简单地更改为特定通道,记录显示的值,然后在不干扰数字万用表当前设置的情况下移动到下一个通道。不同的通道包括电压读数、电流强度、温度和在该项目之前已经在仪表中设置的电阻。
项目使用 Python3.7 编写,并在 Raspberry Pi 3B+ 上实现
我知道通信正常,因为我可以发送 IDN?并获取单元信息和 ROUT:SCAN:INT? 将显示所有 10 个通道都可用。
c - 将 IEEE 读/写从 C 转换为 LabVIEW
我正在尝试通过 LabVIEW 中的 IEEE 与 Solartron 7060 电压表进行通信。我必须转换一些最初用于通信的旧 C 代码,但无法找到从 Solartron 获取主要数据的方法。
这是C代码:
dvmtime
此代码在以秒为单位的某个积分时间内对直流电压(来自静电计检测到的旧质谱仪上的法拉第检测器)进行采样。以便告诉 7060 DVM 在volt
设定的积分时间内读取读数Dvmtime
。
我尝试了以下 LabVIEW 代码,其中一部分来自控制 Solartron 7061 万用表的 .vi。在我发送的这段代码D3F1MOR3
中,它来自ieeewt
C 代码第一块中的函数。但是,我很难找到与ieeescnf
LabVIEW 中等效的函数。
我第一次运行 .vi 时,它会返回正确的电压读数,然后在第二次运行时返回0
,在第三次运行时返回大量数据。此外,每次运行所需的时间也有很大差异。
任何帮助将不胜感激,因为我不确定这个 C 代码在每个阶段都在做什么。
python - GPIB 与 Python (PyVisa) 的通信
我正在尝试通过 Python 与一个非常古老的仪器(CCD 相机)进行通信。仪器制造商于 1999 年出版的 GPIB 编程手册仅提供了基本命令列表。它还描述了 GPIB 通信的一些标准过程。
我之前已经成功地编写了一些 Python 程序(使用 PyVisa)来控制和获取通过以太网或 USB 与计算机连接的仪器的数据。然而,GPIB 对我来说是新的,它在 ATN、SRQ、谈话者或听众方面似乎与他们有很大不同。
我从 PyVisa API 文档中找到了 GPIBInterface 和 GPIBInstrument 类,但找不到任何有关谈话者或听众设置的信息。
以下是我的问题,
一个。我对数据采集过程的以下假设是否正确?
- 将控制器 (PC) 设置为说话者,将仪器设置为听者。
- 控制器断言 ATN。
- 控制器命令仪器采集数据。
- 等待来自仪器的 SRQ。
- 将仪器设置为说话者,将控制器设置为听者。
- 控制器将 ATN 置低。
- 仪器向控制器发送数据信息。
- 单次采集完成。
湾。来自控制器的控制消息和 GPIBInstrument 类中的直接“写入”函数有什么区别?
下面的代码仍然有效,尽管它省略了设置 ATN、说话者或听众。为什么?
C。他们有任何通过 PyVisa 进行 GPIB 编程的示例或教程吗?
找不到合适的。。
任何评论都会有所帮助。提前致谢。
python - 如何使用 PyVISA 发送低级 GPIB 命令?
所以我已经像这样初始化了一个 GPIB 仪器:
根据PyVISA docs,kk
有一种send_command
编写 GPIB 命令的方法。所以我尝试了以下几行,但没有成功:
Keithley 2400 手册 (PDF)在第D-9 和 D-10 页上显示了一些与 GPIB 命令相关的代码,但我不知道如何理解这些代码:
问题:在 PyVISAsend_command
中使用实例的方法发送低级 GPIB 命令的正确方法是什么?GPIBInstrument
gpib - 使用 GPIB 命令确定 GPIB 主/辅助地址
如何使用通用接口总线命令确定通用接口总线主/次地址?
python - PyVISA 错误:系统资源不足,无法执行必要的内存分配
我正在使用 PyVISA 通过 GPIB-USB 通信/控制 Santec TSL-550 可调谐激光器。
几天前我的设置工作正常,一切都正确安装(NI-VISA、NI-MAX、NI 488.2、pip installed pyvisa-py 等),但我今天随机收到此错误。
终端和 PyCharm 中的错误是一样的:
pyvisa.errors.VisaIOError: VI_ERROR_ALLOC (-1073807300): 系统资源不足,无法执行必要的内存分配
网上资源很少,在NI论坛上也没有找到解决办法。
python-3.x - 使用 Python (Pyvisa) 连接到仪器
我正在尝试使用 python 自动化 Keithley 2000 源表。我使用以下代码连接到仪器(GPIB):
由于 gpib 不是在这里建立的,所以我尝试了以下所有方法,但出现以下错误:
有谁能帮助我吗?
python - 在 Python 中使用 PyVISA 通过 GPIB 连接到仪器
我正在研究接触电阻,为此我将使用 Keithley 2400 源表和 Keithley 2182a 纳伏表。两台仪器都通过带有 Keithley KUSB-488b 适配器的 USB 连接到 Windows 计算机。
我正在使用 Python、Pyvisa 模块和 National Instruments 后端 (NI VISA) 创建一个脚本,让我能够进行所需的测量。但是,我在与仪器通信时遇到了麻烦。根据 Pyvisa 开发人员提供的官方文档,我已经运行了几个简单的脚本,但是我无法连接任何一种仪器。以下简单的代码块可能有助于我的解释:
第 4 行的结果应该给我一个我的仪器地址的列表。但是,这些都不正确,因此VI_ERROR_TMO
当我尝试第 4 行提供的四个地址时,我得到一个超时错误 ()。这个简单代码块的第 4 行的预期输出将是两个仪器的 GPIB 地址,根据文档。我尝试使用 KI-488 诊断工具与两个设备进行通信。这两个我都成功地沟通了。SMU 的地址是 GPIB::24,纳伏表是 GPIB::7。
我还尝试在更复杂的脚本(当前扫描)中传递从诊断工具获得的 GPIB 地址。然而这导致
pyvisa.errors.VisaIOError: VI_ERROR_LIBRARY_NFOUND (-1073807202)
我在网上搜索了类似的错误,其中大多数是缺少 dll 或位数不正确的结果。然而这不是我的情况,因为一个简单的python -m visa info
证明实现的后端是正确的。我也尝试过通过resourcemanager( path )
,但这也没有成功。
另外,我尝试安装 Keithley I/O Layer,但还是没有成功。此外,在 Keithley 通信器中,这两个设备实际上都带有相应的 GPIB 地址。问题在于使用 Python 和正确的地址。
python - 在多种方法中减少常用命令 - Python
对于不同的类,我对共享对象有不同的设置(例如:地址)。每次调用该方法时,我都必须加强地址变量 s.addr,因为类 ItemA 和 ItemB 将 s.addr 设置为不同的地址。有没有办法简化这种冗余?
前任:
ItemsA, B 是随机调用的,因此需要在每个方法中更新地址。
有关额外信息,它是用 GPIB 控制仪器,每个仪器都有不同的地址。s 期望将通用命令发送到 s.addr 中指定的地址。但对更一般的python问题感兴趣。