VISA 通信command总结

1 篇文章 4 订阅

声明

部分代码来自网络,如有侵权可以告知下架侵权代码。代码可以保证真实可用,毕竟是运行了才敢发出来的。

Python快速调用VISA

安装pyvisa

pip3 install pyvisa

代码调用

import pyvisa

rm = pyvisa.ResourceManager()

inst  = rm.open_resource('TCPIP::192.168.1.241::INSTR')

inst.write("*IDN?")

print(inst.read())

打开ip为“192.168.1.241”的设备,并读取设备信息。

获取连接地址

和仪器连接的方式有多种:
LAN、USB、GPIB……
所以我们一般都采用VISA的驱动来查看连接的地址:open_resource('地址')
一般有:

IOLibSuite
ni-visa
OpenChoiceTekVisa

VISA命令快速入门看文档

英文文档有这样的结构:

[:SENSe]:ACP:FILTer[:RRC]:ALPHa <number>
[:SENSe]:ACP:FILTer[:RRC]:STATe OFF|ON|0|1

在使用的时候一定要去掉[]、<>、|,并且|里选择一个内容即可。

安捷伦(Agilent)、泰克(Tektronix AWG)

以下内容有的只在一个牌子型号上进行尝试,项目带着我走,有其他设备条件的可以自行尝试。

通用协议

*IDN? 									读取设备型号信息
*RST									设备复位
*TST?									设备自检
*CAL? 									运行所有自校准并返回结果
*CLS									清除所有事件寄存器和队列
*ESE									设置或返回事件状态启用寄存器 (ESER)
*ESR?									返回事件状态寄存器 (ESR) 的当前内容
*OPT? 									返回仪器的已实施选项
*TRG 									仅为触发器 A 生成触发事件
*TST?									执行开机自检并返回结果
MMEM:CAT?								仪器默认文件夹、文件列表

频谱仪

  • Agilent型号:
E4440A (3 Hz – 26.5 GHz)
E4443A (3 Hz – 6.7 GHz)
E4445A (3 Hz – 13.2 GHz)
E4446A (3 Hz – 44.5 GHz)
E4448A (3 Hz – 51.0 GHz)

参考的这文档:《Programming Conversion Guide-Agilent Technologies PSA SeriesSpectrum Analyzers》

:SENS:FREQ:CENT %f Hz					设置中心频率(单位可以是GHz、MHz、kHz)
:SENS:FREQ:SPAN %f Hz					调整带宽(单位可以是GHz、MHz、kHz)
:SENS:BAND:RES %f Hz					调整分析带宽(单位可以是GHz、MHz、kHz)
:DISP:WIND:TRAC:Y:RLEV %f DBM			设置参考电平
:DISPlay:WINDow:TRACe:Y:SCALe:RLEVel 10dBm		设置参考电平
:CALC1:MARK1:STAT ON					开启标注
:CALC1:MARK1:MAX:PEAK					标注最大点
:CALCulate:MARKer:MAXimum				peak search
CALC:MARK1:X?							读取峰值结果X轴
CALC:MARK1:Y?							读取峰值结果Y轴
:SENSE:FRQUENCY:START %f Hz				设置起始频率(单位可以是GHz、MHz、kHz)
:SENSE:FRQUENCY:STOP %f Hz				设置终止频率(单位可以是GHz、MHz、kHz)
   :TRACe:MODE MAXHold
   clear write
   :TRACe:MODE WRITe					设置trace为max hold

有的文档上使用MARKer来代替MARK,这样目前我测试都可以获得数据。

频谱一般使用步骤:

  1. 设置起始频率
  2. 设置终止频率
  3. 设置参考电平
  4. 设置trace为max hold
  5. peak search
  6. 读取当前mark点值

Agilent 在线帮助文档:https://na.support.keysight.com/pna/help/latest/Programming/GP-IB_Command_Finder/

功率计

