IVI-C vs. IVI-COM Drivers

I have recently downloaded an IVI-C Instrument specific driver from NI's website. For my application, I need a COM layer to communicate with other software that I am developing. If the driver that I had found would have been an IVI-COM driver, all of my problems would have been solved. However, this not being the case, I need some direction. Would it be easier to take the IVI-C driver and create a wrapper on top of it that would be a COM layer? Or should I attempt to rewrite the driver as an IVI-COM driver. Keeping in mind that I have very little experience developing drivers, my first inclination is to use the driver as is, and create another layer. However, if someone has any more knowledge that they could add to this, please d
o so. There must be an easy way to accomplish this, and it must have been done before. Any help is greatly appreciated.
Attachments:
tkawg5x0.c ‏249 KB

Actually, I did some more research and it turns out that the IVI foundation does have a COM spec. However creating an IVI-COM driver is not a trival ask as I had mentioned before so I stand by what I said regarding creating a wrapper.
I wanted to point out that National Instruments offers IVI ActiveX controls to provide a more Visual Basic-friendly programming interface than using standard instrument driver DLLs.
These IVI ActiveX controls as well as VC++ wrappers for IVI classes come with Measurement Studio Full Development System (FDS). For more info, go to:
http://www.ni.com/mstudio

Similar Messages

  • I am using the NI application note "Calling IVI-COM drivers from LabVIEW" I created an Automation Open and an Invoke Node, after wiring

    the 2, the AN asked to right click the Invoke Node(this is step9) and choose initialize. However there is no intialize option on the pop up menu. Anything am I doing wrong? I am using Labview6 and I did add the "enableCustomInterface=True" in the INI-fileThank you for your help.
    T Tall

    the 2, the AN asked to right click the Invoke Node(this is step9) and choose initialize. However there is no intialize option on the pop up menu. Anything am I doing wrong? I am using Labview6 and I did add the "enableCustomInterface=True" in the INI-fileT Tall,
    What's the number of the application note "Calling IVI-COM drivers from LabVIEW"? I'm unable to find what you're looking at.
    Thanks,
    --Bankim

  • NI IVI Soft front panel compatibility with IVI-COM drivers

    Does IVI soft front panels support IVI-COM instruments drivers ?
    For example, I would like to use IVI-COM driver for Tektronix TDS5000 with TestStand...
    Jean-Louis SCHRICKE
    ├ CTA - Certified TestStand Architect (2008 & 2010 & 2014)
    ├ CTD - Certified TestStand Developer (2004 & 2007)
    └ CLD - Certified LabVIEW Developer (2003 & 2005)

    The IVI soft front panels that ship with the NI IVI Driver Toolset do not support calling IVI-COM drivers. The soft front panels support IVI-C drivers. On Instrument Driver Network there are IVI-C drivers for other Tektronix scopes.

  • Agilent's IVI-COM Drivers

    Can TestStand call Agilent's IVI-COM Drivers and how to configurate them with NI MAX?
    "Only a life lived in the service to others is worth living..." - Albert Einstein

    Estonia,
    At the very least, Agilent probably provides a dll interface to calling their driver. You could call those dll functions from TestStand using the C/C++ DLL adapter (or the Flexible DLL Adapter if you are using TestStand 2.0.1 or below). If they provide an ActiveX or COM interface (which sounds highly likely considering the name of IVI-COM) then you can use the TestStand ActiveX/COM adapter to call into these drivers.
    NI MAX is the NI Measurement and Automation explorer. Because these drivers are not National Instrument's drivers there will not be an interface for them to be used within NI MAX.
    Let us know if you have any other questions.
    Regards,
    Shannon R.
    Applications Engineer
    National Instruments

  • Using IVI drivers in LabView 5.1.1

    Hi,
    We have a set of IVI drivers ( class specific and custom specific ) developed in LabWindows/CVI 7 and IVI Compliance package 2.2 version. We want to use these drivers in a new application in LabView 5.1.1 version. I want to use the class specific drivers through the IVI class drivers in LabView 5.1.1 so as to cater for the interchangeability aspect configuring the logical names in MAX. Finally I would be creating an Installer with executable and distributing it.
    I want to clarify few issues.
    1. Please let me know whether I need to install any other software's apart from NI DAQ, IVI compliance package 2.2 and the Installer in the User PC. Does the IVI engine, Tool set, Class drivers for LabView 5.1.1 come with the compliance package?
    2. Does MAX 2.1 support IVI drivers, interchangeability through class drivers and compliance package 2.2 or should I use MAX 3.0 for best results?
    3. When I import a IVI driver (developed using IVI compliance package 2.2) to LabView 5.1.1 and try to use the functions there are some problems in the functions. As per the IVI specifications 3.2, functions GetErrorInfo and ClearErroInfo are changed to GetError and ClearError. But it shows error in the functions at those points and we have to go to IVI Error Converter.vi and change the configuration of the library node and direct it to the GetError function. Do we have an alternative to avoid this process?
    It would be of great help if somebody can clear these issues.
    Thanks & Regards,
    Siddu

    1.  The IVI Compliance Package (ICP) 2.2 installs the IVI Engine and Class Driver support for LabVIEW 7.0 and 7.1.  It does not install Class Drivers for LabVIEW 5.1.
    2.  ICP 2.2 requires MAX 3.0 to get the IVI interchangeability provider in MAX.
    3.  LabVIEW 5.1 was released before the official IVI specifications 3.2 were approved.  Prior to 3.2, the function names were GetErrorInfo and ClearErrorInfo.  Those changed to GetError and ClearError.  The LabVIEW wrapper generation tool that shipped with LabVIEW 5.1 is not aware of these changes.  Therefore, my suggestion is to upgrade to a later version of LabVIEW so that you will have support for the current IVI specifications and class drivers.

  • Agilent 34980A simulation using IVI-drivers in Teststand?

    Hello! I am unable to simulate 34980A in TestStand and here are some results based on testing:
    Agilent 34980A is linked to logical name SampleDmm. Simulate With: Specific Driver.
    IviStepTypes.seq used with only DMM and Switch steps.
    Using IviDMM IVI-C causes runtime-error in Ivi DMM Configure Single Point: Component Works IVI Control Error: The IVI Configure operation failed for logical name 'SampleDmm'. Details: Extension capability not supported by instrument driver.  (Base)
    Using IviDMM IVI-COM causes runtime-error in Ivi DMM Read Single Point: Component Works IVI Control Error: The IVI Read operation failed for logical name 'SampleDmm'. Details: Attribute ID not recognized. [IVI Error Code:  BFFA000C] Source: TSIviStepTypes
    Skipping Ivi DMM SFP -step removes that error but next one waits in Ivi DMM Configure Multi Point: Component Works IVI Control Error: The IVI Configure operation failed for logical name 'SampleDmm'. Details: Attribute or property not supported. [IVI Error Code:  BFFA0012] Source: TSIviStepTypes
    Skipping multi point steps helps until Ivi Switch Connect where another error hits: Component Works IVI Control Error: The Connect operation failed for logical name 'SampleDmm'. Details: No path was found between the two channels. [IVI Error Code:  BFFA2011] Source: TSIviStepTypes
    I find some similarities in forum post that involves HP 34401A and IVI .
    According to IVI-C Class Driver Support for IVI-COM Specific Drivers the fault might be in 64 bit system (the note in the end). Is this the case? I can't use IVI-COM-drivers in 64bit system?
    Example's default DMM Hewlett-Packard 34401A Digital Multimeter simulation works perfectly in unmodified example(it has IVI-C). It even shows simulated numbers in the SFP which is zero all the time with Agilent.
    Has anyone succeeded to simulate 34980A properly in TestStand? Any knowledge about how to solve this thing? Any help is welcome. Thank you.
    Setup:
    -Teststand 5.1
    -Windows 7 64bit
    -IVI shared components 2.2.1
    -Visa shared components 1.5 64bit
    -Agilent IO libraries suite 16.3 Update 1
    -Agilent 34980A IVI Driver 1.5.3
    -MAX/Agilent 34980A published APIs:
        -IviDmm 4.1 IVI-COM (IVI-C tried with less success)
        -IviSwtch 4.0 IVI-C & IVI-COM

    Some IVI drivers are designed to work in simulation mode, that is, the virtual instrument can be defined in MAX but no physical instrument is necessary to use the "instrument". If you turn off the simulate checkbox on the validate dialog box, TestStand will create the instrument session without simulation and the driver will attempt to talk to a physical instrument. If no physical instrument definition is available or if the address defined for that virtual instrument is incorrect, the above error can occur.
    Scott Richardson (NI)
    Scott Richardson
    National Instruments

  • IVI-COM verdor-specific common interface

    I am in prototyping two IVI-COM instrument drivers
    that are for similar two DC supply models. They both have a common extended functionality but it is beyond
    the IviDCPwr class specification.
    I am considering to implement them for each of
    public instrument-specific interfeces, and at the
    same time, implement with a hidden common interface
    that is commonly used for both models with the
    QueryInterface trick. The approach I am thinking
    is similar way as IIviXXX interfaces.
    Is it allowed by IVI-COM specification or is there
    any recommended approach?
    thanks,
    Makoto

    Makoto,
    You can actually create a family driver for those DC Power Supply instruments. Essentially, you create one IVI-COM Specific Driver that supports multiple instruments.
    Implementation details of any particular interface is not defined by the IVI Foundation for IVI-COM or IVI-C drivers, except where it pertains to overall IVI architecture. You can most certainly use common-code in your internal implementation.
    Thanks,
    --Bankim
    Bankim Tejani
    National Instruments

  • Cannot create a session of an IVI using IIviSessio​nFactory in VB6

    With a valid configuration within MAX 3.0.2, using the following code produces a run-time error...
    Dim Factory As New IviSessionFactory
    Dim Dmm As IIviDmm
    Set Dmm = Factory.CreateDriver("HpDmm")
    Dmm.Initialize "HpDmm", True, True
    The above code snippet never gets past the SET no matter what instrument is used. If the instrument is referenced directly in VB6 everything is fine but it is then bypassing the whole idea of the configuration store and the ability to interchange.
    The response from the code is always...
    Run-time error '-2147217149(80041103) IIviSessionFactory: Software Module (hp...) has no Prog ID
    This is despite the fact that a Prog ID is not necessary according to the IV
    I Foundation specs.
    OS is Windows XP Pro and ICP2.1 is installed - HP3458A and 34401A IVI compliant drivers were used.

    I encountered the same problem using the NI IVI-C driver for the hpe364xa PSU driver. However, after reading this article I downloaded an IVI-COM compatible driver from Agilent for this instrument and my code (similar to above) worked fine. Agilent have many other IVI-COM drivers available if you prefer to use the session factory. Especially as the Measurement Studio for VB doesn't yet seem to have ActiveX controls for the later IVI classes such as RF_Sig_Gen, Power Meter and Spectrum Analyser.

  • How to realize PXI-IVi

    My Dear friends:
            I feel very blue. Could you help me?
            The case is: We have had a suit of ATE, based on PXI2575, PXI 2569, PXI 6723, PXI 4070. In addition, the TPS developed on MFC has been finished by others.
    Now, my tutor asked me to study of “interchange of instrument” based our ATE. I look up some material on the Internet, some books in the library and read  some papers. However, it takes no effects and some information is opposite. Here are always some questions puzzling me:
    The difference of VISA lib and VXIplug&play drivers? Can we control the instrument cards only by the VISA lib and specific SCPI sentences? You know that the instrument vendors only supply us with driver programs but SCPI, so that we can only use the VISA functions. How can we solve the problem?
    What’s more, even if we can use VISA lib and specific SCPI to control the instruments from the vendor, can we use them to control the instruments supplied by other vendors? 
    The standard of VISA and IVI?  Is IVI built on the basis of VISA lib or the VXIplug&play drivers?
    Our programs encapsulates “Class CDriveFunc”(the affix) and we can call the functions in other places. Then I only need to set the logic names adapted to the instruments (such Dev12-PXI 2575) and it will make the equipment to operate well.
    Can you tell me our program is based on IVI or VISA lib?
    Do our TPS realize the IVI ?
    Giving that my ATE is based on IVI, does it mean that if my ATE is installed with another compatible instrument card, my TPS will not be modified and I only need to change the relevant logic names of the instrument cards to make the TPS work well?
    If I only need to convert the logic names, which place is allowed I to set them? In the MAX of NI, whether need I develop a platform? Another case is that if my instrument card is not from NI corporation, which measures should I take?
    Can my ATE based on IVI adapt to any platform, such as VXI, PCI, even GPIB? And if I want my ATE based on PXI to work well based VXI or PCI, what can I do?
    If my ATE used the PXI controller, does it mean that I must install the NI-VISA? How can I guarantee my ATE used by another board work well?
    If the board I used does not belong the standard class, such as PXI 6723(AO board), boards for communication(RS-232), what need I do?
    8.       What differences are between the Labview/CVI, measurement studio and VC++?
    My development is VC++ 6.0, can it support IVI?
    At last, I am moved if you can answer some questions above or give me some suggestions to me? If you come to Beijing, please remember to contact with me.
    Thanks a lot!
                                                                 A loser from Beijing
    Attachments:
    DriveFunc(cpp).txt ‏4 KB
    DriveFunc(h).txt ‏21 KB

    Good Morning Sir,
                                      Can you tell me, what all changes you have done in PLL.vi to run in fpga 7831R? Did your problem got sorted out?

  • The type library information for 'TestStand IVI Step Types' was not found (Error code: -18351)

    Hi,
    I get the error in the message subject when I add an IVI-C step (no matter IVI Power Supply, IVI Dmm or others) and try to edit the step by pressing Ctrl+E (or double-click the step and click "Edit IVI Power Supply" for instance).
    I have installed 2 IVI-C libraries that I downloaded from 'NI idnet' both with IVI technology (namely agn330xa_MS.msi and agn6700_MS.msi). They can both be seen in Add/Remove programs under "NI IVI Specific Drivers" group.
    The error message says "Make sure the server is registered".
    Does anybody know what server is it complaining about and how can the registration be done?
    Regards,
    S. Eren BALCI
    www.aselsan.com.tr
    Attachments:
    error 18351.jpg ‏66 KB

    Hi ebalci,
    I believe this error is occurring because the ActiveX components that are used by the IVI step types are either not properly installed or not properly registered.  I would recommend first making sure that the IVI compliance package and NI-VISA are installed on the system.  If both of these are already installed, I would recommend running the TestStand Version Selector because this should re-register the ActiveX components used by the IVI step type.  The TestStand Version Selector can be found by going to the Start Menu>>Programs>>National Instruments>>TestStand 3.5.  You will need to select the version of TestStand you want to use and click the "Make Active" button.  I have also pasted links below to VISA and the IVI compliance package.  Hope this helps!
    NI-VISA
    IVI Compliance Package
    Pat P.
    Software Engineer
    National Instruments

  • Can't see IVI catagory in MAX

    Hi All
    I got a problem with MAX and IVI
    I have installed IVI Compliance Package 3.3 And I can see under the Category "Software" i MAX, but I can't see the IVI category in MAX.
    What can be wrong? I have tried to repair my installation with no result.
    I also got these programs installed:
    IVI Shared Components
    IVI VISA COM Standard Components
    National Instruments IVI Specific Drivers
    National Instruments Software
    BTW, what do you thing of using IVI drivers instead off VISA?
    Hope you can help
    best regards
    Bjarne
    Solved!
    Go to Solution.

    Hi Bjarne,
    You can try to remove the IVI Compliance installation from the Add/Remove Programs.
    Reboot.
    Then Download DAQmx8.8: http://joule.ni.com/nidu/cds/view/p/id/1085/lang/en and install it(by doing this you are upgrading MAX aswell).
    Reboot.
    Install IVI Compliance Package 3.3 again.
    Please let me know how it goes.
    Thanks!
    Dennis Morini
    Field Sales Engineer
    National Instruments Denmark
    http://www.ni.com/ask

  • Where can I find IVI-C class compliant header files

    I have installed the IVI files from IVI foundation website but the installation only includes all the files for IVI-COM not IVI-C.
    I'm looking for the class compliant header files, IVIdmm.h, IVIscope.h, IVIspecana.h etc the ones in the include directory are all for COM, ie  IVIdmmTypeLib.h
    I asked the question on the IVI foundation forum and they said IVI-C has nothing to do with them it was being maintained by National Instruments.
    So does NI have a download for these files?
    Solved!
    Go to Solution.

    I think someone at the ivi foundation is lying but of course NI has them.
    http://www.ni.com/download/ivi-compliance-package-4.5/3065/en/

  • Error when editing IVI Scope Step in TestStand 3.1

    When I open the edit box for an IVI Scope Step in TestStand 3.1 I get the following error: Method '~' of object '~' failed (-2147417851).  I get the same error again when I click on the Logical Name dropdown box in the edit window.  I have an IVI logical name of 'TekScope' in MAX that was created when I installed the IVI drivers for a Tektronix DPO7000.
    Software Installed: TestStand 3.1, NIMax 4.3, NI IVI Compliance Package 3.2, Windows XP Pro. SP2
    It seems that TestStand is unable to communicate with MAX.  I don't think it is a version compatibility problem because I had the same problem when using MAX 3.1.1.

    Nick,
    Thanks for the reply.  This problem went away when I opened the IVI example sequence that is installed along with TestStand.  It has not repeated since.  I can now access my defined 'TekScope'.
    I am having a problem getting the IVI code to run in simulation mode.  I modified the TestStand 3.1\Examples\IVI\IviStepTypes.seq file to change the Fileglobals.ScopeLogicalName value to TekScope which is the scope name in the dropdown box for edit IVI tools.  I then selected the scope steps and selected Run Selected Steps.  I get the following error:
    An exception occurred calling 'RunStep' in 'ISubstep' of 'TestStand Ivi Step Types'
    An error occurred while executing the step.
    IVI Error: The IVI instrument failed to initialize for logical name 'TekScope'.
    Details: TekScope_InitWithOptions returned an error: -1074134964 (0xbffa004c). The option string parameter contains an entry with an unknown option value.
    Source: TSIviStepTypes
    -1074134964; User-defined error code.
    In MAX the TekScope.DriverSession - Simulate With setting is nisScope, Driver Setup is blank.

  • Where can I find "IVI Engine Version 1.83"?

    Hello
    Where can I find "IVI Engine Version 1.83"?
    Thanks

    ftp://ftp.ni.com/support/instr_drivers/multienv/ivi/windows/previous/IVI%20Engine%201.83/iviengine183.exe

  • Agilent E364XA IVI driver does not support measurement of 2nd channel?

    Hi,
    just downloaded the IVI driver for Agilent programmabel power supplies E364xA. It's supposed to support also the E3646A, a dual power supply. In my case there are two of 'em, connected via GPIB. I've configured 'em in MAX and have set up logical names, driver sessions and hardware assets. The two driver sessions use the hpe364xa as software module, the hpe364xa_32.dll as module path and show a whole bunch of supported devices, amoung of is also mine. I've set up two virtual channel names each for both driver sessions (4 channels over all). I can set the output voltage of both channels properly, but cannot read the voltage back. Get always the voltage level for the 2nd channel of the device. Hav
    e tried measuring both or just one channel, it always returns the voltage of ch2, either two times a very narrow level or just one result.
    Any idea?
    BTW, this happens both in LabVIEW 7.1 and in TestStand 3.0
    Greetings from Germany!
    Uwe Frenz

    Hi,
    the problem is that function does not set active channel. This function measure value from your last configured channel. For example: If you set volatge on channel 2, the measured value should be from this channel, if you set volatge on channel 1 before measurement, measured value should be from channel 1. :-(
    I attached fixed source code and DLL. Please try it, and let me know if the problem is fixed. I don't have instrument so I cannot test it. My email is [email protected] . Thanks.
    you should copy these files into [IVI] directory. The default path is C:\Program Files\IVI
    hpe364xa_32.dll => [IVI]\bin
    hpe364xa.h => [IVI]\include
    hpe364xa.c => [IVI]\Drivers\hpe364xa
    Zdenek
    Attachments:
    hpe364xa.zip ‏70 KB

Maybe you are looking for