VI_ERROR_TMO (-1073807339): истекло время ожидания до завершения операции - PullRequest
0 голосов
/ 17 июня 2019

Я пытаюсь подключить мой Power Analyzer Rohde & Schwarz, HMC8015 ('ASRL3 :: INSTR') к моему компьютеру и прочитать любые данные, которые мое устройство может показать с помощью Python VISA. У меня много проблем со строкой кода, которая позволяет читать данные моего устройства.

Мой код:

import visa

rm = visa.ResourceManager()
name = rm.list_resources()

#using with allows to close explicitly the resource at the end of the script
with rm.open_resource('ASRL3::INSTR') as Power_Analyser:

    Power_Analyser.values_format.is_binary = True
    Power_Analyser.values_format.datatype = 'B'
    Power_Analyser.values_format.is_big_endian = False
    Power_Analyser.values_format.container = bytearray

    Power_Analyser.timeout = 25000 #2,5 seconds

    Power_Analyser.write_termination = '\n'

    Data = Power_Analyser.query_ascii_values('P?',datatype='s')[0]
    print(Data)

        #write the Data to a file on my PC
        PCfilePath = 'C:\\Users\\ApCha\\Documents\\Python Scripts\\a.txt'
        newFile = open(PCfilePath, "wb")
        newFile.write(Data)
        newFile.close()

Это показывает мне: VisaIOError: VI_ERROR_TMO (-1073807339): Timeout expired before operation completed.

Независимо от того, насколько велико время ожидания. Я предполагаю, что проблема заключается в синтаксисе в Power_Analyser.query_ascii_values('P?',datatype='s')[0] но я не могу понять, какой правильный синтаксис.

Я проверил руководство по эксплуатации моего устройства: https://scdn.rohde -schwarz.com / ur / pws / dl_downloads / dl_common_library / dl_manuals / gb_1 / h / hmc80115 / HMC8015_SCPImanual_en_01.pdf

но, похоже, ничего не работает, и для Python VISA ничего четко не объяснено, и у меня нет с этим никакого опыта. Кто-нибудь знает, как решить проблему?

1 Ответ

1 голос
/ 17 июня 2019

Я обычно делаю следующее при устранении проблем с подключением (новых) инструментов VISA:

  • Убедитесь, что он правильно подключен. Мол, на Windows, появляется в диспетчере устройств. А в NI-MAX - при условии, что установлена ​​VISA-структура National Instrument.
  • Убедитесь, что его адрес VISA (или его обоснованное предположение) отображается в списке, возвращаемом менеджером ресурсов VISA: rm.list_resources() в вашем коде.
  • Откройте ресурс с точным указанным адресом VISA: например, rm.open_resource('ASRL3::INSTR') в вашем коде.
  • Оставьте ресурс настроенным по умолчанию.
  • Отправьте самую основную команду, например *IDN?, если API основан на SCPI .

Только в случае сбоя я настраиваю определенные параметры связи, такие как .write_termination, .read_termination и .timeout. Тайм-аут 100 мс обычно будет делать. Сделайте это секундой, просто чтобы быть уверенным.

В своем коде вы устанавливаете .values_format.is_binary на True с самого начала. Но тогда вы .query_ascii_values. Я был бы очень удивлен, увидев, что не потерпит неудачу. Очевидно, что каждый инструмент отличается. Хотя после очень быстрого взгляда на руководство я не вижу никаких признаков того, что ваш прибор на самом деле.

Мой совет: начните с настроек связи по умолчанию, попробуйте получить ответ на команду *IDN?, затем возьмите ее оттуда.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...