0

我有一个小问题。我必须将参数传递给我的测量设备以设置电压值。我的代码如下

from visa import *
import sys
inst = instrument("USB0::0x164E::0x0DAD::TW00004282")
inst.write("*rst; status:preset; *cls")
inst.write("CONF:VOLT:AC 1")

上面的代码将电压表配置为 AC 值 1 没有任何麻烦。但它只能设置值 1。我尝试使用以下代码使其更通用。

from visa import *
import sys
inst = instrument("USB0::0x164E::0x0DAD::TW00004282")
inst.write("*rst; status:preset; *cls")
a = 1
inst.write("CONF:VOLT:AC a")

但是这段代码返回了一个错误。

我的原始代码看起来像

from visa import *
import sys
inst = instrument(sys.argv[1]) #Passing USB address from client side
inst.write("*rst; status:preset; *cls")
a = sys.argv[2]  #Passing value of 'a' from the client side
inst.write("CONF:VOLT:AC a")

我最终会从我的客户端传递参数值,这超出了这个问题的范围。

现在有另一种通用的方法来分配值a然后将其传递给写函数吗?

4

1 回答 1

2

字符串中的"a"被解释为文字a。你应该使用:

inst.write("CONF:VOLT:AC %s" % sys.argv[2])

或者最好将其转换为 anint并首先检查它:

volt = int(sys.argv[2])

# Check if volt is in a suitable range...
inst.write("CONF:VOLT:AC %d" % volt)
于 2012-05-07T14:54:52.763 回答