Tektronix Technical Forums are maintained by community involvement. Feel free to post questions or respond to questions by other members. Should you require a time-sensitive answer, please contact your local Tektronix support center here.

Automated Multipoint Acquisition

DMM7510 7½-Digit Graphical Sampling Multimeter
Forum rules
<t></t>
Post Reply
naxTek
Posts: 3
Joined: January 10th, 2017, 6:22 am
Country: Germany

Automated Multipoint Acquisition

Post by naxTek » January 10th, 2017, 6:45 am

I am trying to set up an automated (script based) multipoint measurement (e.g. 1000 samples measured after receiving a trigger on external in).
I am using the IVI-COM interface of the IVI driver (http://de.tek.com/digital-multimeter/dmm7510-software-1).

The IVI interface is not working at all, so I switched to the "KeithleyInstruments.KeithleyDMM7510.Interop" Interface.
This is working quite fine as long as I do not try to configure any trigger (according the example e.g. "MeasureMultipleCPP.cpp" attached to the IVI driver).
As soon as I configure a trigger (I use the LoadExternalDigitalIO()-method): the trigger is received, but only one measurand is being returned.
If I now enter the menue on the front panel: Menue -> Trigger -> Configure and run to the block "Measure" I can see that there is a property Count. This has the value 1. If I set this manually to the number of values I want to measure (by placing a brake point into my code) e.g. 1000 then it works just fine. How is this property accessible by the API?
I did not find a way to set/change this property.

Thanks in advance!

Alex

Andrea C
Keithley Applications
Keithley Applications
Posts: 1323
Joined: October 15th, 2010, 10:35 am
Country: United States
Contact:

Re: Automated Multipoint Acquisition

Post by Andrea C » January 11th, 2017, 6:57 pm

Alex,

You'll have to setup the trigger blocks on your own.

Pseudo code below will setup trigger model to wait for trigger on digital IO or by push of front panel Trigger button.
Then it takes 10 readings:

Code: Select all

        'reset trigger model
        _driver.Trigger.Model.Reset()

        '************* Load a Trigger Model 
        ' buffer clear
        _driver.Trigger.Model.Block.BufferClear(1, "defbuffer1")
        'wait for trigger
        _driver.Trigger.Model.Block.Wait(2, "DISP", KeithleyDMM7510TriggerBlockLogicEnum.KeithleyDMM7510TriggerBlockLogicOR, "DIG1", "DIG1")
        'delay constant
        _driver.Trigger.Model.Block.ConstantDelay(3, 0.001)  ' 1 msec delay
        'measure
        _driver.Trigger.Model.Block.Measure(4, "defbuffer1")
        ' branch counter
        _driver.Trigger.Model.Block.BranchCounter(5, 10, 4)  ' go back to trigger block 4, our measure block
        'send it back to idle or block 0
        _driver.Trigger.Model.Block.BranchAlways(6, 0)

        ' execute the trigger model operation
        _driver.Trigger.Initiate()

naxTek
Posts: 3
Joined: January 10th, 2017, 6:22 am
Country: Germany

Re: Automated Multipoint Acquisition

Post by naxTek » January 12th, 2017, 1:39 am

Hello Andrea,

thank you for the fast reply. Thanks for the hint with the blocks!
The case you described did not exactly work for me because somehow it was not possible to use the device in the digitizer mode.

But I did try using the "plain" GPIB commands (this is mentioned in the user's manual chapter "capturing and analyzing waveforms", by the way: this commands are NOT named in the "command reference" of the windows help):
There I can pass the number of elements I want to record:
:TRIG:BLOC:DIG 3, "defbuffer1", 5000
or
:TRIG:BLOC:MEAS 3, "defbuffer1", 5000
this is working for my case (whether I configure am measurement or a digitizer).

This problem is solved ;-)

But I already hang at the next one...
I do want to export a trigger singal on the External trigger line (to trigger some other devices). There I have a very similar problem:
I set the trigger to COMMAND (":TRIG:BLOC:WAIT 2, COMMAND, ..."). The device now reacts on the command _driver.Trigger.SendSoftwareTrigger.
Afterwards I add a notify block (":TRIGger:BLOCk:NOTify 3, 1").
-> The block is added but here again I can not configure the notify action (to set it to the external trigger) by command line but only by the front panel.

Do you have any hints for me?

Thanks again in advance!

Alex

Andrea C
Keithley Applications
Keithley Applications
Posts: 1323
Joined: October 15th, 2010, 10:35 am
Country: United States
Contact:

Re: Automated Multipoint Acquisition

Post by Andrea C » January 12th, 2017, 2:07 pm

Alex,

For the physical connection to the output trigger, are you intending to use one of the digital lines on the DB9? Or the dedicated output on pin 1 of the External IO?

If it is the External IO, I'm not finding any provision in the IVI driver for accessing those; just the Digital IO on the DB9.

In either case, I'm finding the easiest thing might be to just send the SCPI command:

Code: Select all

         ' output trigger
        _driver.Trigger.Model.Block.Notify(3, 1)  ' notify id 1
        _driver.System.WriteString(":TRIG:EXT:OUT:STIM NOT1")  ' use notify id 1 as stimulus
        _driver.System.WriteString(":TRIG:EXT:OUT:LOG NEG")     ' active lo pulse
Andrea

naxTek
Posts: 3
Joined: January 10th, 2017, 6:22 am
Country: Germany

Re: Automated Multipoint Acquisition

Post by naxTek » January 12th, 2017, 11:10 pm

Hi Andrea,

thanks once again. This was exactly what I was looking for!

Best

Alex

Post Reply

Return to “DMM7510 Graphical Sampling DMM”

Who is online

Users browsing this forum: No registered users and 3 guests