Python SCPI, позволяющий избежать фиксированных задержек (проблема синхронизации)

Я использую анализатор параметров полупроводников Agilent 4155C. У меня проблема с контроллером / устройством. Я использую Python PyVisa для write SCPI приказывает ему. Я также читаю данные прямо с машины с помощью PyVisa's query команда.

Проблема заключается в том, что, как многие из вас могут знать, если вы отправите команду запроса в систему до того, как она завершит все свои операции, система выдаст ошибку, вызванную таймаутом / запросом. Я прочитал это руководство ( Manual Link) (в частности, страницы 10-12) и обнаружил, что люди используют цикл for с *CLS, *OPC, а также *ESR? команды с командой сна, чтобы проверить вручную, все ли операции завершены.

Код ниже является частью кода, который я пытаюсь запустить. Предлагаемое решение из руководства не стало проблемой, потому что я не могу отправить *ESR? Команда запроса без времени ожидания либо.

Примечание: ошибка тайм-аута появляется в instr.query("*ESR?") линия.

...
instr.write(":FORM:DATA ASC")

instr.write("*CLS")
instr.write("*OPC")
ESRvalue = 0

while (ESRvalue & 1) == 0:
    instr.query("*ESR?")
    time.sleep(0.01)

I_unicode_data = instr.query(":DATA? 'ID' ")

V_unicode_data = instr.query(":DATA? 'VD' ")

I_raw_data = I_unicode_data.encode('utf-8')

V_raw_data = V_unicode_data.encode('utf-8')
...

0 ответов

Другие вопросы по тегам