Instrument Control Toolbx

25
Introduction This tutorial uses INSTRHWINFO, PROPINFO, and INSTRHELP to help you learn about the functionality provided by the Instrument Control Toolbox™. INSTRHWINFO is used to determine What instrument interfaces are available What interface objects can be created What GPIB and VISA vendors are supported What instrument drivers are available PROPINFO is used to determine a property's characteristics such as its Default value Constraint value Data type INSTRHELP is used to obtain online help on toolbox functions and properties. Using INSTRHWINFO You can use INSTRHWINFO to display information relating to the toolbox and supported instrument interfaces.

Transcript of Instrument Control Toolbx

Page 1: Instrument Control Toolbx

Introduction

This tutorial uses INSTRHWINFO, PROPINFO, and INSTRHELP to help you

learn about the functionality provided by the Instrument Control Toolbox™.

INSTRHWINFO is used to determine

What instrument interfaces are available

What interface objects can be created

What GPIB and VISA vendors are supported

What instrument drivers are available

PROPINFO is used to determine a property's characteristics such as its

Default value

Constraint value

Data type

INSTRHELP is used to obtain online help on toolbox functions and properties.

Using INSTRHWINFO

You can use INSTRHWINFO to display information relating to the toolbox and

supported instrument interfaces.

instrinfo = instrhwinfo

instrinfo =

MATLABVersion: '7.1 (R14SP3)'

SupportedInterfaces: {'gpib' 'serial' 'tcpip'

'udp' 'visa'}

Page 2: Instrument Control Toolbx

SupportedDrivers: {'matlab' 'ivi' 'vxipnp'}

ToolboxName: 'Instrument Control Toolbox'

ToolboxVersion: '2.3 (R14SP3)'

Serial Port Information

With the Instrument Control Toolbox, you can communicate with serial ports on

the Windows®, Solaris™, and Linux® platforms. To obtain serial-specific

information, the string 'serial' is passed to the INSTRHWINFO function.

serialinfo = instrhwinfo('serial')

serialinfo =

AvailableSerialPorts: {'COM1'}

JarFileVersion: 'Version 2.3'

ObjectConstructorName: {'serial('COM1');'}

SerialPorts: {'COM1'}

All serial ports on your machine are listed in the SerialPorts field.

serialinfo.SerialPorts

ans =

'COM1'

The serial ports currently not in use are listed in the AvailableSerialPorts field.

Page 3: Instrument Control Toolbx

serialinfo.AvailableSerialPorts

ans =

'COM1'

The commands for creating serial port objects are listed in the

ObjectConstructorName field.

serialinfo.ObjectConstructorName

ans =

'serial('COM1');'

GPIB Information

The Instrument Control Toolbox provides access to GPIB hardware from

supported vendors. To obtain GPIB-specific information, the string 'gpib' is passed

to the INSTRHWINFO function.

gpibinfo = instrhwinfo('gpib')

gpibinfo =

InstalledAdaptors: {'cec' 'iotech' 'keithley'

'ni'}

JarFileVersion: 'Version 2.3'

Page 4: Instrument Control Toolbx

GPIB Adaptor

A GPIB adaptor is the toolbox component that passes information between

MATLAB® and the GPIB hardware. The supported adaptors are listed in the

InstalledAdaptors field.

Note, the adaptors listed are dependent on which vendor drivers you have installed

on your computer. Only those adaptors that can be loaded (because the necessary

drivers are installed on your computer) are listed.

gpibinfo.InstalledAdaptors

ans =

'cec' 'iotech' 'keithley' 'ni'

Specific information relating to an adaptor can be displayed by passing the adaptor

name to INSTRHWINFO. This information includes

The GPIB adaptor DLL filename and version

The vendor's driver name and description

The MATLAB command for creating a GPIB object

To return information about National Instruments GPIB adaptors, use the

following command

vendorinfo = instrhwinfo('gpib','ni')

vendorinfo =

Page 5: Instrument Control Toolbx

AdaptorDllName: 'C:\Program Files\MATLAB\

toolbox\instrument\ins

trumentadaptors\win32\mwnigpib.dll'

AdaptorDllVersion: 'Version 2.3'

AdaptorName: 'ni'

InstalledBoardIds: [0 1 2]

ObjectConstructorName: {3x1 cell}

VendorDllName: 'gpib-32.dll'

VendorDriverDescription: 'NI-488'

