Instrument Control (GPIB, Serial, VISA, IVI)

cancel
Showing results for 
Search instead for 
Did you mean: 

Non-IVI instrument drivers

Hi All,
 
         We have instrument drivers such as ARINC card , RS232 ,etc which does not come under IVI specification. Hardware interchangability is not possible. How can we make those instrument drivers an IVI compliant one or a standard one? What are all the steps needed to acomplish this task?
        As i am fresher to this domain completely, i need a detailed answer.
 
Thanks in advance,
 
Regards,
Selva
0 Kudos
Message 1 of 8
(4,438 Views)

The simplest answer is create an IVI driver, which wraps existing your non-IVI driver inside IVI.  However, to make the IVI driver fully IVI-compliant, you must add IVI's inherent behaviours and options such as state-cache, query-instr status etc... plus registration work to IVI Configuration Store (an XML file located in ProgramFiles/IVI/Data directory).  If you have LabWindows/CVI, the instrument driver wizard tool will generate the skeleton project to get started, but you will have a lot work.

Other simpler "standard driver architecture" is VXI Plug&Play driver.  It is the ancestor of IVI-C architecture and simpler than IVI-C.  Although VXIpnp inherent functions shall be still implemented, it is less than IVI and no IVI Configuration registration is required.  However, unlike IVI, VXIpnp driver must use VISA library for its I/O sessions because VXIpnp driver's "session handle" is exactly the VISA handle.  If your non-IVI driver is VISA-based it will be possible to be wrapped by VXIpnp, but otherwise VXIpnp can't be the wrapper.

By the way, which IVI architecture are you thinking? IVI-C or IVI-COM?

このメッセージは 07-10-2007 07:36 PMに Makoto が編集しています。

Message 2 of 8
(4,437 Views)

Thanks for your valuable reply.

Time being, I want to make it as IVI-C driver . Please provide me with the procedure for doing it.

0 Kudos
Message 3 of 8
(4,427 Views)
Message 4 of 8
(4,415 Views)
Do you have LabWindows? It has an IVI driver development wizard that can be used to create an IVI-C driver. If you have some other software development environment, like Visual Studio, or are working in Linux, you'll need a development toolkit. Pacific Mindworks comes to mind as a big player in this market. Their toolkit integrates directly into Visual Studio. I think Agilent has something that works with .NET, but I'm not sure about that. You can find resources at the IVI Foundation.
Message 5 of 8
(4,412 Views)

LabWindows/CVI provides IVI development tools such as Instrument Driver Development Wizard but also testing tools such as the IVI Specific Driver Test Suite which is designed and optimized to test drivers developed using the LabWindows/CVI Instrument Driver Development Wizard. There is also the IVI Installer Creator wizard which takes you through the necessary steps to create a compliant IVI installer for an IVI-C specific instrument driver.

Helpful links:

http://www.ni.com/devzone/idnet/development.htm#ivi

http://zone.ni.com/devzone/fn/p/sn/n24:measurementandinstrumentation.InstrumentControl.InstrumentDri...

 

Message 6 of 8
(4,406 Views)

Hi All,

All the replies really helped me a lot in making IVI-C drivers. Please let me know , the procedures in making IVI-COM also.

It will be great ,if i get this information too as i badly need it.

 

Thanks for all.

0 Kudos
Message 7 of 8
(4,384 Views)

To create an IVI-COM driver, you can't use LabWindows/CVI.  Instead, as I know, at least there are two 3rd party dev tools for IVI-COM -- 1) Pacific Mindworks "nimbus", and 2) Vektrex "Vivid".  Both generate a Visual Studio (C++) project skeleton and provides library modules for IVI-COM drivers.  These tools will greatly help and automate you to create IVI-COM drivers that are "fully-compliant" with IVI spec.

If you don't have none of above IVI-COM library tools, it is still possible to create your driver as a pure VC++/ATL project, implementing all the required IIviDriver, IIviDriverIdentity, IIviDriverOperation, IIviDriverUtility interfaces plus your own IYourInstrXXX interfaces.  You can get design hints from existing IVI-COM drivers by reverse-engineering DLL's TypeLibrary with Microsoft OLE Viewer.  If your IVI-COM driver does not have to be fully compliant with IVI spec (such as for private use), you can skip implementing some IVI-COM inherent behaviours such as State Cache, Query Instr Status, Coercion Check, etc as well as Option String syntax parser in order to simplify the implementation. (These IVI inherent behaviours are provided by the above libraries but it will be difficult if you implement them from scratch.) 

Message 8 of 8
(4,365 Views)