Add Tektronix DPO4034 acquisition over VISA
This commit is contained in:
67
docs/tektronix-dpo4034.md
Normal file
67
docs/tektronix-dpo4034.md
Normal file
@@ -0,0 +1,67 @@
|
||||
# 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 млн суммарно).
|
||||
|
||||
## Пример
|
||||
|
||||
```python
|
||||
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](https://download.tek.com/manual/077024801web.pdf).
|
||||
Проверка с реальным прибором требуется для обоих интерфейсов; офлайн-тесты
|
||||
проверяют последовательность команд, масштабирование, ошибки и восстановление RUN.
|
||||
Reference in New Issue
Block a user