2

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

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

例如,我用来从设备读取的是_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 传递串行轮询功能的建议,那可以解决我的问题。

4

1 回答 1

2

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

现在回到你的问题。

pyvisasvisa.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
于 2013-02-08T14:02:46.120 回答