LabWindows/CVI

cancel
Showing results for 
Search instead for 
Did you mean: 

HP3458a ?

Hi !

Has anybody used the multimeter HP3458a with the LabWinows/CVI 5.5 ?

I'd like to write a program with LabWindows/CVI 5.5
which, to interact the multimeter HP3458a, should
programme the multimeter so that the multimeter HP3458a
could take 256 samples with DSDC (direct-sampling) and :

- time interval between the samples 75E-6sec
- level triggering at 0% of the range
- level trigger event
- enable reading memory
- transfer samples to computer PC

using the driver:
========================================
Instrument Driver information:
-----------------------------
Prefix: hp3458a
Driver Revision: 2.0
Original Release Date: 03/08/99
Update Release Date: 06/14/2000

========================================

Belove there is a snippet of my program, and it doesn't work properly,
and multimeter displays ERR.

When I increase the time interval between samples is OK.

Why ?

========================================================
hp3458a_init ("GPIB0::22::INSTR", VI_TRUE, VI_TRUE, &hp3458a);

hp3458a_ConfigureMeasurement (hp3458a,
HP3458A_VAL_DC_CPL_DIRECT, 10.0, 0.001);

hp3458a_WriteInstrData (hp3458a, "MEM FIFO");

hp3458a_ConfigureMultiPoint (hp3458a, 2, 256,
HP3458A_VAL_INTERVAL, 75.0E-6);

hp3458a_WriteInstrData (hp3458a, "TRIG LEVEL");

hp3458a_WriteInstrData (hp3458a, "DISP OFF");


hp3458a_ReadMultiPoint (hp3458a, 60000, 256, readings_vector,

&number_samples);

=======================================================

with greetings
Piotr
0 Kudos
Message 1 of 7
(4,499 Views)
Hello Piotr,
When you use a time interval of 75.0E-6, your instrument beeps and displays ERR,
but if you use a larger value it works? If so, then if you set a breakpoint and step through the code, the error should occur when you run the line
ConfigureMultiPoint(). You may want to place a call to hp3458a_error_query() directly after the line that causes the error. This will read the error from the device and should give insight as to the cause. You might also use NI-Spy (Measurement & Automation Explorer >> Tools) to trace the VISA calls being made from the driver to see if anything looks incorrect.

Jeremiah Cox
Applications Engineer
National Instruments
http://www.ni.com/ask
0 Kudos
Message 2 of 7
(4,499 Views)
I have received Your e-mail and thank You !
I will try to do what You advise me and I'll write.
Piotr

> Jeremiah Cox
> Applications Engineer
> National Instruments
> http://www.ni.com/ask
0 Kudos
Message 3 of 7
(4,499 Views)
Hello Jeremiah !

> When you use a time interval of 75.0E-6, your instrument beeps and
> displays ERR,
> but if you use a larger value it works? If so, then if you set a
> breakpoint and step through the code, the error should occur when you
> run the line
> ConfigureMultiPoint().

NO !
The error "ERR" occur when I run the line: \/
----------------------------------------------------------------------------
-----------------------------
hp3458a_ReadMultiPoint (hp3458a, 60000, number_samples, readings_vector,

&number_samples);
----------------------------------------------------------------------------
-----------------------------

I have placed a call to "hp3458a_error_query()" function directly after the
mentioned above line.

----------------------------------------------------------------------------
-----------------------------
hp3458a_error_query (hp3458a, &error_code, error_message);
----------------------------------------------------------------------------
-----------------------------
and then have seen

TRIGGER TOO FAST !!!!!!!!!!!!


>You may want to place a call to
> hp3458a_error_query() directly after the line that causes the error.
> This will read the error from the device and should give insight as to
> the cause. You might also use NI-Spy (Measurement & Automation
> Explorer >> Tools) to trace the VISA calls being made from the driver
> to see if anything looks incorrect.

I have enclosed my program with the files from "NI-Spy":

1) Capture.spy and
2) Capture.txt

P.S.
I think that the error occurs because of the format DREAL which
uses function "hp3458a_ReadMultiPoint()" and multimeter
can't fall behind with writing to memory.

