ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
28 марта
805769 Топик полностью
antm (31.12.2017 18:40, просмотров: 178) ответил Гyдвин на Именно так. Но крутить не будем :) Для декодирования есть более подходящие средства. Кстати, я через сеть не смог получить блок данных с осциллографа размером более 1200 байт посредством научного тыка команды :WAV:DATA?.
Вуаля, всего пол дня мучений и готово ;) Основные затыки были в том что 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)
image