LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

labview IVI drivers

Hi,

with the help of some archived posts from this group, I was able to use the
IVI drivers for my lecroy wp 950 to aquire data from all four channels. It
works, but it seems like a hack, so I was hoping someone could explain how
to use IVI drivers properly.

I downloaded the lecroy drivers.
I started in the getting started.vi
I entered subvi's until I reached lcwpxxx Acq Wfm Edge Triggered.vi
At this point, I followed instructions (I think) to add a Fetch Waveform.vi
after the
Read Waveform.vi, for every channel. I added a total of three Fetch
Waveform.vi
I wired in constants for the channel names, and daisy chained the error
lines, instrument, etc.
I updated the connectors for subvi's to include the additional channel
outputs

Now I'm happy enou
gh with this for now- but I think I'm missing the point of
what the driver is doing for me. If I keep this program as is, and tomorrow
get a brand x scope that has IVI drivers, how would I make it work in the
program?
I think I should be doing this with the IVI class drivers, but I'm not sure
how they will help me either.

Can someone explain what the IVI driver toolkit would do for me, also?

Thanks for any help,
Chad
0 Kudos
Message 1 of 4
(3,016 Views)
To make the most use of IVI, you should be using the LabVIEW IVI class drivers. The way it works is that the IVI class driver (in your case IVI Oscilliscope) calls the specific instrument driver (the .dll and not the VIs). Which instrument the class driver uses is defined in MAX. To change instruments, all you have to do is go to MAX and tell it that you are now using an Agilent or Tek instead of the LeCroy. Your application program doesn't change at all. AFAIK, those VIs that you are using now don't make use of any of the IVI features such as state caching or simulation because you are bypassing the IVI api.
0 Kudos
Message 2 of 4
(3,016 Views)
Chad,

This document might provide a nice overview of the relationship between a class and specific driver and how you can achieve hardware independence.

http://zone.ni.com/devzone/conceptd.nsf/webmain/A9D8622AFFEFD6F5862568690078C726?opendocument&node=DZ59205_US
An
0 Kudos
Message 4 of 4
(3,016 Views)
Chad,
An IVI driver consists of a green and a blue driver for LabVIEW as well as drivers for CVI. However, a legacy driver typically consists of a driver for one language and it may not have a distinct color. Legacy drivers will exist if the instrument does not yet have an IVI class, or if nobody bothered to make an IVI driver yet. These drivers are usually on our website (http://zone.ni.com/idnet97.nsf/browse/), but may be on the manufacturer's website. It does not matter who manufactured the instrument, but some manufacturers do not bother to make an IVI driver or sometimes even a legacy driver. In such a case, the user can refer to our site for other options (http://zone.ni.com/idnet/other.htm).
The user can program using the "green" IVI Class driver VI's. Note that these VI's are green colored in LabVIEW. These VI's control any instrument in that class. For example the user can write a program for a Fluke 45 DMM using DMM class drivers. Then, when that Digital Multi-meter (DMM) breaks, he use the same program to control an HP 34401 DMM. These VI's require a "Logical Name" to access the instrument.

The user also has an option of using the "blue" Instrument Drivers. These VI's are blue colored in LabVIEW. The user can write a program to control a Fluke 45 with these VI's. However, when the DMM breaks, the program will NOT be able to control an HP34401 DMM. These VI's require a "VISA Resource Name" to access the instrument. Some green VI programs may need to use a blue VI for instrument specific instructions not in the class driver.

A class driver is a dll that calls the specific driver dll. The "Logical Name" is used by the class dll to know which specific dll to call. For example, the IviDMM_init in IviDMM.dll might use the "logical name" to determine that it should call fl45_init in fl45_32.dll.

A "logical name" is set up in MAX to refer to a "Virtual Instrument". A "Virtual Instrument" refers to an "Instrument Driver". Then, an "Instrument Driver" refers to a dll, class and device. Then, the Device refers to a VISA Resource Name. Confused yet? It may help to try setting it up in MAX.
I hope this clarifies about IVI class drivers.

Zvezdana S.
National Instruments
0 Kudos
Message 3 of 4
(3,016 Views)