The commands necessary for creating a GPIB object are listed in the

ObjectConstructorName field.

vendorinfo.ObjectConstructorName

ans =

'gpib('ni', 0, 2);'

'gpib('ni', 0, 24);'

'gpib('ni', 2, 30);'

VISA Information

The Instrument Control Toolbox provides access to the serial port, GPIB hardware,

VXI hardware, and GPIB-VXI hardware using the VISA standard. To obtain

VISA-specific information, the string 'visa' is passed to the INSTRHWINFO

function.

Page 6: Instrument Control Toolbx

visainfo = instrhwinfo('visa')

visainfo =

InstalledAdaptors: {'ni'}

JarFileVersion: 'Version 2.3'

VISA Adaptor

A VISA adaptor is the toolbox component that passes information between

MATLAB and your instrument using the VISA standard. The supported adaptors

are listed in the InstalledAdaptors field.

Note, the adaptors listed are dependent on which vendor drivers you have installed

on your computer. Only those adaptors that can be loaded (because the necessary

drivers are installed on your computer) are listed.

visainfo.InstalledAdaptors

ans =

'ni'

Specific information relating to an adaptor can be displayed by passing the adaptor

name to INSTRHWINFO. This information includes

The VISA adaptor DLL filename and version

The vendor's driver description and version

Page 7: Instrument Control Toolbx

The available serial ports, installed GPIB board IDs, and the available VXI

chassis

The MATLAB command for creating a VISA object

To return information about a National Instruments VISA adaptor the following

command is used.

vendorinfo = instrhwinfo('visa','ni')

vendorinfo =

AdaptorDllName: 'C:\Program Files\MATLAB\

toolbox\instrument\ins

trumentadaptors\win32\mwnivisa.dll'

AdaptorDllVersion: 'Version 2.3'

AdaptorName: 'NI'

AvailableChassis: []

AvailableSerialPorts: {2x1 cell}

InstalledBoardIds: [2x1 double]

ObjectConstructorName: {5x1 cell}

SerialPorts: {2x1 cell}

VendorDllName: 'visa32.dll'

VendorDriverDescription: 'National Instruments VISA

Driver'

VendorDriverVersion: 3.3000

The commands for creating a VISA-serial, VISA-GPIB, VISA-VXI, or VISA-

GPIB-VXI object are listed in the ObjectConstructorName field.

Page 8: Instrument Control Toolbx

vendorinfo.ObjectConstructorName

ans =

'visa('ni', 'ASRL1::INSTR');'

'visa('ni', 'ASRL10::INSTR');'

'visa('ni', 'GPIB0::2::INSTR');'

'visa('ni', 'GPIB0::24::INSTR');'

'visa('ni', 'GPIB2::30::INSTR');'

TCPIP and UDP Information

The Instrument Control Toolbox provides access to networked instruments through

the TCPIP and UDP objects. To obtain TCPIP specific information, the string

'tcpip' is passed to the INSTRHWINFO function.

tcpipinfo = instrhwinfo('tcpip')

tcpipinfo =

LocalHost: {'testmachine/144.212.105.22'}

JarFileVersion: 'Version 2.3'

Passing the string 'udp' to the INSTRHWINFO function returns the same

information.

Instrument Driver Information

Page 9: Instrument Control Toolbx

The Instrument Control Toolbox allows you to communicate with instruments

using MATLAB instrument drivers. MATLAB instrument drivers communicate

using three mechanisms

Instrument Control Toolbox interface objects

VXIplug&play drivers

IVI drivers

MATLAB Instrument Driver Information

To obtain information on the available MATLAB instrument drivers, pass the

string 'matlab' to the INSTRHWINFO function.

mlinfo = instrhwinfo('matlab')

mlinfo =

InstalledDrivers: {1x16 cell}

mlinfo.InstalledDrivers

ans =

Columns 1 through 5

'agilent_33120a' 'agilent_34401a'

'agilent_e3648a' 'tektronix_t

ds2024' 'tektronix_tds210'

Columns 6 through 13

Page 10: Instrument Control Toolbx

'MyPSDriver' 'MyScope' 'MyScope2'

'ScopeMath' 'TekScopeIvi'

'age364xa' 'rssfl' 'rssmr'

Columns 14 through 16

'temp' 'terai7' 'tktds2x0'

To obtain information on a specific MATLAB instrument driver, pass the string

