叫我冬冬就好了 2022-08-23 17:43
浏览 139
已结题

连接是德科技N9020A,设置并读取数据到电脑,但超时

连接是德科技N9020A,设置并读取数据到电脑
import time

import pyvisa
import os
import matplotlib.pyplot as stimulusResponsePlot
import numpy as npStimulusArray



debug = True
print("Debug flag set to " + str(debug))

# numpoints = input("numpoints:")
#
# CentFreq = input("CenterFrequency:")
# # centerprequency = 10e9
#
# SpanFreq = input("spanFrequency:")
# # spanfrequency = 10e6
#
# Avg = 'Average'

gpib_addr = 'TCPIP0::A-N9020A-10349.local::inst0::INSTR'       #PC安装NI MAX后可以查看GPIB地址,此工具也可以直接与GPIB通信
rm = pyvisa.ResourceManager()        #获取visa资源,将python的visa和系统visa关联起来
gpib_inst = rm.open_resource(gpib_addr)  #打开GPIB地址连接

gpib_inst.write("*RST")
gpib_inst.timeout = 25000      #延时

gpib_inst.write('*CLS')

gpib_inst.read_termination = '\n'

gpib_inst.write_termination = '\n'

print(gpib_inst.query('*IDN?'))        #查询仪器型号
# Define Error Check Function 定义错误检查函数
def Errcheck():

    myError = []

    ErrorList = gpib_inst.query("SYST:ERR?").split(',')

    Error = ErrorList[0]

    if int(Error) == 0:

        print("+0, No Error!")

    else:

     while int(Error)!=0:

        print ("Error #: " + ErrorList[0])

        print ("Error Description: " + ErrorList[1])

        myError.append(ErrorList[0])

        myError.append(ErrorList[1])

        ErrorList = gpib_inst.query("SYST:ERR?").split(',')

        Error = ErrorList[0]

        myError = list(myError)

    return myError
# 调用并打印出错误检查结果

print (Errcheck())

# 预设仪器 并等待操作通过 *OPC? 完成,即

# 操作完成查询。


gpib_inst.write("SYST:PRES;*OPC?")

print ("预设成功, *OPC? returned : " + gpib_inst.read())

# 将模式设置为频谱分析仪,然后通过 *OPC? 等待操作完成,即

# the operation complete query.

gpib_inst.write("INST:SEL 'SA';*OPC?")
gpib_inst.read()

# gpib_inst.write("FREQ:ANN CSPan")

# gpib_inst.write("SENS:FREQ:CEN " + str(CentFreq))     #发送中心频率设置命令,注意将字符参数转换成字符串格式
gpib_inst.write('FREQ:CENT 10e9')     #发送中心频率设置命令,注意将字符参数转换成字符串格式

# gpib_inst.write("FREQ:SPAN " + str(SpanFreq))
gpib_inst.write('FREQ:SPAN 10e6')  #带宽

gpib_inst.write('SWE:POIN 101')   #设置点的个数
# gpib_inst.write('SWE:POIN ' + str(numpoints))   #设置点的个数

gpib_inst.write("TRAC1:TYPE Average")
# gpib_inst.write("TRAC1:TYPE " + Avg)

gpib_inst.write("INIT:CONT ON")

# gpib_inst.write('CALC:MARK1:FUNC OFF') #使指定的标记成为 SA 标记函数之一。还会导致指定的标记打开(如果尚未打开)。
# gpib_inst.write('CALC:MARK1:FCO 1')  #中心频率点打开(就是marker1
# gpib_inst.write('CALC:MARK:FCO:PREC FIN')  #中心频率点打开(就是marker1


# D:User_My_Document/Instrument/My Documents/SA/data/New Folder
# gpib_inst.write('MMEM:MDIR "folder111"')   #D:User_My_Document/Instrument/My Documents下创建一个新文件夹,不可是已有的
# gpib_inst.write('MMEMory:RDIR "folder111"')   #删除文件夹
#
# gpib_inst.write('DISP:WIND:TRAC:Y:DLIN -50')   #在屏幕上显示一条y=-50的线
# gpib_inst.write('DISP:WIND:TRAC1:Y:BOTT -80')   #在屏幕上显示一条y=-50的线
#
# gpib_inst.write('DISP:WIND:TRAC1:Y:RPOS -50')
# gpib_inst.write('DISP:WIND:TRAC1:Y:PDIV -.25')   #不知道实在弄啥
# gpib_inst.write('DISP:WIND:TRAC1:Y:RLEV -50')


# gpib_inst.write('DISP:WIND:TRAC1:Y:TOP 0')    #头又未定义?



# gpib_inst.write("CALC:MARK2:FUNC OFF")     #为什么还报错了
# gpib_inst.write("CALC:MARK:FCO:X?")     #为什么还报错了
# gpib_inst.write("CALC:MARK2:ACTivate")
# gpib_inst.write("CALC:MARK:AOFF")

# gpib_inst.write("QUAN:TACT?")
# gpib_inst.read()

# gpib_inst.write("RECP:SESS:CSST SING")
# gpib_inst.write("MMEM:STOR:CONV 'MyDUT',INT")
# gpib_inst.write("MMEM:LOAD:CONV 'MyCONV_File',INT")

#######想要保存
# gpib_inst.write('AMPL:UNIT dBm')
print("尝试读取")
gpib_inst.write('FORM REAL,32')
data = gpib_inst.read('TRAC1:DATA?')    # #为什么read就超时。。。
time.sleep(1)
print(data)
gpib_inst.write('MMEM:DATA "MyFile",<data>')



# gpib_inst.write('MMEM:STOR:FDAT "11111MyFile.csv"')


# 将应用程序末尾损坏的 SCPI 命令作为调试测试发送
if debug:
    gpib_inst.write("INIT:CONT OOOOOOOOOO")

# 调用 ErrCheck 函数并确保程序启动之间没有发生错误

# (第一次 Errcheck() 调用和程序结束(最后一次 Errcheck() 调用。

print(Errcheck())

运行结果及报错内容

img

我想要达到的结果

成功读取trace上点的数据并保存到电脑上

  • 写回答

1条回答 默认 最新

  • 叫我冬冬就好了 2022-08-23 19:28
    关注

    TRACE:DATA?
    这一个指令为什么会超时啊,官方给的Python 示例也用到了这个,但是我还是超时

    评论

报告相同问题?

问题事件

  • 系统已结题 8月31日
  • 创建了问题 8月23日

悬赏问题

  • ¥15 matlab数据降噪处理,提高数据的可信度,确保峰值信号的不损失?
  • ¥15 怎么看我在bios每次修改的日志
  • ¥15 python+mysql图书管理系统
  • ¥15 Questasim Error: (vcom-13)
  • ¥15 船舶旋回实验matlab
  • ¥30 SQL 数组,游标,递归覆盖原值
  • ¥15 为什么我的数据接收的那么慢呀有没有完整的 hal 库并 代码呀有的话能不能发我一份并且我用 printf 函数显示处理之后的数据,用 debug 就不能运行了呢
  • ¥20 gitlab 中文路径,无法下载
  • ¥15 用动态规划算法均分纸牌
  • ¥30 udp socket,bind 0.0.0.0 ,如何自动选取用户访问的服务器IP来回复数据