Because when I have written

hp3458a_WriteInstrData (hp3458a, "PRESET DIG") // 256 samples, 20E-6
interval time, MFORMAT SINT !!!!!!
hp3458a_WriteInstrData (hp3458a, "DISP OFF")
hp3458a_WriteInstrData (hp3458a, "TRIG LEVEL")
hp3458a_WriteInstrData (hp3458a, "TARM SGL")

then it's OK !!!!!!

but I can't acquire the samples by means of "FetchMultiPoint()" function
because that function uses SINT format too.


I will be grateful to You for help !!!

Piotr

----------------------------------------------------------------------------
--
----------------------------------------------------------------------------
--
Previous e-mail: \/
----------------------------------------------------------------------------
--
>
> Problem Description :
> Hi !
>
> I'd like to write a program with LabWindows/CVI 5.5 which,
> to interact the multimeter HP3458a, should programme the multimeter
> so that the multimeter HP3458a
> could take 256 samples with DSDC (direct-sampling) and :
>
> - time interval between
> the samples 75E-6sec
> - level triggering at 0% of the range
> - level trigger event
> - enable reading memory
> - transfer samples to computer PC
>
> using the driver:
> ==============================
> Instrument Driver information:
> -----------------------------
> Prefix: hp3458a
> Driver Revision: 2.0
> Original Release Date: 03/08/99
> Update Release Date: 06/14/2000
> ==================================
>
> Belove there is a snippet of my program, and it doesn't work properly,
> and multimeter displays ERR.
>
> When I increase the time interval between samples is OK.
>
> Why ?
>
> =================================
> hp3458a_init ("GPIB0::22::INSTR", VI_TRUE, VI_TRUE, &hp3458a)
> hp3458a_ConfigureMeasurement (hp3458a,
> HP3458A_VAL_DC_CPL_DIRECT,
>
> 10.0, 0.001)
> hp3458a_WriteInstrData
> (hp3458a, "MEM FIFO")
> hp3458a_ConfigureMultiPoint
> (hp3458a, 2, 256, HP3458A_VAL_INTERVAL, 75.0E-6)
> hp3458a_WriteInstrData (hp3458a, "TRIG LEVEL")
> hp3458a_WriteInstrData (hp3458a, "DISP OFF")
> hp3458a_ReadMultiPoint (hp3458a, 60000, 256, readings_vector,
> &number_samples)
> ===================================
>










[Attachment File.dat, see below]


[Attachment Capture.txt, see below]


[Attachment Dsdc.c, see below]


[Attachment Dsdc.h, see below]


[Attachment Dsdc.prj, see below]


[Attachment Dsdc.uir, see below]


[Attachment Capture.spy, see below]


[See first reply for additional information]
Download All
0 Kudos
Message 4 of 7
(4,499 Views)
[Additional attachment(s)]
Download All
0 Kudos
Message 5 of 7
(4,499 Views)
[Additional attachment(s)]
0 Kudos
Message 6 of 7
(4,499 Views)
Hello, Piotr!

This is not an "answer" -- I just want to keep in touch. One of our production device testers has BorlandC++4.02 code written 7 years ago, and it involves an HP3458A. I have advised our company to switch to LabView.

We purchased LabView 6.0 recently and we are just beginning to "get into it", so according to the evident lack of a driver from this NI developers source, it's beginning to look like I will end up having to write a driver myself! From reading your "question" and all the "answers", I am getting a pretty good idea of what to do, even before I learn LabView! Thanks to you and all of the responders!

I do know how to control the HP3458A quite well for our needs, from the level of C++ access, so i
t will be just a matter of putting things into a form suited to LabView.

There is one thing from my recent experience with the HP3458A that you might benefit from: it seems one has to be very careful about the NPLC (number of "power line cycles"). If you don't enable that feature when you are measuring at low signal levels, you will get extremely strange and unpredictable measurement errors!

Best wishes for your success with the instrument.

Andrew Korsak
Staff Test Engineer
READ-RITE Corp.
Fremont CA

andrew.korsak@readrite.com
0 Kudos
Message 7 of 7
(4,499 Views)