Respuesta
Este ejemplo de Python muestra cómo transferir un archivo de datos I/Q del analizador de espectro a la PC controladora y cómo abrirlo con el software de análisis de señales VSE.
Probado con:
- Analizador de espectro R&S®FSVR (FW: 2.23 SP1) en tiempo real
- Software R&S®VSE (1.90)
- PyVISA 1.11.3
- Python 3.9
Autor: R&S Support - MP
Actualizado el 22.01.2021
Versión: v1.3
Soporte técnico -> https://www.rohde-schwarz.com/support
. Antes de ejecutarlo, por favor, siempre compruebe que este script no tenga una configuración inadecuada.
Este ejemplo no pretende estar completo. Toda la información ha sido
recopilada minuciosamente. No obstante, no pueden descartarse errores.
import pyvisa
rm = pyvisa.ResourceManager()
ajuste la cadena de recursos VISA para que se adapte a su instrumento
instr = rm.open_resource('TCPIP::192.168.0.1::INSTR') # reemplácela por su dirección IP
instr.write_termination = '\n'
instr.read_termination = '\n'
instr.timeout = 3000
vse = rm.open_resource('TCPIP::127.0.0.1::INSTR') # no cambie el host local
vse.timeout = 3000
vse.write('*RST')
vse.query('*OPC?')
instr.write('*RST')
instr.query('*OPC?')
instr.write('*CLS')
instr.write('INIT:CONT OFF')
print('\n' + instr.query('*IDN?'))
instr.write('FREQ:CENT 1e9')
instr.write('DISP:TRAC:Y:RLEV 0')
instr.write('TRAC1:IQ ON')
instr.write('TRAC1:IQ:SRAT 32 MHZ')
instr.write('TRAC1:IQ:RLEN 691') # Range: 1 ... 209715200(200*1024*1024)
instr.query('*OPC?')
filePathPc = r"c:\temp\data.iq.tar"
filePathInstr = r"c:\temp\dev_data.iq.tar"
instr.write('INIT')
instr.query('*OPC?')
# guarde los archivo de datos I/Q en el disco duro del instrumento
instr.write(f'MMEM:STOR:IQ:STAT 1, "{filePathInstr}"')
# pida los datos del instrumento y guárdelos en el disco duro local
fileData = bytes(instr.query_binary_values(f'MMEM:DATA? "{filePathInstr}"', datatype='s'))
newFile = open(filePathPc, "wb")
newFile.write(fileData)
newFile.close()
print(instr.query('SYST:ERR?'))
instr.close()
# cargue el archivo en el software VSE
vse.write(f'MMEM:LOAD:IQ:STAT 1, "{filePathPc}"')
vse.close()