更新:这似乎正在“正常”这个......虽然我不确定为什么某些回复最后有/ r / n,为什么肯定没有。我明确地将Handshaking关闭了......
命令/查询/回复的示例发布在下面。
**我正在使用PyVisa前端与传感器进行通信。
在输出发生变化之前,我必须发送命令或进行三次查询。
在继续之前我是否必须添加wait命令,我认为SCPI命令是阻塞的(同步以便说话)。如果我做错了,请告诉我。以下是我的一些命令:**
>>> import visa
>>> ins = visa.ResourceManager()
>>> print(ins.list_resources())
('ASRL1::INSTR', 'ASRL3::INSTR', 'ASRL6::INSTR', 'ASRL10::INSTR')
>>> Energy_sense = ins.open_resource('ASRL6::INSTR')
>>> print(Energy_sense.query('*IDN?'))
Coherent, Inc - EnergyMax USB - V1.2 - Jan 27 2011
>>> Energy_sense.write(":CONF:WAVE 780")
(16, <StatusCode.success: 0>)
>>> print(Energy_sense.query(':CONF:WAVE?'))
780
>>> Energy_sense.write(":SYST:COMM:HAND OFF")
(21, <StatusCode.success: 0>)
>>>
>>> Energy_sense.write(":CONF:MEAS:STAT ON")
(20, <StatusCode.success: 0>)
>>> Energy_sense.write(":CONF:STAT:BSIZ 1000")
(22, <StatusCode.success: 0>)
>>> Energy_sense.query(":CONF:STAT:BSIZ?")
'1000\r\n'
>>> Energy_sense.write(":CONF:STAT:STAR")
(17, <StatusCode.success: 0>)
>>> Energy_sense.query(":READ?")
'3.728E-5,3.150E-5,4.358E-5,2.597E-6\r\n'
>>>
>>> Energy_sense.query(":CONF:STAT:BSIZ?")
'1000\r\n'
>>>
>>> print(Energy_sense.query(':CONF:WAVE?'))
780
>>>
您可以在图像中找到其余命令。
答案 0 :(得分:3)
你是对的。 VISA命令是阻塞的,所以在VISA命令之后你不需要等待。你有没有设定超时?它太短了吗?某些设备可能需要更长时间才能响应命令。
import visa
self._rm = visa.ResourceManager()
self._visa_conn = self._rm.open_resource('GPIB0::%s::INSTR' % instr_addr)
self._visa_conn.timeout = 1000 # In milliseconds
您可以删除'\ n':
string.rstrip('\n')