Keysight

  • 型号:E4417A(双通道,指令头SENSe2
UNIT1/2:POW DBM/W						功率单位设置
UNIT1/2:POW?							查询单位返回dBm或W
FETCh1/2?								功率计度数 1/2 表示通道
SENS1/2:AVER 1|0						设置平均功率计读数 0默认1为AVER
SENS1/2:AVER?							返回1或0 ,1为AVER
SENS1/2:AVER:COUN 400					平均功率读数点数设置
SENS1/2:AVERage:COUNt?					返回平均功率读数点数COUNT 整数
SENS1/2:AVER:COUN:AUTO 1|0				自动设置平均功率读数1为AUTO
SENS1/2: AVERage:COUNt:AUTO?			返回设置平均功率读数1为AUTO
SENSe1/2:CORR:GAIN2:STAT 1|0			读数偏置确定1为确定
SENSe1/2:CORR:GAIN2:STATe?				查询读数偏置确定
SENSe1/2:CORRection:GAIN2 XX			读数偏置设置*线缆等修正
SENSe1/2:CORRection:GAIN2?				返回 偏置数值
  • N1911A
CALibration1:ZERO:AUTO ONCE				调零
CALibration1:AUTO ONCE					校准
SENSe1:CORRection:GAIN2 %%f 			设置补偿值
SENSe1:CORRection:GAIN2:STATe ON		开启补偿
SENSe1:FREQuency %%f GHz				设置频率值
FETCh1?									读取功率值

RS

  • NRP2
CALibration:ZERO:AUTO ONCE				调零
SENSe:CORRection:OFFSet %%f				设置补偿值
SENSe:CORRection:OFFSet:STATe ON		开启补偿
SENSe:FREQuency %%f GHz					设置频率值
FETCh1?									读取功率值

信号源

  • AWG
    参考《AWG5200-Programmer-Manual-077133700-RevA》
INSTrument:MODE {AWG|FGEN}													选择 AWG 功能
[SOURce[n]:]RMODe {CONTinuous|TRIGgered|TCONtinuous|GATed}					控制 AWG 信号状态就位
AWGControl:RUN[:IMMediate]													控制 AWG 输出信号通道状态
AWGControl:RMODe {CONTinuous|TRIGgered|GATed}								输出状态:触发。连续输出/单次开关
CPLAYBACK:COMPILE:SRATE xxx													设置采样率
SOURCE1:DAC:RESOLUTION xx													设置分辨率
[SOURce[n]:]POWer[:LEVel][:IMMediate][:AMPLitude] 							输出信号输出幅度范围
MMEMory:IMPort <wfm_name>,<filepath>,<type>									外部数据加载

是德科技信号发生器(Keysight RF Signal Generators)

搬砖于:https://blog.csdn.net/wulinncom/article/details/107927741

:SYSTem:DATE?				//查询日期,用于确认信号发生器是否连接正常,也可以选择*IDN?读取设备型号信息测试链接
:FREQuency:CW 5 MHz			//设置频率为5MHz
:FREQuency:CW?				//查询频率
:AMPLitude:CW 5 dBm			//设置幅度为5dbm
:RFOutput:STATe ON			//打开射频输出
:AM:STATe ON				//打开调幅模式
:AM:DEPTh 5					//设置调幅深度
:AM:SOURce EXT				//设置调幅源为外部
:MOD:STATe ON				//使能设置
:FM:STATe ON				//打开调频模式
:FM:DEViation 5 KHz			//设置调频偏差为5KHz
:FM:SOURce EXT				//设置调频源为外部
:MOD:STATe ON				//使能设置
:PULM:STATe ON				//打开脉冲模式
:PULM:SOURce EXT			//设置脉冲源为外部
:MOD:STATe ON				//使能设置

安立(ANRITSU)

  • MG3694C
FREQuency:CW %%f GHz							//设置频率
POWer:LEVel:IMMediate:AMPLitude %%f dBm			//设置起始输出功率
OUTPut:STATe ON									//开启输出
OUTPut:STATe OFF								//关闭输出

RS

  • SMB100A
FREQuency:CW %%f GHz						//设置频率
POWer:LEVel:IMMediate:AMPLitude %%f			//设置起始输出功率
OUTPut ON									//开启输出
OUTPut OFF									//关闭输出

场强计

待定

特殊功能

截图

		# 开启彩色打印
		self.VISA_ID.write('HCOP:DEV:COL ON')
		# 选择文件格式
		# (WMF | GDI | EWMF | BMP | PNG | JPEG | JPG | PDF | SVG | DOC | RTF)
		self.VISA_ID.write('HCOP:DEV:LANG PNG')
		# 设置打印到文件
		self.VISA_ID.write('HCOP:DEST "MMEM"')
		# 仪器上的文件路径/名称
		self.VISA_ID.write('MMEM:NAME "c:\\temp\\hcopy.png"')

		# 创建屏幕截图
		self.VISA_ID.write('HCOP:IMM')

		PCfilePath = r'e:\hcopy.png'
		query = 'MMEM:DATA? \'c:\\temp\\hcopy.png\''

		# 请求获取仪器中的文件数据并保存到本地硬盘驱动器
		fileData = self.VISA_ID.query_binary_values(query, datatype='s')
		newFile = open(PCfilePath, "wb")
		# print(fileData)
		newFile.write(bytes(fileData))
		newFile.close()
  • 16
    点赞
  • 91
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 11
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

big pineapple

谢谢你的小助力,时间就是金钱。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值