VT1422A Remote Channel Multi-Function DAC Module with VT1529A/B 32 Ch Remote Strain Conditioning Unit and VT1539A Remote Channel Signal Conditioning Plug-On User’s and SCPI Programming Manual Where to Find it - Online and Printed Information Module configuration and wiring....................... This Manual SCPI programming............................................. This Manual SCPI example programs..................................... This Manual, Driver Disc SCPI command reference .....................
This page is blank.
VXI TECHNOLOGY WARRANTY STATEMENT PRODUCT: VT1422A Remote Channel Multi-function DAC Module, VT1529A/B Remote Strain Conditioning Module, VT1539A Remote Channel Signal Conditioning Plug-on, and all other applicable Signal Conditioning Plug-ons DURATION OF WARRANTY: 3 years 1. VXI Technology warrants VXI Technology hardware, accessories, and supplies against defects in materials and workmanship for the period specified above.
Safety Symbols Instruction manual symbol affixed to product. Indicates that the user must refer to the manual for specific WARNING or CAUTION information to avoid personal injury or damage to the product. Alternating current (ac) Direct current (dc). Indicates hazardous voltages. Indicates the field wiring terminal that must be connected to earth ground before operating the equipment—protects against electrical shock in case of fault.
DECLARATION OF CONFORMITY According to ISO/IEC Guide 22 and CEN/CENELEC EN 45014 Manufacturer’s Name: Manufacturer’s Address: VXI Technology, Inc. 2031 Main Street Irvine, California 92614 USA Declares, that the product Product Name: Remote Channel Multi-function DAC Module Model Number: VT1422A Product Options: This declaration covers all options of the above product(s).
DECLARATION OF CONFORMITY According to ISO/IEC Guide 22 and CEN/CENELEC EN 45014 Manufacturer’s Name: Manufacturer’s Address: VXI Technology, Inc. 2031 Main Street Irvine, California 92614 USA Declares, that the product Product Name: Remote Strain Conditioning Unit Model Number: VT1529A, VT1529B Product Options: This declaration covers all options of the above product(s).
DECLARATION OF CONFORMITY According to ISO/IEC Guide 22 and CEN/CENELEC EN 45014 Manufacturer’s Name: Manufacturer’s Address: VXI Technology, Inc. 2031 Main Street Irvine, California 92614 USA Declares, that the product Product Name: Remote Channel Signal Conditioning Plug-on Model Number: VT1539A Product Options: This declaration covers all options of the above product(s).
Notes: 8
Contents VT1422A Remote Channel Multi-function DAC Module Warranty Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 U.S. Government Restricted Rights . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Safety Symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Warnings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Attaching and Removing the VT1422A RJ-45 Module . . . . . . . . . . . . . . . . . . . . 53 Adding Components to the Terminal Module . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 Spring and Screw Terminal Module Wiring Maps . . . . . . . . . . . . . . . . . . . . . . . 55 Chapter 3 Programming the VT1422A & VT1529A/B for Remote Strain Measurement . . . About This Chapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Performing Channel Calibration (Important!). . . . . . . . . . . . . . . . . . . . . . . . . . Calibrating the VT1422A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Calibrating Remote Signal Conditioning Units . . . . . . . . . . . . . . . . . . . . . . Defining an Analog Input Scan List (ROUT:SEQ:DEF) . . . . . . . . . . . . . . . . . . Defining C Language Algorithms. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Global Variable Definition . . . . .
Chapter 5 Advanced Programming with the VT1529B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . About This Chapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Additional Capabilities of the VT1529B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Changes to the Use Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Engineering Units Conversion Done in VXIplug&play Driver . . . . . . . . .
Defining Algorithms (ALG:DEF). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ALG:DEFINE in the Programming Sequence . . . . . . . . . . . . . . . . . . . . . . ALG:DEFINE's Three Data Formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Changing a Running Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A Very Simple First Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Writing the Algorithm . . . . . .
ALGorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ALGorithm[:EXPLicit]:ARRay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ALGorithm[:EXPLicit]:ARRay? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ALGorithm[:EXPLicit]:DEFine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ALGorithm[:EXPLicit]:SCALar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DIAGnostic:CUSTom:PIECewise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DIAGnostic:CUSTom:REFerence:TEMPerature . . . . . . . . . . . . . . . . . . . DIAGnostic:IEEE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DIAGnostic:IEEE? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DIAGnostic:INTerrupt[:LINe] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
OUTPut:SHUNt:SOURce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OUTPut:SHUNt:SOURce? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OUTPut:TTLTrg:SOURce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OUTPut:TTLTrg:SOURce? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OUTPut:TTLTrg[:STATe] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OUTPut:TTLTrg[:STATe]? . . .
[SENSe:]FUNCtion:STRain:HBENding:POST . . . . . . . . . . . . . . . . . . . . . [SENSe:]FUNCtion:STRain:HPOisson:POST . . . . . . . . . . . . . . . . . . . . . . [SENSe:]FUNCtion:STRain[:QUARter]:POST . . . . . . . . . . . . . . . . . . . . . [SENSe:]FUNCtion:STRain:Q120:POST . . . . . . . . . . . . . . . . . . . . . . . . . . [SENSe:]FUNCtion:STRain:Q350:POST . . . . . . . . . . . . . . . . . . . . . . . . . . [SENSe:]FUNCtion:STRain:USER:POST . . . . . . . . . . . . . . . . . . . . . . . . .
STATus:OPERation:ENABle? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . STATus:OPERation[:EVENt]? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . STATus:OPERation:NTRansition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . STATus:OPERation:NTRansition? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . STATus:OPERation:PTRansition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . STATus:OPERation:PTRansition? . . . . . . . .
Command Quick Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409 Appendix A Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419 VT1422A Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419 VT1529A/B Specifications. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449 Appendix B Error Messages . . . .
Appendix F Generating User Defined Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487 Haversine Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488 Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Support Resources Support resources for this product are available on the Internet and at VXI Technology customer support centers. VXI Technology World Headquarters VXI Technology, Inc. 2031 Main Street Irvine, CA 92614-6509 Phone: (949) 955-1894 Fax: (949) 955-3041 VXI Technology Cleveland Instrument Division VXI Technology, Inc. 7525 Granger Road, Unit 7 Valley View, OH 44125 Phone: (216) 447-8950 Fax: (216) 447-8951 VXI Technology Lake Stevens Instrument Division VXI Technology, Inc.
Support
Chapter 1 Getting Started About this Chapter This chapter will explain hardware configuration before installation in a VXIbus mainframe. By attending to each of these configuration items, the VT1422A won't have to be removed from its mainframe later. Chapter contents include: • Configuring the VT1422A . . . . . . . . . . . . . . . . . . . . . . . . . . . • Installing the Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . • Instrument Drivers . . . . . . . . . . . . . . . . . . . . . . .
Setting the Logical Address Switch Follow the next figure and ignore any switch numbering printed on the Logical Address switch. When installing more than one VT1422A in a single VXIbus Mainframe, set each instrument to a different Logical Address.
Installing Signal Conditioning Plug-Ons Caution The following illustrations show the steps used to install Signal Conditioning Plug-ons (SCPs). Before installing an SCPs, reading the "Separating Digital and Analog SCP Signals" in Appendix E page 483 is recommended. Use approved Static Discharge Safe handling procedures anytime the covers are removed from the VT1422A or when handling the SCPs.
Installing SCPs: Step 2, Mounting an SCP CAUTION Use approved Static Discharge handling procedures when handling the VT1422A Multifunction DAC Modules and the SCPs SCP 2 1 Tighten the SCP Retaining Screws Align the SCP connectors with the Module connectors and then push in 26 Getting Started Chapter 1
Installing SCPs: Step 3, Reinstalling the Cover VT1422A 1 Line up the 3 Tabs with the 3 Slots; then lower cover onto the Module 2 Tighten 2 Screws Chapter 1 Getting Started 27
Installing SCPs: Step 4, Labeling Peel off correct Label from Card and Stick on the appropriate place on the Cover 1 S1 Terminal Module (Connect to A/D Module Later) Stick-on Label furnished with the SCP (Part Number: 43-0133-xxx) 2 Peel off Label from Card and Stick on the Terminal Module to be Connected to the A/D Module 28 Getting Started Chapter 1
Disabling the Input Protect Feature (Optional) Voids Warranty! Disabling the Input Protect feature voids the VT1422A's warranty. The Input Protect feature allows the VT1422A to open all channel input relays if any input's voltage exceeds ±19 volts (±6 volts for digital I/O SCPs). This feature will help to protect the card's Signal Conditioning Plug-ons, input multiplexer, ranging amplifier and A/D from destructive voltage levels.
Accessing and Locating JM2201 and JM2202 VT1422A Flash Memory Protect Jumper Default = PROG (recommended) JM2201 JM2202 1 Locate 2 Cut 3 Bend Input Protect Jumper Warning: Cutting this Jumper Voids Your Warranty! 30 Getting Started Chapter 1
Installing the Module Installation of the VT1422A VXI module is covered in the mainframe manual. WARNING All instruments within the VXI mainframe are grounded through the mainframe chassis. During installation, tighten the instrument's retaining screws to secure the instrument to the mainframe and to make the ground connection. WARNING SHOCK HAZARD. Only qualified, service-trained personnel who are aware of the hazards involved should install, configure, or remove the VXI Module.
Verifying a Successful Configuration An example C program source is shown on the following pages. This program is included on the VXI Technology VXIplug&play Drivers & Product Manuals CD that comes with the VT1422A (file name verif.cpp). The program uses the *IDN? query command to verify the VT1422A is operational and responding to commands. The program also has an error checking function (check()).
return; } rst_inst(); /* Resets the instrument and sends a device clear */ reads_instrument_id(); /* Reads instrument software revision */ /* close the device session */ hpe1422_close(addr); } /****************************************************************************/ void rst_inst(void) /* Function to set the interface timeout period, resets the instrument, */ /* waits for completion of reset and sends a device clear to enable */ /* the instrument to receive a new command */ { ViInt32 result; /* set
if(VI_SUCCESS > errStatus) { hpe1422_dcl(addr); /* send a device clear */ if(hpe1422_INSTR_ERROR_DETECTED == errStatus) { /* read instrument error until error queue is empty*/ do { hpe1422_error_query( addr, &err_code, err_message); if(err_code != 0) printf("Instrument Error : %ld, %s\n", err_code, err_message); } while(err_code != 0); } else { /* query the instrument */ hpe1422_error_message( addr, errStatus, err_message); /* display the error */ printf("Driver Error : %ld, %s\n", errStatus, err_message);
Chapter 2 Field Wiring About This Chapter This chapter shows how to plan and connect field wiring to the VT1422A's Terminal Module. The chapter explains proper connection of analog signals to the VT1422A, both two-wire voltage type and four-wire resistance type measurements. Connections for other measurement types (e.g. strain using the Bridge Completion SCPs) refer to the specific SCP manual. Chapter contents include: • Planning the Wiring Layout . . . . . . . . . . . . . . . . . . . . . . . . . .
Terminal Module SCP Position 0 (on-board addresses 00-07) SCP Position 1 (on-board addresses 08-15) SCP Position 2 (on-board addresses 16-23) SCP Position 3 (on-board addresses 24-31) Range Amp 16-Bits A/D Converter SCP Position 4 (on-board addresses 32-39) Terminal Module Note: Each channel line represents Both a Hi and Lo signal line. SCP Position 5 (on-board addresses 40-47) SCP Position 6 (on-board addresses 48-55) SCP Position 7 (on-board addresses 56-63) Figure 2-1.
Sense SCPs and Output SCPs Some SCPs provide input signal conditioning (sense SCPs such as filters and amplifiers) while others provide stimulus to the measurement circuit (output SCPs such as current sources and strain bridge completion). In general, channels at output SCP positions are not used for external signal sensing but are paired with channels of a sense SCP. Two points to remember about mixing output and sense SCPs: 1. Paired SCPs (an output and a sense SCP) may reside in separate VT1422As.
Planning for Thermocouple Measurements Using either the Screw Terminal or Spring Terminal Modules, thermocouples and the thermocouple reference temperature sensor can be wired to any of the VT1422A's channels. When the scan list is executed, one must ensure that the reference temperature sensor is specified in the channel sequence before any of the associated thermocouple channels. External wiring and connections to the VT1422A are made using Terminal Modules (see Figures 2-4 through 2-6).
Faceplate Connector Pin-Signal Lists Figure 2-3 shows the Faceplate Connector Pin Signal List for the VT1422A.
Optional Terminal and Connector Modules The VT1422A is comprised of the main A/D module and optionally, a Connector or Terminal Module. The Option 001 Connector Module provides sixteen RJ-45 jacks to allow easy connection of the VT1422A to Remote Signal Conditioning Units (RSCUs) like the VT1529A/B Remote Strain Conditioning Unit. Optional conventional terminal modules include a Terminal Module with screw-clamped terminal blocks (Option 011) and another with spring-clamped terminal blocks (Option 013).
The RJ-45 Connector Module Figure 2-4 shows the VT1422A Option 001 RJ-45 Connector Module with connector pin numbering.
00 01 Sockets for Guard to Ground Connections H L G H L G H L G H L G H L G H L G H L G H L G 02 03 05 07 00 01 06 04 11 12 15 13 14 08 09 10 H L G H L G H L G H L G H L G H L G H L G H L ON BOARD J1 Terminal Block for Input Connections REM Jumper to select for On-board or Remote Temperature Sensing GND LTS HTS LTI HTI GND TRIG GND LCAL HCAL LOHM HDHM GND On-board Thermistor for Temperature Sensing Terminal Block with Remote Temperature Sensing, Trigger, and other Connections Figure 2-5.
Screw Terminal Module Layout Figure 2-6 shows the VT1422A Option 011 Screw Terminal Module features and jumper locations. On-Board Reference Temperature Sensing JM1 REM ON BOARD RT1 Jumper Detail JM1 REM ON BOARD RT1 Remote Reference Temperature Sensing Figure 2-6.
Reference Temperature Sensing with the VT1422A The Screw Terminal and Spring Terminal Modules provide an on-board thermistor for sensing isothermal reference temperature of the terminal blocks. Also provided is a jumper set (J1 in Figures 2-7 and 2-8) to route the VT1422A's on-board current source to a thermistor or RTD on a remote isothermal reference block. Figure 2-7 and Figure 2-8 show connections for both local and remote sensing. See “Connecting the On-Board Thermistor” on page 49 for location of J1.
Terminal Module Considerations for TC Measurements Chapter 2 The isothermal characteristics of the VT1422A Terminal Module are crucial for good TC readings and can be affected by any of the following factors: 1. The clear plastic cover must be on the Terminal Module. 2. The thin white mylar thermal barrier must be inserted over the Terminal Module connector. This prevents airflow from the VT1422A A/D Module into the Terminal Module. 3.
Preferred Measurement Connections IMPORTANT! Notes 46 Field Wiring For any A/D Module to scan channels at high speeds, it must use a very short sample period (< 10 μs for the VT1422A). If significant normal mode noise is presented to its inputs, that noise will be part of the measurement. To make quiet, accurate measurements in electrically noisy environments, use properly connected shielded wiring between the A/D and the device under test.
+ power Device Under Test Shield pressure Lo A - power Shield pressure Remove Jumper to break Ground Loop (shield connected to ground at transducer) Guard Example for Powered Transducers + power Device Under Test Hi P to V Hi P to V Lo B - power Guard Leave Jumper in Place (transducer floating) Example for Powered Transducers Shield Hi Device Under Test Lo Example for Thermocouples C Shield Guard Remove Jumper to break Ground Loop (shield connected to ground at transducer) Hi
SCP Terminal Module External Connections 1 kΩ G0 0.1 µF GND to GRD Jumper (removable) 10 kΩ For each SCP Position 1 kΩ G7 0.1 µF GND to GRD Jumper (removable) 10 kΩ Figure 2-10. GRD/GND Circuitry on Terminal Module R em oving G uard to G round on C hannel 00 Figure 2-11.
Connecting the On-Board Thermistor The following figures show how to use the VT1422A to make temperature measurements using the on-board Thermistor or a remote reference sensor. The Thermistor is used for reference junction temperature sensing for thermocouple measurements. Figure 2-12 shows the configuration for the VT1422A’s Spring Terminal Module, Figure 2-6 shows the configuration for the Screw Terminal Module.
Wiring and Attaching the Terminal Module Figures 2-13 and 2-14 show how to open, wire and attach the terminal module to a VT1422A. 1 2 Remove Clear Cover. Remove and Retain Wiring Exit Panel A. Release screws. Remove 1 of the 3 wire exit panels. B. Press tab forward and release. Tab 3 Make Connections (Spring Clamp) (Screw Type) Use wire size 16-26 AWG Depress terminal lever(s). Insert wire(s) into terminal(s). Release levers. Use wire size 20-26 AWG 5 mm 0.2" 5 mm 0.
5 Replace Wiring Exit Panel 6 Replace Clear Cover A. Hook in the top cover tabs onto the fixture B. Press down and tighten screws Cut required holes in panels for wire exit 7 Keep wiring exit panel hole as small as possible 8 Push in the Extraction Levers to Lock the Install the Terminal Module Terminal Module onto the VT1422A Install Mylar Thermal Barrier on Terminal Module connectors Extraction Levers VT1422A Module Figure 2-14.
Removing the VT1422A Terminal Modules Figure 2-15 shows how to remove the Spring Terminal and Screw Terminal Modules from the VT1422A. 1 Release the two extraction levers and push both levers out simultaneously Extraction Lever Use a small screwdriver to pry and release the two extraction levers 2 Free and remove the Terminal Module from the A/D Module Extraction Lever VT1422A Extraction Lever Figure 2-15.
Attaching and Removing the VT1422A RJ-45 Module Figure 2-16 shows how to remove the RJ-45 Terminal Module. 1 2 Install on VT1422A Push in the Extraction Levers to Lock the Terminal Module onto the VT1422A Extraction Levers 3 Releasing the Extraction Levers to Remove the Terminal Module Screwdriver With 1/8" Blade Figure 2-16.
Adding Components to the Terminal Module The back of the terminal module PCB (printed circuit board) provides surface mount pads which can be used to add serial and parallel components to any channel's signal path. Figure 2-17 shows additional component locator information (see the schematic and pad layout information on the back of the terminal module PCB). Figure 2-18 shows some usage example schematics.
Spring and Screw Terminal Module Wiring Maps Figure 2-19 shows the Spring Terminal Module wiring map.
Figure 2-20 shows the Screw Terminal Module wiring map.
Chapter 2 Field Wiring 57
Field Wiring Chapter 2
Chapter 3 Programming the VT1422A & VT1529A/B for Remote Strain Measurement About This Chapter This chapter describes using the VT1422A in combination with the VT1539A Remote Channel SCP and VT1529A/B Remote Strain Conditioning Units to make large channel count strain measurements.
Instrument Setup for Remote Strain Measurements This section involves: • Preparing the VT1422A for installation into a VXIbus Mainframe • Preparing the VT1529A/B for use • Connecting the VT1422A to VT1529A/B Remote Strain Completion units.
Preparing the VT1529A/B for Use For most applications, the VT1529A/B is ready for installation as delivered. It is designed to be easily rack mounted in a system cabinet by its built-in front panel extensions. All user connection are accessible on the front panel with the exception of the line-cord jack which is on the rear of the unit. The only pre-installation operation which may need to be considered is installation of the user supplied quarter-bridge completion resistors.
1 Loosen Top Cover Screw 3 Remove Top Cover PC Board Tab 2 Unlatch Cover from Bottom Cover Tab on Each Side See Detail "A" Detail "A" Figure 3-2.
Locating Resistors Figure 3-3 provides the relationship between P.C. board location and bridge resistor channel number. The surface mount pads nearest the through-hole locations are in parallel with them.
Connecting VT1529A/Bs to the VT1422A The cable between a VT1422A and each VT1529A/B (connection "A" in Figure 3-1) is a standard type of cable used in computer Local Area Networks (LANs). The VT1529A/B can be any distance up to 1000 feet (304.8 m) from the VT1422A and the interconnect cable can be easily custom made to fit the installation. This type of cable assembly can typically be found in the IT (Information Technology) department of most companies.
Two Interconnect Methods Depending on the Terminal Module ordered with the VT1422A, there are two methods of interconnecting a VT1529A/B to the VT1422A (connection "A" in Figure 3-1). The Option 001 RJ-45 Connector Module The RJ-45 Connector Module is used when most or all of VT1422A SCP positions contain a VT1539A Remote Channel SCP. For RSCUs, simply plug one end into the VT1422A and the other into the VT1529A/B’s Data Interface connector.
Spring and Screw Terminal Modules For mixed on-board SCP channels and RSCU operation, spring or screw type terminal modules can be used. For standard SCP channel connections, see Chapter 2 “Field Wiring” on page 35. For remote channels, connect the individual wires from each VT1529A/B’s data interface cable to the appropriate terminals for remote channel operation. The VT1539A SCP is supplied with signal locator labels for each SCP position on a Spring Terminal Module.
Table 3-3.
Example Terminal Module to VT1529A/B Connection Figure 3-6 shows a typical connection to a VT1529A/B through one of the optional terminal modules. In this case, the connection is to the low channel on the VT1539A in SCP position number 6 (channels 14800 14831). For connection to other SCP positions, use the "Terminal Module Connection Formula" from Figure 3-6 or the data from Table 3-3.
Connecting Excitation Supplies Notes Chapter 3 This connection is shown as "B" in Figure 3-1. The VT1529A/B uses external excitation supplies. There are four pairs of input pins (and Gnd) at the "Bridge Excitation" connector for up to four individual excitation supplies. Each of these four inputs power eight channels through a programmable switch. Multiple excitation inputs can be parallel-wired to a single power supply. 1. The excitation supply must have a balanced output with respect to ground.
Power Supplies and Cabling Inside VT1529A/B 1 +P DC Power Supply 1 Chs 0-7 2k -P 2 2k 3 Gnd 2k 8 +P Power DC Supply 4 Chs 24-31 2k -P 9 Gnd Ch 0-7 Ch 8-15 + - + - 1 5 6 9 + Ch 16-23 + Ch 24-31 Figure 3-7.
Connecting the VT1529A/B to Strain Gages The following discussion relates to the connection marked "C" in Figure 3-1 on page 58. Connecting the strain gages to the RJ-45 telecom connectors is illustrated below. These connections can be made with the same type of cable and crimp-on connectors used for Data Interface connection (connection "A" in Figure 3-1). See Figure 3-8 for a gage connection example.
VT1529A/B Bridge Configurations The Quarter Bridge configuration Figure 3-10 shows the connections to the 8-pin telecom connector for a quarter bridge configuration. It also shows a simplified schematic of the bridge completion settings for a quarter bridge channel.
The Half Bridge configuration Figure 3-11 shows the connections to the 8-pin telecom connector for a half bridge configuration. It also shows a simplified schematic of the bridge completion settings for a half bridge channel.
The Full Bridge configuration Figure 3-12 shows the connections to the 8-pin telecom connector for a full bridge configuration. It also shows a simplified schematic of the bridge completion settings for a full bridge channel. Full Bridge (channel 0 shown) 8-pin telcom connector (RJ-45) SENS:STR:EXC:STATE Excitation to CHs 1-7 + Excitation Pin 1 Strain Bridge +Excitation - Excitation 10k Pin 8 +Excitation Sense Current Limit CAL:REMote? Instrument.
Connecting to the VT1529A/Bs Dynamic Strain Ports The VT1529A/B has two, 37-pin connectors that provide wideband amplified outputs from each strain bridge signal. This allows for connection to a high-speed ADC-per-channel instrument like the VT1432A or VT1433B to capture dynamic strain events. While an instrument like the VT1432A or VT1433B can measure signals from the VT1529A/B, a VT1422A is still required to control the VT1529A/B’s bridge configuration, calibration and self-test functions.
Table 3-4.
Dynamic Strain Port Offset Control Each buffered dynamic strain channel includes an offset adjusting DAC controlled by the command SOURce:VOLTage[:AMPLitude] <-offset_v>,(@) Reducing the unstrained bridge offset voltage at the dynamic strain port channel can allow the VT1432A to measure the channel using a more sensitive range. See Figure 3-14 for the offset DAC arrangement. Dynamic Strain Buffered Output Channel Buffer X2 Instrument.
Remote Strain Channel Addressing Figure 3-15 shows the relationship between SCP positions and Remote Channel Addressing through the VT1539A SCP (see Figure 2-1 on page 36 to compare with On-Board Channel Addressing). Not all SCP positions need to contain VT1539As. If needed, VT1539As can be mixed with other analog sense, source, and digital I/O SCPs.
Terminal Module 00 VT1539A SCP Position 0 (on-board addresses 00-01) 01 08 VT1539A SCP Position 1 (on-board addresses 08-09) 09 16 Note: Each channel line represents Both a Hi and Lo signal line.
Programming for Remote Strain Measurement This programming section is focused exclusively on programming the VT1422A and VT1529A/B for remote strain measurement. For more general VT1422A programing see Chapter 4 “Programming the VT1422A for Data Acquisition and Control”. Power-on and *RST Configuration Some of the programming operations that follow may already be set after Power-on or after an *RST command.
Measure Strain Using Built-in Strain EU Conversion This method lets the VT1422A convert the strain bridge readings to units of strain (∈) before they are stored in the CVT and/or FIFO or accessed by algorithms. There is no speed penalty and there is significant convenience in allowing the VT1422A to make the Engineering Unit conversion to strain. In fact, this is considered the "normal" VT1422A measurement method.
Note If an algorithm is loaded while method "b" is used, the FIFO may contain more than just the unstrained voltage readings. It is up to the user to obtain the correct data and input it into the VT1422A. 3. The power-on and *RST excitation voltage value is 1.0E6; this value was chosen purposely so that obviously bad readings would result if this value was not changed to the true excitation voltage. This value MUST be changed to obtain reasonable reading values.
Periodic Calibration To convert readings to Engineering Units of strain Set Input Filter on VT1529A/B Send gage factors to channel EU routines *CAL? and CALibration:REMote? SENSe:FUNCtion:STRain:.
Built-in EU Conversion Command Sequence Below is an example VXIplug&play command sequence. Note that this is not executable; it has been simplified for easier reading. The C++ example source file (euseq.cpp) is on the CD supplied with the instrument. View the readme.txt file provided with the VXIplug&play driver for example program file location.
Measure Strain Using User Specified EU Conversion The VT1422A measures voltage and then applies a conversion routine (linear) supplied by the user. The user must supply the slope (M) and offset (B) of a linear M*volt + B conversion. The DIAGnostic:CUSTom:MXB ,,(@) command is used to supply the slope and offset for the strain conversion.
Set bridge configuration switches Set Input Filter on VT1529A/B Enable excitation voltage to the strain bridges Measure bridge excitation voltages and retrieve from FIFO Measure unstrained bridge output voltages and retrieve from FIFO M(slope)= B(offset)= SENSe:STRain:BRIDge[:TYPE] INPut:FILTer:FREQuency and INPut:FILTer:STATe SENSe:STRain:EXCitation:STATe MEASure:VOLTage:EXCitation? SENS:DATA:FIFO:PART? MEASure:VOLTage:UNSTrained? SENSE:DATA:FIFO:PART? solve your equatio
Custom EU Conversion Command Sequence Below is an example VXIplug&play command sequence. Note that this is not executable; it has been simplified for easier reading. The C++ example source file (mxbseq.cpp) is on the CD supplied with the instrument. View the readme.txt file provided with the VXIplug&play driver for example program file location.
/* set up the sample timer. This controls the channel to channel scan rate and can be important when channels need more than the default 40 microsecond sample time. */ errStatus=hpe1422_cmd(sessn,"sample:timer 40E-6"); /* *RST default */ /* INITiate the trigger system to execute a measurement scan */ errStatus=hpe1422_cmd(sessn,"INIT:IMMediate"); /* retrieve readings from FIFO.
6. Turn on excitation voltage to the strain bridges with the SENSe:STRain:EXCitation:STATe ON,(@) command. 7. Use the ROUTe:SEQuence:DEFine (@) command to define the scan list to measure the output voltage at each strain bridge. The specified here must match the specified in the two previous steps (measuring unstrained and excitation voltages). 8. Start the measurement scan with the INIT command.
Readings returned in voltage Set bridge configuration switches Set Input Filter on VT1529A/B Enable excitation voltage to the strain bridges Measure bridge excitation voltages and retrieve from FIFO SENSe:FUNCtion:VOLTage SENSe:STRain:BRIDge[:TYPE] INPut:FILTer:FREQuency and INPut:FILTer:STATe SENSe:STRain:EXCitation:STATe MEASure:VOLTage:EXCitation? SENS:DATA:FIFO:PART? Measure unstrained bridge output voltages and retrieve from FIFO MEASure:VOLTage:UNSTrained? SENSE:DATA:FIFO:PART? Set up the a
/* set channel function for voltage readings (autorange) */ errStatus=hpe1422_cmd(sessn,"sens:func:voltage auto,(@10000:10007)"); /* set bridge configuration switches */ errStatus=hpe1422_cmd(sessn,"sens:str:bridge fben,(@10000:10007)"); /* optionally set VT1529A/B input filters (2, 10 or 100 Hz) */ errStatus = hpe1422_cmd(sessn,"input:filter:frequency 10,(@10000:10007)"); /* optionally enable VT1529A/B input filters (approx 100 kHz when OFF) */ errStatus = hpe1422_cmd(sessn,"input:filter:state ON,(@10000:1
Verifying Correct Bridge Completion (Shunt Cal) Verifying bridge configurations and connections is accomplished by inserting a known resistance (shunt cal resistor) in parallel with one leg of the bridge to imbalance it by a predictable amount. The VT1529A/B provides a single, internal 50 kΩ shunt cal resistor that can be programmatically connected to each of the 32 channels, one channel at a time.
Measure bridge excitation voltages and get from FIFO Measure unstrained bridge output voltages and get from FIFO Send gage factors to channel EU routines To convert readings to Engineering Units of strain Measure unstrained bridge output voltages and send to EU routines Set up Trigger System to scan strain bridge channel Set up the analog input Scan List to measure un-shunted channels MEASure:VOLTage:EXCitation?/SENSe:DATA:FIFO? MEASure:VOLTage:UNSTrained?/SENSe:DATA:FIFO? SENSe:STRain:GFACtor SENSe:FUN
Built-in Strain Conversion Equations When using the VT1422A’s built-in strain conversion (SENSe:FUNCtion:STRain: ,(@)), the following equations are used to convert voltage to strain. Full Bridge Equation (bridge_type=FBEN) This equation is used by the VT1422A to convert bridge measurements to Engineering Units of Strain for channels specified in the command SENSe:FUNCtion:STRain:FBEN ,(@).
Error Analysis Figure 3-21 compares the non-linear quarter bridge equation used for strain SCPs with the linear approximation used with the VT1529A/B. Notice that while the error is independent of excitation voltage and unstrained voltage, error is quite sensitive to gage factor.
94 Programming the VT1422A & VT1529A/B for Remote Strain Measurement Chapter 3
Chapter 4 Programming the VT1422A for Data Acquisition and Control About This Chapter The focus in this chapter is to show the VT1422A’s general programming model. The programming model is basically the sequence of SCPI commands the application program will send to the VT1422A to configure it to execute the defined Scan List and/or algorithms. This chapter contains: • Overview of the VT1422A Multifunction DAC Module . . . . page 96 Multifunction DAC? . . . . . . . . . . . . . . . . . . . . . . . . . . . .
• • • • • • • • • • -- Reading Running Algorithm Values . . . . . . . . . . . . . . . . . Reading CVT Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . Reading FIFO Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . Which FIFO Mode? . . . . . . . . . . . . . . . . . . . . . . . . . . . Reading Algorithm Variables Directly . . . . . . . . . . . . . -- Modifying Running Algorithm Variables . . . . . . . . . . . . . Updating Algorithm Variables and Coefficients . . . . . .
Temperature Resistance Strain Analog Multiplexer Voltage Trigger System Input Buffer (I100-I163) Main Program static float profile[ 100 ]; main() { if ( State_1 ) alg1(); Digital Output SCPs Totalize Digital Input SCPs Frequency Output Buffer (O100-O163) A24 Program/Data Memory Global Data Digital State EU Conversion A/D Sample/Hold Output System Analog Output SCPs Digital Signal Processor (DSP) VT1539A Analog Input SCPs Remote Sig. Cond.
Programmable Signal Conditioning and EU Conversion The input and output SCPs are configured with the SCPI and/or VXIplug&play programming. Analog SCPs are measured with the VT1422A’s A/D. Configuring the analog SCPs include specifying what type of Engineering Unit (EU) conversions are desired for each analog input channel. For example, one channel may require a type T thermocouple conversion and another may be a resistance measurement.
Start Algorithms Approximately 2000 lines of user-written 'C' code can be downloaded into the VT1422A's memory and can be split among up to 32 algorithms. VXI Technology refers to these as algorithms because an algorithm is a step-by-step procedure for solving some problem or accomplishing some end. Though the documentation continues to refer to the 'C' code as algorithms, they can be thought of in traditional terms, with each algorithm representing a 'C' function with a main() program which calls them.
Detailed Instrument Operation Cycle Figure 4-2 illustrates the timing of all these operations and describes the VT1422A's input-update-execute algorithms-output phases. This cycle-based design is desirable because it results in deterministic operation of the VT1422A. That is, the input channels are always scanned and the output channels are always written at pre-defined intervals. Note, too, that any number of input channels or output channels are accessible by any of up to 32 user-written algorithms.
A limited and simplified version of C was created since most applications need only basic operations: add, subtract, multiply, divide, scalar variables, arrays, and programming constructs. The programming constructs are limited to if-then-else to allow conditional evaluation and response to input changes.
Programming Model SCPI commands and/or VXIplug&play driver functions are used to configure, start, stop, and communicate with the VT1422A. The module can be in one of two states: either the "idle" state or the "running" state. The INITiate[:IMMediate] command moves the module from the "idle" state to the "running" state. These two states will be called "before INIT" and "after INIT," respectively. See Figure 4-3 for the following discussion.
Power-On Before INIT Commands Accepted: All commands exept: *TRG, TRIGGER, and ALG:UPD:CHAN Trigger Idle State INITiate[:IMM] After INIT yes Commands Accepted: *RST ABORT Most of ALG subsystem ARM[:IMM] FETCH? FORMAT SENSe:DATA ... STATus ... SYSTem ... *TRG & TRIGger[:IMMediate] (if TRIG:SOUR is HOLD) Waiting for Trigger State TIMer or other trigger event no Trig Count Exhausted? no yes *RST or ABORT? Input, Execute Algs, Output Figure 4-3.
Executing the Programming Model This section shows the sequence of programming steps that should be used for the VT1422A. Within each step, most of the available choices are shown using command sequence examples, with further details available in the Command Reference Chapter 7. IMPORTANT! Power-on and *RST Default Settings It is very important that, while developing an application, the SYSTem:ERRor? query be executed after each programming command.
. Power On or *RST Step 1 Set up SCP & RSCU Amps, Filters, and Measurement Excitation Sources INP: ..., OUTP: ... commands Step 2 Link Engineering Units (Functions) to Analog Input Channels [SENSe:]FUNC: ... commands Step 3 Set up Digital I/O Channels INP: ..., OUTP: ..., [SENSe:] ...,SOUR: ...
Programming Overview Diagram VXI Interrupts Status System STATus:... 8 9 12 [SENSe:]DATA:CVTable? :RESet ALG:DEF ‘GLOBALS’,... ALG:DEF ‘ALGn’,...
Setting up Analog Input and Output Channels This section covers configuring input and output channels to provide the measurement values and output characteristics that the algorithms need to operate.
Setting Filter Cutoff Frequency The commands for programmable filters are: INPut:FILTer[:LPASs]:FREQuency ,(@) to select cutoff frequency INPut:FILTer[:LPASs][:STATe] ON | OFF,(@) to enable or disable input filtering Note: For the VT1529A/B, these commands affect an 8-channel bank. The cutoff frequency selections provided by the SCP can be assigned to any channel individually or in groups. Send a separate command for each frequency selection.
To set channels 0 through 9 to output 30 µA and channels 10 through 19 to output 488 µA: OUTP:CURR 30e-6,(@100:109) OUTP:CURR 488e-6,(@110:119) separate command per output level or combine into a single command message: OUTP:CURR 30e-6,(@100:109);CURR 488e-6,(@110:119) NOTE The OUTPut:CURRent:AMPLitude command is only for programming excitation current used in resistance measurement configurations. It is does not program output DAC SCPs like the VT1532A.
[SENSe:]FUNCtion:TEMPerature ,,[,] (@) for temperature measurements with thermocouples, thermistors or RTDs [SENSe:]FUNCtion:VOLTage ,(@) for voltage measurements [SENSe:]FUNCtion:CUSTom ,(@) for custom EU conversions. NOTE Linking Voltage Measurements At power-on and after *RST, the default EU Conversion is autorange voltage for all 64 channels.
Linking Resistance Measurements To link channels to the resistance EU conversion send the [SENSe:]FUNCtion:RESistance ,[,](@) command. Resistance measurements assume that there is at least one Current Source SCP installed (eight current sources per SCP). See Figure 4-5.
To set channels 0 through 15 to measure resistances greater than 8,000 Ω and set channels 16, 20, and 24 through 31 to measure resistances less than 8k (in this case paired to current source SCP channels 32 through 57): OUTP:CURR:AMPL 30e-6, (@132:147) set 16 channels to output 30 μA for 8 kΩ or greater resistances SENS:FUNC:RES 30e-6, (@100:115) link channels 0 through 15 to resistance EU conversion (8 kΩ or greater) OUTP:CURR:AMPL 488e-6, (@148,149,150:157) set 10 channels to output 488 μA for less than 8
NOTES 1. Resistance temperature measurements (RTDs and THERmistors) require the use of Current Source Signal Conditioning Plug-Ons. The following table shows the Current Source setting that must be used for the following RTDs and Thermistors: Required Current Amplitude Temperature Sensor Types and Subtypes MAX (488 µA) RTD,85 | 92 and THER,2250 MIN (30 µA) THER,5000 | 10000 2.
Thermocouple Measurements Thermocouple measurements are voltage measurements that the EU conversion changes into temperature values based on the parameter and latest reference temperature value. • For Thermocouples the parameter can specify CUSTom, E, EEXT, J, K, N, R, S, T (CUSTom is pre-defined as Type K, no reference junction compensation; EEXT is the type E for extended temperatures of 800°F or above).
• The parameter must specify: -- For RTDs; "85" or "92" (for 100 ohm RTDs with 0.00385 or 0.00392 ohms/ohm/°C temperature coefficients respectively) -- For Thermistors; only "5000" (See previous note on page 113) -- For CUSTom; only "1" • The optional parameter can be used to choose a fixed A/D range. When not specified (defaulted) or set to AUTO, the module uses auto-range.
Supplying a Fixed Reference Temperature The [SENse:]REFerence:TEMPerature command immediately stores the temperature of a controlled temperature reference junction panel in the Reference Temperature Register. The value is applied to all subsequent thermocouple channel measurements until another reference temperature value is specified or measured. There is no need to use SENS:REF:CHANNELS.
• VT1529A/B channels provide both strain bridge completion and bridge output sense so links strain EU conversion directly to those channels. Note When the SENS:FUNC:STR: command is used with VT1529A/B channels, the bridge configuration switches for those channels are set to actually configure the bridge type specified. There is no need to send the configuration only SENSe:STRain:BRIDge:TYPE command for channels that use the SENSe:FUNCtion:STRain: command.
Setting Up Digital Input and Output Channels Setting Up Digital Inputs Setting Input Polarity Digital inputs can be configured for polarity and, depending on the SCP model, a selection of input functions as well. The following discussion will explain which functions are available with a particular Digital I/O SCP model. Setting a digital channel’s input function is what defines it as an input channel.
Frequency Function The frequency function uses two commands. For more on this VT1534A and VT1538A capability, see the appropriate SCP’s User’s Manual. To set the frequency counting gate time execute [SENSe:]FREQuency:APERture ,(@) To set the digital channel function to frequency [SENSe:]FUNCtion:FREQuency (@) Totalizer Function The totalizer function uses two commands also.
Setting Output Drive Type The VT1533A and VT1534A use output drivers that can be configured as either active or passive pull-up. To configure this, use the command OUTPut:TYPE ,(@). This setting is valid even while the specified channel in not an output channel. If and when the channel is configured for output (an output FUNCtion command), the setting will be in effect. • The parameter can be either ACTive or PASSive. When set to ACT (the default), the output provides active pull-up.
Variable Width Pulses at Fixed Frequency (PWM) This function sets up one or more VT1534A/38A channels to output a train of pulses. A companion command sets the period for the complete pulse (↑ edge to ↑ edge). This of course fixes the frequency of the pulse train. The width of the pulses from these channels is controlled by Algorithm Language statements. Use the command SOURce:FUNCtion[:SHAPe]:PULSe (@).
Performing Channel Calibration (Important!) Calibrating the VT1422A Operation and Restrictions The *CAL? (also performed using CAL:SETup then CAL:SETup?) is a very important step. *CAL? generates calibration correction constants for all analog input and output channels on-board the VT1422A. *CAL? must be performed in order for the VT1422A to deliver its specified accuracy. *CAL? generates calibration correction constants for each analog input channel for offset and gain at all five A/D range settings.
Re-Execute *CAL? When: • When channel gain and/or filter cut-off frequency on programmable SCPs are changed (using INPut:GAIN or INPut:FILTer...). • When SCPs are re-configured to different locations. This is true even if an SCP is replaced with an identical model SCP because the calibration constants are specific to each SCP channel’s individual performance. • When the ambient temperature within the mainframe changes significantly.
ROUTe:SEQuence:DEFine accepts both on-board channels from conventional SCPs as well as remote channels from Remote Signal Conditioning Units (RSCUs). For details about syntax see “Channel List (Standard Form)” starting on page 231 and “ROUTe:SEQuence:DEFine” on page 323. Note Certain analog input SCPs display higher than normal offset and noise figures if their channels are scanned just before channels on a Remote Signal Conditioning Unit.
Defining C Language Algorithms This section is an overview of how to write and download C algorithms into the VT1422A's memory. It is assumed that the user has some programming experience in C, but since the VT1422A's version of C is limited, just about any experience with a programming language will suffice. See “Creating and Running Algorithms” on page 181 for a complete discussion of the VT1422A's C language algorithm functionality.
Global Variable Definition Global variables are used when it is necessary to communicate information from one algorithm to another. Globals are initialized to 0 unless specifically assigned a value at define time. The initial value is only valid at the time of definition. That is, globals remain around and may be altered by other SCPI commands or algorithms. Globals are removed only by power-ON or *RST. The following string output is valid for strings of 256 characters or less.
ALG:SCAL 'alg1','start',1.2345 ALG:ARR 'alg1','some_array',#232..........LF/EOI ALG:UPD The ALG:SCAL command designates the name of an algorithm, indicates where to find the local variable start, and assigns that variable the value of 1.2345. Likewise, the ALG:ARRAY command designates the name of an algorithm, the name of the local array, and a definite length block for assigning the four real number values. As it can be seen, the scalar assignment uses ASCII and the array assignment uses binary.
To specify that values are to remain in IEEE 32-bit Floating Point format for fastest transfer rate: FORMAT REAL,32 To specify that values are to be converted to 7-bit ASCII and returned as a fifteen character per value comma separated list: FORMAT ASC,7 The *RST, *TST?, and power-on default format or FORM ASC Selecting the FIFO Mode same operation as above The VT1422A’s FIFO can operate in two modes.
Setting up the Trigger System Arm and Trigger Sources Figure 4-6 shows the trigger and arm model for the VT1422A. Note that when the Trigger Source selected is TIMer (the default), the remaining sources become Arm Sources. Using ARM:SOUR allows an event to be specified that must occur in order to start the Trigger Timer. The default Arm source is IMMediate (always armed).
NOTES 1. When TRIGger:SOURce is not TIMer, ARM:SOURce must be set to IMMediate (the *RST condition). If not, the INIT command will generate an error -221,"Settings conflict." 2. When TRIGger:SOURce is TIMer, the trigger timer interval (TRIG:TIM ) must allow enough time to scan all channels, execute all algorithms and update all outputs or a +3012, "Trigger Too Fast" error will be generated during the trigger cycle. See the TRIG:TIM command on page 397 for details.
Programming the Trigger Timer Setting the Trigger Counter When the VT1422A is triggered, it begins its instrument operation cycle. The time it takes to complete a cycle is the minimum interval setting for the Trigger Timer. If programmed to a shorter time, the module will generate a "Trigger too fast" error. How can this minimum time be determined? After all algorithms are defined, send the ALG:TIME? query with its parameter set to ’MAIN’.
INITiating the Module/Starting Scanning and Algorithms When the INITiate[:IMMediate] command is sent, the VT1422A builds the input Scan List from the input channels referenced when an algorithm is defined with the ALG:DEF command above and from the channels referenced with the ROUTe:SEQuence:DEFine command. The module also enters the Waiting For Trigger State.
The Operating Sequence The VT1422A has four major operating phases plus one optional phase. Figure 4-7 shows these phases. A trigger event starts the sequence: 1. (INPUT): the state of all digital inputs are captured and each analog input channel that is in the scan list and/or referenced by an algorithm variable is scanned. Reading values from channels placed in the Scan List with ROUT:SEQ:DEF are sent to the CVT and/or FIFO. 1A.
Reading Running Algorithm Values The most efficient means of acquiring algorithm derived data from the VT1422A is to have its algorithms store real-number results in the FIFO or CVT. The algorithms use the writefifo(), writecvt(), and writeboth() intrinsic functions to perform this operation as shown below.
Note After *RST/Power-on, each element in the CVT contains the IEEE-754 value "Not-a Number" (NaN). Channel values which are a positive overvoltage return IEEE +INF and negative overvoltage return IEEE -INF. Refer to the FORMat command in on page 293 for the NaN, +INF, and -INF values for each data format. Reading FIFO Data The FIFO can store up to 65,024 real numbers. Each writefifo() or writeboth() cause that expression to be placed into the FIFO.
Begin Data Retrieval STAT:OPER:COND? (bit 4 "measuring") no no Enough Values in FIFO? Algorithm Stopped? DATA:FIFO:COUNT? yes Any Values in FIFO? yes no yes Execute Bulk Transfer Command DATA:FIFO:PART? Execute Final Transfer Command Exit Data Retrieval Figure 4-8. Controlling Reading Count Below is an example command sequence for Figure 4-8. It assumes that the FIFO mode was set to BLOCK and that at least one algorithm is sending values to the FIFO.
Reading the Latest FIFO Values (FIFO mode OVER) In this mode, the FIFO always contains the latest values (up to the FIFO’s capacity of 65,024 values) from running algorithms. In order to read these values, the algorithms must be stopped (use ABORT). This forms a record of the algorithm’s latest performance. In the OVERwrite mode, the FIFO cannot be read while it is accepting readings from algorithms. Algorithm execution must be stopped before the application program reads the FIFO.
Modifying Running Algorithm Variables Updating Algorithm Variables and Coefficients The values sent with the ALG:SCALAR and ALG:ARRAY command are kept in the Update Queue until an ALGorithm:UPDate command is received. ALG:UPD cause changes to take place Updates are performed during phase 2 of the instrument operation cycle (see Figure 4-7 on page 132).
To enable ALG1 and ALG2 and disable ALG3 and ALG4: ALG:STATE ’ALG1’,ON ALG:STATE ’ALG2’,ON ALG:STATE ’ALG3’,OFF ALG:STATE ’ALG4’,OFF ALG:UPDATE enable algorithm ALG1 enable algorithm ALG2 disable algorithm ALG3 disable algorithm ALG4 changes take effect at next update phase VXIplug&play Users: See the function hpe1422_cmd to send ALG:STATE.
TRIGGER:SOURCE TIMER (*RST default) Set the channel-to-channel measurement pacing (channel settling time) SAMPle:TIMer 4E-5 (*RST default) specify data format FORMAT ASC,7 (*RST default) select FIFO mode SENSE:DATA:FIFO:MODE BLOCK may read FIFO while running Define algorithm ALG:DEFINE 'ALG1','static float a,b,c, div, mult, sub; if ( First_loop ) { a = 1; b = 2; c = 3; writecvt( a, 10 ); writefifo( b, 11 ); writefifo( c, 12 ); } writecvt( a / div, 13 ); writecvt( b * mult, 14 ); writecvt( c - sub, 15 ); /*
configure digital output channel for "alarm channel" hpe1422_cmd(vi, ’SOURCE:FUNCTION:CONDITION (@132)’) execute On-board channel calibration (can take several minutes) hpe1422_cmdInt16_Q(vi, ’*CAL?’, ViPInt16 result) test "result" for success execute Remote channel calibration on RSCUs hpe1422_cmdInt16_Q(vi, ’CAL:REMOTE? (@14000:14931)’, ViPInt16 &result) test "result" for success Direct data acquisition channels placed in Scan List.
Using the Status System The VT1422A’s Status System allows for the quick polling a single register (the Status Byte) to see if any internal conditions require attention. Figure 4-9 shows that the three Status Groups (Operation Status, Questionable Data and the Standard Event Groups) and the Output Queue all send summary information to the Status Byte. By this method, the Status Byte can report many more events than its eight bits would otherwise allow. Figure 4-10 shows the Status System in detail.
Q U E STIO N A BLE D ATA G R O U P STATus:Q UEStionable:CO NDition? (read only) STATus:Q UEStionable:NT R and STATus:Q UEStionable:PTR (set filters) STATus:Q UEStionable:EVENt? (reads/clears register) STATus:Q UEStionable:ENABle (sets m ask) 0 1 2 O utput Q ueue Not Em pty 3 4 5 Logical OR 6 7 Lost Calibration 8 Trigger Too Fast 9 FIFO O verflowed 10 O vervoltage 11 VM E M em ory O verflow 12 Setup Changed 13 14 15 STAT U S BYT E G R O U P Condition (real tim e) Filter Sum m ary (real tim
Status Bit Descriptions Questionable Data Group Bit Bit Value Event Name Description 8 256 Lost Calibration At *RST or Power-on Control Processor has found a checksum error in the Calibration Constants. Read error(s) with SYST:ERR? query and re-calibrate areas that lost constants. 9 512 Trigger Too Fast Scan not complete when another trigger event received. 10 1024 FIFO Overflowed Attempt to store more than 65,024 values in FIFO.
Enabling Events to be Reported in the Status Byte Configuring the Transition Filters There are two sets of registers that individual status conditions must pass through before that condition can be reported in the instrument’s Status Byte. These are the Transition Filter Registers and the Enable registers. They provide selectivity in recording and reporting module status conditions.
Configuring the Enable Registers In Figure 4-10, note that each Status Group has an Enable Register. These control whether or not the occurrence of an individual status condition will be reported by the group’s summary bit in the Status Byte.
Bit 3 (QUE) bit value 810 Read the Questionable Data Group’s Event Register using the STAT:QUES:EVENT? query. This will return bit values for events which have occurred in this group. After reading, the Event Register is cleared. Note that bits in this group indicate error conditions. If bit 8, 9, or 10 is set, error messages will be found in the Error Queue. If bit 7 is set, error messages will be in the error queue following the next *RST or cycling of power. Use the SYST:ERR? query to read the error(s).
Reading Status Groups Directly Reading Event Registers It may be desirable to directly poll status groups for instrument status rather than poll the Status Byte for summary information. The Questionable Data, Operation Status and Standard Event Groups all have Event Registers. These Registers log the occurrence of even temporary status conditions. When read, these registers return the sum of the decimal values for the condition bits set, then are cleared to make them ready to log further events.
Updating the Status System and VXIbus Interrupts The driver needs to update the status system’s information whenever the status of the VT1422A changes. This update is always done when the status system is accessed or when CALibrate, INITiate, or ABORt commands are executed. Most of the bits in the OPER and QUES registers represent conditions which can change while the VT1422A is measuring (initiated).
The previous description is always true for a downloaded driver. In the C-SCPI driver, however, the interrupts will only be enabled if cscpi_overlap mode is ON when the enable command is given. If cscpi_overlap is OFF, the user is indicating they do not want interrupts to be enabled. Any subsequent changes to cscpi_overlap will not change which interrupts are enabled. Only sending *OPC or STAT:OPER/QUES:ENAB with cscpi_overlap ON will enable interrupts.
Custom Thermocouple EU Conversions The VT1422A can measure temperature using custom characterized thermocouple wire of types E, J, K, N, R, S, and T. The custom EU table generated for the individual batch of thermocouple wire is loaded to the appropriate channels using the DIAG:CUST:PIEC command.
Usage Example: The program puts table constants into array DIAG:CUST:MXB 2.2,19,(@132:163) send table for chs 32-63 to VT1422A SENS:FUNC:CUST 1,(@132:163) link custom EU with chs 32-63 and set the 1 V A/D range INITiate then TRIGger module Loading Tables for Non Linear Conversions The DIAGnostic:CUSTom:PIECewise ,, (@) command downloads a custom piecewise Engineering Unit Conversion table to the VT1422A for each channel specified.
Compensating for System Offsets System Wiring Offsets Important Note for Thermocouples The VT1422A can compensate for offsets in the system’s field wiring. Apply shorts to channels at the Unit-Under-Test (UUT) end of the field wiring and then execute the CAL:TARE (@) command. The instrument will measure the voltage at each channel in and save those values in RAM as channel tare constants. • CAL:TARE must not used on field wiring that is made up of thermocouple wire.
As an example, assume that the system wiring to channel 0 generates a +0.1 volt offset with 0 volts (a short) applied at the UUT. Before CAL:TARE the module would return a reading of 0.1 volt for channel 0. After CAL:TARE (@100), the module will return a reading of 0 volts with a short applied at the UUT and the system wiring offset will be removed from all measurements of the signal to channel 0. Think of the signal applied to the instrument’s channel input as the gross signal value.
Changing Gains or Filters To change a channel’s SCP setup after a CAL:TARE operation, a *CAL? operation must be performed to generate new DAC constants and reset the "range floor" for the stored tare value. The tare capability of the range/gain setup that the channel is being changed to must also be considered. For instance, if the actual offset present is 0.
NOTES 1. When OTD is enabled, the inputs have up to 0.2 µA injected into them. If this current will adversely affect the measurement, but checking for open transducers is still desired, enable OTD, run the algorithms, check analog input variables for measurement values that indicate an open transducer, then disable OTD and run the algorithms without it. The VT1422A’s accuracy specifications apply only when OTD is off. 2.
Settling Characteristics Some sequences of input signals, as determined by their order of appearance in a scan list, can be a challenge to measure accurately. This section is intended to help determine if a system presents any of these problems and how best to eliminate them or reduce their effect.
4. If some improvement is seen, increase the sample period again and perform another test. When the sample period is increased and no improvement is seen, the maximum settling delay that any single channel requires has been found. 5. If the quality of the measurements does not respond to this increase in sample period, then inadequate settling time is not likely to be causing measurement problems.
Adding Settling Delay for Specific Channels This method adds settling time only to individual problem measurements as opposed to the SAMPle:TIMer command that introduces extra time for all analog input channels. If problems are seen on only a few channels, the SENS:CHAN:SETTLING ,(@) command can be used to add extra settling time for just these problem channels.
160 Programming the VT1422A for Data Acquisition and Control Chapter 4
Chapter 5 Advanced Programming with the VT1529B About This Chapter This chapter describes the advanced capability that is possible with the VT1529B Remote Strain Conditioning Unit (RSCU). This includes being able to scan thermocouples and high-level dc voltages in addition to strain measurements. Also, the strain bridge excitation voltage can be included as part of the scan list and have the VXIplug&play driver use the updated excitation voltage for a more accurate engineering units conversion.
The VT1529B provides the flexibility to make all of the measurements normally needed for structural test applications without the need for other SCPs: strain, temperature and dc voltage (from string pots or dc-dc LVDT). The VT1529B also allows channels to be dedicated to the strain excitation voltage and includes these channels in the scan list so that the excitation voltage is measured during every scan.
Because the EU conversions for temperature and strain are performed in the host computer, not by the on-board DSP, a fast computer may be needed in order to keep up with multiple VT1529B’s scanning at full speed. These conversions use the full strain and ITS-90 thermocouple conversion equations, which offers more accuracy than the on-board DSP approximations, but at the cost of being slower to compute. A PC with a Pentium® III 800 MHz processor or faster is recommended.
For example, the existing SCPI commands to measure thermocouples with a VT1508A SCP and the VT1422A are: SENS:REF THER,5000,(@108) SENS:FUNC:TEMP TC,J,(@109:111) SENS:REF:CHAN (@108),(@109:111) ROUT:SEQ:DEF (@108:111) INIT Sense the reference temperature on channel 108 using a 5k thermistor Indicates channels 109 through 111 are type J thermocouples Specifies channel 108 as the isothermal reference for channels 109 through 111 Sets scan list to include the reference and the thermocouples Start scan To mea
Field Wiring for Excitation Measurements To take advantage of the on-the-fly excitation measurement feature means that at least one channel of each VT1529B will need to dedicated to the excitation voltage measurement. Any of the 32 channels can be used for this purpose. If the application requires more frequent measurements than once per scan, multiple channels can be dedicated and a separate excitation measurement channel for each strain measurement channel can even be used.
Periodic Calibration To convert readings to Engineering Units of strain Set Input Filter on VT1529B Send gage factors to channel EU routines hpe1422_cmdInt32_Q(vi, "*CAL?", &result); hpe1422_cmdInt32_Q(vi, "CAL:REM? (@)", &result); hpe1422_cmd(vi, "SENS:FUNC:STR::POST ,(@),(@)"); Also sets bridge config switches and turns on excitation V hpe1422_cmd(vi, "INPut:FILTer:FREQuency "); hpe1422_cmd(vi, "INPut:FILTer:STATe "); hpe1422_cmd(vi, "SENSe:S
Strain Conversion Sequence Below is an example VXIplug&play command sequence. Note that this is not executable; it has been simplified for easier reading. The C++ example source file (eupost.cpp) is on the CD supplied with the instrument. View the readme.txt file provided with the VXIplug&play driver for example program file location.
Alternate Method of Computing Strain Note As stated above, to use the additional features of the VT1529B, the EU conversions are normally done in the VXIplug&play driver, not by the on-board DSP. For channels programmed using the new capability, all measurement data in the FIFO, CVT, and algorithms is voltage, not strain.
3. Next, create a custom linear EU conversion for the excitation voltage channel. This EU will create the ratio of the newly measured value divided by the original value. The first channel’s pre-INITiate excitation value measured by the MEAS:VOLT:EXC? query above will be used to create this EU. For this example, assume that this initial value was 5.60 V. DIAG:CUST:MXB 1.0/5.60,0.
Temperature Measurements The VT1529B adds the capability to measure E, J, and T type thermocouples in addition to strain (other thermocouple types are not supported with the new functionality). Either the VT1586A Rack-Mount Terminal Panel or a user provided isothermal panel can be used. For this discussion, assume that the VT1586A and the VT1529B option 002 VT1586A-to-VT1529B cable are being used.
Figure 5-2. Connecting the VT1586A to the VT1529B (front view) Figure 5-3.
Field Wiring of the VT1586A The field wiring for the VT1586A, when used with the VT1529B, is different from the wiring of the VT1586A when used stand-alone. In particular, with the VT1529B option 002 VT1529B-to-VT1586A cable, the G (Guard) terminals of the VT1586A are redefined to be the excitation source and excitation sense terminals for the reference thermistor(s). Figure 5-4 shows the VT1586A front panel connections. Note that the Sense + and - terminals for the channels are the same using the VT1586A.
Suggested Wiring for Thermistor Measurement 200 k + VSENSE + VEXC - Thermistor 200 k Note: VSENSE should be balanced with respect to ground Figure 5-5. Recommended Reference Thermistor Divider Circuit Ch19 Sense + Ch19 Sense Ch18 Ex.Sense Ch22 Ex.Sense Ch23 Sense Ch23 Sense + Trigger Ch18 Sense + Ch18 Sense Ch18 Ex.Sense + Ch22 Ex.Sense + Ch22 Sense Ch22 Sense + Ground Ch17 Sense + Ch17 Sense Ch16 Excitation Ch20 Ex.
Temperature Measurement Command Sequence The steps for measuring temperature with the VT1529B and VT1586A should, again, be familiar. If a controlled temperature isothermal block is used, the command sequence is identical, except for the :POST keyword being added to some commands.
Temperature Conversion Sequence Below is an example VXIplug&play command sequence. Note that this is not executable; it has been simplified for easier reading. The C++ example source file (tcpost.cpp) is on the CD supplied with the instrument. View the readme.txt file provided with the VXIplug&play driver for example program file location.
Field Wiring for dc Voltage Measurements There are separate input pins on the RJ-45 connector for the high-level and low-level DCV signals. See Figure 5-8 for the connector pin-out. Pinout for Upper Connector Row Shield Gnd Shield Gnd 12345678 High-Level DCV Sense + - Low-Level DCV Sense + Excitation + - Low-Level DCV Sense High-Level: signals >= ±0.5 VDC Low-Level: signals <= ±0.
Note The high-level inputs actually use the same excitation voltage measurement path that is used for strain measurements. This means that there is an internal 10 kΩ resistor from each terminal to a common point for each 8-channel block as shown in Figure 5-9.
DCV Measurement Sequence Below is an example VXIplug&play command sequence. Note that this is not executable; it has been simplified for easier reading. The C++ example source file (dcv.cpp) is on the CD supplied with the instrument. View the readme.txt file provided with the VXIplug&play driver for example program file location.
Some of the mechanisms by which previous channels interfere are microthermals in semiconductors, dielectric absorption in materials and simple capacitance. The cumulative effects of all of the mechanisms from previous channels result in errors on the current channel. A simple model of the error is not possible. It should also be noted that not all of the effects have the same polarity or time constant. The following section describes several things that can be done to keep switching crosstalk to a minimum.
When a VT1529A/B scans through a list of channels, it stays on the last channel in the scan list for that VT1529A/B until the unit is scanned again. To minimize the “soaking” effect, have a low voltage or a short on the low-level inputs on this last channel. 3. Reduce “switching crosstalk” by increasing time between channels. Increasing the time between channel measurements will give the VT1529A/B more time to settle.
Chapter 6 Creating and Running Algorithms Learning Hint This chapter builds upon the "VT1422A Programming Model" information presented in Chapter 4. Reading Chapter 4 is recommended before moving on to this chapter. About This Chapter This chapter describes how to write algorithms that apply the VT1422A's measurement, calculation, and control resources. It describes these resources and how to access them with the VT1422A's Algorithm Language.
-- Identifiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . page 207 -- Special Identifiers for Channels . . . . . . . . . . . . . . . . . . . . page 208 -- Special Identifiers for Remote Scan Status . . . . . . . . . . . . page 208 -- Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . page 208 -- Intrinsic Functions and Statements . . . . . . . . . . . . . . . . . . page 209 -- Program Flow Control. . . . . . . . . . . . . . . . . . . . . . .
Arithmetic Operators: add +, subtract -, multiply *, divide / Note: See “Calling User Defined Functions” on page 193. Assignment Operator: = Comparison Functions: less than <, less than or equal <=, greater than >, greater than or equal >=, equal to ==, not equal to != Boolean Functions: and && or ||, not ! Variables: scalars of type static float and single dimensioned arrays of type static float limited to 1024 elements. Constants: 32-bit decimal integer; Dddd...
Example 2; /*** same function as example 1 above but shows a different approach ***/ static float max_output = .020; /* 20 mA max output */ static float min_output = .004; /* 4 mA min output */ /* following lines input, limit output between min and max_output and outputs. */ /* output is split to two current output channels wired in parallel to provide 20 mA */ /* write cvt is just to show access to remote channel O116 = max( min_output, min( max_output, (12.
Global variables area /* GLOBALS you define with ALG:DEF GLOBALS... go here */ First_loop declared by VT1422A's driver Begin main() function (built by VT1422A's driver) /* global variable First_loop equals 1 until all algorithms called */ static float First_loop; /* global value set to 1 at each INIT */ /**************************** function main() ****************************/ /*The VT1422A driver creates main() at INIT time. This example shows a main created after 2 algorithms have been defined.
Accessing I/O Channels In the Algorithm Language, channels are referenced as pre-defined variable identifiers. Because input channels could be from Remote Signal Conditioning Units (RSCUs), there are two forms of input channel syntax. The general on-board input channel identifier syntax is "I1cc" where cc is a channel number from 00 (channel 0) through 63 (channel 63).
Input Channels Input channel identifiers can only appear on the right side of assignment operators. It doesn't make sense to output values to an input channel. Other than that, they can appear anywhere other variables can appear. Examples: dig_bit_value = I108.
Runtime Scan States The Remote Signal Conditioning Units (RSCU) runtime scan can be described as being in one of the following three states: normal, disconnected and out of synch. In the disconnected state, the VT1422A fails to communicate with an RSCU for various reasons (power down, no connection, a malfunction in the cable, etc.). In the out of synch state, the RSCU channel switching multiplexer could be out of synch with the VT1422A due to an extra or missing trigger.
Example Scan Verification Algorithms Following are some simple examples demonstrating the use of scan verification in an algorithm. By using S1xx in an algorithm, various results for control or data acquisition applications can be achieved. Assuming that one is interested in monitoring the scan state of an RSCU at VT1422A channel 25, the following can be done: 1. In the VT1422A algorithm: if( S125 != 0) { /* User application specific algorithm code for shutting down critical hardware or reporting.
Defining and Accessing Global Variables Global variables are those declared outside of both the main() function and any algorithms (see Figure 6-1). A global variable can be read or changed by any algorithm. To declare global variables, use the command: ALG:DEF 'GLOBALS','' where is Algorithm Language source limited to constructs for declaring variables. It must not contain executable statements.
Initializing Variables Variable initialization can be performed during three distinct VT1422A operations. 1. When algorithms are defined with the ALG:DEFINE command. A declaration initialization statement is a command to the driver's translator function and doesn't create an executable statement. The value assigned during algorithm definition is not re-assigned when an algorithm is run with the INIT command. Example statement: static float my_variable = 22.
Reading CVT elements An application program reads one or more CVT elements by executing the SCPI command [SENSe:]DATA:CVT? (@), where specifies one or more individual elements and/or a range of contiguous elements. The following example command will help to explain the syntax. DATA:CVT? (@10,20,30:33,40:43,330) Return elements 10, 20, 30-33, 40-43, and element 330. Individual element numbers are isolated by commas.
Determining An Algorithm's Identity (ALG_NUM) When an algorithm is defined with the ALG:DEF 'ALGn',... command, the VT1422A's driver makes available to the algorithm the constant ALG_NUM. ALG_NUM has the value n from "ALGn." For instance, an algorithm is defined with equal to "ALG3", then ALG_NUM within that algorithm would have the value 3.
Operating Sequence This section explains another important factor in an algorithm's execution environment. Figure 6-2 shows the same overall sequence of operations seen in Chapter 3, but also includes a block diagram to show which parts of the VT1422A are involved in each phase of the control sequence.
State Frequency Totalize Voltage Resistance Temp.
Defining Algorithms (ALG:DEF) This section discusses how to use the ALG:DEFINE command to define algorithms. Later sections will discuss "what to define." Note for VXIplug&play Users While the following discussion of algorithm definition is useful for plug&play users with regards to the coding of an algorithm or global variable definition, generating an algorithm code and actually downloading it to the VT1422A is much easier because of the plug&play hps1422.
NOTE For Block Program Data, the Algorithm Parser requires that the source_code data end with a null (0) byte. The null byte must be appended to the end of the block's . If the null byte is not included within the block, the error "Algorithm Block must contain termination '\0'" will be generated.
How Does it Work? The example algorithm definition above will be used for this discussion. When a value for is specified at algorithm definition, the VT1422A allocates two identical algorithm spaces for ALG3, each the size specified by (in this example 1000 words). This is called a "double buffer," arbitrarily called space A and space B. The algorithm is loaded into ALG3's space A at first definition.
NOTES 1. Channels referenced by algorithms when they are defined are only placed in the channel list before INIT. The channel list cannot be changed after INIT. If an algorithm is re-defined (by swapping) after INIT and it references channels not already in the channel list, it will not be able to access the newly referenced channels. No error message will be generated.
A Very Simple First Algorithm This section shows how to create and download an algorithm that simply sends the value of an input channel to a CVT element. It includes an example application program that configures the VT1422A, downloads (defines) the algorithm, starts, and then communicates with the running algorithm. Writing the Algorithm The most convenient method of creating an algorithm is to use the hps1422.exe soft front panel program.
How the Example PIDA Operates A PID algorithm is to control a bath temperature at 140°F. With the Setpoint at 140 and the process variable (PV) reading 130, the value sent to the output is a positive value which drives the digital output to 1 (heater on). When the process value reading reaches 140, the "error term" would equal zero so the value sent to the digital output would be 0 (heater off).
Implementing Multivariable Control In this example, two PID algorithms each control part of a process and due to the process dynamics are interactive. This situation can call for what is known as a "decoupler." The job of the decoupler is to correct for the "coupling" between these two process controllers. Figure 6-3 shows the two PID controllers and how the de-coupler algorithm fits into the control loops.
GLOBAL cold_setpoint ALG2 Flow Controller FC I109 55° Cold Supply O116 120° Product FT flow transmitter ALG1 Ratio Station RS I108 180° Hot Supply FT flow transmitter Figure 6-4. Inter-algorithm Communication with Globals To set up the algorithms for this example: 1. Define the global variable . ALG:DEF 'GLOBALS','static float cold_setpoint;' 2. Define the following algorithm language code as ALG1, the ratio station algorithm.
/* following line includes global setpoint var and hard coded input chan */ Error = Cold_setpoint - I109; if (First_loop) { I_out = Error * I_factor; Error_old = Error; } else /* not First trigger */ { I_out = Error * I_factor + I_out; /* output channel hard coded here */ } O116 = Error * P_factor + I_out + D_factor * (Error - Error_old); Error_old = Error; Non-Control Algorithms Process Monitoring Algorithm Another function the VT1422A performs well is monitoring input values and testing them against pre
Implementing Setpoint Profiles A setpoint profile is a sequence of setpoints that are desired as inputs for a control algorithm. A normal setpoint is either static or modified by operator input to some desired value where it will then become static again. A setpoint profile is used when a device under test is desired to be cycled through some operating range and the setpoint remains for some period of time before changing.
SOUR:FUNC:COND (@141) make Digital I/O channel 141 a digital output. The default condition for 140 is digital input. define algorithm ALG:DEF 'alg1',' static float setpoints[ 1024 ], index, num_events, n; if ( First_loop ) { index = 0; /* array start point */ n = num_events;/* preset interval */ } n = n - 1; /* count trigger events */ if ( n <= 0 ) { O100 = setpoints[ index ]; /* output new value */ index = index + 1; /* increment index */ if ( index > 1023 ) { /* look for endpoint */ index = 0; O140.
Algorithm Language Reference This section provides a summary of reserved keywords, operators, data types, constructs, intrinsic functions, and statements. Standard Reserved Keywords NOTE Special VT1422A Reserved Keywords Identifiers The list of reserved keywords is the same as ANSI 'C'. User variables may not be created using these names. Note that the keywords that are shown underlined and bold are the only ANSI 'C' keywords that are implemented in the VT1422A.
NOTE Special Identifiers for Channels Special Identifiers for Remote Scan Status Identifiers are case sensitive. The names My_array and my_array reference different variables. Channel identifiers appear as variable identifiers within the algorithm and have a fixed, reserved syntax. The identifiers I100 to I163 specify on-board input channel numbers. The identifiers I10000 to I15731 specify remote input channel numbers. The "I" must be upper case.
Comparison Operators Logical Operators Unary Logical Operator == != < > <= >= (is equal to) examples; (is not equal to) (is less than) (is greater than) (is less than or equal to) (is greater than or equal to) a == b a != b ab a <= b a >= b || && (or) (and) examples; (a == b) || (a == c) (a == b) && (a == c) ! (not) example; !b The result of a comparison operation is a boolean value. It is still a type float but its value is either 0 (zero) if false or 1 (one) if true.
Program Flow Control Conditional Constructs Program flow control is limited to the conditional execution construct using if and else and return. Looping inside an algorithm function is not supported. The only "loop" is provided by repeatedly triggering the VT1422A. Each trigger event (either external or internal Trigger Timer) executes the main() function which calls each defined and enabled algorithm function. There is no goto statement.
These subtle problems can be avoided by specifically including a decimal point in decimal constants where an integer operation is not desired. For example, if either of the constants in the division above is made into a float constant by including a decimal point, the translator would have promoted the other constant to a float value and performed a float divide operation resulting in the expected 0.75 * 12 or the value 8.0. So, the statement: a = ( 3. / 4 ) * 12; will result in the value float 8.
• Single-dimensioned arrays of type float with a maximum of 1024 elements: Declaration static float array_var [3]; Use array_var [0] = 0.1; array_var [1] = 1.2; array_var [2] = 2.34; array_var [3] = 5; Storage Arrays are "double buffered." This means that when an array is declared, twice the space required for the array is allocated, plus one more word as a buffer pointer.
Declaration Initialization Only simple variables can be initialized (not array members) in the declaration statement: static float my_var = 2; NOTE! The initialization of the variable only occurs when the algorithm is first defined with the ALG:DEF command. The first time the algorithm is executed (module INITed and triggered), the value will be as initialized.
Octal Constant: First character is 0. Remaining characters are 0-7. If ".", "e" or "E" is found, the number is assumed to be a Decimal Constant as above. Primary-expression: constant (expression) scalar-identifier scalar-identifier.
Relational-expression: additive-expression relational-expression relational-operator additive-expression Relational-operator: < > <= >= Equality-expression: relational-expression equality-expression equality-operator relational-expression Equality-operator: == != Logical-AND-expression: equality-expression logical-AND-expression && equality-expression Expression: logical-AND-expression expression || logical-AND-expression Declarator: identifier identifier [ integer-constant-expression ] NOTE: integer-consta
Declaration: static float init-declarator-list; Declarations: declaration declarations declaration Intrinsic-statement: interrupt ( ) writefifo ( expression ) writecvt ( expression , constant-expression ) writeboth( expression , constant-expression ) exit ( expression ) Expression-statement: scalar-identifier = expression ; scalar-identifier .
Program Structure and Syntax In this section, the portion of the 'C' programming language that is directly applicable to the VT1422A' Algorithm Language will be discussed. To do this, the 'C' Algorithm Language elements will be compared with equivalent BASIC language elements. Declaring Variables In BASIC, the DIM statement is usually used to name variables and allocate space in memory for them.
The Operations Symbols The Arithmetic Operators Many of the operation symbols are the same and are used the same way as those in BASIC. However, there are differences and they can cause programming errors until the differences become familiar.
IF boolean_expression THEN statement IF boolean_expression THEN statement END IF IF boolean_expression THEN statement statement statement END IF IF boolean_expression THEN statement statement ELSE statement END IF 'C' Syntax Comments BASIC Syntax Simplest form (used often) if(boolean_expression) statement; Two-line form (not recommended; use multiple line form instead) if(boolean_expression) statement; if(boolean_expression){ statement; statement; statement; } Multiple line form (used often) Multip
BASIC Syntax Examples 'C' Syntax IF A<=0 THEN C=ABS(A) if(a <= 0) c=abs(a); IF A<>0 THEN C=B/A END IF if(a != 0) c = b / a; IF A<>B AND A<>C THEN A=A*B B=B+1 C=0 END IF if((a != b) && (a != c)) { a = a * b; b = b + 1; c = 0; } IF A=5 OR B=-5 THEN C=ABS(C) C= 2/C ELSE C= A*B END IF if((a == 5) || (b == -5)) { c = abs(c); c = 2 / c; } else { c = a * b; } Figure 6-6. Examples of 'C' and BASIC If Statements Comment Lines Probably the most important element of programming is the comment.
Overall Program Structure The preceding discussion showed the differences between individual statements in BASIC and 'C'. Here it will be described how the VT1422A's Algorithm Language elements are arranged into a program. Here is a simple example algorithm that shows most of the elements discussed so far. /* Example Algorithm to show language elements in the context of a complete custom algorithm. Program variables: user_flag user_value Set this value with the SCPI command ALG:SCALAR.
222 Creating and Running Algorithms Chapter 6
Chapter 7 VT1422A Command Reference Using This Chapter This chapter describes the Standard Commands for Programmable Instruments (SCPI) command set and the IEEE-488.2 Common Commands for the VT1422A. • Overall Command Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . • Command Fundamentals . . . . . . . . . . . . . . . . . . . . . . . . . . . . • • • Common Command Format. . . . . . . . . . . . . . . . . . . . . . . . SCPI Command Format . . . . . . . . . . . . . . . . . . . . . . . . . . .
ALGorithm:UPDate:WINDow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . page 254 ALGOrithm:UPDate:WINDow? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . page 255 ARM[:IMMediate] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . page 257 ARM:SOURce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . page 257 ARM:SOURce? . . . . . . . . .
FORMat[:DATA] [,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . page 293 FORMat[:DATA]? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . page 295 INITiate[:IMMediate]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . page 296 INPut:FILTer[:LPASs]:FREQuency ,(@) . . . . . . . . . . . . . . . . .
[SENSe:]DATA:CVTable? (@). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . page 331 [SENSe:]DATA:CVTable:RESet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . page 333 [SENSe:]DATA:FIFO[:ALL]? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . page 333 [SENSe:]DATA:FIFO:COUNt? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . page 334 [SENSe:]DATA:FIFO:COUNt:HALF? .
[SENSe:]STRain:BRIDge[:TYPE]
SYSTem:VERSion? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TRIGger:COUNt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TRIGger:COUNt? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TRIGger[:IMMediate] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TRIGger:SOURce .
Command Fundamentals Commands are separated into two types: IEEE-488.2 Common Commands and SCPI Commands. The SCPI command set for the VT1422A is 1990 compatible Common Command Format The IEEE-488.2 standard defines the Common commands that perform functions like reset, self-test, status byte query, etc. Common commands are four or five characters in length, always begin with the asterisk character (*) and may include one or more parameters.
Implied Commands Implied commands are those which appear in square brackets ([ ]) in the command syntax. (Note that the brackets are not part of the command and are not sent to the instrument.) Suppose a second level command is sent but is not sent preceding implied command. In this case, the instrument assumes that the implied command is intend to be used and it responds as if it was sent.
Boolean Represents a single binary condition that is either true or false: ON, OFF, 1, 0. Discrete Selects from a finite number of values. These parameters use mnemonics to represent each valid setting. An example is the TRIGger:SOURce
Examples: On-board channels 0 through 15=100:115 Remote channels 0000 through 0131=10000:10131 By using commas to separate them, individual and range specifications can be combined into a single channel list: 0, 5, 8 through 3331 and 45=(@100,105,108:13331,145) Notice that the range specified (108:13331) included a mix of on-board channels as well as remote channels.
Notes 1. Because the "card number" digit has been changed to mean Data Destination, the Relative Channel form is only allowed in the ROUTe:SEQuence:DEFine command. Usage in other commands will generate an error message. 2. Note that for both forms, a channel list is always contained within "(@" and ")." The Command Reference always shows the "(@" and ")" punctuation: (@) 3. For the ROUT:SEQ:DEF command, the VT1422A has to transfer remote channels lists to the RSC units they reference.
Optional Parameters Parameters shown within square brackets ([ ]) are optional parameters. (Note that the brackets are not part of the command and should not be sent to the instrument.) If a value is not specified for an optional parameter, the instrument chooses a default value. For example, consider the FORMAT:DATA [,] command. If the command is sent without specifying , a default value for will be selected depending on the of format specified.
Note Data Types The command keywords following the semicolon must be from the same command branch and level as the complete command preceding the semicolon or a -113,"Undefined header" error will be generated. The following table shows the allowable type and sizes of parameter data sent to the module and query data returned by the module. The parameter and returned value type is necessary for programming and is documented in each command in this chapter.
ABORt ABORt The ABORt subsystem is a part of the VT1422A's trigger system. ABORt resets the trigger system from its Wait For Trigger state to its Trigger Idle state. Subsystem Syntax CAUTION Comments ABORt ABORT stops execution of a running algorithm. The control output is left at the last value set by the algorithm. Depending on the process, this uncontrolled situation could be dangerous. Make certain that the process is put into a safe state before execution of a controlling algorithm is halted.
ALGorithm ALGorithm The ALGorithm command subsystem provides: • Definition of user defined control algorithms • Communication with algorithm array and scalar variables • Controls to enable or disable individual loop algorithms • Control of ratio of number of scan triggers per algorithm execution • Control of loop algorithm execution speed • Easy definition of algorithm data conversion functions Subsystem Syntax ALGorithm [:EXPLicit] :ARRay ’’,’’, :ARRay? ’’,’<
ALGorithm Parameters Comments Parameter Name Parameter Type Range of Values Default Units alg_name string ALG1 - ALG32 | GLOBALS none array_name string valid 'C' variable name none array_block block data block of IEEE-754 64-bit floating point numbers none • To send values to a Global array, set the parameter to "GLOBALS." To define a global array see the ALGorithm:DEFine command. • An error is generated if or is not defined.
ALGorithm ALGorithm[:EXPLicit]:ARRay? ALGorithm[:EXPLicit]:ARRay? ’’,’’ returns the contents of from algorithm . ALG:ARR? can return contents of global arrays when specifies 'GLOBALS'. Parameters Comments Parameter Name Parameter Type Range of Values Default Units alg_name string ALG1 - ALG32 | GLOBALS none array_name string valid 'C' variable name none • An error is generated if or is not defined.
ALGorithm • The parameter is optional. Include this parameter with the first definition of when it is desired to change later while it is running. The value can range up to about 23k words (ALG:DEF will then allocate 46k words as it creates two spaces for this algorithm). -- If included, specifies the number of words of memory to allocate for the algorithm specified by .
ALGorithm • The parameter can be one of three different SCPI types: -- Quoted String: For short segments (single lines) of code, enclose the code string within single (apostrophes) or double quotes. Because of string length limitations within SCPI and some programming platforms, it is recommended that the quoted string length not exceed a single program line.
ALGorithm When accepted and Usage If is not enabled to swap (not originally defined with the parameter included) then both of the following conditions must be true: a. Module is in Trigger Idle State (after *RST or ABORT and before INIT). OK *RST ALG:DEF 'GLOBALS','static float My_global;' ALG:DEF 'ALG2','PIDA(I100,O108)' ALG:DEF 'ALG3','My_global = My_global + 1;' Error INIT ALG:DEF 'ALG5','PIDB(I101,O109,O124.B0)' "Can't define new algorithm while running" b.
ALGorithm If has been enabled to swap (originally defined with the parameter included) then the can be re-defined (do not include now) either while the module is in the Trigger Idle State or while in Waiting-For-Trigger State (INITed). Here is an algorithm name only, not 'GLOBALS'. OK *RST ALG:DEF 'ALG3',200,'if(O108<15.0) O108=O108 + 0.1; else O108 = -15.0;' INIT starts algorithm ALG:DEF 'ALG3','if(O108<12.0) O108=O108 + 0.2; else O108 = -12.
ALGorithm ALGorithm[:EXPLicit]:SCALar ALGorithm[:EXPLicit]:SCALar ’’,’’, sets the value of the scalar variable for algorithm into the Update Queue. This update is then pending until ALG:UPD is sent or an update event (as set by ALG:UPD:CHANNEL) occurs. Note ALG:SCALAR places a variable update request in the Update Queue.
ALGorithm ALGorithm[:EXPLicit]:SCALar? ALGorithm[:EXPLicit]:SCALar? ’’,’’ returns the value of the scalar variable in algorithm . Parameters Comments Parameter Name Parameter Type Range of Values Default Units alg_name string ALG1 - ALG32 none var_name string valid 'C' variable name none • An error is generated if or is not defined. • Returned Value: numeric value. The type is float32.
ALGorithm Comments Specifying a value of 1 (the default) causes the named algorithm to be executed each time a trigger is received. Specifying a value of n will cause the algorithm to be executed once every n triggers. All enabled algorithms execute on the first trigger after INIT. • The algorithm specified by may or may not be currently defined. The specified setting will be used when the algorithm is defined.
ALGorithm Note If specifies an undefined algorithm, ALG:SIZE? returns 0. This can be used to determine whether algorithm is defined. • Returned Value: numeric value up to the maximum available algorithm memory (this approximately 40k words). The type is int32. • *RST Condition: returned value is 0. • Send with VXIplug&play Function: hpe1422_cmdInt32_Q(...
ALGorithm • When Accepted: Both before and after INIT. Also accepted before and after the algorithm referenced is defined. • Related Commands: ALG:UPDATE, ALG:STATE?, ALG:DEFINE • Send with VXIplug&play Function: hpe1422_cmd(...) Usage ALG:STATE 'ALG2',OFF disable ALG2 ALGorithm[:EXPLicit][:STATe]? ALGorithm[:EXPLicit][:STATe]?’’ returns the state (enabled or disabled) of algorithm .
ALGorithm Note If specifies an undefined algorithm, ALG:TIME? returns 0. This can be used to determine whether algorithm is defined. This command forces algorithms to run internally. If an algorithm contains a run-time error, no data can be returned and the command will not complete (will "hang"). • When Accepted: Before INIT only. • Returned Value: numeric value. The type is float32 • Send with VXIplug&play Function: hpe1422_cmdReal64_Q(...
ALGorithm • The and parameters define the allowable input values to the function (domain). If values input to the function are equal to or outside of (±+), the function may return ±INF in IEEE-754 format. For example; = 8 (-8 to 8), = 12. The allowable input values must be greater than 4 and less than 20. • is a 512 element array of type uint16. • The algorithm syntax for calling is: ( ).
ALGorithm • When is AUTO, the delay is set to the worst-case time required to execute phases 1 through 3. This provides the fastest execution speed while maintaining a fixed time between trigger and the OUTPUT phase. • To set the time from trigger to the beginning of OUTPUT, use the following procedure.
ALGorithm ALGorithm:UPDate[:IMMediate] ALGorithm:UPDate[:IMMediate] requests an immediate update of any scalar, array, algorithm code, ALG:STATE, or ALG:SCAN:RATIO changes that are pending. Comments • Variables and algorithms can be accepted during Phase 1-INPUT or Phase 2-UPDATE in Figure 7-1 when INIT is active. All writes to variables and algorithms occur to their buffered elements upon receipt.
ALGorithm ALGorithm:UPDate:CHANnel ALGorithm:UPDate:CHANnel This command is used to update variables, algorithms, ALG:SCAN:RATIO, and ALG:STATE changes when the specified digital input level changes state. When the ALG:UPD:CHAN command is executed, the current state of the digital input specified is saved. The update will be performed at the next update phase (UPDATE in Figure 7-1) following the channel's change of digital state.
ALGorithm Command Sequence The following example shows three scalars being written with the associated update command following. When the ALG:UPD:CHAN command is received, it will read the current state of channel 108, bit 0. At the beginning of the UPDATE phase, a check will be made to determine if the stored state of channel 108 bit 0, is different from the current state. If so, the update of all three scalars take effect next Phase 2. INIT ALG:SCAL 'ALG1','Setpoint',25 ALG:SCAL 'ALG1','P_factor',1.
ALGorithm Notes 1. When the number of update requests exceeds the Update Queue size set with ALG:UPD:WINDOW by one, the module will refuse the request and will issue the error message "Too many updates in queue. Must send UPDATE command." Send ALG:UPDATE, then re-send the update request that caused the error. 2. The "Too many updates in queue..." error can occur before the module is INITialized.
ARM ARM The ARM subsystem is only useful when the TRIGer:SOURce is set to TIMer. With the VT1422A, when the TRIG:SOURCE is set to TIMer, an ARM event must occur to start the timer. This can be something as simple as executing the ARM[:IMMediate] command or it could be another event selected by ARM:SOURCE. Note The ARM subsystem may only be used then the TRIGger:SOURce is TIMer.
ARM Subsystem Syntax ARM [:IMMediate] :SOURce BUS | EXTernal | HOLD | IMMediate | SCP | TTLTrg :SOURce? ARM[:IMMediate] ARM[:IMMediate] arms the trigger system when the module is set to the ARM:SOUR BUS or ARM:SOUR HOLD mode. Comments • Related Commands: ARM:SOURCE, TRIG:SOUR • *RST Condition: ARM:SOUR IMM • Send with VXIplug&play Function: hpe1422_cmd(...
ARM While ARM:SOUR is IMM, simply INITiate the trigger system to start a measurement scan. • When Accepted: Before INIT only. • Related Commands: ARM:IMM, ARM:SOURCE?, INIT[:IMM], TRIG:SOUR • *RST Condition: ARM:SOUR IMM • Send with VXIplug&play Function: hpe1422_cmd(...) Usage ARM:SOUR BUS ARM:SOUR TTLTRG3 Arm with ARM command Arm with VXIbus TTLTRG3 line ARM:SOURce? ARM:SOURce? returns the current arm source configuration. See the ARM:SOUR command for more response data information.
CALCulate CALCulate The Calculate subsystem allows post-processed temperature compensation to be done for voltage readings of the on-board reference thermistor of the VT1586A and for E, J, and T thermocouple types. These commands will normally not be used, instead, the conversions will be done by the DSP on the VT1422A or by the VXIplug&play driver (for VT1529B).
CALCulate Usage CALC:TEMP:THER? 0.0617,5.0 Compute thermistor temperature with thermistor voltage = 0.0617 V, excitation voltage = 5.0 V and resistance = 400 kΩ CALCulate:TEMPerature:TCouple? CALCulate:TEMPerature:TCouple? ,, converts an array of thermocouple output voltages into temperatures. The thermocouple type is specified in the parameter and the isothermal reference temperature is specified in the parameter. The temperature values are returned in ºC.
CALCulate errStatus = hpe1422_cmd(vi, "SENS:REF:CHAN (@10001),(@10002:10031)"); /* Specify those channels to be scanned */ errStatus = hpe1422_cmd(vi, "ROUT:SEQ:DEF (@10001:10031,10000)"); errStatus = hpe1422_cmd(vi, "INIT"); /* read voltages back into array */ errStatus = hpe1422_cmd(vi, "FORM PACK,64"); /* Get unconverted data from the FIFO */ errStatus = hpe1422_readFifo_Q(vi, 32, 64, voltArray, &howManyRead); /* build command string for thermistor temp calculation, voltArray[0] is thermistor voltage and
CALibration CALibration The Calibration subsystem provides for two major categories of calibration. 1. "A/D Calibration"— In these procedures, an external multimeter is used to calibrate the A/D gain on all five of its ranges. The multimeter also determines the value of the VT1422A's internal calibration resistor. The values generated from this calibration are then stored in nonvolatile memory and become the basis for "Working Calibrations.
CALibration 8 SCP 8 SCP 8 Multiplexer SCP CAL:TARE 8 SCP 8 SCP 8 SCP CAL:ZERO? User’s System Wiring *CAL? or CAL:SETup 8 SCP 8 SCP Figure 7-3.
CALibration Comments • Related Commands: CAL:VAL:RES, CAL:STOR ADC • When Accepted: Not while INITiated • Send with VXIplug&play Function: hpe1422_cmd(...
CALibration Command Sequence CAL:CONF:VOLTAGE .0625, ZERO connect voltage reference to Calibration Bus must wait for CAL:CONF:VOLT to complete *OPC? or SYST:ERR? (now measure voltage with external DMM) CAL:VAL:VOLT Send measured value to module repeat above sequence for full-scale repeat zero and full-scale for remaining ranges (0.
CALibration • Failure Information for +1 return: The FIFO buffer will contain pairs of values. The first value will be the failing channel and the second value is the Failure Code for that channel. Failure Codes found in the FIFO buffer are: a. Offset exceeds limit. Failure code is 1000.0 + (the offset measured) b. Gain error exceeds limit. Failure code is 2000.
CALibration CALibration:REMote:DATA? CALibration:REMote:DATA? extracts the remote calibration constants generated using the CAL:REMote? command. Comments • CAL:REM:DATA returns a definite length block of 1,024 float32 values that represent a gain and offset pair for each of 512 possible remote channels. The block is always 1,024, float64 values (8192 bytes) regardless how many RSCUs are actually connected to the VT1422A. Values for channel positions where RSCUs are not installed are set to 0.000.
CALibration CALibration:SETup CALibration:SETup causes the Channel Calibration function to be performed for every module channel with an analog SCP installed (input or output). The Channel Calibration function calibrates the A/D Offset and the Gain/Offset for these analog channels. This calibration is accomplished using internal calibration references. For more information see *CAL? on page 399. Note that the scope of the *CAL? and CAL:SETup commands is limited to the VT1422A and the SCPs it contains.
CALibration • Related Commands: SYST:ERR?, CAL:SETup, *CAL? • Send with VXIplug&play Function: hpe1422_cmdInt16_Q(...) Usage See CAL:SETup. CALibration:STORe CALibration:STORe stores the VT1422A’s most recently measured calibration constants into Flash Memory (Electrically Erasable Programmable Read Only Memory). When =ADC, the module stores its A/D calibration constants as well as constants generated from *CAL?/CAL:SETup into Flash Memory.
CALibration Command Sequence Storing A/D cal constants perform complete A/D calibration, then... CAL:STORE ADC Storing channel tare (offset) values CAL:TARE CAL:STORE TARE to correct channel offsets Optional depending on necessity of long term storage CALibration:TARE CALibration:TARE (@) measures offset (or tare) voltage present on the channels specified and stores the value in on-board RAM as a calibration constant for those channels.
CALibration Parameters Comments Parameter Name Parameter Type Range of Values Default Units ch_list channel list (string) 100 - 15731 none • CAL:TARE also performs the equivalent of a *CAL? operation. This operation uses the tare constants to set a DAC which will remove each channel offset as "seen" by the module's A/D converter. As an example assume that the system wiring to channel 0 generates a +0.1 volt offset with 0 volts (a short) applied at the Unit Under Test (UUT).
CALibration • The VT1422A's Flash Memory has a finite lifetime of approximately 10,000 write cycles (unlimited read cycles). While executing CAL:STOR once every day would not exceed the lifetime of the Flash Memory for approximately 27 years, an application that stored constants many times each day would unnecessarily shorten the Flash Memory's lifetime. See Comments below. • Executing CAL:TARE sets the Calibrating bit (bit 0) in Operation Status Group. Executing CAL:TARE? resets the bit.
CALibration CALibration:TARE? CALibration:TARE? Returns a value to indicate the success of the last CAL:TARE operation. CAL:TARE? returns the value only after the CAL:TARE operation is complete. • Returned Value: Value Meaning Further Action 0 Cal OK None -1 Cal Error Query the Error Queue (SYST:ERR?) See “Error Messages” on page 453. Also run *TST? -2 No results available Perform CAL:TARE before CAL:TARE? The data type for this returned value is int16.
CALibration • must be within 5% of the 7500 Ω nominal reference resistor value or a -222 ’Data out of range’ error will be generated. If this error occurs, verify the external measurement equipment and run *TST? on the VT1422A. • may be specified in kOhm (kohm). • When Accepted: Not while INITiated • Related Commands: CAL:CONF:RES, CAL:STORE ADC • Send with VXIplug&play Function: hpe1422_cmd(...
CALibration • may be specified in millivolts (mV). • When Accepted: Not while INITiated • Related Commands: CAL:CONF:VOLT, CAL:STORE ADC • Send with VXIplug&play Function: hpe1422_cmd(...
DIAGnostic DIAGnostic The DIAGnostic subsystem allows special operations to be performed that are not standard in the SCPI language. This includes checking the current revision of the Control Processor's firmware and that it has been properly loaded into Flash Memory.
DIAGnostic DIAGnostic:CALibration:SETup[:MODE] DIAGnostic:CALibration:SETup[:MODE] sets the type of calibration to use for analog output SCPs like the VT1531A and VT1532A when *CAL? or CAL:SET are executed. Parameters Comments Parameter Name Parameter Type Range of Values Default Units mode boolean (uint 16) 0|1 volts • When is set to 1 (the *RST Default) channels are calibrated using the Least Squares Fit method to provide the minimum error overall (over the entire output range).
DIAGnostic DIAGnostic:CALibration:TARE[:OTDetect]:MODE DIAGnostic:CALibration:TARE[:OTDetect]:MODE sets whether Open Transducer Detect current will be turned off or left on (the default mode) during the CAL:TARE operation. Parameters Comments Parameter Name Parameter Type Range of Values Default Units mode boolean (uint 16) 0|1 volts • When is set to 0 (the *RST Default), channels are tare calibrated with their OTD current off.
DIAGnostic DIAGnostic:CHECksum? DIAGnostic:CHECksum? performs a checksum operation on Flash Memory. A returned value of 1 indicates that Flash memory contents are correct. A returned value of 0 indicates that the Flash Memory is corrupted or has been erased. Comments Usage • Returned Value: Returns 1 or 0. The data type is int16. • Send with VXIplug&play Function: hpe1422_cmdInt16_Q(...
DIAGnostic DIAGnostic:CUSTom:MXB DIAGnostic:CUSTom:MXB ,,(@) sends the and parameters that allow the driver to calculate and download a custom linear Engineering Unit Conversion table to the VT1422A. Use the “[SENSe:]FUNCtion:CUSTom” on page 340 to link this custom EU conversion with channels in .
DIAGnostic • The parameter specifies the conversion offset at zero input volts. This parameter is also commonly known as the "Y-intercept." • specifies which channels may use this custom linear function. • Related Commands: [SENSe:]FUNCtion:CUSTom () • *RST Condition: All custom EU tables erased • Send with VXIplug&play Function: hpe1422_cmd(...) Usage DIAG:CUST:MXB 2.1,.
DIAGnostic DIAGnostic:CUSTom:REFerence:TEMPerature DIAGnostic:CUSTom:REFerence:TEMPerature extracts the current Reference Temperature Register Contents, converts it to 32-bit floating point format and sends it to the FIFO. This command is used to verify that the reference temperature is as expected after measuring it using a custom reference temperature EU conversion table. • Send with VXIplug&play Function: hpe1422_cmd(...
DIAGnostic DIAGnostic:IEEE? DIAGnostic:IEEE? returns the currently set IEEE mode. Comments • The data type is int16. • Related Commands: DIAG:IEEE • *RST Condition: DIAG:IEEE 1 • Send with VXIplug&play Function: hpe1422_cmdInt16_Q(...) DIAGnostic:INTerrupt[:LINe] DIAGnostic:INTerrupt[:LINe] sets the VXIbus interrupt line the module will use.
DIAGnostic DIAGnostic:OTDetect[:STATe] DIAGnostic:OTDetect[:STATe] ,(@) enables and disables the VT1422A's "Open Transducer Detection" capability (OTD). When Open Transducer Detection is enabled, a very high impedance path connects all SCP channels to a voltage source greater than 16 volts. If an enabled channel has an open transducer, the input signal becomes the source voltage and the channel returns an input over-range value. The value returned is +9.91E+37 (ASCII).
DIAGnostic DIAGnostic:OTDetect[:STATe]? DIAGnostic:OTDetect[:STATe]? (@) returns the current state of "Open Transducer Detection" for the SCP containing the specified . Parameters Comments Parameter Name Parameter Type Range of Values Default Units channel channel list (string) 100 - 163 none • The parameter must specify a single channel only. • Returned Value: Returns 1 (enabled) or 0 (disabled). The data type is int16.
DIAGnostic DIAGnostic:REMote:USER:DATA DIAGnostic:REMote:USER:DATA ,(@ )stores 894, 16-bit words of arbitrary user data to non-volatile flash memory. A custom format can be designed for information storage. For example, the data could define a 32 by 28 word array to store information about each channel. Note A Remote Signal Conditioning Unit’s Flash Memory has a finite lifetime of approximately 10,000 write cycles (unlimited read cycles).
DIAGnostic • Returned Value: DIAG:REM:USER:DATA? returns an IEEE definite length data block which represents an array of 894, int16 values. • RST Condition: Stored values not changed by *RST • Send with VXIplug&play Function: hpe1422_cmdInt16Arr_Q(...) DIAGnostic:TEST:REMote:NUMber? DIAGnostic:TEST:REMote:NUMber? ,,(@) executes a selected self-test number on a single Remote Signal Conditioning Unit connected through the VT1539A SCP.
DIAGnostic DIAGnostic:TEST:REMote:SELFtest? DIAGnostic:TEST:REMote:SELFtest? (@) executes a self-test on a single Remote Signal Conditioning Unit connected through the VT1539A SCP. An example of an RSCU is the VT1529A/B Remote Strain Bridge Conditioning unit.
DIAGnostic Test 5: This tests the filter settings on each bank (of eight channels). The method of this test is to ensure that the approximate rise times increase as the filters are changed from 100 Hz to 10 Hz and then to 2 Hz. The list of possible error messages is shown below (NOTE that the 1xx prefix to the channel number denotes the first three digits that uniquely identify which VT1529A/B is to be tested – 100, 101, 108, 109, etc.): 1xx45 – Channel 0: 10 Hz rise time not at least 2x that of 100 Hz.
DIAGnostic DIAGnostic:VERSion? DIAGnostic:VERSion? returns the version of the firmware currently loaded into Flash Memory. The version information includes manufacturer, model, serial number, firmware version, and date. Comments • Returned Value: Examples of the response string format: HEWLETT-PACKARD,E1422A,US34000478,A.04.00,Thu Aug 5 9:38:07 MDT 1994 • The data type is string. • Use VXIplug&play function: hpe1422_revision_query(...
FETCh? FETCh? Subsystem Syntax Comments FETCh? returns readings stored in VME memory. • This command is only available in systems using an Agilent/HP E1405B/06A command module. • FETCH? does not alter the readings stored in VME memory. Only the *RST or INIT… commands will clear the readings in VME memory. • The format of readings returned is set using the FORMat[:DATA] command. • Returned Value: REAL,32, REAL,64, and PACK,64, readings are returned in the IEEE-488.
FETCh? Use Sequence MEM:VME:ADDR #H300000 MEM:VME:SIZE #H100000 MEM:VME:STAT ON × ° (set up VT1422A for scanning) × TRIG:SOUR IMM INIT FORM REAL,64 FETCH? Note 292 1 megabyte (MB) or 262,144 readings let unit trigger on INIT program execution remains here until VME memory is full or the VT1422A has stopped taking readings affects only the return of data When using the MEM subsystem, the module must be triggered before executing the INIT command (as shown above) unless an external trigger (EXT trigger
FORMat FORMat The FORMat subsystem provides commands to set and query the response data format of readings returned using the [SENSe:]DATA:FIFO:…? commands. Subsystem Syntax FORMat [:DATA] [,] [:DATA]? FORMat[:DATA] FORMat[:DATA] [,] sets the format for data returned using the [SENSe:]DATA:FIFO:…?, [SENSe:]DATA:CVTable and FETCh? commands.
FORMat Note *TST? leaves the instrument in its power-on reset state. This means that the ASC,7 data format is set even if something else had been set before executing *TST?. If the FIFO needs to read for test information, set the format after *TST? and before reading the FIFO. • Related Commands: [SENSe:]DATA:FIFO:…?, [SENSe:]DATA:CVTable?, MEMory subsystem and FETCh?, Also see how DIAG:IEEE can modify REAL,32 returned values.
FORMat FORMat[:DATA]? FORMat[:DATA]? returns the currently set response data format for readings. Comments • Returned Value: Returns REAL, +32 | REAL, +64 | PACK, +64 | ASC, +7. The data type is string, int16. • Related Commands: FORMAT • *RST Condition: ASCII, 7 • Send with VXIplug&play Function: hpe1422_cmdString_Q(...
INITiate INITiate The INITiate command subsystem moves the VT1422A from the Trigger Idle State to the Waiting-For-Trigger State. When initiated, the instrument is ready to receive one (:IMMediate) or more (depending on TRIG:COUNT) trigger events. On each trigger, the module will perform one control cycle which includes reading analog and digital input channels (Input Phase), executing all defined algorithms (Calculate Phase) and updating output channels (Output Phase).
INPut INPut The INPut subsystem controls configuration of programmable input Signal Conditioning Plug-Ons (SCPs).
INPut • When Accepted: Not while INITiated • Related Commands: INP:FILT:FREQ?, INP:FILT:STAT ON | OFF • *RST Condition: generally set to MIN. The VT1529A/B is set to 10 Hz. • Send with VXIplug&play Function: hpe1422_cmd(...
INPut INPut:FILTer[:LPASs][:STATe] INPut:FILTer[:LPASs][:STATe] ,(@) enables or disables a programmable filter SCP or RSC channel. When disabled ( = OFF), these channels are in their "pass through" mode and provide only a 20 kHz, single-pole low pass filter. When re-enabled ( = ON), the SCP channel reverts to its previously programmed setting.
INPut INPut:GAIN INPut:GAIN ,(@) sets the channel gain on programmable amplifier SCP or RSCU. Note An important thing to understand about input amplifier SCPs and RSCUs is that given a fixed input value at a channel, changes in channel gain do not change the value returned from that channel. The DSP chip (Digital Signal Processor) keeps track of SCP gain and A/D range amplifier settings and "calculates" a value that reflects the signal level at the input terminal.
INPut INPut:GAIN? INPut:GAIN? (@) returns the gain currently set for channel. If the channel is not on an input SCP, the query will return zero. Parameters Comments Parameter Name Parameter Type Range of Values Default Units channel channel list (string) 100 - 163 none • The parameter must specify a single channel only. • If the channel specified does not have a programmable amplifier, INP:GAIN? will return the nominal as-designed gain for that channel.
INPut INPut:LOW? INPut:LOW? (@) returns the LO input configuration for the channel specified by . This command is for strain SCPs only, not for VT1529A/B. Parameters Comments Parameter Name Parameter Type Range of Values Default Units channel channel list (string) 100 - 163 none • The parameter must specify a single channel only. • Returned Value: Returns FLO or WV. The data type is string.
INPut INPut:POLarity? INPut:POLarity? returns the logical input polarity on a digital SCP channel. Parameters Comments Parameter Name Parameter Type Range of Values Default Units channel string 100 - 163 none • The parameter must specify a single channel. • If the channel specified is on an SCP that doesn't support this function, an error will be generated. See the SCP's User's Manual to determine its capabilities. • Returned Value: returns "NORM" or "INV.
MEASure MEASure The MEASure subsystem provides convenient setup-and-execution for some pre-measurement strain operations. Subsystem Syntax MEASure :VOLTage :EXCitation (@) :UNSTrained (@) MEASure:VOLTage:EXCitation? MEASure:VOLTage:EXCitation? (@) This command automatically configures the VT1422A to measure the bridge excitation voltage at each channel in and starts a measurement scan.
MEASure Notes 1. Unlike the MEAS:VOLT:EXC? command, the individual command sequence above cannot keep defined algorithms from running at INIT. Since algorithms can place values into the FIFO buffer, it will be necessary to determine which FIFO values are the excitation voltages. 2. Remember that the MEAS:VOLT:EXC? command also provides the average of 32 measurements for each excitation value.
MEASure MEASure:VOLTage:UNSTrained? MEASure:VOLTage:UNSTrained? (@) This command automatically configures the VT1422A to measure the bridge output voltage at each channel in and initiates a measurement scan. It averages 32 measurements for each channel and the averaged values are stored for later use by the strain Engineering Units conversion process on these channels. The strain bridges must be unstrained during this time.
MEASure • This command executes a measurement scan without running defined algorithms. This is to keep algorithms from placing values in the FIFO buffer. • The measurement sample interval is 392 µs • Filter settings and states are not changed by this command. • Note also that shunt resistor source and state are left as currently programmed. • After completing the measurements, the instrument is re-configured to the same settings that existed before the command was executed.
MEMory MEMory The MEMory subsystem allows using VME memory as an additional reading storage buffer. Subsystem Syntax Note Use Sequence MEMory :VME :ADDRess :ADDRess? :SIZE :SIZE? :STATe 1 | 0 | ON | OFF :STATe? This subsystem is only available in systems using an Agilent/HP E1405B/06A command module.
MEMory MEMory:VME:ADDRess MEMory:VME:ADDRess sets the A24 address of the VME memory card to be used as additional reading storage. Parameters Comments Parameter Name Parameter Type Range of Values Default Units A24_address numeric valid A24 address none • This command is only available in systems using an Agilent/HP E1405B/06A command module. • The default (if MEM:VME:ADDR not executed) is 24000016.
MEMory MEMory:VME:SIZE MEMory:VME:SIZE Specifies the number of bytes of VME memory to allocate for additional reading storage. Parameters Parameter Name Parameter Type Range of Values Default Units mem_size numeric to limit of available VME memory none Comments • This command is only available in systems using an Agilent/HP E1405B/6A command module. • may be specified in decimal, hex (#H), octal (#Q), or binary (#B).
MEMory MEMory:VME:STATe MEMory:VME:STATe enables or disables use of the VME memory card as additional reading storage. Parameters Comments Parameter Name Parameter Type Range of Values Default Units enable boolean (uint16) 1 | 0 | ON | OFF none • This command is only available in systems using an Agilent/HP E1405B/06A command module. • When the VME memory card is enabled, the INIT command does not terminate until data acquisition stops or VME memory is full.
OUTPut OUTPut The OUTPut subsystem is involved in programming source SCPs as well as controlling the state of VXIbus TTLTRG lines 0 through 7.
OUTPut Parameters Comments Parameter Name Parameter Type Range of Values Default Units amplitude numeric (float32) MIN | 30E-6 | MAX | 488E-6 A dc ch_list channel list (string) 100 - 163 none • Select 488E-6 (or MAX) for measuring resistances of less than 8000 Ω. Select 30E-6 (or MIN) for resistances of 8000 Ω and above. may be specified in µA (ua).
OUTPut • Returned Value: Numeric value of amplitude set. The data type is float32. • Related Commands: OUTP:CURR:AMPL • Send with VXIplug&play Function: hpe1422_cmdReal64_Q(...) Usage OUTP:CURR:AMPLITUDE? (@163) Check SCP current set for channel 63 (returns +3.0E-5 or +4.88E-4) OUTPut:CURRent[:STATe] OUTPut:CURRent[:STATe] ,(@) enables or disables current source on channels specified in .
OUTPut OUTPut:CURRent[:STATe]? OUTPut:CURRent[:STATe]? (@) returns the state of the Current Source SCP channel specified by . If the channel is not on a VT1505A Current Source SCP, the query will return zero. Parameters Comments Parameter Name Parameter Type Range of Values Default Units channel channel list (string) 100 - 163 none • The parameter must specify a single channel only. • Returned Value: returns 1 for enabled, 0 for disabled. data type is uint16.
OUTPut OUTPut:POLarity? OUTPut:POLarity? (@) returns the polarity on the digital output channel in . Parameters Comments Parameter Name Parameter Type Range of Values Default Units channel string 100 - 163 none • The parameter must specify a single channel. • Returned Value: returns one of NORM or INV. The type is string. • Send with VXIplug&play Function: hpe1422_cmdString_Q(...
OUTPut OUTPut:SHUNt? OUTPut:SHUNt? (@) returns the status of the shunt resistance on the specified Strain SCP or RSC channel. Parameters Comments Parameter Name Parameter Type Range of Values Default Units channel channel list (string) 100 - 15731 none • The parameter must specify a single channel only. • If specifies a non strain SCP or RSC, a 3007 "Invalid signal conditioning plug-on" error is generated. • Returned Value: Returns 1 or 0. The data type is uint16.
OUTPut • Related Commands: OUTPut:SHUNt…, SENSe:FUNCtion:STRain…, [SENSe:]STRain… • *RST Condition: OUTP:SHUNT:SOURCE INT on all VT1529A/B channels • Send with VXIplug&play Function: hpe1422_cmd(...) Usage OUTP:SHUNT:SOUR EXT,(@10000,10800) select user supplied shunt resistor on VT1529As connected to channels 0, 1, 8, and 9 OUTPut:SHUNt:SOURce? OUTPut:SHUNt:SOURce? (@) returns the source of the shunt resistance on the specified VT1529A/B Strain channel.
OUTPut OUTPut:TTLTrg:SOURce OUTPut:TTLTrg:SOURce selects the internal source of the trigger event that will operate the VXIbus TTLTRG lines. Parameters Comments Parameter Name Parameter Type Range of Values Default Units trig_source discrete (string) ALGorithm | TRIGger | FTRigger | SCPlugon none • The following table explains the possible choices. ALGorithm Generated by the Algorithm Language function "interrupt().
OUTPut OUTPut:TTLTrg[:STATe] OUTPut:TTLTrg:STATe specifies which VXIbus TTLTRG line is enabled to source a trigger signal when the module is triggered. TTLTrg can specify line 0 through 7. For example, …:TTLTRG4 or TTLT4 for VXIbus TTLTRG line 4. Parameters Comments Parameter Name Parameter Type Range of Values Default Units ttltrg_cntrl boolean (uint16) 1 | 0 | ON | OFF none • Only one VXIbus TTLTRG line can be enabled simultaneously.
OUTPut OUTPut:TYPE OUTPut:TYPE ,(@) sets the output drive characteristic for digital SCPs with programmable channels. Parameters Comments Parameter Name Parameter Type Range of Values Default Units select discrete (string) PASSive | ACTive seconds ch_list string 100 - 163 none • If the channels specified are on an SCP that doesn't support this function an error will be generated. See the SCP's User's Manual to determine its capabilities.
OUTPut OUTPut:VOLTage:AMPLitude OUTPut:VOLTage:AMPLitude ,(@) sets the excitation voltage on programmable Strain Bridge Completion SCPs pointed to by (the VT1511A for example). Note This command is not used to set output voltage on SCPs like the VT1531A Voltage Output SCP.
ROUTe ROUTe The ROUTe subsystem provides a method to define the sequence of channels in the VT1422A’s Analog Input scan list. Note that any analog input channels specified in an algorithm definition also affect the contents of this scan list. Queries are provided to determine the overall channel list definition including analog output channels as well as digital input and output channels.
ROUTe • Controlling Data Destination: The relative form of the SCPI Channel List syntax is used to control the destination of data from channels in the scan list. See “Channel List (Relative Form)” on page 232 for a discussion of the syntax.
ROUTe • Notice that since there are only 502 CVT elements available for up to 512 possible remote channel specifiers, these last 10 channels (15722-15731) must not be sent to the CVT or an error will be generated. Since the default data destination is to BOTH the FIFO and CVT (Data Destination 3), any reference in ROUT:SEQ:DEF to the last 10 remote channels must force the data destination to FIFO only.
ROUTe • Returned Value: Data type is an int16 array). Use ROUT:SEQ:POINTS? to determine how many values will be returned in the array. Can also be returned as type string, see later comment regarding VXIplug&play function. When the parameter is "AIN," "AOUT," "DIN," or "DOUT," each value returned represents a channel number. When the parameter is "DEST", each value returned is the data destination code for a channel in the "AIN" list.
ROUTe • Returned Value: Numeric. The C_SCPI type is int16. • *RST Condition: The Analog Input list returns +8, the others return +0. • Send with VXIplug&play Function: hpe1422_cmdInt16_Q(...
SAMPle SAMPle The SAMPle subsystem provides commands to set and query the interval between channel measurements (pacing). Subsystem Syntax SAMPle :TIMer :TIMer? SAMPle:TIMer SAMPle:TIMer sets the time interval between channel measurements. It is used to provide additional channel settling time. See “Settling Characteristics” on page 157 Parameters Comments Parameter Name Parameter Type Range of Values Default Units interval numeric (float32) (string) 4.0E-5 to 16.
SAMPle SAMPle:TIMer? SAMPle:TIMer? returns the sample timer interval. Comments • Returned Value: Numeric. The data type is float32. • Related Commands: SAMP:TIMER • *RST Condition: Sample Timer set to 4.0E-5 seconds. • Send with VXIplug&play Function: hpe1422_cmdReal64_Q(...
[SENSe] [SENSe] The SENSe subsystem controls conversion of the sensed electrical signal to a value in Engineering Units (EU) like volts, ohms, and temperature. Sense commands allow one to configure and extract data from the A/D-EU conversion portion of the instrument (see “INPut” subsystem on page 297 for input signal conditioning.
[SENSe] :TEMPerature ,,[,](@) :POST TC,,[,](@) :TOTalize (@) :VOLTage[:DC] [,](@) REFerence , [,](@) :POST THERmistor,,[],(@),(@) :CHANnels (@),(@) :POST (@),(@) :TEMPerature :POST ,(@) :THERmistor :RESistance :POST? ,(@) STRain :BRIDge :TYPE FBEN | H
[SENSe] • The Current Value Table is an area in memory that can contain as many as 502 32-bit floating point values. Algorithms can copy any of their variable values into these CVT elements while they execute. The algorithm statements to put data into the CVT are: writecvt( , ) and writeboth( , ). There is a fixed relationship between channel number and CVT element for reading values from channels placed in the Scan List with ROUT:SEQ:DEF.
[SENSe] [SENSe:]DATA:CVTable:RESet [SENSe:]DATA:CVTable:RESet sets all 64 Current Value Table entries to the IEEE-754 "Not-a-number." Comments • The value of NaN is +9.910000E+037 (ASCII). • Executing DATA:CVT:RES while the module is INITiated will generate an error 3000, "Illegal while initiated." • When Accepted: Not while INITiated • Related Commands: SENSE:DATA:CVT? • *RST Condition: SENSE:DATA:CVT:RESET • Send with VXIplug&play Function: hpe1422_cmd(...
[SENSe] • Related Commands: SENSE:DATA:FIFO:HALF?, ROUT:SEQ:DEFine • *RST Condition: FIFO is empty • Use VXIplug&play function: hpe1422_readFifo_Q(...
[SENSe] [SENSe:]DATA:FIFO:HALF? [SENSe:]DATA:FIFO:HALF? returns 32,768 values if the FIFO buffer is at least half-full. This command provides a fast means of acquiring blocks of values from the buffer. Comments • For acquiring data from continuous scans, an application needs to execute a DATA:FIFO:HALF? command and a read statement often enough to keep up with the rate that values are being sent to the FIFO.
[SENSe] [SENSe:]DATA:FIFO:MODE [SENSe:]DATA:FIFO:MODE sets the mode of operation for the FIFO buffer. Parameters Comments Parameter Name Parameter Type Range of Values Default Units mode discrete (string) BLOCk | OVERwrite none • In BLOCk(ing) mode, if the FIFO becomes full and measurements are still being made, the new values are discarded. • OVERwrite mode is used record the latest 65,024 values. The module must be halted (ABORT sent) before attempting to read the FIFO.
[SENSe] [SENSe:]DATA:FIFO:PART? [SENSe:]DATA:FIFO:PART? returns from the FIFO buffer. Parameters Comments Parameter Name Parameter Type Range of Values Default Units n_values numeric (int32) 1 - 2,147,483,647 none • Use the DATA:FIFO:COUNT? command to determine the number of values in the FIFO buffer. • The format of values returned is set using the FORMat[:DATA] command. • Returned Value: ASCII values are returned in the form ±1.234567E±123. For example 13.
[SENSe] [SENSe:]DATA:FIFO:RESet [SENSe:]DATA:FIFO:RESet clears the FIFO of values. The FIFO counter is reset to 0. Comments • When Accepted: Not while INITiated • Related Commands: SENSE:DATA:FIFO… • *RST Condition: SENSE:DATA:FIFO:RESET • Send with VXIplug&play Function: hpe1422_cmd(...) Usage SENSE:DATA:FIFO:RESET Clear the FIFO [SENSe:]FREQuency:APERture [SENSe:]FREQuency:APERture , sets the gate time for frequency measurement.
[SENSe] [SENSe:]FREQuency:APERture? [SENSe:]FREQuency:APERture? returns the frequency counting gate time. Parameters Comments Parameter Name Parameter Type Range of Values Default Units channel string 100 - 163 none • If the channel specified is on an SCP that doesn't support this function, an error will be generated. See the SCP's User's Manual for its capabilities. • Related Commands: SENSe:FREQuency:APERture • Returned Value: Returns numeric gate time in seconds.
[SENSe] [SENSe:]FUNCtion:CUSTom [SENSe:]FUNCtion:CUSTom [,](@) links channels with the custom Engineering Unit Conversion table loaded with the DIAG:CUST:MXB or DIAG:CUST:PIECE commands. Contact a VXI Technology System Engineer for more information on Custom Piecewise Engineering Unit Conversion for specific applications.
[SENSe] [SENSe:]FUNCtion:CUSTom:HVOLtage [SENSe:]FUNCtion:CUSTom:HVOLtage [,](@) links VT1529B high-level input (DCV measurement) channels with the custom Engineering Unit Conversion table loaded with the DIAG:CUST:MXB or DIAG:CUST:PIECE commands. This command is valid only on the VT1529B and is available with VXIplug&play driver revision A.01.09 or later (revision A.01.06 or later of hpe1422_32.dll).
[SENSe] [SENSe:]FUNCtion:CUSTom:REFerence [SENSe:]FUNCtion:CUSTom:REFerence [,](@) links channels with the custom Engineering Unit Conversion table loaded with the DIAG:CUST:PIECE command. Measurements from a channel linked with SENS:FUNC:CUST:REF will result in a temperature that is sent to the Reference Temperature Register. This command is used to measure the temperature of an isothermal reference panel using custom characterized RTDs or thermistors.
[SENSe] [SENSe:]FUNCtion:CUSTom:TCouple [SENSe:]FUNCtion:CUSTom:TCouple ,[,](@) links channels with the custom Engineering Unit Conversion table loaded with the DIAG:CUST:PIECE command. The table is assumed to be for a thermocouple and the parameter will specify the built-in compensation voltage table to be used for reference junction temperature compensation.
[SENSe] Usage program must put table constants into array table_block DIAG:CUST:PIEC 1,table_block,(@100:107) send characterized thermocouple table for use by channels 0-7 SENS:FUNC:CUST:TC N,.25,(@100:107) link custom thermocouple EU with chs 0-7, use reference temperature compensation for N type wire.
[SENSe] [SENSe:]FUNCtion:HVOLtage [SENSe:]FUNCtion:HVOLtage [,](@) links the specified VT1529B channels to return dc voltage on the high-level input (Excitation Sense + and -) pins on the RJ-45 connector for the channel. This command is valid only on the VT1529B and is available with VXIplug&play driver revision A.01.09 or later (revision A.01.06 or later of hpe1422_32.dll).
[SENSe] [SENSe:]FUNCtion:RESistance [SENSe:]FUNCtion:RESistance ,[,](@) links the EU conversion type for resistance and range with the channels specified by . Parameters Comments Parameter Name Parameter Type Range of Values Default Units excite_current discrete(string) 30E-6 | 488E-6 | MIN | MAX Amps range numeric (float32) see first comment V dc ch_list channel list (string) 100 - 163 none • The VT1422A has five ranges: 0.0625 V dc, 0.
[SENSe] [SENSe:]FUNCtion:STRain:FBENding [SENSe:]FUNCtion:STRain:FBPoisson [SENSe:]FUNCtion:STRain:FPOisson [SENSe:]FUNCtion:STRain:HBENding [SENSe:]FUNCtion:STRain:HPOisson [SENSe:]FUNCtion:STRain[:QUARter] [SENSe:]FUNCtion:STRain:Q120 [SENSe:]FUNCtion:STRain:Q350 [SENSe:]FUNCtion:STRain:USER [SENSe:]FUNCtion:STRain:FBENding [,](@) [SENSe:]FUNCtion:STRain:FBPoisson [,](@) [SENSe:]FUNCtion:STRain:FPOisson [,](@) [SENSe:]FUNCtion:STRain:HBENding [,](@
[SENSe] Command Note Bridge Type Strain SCP and VT1529A/B Usage :FBENding Full Bending Bridge Both VT1529A/B and SCPs :FBPoisson Full Bending Poisson Bridge SCPs only :FPOisson Full Poisson Bridge SCPs only :HBENding Half Bending Bridge Both VT1529A/B and SCPs :HPOisson Half Poisson Bridge SCPs only [:QUARter] Quarter Bridge (default) Both VT1529A/B and SCPs.
[SENSe] • If using amplifier SCPs, set them first and keep their settings in mind when specifying a range setting. For instance, if the expected signal voltage is to be approximately 0.1 V dc and the amplifier SCP for that channel has a gain of 8, must be set no lower than 1 V dc or an input out-of-range condition will exist. • The VT1529A/B has a fixed gain of 32. Keep this in mind when is set.
[SENSe] [SENSe:]FUNCtion:STRain::POST [,](@) links the post-processing strain EU conversion with the VT1529B channels specified by to measure the strain bridge output. See “Strain Measurement Command Sequence” on page 165. Both the strain channels and excitation channel should appear in the scan list set by ROUT:SEQ:DEF.
[SENSe] • Related Commands: CAL:REMote?,[SENSE:]STRAIN… • *RST Condition: SENSE:FUNC:VOLT AUTO on all channels and bridges set to FBEN on all strain channels • Send with VXIplug&play Function: hpe1422_cmd(...
[SENSe] • If using amplifier SCPs, set them first and keep their settings in mind when specifying a range setting. For instance, if the expected signal voltage is to be approximately 0.1 V dc and the amplifier SCP for that channel has a gain of 8, must be set no lower than 1 V dc or an input out-of-range condition will exist. • The parameter: values of 85 and 92 differentiate between 100 Ω (@ 0°C) RTDs with temperature coefficients of 0.00385 and 0.00392 ohm/ohm/°C respectively.
[SENSe] [SENSe:]FUNCtion:TEMPerature:POST [SENSe:]FUNCtion:TEMPerature:POST TC,,[,] (@) links VT1529B channels to a post-processing temperature EU conversion based on the sensor specified in and . Note: Do not include the thermocouple reference temperature or thermistor excitation channels in this command (for that, use the SENS:REF:POST ,,, (@),(@) command).
[SENSe] [SENSe:]FUNCtion:TOTalize [SENSe:]FUNCtion:TOTalize sets the SENSe function to TOTalize for channels in . Parameters Comments Parameter Name Parameter Type Range of Values Default Units ch_list string 100 - 163 none • The totalize function counts rising edges of digital transitions at Frequency/ Totalize SCP channels. The counter is 24 bits wide and can count up to 16,777,215. • The SENS:TOT:RESET:MODE command controls which events will reset the counter.
[SENSe] • If using amplifier SCPs or RSCs, set them first and keep their settings in mind when specifying a range setting. For instance, if the expected signal voltage is to be approximately 0.1 V dc and the amplifier SCP for that channel has a gain of 8, must be set no lower than 1 V dc or an input out-of-range condition will exist. • The *CAL? command calibrates channels based on Sense Amplifier SCP setup at the time of execution.
[SENSe] Parameters Comments Parameter Name Parameter Type Range of Values Default Units type discrete (string) THERmistor | RTD | CUSTom none sub_type numeric (float32) numeric (float32) for THER, use 5000 for RTD, use 85 | 92 for CUSTom, use 1 ohm none none range numeric (float32) see comments V dc ch_list channel list (string) 100 - 15731 none • See “Linking Input Channels to EU Conversion” on page 109 • The VT1422A has five ranges: 0.0625 V dc, 0.
[SENSe] [SENSe:]REFerence:POST [SENSe:]REFerence:POST THERmistor,,[,] (@),(@) links the thermistor channel in to the excitation voltage channel in and to the reference junction temperature EU conversion. The excitation channel is automatically set to SENS:FUNC:HVOL and the thermistor channel is set to SENS:FUNC:VOLT. The excitation channel must be on the same VT1529B as the thermistor channel.
[SENSe] [SENSe:]REFerence:CHANnels [SENSe:]REFerence:CHANnels (@),(@) causes channel specified by to appear in the scan list just before the channel(s) specified by . This command is used to include the thermocouple reference temperature channel in the scan list before other thermocouple channels are measured.
[SENSe] Parameters Comments Parameter Name Parameter Type Range of Values Default Units ref_channel channel list (string) 10000 - 15731 none ch_list channel list (string) 10000 - 15731 none • Use SENS:FUNC:TEMP:POST to configure channels to measure thermocouples. Then use SENS:REF:POST to configure one or more channels to measure an isothermal reference temperature. Finally, use SENS:REF:CHAN:POST to group the reference channel with its thermocouple measurement channels.
[SENSe] Parameters Comments Parameter Name Parameter Type Range of Values Default Units degrees_c numeric (float32) -126 to +126 °C • This command is used to specify to the VT1422A the temperature of a controlled temperature thermocouple reference junction. • When Accepted: Not while INITiated • Related Commands: SENS:FUNC:TEMP TC… • *RST Condition: Reference temperature is 0°C. • Send with VXIplug&play Function: hpe1422_cmd(...
[SENSe] • *RST Condition: Reference temperature is 0 °C. • Send with VXIplug&play Function: hpe1422_cmd(...
[SENSe] [SENSe:]REFerence:THERmistor:RESistance:POST? [SENSe:]REFerence:THERmistor:RESistance:POST? (@) returns the programmed sum of the resistor values in the thermistor divider circuit. This command is valid only on the VT1529B and is available with VXIplug&play driver revision A.01.09 or later (revision A.01.06 or later of hpe1422_32.dll).
[SENSe] • Send with VXIplug&play Function: hpe1422_cmd(...) Usage SENS:STRAIN:BRID Q120,(@10000:10031) configure strain RSC unit channels 00-31 connected to on-board channel 00 to 120 ohm quarter bridge [SENSe:]STRain:BRIDge:[TYPE]? [SENSe:]STRain:BRIDge[:TYPE]? (@) returns the VT1529A/B’s bridge configuration for channel specified by .
[SENSe] • Send with VXIplug&play Function: hpe1422_cmd(...) Usage SENS:STRAIN:CONN EXC,(@10000:10031) configure strain RSC unit channels 00-31 connected to on-board channel 00 to measure excitation voltages [SENSe:]STRain:CONNect? [SENSe:]STRain:CONNect? (@) returns the measurement connection state for the single VT1529A/B channel specified by .
[SENSe] Parameters Comments Parameter Name Parameter Type Range of Values Default Units excite_v numeric (float32) 0.01 - 99 volts ch_list channel list (string) 100 - 15731 none • The parameter must specify the channel used to sense the bridge voltage, not the channel position on a Bridge Completion SCP. • Related Commands: SENSE:STRAIN:…, SENSE:FUNC:STRAIN…, MEAS:VOLT:EXCitation • *RST Condition: 3.9 V • Send with VXIplug&play Function: hpe1422_cmd(...
[SENSe] [SENSe:]STRain:EXCitation:STATe [SENSe:]STRain:EXCitation:STATe ,(@) connects or disconnects all four excitation supply ports on a VT1529A/B. Only one channel for each VT1529A/B needs to be specified in and all four excitation supply ports on that unit will configure as specified in . The first channel number on each possible VT1529A/B is: 10000, 10100, 10800, 10900, 11600, 11700, 12400, 12500, 13200, 13300, 14000, 14100, 14800, 14900, 15600, 15700.
[SENSe] [SENSe:]STRain:GFACtor [SENSe:]STRain:GFACtor ,(@) specifies the gage factor to be used to convert strain bridge readings for the channels specified by .
[SENSe] [SENSe:]STRain:POISson [SENSe:]STRain:POISson ,(@) sets the Poisson ratio to be used for EU conversion of values measured on sense channels specified by . Parameters Comments Parameter Name Parameter Type Range of Values Default Units poisson_ratio numeric (float32) 0.1 - 0.
[SENSe] [SENSe:]STRain:UNSTrained [SENSe:]STRain:UNSTrained ,(@) specifies the unstrained voltage value to be used to convert strain bridge readings for the channels specified by . The VT1529A/B can use the MEAS:VOLT:UNSTrained command which automatically measures the unstrained bridge values and sends each value to the channels’ EU conversion. This command does not control the output voltage of any source.
[SENSe] • Related Commands: STRAIN:UNST • Send with VXIplug&play Function: hpe1422_cmdReal64_Q(...) Usage STRAIN:UNST? (@107) enter statement here query unstrained voltage for channel 7 returns the unstrained voltage set by STR:UNST [SENSe:]TOTalize:RESet:MODE [SENSe:]TOTalize:RESet:MODE , sets the mode for resetting totalizer channels in .
[SENSe] [SENSe:]TOTalize:RESet:MODE? [SENSe:]TOTalize:RESet:MODE? returns the reset mode for the totalizer channel in . Parameters Comments Parameter Name Parameter Type Range of Values Default Units channel string 100 - 163 none • The parameter must specify a single channel. • If the channel specified is not on a frequency/totalize SCP, an error will be generated. • Returned Value: returns INIT or TRIG. The type is string.
SOURce SOURce The SOURce command subsystem allows configuring output SCPs as well as linking channels to output functions.
SOURce • *RST Condition: SOUR:FM:STATE OFF, SOUR:PULM:STATE OFF, SENS:FUNC:COND, and INP:POL for all digital SCP channels. • Related Commands: SOUR:PULM[:STATe], SOUR:PULS:POLarity, SOUR:PULS:PERiod, SOUR:FUNC[:SHAPe]:SQUare • Send with VXIplug&play Function: hpe1422_cmd(...) Usage The variable frequency control for this channel is provided by the algorithm language. When the algorithm executes an assignment statement to this channel, the value assigned will be the frequency setting.
SOURce SOURce:FUNCtion[:SHAPe]:PULSe SOURce:FUNCtion[:SHAPe]:PULSe (@) sets the SOURce function to PULSe for the channels in . Parameters Comments Parameter Name Parameter Type Range of Values Default Units ch_list string 100 - 163 none • This PULSe channel function is further defined by the SOURce:FM:STATe and SOURce:PULM:STATe commands. If the FM state is enabled then the frequency modulated mode is active.
SOURce Comments • This command is coupled with the SOURce:FM command. If the FM state is enabled then the PULM state is disabled. If the PULM state is enabled then the FM state is disabled. If both the FM and the PULM states are disabled then the PULSe channel is in the single pulse mode. • If the channels specified are not on a Frequency/Totalize SCP, an error will be generated. • *RST Condition: SOUR:PULM:STATE OFF • Send with VXIplug&play Function: hpe1422_cmd(...
SOURce • The variable pulse-width control for this channel is provided by the algorithm language. When the algorithm executes an assignment statement to this channel, the value assigned will be the pulse-width setting. For example: O140 = .0025 /* set channel 43 pulse-width to 2.5 ms */ • Send with VXIplug&play Function: hpe1422_cmd(...) Usage SOUR:PULS:PER .
SOURce • The variable frequency control for this channel is provided by the algorithm language. When the algorithm executes an assignment statement to this channel, the value assigned will be the frequency setting. For example: O143 = 2000 /* set channel 43 to 2 kHz */ • Send with VXIplug&play Function: hpe1422_cmd(...) Usage SOUR:PULS:WIDTH 2.50E-3,(@143) set fixed pulse width of 2.
SOURce • To reduce the offset voltage at each dynamic strain "Buffered Output" channel: 1. Measure a Buffered Output channel with its bridge unstrained and place the value in a variable arbitrarily called . 2. Send minus to that channel with the SOUR:VOLT command. For example: SOUR:VOLT <-offset_v>,(@10000) • Send with VXIplug&play Function: hpe1422_cmd(...) Usage 378 SOUR:VOLT .041,(@10031) VT1422A Command Reference correct a -41 mV offset at channel 31 of VT1529A/B 00.
STATus STATus The STATus subsystem communicates with the SCPI defined Operation and Questionable Data status register sets. Each is comprised of a Condition register, a set of Positive and Negative Transition Filter registers, an Event register, and an Enable register. Condition registers allow the current real-time states of their status signal inputs (signal states are not latched) to be viewed.
STATus Initializing the Status System The following table shows the effect of Power-on, *RST, *CLS, and STATus:PRESet on the status system register settings. SCPI Transition Filters SCPI Enable Registers SCPI Event Registers IEEE 488.2 Registers ESE and SRE IEEE 488.
STATus Weighted Bit Values Register queries are returned using decimal weighted bit values. Enable registers can be set using decimal, hex, octal, or binary. The following table can be used to help set Enable registers using decimal and decode register queries.
STATus • Returned Value: Decimal weighted sum of all set bits. The data type is uint16. • Related Commands: *CAL?, CAL:ZERO, INITiate[:IMMediate], STAT:OPER:EVENT?, STAT:OPER:ENABLE, STAT:OPER:ENABLE? • *RST Condition: No Change • Use VXIplug&play function: hpe1422_operCond_Q(...
STATus STATus:OPERation:ENABle? STATus:OPERation:ENABle? returns the value of bits set in the Operation Enable register. Comments • Returned Value: Decimal weighted sum of all set bits. The data type is uint16. • Related Commands: *STB?, SPOLL, STAT:OPER:COND?, STAT:OPER:EVENT?, STAT:OPER:ENABLE • *RST Condition: No change • Send with VXIplug&play Function: hpe1422_cmdInt16_Q(...
STATus STATus:OPERation:NTRansition STATus:OPERation:NTRansition sets bits in the Negative Transition Filter (NTF) register. When a bit in the NTF register is set to one, the corresponding bit in the Condition register must change from a one to a zero in order to set the corresponding bit in the Event register. When a bit in the NTF register is zero, a negative transition of the Condition register bit will not change the Event register bit.
STATus STATus:OPERation:PTRansition STATus:OPERation:PTRansition sets bits in the Positive Transition Filter (PTF) register. When a bit in the PTF register is set to one, the corresponding bit in the Condition register must change from a zero to a one in order to set the corresponding bit in the Event register. When a bit in the PTF register is zero, a positive transition of the Condition register bit will not change the Event register bit.
STATus STATus:PRESet STATus:PRESet sets the Operation Status Enable and Questionable Data Enable registers to 0. After executing this command, none of the events in the Operation Event or Questionable Event registers will be reported as a summary bit in either the Status Byte Group or Standard Event Status Group. STATus:PRESet does not clear either of the Event registers.
STATus STATus:QUEStionable:CONDition? STATus:QUEStionable:CONDition? returns the decimal weighted value of the bits set in the Condition register. Comments • The Condition register reflects the real-time state of the status signals. The signals are not latched; therefore, past events are not retained in this register (see STAT:QUES:EVENT?). • Returned Value: Decimal weighted sum of all set bits. The data type is uint16.
STATus STATus:QUEStionable:ENABle? STATus:QUEStionable:ENABle? returns the value of bits set in the Questionable Enable register. Comments • Returned Value: Decimal weighted sum of all set bits. The data type is uint16. • Related Commands: *STB?, SPOLL, STAT:QUES:COND?, STAT:QUES:EVENT?, STAT:QUES:ENABLE • *RST Condition: No change. • Send with VXIplug&play Function: hpe1422_cmdInt16_Q(...
STATus STATus:QUEStionable:NTRansition STATus:QUEStionable:NTRansition sets bits in the Negative Transition Filter (NTF) register. When a bit in the NTF register is set to one, the corresponding bit in the Condition register must change from a one to a zero in order to set the corresponding bit in the Event register. When a bit in the NTF register is zero, a negative transition of the Condition register bit will not change the Event register bit.
STATus STATus:QUEStionable:PTRansition STATus:QUEStionable:PTRansition sets bits in the Positive Transition Filter (PTF) register. When a bit in the PTF register is set to one, the corresponding bit in the Condition register must change from a zero to a one in order to set the corresponding bit in the Event register. When a bit in the PTF register is zero, a positive transition of the Condition register bit will not change the Event register bit.
SYSTem SYSTem The SYSTem subsystem is used to query for error messages, types of Signal Conditioning Plug-ons (SCPs) and the SCPI version currently implemented. Subsystem Syntax SYSTem :CTYPe? (@) :CTYPe:REMote? <@) :ERRor? :VERSion? SYSTem:CTYPe? SYSTem:CTYPe? (@) returns the identification of the Signal Conditioning Plug-On installed at the specified channel.
SYSTem Parameters Comments Parameter Name Parameter Type Range of Values Default Units channel channel list (string) 100 - 15731 none • The parameter must specify a single channel only. Either the 3-digit or 5-digit format can be used. • Returned Value: Examples of the response string format are: E1539 Strain SCP; Chan 108 = E1529A; Chan 109 = E1529B E1539 Strain SCP; Chan 108 = No Device; Chan 109 = E1529B The data type is string.
TRIGger TRIGger The TRIGger command subsystem controls the behavior of the trigger system once it is initiated (see INITiate command subsystem). Figure 7-6 shows the overall Trigger System model. The shaded area shows the ARM subsystem portion.
TRIGger Event Sequence Figure 7-7 shows how the module responds to various trigger/arm configurations. Trigger Idle State Initiated State yes TRIG:SOUR TIMer? no Waiting for Arm yes ARM Event no Reset and Start Timer Waiting for Trigger NOTE: For continuous algorithm execution use TRIG:COUNT 0 or INF. This is the default setting. Trig. Counter= TRIG:COUNT? no Trigger Event ABORT yes Scan Inputs and Increment Trig. Counter Execute Control Loop Algorithm Update Control Outputs Figure 7-7.
TRIGger TRIGger:COUNt TRIGger:COUNt sets the number of times the module can be triggered before it returns to the Trigger Idle State. The default count is 1. Note that this default was chosen to make testing data acquisition scan lists easier (only one scan list worth of data in FIFO per trigger). For algorithm operation, it is usually desirable to change the count to INFinite to accept continuous triggers. See Figure 7-7 on page 394.
TRIGger TRIGger[:IMMediate] TRIGger[:IMMediate] causes one trigger when the module is set to the TRIG:SOUR BUS or TRIG:SOUR HOLD mode. Comments • This command is equivalent to the *TRG common command or the IEEE-488.2 "GET" bus command. • Related Commands: TRIG:SOURCE • Use VXIplug&play function: hpe1422_trigImm(...) Usage TRIG:IMM Use TRIGGER to start a measurement scan TRIGger:SOURce TRIGger:SOURce configures the trigger system to respond to the trigger event.
TRIGger • While TRIG:SOUR is IMM, simply INITiate the trigger system to start a measurement scan. • When Accepted: Before INIT only. • Related Commands: ABORt, INITiate, *TRG • *RST Condition: TRIG:SOUR TIMER • Send with VXIplug&play Function: hpe1422_cmd(...) Usage TRIG:SOUR EXT Hardware trigger input at Connector Module TRIGger:SOURce? TRIGger:SOURce? returns the current trigger source configuration. • Returned Value: Discrete; one of BUS, EXT, HOLD, IMM, SCP, TIM, or TTLT0 through TTLT7.
TRIGger • Related Commands: TRIG:SOUR TIMER, ARM:SOUR, ARM:IMM, INIT, TRIG:SOUR?, ALG:EXPL:TIME? • *RST Condition: TRIG:TIM 1.0E-3 • Send with VXIplug&play Function: hpe1422_cmd(...) Usage TRIG:TIMER 1.0E-1 TRIG:TIMER 1 Set the module to scan inputs and execute all algorithms every 100 ms Set the module to scan inputs and execute all algorithms every second TRIGger:TIMer[:PERiod]? TRIGger:TIMer[:PERiod]? returns the currently set Trigger Timer interval. Comments • Returned Value: Numeric 1 through 6.
IEEE-488.2 Common Command Reference IEEE-488.2 Common Command Reference *CAL? *CAL? Calibration command. The calibration command causes the Channel Calibration function to be performed for every module channel. The Channel Calibration function includes calibration of A/D Offset and Gain and Offset for all 64 channels. This calibration is accomplished using internal calibration references. The *CAL? command causes the module to calibrate A/D offset and gain and all channel offsets.
IEEE-488.2 Common Command Reference Note If Open Transducer Detect (OTD) is enabled when *CAL? is executed, the module will disable OTD, wait one minute to allow channels to settle, perform the calibration and then re-enable OTD. If OTD is turned off by the program before executing *CAL?, it should also wait one minute for settling. *CLS *CLS Clear Status Command.
IEEE-488.2 Common Command Reference *ESE *ESE Standard Event Status Enable Register Command. Enables one or more events in the Standard Event Status Register to be reported in bit 5 (the Standard Event Status Summary Bit) of the Status Byte Register. An event is enabled by specifying its decimal weight for . To enable more than one event (bit), specify the sum of the decimal weights. The data type for is int16.
IEEE-488.2 Common Command Reference *IDN? *IDN? Identity. Returns the device identity. The response consists of the following four fields (fields are separated by commas): • Manufacturer • Model Number • Serial Number (returns 0 if not available) • Driver Revision (returns 0 if not available) *IDN? returns the following response strings depending on model and options: HEWLETT-PACKARD,E1422A,, • The data type for this returned value is string.
IEEE-488.2 Common Command Reference *OPC? *OPC? Operation Complete Query. Causes an instrument to place a 1 into the instrument's output queue when all pending instrument operations invoked by SCPI commands are finished. By requiring the computer to read this response before continuing program execution, synchronization can be ensured between one or more instruments and the computer. The data type for this returned value is int16.
IEEE-488.
IEEE-488.2 Common Command Reference *STB? *STB? Status Byte Register Query. Returns the weighted sum of all set bits in the Status Byte Register. Refer to the *ESE command earlier in this chapter for a table showing the contents of the Status Byte Register. *STB? does not clear bit 6 (Service Request). The Message Available bit (bit 4) may be cleared as a result of reading the response to *STB?. The data type for this returned value is int16. • Use VXIplug&play function: hpe1422_readStatusByte_Q(...
IEEE-488.2 Common Command Reference • IF error 3052 'Self test failed. Test info in FIFO' is returned. A FIFO value of 1 through 99 or ≥300 is a failed test number. A value of 100 through 163 is a channel number for the failed test. A value of 200 through 204 is an A/D range number for the failed test where 200 = 0.0625, 201 = 0.25V, 202 = 1 V, 203 = 4 V, and 204 = 16 V ranges. For example DATA:FIFO? returns the values 72 and 108. This indicates that test number 72 failed on channel 8.
IEEE-488.
IEEE-488.2 Common Command Reference ANALOG OUTPUT AND DIGITAL I/O TESTS: 301: 302: 303: 304: 305: 306: 307: 308: 313: 315: 316: 317: 318: 331: 332: 333: 334: 335: 336: 337: 341: 342: 343: 344: 345: 346: 347: 348: 349: 350: 351: 352: 353: 354: Current and Voltage Output SCPsdigital DAC control. Current and Voltage Output SCPsDAC noise.
Command Quick Reference Command Quick Reference The following tables summarize SCPI and IEEE-488.2 Common (*) commands for the VT1422A Remote Channel Multifunction Module.
Command Quick Reference SCPI Command Quick Reference Command Description CALibration (continued) :REMote? Calibrates Remote Signal Conditioning Units :DATA Sends RSC cal constants from CAL:REM:DATA? back to VT1422A :DATA? Queries VT1422A for all remote cal constants :STORe Copies RSCU calibration constants from working ram to non-volatile memory :SETup Performs Channel Calibration procedure :SETup? Returns state of CAL:SETup operation (returns error codes or 0 for OK) :STORe ADC | TARE Store
Command Quick Reference SCPI Command Quick Reference Command Description FORMat [:DATA] [, ] Set format for response data from [SENSe:]DATA? ASCii[, 7] Seven bit ASCII format (not as fast as 32-bit because of conversion) PACKed[, 64] Same as REAL, 64 except NaN, +INF and -INF formatted for BASIC REAL[, 32] IEEE 32-bit floating point (requires no conversion so is fastest) REAL, 64 IEEE 64-bit floating point (not as fast as 32-bit because of conversion) [:DATA]? Returns format: REAL
Command Quick Reference SCPI Command Quick Reference Command Description OUTPut (continued) :TTLTrg [:STATe] ON | OFF [:STATe]? When module triggered, source a VXIbus trigger on TTLTrg Returns whether the TTL trigger line specified by n is enabled :TYPE PASSive | ACTive,(@) sets the output drive type for a digital channel :TYPE? (@) Returns the output drive type for :VOLTage :AMPLitude ,(@) Sets the voltage amplitude on Voltage Output and Strain
Command Quick Reference SCPI Command Quick Reference Command Description SENse:FUNCtion (continued) :RESistance ,[,](@) Configure channels to sense resistance measurements :STRain Links measurement channels as having read bridge voltage from: :FBENding [,](@) :POST [,](@),(@) :FBPoisson [,](@) :POST [,](@),(@) :FPOisson [,](@) :POST [,](@),(@) :HBENdin
Command Quick Reference SCPI Command Quick Reference Command Description :STRain :BRIDge[:TYPE] ,(@) Set bridge configuration switches on VT1529A/B :BRIDge[:TYPE]? (@) Returns the current bridge configuration setting :CONNect BRIDge | EXCitation,(@) Set switches to sense bridge output or excitation voltage on VT1529A/B :CONNect? (@) Returns the current sense setting for the channel specified :EXCitation ,(@) Specifies the Excitation V
Command Quick Reference SCPI Command Quick Reference Command Description STATus (continued) :QUEStionable Questionable Data Status Group: Bit assignments; 8=Calibration Lost, 9=Trigger Too Fast, 10=FIFO Overflowed, 11=Over voltage, 12=VME Memory Overflow, 13=Setup Changed.
Command Quick Reference IEEE-488.2 Common Command Quick Reference Category Command Title Description Calibration *CAL? Calibrate Performs internal calibration on all 64 channels out to the terminal module connector. Returns error codes or 0 for OK Internal Operation *IDN? Identification Returns the response: HEWLETT-PACKARD,E1422A,, *RST Reset Resets all scan lists to zero length and stops scan triggering. Status registers and output queue are unchanged.
Notes: Chapter 7 VT1422A Command Reference 417
Notes: 418 VT1422A Command Reference Chapter 7
Appendix A Specifications • VT1422A Specifications. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . page 419 • VT1529A/B Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . page 449 VT1422A Specifications Power Requirements (with no SCPs installed) +5 V +12 V -12 V +24 V -24 V -5.2 V IPm=Peak Module Current IPm IDm IPm IDm IPm IDm IPm IDm IPm IDm IPm IDm IDm=Dynamic Module Current 1.0 0.02 0.06 0.01 0.01 0.01 0.1 0.01 0.1 0.01 0.15 0.
Trigger Timer and Sample Timer Accuracy External Trigger Input 100 ppm (0.01%) from -10 °C to +70 °C TTL compatible input. Negative true edge triggered except first trigger will occur if external trigger input is held low when module is INITiated. Minimum pulse width 100 ns. Since each trigger starts a complete scan of two or more channel readings, maximum trigger rate depends on module configuration.
Measurement Accuracy dc volts (90 days) 23 °C ±1 °C (with *CAL? done after 1 hr warm up and CAL:ZERO? within 5 min.). NOTE: If autoranging is ON: for readings < 3.8 V, add ±0.02% to linearity specifications. for readings ≥ 3.8 V, add ±0.05% to linearity specifications. 0.0625 0.25 1 4 16 0.01% 0.01% 0.01% 0.01% 0.01% 5.3 μV 10.3 μV 31 μV 122 μV 488 μV 18 μV 45 μV 110 μV 450 μV 1.8 mV 8 μV 24 μV 90 μV 366 μV 1.5 mV Temperature Coefficient: Gain - 10 ppm/°C. Offset - (0 - 40 °C) 0.
• 5k Thermistor Reference, SCPs VT1508A/09A. . . . . . . . . . . . . • RTD Reference, SCPs VT1501A/02A/03A . . . . . . . . . . . . . . . . • RTD, SCPs VT1501A/02A/03A . . . . . . . . . . . . . . . . . . . . . . . . . • RTD, SCPs VT1508A/09A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . • 2250 Thermistor, SCPs VT1501A/02A/03A . . . . . . . . . . . . . . . • 2250 Thermistor, SCPs VT1508A/09A . . . . . . . . . . . . . . . . . . . • 5k Thermistor, SCPs VT1501A/02A/03A . . . . . . . . . . . . . . . .
Thermocouple Type E (-200 - 800 °C), SCPs VT1501/02/03A Appendix A Specifications 423
Thermocouple Type E (-200 - 800 °C), SCPs VT1508/09A 424 Specifications Appendix A
Thermocouple Type E (0 - 800 °C), SCPs VT1501A/02A/03A Appendix A Specifications 425
Thermocouple Type E (0 - 800 °C), SCPs VT1508A/09A 426 Specifications Appendix A
Thermocouple Type E Extended, SCPs VT1501A/02A/03A Appendix A Specifications 427
Thermocouple Type E Extended, SCPs VT1508A/09A 428 Specifications Appendix A
Thermocouple Type J, SCPs VT1501A/02A/03A Appendix A Specifications 429
Thermocouple Type J, SCPs VT1508A/09A 430 Specifications Appendix A
Thermocouple Type K, SCPs VT1501A/02A/03A Appendix A Specifications 431
Thermocouple Type R, SCPs VT1501A/02A/03A 432 Specifications Appendix A
Thermocouple Type R, SCPs VT1508A/09A Appendix A Specifications 433
Thermocouple Type S, SCPs VT1501A/02A/03A 434 Specifications Appendix A
Thermocouple Type S, SCPs VT1508A/09A Appendix A Specifications 435
Thermocouple Type T, SCPs VT1501A/02A/03A 436 Specifications Appendix A
Thermocouple Type T, SCPs VT1508A/09A Appendix A Specifications 437
5k Thermistor Reference, SCPs VT1501A/02A/03A 438 Specifications Appendix A
5k Thermistor Reference, SCPs VT1508A/09A Appendix A Specifications 439
RTD Reference, SCPs VT1501A/02A/03A 440 Specifications Appendix A
RTD, SCPs VT1501A/02A/03A Appendix A Specifications 441
RTD, SCPs VT1508A/09A 442 Specifications Appendix A
2250 Thermistor, SCPs VT1501A/02A/03A Appendix A Specifications 443
2250 Thermistor, SCPs VT1508A/09A 444 Specifications Appendix A
5k Thermistor, SCPs VT1501A/02A/03A Appendix A Specifications 445
5k Thermistor, SCPs VT1508A/09A 446 Specifications Appendix A
10k Thermistor, SCPs VT1501A/02A/03A Appendix A Specifications 447
10k Thermistor, SCPs VT1508A/09A 448 Specifications Appendix A
VT1529A/B Specifications General: VT1529A/B outputs: Single static output from 32:1 multiplexer 32 individually buffered dynamic outputs Bridge completion: 120, 350 Ω and user installed, program selectable Bridge configurations: Full, half and quarter Remote operation: 330 m (1000 ft) from multiplexed output 100 m (300 ft) from buffered outputs Bridge excitation: User-supplied excitation in 8-channel banks Linearization: Mx+b on all channels Calibration: Internal self-calibration source 50 kΩ a
Voltage offset: Typical offset depends on previous channel value as shown in figure below. Typical offset error due to "soak" voltage 6 4 Offset error (µV) 2 0 -0.5 -0.4 -0.3 -0.2 -0.1 0 0.1 0.2 0.3 0.4 0.5 -2 40usec 100usec 200usec 500usec -4 -6 Sustained "soak" voltage on low-voltage inputs Gain Error: <0.
Half Bridge Bending Errors: (5 V Excitation, GF=2) μ∈ Error (μ∈) 28 23 17 12 6 0.5 6 12 17 23 28 -50,000 -40,000 -30,000 -20,000 -10,000 0 10,000 20,000 30,000 40,000 50,000 Full Bridge Bending Errors: (5 V Excitation, GF=2) μ∈ Error (μ∈) 28 22 17 11 6 0.3 6 11 17 22 28 -50,000 -40,000 -30,000 -20,000 -10,000 0 10,000 20,000 30,000 40,000 50,000 Mechanical Height: 4.45 cm (1.75 in) Width: 49.53 cm (19.5 in) Weight: 1.
452 Specifications Appendix A
Appendix B Error Messages Possible Error Messages: Chapter B -108 'Parameter not allowed.' -109 'Missing parameter.' -160 'Block data error.' -211 'Trigger ignored.' -212 'Arm ignored.' -213 'Init ignored.' -221 'Settings conflict.' -222 'Data out of range.' -224 'Illegal parameter value.' -240 'Hardware error.' Execute *TST?. -253 'Corrupt media.' -281 'Cannot create program.' -282 'Illegal program name.' -310 'System error.' -410 'Query INTERRUPTED.' 1000 'Out of memory.
454 Error Messages 3000 'Illegal while initiated.' Operation must be performed before INIT or INIT:CONT ON. 3004 'Illegal command. CAL:CONF not sent.' Incorrect sequence of calibration commands. Send CAL:CONF:VOLT command before CAL:VAL:VOLT and send CAL:CONF:RES command before CAL:VAL:RES. 3005 'Illegal command. Send CAL:VAL:RES.' The only command accepted after a CAL:CONF:RES is a CAL:VAL:RES command. 3006 'Illegal command. Send CAL:VAL:VOLT.
Chapter B 3033 '0x2: DSP-Parameter out of range.' 3034 '0x4: DSP-Flash rom erase failure.' 3035 '0x8: DSP-Programming voltage not present.' 3036 '0x10: DSP-Invalid SCP gain value.' Check that SCP is seated or replace SCP. Channel numbers are in FIFO. 3037 '0x20: DSP-Invalid *CAL? constant or checksum. *CAL? required.' 3038 '0x40: DSP-Couldn't cal some channels.' Check that SCP is seated or replace SCP. Channel numbers are in FIFO. 3039 '0x80: DSP-Re-Zero of ADC failed.
3052 'Self test failed. Test info in FIFO.' Use SENS:DATA:FIFO:ALL? to retrieve data from FIFO. NOTE: *TST? always sets the FIFO data FORMat to ASCII,7. Read FIFO data into string variables. FIFO Value Definition 1 - 99 ID number of failed test (see following table for possible corrective actions) 100 - 163 Channel number(s) associated with test (ch 0-63) 164 Special "channel" used for A/D tests only 200 A/D range 0.0625 V associated with failed test 201 A/D range 0.
Chapter B 3053 'Corrupt on board Flash memory.' 3056 'Custom EU not loaded.' May have erased custom EU conversion table with *RST. May have linked channel with standard EU after loading custom EU, this erases the custom EU for this channel. Reload custom EU table using DIAG:CUST:LIN or DIAG:CUST:PIEC. 3057 'Invalid ARM or TRIG source when S/H SCPs enabled.' Don't set TRIG:SOUR or ARM:SOUR to SCP with VT1510A or VT1511A installed. 3058 'Hardware does not have D32, S/H or new trigger capabilities.
458 Error Messages 3083 'Global symbol (variable or custom function) already defined.' Trying to define a global variable with same name as a user defined function or vice versa. User functions are also global. 3084 'Algorithmic error queue full.' ALG:DEF has generated too many errors from the algorithm source code.
Chapter B 3085 'Algorithm too big.' Algorithm exceeded 46k words (23k if enabled to swap) or exceeded size specified in . 3086 'Not enough memory to compile Algorithm.' The algorithm's constructs are using too much translator memory. The Agilent/HP E1406 needs more memory. Try breaking the algorithm into smaller algorithms. 3088 'Too many functions.' Limit is 32 user defined functions. 3089 'Bad Algorithm array index.' Must be from 0 to (declared size)-1.
460 Error Messages 3103 'Algorithm swapping already enabled; Can't change size.' Only send parameter on initial definition. 3104 'GLOBALS can't be enabled for swapping.' Don't send parameter for ALG:DEF 'GLOBALS'. 3105 'Invalid SCP switch setting.' 3106 'E1536A debounce.' Ch list must contain all lower 4 and/or upper 4 channels. 3107 'Channel data direction conflicts with command.' Check switches that hardware-define data direction (configure channel as input or output).
3122 'This multiple channel function must not span multiple SCPs.' See the VT1538A SCP manual. 3123 'E1538A OE switch ON conflicts with this command.' See the VT1538A SCP manual. 3124 'E1538A OE switch OFF conflicts with this command.' See the VT1538A SCP manual. 3125 'E1538A VRS switch setting conflicts with OE switch setting.' See the VT1538A SCP manual. 3126 'E1538A VRS switch setting conflicts with PU switch setting.' See the VT1538A SCP manual. 3127 'Undefined E1538A stepper motor mode.
462 Error Messages 3138 'VT1539A SCP channel 1 not responding.' Indicates a communications error between the VT1539A SCP and a Remote Signal Conditioning Unit connected to the SCP’s channel 1 input. Check the Data Interface connection as well as the power connection to that RSCU. 3140 'VT1529A/B data not received properly, cable connected?' 3141 'Gain of 0.0 not allowed for VT1529A/B channel.' 3142 'Custom EU out of date, bridge connection was EXC when created, now is BRID.
Appendix C VT1529A/B Verification & Calibration Introduction Note Recommended Equipment Instrument This appendix describes the verification and calibration procedure for the VT1529A/B Remote Strain Conditioning Unit when used with the VT1422A and the VT1539A SCP. The verification and calibration procedure for the VT1422A and all SCPs other than the VT1539A is identical to the procedures for the VT1415A Algorithmic Closed Loop Controller.
The circuit diagram for the dummy load is: 10k 7.5k 20k RJ-45 Connector 1+ 2– 3+ 4– 5+ 6– NC 7+ 8– Excitation Sense RCAL Excitation Sense Notes: Resistors are 0.1% tolerance Connector is L-COM TPS3088 or equivalent Wire is stranded 24 AWG, L-COM TDB8-X00 or equivalent Figure C-1. Dummy Load Circuit Tests Remote calibration (CAL:REMOTE? command) performs calibration against the Remote Cal signal from the VT1422A which is traceable to a standard.
Note For a quick functional check of the VT1529A/B, perform only the VT1422A Self-Test. Note The VT1422A VXIplug&play Soft Front Panel can be used to enter the commands and queries described in the test procedures. Test V-1: Self-Test Description This test performs a self-test on the VT1529A/B by running the VT1422A self-test. This self-test checks much of the basic functionality of the VT1529A/B. Setup The VT1529A/B must be connected to the VT1422A through the VT1539A SCP.
Troubleshooting Failures A failure in the *CAL? command indicates a problem with the VT1422A or with one of the installed SCPs. A failure in the CAL:REMote? command indicates a problem with the VT1529A/B, the VT1539A SCP or the cable between the VT1529A/B and the VT1539A. Test V-3: Sense Out Description This test verifies the operation of the excitation sense circuitry of the VT1529A/B. It measures the excitation voltage with the dummy load attached to each channel.
8-pin Telcom Connector (RJ-45) Excitation to CHs 1-7 + Excitation Pin 1 +Excitation - Excitation 10K Pin 8 +Excitation Sense 10K 20K Pin 6 +Sense Pin 3 -Sense enable excitation CHs 0-7 Current Limit Dummy Load CH00 CH01 Optional Filter 2,10,100Hz 10K off for full bridge Cal+ Cal- Pin 7 +Excitation Sense -Excitation Sense CH00 -Excitation Sense Pin 2 X2 Instrument.
where R is the completion resistor value in kΩ. With Vexcitation = 5.000 V, the nominal output voltages can be computed: for R = 0 Ω, Vsense = 0.357143 V for R = 120 Ω, Vsense = 0.337684 V for R = 350 Ω, Vsense = 0.301120 V Note that the actual measurements will vary based on the actual resistor values in the dummy load, so these values should be considered approximate when running this test. Setup The VT1529A/B must be connected to the VT1422A through the VT1539A SCP.
resistor path. Send the MEAS:VOLT:UNStrained? (@) query to the VT1422A. The expected return value is ~0.357 V on each channel. Configure the VT1529A/B for 120 Ω quarter-bridge operation using the SENS:FUNC:STR:Q120 (@) command. Send the MEAS:VOLT:UNStrained? (@) query to the VT1422A. The expected return value is ~0.338 V on each channel. Configure the VT1529A/B for 350Ω quarter-bridge operation using the SENS:FUNC:STR:Q350 (@) command.
The signal path through the VT1529A/B is highlighted in Figure C-4. 8-pin Telcom Connector (RJ-45) Excitation to CHs 1-7 + Excitation Pin 1 +Excitation - Excitation 10K Pin 8 Current Limit +Excitation Sense 10K 10K Pin 6 +Sense Pin 3 -Sense enable excitation CHs 0-7 Instrument.
Test V-6: Filters Description Tests the low-pass filters for each channel in the VT1529A/B. The nominal filter bandwidths are 2 Hz, 10 Hz, 100 Hz, and 20 kHz. The filter bandwidth is calculated by measuring the rise time of the step response. The bandwidth is related to the rise time by the equation: Bandwidth = 0.35 / Rise Time The VT1422A cannot sample fast enough to measure the rise time of the 20 kHz filter.
Procedure If necessary, send the *CAL? query to the VT1422A (required if more than eight hours has elapsed since the last *CAL? command). The expected return value is “+0”. Each channel of the VT1529A/B must be tested individually. Follow the steps below for each channel to be tested. Use the VT1422A VXIplug&play Soft Front Panel to select Reset from the System menu. Then, select Algorithm from the Panels menu. Create the algorithm below.
From the Panels menu, select Main Panel, then enter the following commands on the Enter Command line in the Interactive Communications box to test the 100 Hz filter.
Test V-7: Shunt Cal Resistor Port Description This test verifies the operation of the switches associated with the front panel Shunt Cal Resistor port. The operation of these switches can be verified by observing the changes in the bridge output voltage when external shunt calibration is disabled and enabled. A 1 kΩ external shunt resistor is connected to the Shunt Cal Resistor port and the Dummy Load is attached. The 350 Ω bridge completion resistor path is configured.
8-pin Telcom Connector (RJ-45) Excitation to CHs 1-7 + Excitation Pin 1 +Excitation - Excitation 10K Pin 8 Current Limit +Excitation Sense 10K 10K Pin 6 +Sense Pin 3 -Sense enable excitation CHs 0-7 + X16 Wagner Voltage enable Dummy Load CH00 CH01 Optional Filter 2,10,100Hz 10K off for full bridge Cal+ Cal- Pin 7 +Excitation Sense -Excitation Sense CH00 -Excitation Sense Pin 2 X2 Instrument. Amplifier 7.
Note that the actual measurements will vary based on the actual resistor values in the dummy load, so these values should be considered approximate when running this test. Setup The VT1529A/B must be connected to the VT1422A through the VT1539A SCP. The Dummy Load must be connected to the channel(s) being tested. The Voltage Source must be connected to the appropriate channel bank terminals of the Bridge Excitation input on the VT1529A/B. The signal path through the VT1529A/B is highlighted in Figure C-6.
For each channel (each must be tested separately), enable internal shunt calibration by sending the OUTP:SHUNt ON,(@) command. Note: this turns off the shunt on the previous channel. Send the MEAS:VOLT:UNStrained? (@) query to the VT1422A. The expected return value is ~0.211 V on each channel. Calibration Calibration is performed via the VT1422A CAL:REMote? command. The VT1422A will automatically calibrate the specified VT1529A/B using the Remote Calibration signal from the VT1422A.
478 VT1529A/B Verification & Calibration Appendix C
Appendix D Glossary The following terms have special meaning when related to the VT1422A. Algorithm In general, an algorithm is a tightly defined procedure that performs a task. This manual uses the term to indicate a program executed within the VT1422A that implements a data acquisition and control algorithm. Algorithm Language The algorithm programming language specific to the VT1422A. This programming language is a subset of the ANSI 'C' language.
Control Processor The Digital Signal Processor (DSP) chip that performs all of the VT1422A's internal hardware control functions as well as performing the EU Conversion process. DSP Same as Control Processor EU Engineering Units EU Conversion Engineering Unit Conversion: Converting binary A/D readings (in units of A/D counts) into engineering units of voltage, resistance, temperature, strain. These are the "built in" conversions (see SENS:FUNC: ...).
Appendix D Swapping This term applies to algorithms that are enabled to swap. These algorithms can be exchanged with another of the same name while the original is running. The "new" algorithm becomes active after an update command is sent. This "new" algorithm may again be swapped with another and so on. This capability allows changing algorithm operation without stopping and leaving this and perhaps other processes without control.
Notes: 482 Glossary Appendix D
Appendix E Wiring and Noise Reduction Methods Separating Digital and Analog SCP Signals Signals with very fast rise time can cause interference with nearby signal paths. This is called cross-talk. Digital signals present this fast rise-time situation. Digital I/O signal lines that are very close to analog input signal lines can inject noise into them. To minimize cross-talk, maximize the distance between analog input and digital I/O signal lines.
Recommended Wiring and Noise Reduction Techniques Unshielded signal wiring is very common in Data Acquisition applications. While this worked well for low-speed integrating A/D measurements and/or for measuring high-level signals, it does not work for high-speed sampling A/Ds, particularly when measuring low-level signals like thermocouples or strain gage bridge outputs. Unshielded wiring will pick up environmental noise, causing measurement errors.
VT1422A Guard Connections Common Mode Voltage Limits When to Make Shield Connections NOTE The VT1422A guard connection provides a 10 kΩ current limiting resistor between the guard terminals (G) and VT1422A chassis ground for each 8 channel SCP bank. This is a safety device for the case where the Device Under Test (DUT) isn't actually floating; the shield is connected to the DUT and also connected to the VT1422A guard terminal (G).
VT1422A Noise Rejection Normal Mode Noise (Enm) Common Mode Noise (Ecm) Keeping Common Mode Noise out of the Amplifier This noise is actually present at the signal source and is a differential noise (Hi to Lo). It is what is filtered out by the buffered filters on the VT1502A, VT1503A, VT1508A, and VT1509A SCPs. This noise is common to both the Hi and Lo differential signal inputs.
Appendix F Generating User Defined Functions Introduction The VT1422A has a limited set of mathematical operations such as add, subtract, multiply, and divide. Many control applications require functions such as square root for calculating flow rate or a trigonometric function to correctly transition motion of moving object from a start to ending position.
approximation. Remember, the entire range is broken up into only 128 segments of Mx+B operations. If accuracy is desired, the range MUST be limited over which calculations are made. Many transcendental functions are simply used as a scaling multiplier. For example, a sine wave function is typically created over a range of 360 degrees or 2π radians. After which, the function repeats itself. It's a simple matter to make sure the 'x' term is scaled to this range before calculating the result.
+1 −π/2 π/2 −1 −2 +2 Figure F-1. A Haversine Function A typical use of this function would be to output an analog voltage or current at each Scan Trigger of the VT1422A and over the range of the haversine. For example, suppose a new position is desired for an analog output and it is moved from 1 mA to 3 mA over a period of 100 ms. If the TRIG:TIMER setting or the EXTernal trigger was set to 2 ms, then forcing fifty intervals over the range of the haversine is desired.
'C' sin(-1.570798) -1.000000 'VT1422A' sin(-1.570798) -0.999905 'C' sin(-1.256639) -0.951057 'VT1422A' sin(-1.256639) -0.950965 'C' sin(-0.942479) -0.809018 'VT1422A' sin(-0.942479) -0.808944 'C' sin(-0.628319) -0.587786 'VT1422A' sin(-0.628319) -0.587740 'C' sin(-0.314160) -0.309017 'VT1422A' sin(-0.314160) -0.308998 'C' sin(0.000000) 0.000000 'VT1422A' sin(0.000000) 0.000000 'C' sin(0.314160) 0.309017 'VT1422A' sin(0.314160) 0.308998 'C' sin(0.628319) 0.
Appendix G Example PID Algorithm Listings This appendix includes listings of the built-in PIDA and PIDB, as well as the more advanced PIDC which can be downloaded as a custom algorithm. • PIDA Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . page 491 • PIDB Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . page 493 • PIDC Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PIDA Source Listing /********************************************************************************************/ /* I/O Channels */ /* Must be defined by the user */ /* */ /* inchan - Input channel name */ /* outchan - Output channel name */ /* */ /********************************************************************************************/ /* */ /********************************************************************************************/ /* PID algorithm for VT1422A controller module.
PIDB Algorithm Figure G-2 shows the block diagram of a more advanced algorithm that is favored in process control because of the flexibility allowed by its two differential terms. The "D" differential term is driven by changes in the process input measurement. The "SD" differential term is driven by changes in the setpoint variable value. SD_factor Variable clip limits status .B3 SD_out variable P_factor Variable Error variable Setpoint Variable Σ + Man_out Variable clip limits status .
Manual Control The PIDB algorithm provides for manual control with "bumpless" transfer between manual and automatic control. The variables that control the manual mode are: Auto/Manual control; Man_state (0 = automatic (default), 1 = manual) Manual output control; Man_out (defaults to current auto value) Manual control slew rate; Man_inc (defaults to 9.99E+37 (fast change)) Use the ALG:SCALAR and ALG:UPDATE commands to change the manual control variables before or after the algorithm is running.
PIDB Source Listing /********************************************************************************************/ /* PID_B */ /********************************************************************************************/ /* I/O Channels */ /* Must be defined by the user */ /* */ /* inchan - Input channel name */ /* outchan - Output channel name */ /* alarmchan - Alarm channel name */ /* */ /********************************************************************************************/ /* */ /****************
/* on 'n', where n is the algorithm number (as returned by ALG_NUM, for*/ /* example). The first value is placed in the (10 * n)th 32-bit word of */ /* the CVT. The other values are written in subsequent locations. */ /* */ /* History_mode = 0: Summary to CVT only. In this mode, four values */ /* are output to the CVT. */ /* */ /* Location Value */ /* 0 Input */ /* 1 Error */ /* 2 Output */ /* 3 Status */ /* */ /* History_mode = 1: Summary to CVT and FIFO.
/*PID algorithm code: */ /* Test for Process Variable out of limits */ if ( (inchan >> PV_max) || ( PV_min >> inchan ) ) /* PV alarm test */ { if ( !Status.B6 ) { Status.B6 = 1; alarmchan = 1; interrupt(); } } else { Status.
/* Zero the derivative terms */ PV_old = inchan; Setpoint_old = Setpoint; } /* On subsequent triggers, continue integrating */ else /* not First trigger */ { I_out = Error * I_factor + I_out; } /* Clip the Integral term to specified limits */ if ( I_out >> I_max ) { I_out = I_max; Status.B1=1; } else if ( I_min >> I_out ) { I_out = I_min; Status.B1=1; } else { Status.
/* Clip output to specified limits */ if ( outchan >> Out_max ) { outchan = Out_max; Status.B0=1; } else if ( Out_min >> outchan ) { outchan = Out_min; Status.B0=1; } else { Status.B0 = 0; } /* Clear alarm output if no alarms */ if (!(Status.B6 || Status.
PIDC Algorithm PIDC is very similar to PIDB with the addition of extended history mode. See comments in source code below.
/* At startup in the Manual control mode, the output will be held at */ /* its current value. */ /* */ /* At startup, in the Automatic control mode, the output will slew */ /* from its initial value towards P_factor * Error at a rate determined */ /* by the Integral control constant (I_out is initialized to cancel P_out). */ /* */ /* For process monitoring, data may be sent to the FIFO and current */ /* value table (CVT). There are three levels of data logging, controlled */ /* by the History_mode variable.
/* Other Variables */ static float I_out; /* Integral term */ static float P_out; /* Proportional term */ static float D_out; /* Derivative term */ static float Error; /* Error term */ static float PV_old; /* Last process variable */ static float Setpoint_old; /* Last setpoint - for derivative */ static float SD_out; /* Setpoint derivative term */ static float Status = 0; /* Algorithm status word */ /* */ /* B0 - PID_out at clip limit */ /* B1 - I_out at clip limit */ /* B2 - D_out at clip limit */ /* B3 -
/* First, find the Process Variable "error" */ /* This calculation has gain of minus one (-1) */ Error = Setpoint - inchan; /* Test for error out of limits */ if ( (Error >> Error_max) || (Error_min >> Error) ) { if ( !Status.B5 ) { Status.B5 = 1; alarmchan = 1; interrupt(); } } else { Status.
/* Clip to specified limits */ if ( D_out >> D_max )/* Clip derivative */ { D_out = D_max; Status.B2=1; } else if ( D_min >> D_out ) { D_out = D_min; Status.B2=1; } else { Status.
Index VT1422A Remote Channel Multi-function DAC Module Symbols (ALG_NUM), determining an algorithms identity, 193 (FIFO mode BLOCK), continuously reading the FIFO, 135 (FIFO mode OVER), reading the latest FIFO values, 137 (First_loop), determining first execution, 190 (FM), fixed width pulses at variable frequency, 121 (FM), variable frequency square-wave output, 121 (Important!), performing channel calibration, 122 (PWM), variable width pulses at fixed frequency, 121 *CAL?, how to use, 122 *RST, default se
Alternate method of computing strain with VT1529B, 168 AMPLitude OUTPut:CURRent:AMPLitude, 312 OUTPut:CURRent:AMPLitude?, 313 SOURce:VOLTage[ AMPLitude], 377 An example using the operation group, 145 APERture SENSe:FREQuency:APERture, 338 SENSe:FREQuency:APERture?, 339 Arithmetic operators, 208 Arm and trigger sources, 129 ARM subsystem, 256 ARM:SOURce, 257 ARM:SOURce?, 258 ARRay ALGorithm[:EXPLicit]:ARRay, 237 ALGorithm[:EXPLicit]:ARRay?, 239 Assigning values, 217 Assignment operator, 208 Attaching and rem
*OPC, 402 *OPC?, 403 *PMC, 403 *RMC, 403 *RST, 403 *SRE, 404 *SRE?, 404 *STB?, 405 *TRG, 405 *TST?, 405 *WAI, 408 Command Reference, SCPI, 235 ABORt subsystem, 236 Algorithm subsystem, 237 ALGorithm:FUNCtion:DEFine, 249 ALGorithm:OUTPut:DELay, 250 ALGorithm:OUTPut:DELay?, 251 ALGorithm:UPDate:CHANnel, 253 ALGorithm:UPDate:WINDow, 254 ALGorithm:UPDate:WINDow?, 255 ALGorithm:UPDate[:IMMediate], 252 ALGorithm[:EXPLicit]:ARRay, 237 ALGorithm[:EXPLicit]:ARRay?, 239 ALGorithm[:EXPLicit]:DEFine, 239 ALGorithm[:EXP
OUTPut:SHUNt:SOURce, 317 OUTPut:SHUNt:SOURce?, 318 OUTPut:SHUNt?, 317 OUTPut:TTLTrg:SOURce?, 319 OUTPut:TTLTrg[:STATe], 320 OUTPut:TTLTrg[:STATe]?, 320 OUTPut:TYPE, 321 OUTPut:TYPE?, 321 OUTPut:VOLTage:AMPLitude, 322 OUTPut:VOLTage:AMPLitude?, 322 ROUTe subsystem, 323 ROUTe:SEQuence:DEFine?, 323, 325 ROUTe:SEQuence:POINts?, 326 SAMPle subsystem, 328 SAMPle:TIMer, 328 SAMPle:TIMer?, 329 SENSe subsystem, 330 SENSe:DATA:CVTable:RESet, 333 SENSe:DATA:CVTable?, 331 SENSe:DATA:FIFO:COUNt:HALF?, 334 SENSe:DATA:FIF
STATus:QUEStionable:NTRansition, 389 STATus:QUEStionable:NTRansition?, 389 STATus:QUEStionable:PTRansition, 390 STATus:QUEStionable:PTRansition?, 390 SYSTem subsystem, 391 SYSTem:CTYPe:REMote?, 391 SYSTem:CTYPe?, 391 SYSTem:ERRor?, 392 SYSTem:VERSion?, 392 TRIGger subsystem, 393 TRIGger:COUNt, 395 TRIGger:COUNt?, 395 TRIGger:SOURce, 396 TRIGger:SOURce?, 397 TRIGger:TIMer, 397 TRIGger:TIMer?, 398 TRIGger[:IMMediate], 396 Command sequences, defined, 31 Comment lines, 220 Comments, 217 Common Command Format, 2
DATA, 266 DATA?, 267, 286 DIAGnostic:REMote:USER:DATA, 286 FORMat:DATA, 293 FORMat:DATA?, 295 Data structures, 211 types, 210 Decimal constant, 213 Declaration, 216 Declaration initialization, 213 declaration of conformity, 5–7 Declarations, 216 Declarator, 215 Declaring variables, 217 Default settings, power-on, 104 DEFine ALGorithm:FUNCtion:DEFine, 249 ALGorithm[:EXPLicit]:DEFine, 239 ROUTe:SEQuence:DEFine?, 323, 325 Defined input and output channels, 187 Defining an algorithm for swapping, 197 and access
sending data to, 191 time relationship of readings in the FIFO, 192 writing values to, 192 Filters adding circuits to terminal module, 54 configuring the status transition filters, 145 First algorithm execution, determining, 190 Fixed width pulses at variable frequency (FM), 121 Fixing the problem, 158 Flash Memory, 480 Flash memory access, disabling, 29 Flash memory limited lifetime, 267, 269, 286 FM:STATe SOURce:FM:STATe, 372 SOURce:FM:STATe?, 373 Format Common Command, 229 SCPI Command, 229 specifying th
setpoint profiles, 205 Implied Commands, 230 IMPORTANT! Don’t use CAL:TARE for thermocouple wiring, 153 Making low-noise measurements, 38 Resolving programming problems, 104 Indefinite length block data example, 197 INF, IEEE, 294 Init-declarator, 215 Init-declarator-list, 215 Initialization, declaration, 213 Initializing variables, 191 INITiate subsystem, 296 INITiate[:IMMediate], 296 INITiating/Running algorithms, 132 Input channels, 187 Input impedance specification, 420 Input protect feature, disabling,
thermocouple measurements, 115 terminal block considerations for TC, 45 thermocouple, 114 Measuring the reference temperature, 114 MEMory:VME:ADDRess, 309 MEMory:VME:ADDRess?, 309 MEMory:VME:SIZE, 310 MEMory:VME:SIZE?, 310 MEMory:VME:STATe, 311 MEMory:VME:STATe?, 311 Messages, error, 453 min(expression1,expression2), 209 MODE SENSe:DATA:FIFO:MODE, 336 SENSe:TOTalize:RESe:MODE, 370 Mode history, 494 selecting the FIFO, 128 which FIFO mode?, 135 MODE? SENSe:DATA:FIFO:MODE?, 336 SENSe:TOTalize:RESe:MODE?, 371
Numeric, parameter types, 230 O Octal constant, 214 Offset A/D, 268, 399 channel, 268, 399 offset control for dynamic strain port, 75 Offsets compensating for system offsets, 153 residual sensor, 153 system wiring, 153 On-Board Channels, Channels Lists, 231 On-board Current Source specification, 420 Operating sequence, 194 Operation, 122, 153 Instrument operation cycle, 100 operational overview, 98 Operation and restrictions, 122 Operation status group examples, 146 Operation, custom EU, 150 Operation, sta
Primary-expression, 214 Problem, fixing the, 158 Problems, checking for, 157 Problems, resolving programming, 104 Process monitoring algorithm, 204 Profiles, implementing setpoint, 205 Program flow control, 210 Program structure and syntax, 217 Programming model, 102 Programming the trigger timer, 131 PTRansition STATus:OPERation:PTRansition, 385 STATus:OPERation:PTRansition?, 385 STATus:QUEStionable:PTRansition, 390 STATus:QUEStionable:PTRansition?, 390 PULSe SOURce:FUNC[:SHAPe]:PULSe, 374 Q Questionable
SCPs and Terminal Module, 40 Selecting the FIFO mode, 128 the trigger source, 129 trigger timer arm source, 130 Selection-statement, 216 Self test error messages, 456 SELFtest DIAGnostic:TEST:REMote:SELFtest?, 287–288 Self-test how to read results, 406 Sending Data to the CVT and FIFO, 191 SENSe subsystem, 330 SENSe:DATA:CVTable:RESet, 333 SENSe:DATA:CVTable?, 331 SENSe:DATA:FIFO:COUNt:HALF?, 334 SENSe:DATA:FIFO:COUNt?, 334 SENSe:DATA:FIFO:HALF?, 335 SENSe:DATA:FIFO:MODE, 336 SENSe:DATA:FIFO:MODE?, 336 SENS
Signal, connection to channels, 46 Signals, outputting trigger, 131 SIZE ALGorithm[:EXPLicit]:SIZE?, 246 MEMory:VME:SIZE, 310 MEMory:VME:SIZE?, 310 Size, determining an algorithms', 198 Soft front panel (VXIplug&play). See online help.
STATus:QUEStionable:EVENt?, 388 STATus:QUEStionable:NTRansition, 389 STATus:QUEStionable:NTRansition?, 389 STATus:QUEStionable:PTRansition, 390 STATus:QUEStionable:PTRansition?, 390 Storage, defining data, 127 STORe CALibration:REMote:STORe, 267 CALibration:STORe, 269 STRain SENSe:FUNCtion:STRain, 347 SENSe:FUNCtion:STRain::POST, 349 Strain measurements with VT1529B, 164 Structure, overall program, 221 Structures, data, 211 Subsystem ABORT, 236 Algorithm, 237 ARM, 256 CALibration, 262 DIAGnostic, 276
CALCulate:TEMPerature:THERmistor?, 259 Thermocouple Accuracy Graph Type E (0 - 800°C), 425–426 Type E (-200 - 800°C), 423–424 Type E (-200-800C), 423 Type EExtended, 427–428 Type J, 429–430 Type K, 431 Type R, 432–433 Type S, 434–435 Type T, 436–437 Thermocouple measurements, 114 Thermocouple reference temperature compensation, 114 Thermocouples and CAL:TARE, 153 TIME ALGorithm[:EXPLicit]:TIME, 248 Time relationship of readings in FIFO, 192 Timer SAMPle:TIMer, 328 SAMPle:TIMer?, 329 Timer, programming the t
OUTPut:VOLTage:AMPLitude?, 322 CALibration:CONFigure:VOLTage, 264 SENSe:FUNCtion:VOLTage, 354 SOURce:VOLTage, 377 Voltage CALibration:VALue:VOLTage, 274 Voltage measurements with VT1529B, 175 voltage, offset control dynamic strain, 75 Voltage, setting the VT1511A strain bridge SCP excitation, 109 VT1422 background operation, 148 VT1422A Configuring, 23 overview of, 96 VT1422A, configuring the, 23 VT1529B Additional capabilities, 161 Changes to the Use Model, 162 Strain Measurements, 164 Temperature measurem
VT1415A/1422A VXI Technology™ Algorithmic Closed Loop Controller and Remote Channel Multifunction DAC Overview The VT1415A and VT1422A are C-size, single-slot, VXI modules capable of either multi-function input/output (data acquisition) or powerful control capabilities. They serve as powerful data acquisition modules that handle analog input/output and digital input/output in both static and dynamic modes.
VT1415A/1422A VXI Technology™ Algorithmic Closed Loop Controller and Remote Channel Multifunction DAC The VT1422A serves as the controller in this system, managing all the configuration, calibration, triggering of measurements, EU conversion, and calibration processes. The main differences between the VT1415A and VT1422A are: • The VT1422A has 40 kB of memory available for user algorithms; the VT1415A has 48 kB.
VT1415A/1422A VXI Technology™ Algorithmic Closed Loop Controller and Remote Channel Multifunction DAC The on-board 40 MHz pipelined DSP provides highly deterministic execution, making it easy to accurately predict cycle times. Engineering unit conversions for temperature, strain, resistance, and voltage measurements are made automatically without slowing down the algorithm execution speed.
VT1415A/1422A VXI Technology™ Algorithmic Closed Loop Controller and Remote Channel Multifunction DAC For applications requiring large channel counts of strain measurement, the EX1629 provides a more cost effective approach to static (and dynamic) strain measurements. Dynamic strain measurements are implemented by connecting the EX1629 to high-speed digitizers, such as the VXI Technology VT1432B and VT1433B. Use the VT1533A Digital I/O SCP to provide two 8-bit input/ output words.
VT1415A/1422A VXI Technology™ Algorithmic Closed Loop Controller and Remote Channel Multifunction Timing Signals Timing: Scan triggers: Synchronization: Alternate synchronization: Scan-to-scan timing and sample-to-sample timing can be set independently. Can be derived from a software command or a TTL level from other VXI modules, internal timer, or external hardware. Typical latency 17.5 µs.
VT1415A/1422A VXI Technology™ Algorithmic Closed Loop Controller and Remote Channel Multifunction To calculate accuracy over temperature range outside the ±1 °C range, results after *CAL are given by replacing each of the above error terms as follows: Replace with Replace with Intrinsic functions: interrupt( ), writefifo( ), writecvt( ),writeboth( ), min( ), max( ), abs( ). Other functions: Create own custom functions to handle transcendental operations.
VT1415A/1422A VXI Technology™ Algorithmic Closed Loop Controller and Remote Channel Multifunction VT1415A/VT1422A Ordering Information Includes Spring Clamp Terminal Block VT1415A-02 Algorithmic Closed Loop Controller, Includes Screw Connector Terminal Block VT1415A-A3F Interface to rackmount terminal panel VT1422A Remote Channel Multi-function Data Acquisition & Control Module VT1422A-001 16-Port RJ-45 Connector Block (supports VT1415A also) VT1422A-011 Screw Terminal Connector Block (supports VT1415A