Agilent Technologies U2723A Initializing Driver
Are you using the Agilent 33220A instrument driver? National Instruments does not seem to have a supported driver for the 33220. Could you possibly direct me to where you had downloaded this instrument driver? It is used by the meter for initializing and to correct for any cumulative pulse count errors. Special circuitry corrects for width of the zero index pulse. In the event of a power failure, the latest total may be stored in non-volatile memory and can be used as the starting point for counting when power resumes. Power fail save or zero index. Agilent Oscilloscope This driver was created using IOTables. Interface type to WinSocket/LXI, USB, or GPIB from the Driver Shortcut Interface page. Zip file example includes examples. ATEasy driver for Agilent Infiniium 9000 Series Oscilloscopes - Created on Tuesday, December 16, 2014 (Solution Avaliable). Download agu2722, a LabVIEW USB Plug and Play (project-style) instrument driver for a USB Modular Source Measure Unit,USB Modular Products Chassis from agilent,keysighttechnologies, model(s): 2722, 2723, 2781. Find instrument drivers that are available for this instrument for use in LabVIEW, LabWindows/CVI, or Measurement Studio. 2 is a diagram of an instrument-to-user I/O model illustrating only a sample of the number of choices in application language 20, instrument drivers 24, I/O software libraries 25, bus and controller hardware 26, and operating systems 28 open to a test engineer when designing an instrument application. As shown, a multitude of options exist.
- Agilent U2741a
- Agilent Technologies U2723a Initializing Driver Win 7
- Agilent Technologies U2723A Initializing Driver
- Agilent Technologies U2723a Initializing Drivers
This application contains computer program listings attached as Appendix A, Appendix B, Appendix C, and Appendix D. These appendices have been submitted on a single compact disc (in duplicate) which contains Appendix A in a file named “09275276.APPENDIX A.txt” of size 6KB created on Feb. 5, 2002, Appendix B in a file named “09275276.APPENDIX B.TXT” OF SIZE 66 KB created on Feb. 5, 2002, Appendix C in a file named “09275276.APPENDIX C.txt” of size 3 KB created on Feb. 5, 2002, and Appendix D in a file named “09275276.APPENDIX D.txt” of size 12KB created on Feb. 5, 2002. The material contained in each of these files is hereby incorporated by reference.
The present invention pertains generally to test and measurement instrumentation, and more particularly to a universal I/O interface which allows communication with an instrument over any one of a plurality of I/O interfaces.
Automated control of instrument devices over I/O buses is prevalent in many test and measurement applications. Automated instrument control allows the instrument configuration and test setup and control to be performed via a computer rather than strictly manually. Automated instrument control is useful in many situations, including circumstances where the test controller and instrument are located remote from one another. When developing an instrument control application, a test and measurement engineer must consider many factors in order to obtain successful communication between the application and instrument. These include the choice of data transport mechanism (i.e., I/O bus and associated controller), instrument drivers, I/O software libraries, and the language in which the application is written. To complicate matters, it is not uncommon for test and measurement applications to use a mix of I/O buses (e.g., VXI and GPIB, or RS-232 and GPIB, etc). Once the underlying I/O bus is chosen, the engineer must then select from a set of available vendors that support the chosen bus. Each vendor may, and typically do, support the bus using different Application Programmer Interfaces (API), thereby requiring the user to learn a different API each time a new vendor is selected.
I/O bus architecture options and available vendors continually change as technology progresses. As just described, each I/O bus defines a different API, which adds complexity to the system and costs valuable engineering time to learn. Accordingly, a need exists for a method for migrating from one bus architecture and/or vendor to another without incurring the overhead associated with learning a new API whenever the I/O solution is changed. In particular, a need exists for a mechanism and method to abstract the I/O type and vendor library and to provide only a single user/client API regardless of the selected I/O type and vendor library.
The present invention solves the problems of the prior art by providing a universal I/O interface that allows communication with a number of different instruments independent of the underlying I/O configuration. The universal I/O interface is a set of Component Object Model (COM) interfaces that are independent of the underlying I/O bus and API. In addition, the universal I/O interface allows instrument data to be parsed and instrument commands to be formatted in a programming language independent way. In the preferred embodiment, the universal I/O interface comprises a COM object known in the art as an ActiveX Automation Server that abstracts the APIs for various possible underlying I/O buses and vendor software libraries into a single universal I/O interface. This allows instrument application programmers to design applications that are universally supported on any number of instrument I/O buses.
The invention will be better understood from a reading of the following detailed description taken in conjunction with the drawing in which like reference designators are used to designate like elements, and in which:

