问题标签 [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.

0 投票
2 回答
132 浏览

python - 为什么当我添加一个看似无关的部分时,我的 Python 代码的一部分会得到不同的解释?

一些背景知识:我正在实现一个通过 GPIB 与设备交互的 GUI。这种方法会出现问题:

在 while 循环的第一遍中,我在标记的位置得到一个简单的 ValueError ;Python 说它不能将字符串转换为浮点数(稍后会详细介绍)。但是,只需删除这五行代码:

并且程序运行完美。我了解错误的来源。添加这些行后,当我将这两行发送到我的仪器时:

我基本上得到一个空错误。#3000返回,这是机器在被要求输出数据并且没有输出数据时发送的空白消息。然而,同样的两行会产生类似于#3006 00.003我提到的四行被排除在程序之外的情况。换句话说,只需将这四行添加到我的程序中,就会更改在 while 循环开始时发送到仪器的消息,尽管它们是在接近结尾处添加的。

我确信 Python 的解释器在这里有问题。早些时候,我正在清理我的代码并发现一组特定的引号,当从 更改为'",会产生同样的错误,尽管没有其他引号对表现出这种行为,即使在同一行中也是如此。我的问题是,为什么我的代码执行取决于对代码的不相关更改(也希望得到修复)?我知道考虑到我的具体应用程序,这个问题很难复制,所以如果我可以提供更多有用的信息,请告诉我。

编辑:从命令提示符转移到 IDLE 后,功能得到了改进。我仍然对所发生的事情感到困惑,但由于我的命令提示技能微薄,我无法提供任何证据。请关闭这个问题。

0 投票
1 回答
160 浏览

driver - LabVIEW驱动程序,框图未显示

我安装了Keithley 6485的驱动程序。但是,安装后不会显示框图。中有一个KE6485文件夹inst.lib,但LabVIEW文件在LabVIEW库文件中。将它们作为单个文件解锁不会改变这种情况。

0 投票
1 回答
649 浏览

python - 将字节/位解码为二进制

我在只听模式下使用 Prologix GPIB-USB 适配器来破译两个设备(与半导体相关的,即测试仪和探测器)之间的通信。

我能够解码手册中所述的大部分信息,但无法转换数据之一,即 BIN 类别。

样本数据 :

工具手册:

如何读取传入数据的手册

我感兴趣的数据是“C@A@@@@@@@”和“CA@A@@@@@@”第一个字节即“C”是传入的命令。第二个字节可以是“@”或“A”实际上告诉测试是否通过/失败。

转换为二进制:

结果由字节的低4位决定,即0000(通过)和0001(失败)。我能够正确解码直到这里。

接下来的 8 Bytes 代表 BIN 类别,在测试时设置为 5 表示测试失败,1 表示通过,因此“C@A@@@@@@@”中的 BIN 编号为 1,BIN 编号对应“CA@A@@@@@@”设置为 5。

我无法从 GPIB 适配器生成的数据中解码 5 和 1 的值。有人可以建议它是否可以实际解码为 5 和 1。我附上了解释如何读取传入数据的手册。

坚持了很长时间:-(

0 投票
0 回答
363 浏览

python - 是否可以在 pyvisa 中自动检测新仪器?

我的印象是,当将 USB、串行或 GPIB 设备插入计算机时,计算机和设备会进行某种握手,并为设备分配一个地址。似乎我应该能够设置一个事件来触发它,并在插入设备时执行一些初始化操作。我正在使用 pyvisa 与设备通信,但我无法找到任何关于他们的文档事件。如何设置这样的活动?

我知道我可以用它list_resources()来检查每秒可用的设备或其他东西,但这似乎很老套。列出资源实际上是查询资源,还是只列出它已经知道的资源?

0 投票
1 回答
178 浏览

python - python gpib vna IEEE-754 64位

我需要帮助,我将一个用 HPBASIC 编写的程序转换为 python 一个 VNA 网络分析器。其数据格式为: 数据传输格式:FMB 选择 IEEE-754 64 位数据传输格式。

二进制数据传输消息格式:

MSB 模式:字节计数字节计数字节

这是一段摘录:

输出@Vna360B;“FMB MSB”!传输格式 64 位,最高有效字节。!FMB(64 位)3068(最大采集点数)。输出@Vna360B;“OFV”!输出频率值。输入@Vna360B;P,S!返回两个整数。输入@Vna360b;频率 (*)!返回数组浮点频率。

这是我通过解码 2.6 Ghz 的值应该得到的 Pyvisa 的结果:

出:['\x00\x08A\x08A\xe3_\x1b@\x00\x00']

我的问题是:这种格式是什么,二进制,六进制?如何让python解码'\x00\x08A\x08A\xe3_\x1b@\x00\x00'?

谢谢您的帮助。

0 投票
2 回答
8207 浏览

c# - 从 C# 通过 USB 发送 SCPI/GPIB 命令

我正在尝试通过 SCPI 与 C# 中的一些测试设备进行通信。通过使用此代码示例,我设法与一台通过 TCP/IP 连接的设备进行通信。

但是,我的其他设备是通过 USB 连接的,我还没有找到如何通过 USB 与它们通信。

顺便说一句,我找到了这个问题,以及C# 文档中 IVI-COM 编程示例的答案的链接,但我无法应用代码示例(例如在第 5.4 节中),因为我找到了所有 IVI 和 VISA COM 库(例如 VisaComLib 5.5)里面只有接口和枚举,没有我可以使用的具体类......

0 投票
0 回答
490 浏览

visa - PyVisa:从 GPIB 读取时出现损坏的字符

(这可能是论坛发错了,所以我在 GitHub 上发起了一个问题:https ://github.com/pyvisa/pyvisa/issues/254 )

我尝试通过在 python 中使用 GPIB 来控制 Keithley 仪器。基本上通信是有效的,但是当从仪器读取时,字符经常被破坏。例如:

National Instruments VISA 测试面板中的相同看起来是这样的:

当我签入 NI I/O Trace 时,这两个调用看起来很相似:

NI测试面板:

Python:

有人有想法吗?

python中的其他命令:

似乎是正确的,但这不是:

从 NI VISA 交互控制中进行比较:

0 投票
1 回答
480 浏览

python - pyVISA GPIB GET(组执行触发器)

我想通过 GPIB 同时触发几个测量设备。有一个与LabVIEW一起使用的GPIB函数“GET”,我想与pyVISA一起使用。

我可以用 pyVISA 发送这个全局 GET 命令吗?

0 投票
2 回答
1005 浏览

timeout - LabVIEW 和 Keithley 2635A - 无法读取数据

我正在使用 LabVIEW 及其 VISA 功能来控制 Keithley 2635A 源表。每当我尝试识别设备时,它在阅读和写作方面都工作得很好。

但是,一旦我设置了电压(或电流),它就会这样做。然后我发送命令执行测量,但我无法读取该数据,出现错误

之后,我也无法再读取*IDN?输出了。

源表通过 National Instrument GPIB-USB-HS 适配器连接到 PC。

编辑:我忘了补充,这也发生在 VISA 交互控制程序中。

0 投票
1 回答
2865 浏览

c# - 我应该使用哪些 IVI 参考?

除了基本的 .NET 项目,我对任何东西都很陌生,但目前我正在尝试制作一个测试系统,用于使用 SCPI 通过各种媒体(如 GPIB、USB 等)进行通信的 T&M 仪器。我安装了 Keysight IO Libraries 并一直在阅读其中的 VISA.NET 帮助文档。

我希望我的程序是 VISA 供应商中立的(尽可能)所以决定坚持只通过Ivi.Visa接口使用实现。我正在考虑使用类似于以下伪代码的仪器对通信进行编码:

然而,我刚刚注意到,虽然我之前认为我在其他文档中看到的 COM 示例主要是指较旧的用法,但仍会引用 COM 示例(例如,通过 USB 从 C# 发送 SCPI/GPIB 命令)。

在 Visual Studio Reference Manager 中进一步探索,我发现不仅有 VISA COM 类型库,还有仪器特定的 IVI 程序集(例如:IVI Scope 程序集)和类似的 COM 类型库(例如:IviScope 3.0 类型库)。

我对所有这些是什么以及我应该使用或不使用哪些感到有些困惑!

他们都是为了什么?我的意思是,它们之间有什么区别,或者我为什么要使用其中一个?(也许有一个来源在某处简洁地解释了差异或一般用例?)。