Agilent Technologies

Agilent 34980A IVI-COM Driver Read Me

***********************
**** Read Me First ****
***********************

Version 1.3.10.0
July 16, 2007

Introducing the Agilent IVI-COM Driver for the 34980A Multifunction Switch/Measure Mainframe and Modules for Use With NI Switch Executive
-------------------------------------------------------
This instrument driver is a special release intended for usage with the NI Switch Executive
product. This version exposes the IviSwtch interface in a manner that is preferable
for usage with the NI Switch Executive product (Version 2.0 or higher).

The instrument driver provides access to the functionality of the
Agilent 34980A Switch/Measure Unit through a COM server which also complies
with the IVI specifications. This driver also presents an IVI-C driver via
the ag34980a.dll. This driver works in any development environment which
supports COM programming including Microsoft® Visual Basic, Microsoft
Visual C++, Microsoft .NET, Agilent VEE Pro, National Instruments LabVIEW,
National Instruments LabWindows, and others.


Supported Instruments
---------------------
Frame:
34980A

Module:
34921A
34922A
34923A
34924A
34925A
34931A
34932A
34933A
34937A
34938A
34941A
34942A
34945A
34946A
34947A
34950A
34951A
34952A
34959A

IVI-C Driver with Visual Studio
-------------
If your tool or compiler is not able to find the file “” (which is in the Ag34980a.h file), you will need to point
your compiler to that include file. In Visual Studio .NET 2003, this file often resides in the “…PlatformSDK\include”. For
example, in VS .NET 2003, the directory is:
C:\Program Files\Microsoft Visual Studio .NET 2003\PlatformSDK\include”

Upgrade NOTE !!!!!!!!!
----------------------------------------------------
The following applies only to the IVI-COM driver; IVI-C driver users can ignore this message.

If you are upgrading from an older revision of the driver (like 1.0.1.0), *AND* you
used our older IVI-COM programming examples as a programming guide, *AND* you wrote your
application in Visual Studio .NET CSharp or VB7, THEN your application may error when trying
to run on this new(er) version of the driver. The problem is the way we declared the variables
that are used to instantiate the driver object, and the fact that we later revised the COM
interface of the driver. The older driver had an interface IAgilent34980A, and the new driver
(because of the COM interface change) has two interfaces: IAgilent34980A and IAgilent34980A2,
with the one ending in "A2" being the new "default" interface.

C# Fix:
---------------
The older CSharp programming examples instantiated the driver object as follows:

IAgilent34980A host = new Agilent34980A();

which tries to use the driver's "default" interface. But when the driver was revised,
the default interface became IAgilent34980A2, which causes the above line of code to fail
because the needed type declaration is now: IAgilent34980A2 host

The updated examples included with this driver install (and on the instrument web site at
http:\\www.agilent.com\find\34980 ) use a more tolerant type of declaration that should
work in the future, even in the (unlikely) event that the interface is changed in the future.
That declaration now uses the Class instead (which contains all interfaces, past and present).
We bumped the interface up to A2 in these examples, but even if there should later be an A3,
this type of declaration will still work (and use the A2 interface), so your applications won't
error due to some future upgrade:

IAgilent34980A2 host = new Agilent34980AClass();

Csharp users with applications that error due to the situation described above will need to
change the declarations as noted above and re-build their application.

VB7 Fix:
---------------
The older VB.NET examples suffered from a very similar problem, again due to the way the object
was instantiated and declared. The old code looked like this:

Dim host As Agilent.Agilent34980A.Interop.IAgilent34980A

host = New Agilent.Agilent34980A.Interop.Agilent34980A

The correct declaration is below:

Dim host As New Agilent.Agilent34980A.Interop.Agilent34980A

Visual Basic .NET users with applications that error due to the situation above will need to
change the declaration to the single line declaration shown above.

VB 6 Fix:
-----------
Similar problem with VB6, the old declarations look like this:

Dim host As IAgilent34980A

Set host = New Agilent34980A.Agilent34980A

The correct declaration is:

Dim host As New Agilent34980A.Agilent34980A


Our sincere apologies to those affected by any of these situations.


Installation
-------------
System Requirements: The driver installation will check for the
following requirements. If not found, the installer will either
abort, warn, or install the required component as appropriate.

Supported Operating Systems:
Windows NT® 4.0 (SP6 or later)
Windows® 2000
Windows XP

Shared Components
Before this driver can be installed, your computer must already
have several components already installed. The easiest way to
to install these other components is by running the Ivi Shared
Components installation package available from the IVI Foundation
as noted below. It installs all the items mentioned below.

IVI Shared Components version 1.1.3.0 or later.
The driver installer requires these components. They must be
installed before the driver installer can install the driver.

The IVI Shared Components installer is available from:
http://www.ivifoundation.org/Downloads/SharedComponents.htm