FIG.
FIG.
Agilent U2741a
FIG.
Agilent Technologies U2723a Initializing Driver Win 7
FIG.
A novel universal I/O interface which allows communication with instrumentation over a choice of a variety of I/O busses and vendor supported software libraries is described in detail hereinafter. Although the invention is described in the context of Component Object Module (COM) objects, it is to be understood that the principles of the invention may be applied to any type of objects that support multiple interface specifications for allowing communication with instruments over a variety of data transport solutions regardless of the underlying I/O buses, associated software libraries, and the language that the object is written in.
A Debugging Services Module
FIG.
The preferred embodiment implements the universal I/O interface
FIG.
In addition, as known by those skilled in the art to be required of all COM objects, COM object
Universal I/O interface
Some user interface languages, such as LabView or VEE communicate with the instrument via an instrument driver. In this case, an ActiveX Instrument Control
Appendix A is an illustrative embodiment of the Interface Definition Language (IDL) source code for implementation of the universal I/O interface
Another interface, IInitialize, specifies a set of methods for initializing a universal I/O interface object. It includes methods for initializing the object (Initialize( )), loading a set of properties associated with the object (LoadPropertyBag( )), setting and saving a set of properties associated with the object (SavePropertyBag( )), and retrieving the current set of properties associated with the object (InitializationProperties( )).
A log interface ILog is also provided which specifies a method WriteLog( ) used for logging events.
Appendix B is an illustrative embodiment of the IDL source code for implementation IIO of the universal I/O interface
Universal I/O interface IIO includes a method Read( ) and a method Write( ) that respectively return an object that implements the IRead( ) interface and an object that implements the IWrite( ) interface. The IRead( ) interface and IWrite( ) interface have methods and properties that are respectively used to read data from and write commands to a device. The IRead interface includes methods Data( ) for retrieving data from a device, method Fields( ) that returns an object that implements the IFields interface which includes methods for retrieving the current set of fields used to parse the data (including the current index, separator character(s), data type, etc.), and method SetBuffer( ) for specifying the blocksize of the data to read. The IWrite interface includes methods Command( ) for specifying a command to output to the device, CommandSeparator( ) for setting and/or retrieving the current command separator character(s), Argument( ) for inputting a command argument, ArgumentSeparator( ) for setting and/or retrieving the current command argument separator character(s), and Send( ) which causes the command and arguments, if any, to be sent to the I/O device of the instrument.
Universal I/O interface IIO includes an interface IComponent which includes methods for finding (Fin( )), determining whether a connection name is acceptable (CanHandleConnectionName( )), connection to (Connect( )) and initialization of (Initialize( )) a particular device, device locking (DeviceLock( )) and unlocking (DeviceUnlock( )), retrieving the particular I/O type of a particular device (IOType( )), setting and/or retrieving the current data buffer size (BufferSize( )),reading (Read( )) and writing (Write( )), stream reading (ReadBytes( )) and writing (WriteBytes( )) with capability of setting and/or retrieving the current read or write terminator character(s) (ReadTerminator( ) and WriteTerminator( )) and timeout values (Timeot( )) between issuing a read or write command and receiving data and/or status back from the device.
Universal IIO interface IIO optionally includes one of a set of interfaces IIOGPIB, IIORS232, and IIOVXI that allow the configuration and control of selected underlying I/O bus, including respectively the well-known GPIB, RS-232, and VXI I/O busses and associated controllers. Each of the IIOGPIB, IIORS232, and IIOVXI interfaces inherit all of the methods defined in interface IComponent described above.
In addition, the IIOGPIB I/O interface defines methods specific to the well-known GPIB architecture. These methods include functions for enabling, disabling, discarding and/or allowing waiting on interrupts (EnableInterrupt( ), DisableInterrupt( ),DiscardInterrupts( ), and/or WaitOnInterrupt( )), enabling, disabling and allowing waits on service request interrupts ((EnableSRQ( ), DisableSRQ( ), WaitOnSRQ( )), setting and/or retrieving the attention line ATN state (ATN( )), setting and/or retrieving the remote enable line REN state (REN( )), setting and/or retrieving the primary and secondary bus address (PrimaryAddress( ) and SecondaryAddress( )), retrieving the status of automatic serial polling (SerialPoll( )), sending trigger commands to devices that support triggering (Trigger( ), BusTrigger( )), setting and/or retrieving the current GPIB board number (if the test system includes multiple GPIB cards), retrieving the GPIB status information (GPIBStatus( )), setting or retrieving the automatic error checking which determines whether or not each write command to the device is received properly (AutoCheckErrors( )), locking and unlocking the GPIB bus (GPIBLock( ) and GPIBUnlock( )), setting the state of the GPIB bus to the remote, local, or local with lockout state (Remote( ), Local( ), LocalLockout( )), sending a bus management command to the GPIB bus (SendCommand( )), setting or retrieving the current delay time between received characters (T
In addition to the methods defined by the IComponent interface, the IIORS232 I/O interface defines additional methods specific to the well-known RS-232 interface. These methods include functions for setting and/or retrieving the current baudrate (BaudRate( )), character size (CharacterSize( )), communication port (COMPort( )), data transmit line DTR state (DTR( )), duplex state (Duplex( )), handshake mode (Handshake( )), parity (Parity( )), RTS line state (RTS( )), and stop bits (StopBits( )). It also provides methods for enabling, disabling, discarding and allowing waiting on interrupts (EnableInterrupt( ), DisableInterrupt( ), DiscardInterrupt( ), WaitOnInterrupt( )), and query bus information and modem status (RS232Status( ) and ModemStatusLines( )).
In addition to the methods defined by the IComponent interface, the IIOVXI I/O interface defines additional methods specific to the well-known VXI I/O hardware. These methods include functions for disabling, enabling, discarding and allowing waiting on interrupts (DisableInterrupt( ), EnableInterrupt( ), DiscardInterrupts( ), WaitOnInterrupt( )), enabling, discarding, and allowing waiting on service requests (EnableSRQ( ), DiscardSRQs( ), WaitOnSRQ( )), setting up or retrieving the configuration of the VXI trigger lines (TriggerLines( ), GetTriggerRoute( ), TriggerRoute( ), setting the default VME Access Modifiers for the mapped regions (AccessModifier( )), specifying or retrieving the byte order of memory being mapped (ByteOrderMapped( )), specifying the byte order of memory that the current device shares (ByteOrderSource( )), obtaining a list of VME lines that this device handles when asserted (HandlerList( )), obtaining a list of VME lines that the current device asserts when it needs service (InterruptList( )), setting or retrieving the VXI logical address of the current device (LogicalAddress( )), limiting bus access by methods that affect the entire bus (VXILock( ), VXIUnlocko( )), retrieving the VXI status information (VXIStatus( )), and sending a word serial command to a specific device (WordSerialCommand( )).
Universal I/O interface IIO also includes an interface IRegisterIO which defines methods for register based devices (i.e., those that include only the minimum required VXI configuration registers). Interface IRegisterIO inherits all the methods of IComponent and additionally defines methods for sending raw or block data to and receiving raw or block data from a device (Write
The universal I/O interface IIO also specifies a VXI specific interface IRegisterVXI for register-based VXI devices. IRegisterVXI inherits all of the methods of IRegisterIO and also supports VXI-specific methods AccessModifier( ), ByteOrderMapped( ), ByteOrderSource( ), DisableInterrupt, EnableInterrupt( ), DiscardInterrupts( ), WaitOnInterrupt( ), DisableSRQ( ), EnableSRQs, DiscardSRQs, WaitOnSRQs, GetTriggerRoute( ), TriggerRoute( ), TriggerLines( ), HandlerList( ), InterruptList( ), LogicalAddress, VXILock( ), VXIStatus( ), and VXIUnlock similar to the IIOVXI interface.

Universal I/O interface IIO specifies an IlOEvents dispinterface to expose certain services to clients. These dispinterface methods are used by clients that set up a connection point to client-implemented sink routines that are invoked upon the occurrence of some event. For example, if a client is to be notified on each occurrence of a service request interrupt, it passes a client-implemented sink routine pointer to the SRQ( ) method which causes the sink to be invoked each time a service request interrupt occurs. Similar dispinterface methods include Error( ), Trace( ), and BusInterrupt( ) which respectively invoke a client sink upon the occurrence of a bus error, a trace instruction, and a bus interrupt respectively.
Appendix C is an illustrative embodiment of the IDL source code for generating a type library for the universal I/O interface
Appendix D is the IDL source code for a set of utility interfaces, including interface IIOManager which is used to discover I/O ports and instruments, interface IIOs which is an array of IIO interfaces called a collection that is used in Visual Basic, IEnumIO which is another type of collection that is used in C++, and IIOFile which uses files for I/O instead of an I/O port which is useful in simulations and testing.
The IDL source code in Appendices A through D is the definition for the actual function code (not shown) for each of the methods and properties specified by the interfaces. The IDL is compiled using an IDL compiler to create a universal I/O interface type library. The type library contains a set of COM interface definitions that are available to application programmers to utilize as necessary and appropriate to their particular instrument control application. The universal I/O interface type library effectively hides the details of the underlying I/O hardware API from the user and remains the same regardless of the language the application is written in.
In the preferred embodiment, since the universal I/O interface
ActiveX controls are based on the Microsoft's Component Object Module (COM) technology. To be considered an ActiveX object, the COM object only needs to support self-registration and automation (also called OLE Automation or a Dispatch Interface).
Each ActiveX Universal I/O Automation Server must register with a component category in the operating system registry to allow other programs to determine whether they can correctly use it. The component category for the ActiveX Universal I/O Automation Server is defined by a globally unique identifier (GUID) called a CATID. In the illustrative embodiment, the CATID of the ActiveX Universal I/O Automation Server is defined as:
//
//String to be associated with the ActiveX Universal IIO Automation //Servers.
WCHAR* IIO=“ActiveX Universal IO Automation Server”;
//
//This is the Globally Unique Category Identifier for the ActiveX
//Universal IO Automation Server.
// {B6D4A4CF-BABE-FACE-B53E-080009F8D414}
CATID CATID
{0xb6d4a4cf- 0xbabe, 0xface, {0xb5, 0x3e, 0x8, 0x0, 0x9, 0xf8, 0xd4, 0x14 }};
The IIO component category allows the IIOManager interface to be able to find all IIO automation servers, and instantiate them to determine if it is the correct server for supporting a given device address. FIG.
An implementation example of the code used to accomplished this in Visual Basic is:
Dim manager as new IIOManager
Dim arb as IIO
set arb=manager.ConnectToInstrument(“GPIBO::4”)
ActiveX Universal I/O Automation Server
Write( ) returns an object that implements the IWrite interface.
Interface IWrite includes a default method called Command( ), which takes two parameters including a String and a Boolean. A programming example of its use in Visual Basic is:
Dim manager as new IIOManager
Dim arb as IIO
set arb=manager.ConnectToInstrument(“GPIBO::4”)
Arb.Write “*IDN?”
In this example, an IIOManager object “manager” is created. A variable “arb”, which can hold an IIO object, is created. The variable “arb” is then set to the IIO object that is returned by the ConnectToInstrument( ) method of the IOManager. The Write( ) method of the IIO object called “arb” is then invoked to send the command string “*IDN?” to the device at address “GPIBO::4”. Since the default method of interface IWrite is Command( ), method Command( ) is called with String “*IDN?” as the input command parameter and a default boolean value of TRUE as the second parameter. The second parameter instructs the IWrite interface to flush the command and any arguments. A more complicated Visual Basic command implementation is as follows:
Dim UpperRange, LowerRange as Double
Dim digits as Integer
UpperRange=0.01
LowerRange=0.0001
Digits=6
With arb.Write
.Command “Meas:Res?”, False
.Argument(
.Argument(
.Argument(
.Send( )
End With
Output: “:Meas:Res? 0.01, 0.0001, 6”
The IWrite interface allows several commands to be queued up before they are sent, thereby allowing more efficient use of available bandwidth. The following is an example:
With arb.Write
.Command “*CLS”,False
.Command “*RST”,False
.Command “Meas:Volt?”
End With
Output: “*CLS;*RST;Meas:Volt?”
Methods CommandSeparator( ) and ArgumentSeparator( ) allow the command and argument separators, which respectively default to the semicolon character and comma character, to be changed.
Read( ) reads the data from a device until a terminator has been detected. It then returns an object that implements the IRead interface. The default method of interface IRead is method Data( ) which returns the data as a String. If more parsing of the data is desired, an IFields interface pointer can be obtained by invoking IRead.Fields( ). The IFields interface will parse a comma-separated list, or IEEE 488.2 definite/indefinite length blocks. A couple of Visual Basic implementation examples of the use of IRead( ) is illustrated below.
Dim getIO as New IIOManager
Dim Scope as IIO
Dim result as String
Set Scope=getIO.ConnectToInstrument(“Scope”)
Scope.Write “*IDN?”
Scope.Read result
‘Example of using the default method of Write's
‘IWrite interface to send Strings.
Scope.Write “WAVEFORM:BYTEORDER LSBF”
Agilent Technologies U2723A Initializing Driver
Scope.Write “WAVEFORM:FORMAT WORD”
Scope.Write “WAVEFORM: DATA?”
‘After reading the data set the Type of data to
‘IEEE Block of short integers, then the data can
‘be accessed as an array of integers
With Scope.Read.Fields
Dim I as Integer
.Type=InstrumentI_IEEEBlockToShort

For I=0 to .Count−1
Debug.Print .Item(I)
next I
End With
It will be appreciated from the above detailed description that the universal I/O interface of the invention improves over the prior art in several ways. First, it provides a universal abstraction of the underlying I/O bus and supporting software libraries without requiring the user/client to learn the specific APIs unique to the selected IIO solution. It allows communication with a plurality of different underlying I/O buses. It also provides a mechanism for adding new universal I/O interface servers at any time to support new busses as they are introduced into the market.
Although the invention has been described in terms of the illustrative embodiments, it will be appreciated by those skilled in the art that various changes and modifications may be made to the illustrative embodiments without departing from the spirit or scope of the invention. It is intended that the scope of the invention not be limited in any way to the illustrative embodiment shown and described but that the invention be limited only by the claims appended hereto.
Agilent Technologies U2723a Initializing Drivers
Sciologness The most complete collection of drivers for your computer! |
Drivers Catalog ⇒ USB Devices ⇒ Agilent ⇒ Agilent Technologies U2723A Initializing Drivers Installer for Agilent Technologies U2723A InitializingIf you don’t want to waste time on hunting after the needed driver for your PC, feel free to use a dedicated self-acting installer. It will select only qualified and updated drivers for all hardware parts all alone. To download SCI Drivers Installer, follow this link.
Agilent Technologies U2723A Initializing: Drivers List1 drivers are found for ‘Agilent Technologies U2723A Initializing’. To download the needed driver, select it from the list below and click at ‘Download’ button. Please, ensure that the driver version totally corresponds to your OS requirements in order to provide for its operational accuracy. Agilent Technologies U2723A Initializing: Supported Models of LaptopsWe have compiled a list of popular laptops models applicable for the installation of ‘Agilent Technologies U2723A Initializing’. By clicking at the targeted laptop model, you’ll be able to look through a comprehensive list of compatible devices.
|
|
