Products > Test Equipment

SCPI - get instantaneous channel reading DS1054Z

(1/2) > >>

ornea:
i think I am missing the point and doing it all wrong.

I simply want to read the current channel input value.  i.e. The current ADC reading.

It seems my only options are to use SCPI command to

1. :MEAS:ITEM? with one of the following {VMAX|VMIN|VPP|VTOP|VBASe|VAMP|VAVG|VRMS|OVERshoot|PREShoot|MARea|MPARea|PERiod|FREQuency|RTIMe|FTIMe|PWIDth|NWIDth|PDUTy|NDUTy|RDELay|FDELay|RPHase|FPHase|TVMAX|TVMIN|PSLEWrate|NSLEWrate|VUPper|VMID|VLOWer|VARIance|PVRMS|PPULses|NPULses|PEDGes|NEDGes} or

2. :WAV:DATA? to read the entire internal memory and then pick an arbitrary point to use as my reading.

Has any one come up with an elegant work around to simply get the current ADC value for a channel.

(1). above only gives results on a processed waveform and (2) seems like massive overkill.

I am currently using :MEAS:ITEM? VAVG like RoGeorge does here https://github.com/RoGeorge/DS1054Z_data_logger which works for slowly changing voltages but no good when trying to sample at a point in time of my choosing for a varying signal.

I am thinking I have no choice but to use waveform and select a point in the array that is closest in time to my sample time.

I basically want to use the scope as an ADC and do the waveform analysis in software.

Any tips/hints/tricks warmly welcome.

ornea.

RoGeorge:
Unfortunately, Rigol DS1054Z can not stream the raw ADC values.  It does not work like a Data Acquisition device, and its LAN or USB won't be fast enough anyway, to keep the peace with the max ADC throughput.  That is why, internally, it needs an FPGA to store that avalanche of data into local RAM.  1GSa/s at 8 bits means it would need an 8Gbit link (with extra data bordering needed to sent over LAN, probably a 10Gbit/s LAN will barely cope with the data coming from the ADC).  A casual laptop/desktop won't be able to cope with that data throughput, unless it was specially built for high throughput data streams.

If you need continuous data streaming of all ADC values, you may want to search for DAQ cards.  Otherwise, all the oscilloscope can do, is to send at most its entire 24 million samples, the max that can be stored at a trigger.  The ~24MB of raw samples will take about half a minute to be transferred over LAN.

ornea:
Thanks for the reply RoGeorge.

It is not a constant stream of data I want.  Just a single reading when I choose.  Maybe every second maybe every 5 seconds.

I automate many devices, PSU's, Temperature Probes etc, then change a setting then I want to measure a voltage often to calibrate or characterise a device.  So I just want a reading when I want.

I get you point re the massive amount of data.

I think I have a solution for my use case (which I need to test):-

$MEMORYDEPTH = :ACQuire:MDEPth?
:RUN
:WAV:SOUR CHAN2
:WAV:MODE NORM
:WAV:FORM ASCii
:WAV:STAR $MEMORYDEPTH
:WAV:STOP $MEMORYDEPTH
:WAV:DATA?

Now every time I query :WAV:DATA?  it returns the last value displayed which would be very close to the last ADC measurement which is the waveform point on the far right of the screen..

Just not sure if :ACQuire:MDEPth? is the right waveform point when reading the screen waveform.

alm:
Is the aperture time critical? Otherwise I'd think a bench DMM, if available, would be a simpler way to retrieve a single sample at such long intervals.

Njk:
Test Controller seems suitable. But DS1000Z has its peculiarities and there must be a reason it's not supported by this software. Ask HKJ

Navigation

[0] Message Index

[#] Next page

There was an error while thanking
Thanking...
Go to full version
Powered by SMFPacks Advanced Attachments Uploader Mod