Вуаля, всего пол дня мучений и готово ;) Основные затыки были в том что 24М памяти это много, а вывести можно всего 250к за раз. Для большего количества надо несколько раз вычитывать со смещением.
250000 точек по LXI, скрипт на питоне
# -*- coding: utf-8 -*-
"""
Digitize data with scope DS1054Z (Rigol)
Setup scope:
- connect Channel 1 to cal output
- set memory 600k pts
- set horizontal time 1 ms/div,
- set vertical 2.0 V/div
Requre:
- python
module PyVISA-py https://pyvisa-py. …thedocs.io/en/latest/#
- qt(for example window)
"""
# ---------- Config ----------------------
IP_scope = '192.168.88.13'
#-----------------------------------------
import time
import visa
import numpy
rm = visa.ResourceManager('@py')
#scope = rm.open_resource("TCPIP::192.168.1.13::INSTR")
scope = rm.open_resource("TCPIP::{0}::INSTR".format(IP_scope))
print scope.query("*IDN?")
scope.write(":WAV:FORM BYTE")
scope.write(":SINGLE")
time.sleep(4)
#scope.write(":STOP")
scope.write(":WAV:MODE RAW")
scope.write(":WAV:SOUR CHAN1")
#print scope.query(":ACQuire:MDEPth?")
scope.write(":WAV:STAR 1")
scope.write(":WAV:STOP 250000")
time.sleep(1)
#scope.write(":SINGLE")
scope.write(":WAV:DATA?")
rawdata = scope.read_raw(250000)
cutdata = rawdata[11:-1:] #cut preamble
data = numpy.frombuffer(cutdata, 'B')
print scope.query(":SYSTem:ERRor?")
t = range(len(data))
ch1 = data
import matplotlib.pyplot as plt
# Create plots with pre-defined labels.
fig, ax = plt.subplots()
ax.plot(t, ch1, 'C1', label='ch1')
#ax.plot(t, ch2, 'C2', label='ch2')
#ax.plot(t, ch3, 'C3', label='ch3')
#ax.plot(t, ch4, 'C4', label='ch4')
plt.xlabel('Sample')
plt.ylabel('Value')
plt.title('Scope DS1054 samples')
plt.grid(True)
ax.legend()
plt.show(block=False) # view in ipython
print "press any key"
import sys
sys.stdin.read(1)
#time.sleep(10)
