Python 为串行端口在pyvisa中的写入ascii值赋值

Python 为串行端口在pyvisa中的写入ascii值赋值,python,linux,serial-port,pyvisa,Python,Linux,Serial Port,Pyvisa,我想通过RS232toUSB将Keithley 6485皮安计连接到我的Linux PC(CentOS 6.9)并使用pyvisa编写python(版本2.7.13)代码,从外部控制Keithley 6485皮安计: #/usr/local/bin/python2.7 导入系统 进口签证 来自visa导入常量 rm=visa.ResourceManager('/usr/local/vxipnp/linux/lib64/libvisa.so') #打开串行连接并将波特率设置为9600,8个数据位

我想通过RS232toUSB将Keithley 6485皮安计连接到我的Linux PC(CentOS 6.9)并使用pyvisa编写python(版本2.7.13)代码,从外部控制Keithley 6485皮安计:

#/usr/local/bin/python2.7
导入系统
进口签证
来自visa导入常量
rm=visa.ResourceManager('/usr/local/vxipnp/linux/lib64/libvisa.so')
#打开串行连接并将波特率设置为9600,8个数据位,CR终止,一个停止位,无奇偶校验,无流量控制
amm=rm.open\u资源('ASRL2::INSTR',波特率=9600,数据位=8,写端='\r',读端='\r')
常量。VI_ASRL_STOP_ONE
常量。VI_ASRL_PAR_NONE
常数VI_ASRL_流量_无
amm.write(“*RST”)#将6485返回到RST默认值
amm.write(“SYS:ERR:ALL?”)#返回错误消息
电流写入(“TRIG:DEL 0”)#将触发延迟设置为零秒
电流写入(“触发:计数2500”)#将触发计数设置为2500
电流写入(“传感器:电流:量程:自动关闭”)#关闭自动量程
电流写入(“传感器:电流:NPLC.01”)#将积分率设置为NPLC 0.01
电流写入(“传感器:电流:量程2e-7”)#使用200毫安范围
电流写入(“系统:ZCH关闭”)#关闭零点检查
电流写入(“系统:AZER:STAT OFF”)#关闭自动调零
电流写入(“显示:启用关闭”)#关闭显示
amm.write(“*CLS”)#清除状态模型
amm.write(“TRAC:POIN 2500”)#将缓冲区大小设置为2500
amm.write(“TRAC:CLE”)#清除缓冲区
amm.write(“TRAC:FEED:CONT NEXT”)#将存储控制设置为在下一次读取时开始
amm.write(“STAT:MEAS:ENAB 512”)#启用缓冲区满测量事件
amm.write(“*SRE 1”)#启用缓冲区满测量事件上的SRQ
amm.write(“*OPC?”)#操作完成查询(同步命令完成)
amm.write(“INIT”)#开始读取和存储读数,等待GPIB SRQ行变为真
amm.write(“DISP:ENAB ON”)#打开显示

打印(amm.query_ascii_值(“TRAC:DATA?”)#从缓冲区请求数据
SCPI有几个协议规则。希望我能引导你通过“查询”规则

如果向仪器询问查询,则必须在缓冲区中读取结果:

amm.write("*RST")                       # Return 6485 to RST default 
amm.write("SYS:ERR:ALL?")               # Return error message  
amm.write("TRIG:DEL 0")                 # Set trigger delay to zero seconds
发送“SYS:ERR:ALL?”后,仪器希望您读取结果。将其从写入命令转换为查询,否则以下命令将出错且无法按预期执行:

amm.write("*RST")                               # Return 6485 to RST default 
print(amm.query_ascii_values("SYS:ERR:ALL?"))   # Return error message  
amm.write("TRIG:DEL 0")                         # Set trigger delay to zero seconds
这与“操作完成”命令相同:

print(amm.query_ascii_values("*OPC?"))          # operation complete query (synchronize completion of commands)
*OPC?将在上一个命令完成时返回“1”