在完成了环境配置后,就可以利用pyvisa对仪器仪表进行控制。在进行代码编写前,我们需要对pyvisa库有一定的了解。我们可以进入PyVISA官网进行仔细研读,本次,我只列出了一些常见的函数,并对其进行分析。
rm = visa.ResourceManager()
print(rm.list_resources())
#('ASRL5::INSTR', 'ASRL18::INSTR', 'ASRL19::INSTR')
target = rm.open_resource(设备名称)
向设备写入命令
target.write()
查询设备状态
target.query()
#print(target.query('*IDN?'))
读值
values = target.query_ascii_values('CURV?')#读ASCLL码值
values = np.array(target.query_ascii_values('CURV?'))#转换成数组
values = target.query_ascii_values('CURV?', container=numpy.array)#利用container
values = target.query_ascii_values('CURV?', converter='x')#十六进制接收
values = target.query_binary_values('CURV?', datatype='d', is_big_endian=True)
#读取二进制值,十进制,大端格式
写值
values = list(range(100))
target.write_binary_values('WLISt:WAVeform:DATA somename,', values)#写二进制值
target.write_binary_values('WLISt:WAVeform:DATA somename,', values, datatype='d', is_big_endian=False)
target.write_ascii_values('WLISt:WAVeform:DATA somename,', values)#写ASCLL值
inst.write_ascii_values('WLISt:WAVeform:DATA somename,', values, converter='x')
inst.write_ascii_values('WLISt:WAVeform:DATA somename,', values, converter='x', separator='$')#设置分隔符,默认为“,”
在上述方法无法进行值的读取时,可以采用一下代码,进行数据读取
inst.write('CURV?')
data = target.read_raw()
更者
inst.write('CURV?')
data = target.read_bytes(1)
然后通过逻辑解析,得到读取结果