07-28-2005 09:46 AM
07-28-2005 07:32 PM
Both PNP driver and IVI-C driver use the <prefix>_init() function to acquire a new instrument session handle. Threfore you can acquire the handle in the same manner. However there is a big difference regarding session handle.
PNP session handle is exactly the same as VISA handle, which can be directly passed to VISA functions such as viPrintf(), viWrite(), viClear(), etc. IVI-C session handle is a true IVI session handle generated by the IVI engine and not VISA's, and can't be passed to VISA functions. Instead, the <prefix>_WriteInstrData() and <prefix>_ReadInstrData() functions are provided to support pass-through IOs in IVI-C.
07-29-2005
11:02 AM
- last edited on
11-11-2025
11:37 AM
by
Content Cleaner
Hello,
What programming language are you using to communicate through IVI?
Here is a tutorial on how to set up your IVI System through Measurement and Automation Explorer (MAX).
Using Measurement & Automation Explorer to Configure Your IVI System
The basic steps are simple...
1. Expand IVI Drivers under Devices and Interfaces
2. Right-click on Logical Names and select Create New...
3. Type in the name of your logical name
4. In the window in the right, use the drop-down box to associate that logical name with the correct driver session (whatever instrument-specific driver you are using with IVI)
5. Save the configuration
Now you can create a control off of the IVI VIs in LabVIEW and have your logical name appear in the drop-down box. For instance, you can create a logical name called MyDmm, and then associate it with a specific driver session (an HP DMM, for instance). Then make a LabVIEW program using the IVI Digital Multimeter palette, and use this logical name as the input. Later, if you want to switch to a different DMM, simply go into MAX and select a different driver session for the MyDmm logical name. The code should work the same without any changes!
If you have anything to configure for the specific driver session, you can play with the options under Driver Sessions in MAX.
Hope this helps!
john m
Applications Engineer
07-29-2005 11:24 AM
Hi...thanks for helping.
I am using C++, the driver is an IVI-COM. I can talk to the instrument, I'm just not sure how I should keep track of each "channel" on the instrument.
08-01-2005 09:48 AM
08-02-2005 06:58 PM
08-03-2005 11:50 AM
08-03-2005 12:28 PM
hi...
I wrote a wrapper DLL in C++ to interface a client (C) to the dc supply(IVI-COM). I have no problem communicating with the dcps.
Lets say my wrapper exports these functions:
setup(), and reset(). In every function, I create and destroy the dcps object. I just don't think that it is the best way to do this. What if there are 10 channels on the dcps, and I want to program each independantly? I would call the same function for every channel.
Example:
I invoke the function setup() for channel 1; the function initializes and setup the signal for channel 1.
When I invoke the function reset() on channel 1, the function initializes channel 1 again and then I reset it.
The initialization has to happen all the time, I don't want that. I want to initialize channel 1 once when I call setup() or initialize(), then any future action on channel 1 would not have to initialize it again. I want to retain that session handle so that I could pass it to the any function later. Then those functions would just do what they are intended for, like reset or setcurrent or setvoltage; not initialize everytime.
Maybe I'm not asking the right question. Thanks for your responses everyone, and sorry for my lack of understanding of the IVI drivers.
08-03-2005 07:30 PM