Python VISA 串行轮询功能



我的一台 GPIB 仪器有问题。这是一个相当古老的,它被称为IEEE-488-1978。我一直在尝试获取该版本的IEEE-488的参考手册,但没有成功。

问题在于,为了读取仪器的状态寄存器,它需要一个串行轮询功能(如其参考手册所述)。我不知道如何使用PyVISA在Python中做到这一点。

例如,我用来从设备读取的是_instrument.ask("RV")_,其中_RV_表示_Read Version_。另外,对于编写温度等参数,我确实_instrument.write("ST20.00")_,其中_ST20.00_表示_Set Temperature to 20.00 Celcius_

我一直在尝试找到一个 ASCII 命令,使用 _ask_ Python/VISA 命令发送到仪器并返回_Status Register Byte_,但似乎没有什么可行的。

如果有人有关于如何使用Python/VISA传递串行轮询函数的建议,那可以解决我的问题。

1975年,IEEE创建了IEEE-488-1975标准,描述了数字通信总线,有时被称为GPIB。它于1978年进行了修订。它描述了硬件接口,但没有描述命令和数据的格式。1987年,他们推出了IEEE-488.2-1987标准,描述了标准代码,格式,协议和通用命令。

现在回到你的问题。

pyvisas visa.GpibInstrument类具有一个名为 stb 的属性,您可以使用该属性访问状态字节。从源头:

@property
def stb(self):
    """Service request status register."""
    return vpp43.read_stb(self.vi)

所以你可以简单地做

instrument = visa.instrument('GPIB::01')  # Assuming a GPIB device on channel 1
print instrument.stb  # Print status register

如果您的设备符合 IEEE-488.2,您还有一个选择。您可以发送通用命令*STB?

instrument = visa.instrument('GPIB::01')  # Assuming a GPIB device on channel 1
print instrument.ask('*STB?')  # Print status register

相关内容

  • 没有找到相关文章

最新更新