如何通过pyvisa自定义PXI背板设置?

How to customize PXI backplane settings via pyvisa?

我想修改National Instruments PXI system via pyvisa的设置。 特别是,我想以编程方式将触发器从背板上的总线 1 路由到总线 2。

National Instruments a documentation 通过 Labview VI 解释了该过程:

这基本上告诉我

  1. 打开背板的 VISA 会话
  2. 设置 src 和 dest 触发总线属性
  3. 使用map_trigger函数

步骤 1) 通过 pyvisa 工作正常,我可以通过 backplane = rm.open_resource('PXI0::2::BACKPLANE') 打开与背板的通信,如 resource names.

中所述

但是在打开到背板的签证会话之后,我在这里找不到任何描述的 src trig bus 和 dest trig bus 属性。只有一堆属性 类,例如 AttrVI_ATTR_RM_SESSION,它们似乎不包含我感兴趣的任何值。但我想我在这里误解了什么。

第 3 步很简单,因为 this functionality is directly implemented in pyvisa

所以剩下的问题是:如何通过pyvisa修改PXI背板中的源触发总线和目标触发总线?

我找到了所有必需属性的位置: pyvisa.constants 列出所有可能属性的所有地址(对于任何接口)。

要访问特定属性,可以通过 set_visa_attributes 函数实现:

import pyvisa
import pyvisa.constants

address = 'PXI0::2::BACKPLANE'
rm = pyvisa.ResourceManager()
backplane = rm.open_resource(address)

src_bus = 2
dest_bus = 1
trigger = pyvisa.constants.VI_TRIG_TTL0  # i.e. PXI_Trig0

backplane.set_visa_attribute(pyvisa.constants.VI_ATTR_PXI_SRC_TRIG_BUS, src_bus)
backplane.set_visa_attribute(pyvisa.constants.VI_ATTR_PXI_DEST_TRIG_BUS, dest_bus)

# route trigger 0 from source bus to destination bus
backplane.visalib.map_trigger(backplane.session, trigger, trigger, pyvisa.constants.VI_NULL)