'matlab' and the MATLAB instrument driver name to the INSTRHWINFO

function. This information includes

Instrument manufacturer, model, and type

Driver type, name, and version

If driver type is VXIplug&play or IVI-C, the name of the dll that is used to

communicate with the hardware

In this example, information is returned on a MATLAB instrument driver that uses

an interface object to communicate with the hardware.

info = instrhwinfo('matlab', 'agilent_33120a')

info =

Manufacturer: 'Agilent'

Model: '33120A'

Type: 'Function Generator'

DriverType: 'MATLAB interface object'

Page 11: Instrument Control Toolbx

DriverName: 'C:\Program Files\MATLAB\toolbox\

instrument\instrument\dr

ivers\agilent_33120a.mdd'

DriverVersion: '1.0'

DriverDllName: ''

In this example, information is returned on a MATLAB instrument driver that uses

a VXIplug&play driver to communicate with the hardware.

info = instrhwinfo('matlab', 'tktds2x0')

info =

Manufacturer: 'Tektronix, Inc.'

Model: 'Tektronix TDS 2x0 Oscilloscope'

Type: 'IVIInstrument'

DriverType: 'MATLAB IVI-C'

DriverName: 'D:\Work\MATLAB\test\tktds2x0.mdd'

DriverVersion: '1.0'

DriverDllName: ''

VXIplug&play Driver Information

To obtain information on the available VXIplug&play drivers, pass the string

'vxipnp' to the INSTRHWINFO function. The MAKEMID function uses

VXIplug&play drivers to create MATLAB VXIplug&play instrument drivers.

vinfo = instrhwinfo('vxipnp')

Page 12: Instrument Control Toolbx

vinfo =

InstalledDrivers: {1x78 cell}

VXIPnPRootPath: 'C:\VXIPNP\WINNT'

To obtain information on a specific VXIplug&play driver, pass the string 'vxipnp'

and the VXIplug&play driver name to the INSTRHWINFO function. This

information includes

Instrument manufacturer and model

Driver version

Name of the dll that is used to communicate with the hardware

vinfo = instrhwinfo('vxipnp', 'tktds2x0')

vinfo =

Manufacturer: 'Tektronix, Inc.'

Model: 'Tektronix TDS 2x0 Oscilloscope'

DriverVersion: '1.0'

DriverDllName: 'C:\VXIPNP\WINNT\bin\

tktds2x0_32.dll'

IVI Driver Information

To obtain information on the available IVI logical names and drivers, pass the

string 'ivi' to the INSTRHWINFO function. The MAKEMID function uses IVI

logical names and drivers drivers to create MATLAB IVI instrument drivers.

Page 13: Instrument Control Toolbx

iinfo = instrhwinfo('ivi')

iinfo =

LogicalNames: {'MyScope' 'MyScope2'

'ScopeMath'}

ProgramIDs: {'TekScope.TekScope'}

