问题标签 [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.
labview - Labview VISA 超时,中止问题
我正在开发一个程序来通过 GPIB 远程访问万用表。我正在使用签证读取功能来获取测量值并将值字符串转换为数值。在适当的 Visa 超时设置下,程序能够毫无问题地执行。但是,如果超时时间不够,程序将无法捕获值,也无法从读取缓冲区中的字符串进行扫描。当我在运行期间尝试中止程序时,也会发生同样的事情。唯一有帮助的是重新启动 Labview。
windows - GPIB 模拟器(PyVISA-sim 的替代品)
在编码时,通过 GPIB 连接仪器并不总是那么容易。Python 提供了使用 PyVISA-sim 模拟仪器的可能性。
除非我弄错了,否则社区并不是很活跃,而且我遇到了几个错误:
1- PyVISA-sim 提供了一大堆“虚拟”工具,但只有一个可以有效地与我的代码通信
2-在创建我自己的 .ymal 文件时,python 无法识别它
我想知道是否有替代方法?
我会比较贪心:有没有GPIB模拟器也可以模拟仪器响应?
例如:在模拟电压表时,虚拟仪器会有效地返回一些“随机”读数。
目标是检查我的 Byte to Single 转换器是否正常工作
谢谢
python - pyvisa 无法使用 GPIB-USB-HS 接口连接到 GPIB 仪器
我正在尝试使用 GPIB 与仪器(Agilent 33220A 任意波形发生器)通信,我使用插入计算机 USB 端口的 GPIB-USB-HS 接口。
当我使用 NIMAX explorer 时,仪器正确列出(还有一个通过 USB 连接的 Thorlabs PM100D):
但是,我无法使用 PyVISA 连接到它。这是代码:
输出是:
如您所见,正确列出了通过 USB 连接的 PM100D,但未正确列出连接在 GPIB 10 上的 Agilent。
我尝试直接连接:
但我收到一个 IO 错误:
我在 Windows 7 Pro 64 位操作系统上使用 Python 3.6.0。PyVisa 版本是 1.8。
我不明白我在这里缺少什么。有人有想法吗?
非常感谢 !
excel - 如何在 VBA (Excel) 中使用 NI-488.2 从 GPIB 端口查询文件(csv、bmp)
使用 VBA,我尝试直接使用 NI-488.2 调用,而不是使用 VISA COM。但是,当我尝试在 VBA 中使用 NI-488.2 命令时,我收到以下错误消息:
''未定义子或函数''。
也就是说,当调用Call SendIFC(BOARD_ID)
or Call EnableRemote(BOARD_ID, intAddrList())
、 Call SendGPIB(osa, ":mmem:stor:grap color,bmp,""test"",int")
、= RecieveBinaryGPIB(osa, byteData())
等时...
我的第一个猜测是我只是缺少正确的库。(或者这里有什么更深层次的问题吗?)。现在,我将 VISA COM 3.0 类型库和 VISA COM 488.2 Formatted I/O 1.0 添加到 Excel 引用中。
这是 YOKOGAWA 的示例代码(稍作编辑),可以在网上找到并适用于 Visual Basics,但我无法在 VBA 中运行。为了清楚起见,我删除了大部分代码。它只是将屏幕截图保存在内部存储器中。
私有子 SaveImage()
结束子
capl - GPIB 的 CAPL 样品(类型 VISA / E3648A)?
今天我创建了 E3648A 控制类型 GPIB。但是我的代码不能正常工作。
我试试德文在线。返回值为 0x01xx。
发送的输出命令。但它不起作用。
我想看一个样本或例子。帮我
long status;
char command[49];
status = GPIBDevOnline (Device_ID,0);
//status = 0x128;
command[0] = 0xxx;
...
command[48] = 0x0a;
GPIBWriteStr (Device_ID,command);
`
python - pyvisa 找不到 VISA 实现
pyvisa 找不到 VISA 实现并且无法加载 NI-VISA 后端:
系统设置:
- Windows 10 专业版 v1709(64 位)
- python v2.7.15(64位)
- pyvisa v1.9.1
- NI-签证 17.50
我已验证 .dll 文件是否存在:
- C:\Windows\System32\visa32.dll
- C:\Windows\System32\visa64.dll
pyvisa.info 内容如下:
C:\Python27>python -m visa info 机器详情:平台ID:
Windows-10-10.0.16299 处理器:Intel64 Family 6 Model 60 Stepping 3, GenuineIntelPython:实现:CPython 可执行文件:
C:\Python27\python.exe 版本:2.7.15 编译器:
MSC v.1500 64 位 (AMD64) 位:64 位构建:
2018 年 4 月 30 日 16:30:26 (#v2.7.15: ca079a3ea3) Unicode:UCS2PyVISA 版本:1.9.1 后端:ni:版本:1.9.1(与 PyVISA 捆绑)二进制库:未找到
但由于某种原因,pyvisa 无法加载 NI-VISA 后端。如果后端未指定,也会发生同样的情况:
我可以单独加载 .dll:
这意味着签证没有正确传递“visa_library”参数,即 pyvisa 正在搜索路径(并且失败),而不是使用指定的后端。
python-3.x - 无法通过 Ethernet-GPIB 适配器连接到功率计
当我尝试运行我的代码时,我收到以下错误: ValueError: Please install linux-gpib to use this resource type。没有名为“gpib”的模块
在尝试使用 pip 和命令行安装 linux-gpib 后,我得到了这个:
找不到满足要求 linux-gpib 的版本(来自版本:)没有为 linux-gpib 找到匹配的发行版
我已经设法通过以太网连接了一个信号发生器,但我没有运气使用与 gpib 相同的原理。
尝试重新安装 python 和 pyvisa 包但没有成功,尝试为这个特定的以太网适配器导入一个包装器:pip install git+git://github.com/nelsond/prologix-gpib-ethernet.git 再次没有运气。我也试过用适配器驱动提供的ip通过TCPIP连接,还是不行。
执行的代码应提供设备的 IDN,例如:Rohde & Schwarz,SMB100A,1406.6000k02...等
python - PyVISA - 无法让 GPIB 仪器以编程方式进入远程模式
我在 PyCharm Community Edition 2016.1.4 上运行 Python 3.5.1 和 pyvisa 1.8。
“python -m visa info”的结果如下所示。
当我尝试使用 Keysight 34420A 纳伏表进行测量时,我遇到了一个奇怪的问题。
我正在使用 National Instruments GPIB-US-HS+ 电缆与 34420A 通信。34420A 是 GPIB 地址 22,我已从前面板验证过。
我得到的错误是:pyvisa.errors.VisaIOError: VI_ERROR_TMO (-1073807339): Timeout expired before operation completed。
读取 34420 的内部错误寄存器,我发现: ERR 1: 550 ERR 2: -420
这是唯一被保存的两个错误。
根据 34420A 手册:
错误 550 是“本地命令不允许 仪表在本地模式下接收到 READ? 命令以进行 RS-232 操作。在通过接口发送其他命令之前,您应该始终执行 SYSTem:REMote 命令。”
错误 -420 是“查询 UNTERMINATED 仪表被寻址为通话(即通过接口发送数据)但尚未收到将数据发送到输出缓冲区的命令。例如,您可能执行了 CONFigure 命令(其中不生成数据),然后尝试使用 ENTER 语句从远程接口读取数据”
编辑:当我尝试发送错误 550 消息中提到的 SYSTem:REMote 命令时,我得到:错误 514“命令只允许使用 RS-232:有三个命令只允许使用 RS-232 接口:SYSTem:LOCal , SYSTem:REMote 和 SYSTem:RWLock" 正如标题中提到的,我使用的是 GPIB。另外,正如本文后面提到的,当我查询接口类型时,它返回字符串“HPIB”,这是 GPIB 的原始名称。我不知道为什么在使用 GPIB 时会出现 RS-232 错误,但如果我不得不猜测,错误消息的日期可能是 RS-232 是唯一的方法与仪器通信,并且在引入 HPIB/GPIB 后错误消息从未更新。
ERROR 550 和 ERROR -420 的根本原因似乎是 34420A 需要处于 REMOTE 模式才能进行测量。我的问题是我不知道如何以编程方式将 34420A 置于远程模式。
根据我对 PyVISA 文档的阅读,我认为我需要使用 control_ren() 方法,但我不知道如何使其工作。
编辑:我已经阅读了 Stack Overflow 帖子pyVISA: Return instrument to local mode programmatically。那是我最初指向 control_ren() 的指针。但是,正如我所提到的,我无法弄清楚如何让它工作。
我目前或多或少偶然发现的解决方法是启动 NI-MAX,选择 34420A,然后打开 VISA 测试面板。当我这样做时,34420A 上的 REMOTE 指示灯亮起,我可以进行测量。请注意,我不必向 34420A 发送命令。我只需要打开 NI-MAX 的 VISA 测试面板。
这是“python -m visa info”的结果:
值得一提的是,在我打开 VISA 测试面板后,“python -m visa info”的结果似乎没有改变。
这是一个演示问题的示例程序,我改编自 Keysight 网站上的演示程序。请注意,我可以与 34420A 通信。除此之外,我可以读取 34420A 的 ID 字符串并确定接口类型(它是 HPIB,BTW - HPIB 是 GPIB 的原始名称);我就是无法让仪器进入远程模式。
正如我所提到的,我认为我需要使用“control_ren()”方法,但我不知道如何。
编辑:如果我的 GPIB 仪器处于远程模式(通过使用我的 NI-MAX / VISA 测试面板组件),那么我可以发送“control_ren(2)”或“control_ren(6)”将仪器置于本地模式。那么为什么我不能使用 control_ren() 将仪器置于 REMOTE 模式?
- 使用“control_ren(6)”将仪器置于本地模式的基本思想来自pyVISA:以编程方式将仪器返回到本地模式
- 值 2 对应于 pyvisa.constants.VI_GPIB_REN_DEASSERT_GTL
- 值 6 对应于 pyvisa.constants.VI_GPIB_REN_ADDRESS_GTL
- GTL = 转到本地
python - 如何通过 GPIB 与两台是德科技仪器通信
我现在有两台keyight设备,一台电脑。同时我需要通过GPIB与他们沟通,但似乎遇到了困难。我只能得到一个地址,我希望得到两个地址
c# - 查找 GPIB 总线上的设备列表
我需要查询 GPIB 总线上的测试设备。
我尝试浏览 NationalInstruments.VisaNS。
NationalInstruments.NI4882.AddressCollection.GetEnumerator();
即 GPIB::6::INSTR、GPIB::7::INSTR、......GPIB::20::INSTR。