IVI-c IVI-COM

Hello!
I have to bild an Application witch works with different Spectrumanalysers from diffrent Vendors.
So lets use IVI! But the Problem is, that one Vendor uses IVI-COM and the other IVI-C. Is there an easy solution I don't see.
Lg Bernhard

As I supposed.
Thanks a lot, so I stop searching....
Lg

Similar Messages

  • Creating an "IVI session" using COM

    I am trying to program NI's RFSG from a COM client with LabVIEW acting as the COM server.
    An niRFSG initialization vi requires as one of its inputs a wire of type "resource name (IVI session of class niRFSG)". Passing the resource name as a string (e.g. "pxi1slot2") doesn't work because of type mismatch. Which COM component can I use in my client to create an object of type "resource name" from its human-readable name?
    Where is information like this documented?
    Thanks!
    Solved!
    Go to Solution.

    Hello f28,
    Your assertion that LabVIEW automatically casts the strings passed into the resource input of VIs which use a device’s resource name is correct, and can be noticed by the little red “coercion” dot which appears at that VI’s resource name input terminal. 
    So, we must find a way for you to take strings from Python and make them “IVI session of class niRFSG” data type.  I believe that [Class Prefix]_InitWithOptions from the IVI Function Tree would get you the correct data type, but I am not completely sure (possibly something for you to try out).  Unfortunately the C API and LabVIEW API are the only ones that are documented for IVI (unless you also have Measurement Studio for .NET installed).  So, I think that the easiest (and less research-intensive) way of going about this would be to just create other VIs which will convert strings to the appropriate IVI class for you.  Attached is one such VI, which is just composed of a String Control and an IVI Class Session Indicator.  The indicator’s class was selected by right-clicking on in, and selecting Select IVI Class » IviRFSigGen » niRFSG.You could possibly use this VI (and other VIs for other IVI-specific classes) instead of calling directly into the COM component.  It may be a little easier since it looks like you are already calling into VIs in order to use the RFSG driver.  Would this meet the requirements of what you are trying to accomplish?The guide to the IVI documentation should be installed on your machine under Start » Programs » National Instruments » IVI » IVI Driver Help.  Like I mentioned though, nothing about COM in here, but LabVIEW and C instead. Also, you should beware that calling into the RFSG library from LabVIEW will not circumvent the fact that the driver is a 32 bit DLL at its core… In other words, calling it from LabVIEW will not make it a 64 bit application any more than calling the C API… unless I am missing something here…
    Chris_G
    Sr Test Engineer
    Medtronic, Inc.
    Attachments:
    StringToIVIRFSigGenClass.vi ‏6 KB

  • 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 questions with DMM and SWitch

    I am trying to simulate an NI-4060 DMM and numerous SCXI-1129 cards using the IVI drivers in CVI.
    Of preference I want to setup the simulation in MAX rather than programmatically in my application. I have numerous questions:
    Is there a document that shows you how to setup MAX to simulate an IVI instrument??? Everything that I have read so far talks about the architecture, how wonderful IVI is what you can do etc, but NOT EXACTLY HOW you set-up MAX - one document briefly touched on this but with no detail whatsoever. There seems to be a lot of assumed knowledge in all the docs.
    If I try and configure in MAX I can get the DMM working, but the exact same steps give an error for the switch cards in my application. An
    y ideas?
    How do I use Soft-panels from my application?
    If I am programmatically using an InitWithOptions which seems to be the only way to get the Switch cards to simulate what is the expected syntax or options for the "DriverSetup" string????
    I am using NI-DAQ 6.9.0f7 and IVI 1.61 with CVI 5.5 on NT 4.0

    Ricardo,
    There is a document on our web site on how to configure your IVI system in MAX and also how to simulate your hardware in LV and CVI using IVI drivers:
    ni.com>>Resource Library>>Instrument Connectivity>>Instrument Driver IVI
    or
    http://zone.ni.com/devzone/devzone.nsf/webcategori​es/5FB594A1C20D93E3862569FD0071D18A?opendocument
    This should point you in the right direction. I will continue to gather information and post what I find!
    Best Regards,
    Chris D
    Applications Engineer
    National Instruments

  • I want to call the DMM- SFP from Teststand using IVI

    Hi I have a Teststand 3.0 system with a NI-PXI 4070, and I want to call the DMM-SFP from Teststand using the IVI driver architecture. Unfortunatley I cannot figure out how to link the DMM-SFP to the Logical name.

    ADL,
    If you are using the TestStand IVI step types, after you have added the logical name in MAX, you can insert an IVI DMM step type. Then right-click on the step and choose "Edit IVI Dmm". You should be able to choose from the Logical Name Ring Control the logical name you created in MAX.
    If you haven't added the logical name into MAX, depending on what version of MAX you have, you can refer to Using Measurement & Automation Explorer 2.x to Configure Your IVI System or look in the IVI help that comes built into MAX 3.0.
    If you checked there already or have another question, please let us know!
    Regards,
    Shannon R.
    Applications Engineer
    Nati
    onal Instruments

  • Using IVI-C attibutes in TestStand

    Hi,
    While using LabWindows/CVI IVI-C drivers in Test Stand, we found a difficulty in giving the value to the attribute parameter for the functions. For e.g., With ividmm.dll in C:\Program Files\IVI Foundation\IVI\Bin, choosing IviDmm_ConfigureMeasurement as function name, found very difficult to find the value to the "measurementFunction" parameter. We need to go to the header IADdmm.h, calculate the value of the attribute value and pass here.
    Is there any better way of doing this in Test Stand?
    Thanks
    Selva

    Why dont you use the IVI step type for DMM?
    Regards
    Ray Farmer

  • NI4882 equivalent command for the IVI formatted488IO ReadList command.

    I need an NI4882 equivalent command for the IVI formatted488IO ReadList command.
    This is what I have:
    using Ivi.Visa.Interop;
    using Ivi.Driver.Interop;
    formatted488Class = new FormattedIO488();
    formatted488Class.WriteString("LDATA");
    object response = formatted488Class.ReadList();
    What I need is an equivalent when instead of the IVI DLLs (Ivi.Visa.Interop and Ivi.Driver.Interop), I want to use NationalInstruments.Common, NationalInstruments.NI4882 and NationalInstruments.VisaNS.
    I.e.:
    NI4882.Device.Write("LDATA");
    and then call:
    NI4882.Device.ReadString() or NI4882.Device.ReadByteArray()
    Problem is I don't know how many bytes or strings are to be read, and even if i knew it would not help because it would still not behave the same way as IVI's Readlist.
    Can anyone point me in the right direction?
    Thanks,
    Cris

    Yes, I was using ReadString. Unfortunately, it only returns 128 values of 1000, which is what I need. If you do not specify the number of values to read, i.e,. ReadString(int numberOfBytes), it assumes a default number of 128. However, I found a solution which is more of a workaround. I read the first 128 values, and it so happens that the instrument returns as a first value the number of values to be read (1000). So I read the rest of the values in a loop. Not elegant, but it seems to work for me.

  • ViClose session not called after Read operation Timeout in an IVI COM driver

    Hi everybody
    I have a small VI sample that is initializaing an IVI COM driver for an OPM instrument, set some parameters into the instrument then is doing a single Read power measurement. My Read operation receives a single parameter called MaxTimeout that user could change depending on his own interest. Inside the Read function I change temporarily the VISA query timeout to user timeout but at the end of Read operation the original VISA session timeout is reverted to its original value before Read operation was called. If the Read operation timeout is long enough for the Read operation to complete ( 100 ms or more) the VI is doing its job and when finished the viClose is called twice for DefaultHandler and for OpenHandler.
    If the Read operation timeout value decrease ( 50 ms) then Read operation could not be completed and a Read Operation Timeout error is thrown from inside this method. This error is then propagated trough Error path until the VI end in a Simple Error Handler. Now on my VI I close all open references to my driver interfaces but I don't know why VISA itself is not calling viClose on the DefaultHandler and OpenHandler as in the case when was no VI error. I could see all these diferences in my NI Spy window and I could post this if that could be of any help. Bear with me cause I am more a C, C++, VB programmer and much less of a LabVIEW programmer. BTW the Error Handling from LabVIEW looks a a little weird and the only sure thing is that I wired in Error In and Error Out path in all my VI calls. What kind of error handling should I perform on the Read method in order for VISA to close properly both OpenHandlers even if there is an error in my VI?
    Thansk
    sorinvalea

    So viClose is not called by VISA after an error takes place in a VI that is calling some operations on an IVI COM driver.
    I discovered that all VI sessions opened trough VI that encountered a timeout error in Read operation and that were not properly closed after VI completed are in fact viClose by the LabView itself when I am closing LabVIEW application.
    So these left over open vi sessions are kept aside by LabVIEW until it closes itself and then clean them one by one by calling viClose on them....

  • I need IVI - COM example, can helpOr where can I find

    Very hope to get IVI - COM example, requests for help~~~~

    http://ivifoundation.org/downloads/IVI%20GSG%20201​2/IVI%20GSG%20C++%20MAR2012.pdf
    Jeff

  • 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.

  • Accessing IVI-COM Driver through TestStand ActiveX Steps

    Hello
    I need to control a Agilent 6691 PowerSupply with TestStand. For this PowerSupply only an IVI-COM Driver exists, no IVI-C Driver. I tried to access it with the ActiveX Adapter Step. But when I try to create a IAgilent66xx object it produces an error without an meaningfull error message.
    Is there any way to get this working ?
    Thanks
    Olli

    Hi !,
    - I am working on similar need (using Tek scope IVI-COM driver) and currently facing some problems, I was looking for help and saw this thread of discussion almost two year old. Is there any solution to this problem that is now found within two years ?
    - I am trying to use IVI-COM driver for scope using ActiveX/COM adapter in TestStand (Ver. 3.5) and when I try to execute sequence I get message as ""Attach to Active Object" in automation call failed. Operation unavailable". Attached is sequence file I am working on.
    Attachments:
    Tek_scopeIVI.seq ‏21 KB

  • 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

  • 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

  • IVI-COM Vi's or property nodes?

    I'm fairly new to IVI-COM instrument drivers and have up until now been using the supplied IVI-COM Vi's for the instrument I'm doing a driver for. However I'm finding that more and more it's making sense to just use a property node to set things such as Start Frequency etc so I'm thinking I might just use them for everything from now on.
    All I really want to know is are there any major issues with doing this - and is it something is recommended to be done - just really want reassurance that if I take the route of using property nodes I won't get bitten on the arse by something that I don't know about.
    Any thoughts happily received,
    David Clark
    CLA | CTA
    CLA Design Ltd
    Hampshire, England

    Hi David,
    I'm guessing that you've got a bunch of LabVIEW vi's from the vendor - that are basically wrappered IVI-COM calls? (If you can tell me where to download the driver from I can look in more detail). The low level IVI-COM calls will just use ActiveX (so property nodes and invoke nodes) to access the COM object.
    Whether you use the wrappered vi's or the lower level calls is up to you, it will depend on the level of flexibility that you require. For some configuration settings for the instrument there might not be a ready built vi - so you may have to use the lower level calls to acheive it.   (A bit like the usual plug and play instrument drivers, versus low level calls directly using VISA - which may or may not give you an idea - depending on whether you've used them!).
    Take a look at the following tutorial which might give you some more pointers:
    http://zone.ni.com/devzone/cda/tut/p/id/4505
    I guess one point to bear in mind is that the vendor can at any time change the ActiveX methods and properties with a new release of the driver (a bit like Microsoft have done in the past with things like media player and office) which may leave code you've generated with broken wires, if you are using their wrappered vi's then its possible that they'll keep the wrapper and change whats inside so that its seamless to the end user. - (Its also possible that they could update the automation servers version number which would result in a non working vi - but may not result in broken wires, working with the vendors LabVIEW API should solve these issues - since they will have re-linked them specifically to each version)
    Another factor that should help you make up your mind is how well documented each of the options are - they may have put more time into the friendly end user vi's than they have to the API?
    But if you're generating your own driver, then it will probably be more useful to you to strip away some of the abstraction to get more efficient results.
    I hope this helps - perhaps other members of the NI community can give you their experiences
    Hannah
    NIUK & Ireland

Maybe you are looking for

  • Supporting Multiple domains in IM&P with and Expressway deployment?

    Hello everyone. This is long winded but the context is needed to explain what I'm looking for. Any help is appreciated. My customer has piloted IM&P for 1 year now and is looking to take it to the next level. They purchased Expressway Core & Edge and

  • Java.lang.Exception: org.hibernate.AssertionFailure: scrollable result sets

    Hi All, I am using Oracle 11g and I am trying to delete some records from database using some GUI. In that case I am getting following error: java.lang.Exception: org.hibernate.AssertionFailure: scrollable result sets are not enabled. When I restart

  • Feature Wish List

    I been using FormCentral for a couple of weeks now and I just wanted to share my thoughts on the features I personally miss the most. Design: Calculations: We use forms for lots of stuff, but one of them is ordering stuff internally between departmen

  • Help to show a HTML file in Swing

    Hiiiiiiiiiii, During my development Me in a problem . Please help me out. As per my current context of the project I have to develop a HTML page with Help of CSS and all other things. After that I have to Show the HTML file through Swing. I know how

  • Check Printing FBZ5/ F-58

    Hi all,    I am using these two transactions for check printing. How to print check from it. I am creating smartform. How can i attach this to the transaction? Thanks in advamce