To install, open or run the file: IviSharedComponents.msi

If the driver installer exhibits problems with installing the IVI
Shared Components, find the program IviSharedComponents.msi and
Run the program. It is able to install many of the required system
components, including Windows Installer 2.0.

Windows Installer
Version 2.0 or later. The IVISharedComponents.exe program will
install version 2.0 of the Windows installer.
It is also available from:
For Win98/Me:
http://www.microsoft.com/downloads/release.asp?ReleaseID=32831
For WinNt4/2000/XP:
http://www.microsoft.com/downloads/release.asp?ReleaseId=32832

Microsoft XML 4.0
The Configuration Server, an IVI Shared Component, uses Microsoft's
XML 4.0 parser. The IVI Shared Components will install the XML 4.0
parser. You can download the parser and its associated SDK from:
http://microsoft.com/downloads
Enter "xml 4.0" as keywords.

Microsoft HTML Help Viewer (Win98, WinNT) Version 1.32 or later
The driver will install without the help viewer, but you will not
be able to use the help file for the driver. You can download the
help viewer from:
http://microsoft.com/downloads
Enter "html help workshop" as keywords

MS Windows® Script
Typically, wscript.exe is installed as part of the operating system
or with Internet Explorer. If you see an error about wscript.exe,
you need to install the Windows Script.
Download from:
http://msdn.microsoft.com/downloads
Enter "windows script" as keywords. Use the one appropriate for
your operating system.

VISA-COM
Any compliant implementation is acceptable. Typically, VISA COM is
installed with VISA and other I/O library modules.

If you are using Agilent Technologies' VISA COM, use
version 2.4.0.4 or later. The latest version of Agilent's IO
Libraries includes the required version of VISA COM.

I/O
If you are using Agilent Technologies' IO Libraries, use version
M.01.01.04 or later. You can download the latest version from:
http://www.agilent.com/find/iolibsforivicom

If you are using National Instruments I/O libraries, use NI-VISA
version 3.0.1 or later and NI-488.2 version 2.2 or later.

Sending commands directly to the instrument (bypassing the driver)
via Direct IO using the System.IO interface will not work with Agilent
IO Libraries prior to Agilent IO Libraries Suite 14.0.

Note: This driver supports a form of simulation used by NI Switch Executive,
but this simulation is only used by the NI Switch Executive and nowhere
else. The "Getting Started" section of the Agilent34980A.chm (help file)
has a section on using this driver with NI Switch Executive. Please
read there for more information.


National Instruments Switch Executive
If you intend to use the driver with NI Switch Executive, then
you must use version 2.0 or greater of that product.


Additional Setup
----------------
.NET Framework
The .NET Framework itself is not required by this driver. If you
plan to use the driver with .NET, Service Pack 2 is required.
Download from:
http://msdn.microsoft.com/netframework/downloads/updates/sp/default.asp

The .NET Framework requires an interop assembly for a COM
server. A Primary Interop Assembly, along with an XML file for
IntelliSense is installed with the driver. The driver's PIA, along
with IVI PIAs are installed, by default, in:
<drive>:\Program Files\IVI\Bin\Primary Interop Assemblies

The PIA is also installed into the Global Assembly Cache (GAC) if
you have the .NET framework installed.

If you install the .NET framework later, you can use the file:
<drive>:\Program Files\IVI\Drivers\<your driver>\DotNet.bat
to put the driver's PIA into the GAC and properly register it.


Start Menu Shortcuts
--------------------
A shortcut to the driver help file is added to the Start Menu,
Programs, IVI, Agilent34980A group. It contains "Getting
Started" information on using the driver in a variety of programming
environments as well as documentation on IVI and instrument specific
methods and properties.

You will also see shortcuts to the Readme file and any programming
examples for this driver.


Help Files and Examples
------------
The IVI COM help file and IVI-C help are both combined into a single help file, Agilent34980A.chm,
located in the directory:
<drive>:\Program Files\IVI\Drivers\Agilent34980A

Some getting started example programs are contained in the help files. For more
examples on programming the instrument, please see the instrument Web page at
www.agilent.com/find/34980.


MSI Installer
-------------
The installation package for the driver is distributed as an MSI 2.0
file. You can install the driver by double-clicking on the file.
This operation actually runs:
msiexec /i Agilent34980A.msi

You can run msiexec from a command prompt and utilize its many
command line options. There are no public properties which can be
set from the command line.


Uninstall
---------
This driver can be uninstalled like any other software from the
Control Panel using "Add or Remove Programs".

To uninstall the IVI Shared Components you must use the IVI Cleanup
Utility available from the IVI Foundation at:
http://www.ivifoundation.org/

Note: All IVI-COM drivers require the IVI Shared Components to
function. To completely remove IVI components from your computer,
uninstall all drivers then run the IVI Cleanup Utility. This utility
does not remove any IVI drivers.


