Files
templates/docs/tektronix-dpo4034.md

4.2 KiB
Raw Blame History

Tektronix DPO4034

Независимый от Qt драйвер: python/set_devices/tektronix.py. Установка: pip install "setcorp-templates[tektronix]" из пакета templates. Нужна системная библиотека NI-VISA или TekVISA соответствующей разрядности. Для Python 3.8 / Win7 выбирайте совместимую версию PyVISA и VISA runtime.

Подключение

  • Ethernet: включить LAN на приборе, проверить IP и доступность из сети ПК. Ресурс VISA TCPIP0::192.168.1.100::inst0::INSTR (VXI-11). В SETGUI можно ввести только IP/hostname или полное имя TCPIP INSTR.
  • GPIB: контроллер GPIB на ПК с установленным драйвером, кабель GPIB, адаптер TEK-USB-488, USB device port осциллографа. У адаптера должно быть питание. Адрес задаётся на приборе в Utility → I/O → GPIB. Пример ресурса GPIB0::1::INSTR; адреса 0…30, номер контроллера отдельно.

Реализованный обмен

Команды SCPI с LF. После открытия *IDN? проверяет производителя и точную модель DPO4034; HEADER OFF отключает заголовки ответов.

Для снимка запрашивается ACQUIRE:STATE?, затем отправляется ACQUIRE:STATE STOP и ожидается *OPC?. Это позволяет читать несколько каналов одной остановленной записи. Для каждого CH1…CH4:

  1. SELECT:CHn?: канал должен быть включён пользователем на приборе.
  2. DATA:SOURCE CHn, DATA:ENCDG RIBINARY, DATA:WIDTH 2, DATA:START 1, DATA:STOP N.
  3. Чтение WFMOUTPRE:PT_FMT?: поддерживается Y; ENV отклоняется явно.
  4. Чтение WFMOUTPRE:XINCR?, XZERO?, PT_OFF?, YMULT?, YOFF?, YZERO?, YUNIT?, NR_PT? (каждое имя с префиксом WFMOUTPRE:).
  5. CURVE?: IEEE 488.2 definite-length binary block, знаковые 16-битные отсчёты, старший байт первым. Разбор блока выполняет PyVISA, в том числе при разделении ответа между транспортными пакетами.

Для индекса i, начиная с нуля:

t[i] = XZERO + (i - PT_OFF) * XINCR (секунды), y[i] = YZERO + (raw[i] - YOFF) * YMULT (единицы YUNIT).

Проверяются конечность коэффициентов, положительный шаг времени и число полученных отсчётов. В finally восстанавливается RUN, если до снимка сбор шёл; исходное состояние STOP сохраняется. При ошибке UI закрывает сеанс. Тайм-аут операции VISA — 5 с. Драйвер не сбрасывает настройки прибора.

Снимок читает текущую запись, не ожидает нового аппаратного триггера. DATA:STOP ограничивает начало записи, а не прореживает всю запись. В UI предел 250 000 точек на канал (1 млн суммарно).

Пример

from set_devices.tektronix import DPO4034, resource_name

scope = DPO4034()
try:
    print(scope.connect(resource_name("Ethernet", "192.168.1.100")))
    waveforms = scope.capture(["CH1", "CH2"], points=10000)
finally:
    scope.close()

Источник команд и аппаратного подключения: MSO4000 / DPO4000 Programmer Manual, 077024801. Проверка с реальным прибором требуется для обоих интерфейсов; офлайн-тесты проверяют последовательность команд, масштабирование, ошибки и восстановление RUN.