Modules: {'ag3325b' 'arpps'

'avr6552' 'lcltxx

xx' 'rd126030' 'tktds2x0' 'xanxdc'}

ConfigurationServerVersion: '1.3.1.0'

MasterConfigurationStore: 'D:\Applications\IVI\

Data\IviConfigurationSt

ore.xml'

IVIRootPath: 'D:\Applications\IVI\'

To obtain information on a specific IVI logical name, pass the string 'ivi' and the

IVI logical name to the INSTRHWINFO function.

iinfo = instrhwinfo('ivi', 'MyScope')

iinfo =

DriverSession: 'TekScope.DriverSession'

HardwareAsset: 'TekScope.Hardware'

SoftwareModule: 'TekScope.Software'

IOResourceDescriptor: 'GPIB0::4::INSTR'

SupportedInstrumentModels: 'TekScope 5000, 6000 and

7000 series oscillos

Page 14: Instrument Control Toolbx

copes.'

ModuleDescription: 'TekScope software

module description'

ModuleLocation: ''

Using PROPINFO

PROPINFO is used to determine a property's characteristics. When PROPINFO is

called with an instrument object as the input argument, a structure is returned. The

field names of the structure are the object property names. The field values are a

structure containing the property's characteristics, such as

The property data type

Constraints on the property values

The default property value

The conditions in which the property is read-only

An indication of whether the property is interface-specific

g = gpib('ni', 0, 4);

gInfo = propinfo(g)

gInfo =

BoardIndex: [1x1 struct]

BusManagementStatus: [1x1 struct]

ByteOrder: [1x1 struct]

BytesAvailable: [1x1 struct]

BytesAvailableFcn: [1x1 struct]

BytesAvailableFcnCount: [1x1 struct]

Page 15: Instrument Control Toolbx

BytesAvailableFcnMode: [1x1 struct]

BytesToOutput: [1x1 struct]

CompareBits: [1x1 struct]

EOIMode: [1x1 struct]

EOSCharCode: [1x1 struct]

EOSMode: [1x1 struct]

ErrorFcn: [1x1 struct]

HandshakeStatus: [1x1 struct]

InputBufferSize: [1x1 struct]

Name: [1x1 struct]

ObjectVisibility: [1x1 struct]

OutputBufferSize: [1x1 struct]

OutputEmptyFcn: [1x1 struct]

PrimaryAddress: [1x1 struct]

RecordDetail: [1x1 struct]

RecordMode: [1x1 struct]

RecordName: [1x1 struct]

RecordStatus: [1x1 struct]

SecondaryAddress: [1x1 struct]

Status: [1x1 struct]

Tag: [1x1 struct]

Timeout: [1x1 struct]

TimerFcn: [1x1 struct]

TimerPeriod: [1x1 struct]

TransferStatus: [1x1 struct]

Type: [1x1 struct]

UserData: [1x1 struct]

Page 16: Instrument Control Toolbx

ValuesReceived: [1x1 struct]

ValuesSent: [1x1 struct]

Property Information

Information on the RecordMode property is listed below.

modeInfo = gInfo.RecordMode

modeInfo =

Type: 'string'

Constraint: 'enum'

ConstraintValue: {3x1 cell}

DefaultValue: 'overwrite'

ReadOnly: 'whileRecording'

InterfaceSpecific: 0

The information returned indicates that the RecordMode property

Has a default value of 'overwrite'

Cannot be configured while the object is recording

Is a property available to all objects

Must be set to one of the following values:

modeInfo.ConstraintValue

ans =

Page 17: Instrument Control Toolbx

'overwrite'

'append'

'index'

Property Information on a Specific Property

Alternatively, you can pass a property name to the PROPINFO function. In this

example, information on the CompareBits property is returned.

compareInfo = propinfo(g, 'CompareBits')

compareInfo =

Type: 'double'

Constraint: 'bounded'

ConstraintValue: [7 8]

DefaultValue: 8

ReadOnly: 'never'

InterfaceSpecific: 1

The information returned indicates that the CompareBits property

Can be a double ranging between 7 and 8

Has a default value of 8

Is specific to GPIB objects

delete(g);

Using INSTRHELP

Page 18: Instrument Control Toolbx

You can use INSTRHELP to display property and function help. The "See Also"

section that follows the display contains related properties and functions. The

related properties are displayed using mixed case. The related functions are

displayed using upper case.

instrhelp RecordStatus

RECORDSTATUS [ {off} | on ] (read only)

Indicate if data and event information are saved to

a record file.

You can configure RecordStatus to be on or off with

the RECORD function.

If RecordStatus is on, then data and event

information are saved to the

record file specified by RecordName. If RecordStatus

is off, then data

and event information are not saved to a record

file.

Use the RECORD function to initiate or terminate

recording. RecordStatus

is automatically configured to reflect the recording

state.

See also RECORD, RecordDetail, RecordMode,

RecordName.

Page 19: Instrument Control Toolbx

instrhelp get

GET Get instrument or device group object properties.

V = GET(OBJ,'Property') returns the value, V, of

the specified

property, Property, for instrument or device group

object OBJ.

If Property is replaced by a 1-by-N or N-by-1 cell

array of strings

containing property names, then GET will return a

1-by-N cell array

of values. If OBJ is a vector of instrument objects

or device group

objects, then V will be a M-by-N cell array of

property values where M

is equal to the length of OBJ and N is equal to the

number of

properties specified.

GET(OBJ) displays all property names and their

current values for

object, OBJ.

Page 20: Instrument Control Toolbx

V = GET(OBJ) returns a structure, V, where each

field name is the

name of a property of OBJ and each field contains

the value of that

property.

Example:

g = gpib('ni', 0, 2);

get(g, {'PrimaryAddress','EOSCharCode'})

out = get(g, 'EOIMode')

get(g)