Using a New Version of the Driver
---------------------------------
New versions of this Agilent IVI-COM driver may have a new
ProgId.

If you use the version dependent ProgId in CoCreateInstance,
you will need to modify and recompile your code to use the
new ProgID once you upgrade to the next version of the driver.
Doing a side-by-side installation of the driver to use multiple
versions of the driver is not supported. If you need to go back
to an older version of the driver, you need to uninstall the later
version and install the older version.

If you use the version independent ProgId in CoCreateInstance,
you will not need to modify and recompile your code. The new
version of the driver has been tested to be backwards compatible
with previous versions.

To access the new functionality in a new version of the driver
you will need to use the latest numbered IAgilent<drive>[n]
interface rather than the IAgilent<drive> interface. The
IAgilent<drive>[n].<interface> property will return a pointer
to the new IAgilent<drive><interface>[n] interface. The
IAgilentN490x<interface>[n] interface contains the methods and
properties for the new functionality. The new interfaces were
introduced rather than modifying the existing interfaces for
backwards compatibility. The interfaces that were previously
shipped have not been changed.


Known Issues
------------
Sending commands directly to the instrument (bypassing the driver)
via Direct IO using the System.IO interface will not work with Agilent
IO libraries until the mid-December 2004 release of those libraries.

The 34980a has a lot of commands. Not all of them are incorporated into the IVI-COM or IVI-C driver. Both
IVI-C and IVI-COM have special methods which allow you to send SCPI commands and read responses from the
instrument. In the IVI-COM driver, in the "Core" interface, the "IAgilent34980ASystem.IO Property" is used to
send commands and read responses. The following two lines of code show an example of how to use the IO
property:

my34980.System.IO.WriteString("*IDN?",true);
String respStr = my34980.System.IO.ReadString();

In the IVI-C driver, there are two routines that may be used to pass SCPI to the instrument and read the
response. The following two lines show an example of how to do this in the IVI-C driver:

ViInt32 respSize;
ViChar respStr[50];
status = ag34980a_SystemWrite(vi, "*IDN?");
status = ag34980a_SystemRead(vi, 50, respStr, &respSize);


A partial list of known commands that were not implemented in the IVI-COM driver is as follows:

INSTrument:DMM:CONNect
INSTrument:DMM:CONNect?
INSTrument:DMM:DISConnect
INSTrument:DMM:DISConnect?

ROUTe:CHAN:LABel:CLEar:MODule
ROUT:OPEN:ABUS
ROUT:OPERation:OVERlap
ROUT:SCAN:ADD
ROUT:SCAN:REMove

SYST:CDES?

SYST:MOD:PFAil:JUMPer:AMP5? -- used by the 34937A and 34938A General-Purpose Switch Modules
SYST:MOD:WIRE:MODE {WIRE1|WIRE2} -- used only by switch modules 34923, 34925, and 34933

SYSTem:COMMunicate:GPIB:ADDRess
SYSTem:COMMunicate:GPIB:ADDRess?
SYSTem:COMMunicate:LAN:AUTOip
SYSTem:COMMunicate:LAN:AUTOip?
SYSTem:COMMunicate:LAN:BSTatus?
SYSTem:COMMunicate:LAN:CONTrol?
SYSTem:COMMunicate:LAN:DHCP
SYSTem:COMMunicate:LAN:DHCP?
SYSTem:COMMunicate:LAN:DNS
SYSTem:COMMunicate:LAN:DNS?
SYSTem:COMMunicate:LAN:DOMain
SYSTem:COMMunicate:LAN:DOMain?
SYSTem:COMMunicate:LAN:GATEway
SYSTem:COMMunicate:LAN:GATEway?
SYSTem:COMMunicate:LAN:HISTory?
SYSTem:COMMunicate:LAN:HISTory:CLEar
SYSTem:COMMunicate:LAN:HOSTname
SYSTem:COMMunicate:LAN:HOSTname?
SYSTem:COMMunicate:LAN:IPADdress
SYSTem:COMMunicate:LAN:IPADdress?
SYSTem:COMMunicate:LAN:KEEPalive
SYSTem:COMMunicate:LAN:KEEPalive?
SYSTem:COMMunicate:LAN:MAC?
SYSTem:COMMunicate:LAN:SMASk
SYSTem:COMMunicate:LAN:SMASk?
SYSTem:COMMunicate:LAN:TELNet:PROMpt
SYSTem:COMMunicate:LAN:TELNet:PROMpt?
SYSTem:COMMunicate:LAN:TELNet:WMESsage
SYSTem:COMMunicate:LAN:TELNet:WMESsage?

