LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Simultaneous connection of more than one unit of GPIB device

Dear all out there,

Would anyone has any idea/ solution in programming of ATE that makes Simultaneous connection of more than one unit?

What's the better, if not the best, way of initialisation, acquisition and report generation for such system? without significant delay incurred.

For instants,
1. Initialise X number of, say, Agilent 34401A multimeter (GPIB)
2. Acquiring of meter readings from each meter, limit check and write to respective report

Any idea/ sample code/ solution is very much appreciated.

Regards
ian.f k
Ian F
Since LabVIEW 5.1... 7.1.1... 2009, 2010, 2014
依恩与LabVIEW
LVVILIB.blogspot.com
0 Kudos
Message 1 of 8
(4,233 Views)
The connection of multiple multimeters to the gpib bus is normal, the only thing you need to do is switch them each to a unique address on this bus.
Your program can best initialise all multimeters once in the beginning of your program and read out those meters when appropriate.
If and how to synchronise the triggering of the multimeters is a question of your test.
greetings from the Netherlands
0 Kudos
Message 2 of 8
(4,233 Views)
Thanks albert

In fact, not so much of how to initialise them. I have a sub-routine that performs auto-search/ manual configuration of number of unit on the bus. The list of GPIB address is in an array format.

My question is, what's the best way to make sure that the polling (from multimeters), checking (limits) and report append (to each respective multimeter) are done correctly and effiently without taking up too much memory usage?

Hope that I am making myself clear of my question.
Any idea/ suggestion would be appreciated.

Thanks!
Ian F
Since LabVIEW 5.1... 7.1.1... 2009, 2010, 2014
依恩与LabVIEW
LVVILIB.blogspot.com
0 Kudos
Message 3 of 8
(4,233 Views)
the best you can do is to analyse what you want precisely. In modern pc's memory or speed should not be a problem. Memory of 1000 measurements is about 8kbyte of data so nowhere to find in a modern pc with at least 128M of memory.
The speed is determined almost exclusively by the multimeter conversion (measurement) and bustraffic (to get it in the pc) so the best you can do is arm all the multimeters, trigger them at the same moment and read the result. A limit check is a vi in labvie and does not cost time at all.

To give you better answers I need to know more
greetings from the Netherlands
0 Kudos
Message 4 of 8
(4,233 Views)
Tthe worst offenses in the past have been opening VISA sessions without closing them. With the latest LabVIEW/NI-VISA versions you aren't required to use the Open VISA function at all. To minimize bus traffic, IVI drivers are great because of the state caching feature.

All of my limit checking and report generation is done by TestStand these days but before that I tended to do all my polling at once and writing the results to a numeric array, then doing the evaluation all at once and then doing the reporting.

Everything else falls into good LabVIEW programming practices and effecient memory usage is explained in the "LabVIEW Performance and Memory Management" .pdf file that's part of the LabVIEW Bookshelf that ships with LabVIEW. Among
many things, avoid globals, use replace array instead of build array when possible, watch for data type coercion, etc.
Message 5 of 8
(4,233 Views)
albert geven wrote in message news:<5065000000050000005BAE0000-1031838699000@exchange.ni.com>...
> The connection of multiple multimeters to the gpib bus is normal, the
> only thing you need to do is switch them each to a unique address on
> this bus.
> Your program can best initialise all multimeters once in the beginning
> of your program and read out those meters when appropriate.

With many instruments there are two types of "initialise."
One type, which is a reset, choose range, etc., as you suggest can
be done at the beginning of a program or section of a program.

However, the other type of initialize is to sent the SCPI INIT command
to the instrument. This command tells the instrument to take a measurement
(or scan of measurements).


When dealing with multiple multimeters, there are at least 2 ways of
handling measurements. The slow way deals with one instrument at a
time -- using the SCPI commands INIT, wait FETCH?, or perhaps just READ?
sent to each instrument. It is slow because each instrument must wait
for the previous instrument to finish before it can start.

The better way is to set up each instrument for the desired measurement.
If simultaneous triggering is needed, either use some type of external
trigger or BUS trigger if the instrument can use it. After all instruments
are set up, issue the INIT command to each instrument, then trigger.
when all measurements are completed, use the FETC? command to get the
results from each instrument. Note that there may be Plug&Play drivers
to issue these commands for your instrument.

Les.Hammer@CompleteTest.com
www.CompleteTest.com
0 Kudos
Message 6 of 8
(4,233 Views)
Thanks Dennis

You have read my mind.
Unfortunately, I do not have the teststand. However, your suggestions/ advises are, indeed, straight to the point.

One more question, which method would you recommend to ensure data polled from each tester is being written/ appended to the corresponding report?

regards
ian.f
Ian F
Since LabVIEW 5.1... 7.1.1... 2009, 2010, 2014
依恩与LabVIEW
LVVILIB.blogspot.com
0 Kudos
Message 7 of 8
(4,233 Views)
hi albert,

You may refer to Dennis reply.
He has got what I had in my mind.
Any other suggestion?


Regards
ian.f
Ian F
Since LabVIEW 5.1... 7.1.1... 2009, 2010, 2014
依恩与LabVIEW
LVVILIB.blogspot.com
0 Kudos
Message 8 of 8
(4,233 Views)