*********************** **** Read Me First **** *********************** Version 1.4.2.0 January 6, 2009 Introducing the Agilent IVI-COM Driver for the 34980A Multifunction Switch/Measure Mainframe and Modules ------------------------------------------------------- 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 34934A 34937A 34938A 34939A 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 does not support simulation at this time. 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. Note: There is a separate MSI installer specifically for use with NI Switch Executive. 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: :\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: :\Program Files\IVI\Drivers\\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: :\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[n] interface rather than the IAgilent interface. The IAgilent[n]. property will return a pointer to the new IAgilent[n] interface. The IAgilentN490x[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 issue 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 1.3.11.0 July 26, 2007 Fixed problem related to binary reads using TCPIP connections Removed VISA IEventManager support => AsyncEventsEnabled now returns an error 1.3.12.0 Dec 20, 2007 Re-implemented IviSwtch logic to address numerous issues 1.4.0.0 Mar 21, 2008 Added support for 34934A matrix module 1.4.1.0 Jun 30, 2008 Fixed bug related to empty slots Removed help references to "DmmMeasure" and "DmmSense" channels 1.4.2.0 Jan 06, 2009 Added support for 34939A module No longer shipping two installers, NISE 3.0 fixed and required 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.4 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