The following are missing from the 34951 IVI-COM driver (but are in IVI-C driver)
SOURce:MODule:CLOCk:FREQuency
SOURce:MODule:CLOCk:FREQuency?
SOURce:MODule:CLOCk:LEVel
SOURce:MODule:CLOCk:LEVel?
SOURce:MODule:CLOCk:STATe
SOURce:MODule:CLOCk:STATe?

The following 34951 commands are not implemented (yet)
SOURce:MODule:TRIGger:EXTernal:IMMediate
SOURce:MODule:TRIGger:OUTPut
SOURce:MODule:TRIGger:OUTPut?


Revision History
----------------
Version Date Notes
------- ------------ -----
1.0.0.00 Oct 29, 2004 Initial release
1.0.1.00 Nov 30, 2004 Fixed defect where "Initialize" could fail on Agilent
IO libraries that did not have GlobMgr.dll.
1.2.0.0 May 26, 2005 Defect fixes, added full support for 34950A and 34959A.
1.3.0.0 June 24, 2005 Defect fixes, added support for 34945A and sequences,
1.3.1.0 July 8, 2005 Defect fixes
1.3.3.0 Oct 4, 2005 Fixed memory leak issues and error code base bug
1.3.5.0 Apr 18, 2006 Various bug fixes
1.3.6.0 May 17, 2006 Fixed bug related to interop assemblies in VS2005
1.3.7.0 Jun 2, 2006 Fixed minor typographical errors
1.3.8.0 Feb 22, 2007 Fixed version policy bug
1.3.9.0 May 21, 2007 Fixed version policy bug
1.3.10.0 July 16, 2007 Defect fixes


IVI Shared Component Revisions
------------------------------
1.3.2.4 IviConfigServer.dll
1.0.7.0 IviConfigServerCAPI.dll
1.1.0.0 IviCShared.dll
1.0.237.0 IviCSharedSupport.dll
2.0.0.0 IviDCPwrTypeLib.dll
3.0.0.0 IviDmmTypeLib.dll
1.0.0.0 IviDriverTypeLib.dll
1.1.1.0 IviEventServer.exe
1.1.1.0 IviEventServerDLL.dll
1.1.1.0 IviEventServerDLLps.dll
1.1.1.0 IviEventServerps.dll
3.0.0.0 IviFgenTypeLib.dll
1.0.236.0 IviFloat.dll
1.0.0.0 IviPwrMeterTypeLib.dll
1.1.0.0 IviRfSigGenTypeLib.dll
3.0.0.0 IviScopeTypeLib.dll
1.0.1.0 IviSessionFactory.dll
1.1.3.0 IviSharedComponentVersion.dll
1.0.0.0 IviSpecAnTypeLib.dll
3.0.0.0 IviSwtchTypeLib.dll


IVI Compliance
--------------
(The following information is required by IVI 3.1 section 5.21.)

IVI-COM Ivi Switch / Ivi Dmm Instrument Driver
IVI Instrument Class: IVI-4.6_Swtch_v3.0
IVI Instrument Class: IVI-4.2_DMM_v3.0
Group Capabilities:
Supported: Unsupported
IviSwtchBase IviSwtchScanner
IviSwtchSoftwareTrigger
IviDmmBase
IviDmmACMeasurement
IviDmmFrequencyMeasurement
IviDmmTemperatureMeasurement
IviDmmThermocouple
IviDmmResistanceTemperatureDevice
IviDmmThermistor
IviDmmMultiPoint
IviDmmTriggerSlope
IviDmmSoftwareTrigger
IviDmmDeviceInfo
IviDmmAutoRangeValue
IviDmmAutoZero
IviDmmPowerLineFrequency

Optional Features: This driver does not support Interchangeability
Checking, State Caching, or Coercion Recording. The driver supports simulation
support ONLY for the IviSwtch interfaces. The simulation capabilities are designed
primarily to support NI Switch Executive (version 2.0 or greater).

Driver Identification:
(These three strings are values of properties in the IIviIdentity
interface.)
Vendor: Agilent Technologies.
Description: IVI-COM Driver for Agilent Technologies 34980A Multifunction Switch/Measure Unit.
Revision: 1.0

Component Identifier: Agilent34980A.Agilent34980A
(The component identifier can be used to create an instance of the COM
server.)

Hardware: This driver supports instruments manufactured by Agilent
Technologies. The supported model numbers are:
34980A

This driver supports communicating with the instrument
using either GPIB, USB, or LAN.

Software: See the section on installation in this document for
information on what other software is required by this driver.

Source for this driver is not available.


More Information
----------------
For more information about this driver and other instrument drivers
and software available from Agilent Technologies visit:
http://www.agilent.com/find/adnivicominfo

A list of contact information is available from:
http://www.agilent.com/find/assist

Microsoft, Windows, MS Windows, and Windows NT are U.S.
registered trademarks of Microsoft Corporation.

© Copyright Agilent Technologies, Inc. 2004-2007