Respuesta
Este ejemplo de Python muestra cómo transferir un archivo de datos I/Q del analizador de espectro al PC controlador y abrirlo con el software de análisis de señales VSE.
Probado con:
- Analizador de espectro en tiempo real FSVR (FW: 2.23 SP1)
- Software VSE (1.90)
- PyVISA 1.11.3
- Python 3.9
Autor: Servicio de asistencia técnica de R&S - MP
Actualizado el 22.01.2021
Versión: v1.3
Soporte técnico -> https://www.rohde-schwarz.com/support
Antes de la ejecución debe comprobarse siempre si la configuración es correcta en este archivo de comandos.
Este ejemplo no pretende ser completo. Toda la información ha sido
recopilada minuciosamente. No obstante, no pueden descartarse errores.
import pyvisa
rm = pyvisa.ResourceManager()
# ajustar el archivo de comandos de recurso VISA conforme a su instrumento
instr = rm.open_resource('TCPIP::192.168.0.1::INSTR') # sustituir 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 cambiar 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') # Rango: 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?')
# guardar los datos I/Q en el disco duro del instrumento
instr.write(f'MMEM:STOR:IQ:STAT 1, "{filePathInstr}"')
# solicitar datos de archivo del instrumento y guardar 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()
# cargar archivo en el software VSE
vse.write(f'MMEM:LOAD:IQ:STAT 1, "{filePathPc}"')
vse.close()