Agilent Technologies VEE Pro User Manual
Agilent Technologies VEE Pro User Manual

Agilent Technologies VEE Pro User Manual

Graphical programming language optimized for building test and measurement applications
Table of Contents

Advertisement

Quick Links

VEE Pro User's Guide

Advertisement

Table of Contents
loading
Need help?

Need help?

Do you have a question about the VEE Pro and is the answer not in the manual?

Questions and answers

Summary of Contents for Agilent Technologies VEE Pro

  • Page 1 VEE Pro User’s Guide...
  • Page 2 The information contained in this document is subject to change without notice. Agilent Technologies makes no warranty of any kind with regard to this material, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose. Agilent Technologies Inc.
  • Page 3: Trademark Information

    Trademark Information Microsoft®, MS-DOS®, Windows®, MS Windows®, and Windows NT® are U.S. registered trademarks of Microsoft Corporation. MATLAB® is a registered trademark of The MathWorks, Inc. Netscape is a U.S. trademark of Netscape Communications Corporation. UNIX® is a registered trademark of the Open Group. Printing History Edition 1 - March 2000 Reflects software version 6.0...
  • Page 4: Conventions Used In This Manual

    ⇒ The “⇒” is used in a shorthand notation to show File Open the location of Agilent VEE features in the menu. ⇒ For example, “ ” means to select File Open...
  • Page 5: Table Of Contents

    Contents Introduction Overview of Agilent VEE ................3 Advantages of Using Agilent VEE for Test Development ....3 Creating Programs in Agilent VEE .............4 Creating Operator Interfaces in Agilent VEE ........7 Leveraging Existing Test Programs with Agilent VEE ......9 Controlling Instruments with Agilent VEE .........9 Improving Test Capabilities with Agilent VEE ........10...
  • Page 6 Printing the Screen ................58 Saving a Program ................59 Exiting (Quitting) Agilent VEE ............63 Re-Starting Agilent VEE and Running a Program......64 Managing Multiple Windows in the Workspace....... 65 How Agilent VEE Programs Work ............67 Lab 1-2: Viewing Data Flow and Propagation ......... 68 Lab 1-3: Adding a Noise Generator ..........
  • Page 7 Displaying Help about an Object ............100 Finding the Menu Location for an Object ........101 Other Practice Exercises Using the Help Facility ......101 Debugging Programs in Agilent VEE ..........102 Showing Data Flow .................102 Showing Execution Flow ..............103 Examining Data on a Line ...............104 Examining Terminals ..............105...
  • Page 8 Lab 3-4: Configuring a VXIPlug&play Driver ....... 163 Other I/O Features ................168 Chapter Checklist ................. 169 4. Analyzing and Displaying Test Data Overview ....................173 Agilent VEE Data Shapes and Data Types .......... 174 Agilent VEE Analysis Capabilities ............177 Contents-4...
  • Page 9 Lab 4-1: Calculating Standard Deviation ........179 Creating Expressions with the Formula Object ........181 Evaluating an Expression with the Formula Object ......182 Using an Agilent VEE Function in the Formula Object....183 On Your Own ..................185 Using MATLAB Script in Agilent VEE ..........187 Including a MATLAB Script Object in Agilent VEE .....190...
  • Page 10 Lab 6-1: Sending Agilent VEE Data to MS Excel......255 Creating an Agilent VEE to MS Excel Template......... 263 Lab 6-2: Creating an Agilent VEE to MS Excel Template..... 263 On Your Own .................. 265 Extending Capabilities With MS Excel .......... 266 Using MS Word for Agilent VEE Reports...........
  • Page 11 Calling a UserFunction from an Expression ........303 Generating a Call to a UserFunction ..........305 UserFunctions and the Program Explorer ........307 Using Libraries With Agilent VEE UserFunctions ......309 Lab 8-2: Creating and Merging a Library of UserFunctions...310 Creating a Library of UserFunctions ..........310 Creating Another Program and Merging in the Library ....315...
  • Page 12 Lab 10-4: Using an ActiveX Control ..........396 Lab 10-5: Creating a Status Panel ........... 398 Chapter Checklist ................. 403 11. Optimizing Agilent VEE Programs Overview ....................407 Basic Techniques for Optimizing Programs......... 408 Perform Math on Arrays Whenever Possible........408 Make Objects into Icons Whenever Possible........
  • Page 13 Design Considerations in Using Compiled Functions.....415 Guidelines in Using Compiled Functions........416 Using Dynamic Link Libraries .............417 Integrating a DLL into an Agilent VEE Program ......417 An Example Using a DLL ...............419 Execute Program Object versus Compiled Functions ....423 Execute Program Object.............423 Compiled Functions ..............423...
  • Page 14 Providing Agilent VEE Data to a Remote User......450 Web Server Dialog Box ............. 451 How a Remote User Accesses Agilent VEE on Your System ..454 Displaying the Agilent VEE Web Server Page....... 457 Lab 12-1: Practice Session with Agilent VEE Web Browser ..459 Restricting Access to Programs Viewed over the Web....
  • Page 15 Figures Figure I-1. The “Random” Program in ANSI C ........5 Figure I-2. The Same “Random” Program in VEE ........6 Figure I-3. Panel View (or Operator Interface) of VEE Program ....8 Figure I-4. Contacting Product Support in VEE Help Menu....16 Figure 1-1. The VEE Development Environment ........23 Figure 1-2.
  • Page 16 Figure 1-34. The Run button on the Tool Bar ........64 Figure 1-35. Multiple windows in the Work Area ......... 66 Figure 1-36. Typical simple-program.vee Display......... 68 Figure 1-37. Example: Adding a Noise Generator Object ..... 69 Figure 1-38. Function and Object Browser ..........70 Figure 1-39.
  • Page 17 Figure 2-33. The Random Program ............117 Figure 2-34. Set and Get a Global Variable .........119 Figure 2-35. The Description Dialog Box ..........121 Figure 2-36. The Beginning of the Documentation File.......122 Figure 2-37. The Middle of the Documentation File......123 Figure 2-38. The Remainder of the Documentation File......124 Figure 3-1.
  • Page 18 Figure 3-36. HPE1412 Driver Ready for a DC Reading...... 167 Figure 4-1. A VEE Function in the Function & Object Browser..178 Figure 4-2. A MATLAB Function in the Function & Object Browser 179 Figure 4-3. Opening Function and Object Browser from fx Icon ..180 Figure 4-4.
  • Page 19 Figure 6-4. CreateObject and GetObject ..........254 Figure 6-5. The Globals UserFunction ..........256 Figure 6-6. Setting Up the MS Excel Worksheet ........257 Figure 6-7. Adding the Title and Data to the Sheet ......260 Figure 6-8. The Results Average Program ...........261 Figure 6-9. Excel Worksheet for “Results Average” Program.....262 Figure 6-10.
  • Page 20 Figure 8-20. The Find Dialog Box ............321 Figure 8-21. The Find Results Dialog Box .......... 321 Figure 8-22. Merging the BarChart Program ........324 Figure 9-1. The Sequence Transaction Dialog Box ......332 Figure 9-2. Configuring a Test ............. 333 Figure 9-3.
  • Page 21 Figure 10-22. The Dice Program (Panel View)........388 Figure 10-23. The Bitmap Function .............390 Figure 10-24. The UserFunction alarm (Detail View) ......392 Figure 10-25. The Warning UserFunction (Detail View) ....394 Figure 10-26. The Warning Program............395 Figure 10-27. Using the ActiveX Control “ProgressBar” ....397 Figure 10-28.
  • Page 22 Figure 12-10. Detail View of a UserFunction Displayed in the Browser .. Figure 12-11. Example of Displaying HTML Message Instead of VEE Program ................... 464 Figure 12-12. An Example of a Password Window ......465 Figure A-1. Apple Bagger, Solution 1..........470 Figure A-2.
  • Page 23 Figure A-36. Checking a Record ............523 Figure A-37. Using the Test Sequencer, Step 5........524 Figure A-38. Using the Test Sequencer, Step 6........525 Figure A-39. Using the Test Sequencer, Step 7 ........526 Figure A-40. Using the Test Sequencer, Step 8........527 Contents-19...
  • Page 24 Contents-20...
  • Page 25 Tables Table 4-1. Agilent VEE Data Types.............175 Table 4-2. Displays ................194 Table 5-1. Types of I/O Transactions ..........212 Table 5-2. I/O Transaction Encoding ...........213 Table 9-1. Sequence Transaction Dialog Box ........334 Contents-21...
  • Page 26 Contents-22...
  • Page 27 Introduction...
  • Page 28 Introduction This chapter introduces Agilent VEE and its major features. You will also learn how to install and learn about VEE, and how to obtain VEE support. Introduction...
  • Page 29: Introduction

    Agilent VEE is a graphical programming language optimized for building test and measurement applications, and programs with operator interfaces. This release of the Agilent VEE product family includes VEE Pro 6.0 for groups of engineers that need to create complex test and measurement systems, and VEE OneLab 6.0 for individual engineers and scientists...
  • Page 30: Creating Programs In Agilent Vee

    Overview of Agilent VEE Creating Programs in Agilent VEE VEE programs are created by selecting objects from menus and connecting them together. The result in VEE resembles a data flow diagram, which is easier to use and understand than traditional lines of code. There is no laborious edit-compile-link-execute cycle using VEE.
  • Page 31: Figure I-1. The "Random" Program In Ansi C

    Overview of Agilent VEE /* Program to find maximum element in array */ #include <math.h> main( ) double num[10],max; int i; for (i=0;i<10,i++){ num[i]=(double) rand( )/pow(2.0,15.0); printf("%f/n",num[i]; max=num[0]; for {i=1;i<10;i++){ if (num[i]>max)max=num[i]; printf("/nmax; %f/n",max); Figure I-1. The “Random” Program in ANSI C Figure I-2 shows the same program in VEE.
  • Page 32: Figure I-2. The Same "Random" Program In Vee

    Overview of Agilent VEE Figure I-2. The Same “Random” Program in VEE In VEE, the program is built with program elements called objects. Objects are the building blocks of a VEE program. They perform various functions such as I/O operations, analysis, and display. When you view the objects...
  • Page 33: Creating Operator Interfaces In Agilent Vee

    “Changing Object Views” on page 31 of Chapter 1, “Using the Agilent VEE Development Environment.” Creating Operator Interfaces in Agilent VEE An additional benefit of programming in VEE is that it only takes a few minutes to create an operator interface.
  • Page 34: Figure I-3. Panel View (Or Operator Interface) Of Vee Program

    Overview of Agilent VEE Figure I-3. Panel View (or Operator Interface) of VEE Program With VEE, you can perform certain tasks in minutes that might take days in a textual language. n Create colorful, intuitive front ends to programs. n Create operator interfaces that can be used with a keyboard and mouse, or keyboard input only.
  • Page 35: Leveraging Existing Test Programs With Agilent Vee

    Overview of Agilent VEE Leveraging Existing Test Programs with Agilent VEE On all supported operating systems, VEE provides mechanisms for linking conventional test programs as well as commercial applications. For example, you could use VEE to sequence existing tests in Rocky Mountain Basic, C, C++, Visual Basic, Fortran, or Pascal (or any compiled or interpreted language on your operating system).
  • Page 36: Improving Test Capabilities With Agilent Vee

    Debugging tools that make the development and maintenance of large, complex programs efficient (VEE Pro 6.0 only). n Powerful test executive tools included with the product (VEE Pro 6.0 only). n Remote test capabilities with VEE's Web monitoring features (VEE Pro 6.0 only).
  • Page 37: Installing And Learning About Agilent Vee

    VEE, learning about VEE, using VEE, and obtaining VEE support. Installing Agilent VEE and I/O Libraries For information on installing VEE Pro 6.0 and I/O Libraries, refer to the installation materials you received with VEE. (The I/O Libraries are used by VEE to communicate with instruments.) Installing and Distributing VEE Pro 6.0 RunTime (in online Help) shows...
  • Page 38: Ordering Free Evaluation Software

    “Getting Help” on page 25, and “Using Online Help” on page 99. n VEE Manuals: The manual set for VEE includes this manual, VEE Pro User’s Guide, and the VEE Pro Advanced Techniques manual. n Agilent VEE Classes: For information about VEE classes, check the Web site http://www.agilent.com/comms/education...
  • Page 39: Matlab Script Overview

    The MathWorks. It gives users direct access to the core set of MATLAB functionality, such as advanced mathematics, data analysis, and scientific and engineering graphics. The MATLAB Script object can be easily included in any Agilent VEE program. MATLAB Script includes hundreds of functions for: n Data analysis and visualization...
  • Page 40: Signal Processing Toolbox

    MATLAB Script Overview Signal Processing Toolbox MATLAB Script for VEE also includes a subset of the MATLAB Signal Processing Toolbox, which is built on a solid foundation of filter design and spectral analysis techniques. Functions are included for: n Signal and linear system models n Analog filter design n FIR and IIR digital filter design, analysis, and implementation n Transforms such as FFT and DCT...
  • Page 41 MATLAB command window, the MATLAB Editor/Debugger, and the Signal Processing GUI. Note For more information about using MATLAB Script objects in VEE programs, refer to “Using MATLAB Script in Agilent VEE” on page 187 of Chapter 4, “Analyzing and Displaying Test Data.” Introduction...
  • Page 42: Obtaining Agilent Vee Support

    For Current Support Information: While connected to the network, in ⇒ ⇒ Support. Figure VEE, click Help Agilent VEE on the Web I-4 shows how to select support in VEE. Or, in the Web browser, select and click “Support”. http://www.agilent.com/find/vee Figure I-4. Contacting Product Support in VEE Help Menu n For Complimentary Startup Assistance: see phone support information in ⇒...
  • Page 43: Sources Of Additional Information For Matlab

    508-647-7000. Other sources of information include: n Complete MATLAB documentation: www.mathworks.com/access/helpdesk/help/helpdesk.shtml n MATLAB Upgrade Offer: A special offer is available for VEE Pro 6.0 and VEE OneLab 6.0 users. To find out more, go to www.mathworks.com/veeupgrade n MATLAB Product Information: www.mathworks.com/products...
  • Page 44 Sources of Additional Information for MATLAB Introduction...
  • Page 45: Using The Agilent Vee Development Environment

    Using the Agilent VEE Development Environment...
  • Page 46 Using the Agilent VEE Development Environment Using the Agilent VEE Development Environment In this chapter you will learn about: n Supported systems n How to use the Help system n Starting VEE n The VEE window n Working with objects...
  • Page 47: Overview

    Using the Agilent VEE Development Environment Overview Overview In this chapter, you will learn how to start VEE, how to use menus, and how to work with objects. You will learn about pins and terminals in VEE. You will connect objects together to build a simple VEE program, and learn how VEE programs work.
  • Page 48: Interacting With Agilent Vee

    Using the Agilent VEE Development Environment Interacting with Agilent VEE Interacting with Agilent VEE This section explains how to use the VEE graphical programming language, including a list of systems supported, how the mouse and menus work, how to get help, how to start VEE, and how to work in the VEE window.
  • Page 49: Starting Agilent Vee

    Using the Agilent VEE Development Environment Interacting with Agilent VEE Starting Agilent VEE ⇒ ⇒ Windows Click Start Programs Agilent VEE Pro 6.0 HP-UX From a shell prompt in an HP VUE or X11 window, type: (The variable must include Return.
  • Page 50 Using the Agilent VEE Development Environment Interacting with Agilent VEE These items describe the parts of the VEE window. Title bar The top line in the window contains the VEE icon, the window name, and the minimize, maximize, and close buttons.
  • Page 51: Getting Help

    Using the Agilent VEE Development Environment Interacting with Agilent VEE Note This book focuses on VEE version 6.0. If you have an earlier version of ⇒ VEE (to check your version, click ), inexpensive Help About VEE Pro upgrades are available. If you have a support contract for software updates, you will receive the new version automatically.
  • Page 52: Figure 1-2. The Vee Welcome Screen In Help

    Using the Agilent VEE Development Environment Interacting with Agilent VEE Figure 1-2. The VEE Welcome Screen in Help VEE online is designed for your operating system. Click Help Help the menu shown in Figure 1-3 appears. Help includes contents and index, the Welcome menu (where the Tutorials are located), instrument drivers, Web site information, examples, and version number.
  • Page 53: Figure 1-3. Using The Help Menu

    Using the Agilent VEE Development Environment Interacting with Agilent VEE Figure 1-3. Using the Help Menu Select to start VEE Help as shown in Figure 1-4. Contents and Index (The HP-UX screens are slightly different.) Figure 1-4. VEE Help Contents Tab...
  • Page 54 About Agilent VEE Provides information about getting support Support for VEE. Installing and Explains how to distribute the VEE Pro Distributing Agilent VEE RunTime environment. Pro RunTime Note As a shortcut to get help on a selected object and on dialog boxes, press on your keyboard.
  • Page 55: Working With Objects

    2. Follow the instructions in this section to experiment with objects. Note Subsequent exercises assume you have started the VEE software. Refer back to this page or to the section called “Starting Agilent VEE” on page 23 for instructions on starting VEE. Adding Objects to the Work Area...
  • Page 56: Figure 1-5. Adding Objects To The Work Area

    Using the Agilent VEE Development Environment Working with Objects Figure 1-5. Adding Objects to the Work Area An outline of the object appears in the work area. 2. Move the to the center of the work area, and Function Generator click to place the object.
  • Page 57: Changing Object Views

    Using the Agilent VEE Development Environment Working with Objects Figure 1-6. Adding a Function Generator Object Having placed an object in the work area, you can move the object by dragging its title bar, just as you move a window.
  • Page 58: Selecting An Object Menu

    Using the Agilent VEE Development Environment Working with Objects Object Menu Minimize button button Open View Icon View Figure 1-7. Object in Open View and Icon View The iconic view conserves space in the work area and makes programs more readable.
  • Page 59: Moving An Object

    Using the Agilent VEE Development Environment Working with Objects 1. To select the object menu, click once on the object menu button. (All object menus open the same way.) The object menu appears, as shown in Figure 1-8. (Do not double-click the object menu button. That is the shortcut for deleting the object.)
  • Page 60: Figure 1-9. Moving An Object

    Using the Agilent VEE Development Environment Working with Objects Figure 1-9. Moving an Object You can also move objects as follows: n Click the title area of the open view of an object and drag the object to a new location.
  • Page 61: Duplicating (Or Cloning) An Object

    Using the Agilent VEE Development Environment Working with Objects Duplicating (or Cloning) an Object The Clone operation creates a duplicate object exactly, including any changes you have made such as sizing or renaming. Cloning is a shortcut for cutting and pasting.
  • Page 62: Deleting (Cutting) An Object

    Using the Agilent VEE Development Environment Working with Objects Deleting (Cutting) an Object To delete (or Cut) an object from the work area, go to the object menu for the object you want to delete and click . For example, go to the object...
  • Page 63: Changing The Size Of An Object

    Using the Agilent VEE Development Environment Working with Objects Changing the Size of an Object 1. Place the mouse pointer over any of the four corners of the object until you see a sizing arrow, then click-and-drag to the desired size. Release to resize.
  • Page 64: Changing The Name (Title) Of An Object

    Using the Agilent VEE Development Environment Working with Objects Changing the Name (Title) of an Object 1. Open the object menu and select A Properties dialog Properties... box appears with the current title highlighted, as shown in Figure 1-12. 2. Type the new title and click .
  • Page 65: Selecting Or Deselecting Objects

    Using the Agilent VEE Development Environment Working with Objects Selecting or Deselecting Objects 1. To select an object, click on the object and a shadow appears behind it. For example, in Figure 1-13, the object is selected. For Count 2. To deselect an object, move the mouse pointer over any open area and click.
  • Page 66: Selecting/Deselecting All Objects

    Using the Agilent VEE Development Environment Working with Objects Selecting/Deselecting All Objects ⇒ 1. To select all objects, click . (Or press Ctrl-A Edit Select All 2. To deselect all objects, click on an open area in the window. Copying Multiple Objects 1.
  • Page 67: Editing Objects

    Using the Agilent VEE Development Environment Working with Objects Editing Objects There are several ways to edit objects in VEE. Different editing menus display different choices. Choose an editing menu or icon as follows: 1. Click on the VEE menu bar to display the...
  • Page 68: Creating Data Lines Between Objects

    Using the Agilent VEE Development Environment Working with Objects Creating Data Lines Between Objects 1. Click on or just outside the data output pin of one object, then click on the data input pin of another, as shown in Figure 1-15. (A line appears behind the pointer as you move from one pin to the other.)
  • Page 69: Moving The Entire Work Area

    Using the Agilent VEE Development Environment Working with Objects Moving the Entire Work Area 1. (Make sure there is at least one icon in the work area.) Place the mouse pointer anywhere on the background of the work area, press and hold the left mouse button, and move the work area in any direction.
  • Page 70: Clearing The Work Area

    Using the Agilent VEE Development Environment Working with Objects Clearing the Work Area ⇒ 1. Click and then click the button on the toolbar. Edit Select All This cuts all objects in the active window to the buffer. -OR- ⇒...
  • Page 71: Contents

    Using the Agilent VEE Development Environment Working with Objects Figure 1-17. Default Preferences Dialog Box This dialog box has tabs that let you select options to edit. General The default tab when the Default Preferences dialog box appears (shown previously). You can change the values of the displayed parameters;...
  • Page 72: Understanding Pins And Terminals

    Using the Agilent VEE Development Environment Understanding Pins and Terminals Understanding Pins and Terminals A VEE program consists of the objects in the work area and the lines that connect them. The lines that connect VEE objects are connected between object pins.
  • Page 73: Figure 1-19. Show Terminals On An Object

    Using the Agilent VEE Development Environment Understanding Pins and Terminals In an object’s open view, the data input and output pins appear as input and output terminals. (If the object is in icon view, double-click it to switch to open view.) The terminals carry detailed information such as the name of the terminal, and the type and value of the data being transmitted.
  • Page 74: Adding A Terminal

    Using the Agilent VEE Development Environment Understanding Pins and Terminals Click the checkbox to turn . Click the checkbox Show Terminals OFF again to turn back on. Click after you have made a Show Terminals selection. Adding a Terminal You can add terminals to an object. For example, you can add a second data input terminal to the object.
  • Page 75: Editing Terminal Information

    Using the Agilent VEE Development Environment Understanding Pins and Terminals Editing Terminal Information To obtain information about a terminal, double-click the label area. For example, double-clicking causes the dialog box in Figure 1-22 to appear. Figure 1-22. Obtaining Terminal Information You can now edit the terminal.
  • Page 76: Figure 1-23. Using The Selection Field

    Using the Agilent VEE Development Environment Understanding Pins and Terminals Figure 1-23. Using the Selection Field If you select a data type other than for a data input terminal, only the specified type of data or data that can be converted to that type will be accepted by the terminal.
  • Page 77: Deleting A Terminal

    Using the Agilent VEE Development Environment Understanding Pins and Terminals Deleting a Terminal ⇒ 1. Open the object menu and select Delete Terminal Input... ⇒ , choose the input or output to delete, and Delete Terminal Output click . For example, Figure 1-24 shows the dialog box that appears ⇒...
  • Page 78: Connecting Objects To Make A Program

    Using the Agilent VEE Development Environment Connecting Objects to Make a Program Connecting Objects to Make a Program This section introduces VEE programs. In Lab 1-1, you create a VEE program, print the VEE screen, and save the program to a file.
  • Page 79: Figure 1-25. Creating A Program

    Using the Agilent VEE Development Environment Connecting Objects to Make a Program Figure 1-25. Creating a Program In Figure 1-25, the label on the object Func Function Generator denotes a data output pin, and the label on the Trace1 object denotes a data input pin. In VEE programs,...
  • Page 80: Running A Program

    Using the Agilent VEE Development Environment Connecting Objects to Make a Program ⇒ If the lines appear to be scrambled, use Edit Clean Up Lines reroute the lines in the program. Running a Program 5. Continuing with the same exercise, click the Run button on the toolbar to ⇒...
  • Page 81: Changing Object Properties

    Using the Agilent VEE Development Environment Connecting Objects to Make a Program When instructed to run the program, click the Run button on the toolbar, or press . Other keyboard shortcuts include the following: Ctrl Pause Ctrl Resume Ctrl Step Into...
  • Page 82: Figure 1-27. Changing The Function Field To Sine Wave

    Using the Agilent VEE Development Environment Connecting Objects to Make a Program Figure 1-27. Changing the Function Field to Sine Wave Some fields in dialog boxes do not have arrows. These are entry fields, which become type-in fields when you click them. Just click a field and a cursor appears.
  • Page 83: Figure 1-28. Highlighting A Frequency Field Number

    Using the Agilent VEE Development Environment Connecting Objects to Make a Program Figure 1-28. Highlighting a Frequency Field Number 8. Press to delete the last , changing the value to Delete Frequency Run the program. It should look like Figure 1-29.
  • Page 84: Printing The Screen

    Using the Agilent VEE Development Environment Connecting Objects to Make a Program The displayed waveform is now a 10 Hz sine wave. You may want to try changing a few object parameters as follows: n Click (or the arrow) in the...
  • Page 85: Saving A Program

    Using the Agilent VEE Development Environment Connecting Objects to Make a Program When you click , VEE prints the screen on the default printer named in the dialog box. You can select another printer, change the print range, and enter the number of copies. Click the...
  • Page 86: Figure 1-32. The Save File Dialog Box (Pc)

    Using the Agilent VEE Development Environment Connecting Objects to Make a Program Figure 1-32. The Save File Dialog Box (PC) 11. By default, VEE for Windows saves files in the VEE Programs sub-directory in your directory. To save the current...
  • Page 87 Using the Agilent VEE Development Environment Connecting Objects to Make a Program Save as type VEE programs are normally saved with the .vee extension, but you can change the file type if you wish. If you type a file name without the extension, is automatically added.
  • Page 88: Figure 1-33. The Save File Dialog Box (Unix)

    Using the Agilent VEE Development Environment Connecting Objects to Make a Program Figure 1-33. The Save File Dialog Box (UNIX) By default, VEE for HP-UX saves files to the directory from which you started VEE. To save the current program, type in a name (for example, ) and click simple-program.vee...
  • Page 89: Exiting (Quitting) Agilent Vee

    Using the Agilent VEE Development Environment Connecting Objects to Make a Program Exiting (Quitting) Agilent VEE ⇒ to close the VEE application window. Select File Exit Shortcut: Press Ctrl-E to exit VEE, or click on the x button at the right end of the title bar.
  • Page 90: Re-Starting Agilent Vee And Running A Program

    Using the Agilent VEE Development Environment Connecting Objects to Make a Program Re-Starting Agilent VEE and Running a Program ⇒ ⇒ 1. PC: In Windows, click Start Programs Agilent VEE Pro HP-UX: From your home directory, enter . (The executable is...
  • Page 91: Managing Multiple Windows In The Workspace

    UserObjects UserFunctions discussed in more detail in the section “Creating a UserObject” on page 78 in Chapter 2, “Agilent VEE Programming Techniques.”) They are mentioned here to show how VEE helps you manage programs that have multiple windows. Figure 1-35 shows a program with four windows. Each window has an icon (which provides menu commands), a title, and three buttons;...
  • Page 92: Figure 1-35. Multiple Windows In The Work Area

    Using the Agilent VEE Development Environment Connecting Objects to Make a Program Program Explorer Main UserObject, open view UserObject, icon view User Object, minimized Figure 1-35. Multiple windows in the Work Area As Figure 1-35 shows, the Program Explorer lists the hierarchy of the program.
  • Page 93: How Agilent Vee Programs Work

    Using the Agilent VEE Development Environment How Agilent VEE Programs Work How Agilent VEE Programs Work In VEE, the general flow of execution through a program is called propagation. Propagation through a program is not determined by the geographic locations of the objects in the program, but rather by the way the objects are connected.
  • Page 94: Lab 1-2: Viewing Data Flow And Propagation

    Using the Agilent VEE Development Environment How Agilent VEE Programs Work Lab 1-2: Viewing Data Flow and Propagation To see how data flow works, open the program you created earlier. Open the program by clicking the button on the simple-program.vee Open toolbar.
  • Page 95: Figure 1-37. Example: Adding A Noise Generator Object

    Using the Agilent VEE Development Environment How Agilent VEE Programs Work Figure 1-37. Example: Adding a Noise Generator Object Note The VEE programs for many of the lab exercises and programming ⇒ examples in this manual are included in VEE, under...
  • Page 96: Figure 1-38. Function And Object Browser

    Using the Agilent VEE Development Environment How Agilent VEE Programs Work Figure 1-38. Function and Object Browser 5. Connect the input and output pins as shown in Figure 1-37. 6. Run the program. Notice that the object does not execute until the...
  • Page 97: Lab 1-4: Adding An Amplitude Input And Real64 Slider

    Using the Agilent VEE Development Environment How Agilent VEE Programs Work To see the order of execution, turn on the commands Debug Show , or click their respective buttons Execution Flow Show Data Flow on the toolbar. Run the program again. Each object highlights when it executes and a small, square marker moves down the lines to show data flow.
  • Page 98: Figure 1-40. Example: Adding A Real64 Slider Object

    Using the Agilent VEE Development Environment How Agilent VEE Programs Work ⇒ ⇒ 3. Add a object ( Real64 Slider Data Continuous Real64 ) and connect its data output pin to the terminal, as Slider Amplitude shown in Figure 1-40. Run the program.
  • Page 99: Figure 1-41. Displaying The Value On An Output Pin

    Using the Agilent VEE Development Environment How Agilent VEE Programs Work Note You can display the value of an output by using the mouse to hover over the line. For example, hovering over the line from the object Real64 Slider...
  • Page 100: Chapter Checklist

    Using the Agilent VEE Development Environment Chapter Checklist Chapter Checklist You should now be able to do any of the following tasks. Review topics as needed, before going on to the next chapter. n Look up on-line help documentation from the main menu bar and from the object menus.
  • Page 101: Agilent Vee Programming Techniques

    Agilent VEE Programming Techniques...
  • Page 102 Agilent VEE Programming Techniques In this chapter you will learn about: n Creating a UserObject n Adding a dialog box for user input n Using data files n Creating panel views (an operator interface) n Mathematically processing data n Communicating with instruments...
  • Page 103: Overview

    Agilent VEE Programming Techniques Overview Overview In this chapter, you will learn selected VEE programming techniques to help you build your own programs. For example, VEE allows you to create customized objects called UserObjects. You can also create interfaces for operators to use that show only the necessary parts of the program.
  • Page 104: General Techniques

    Agilent VEE Programming Techniques General Techniques General Techniques Inside the Main VEE program, you can create logical groups of objects, called object (called UserObjects UserObject UserObject hereafter) is created by placing a logical group of objects in a UserObject window. Inside the...
  • Page 105: Figure 2-1. Userobject Window

    Agilent VEE Programming Techniques General Techniques Figure 2-1. UserObject Window Once you have created a , it is part of the main program. The UserObject window can be displayed as an icon, in open view, or UserObject minimized at the bottom of the screen as follows:...
  • Page 106 Agilent VEE Programming Techniques General Techniques 1. Open the program ( ) you created in “Adding an simple-program.vee Amplitude Input and Real64 Slider” on page 71. The program should appear in the main work area. 2. Remove the from the program. (It is not used in this Real64 Slider exercise.) Click to open the...
  • Page 107: Figure 2-2. Usrobj-Program.vee At An Early Stage

    Agilent VEE Programming Techniques General Techniques Figure 2-2. usrobj-program.vee at an Early Stage 6. Select the objects, using the shortcut Noise Generator ⇒ +left mouse button. Click . A dialog Ctrl Edit Create UserObject box appears labeled . (You could rename the Create UserObject object by typing in a new name if you wish.
  • Page 108: Figure 2-3. Creating A Userobject

    Agilent VEE Programming Techniques General Techniques Figure 2-3. Creating a UserObject Note Rearranging the positions of the objects before executing Create is one of convenience. If you do not collect the objects to be UserObject included into one area, the...
  • Page 109: Figure 2-4. Userobject Renamed Addnoise

    Agilent VEE Programming Techniques General Techniques Tip: Creating a in its edit window and then using the icon UserObject view of the lets you save screen space. UserObject 7. To help you keep track of the , change the title from UserObject .
  • Page 110: Figure 2-5. Noisy Cosine Wave

    “top-down” design in VEE programs. VEE also includes an object called , which is a re-usable code module. For more information UserFunction about , refer to Chapter 8, “Using UserObjects UserFunctions Agilent VEE Functions,” on page 293. ⇒ For more information about , select UserObjects Help Contents and from the VEE menu bar.
  • Page 111: Lab 2-2: Creating A Dialog Box For User Input

    Agilent VEE Programming Techniques General Techniques Lab 2-2: Creating a Dialog Box for User Input If it is not already open, open the program usrobj-program3.vee ⇒ In the submenu are six choices for dialog: Data Dialog Box Text , and...
  • Page 112: Figure 2-7. Int32 Input Added To Usrobj-Program.vee

    Agilent VEE Programming Techniques General Techniques Figure 2-7. Int32 Input Added to usrobj-program.vee 5. Run the program. The input box for appears, with the Int32 Input instruction . Try running the program with different Enter Frequency: frequencies in the input box. See Figure 2-8, shown at run-time with the pop-up input box.
  • Page 113: Lab 2-3: Using Data Files

    Agilent VEE Programming Techniques General Techniques Figure 2-8. Runtime Pop-Up Input Box You will get an error message box if you enter frequencies above 193. Notice that you get the exact error message that you configured. You will continue with this example in the following section. However, if you want to quit now, save the program as usrobj1-program4.vee.
  • Page 114: Figure 2-9. Adding A Data File

    Help To File the transaction besides . Transactions are discussed WRITE CONTAINER in more detail in an appendix in the VEE Pro Advanced Techniques manual and in Chapter 5, “Storing and Retrieving Test Results.” Chapter 2...
  • Page 115: Figure 2-10. Choosing An I/O Transaction

    Agilent VEE Programming Techniques General Techniques Figure 2-10. Choosing an I/O Transaction 4. Connect the data output pin of the to the data AddNoise UserObject input pin of . The program should now look like Figure 2-11. To File Note You can connect one data output pin to several data input pins.
  • Page 116: Figure 2-11. Adding A To File Object

    Agilent VEE Programming Techniques General Techniques Figure 2-11. Adding a To File Object 5. Click the Run button on the tool bar again to test the program. The program now displays the noisy cosine wave output by the AddNoise UserObject and writes a container of waveform data to the file...
  • Page 117: Lab 2-4: Creating A Panel View (Operator Interface)

    Agilent VEE Programming Techniques General Techniques the objects as shown in Figure 2-12. The sequence line between To File ensures the data is written to the file before it is read. From File 7. Run the program. It should similar to Figure 2-12. Save the program as usrobj-program.vee...
  • Page 118: Figure 2-13. Simple-Program.vee

    Agilent VEE Programming Techniques General Techniques Figure 2-13. simple-program.vee 2. Select the objects that you want to appear in the view, which acts panel as the operator interface. Press and hold while clicking on all the Ctrl objects you want to select. (Make sure no object is accidentally selected.)
  • Page 119: Figure 2-14. Example: Creating A Panel View

    Agilent VEE Programming Techniques General Techniques Figure 2-14. Example: Creating a Panel View 4. Press the To Detail button in the upper left window title bar to go Main to the detail view. Click the To Panel button to return to the panel view.
  • Page 120: Lab 2-5: Mathematically Processing Data

    VEE provides extensive built-in mathematical capabilities and data type support, as well as all the data and signal processing power of MATLAB. For more details, refer to the VEE Pro Advanced Techniques manual. Using Data Types VEE supports several data types, including text, integer and real numbers, and several types of complex and coordinate numbers.
  • Page 121: Using Data Shapes

    Agilent VEE Programming Techniques General Techniques ⇒ 5. Add an object by selecting AlphaNumeric Display . Connect the objects as shown in Figure 2-15. Type in AlphaNumeric the value in the data entry field of the object 1.53 Real64 Constant...
  • Page 122: Using The Formula Object

    Agilent VEE Programming Techniques General Techniques ⇒ 3. Add a object, by selecting Sliding Collector Data Sliding Collector. ⇒ 4. Add a object. Select median(x) Device Function & Object . Then, select Browser Type: Built-in Functions Category: and click Probability & Statistics...
  • Page 123: Figure 2-17. Creating A Formula Object Program

    Agilent VEE Programming Techniques General Techniques 1. Add the object to the window and modify Function Generator Main ⇒ it to produce a Hz sine wave. Select Device Virtual Source ⇒ Function Generator ⇒ 2. Select to add the object to the Main...
  • Page 124 MATLAB Script integration. Browse through these functions in the Function & Object Browser For more information about using MATLAB functions, refer to “Using MATLAB Script in Agilent VEE” on page 187 of Chapter 4, “Analyzing and Displaying Test Data.”. Chapter 2...
  • Page 125: Using Online Help

    Agilent VEE Programming Techniques Using Online Help Using Online Help Now that you have created a few simple programs, here are some ways to teach yourself more about VEE. ⇒ 1. First, run the Multimedia Tutorials located in the Help Welcome menu.
  • Page 126: Using The Help Facility

    VEE also includes other helpful features for developing and debugging programs, such as line probe. For more information, refer to “Debugging Programs in Agilent VEE” on page 102. Displaying Help about an Object To get help on an object, click on the object menu button and select...
  • Page 127: Finding The Menu Location For An Object

    Glossary Terminal n Look up the VEE version number. ⇒ Select Help About VEE Pro n Find out what is new in this version of Agilent VEE. ⇒ ⇒ Select Help Contents and Index What’s New in Agilent VEE 6.0...
  • Page 128: Debugging Programs In Agilent Vee

    Agilent VEE Programming Techniques Debugging Programs in Agilent VEE Debugging Programs in Agilent VEE This exercise uses the program you created in “Creating a Panel View ⇒ (Operator Interface)” on page 91. Select , highlight File Open , and click simple-program_with_panel.vee...
  • Page 129: Showing Execution Flow

    Agilent VEE Programming Techniques Debugging Programs in Agilent VEE Figure 2-19. Data Flow in simple-program.vee For example, in Figure 2-19, data moves from the Real64 Slider . The output from the Noise Generator Noise Generator are input to the object, and the results...
  • Page 130: Examining Data On A Line

    Agilent VEE Programming Techniques Debugging Programs in Agilent VEE When you run the program, you will see a colored outline around the objects as they execute. to understand how a program is Data Flow Execution Flow operating, but turn them off to get higher performance. Combining these features with debugging tools such as breakpoints will help you understand how a VEE program works and where possible errors lie.
  • Page 131: Examining Terminals

    Agilent VEE Programming Techniques Debugging Programs in Agilent VEE If you click on a data line, a dialog box appears with all the information about the data on the line. For example, Figure 2-22 shows the dialog box that appears when you click on the output of the Function Generator Figure 2-22.
  • Page 132: Using The Alphanumeric Displays For Debugging

    Agilent VEE Programming Techniques Debugging Programs in Agilent VEE Using the Alphanumeric Displays for Debugging You can add the displays at Alphanumeric Logging Alphanumeric different points in a program to track the flow of data. When the program is running correctly, delete them.
  • Page 133: Figure 2-24. Resume Program (Same As The Run Button)

    Agilent VEE Programming Techniques Debugging Programs in Agilent VEE 3. Resume the program to continue and pause at the next object with a breakpoint set. Click the Resume button on the tool bar, shown in Figure 2-24. (Also in the menu.)
  • Page 134: Resolving Errors

    Agilent VEE Programming Techniques Debugging Programs in Agilent VEE Pause Button Stop Button Figure 2-26. Pause or Stop a Program Resolving Errors If you get an error message when you run a program, VEE automatically puts a red outline around the object where the error was found.
  • Page 135: Using The Call Stack

    Agilent VEE Programming Techniques Debugging Programs in Agilent VEE Figure 2-27. Example Runtime Error Message using Go To Using the Call Stack If an error is in the Main program, it may be easy to see. However, in a large...
  • Page 136: Following The Order Of Events Inside An Object

    Agilent VEE Programming Techniques Debugging Programs in Agilent VEE Figure 2-28. Using the Call Stack in Wheel.exe shows the hierarchy of the execution of the program. Call Stack Figure 2-28 shows an example program that is shipped with VEE: the program in .
  • Page 137: Figure 2-29. The Order Of Events In An Object

    Agilent VEE Programming Techniques Debugging Programs in Agilent VEE 1 (if connected) Figure 2-29. The Order of Events in an Object In Figure 2-29, the pins operate as follows: If the sequence input pin is connected, the object will not operate until it receives a message to execute (a “ping”...
  • Page 138: Figure 2-30. Control Line Used To Execute Custom Title

    Agilent VEE Programming Techniques Debugging Programs in Agilent VEE There are exceptions to this sequence of events: n You can add error output pins to trap errors inside an object. The error output pins override the standard object behavior. If an error occurs when the object executes, the error pin will send out a message and the data output pins will not fire.
  • Page 139: Following The Execution Order Of Objects In A Program

    Agilent VEE Programming Techniques Debugging Programs in Agilent VEE Following the Execution Order of Objects in a Program As a VEE program runs, the objects execute in the following order: objects operate first. Start Figure 2-31 shows a VEE program with two threads, which are sets of objects connected by solid lines in a VEE program.
  • Page 140: Stepping Through A Program

    Agilent VEE Programming Techniques Debugging Programs in Agilent VEE Stepping Through a Program Stepping through a program is a very effective debugging tool. VEE has functions to , and of objects. Step Into Step Over Step Out To activate stepping, click the Step Into, Step Over, or Step Out buttons on the tool bar, shown in Figure 2-32.
  • Page 141: Finding An Object In A Complex Program

    . For Help more information about , refer to Chapter 8, “Using UserFunctions Agilent VEE Functions,” on page 293. Finding an Object in a Complex Program ⇒ To find a particular object, especially in a large program, select Edit . Type in the object or function name in the pop-up dialog box, and...
  • Page 142: Practice Programs

    Agilent VEE Programming Techniques Practice Programs Practice Programs The practice programs in this section illustrate more VEE features. Lab 2-6: Generate a Random Number 1. Document the program: ⇒ a. Select and place it at the top center of the...
  • Page 143: Lab 2-7: Setting And Getting A Global Variable

    Agilent VEE Programming Techniques Practice Programs Note If for some reason you want to terminate the line connecting operation before you have completed the link, double-click the mouse and the line will disappear. 6. Click the Run button on the tool bar, and you will see a random number displayed as shown in Figure 2-33.
  • Page 144 Agilent VEE Programming Techniques Practice Programs ⇒ 1. Select and place it at the top-center of the work Display Note Pad area. Click on the upper left-hand corner of the editing area to get a cursor, then enter the following information: Set and Get a Global Variable prompts the user to enter a real number.
  • Page 145: Figure 2-34. Set And Get A Global Variable

    Agilent VEE Programming Techniques Practice Programs Note A global variable has to be set before you can use it. Therefore, you need to use the sequence pins in this case to make sure that the variable num has been set, before you retrieve it with Get num ⇒...
  • Page 146: Documenting Agilent Vee Programs

    Agilent VEE Programming Techniques Documenting Agilent VEE Programs Documenting Agilent VEE Programs ⇒ By using the command, you can File Save Documentation... automatically generate program documentation. VEE lists all objects, with key settings, the default and user names, the Description entries, and any “nesting.”...
  • Page 147: Generating Documentation Automatically

    Agilent VEE Programming Techniques Documenting Agilent VEE Programs Figure 2-35. The Description Dialog Box Note The entries in the dialog box will not be visible to users Description unless they access them through the object menu. Also, notice that you can insert a file or a template in this dialog box.
  • Page 148: Figure 2-36. The Beginning Of The Documentation File

    Agilent VEE Programming Techniques Documenting Agilent VEE Programs Source file: "C:\\My Documents\\VEE Programs\\Random.vee" File last revised: Mon Jan 03 15:29:02 2000 Date documented: Mon Feb 28 14:43:27 2000 VEE revision: 6.0 Execution mode: VEE 6 Convert Infinity on Binary Read: no...
  • Page 149: Figure 2-37. The Middle Of The Documentation File

    Agilent VEE Programming Techniques Documenting Agilent VEE Programs M: Main Device Type : Main Description 1. The program, Random, generates a real number between 0 and 1 2. and then displays the results. Context is secured : off Trig mode...
  • Page 150: Figure 2-38. The Remainder Of The Documentation File

    Agilent VEE Programming Techniques Documenting Agilent VEE Programs M.2: Main/Int32 Device Type : Constant Output pin 1 : Int32 Wait For Event : off Auto execute : off Initialize At Prerun : off Initialize at Activate : off Constant size fixed...
  • Page 151: Chapter Checklist

    Agilent VEE Programming Techniques Chapter Checklist Chapter Checklist You should now be able to perform the following tasks. Review topics, if necessary, before proceeding to the next chapter. n Create a , and explain how give programs UserObject UserObjects structure and save space on screen.
  • Page 152 Agilent VEE Programming Techniques Chapter Checklist Chapter 2...
  • Page 153 Easy Ways to Control Instruments...
  • Page 154 Easy Ways to Control Instruments Easy Ways To Control Instruments In this chapter you will learn about: n Configuring an instrument n Using a panel driver n Using the Direct I/O object n Controlling PC plug-in boards n Using a VXIplug&play driver Average time to complete: 1 hour Chapter 3...
  • Page 155: Easy Ways To Control Instruments Overview

    When you change parameters in the VEE panel driver, the corresponding state of the instrument is changed. Panel drivers are provided by Agilent Technologies with VEE and cover over 450 instruments from different vendors.
  • Page 156: Panel Drivers

    Easy Ways to Control Instruments Overview Panel Drivers Agilent VEE includes over 450 panel drivers for different instrument vendors. A panel driver works by using a display in the VEE program that controls the settings in the corresponding physical instrument. Panel drivers provide maximum ease-of-use and save the most development time.
  • Page 157: Pc Plug-In Boards With Odas Driver

    Easy Ways to Control Instruments Overview Figure 3-2. A Function Generator Direct I/O Object PC Plug-in Boards with ODAS Driver ODAS drivers are supplied by the vendor of the PC Plug-in card or can also be supplied by a third party, since they are standard drivers. VEE enables you to control a PC Plug-in board with an ODAS driver by choosing PC Plug-in board functions in a object.
  • Page 158: Vxiplug&Play Drivers

    VXIplug&play drivers are supplied by the instrument vendor or by Agilent Technologies. (For a list of VXIplug&play drivers available from Agilent Technologies, refer to the VEE literature or the VEE Pro Advanced Techniques manual. Contact your instrument vendor for other VXIplug&play drivers.) VEE enables you to control an instrument with a...
  • Page 159: Configuring An Instrument

    Easy Ways to Control Instruments Configuring an Instrument Configuring an Instrument With VEE you can develop programs without the instruments present. In this exercise, you will configure an oscilloscope for use with a panel driver. Then you will add the physical instrument to the configuration. Lab 3-1: Configuring an Instrument without the Instrument Present ⇒...
  • Page 160: Figure 3-7. Instrument Properties Dialog Box

    Easy Ways to Control Instruments Configuring an Instrument Note If you have any instruments connected and powered on, VEE can find the instruments and automatically find the drivers for them. For more information about automatically finding and configuring instruments, refer ⇒...
  • Page 161 This host instruments locally, or enter a for remote control. Gateway (For more information, refer to the VEE Pro Advanced Techniques manual.) 3. Change the name to , leave all the other defaults as they are, and scope click .
  • Page 162: Figure 3-8. The Advanced Instrument Properties Dialog

    Easy Ways to Control Instruments Configuring an Instrument Figure 3-8. The Advanced Instrument Properties Dialog The entries in the folder are as follows: General Timeout The maximum number of seconds allowed for an I/O transaction to complete before you get an error message. Live Mode Specifies whether there is live communication with the instrument.
  • Page 163: Figure 3-9. The Panel Driver Folder

    Easy Ways to Control Instruments Configuring an Instrument Figure 3-9. The Panel Driver Folder 5. Click the field to the right of to obtain a list box entitled ID Filename . This list includes all of the Read from what Instrument Driver? panel driver files loaded with your revision of VEE in the directory specified.
  • Page 164 Easy Ways to Control Instruments Configuring an Instrument The other entries in the Panel Driver folder are as follows: Sub Address Leave this field blank. Sub Address is used only by non- VXI cardcage instruments for identifying plug-in modules. Error Leave the default setting can be Error Checking...
  • Page 165: Selecting An Instrument To Use In A Program

    Easy Ways to Control Instruments Configuring an Instrument Figure 3-10. Scope Added to List of Instruments 8. Click to close the box. (You could also Save Instrument Manager click under to put it in the Panel Driver Create I/O Object program immediately, and VEE would save the configuration automatically.) You have now added the HP 54504A oscilloscope named...
  • Page 166: Figure 3-11. Selecting Scope(@(Not Live))

    Component Driver which uses a subset of the functions provided by a . For Panel Driver more information, refer to the VEE Pro Advanced Techniques manual. 3. Place the outline of the panel and click to place it. The display scope should look similar to Figure 3-11.
  • Page 167: Adding The Physical Instrument To The Configuration

    Easy Ways to Control Instruments Configuring an Instrument Adding the Physical Instrument to the Configuration ⇒ 1. Select , and highlight Instrument Manager... scope Under click Instrument... Properties 2. Double-click the field to highlight the current entry and type Address .
  • Page 168: Using A Panel Driver

    Easy Ways to Control Instruments Using a Panel Driver Using a Panel Driver These exercises use the HP 3325B Function Generator as the example. The principles are the same in using any VEE panel driver. By using a panel driver instead of programming an instrument directly, you save time developing and modifying programs.
  • Page 169: Figure 3-12. The Function Pop-Up Menu On Fgen

    Easy Ways to Control Instruments Using a Panel Driver 4. Under , click . Place the object on Create I/O Object Panel Driver the left side of the workspace. (This process would be the same regardless of the instrument, as long as the instrument had been configured and added to the list.) Note You are programming without the instrument attached.
  • Page 170: Moving To Other Panels On The Same Driver

    Easy Ways to Control Instruments Using a Panel Driver Moving to Other Panels on the Same Driver Most drivers have more than one panel to simplify the user interface. To move to a different panel, click in the object to get a menu of Main Panel panels.
  • Page 171: Adding Inputs And/Or Outputs To A Panel Driver

    Easy Ways to Control Instruments Using a Panel Driver Adding Inputs and/or Outputs to a Panel Driver In addition to interacting with the panel directly, you can control settings or read data from an instrument in a program by adding data inputs and/or outputs to the driver.
  • Page 172: Deleting Data Input Or Output Terminals

    Easy Ways to Control Instruments Using a Panel Driver Deleting Data Input or Output Terminals Place the mouse pointer over the terminal and press CTRL-D ⇒ Note You could also open the object menu and select Delete Terminal from the object menu and choose the appropriate input from the Input...
  • Page 173: Using Direct I/O

    Easy Ways to Control Instruments Using Direct I/O Using Direct I/O If there is not a driver available for a particular instrument, or you want higher throughput, use the Direct I/O object. Lab 3-3: Using Direct I/O In this exercise, you will configure the HP 3325B function generator using Direct I/O.
  • Page 174: Sending A Single Text Command To An Instrument

    Easy Ways to Control Instruments Using Direct I/O Note This example uses the GPIB interface (IEEE488). To configure Serial, GPIO, or VXI instruments, refer to the VEE Pro Advanced Techniques manual. 4. To place the object on the screen, make sure that fgen(@(NOT LIVE)) ⇒...
  • Page 175: Figure 3-17. The I/O Transaction Dialog Box

    Easy Ways to Control Instruments Using Direct I/O Figure 3-17. The I/O Transaction Dialog Box The down arrow next to shows a menu of transactions: WRITE READ , and . To write data to an instrument, use the WRITE EXECUTE WAIT default selection.
  • Page 176: Sending An Expression List To An Instrument

    Easy Ways to Control Instruments Using Direct I/O Sending an Expression List to an Instrument In some cases, you may want to send an expression list to an instrument. For example, you may want to loop through a number of frequencies in the .
  • Page 177: Reading Data From An Instrument

    VEE. The following steps describe how to configure the transactions for the multimeter. Note This example describes a transaction. Other choices for READ TEXT READ include , and , which are discussed in detail BINARY BINBLOCK CONTAINER in the VEE Pro Advanced Techniques manual. Chapter 3...
  • Page 178 Easy Ways to Control Instruments Using Direct I/O ⇒ 1. Select . Click . Change the Instrument Manager... Add... name to . Click on and set Advanced... Live Mode: Assuming that you do not have an HP3478A connected, click return to the Instrument Manager. (If you do have an HP3478A, modify the address and the instrument will track the commands.) 2.
  • Page 179: Figure 3-20. Configuring A Read Transaction

    Easy Ways to Control Instruments Using Direct I/O 10.Leave as is and click SCALAR You will see the transaction displayed on the bar as READ TEXT X . Notice that VEE automatically adds a data output named REAL64 Note If the instrument is returning an array of values, click on the menu SCALAR in the...
  • Page 180: Uploading And Downloading Instrument States

    For more complex examples, refer to the VEE Pro Advanced Techniques manual. Uploading and Downloading Instrument States Some instruments offer a “learn string” capability. The learn string embodies all the function settings that compose an instrument state.
  • Page 181: Figure 3-22. Learn String Configuration For Hp54100A

    Easy Ways to Control Instruments Using Direct I/O 4. Click , select , then click to close the TEXT STATE (LEARN STRING) box. The previously captured state is sent to the I/O Transaction instrument when this transaction is executed. WRITE Uploading and downloading are controlled by the settings in the Direct I/O Configuration dialog box.
  • Page 182: Using Pc Plug-In Boards

    Easy Ways to Control Instruments Using PC Plug-in Boards Using PC Plug-in Boards VEE provides three ways to control PC plug-in boards or cards: 1. ODAS drivers supplied by the PC Plug-in card vendor. 2. Data Translation’s Visual Programming Interface. (Order the VPI application directly through Data Translation.) 3.
  • Page 183: Figure 3-23. Odas Driver Entries In Instrument Manager

    VEE as shown in Figure 3-24. Formula Figure 3-24. PC Plug-in Card with ODAS Driver as Formula Object For more detailed information about using PC Plug-in Cards with ODAS drivers, refer to the VEE Pro Advanced Techniques manual. Chapter 3...
  • Page 184: Data Translation's Visual Programming Interface (Vpi)

    Easy Ways to Control Instruments Using PC Plug-in Boards Data Translation’s Visual Programming Interface (VPI) Data Translation’s VPI works with VEE to create seamless data acquisition performance for PC plug-ins. By leveraging the flexibility of Data Translation’s Open Layers standards, you have access to over 50 data acquisition boards.
  • Page 185: Computerboards Pc Plug-Ins

    ComputerBoards offers low cost, powerful PC plug-in boards that are compatible with VEE. (For a complete list of supported PC plug-in vendors, see VEE literature or VEE Pro Advanced Techniques.) You simply install the board and its I/O library, and configure the board using a program supplied by the manufacturer.
  • Page 186: Figure 3-26. Vee Using A Computerboards 100 Khz Board

    Easy Ways to Control Instruments Using PC Plug-in Boards Figure 3-26. VEE Using a ComputerBoards 100 KHz Board Figure 3-26 shows the panel view of the demonstration program using this 100 KHz A/D board. Figure 3-27 shows VEE importing the ComputerBoards I/O library that made these data acquisition function calls possible.
  • Page 187: Meilhaus Electronic Me-Driversystem

    Easy Ways to Control Instruments Using PC Plug-in Boards Meilhaus Electronic ME-DriverSystem Meilhaus Electronic is one of the leading European designers, producers and sales companies for PC-based data acquisition and interface technology. The ME-DriverSystem for Windows on CD-ROM is included with all data acquisition boards made by Meilhaus Electronic (i.e.
  • Page 188: Figure 3-29. User Panel For Data Acquisition Board Me-3000

    Easy Ways to Control Instruments Using PC Plug-in Boards Figure 3-29. User Panel for Data Acquisition Board ME-3000 Finally, in the third menu, the actual functions are located, such as me3000AISingle. Figure 3-30 shows the function panel. Figure 3-30. Function Panel for ME-DriverSystem Chapter 3...
  • Page 189: Using A Vxiplug&Play Driver

    Web at . These same drivers http://www.agilent.com/find/inst_drivers are also included with VEE along with all Agilent Technologies panel drivers. To get VXIplug&play drivers for other instruments, contact the instrument vendor. Lab 3-4: Configuring a VXIPlug&play Driver This example describes how to configure an HPE1412 driver.
  • Page 190: Figure 3-31. Selecting A Vxiplug&Play Driver

    Easy Ways to Control Instruments Using a VXIplug&play Driver plug&play Figure 3-31. Selecting a VXI Driver 4. Select the driver, click to return to the HPE1412 Instrument dialog box, and click to return to the Properties Instrument . There should now be an entry for Manager Instrument(@(NOT LIVE))
  • Page 191: Figure 3-32. Selecting A Function For A Vxiplug&Play Driver

    Easy Ways to Control Instruments Using a VXIplug&play Driver Note VEE automatically initializes the instrument. You do not have to use an function, as you would in other languages. init Figure 3-32. Selecting a Function for a VXI plug&play Driver ⇒...
  • Page 192: Figure 3-33. The Hpe1412 Edit Function Panel

    Easy Ways to Control Instruments Using a VXIplug&play Driver Figure 3-33. The HPE1412 Edit Function Panel 8. Click . The object now contains an entry for To/From Instrument hpe1412_configure(instruHandle,hpe1412_CONF_VOLT_DC) as shown in Figure 3-34. Figure 3-34. DC Voltage Function in VXIplug&play Object Chapter 3...
  • Page 193: Figure 3-35. Configuration Folder In Edit Function Panel

    Easy Ways to Control Instruments Using a VXIplug&play Driver 9. In the object, double-click to add a function and To/From Instrument select under . Click on the Take Measurement Measure folder to display the dialog box shown in Figure 3-35. Configuration Figure 3-35.
  • Page 194: Other I/O Features

    VEE includes an ActiveX Automation server to programmatically find instruments. For further information, see the VEE Pro Advanced Techniques manual. n You can also change I/O configurations programmatically at run time. For further information, see the VEE Pro Advanced Techniques manual. Chapter 3...
  • Page 195: Chapter Checklist

    Easy Ways to Control Instruments Chapter Checklist Chapter Checklist You should now be able to perform the following tasks. Review the appropriate topics, if necessary, before going on to the next chapter. n Explain the benefits of using instrument drivers and Direct I/O. n Explain the process for controlling instruments.
  • Page 196 Easy Ways to Control Instruments Chapter Checklist Chapter 3...
  • Page 197: Analyzing And Displaying Test Data

    Analyzing and Displaying Test Data...
  • Page 198 Analyzing and Displaying Test Data Analyzing and Displaying Test Data In this chapter you will learn about: n VEE data types n VEE analysis capabilities n Using math objects n Using the Formula object n Using the MATLAB Script object n VEE display capabilities n Customizing displays Average Time to Complete: 1.5 hours...
  • Page 199: Overview

    Analyzing and Displaying Test Data Overview Overview In this chapter, you will learn about VEE analytical and display capabilities. You will learn how to locate the right math objects for your applications and how to display test results, so that you can turn data into useful information easily and quickly.
  • Page 200: Agilent Vee Data Shapes And Data Types

    Analyzing and Displaying Test Data Agilent VEE Data Shapes and Data Types Agilent VEE Data Shapes and Data Types In a VEE program, data is transmitted across the lines between objects and is then processed by subsequent objects. In order to specify a set of data, VEE...
  • Page 201: Table 4-1. Agilent Vee Data Types

    Analyzing and Displaying Test Data Agilent VEE Data Shapes and Data Types Table 4-1. Agilent VEE Data Types Data Type Description UInt8 Unsigned byte 0 to 255. Int16 A 16-bit two’s complement integer (-32768 to 32767). Int32 A 32-bit two’s complement integer (-2147483648 to 2147483647).
  • Page 202 Analyzing and Displaying Test Data Agilent VEE Data Shapes and Data Types Table 4-1. Agilent VEE Data Types (Continued) Data Type Description Coord A composite data type that contains at least two components in the form (x,y,...). Each component is Real64. The data shape of a coord must be a Scalar or an Array 1D.
  • Page 203: Agilent Vee Analysis Capabilities

    Analyzing and Displaying Test Data Agilent VEE Analysis Capabilities Agilent VEE Analysis Capabilities VEE supports common math operations and hundreds of other functions. In addition, VEE also includes the MATLAB Script feature. The MATLAB Script feature is a subset of the standard full-featured MATLAB from The MathWorks.
  • Page 204: Using Built-In Math Objects

    Analyzing and Displaying Test Data Using Built-In Math Objects Using Built-In Math Objects ⇒ In the VEE , you can access Device Function & Object Browser built-in (preprogrammed) mathematical expressions for both VEE and MATLAB. Accessing a Built-in Operator or Function ⇒...
  • Page 205: Lab 4-1: Calculating Standard Deviation

    The MATLAB Runtime Engine and Script is discussed more in the section “Using MATLAB Script in Agilent VEE” on page 187. Lab 4-1: Calculating Standard Deviation Generate a cosine waveform of at a frequency of 1 kHz, amplitude of 1 V, a time span of 20 ms, represented by 256 points.
  • Page 206: Figure 4-3. Opening Function And Object Browser From Fx Icon

    Analyzing and Displaying Test Data Using Built-In Math Objects ⇒ 2. Select , then select Device Function & Object Browser , and Built-in Functions Probability & Statistics sdev Click Create Formula Note You can go directly to the Function & Object Browser dialog box by pressing the x icon on the tool bar, shown in Figure 4-3, or by pressing Ctrl-I.
  • Page 207: Creating Expressions With The Formula Object

    Analyzing and Displaying Test Data Creating Expressions with the Formula Object Creating Expressions with the Formula Object object can be used to write mathematical expressions in VEE. Formula The variables in the expression are the data input pin names or global variables.
  • Page 208: Evaluating An Expression With The Formula Object

    Analyzing and Displaying Test Data Creating Expressions with the Formula Object ⇒ Note All the functions created from the Devices Function & Object type are simply Formulas that already have their Browser Built-in expressions set appropriately. They can be modified to combine functions and add (or delete) inputs.
  • Page 209: Using An Agilent Vee Function In The Formula Object

    Analyzing and Displaying Test Data Creating Expressions with the Formula Object Figure 4-6. Evaluating an Expression Using an Agilent VEE Function in the Formula Object This example generates a cosine wave and calculates the standard deviation and root mean square using the object.
  • Page 210: Figure 4-7. Formula Examples Using Vee Functions

    Analyzing and Displaying Test Data Creating Expressions with the Formula Object Figure 4-7. Formula Examples Using VEE Functions Now calculate the standard deviation and root mean square using only one object. Formulas can have multiple output terminals with values Formula assigned to them.
  • Page 211: On Your Own

    Analyzing and Displaying Test Data Creating Expressions with the Formula Object 8. In the object, add an output terminal. Rename the output Formula terminals . Connect output terminal to one of the objects, and output terminal to the other Alphanumeric object.
  • Page 212: Figure 4-9. On Your Own Solution: Ramp And Sdev

    Analyzing and Displaying Test Data Creating Expressions with the Formula Object Figure 4-9. On Your Own Solution: Ramp and SDEV For the second and third exercises, you have to delete the input terminal on the object to avoid an error message, because all data input pins Formula must be connected and have data before an object can operate.
  • Page 213: Using Matlab Script In Agilent Vee

    Analyzing and Displaying Test Data Using MATLAB Script in Agilent VEE Using MATLAB Script in Agilent VEE VEE includes the MATLAB Script object, which gives you access to the functionality of MATLAB. VEE can pass data to the MATLAB Script Engine and receive data back, enabling you to include MATLAB mathematical functions in VEE programs.
  • Page 214: Figure 4-10. Matlab Script Object In A Vee Program

    Analyzing and Displaying Test Data Using MATLAB Script in Agilent VEE Figure 4-10. MATLAB Script Object in a VEE Program Chapter 4...
  • Page 215: Figure 4-11. Graph Generated By The Program

    Analyzing and Displaying Test Data Using MATLAB Script in Agilent VEE Figure 4-11 shows the graph that is produced when the program runs. Figure 4-11. Graph Generated by the Program When you include MATLAB Script objects in a VEE program, VEE calls the MATLAB Script Engine to perform the operations in the MATLAB Script objects.
  • Page 216: Including A Matlab Script Object In Agilent Vee

    Only some VEE data types are allowed as MATLAB script inputs. This is discussed in more detail in a following section. Including a MATLAB Script Object in Agilent VEE When you use a MATLAB object in a VEE program, it looks like a VEE object.
  • Page 217: Working With Data Types

    Analyzing and Displaying Test Data Using MATLAB Script in Agilent VEE Figure 4-12. Adding Predefined MATLAB Objects to a VEE Program Notice that each object is named <function name> to MATLAB Script help you distinguish it from other VEE formula objects. Each object already includes the function it will perform, and the input and output pins that are likely to be needed, just like built-in VEE formula objects.
  • Page 218 Analyzing and Displaying Test Data Using MATLAB Script in Agilent VEE You can also use input terminal data type constraints to ensure that the data input from another object is converted to a supported type, as shown in the following example.
  • Page 219: Figure 4-13. Changing Input Terminal Data Type

    Analyzing and Displaying Test Data Using MATLAB Script in Agilent VEE Figure 4-13. Changing Input Terminal Data Type Chapter 4...
  • Page 220: Displaying Test Data

    Analyzing and Displaying Test Data Displaying Test Data Displaying Test Data Table 4-2 describes the display capabilities for the different VEE objects. Table 4-2. Displays Display Description Alphanumeric Display values as text or numbers. Requires SCALAR, ARRAY 1D, or ARRAY 2D. Beep Gives an audible tone to highlight a place in your program.
  • Page 221 Analyzing and Displaying Test Data Displaying Test Data Table 4-2. Displays (Continued) Display Description Polar Plot Graphically displays data on a polar scale when separate information is available for radius and angle data. Spectrum (Freq) A menu that contains frequency domain displays: Magnitude Spectrum, Phase Spectrum, Magnitude vs.
  • Page 222: Customizing Test Data Displays

    Analyzing and Displaying Test Data Customizing Test Data Displays Customizing Test Data Displays Displays may be customized in a variety of ways. Not only can you label, move and size displays like all VEE objects, but you can also change the x/y scales, modify the traces, add markers, or zoom in on parts of the graphical display.
  • Page 223: Changing The X And Y Scales

    Analyzing and Displaying Test Data Customizing Test Data Displays Figure 4-14. Displaying a Waveform Changing the X and Y Scales 1. Double-click the title bar to get the Waveform (Time) Y Plot box, select the folder, select for the Properties Scales and enter Maximum...
  • Page 224: Adding Delta Markers To The Display

    Analyzing and Displaying Test Data Customizing Test Data Displays The display zooms in to this selected area of the waveform. Notice the scales change automatically. Adding Delta Markers to the Display 1. Move to the open view on the Noise Generator a.
  • Page 225: Changing The Color Of The Trace

    You can select the color, line type, and point type for the Trace selected in this folder. Note You can also change these values at run time by using the Traces control inputs. For more information, see the VEE Pro Advanced Scales Techniques manual. 2. Click for the selected color. Then click...
  • Page 226: For Additional Practice

    Analyzing and Displaying Test Data Customizing Test Data Displays The trace will now be displayed in the new color. Other display characteristics such as Panel Layout, Grid Type, Clear Control, and Add Right Scale may be customized in a similar fashion as the features in the exercise above.
  • Page 227: Chapter Checklist

    Analyzing and Displaying Test Data Chapter Checklist Chapter Checklist You should now be able to do the following tasks. Review topics as needed, before going on to the next chapter. n Describe the main data types in VEE. n Describe some of the main areas of analytical capabilities in VEE. n Find an online explanation for any object in the Help...
  • Page 228 Analyzing and Displaying Test Data Chapter Checklist Chapter 4...
  • Page 229: Storing And Retrieving Test Results

    Storing and Retrieving Test Results...
  • Page 230 Storing and Retrieving Test Results Storing and Retrieving Test Results In this chapter you will learn about: n Putting test data into arrays n Using the object Collector n Using the objects To/From File n Creating mixed data types using Records n Performing search and sort operations using DataSets...
  • Page 231: Overview

    Note object is also described in “Using Data Files” on page 87 of To File Chapter 2, “Agilent VEE Programming Techniques.” Chapter 5...
  • Page 232: Using Arrays To Store Test Results

    Storing and Retrieving Test Results Using Arrays to Store Test Results Using Arrays to Store Test Results Data types can be stored in two ways: n Scalar values (that is, a single number such as 9 or (32, @10)) -OR- n Arrays from 1 to 10 dimensions.
  • Page 233: Lab 5-1: Creating An Array For Test Results

    Storing and Retrieving Test Results Using Arrays to Store Test Results Lab 5-1: Creating an Array for Test Results The easiest way to create an array is to use the object. Collector This exercise uses the object to simulate four readings from an For Count instrument.
  • Page 234: Lab 5-2: Extracting Values From An Array

    Storing and Retrieving Test Results Using Arrays to Store Test Results The XEQ pin, a special trigger pin that exists on several different objects, determines when the object executes. In this case, you want the object to fire after all of the data for the array has been collected. 5.
  • Page 235: Figure 5-2. Extracting Array Elements With Expressions

    Storing and Retrieving Test Results Using Arrays to Store Test Results ⇒ 2. Select and clone it. Move to the Device Formula AlphaNumeric right, and put both objects to the right of the Formula Collector 3. Connect the data output to the data inputs of the Collector Formula objects.
  • Page 236: Using The To/From File Objects

    REWIND From File beginning of the file without affecting any data. Note object is also described in “Using Data Files” on page 87 of To File Chapter 2, “Agilent VEE Programming Techniques.” Chapter 5...
  • Page 237: Understanding I/O Transactions

    Storing and Retrieving Test Results Using the To/From File Objects Understanding I/O Transactions I/O transactions are used by VEE to communicate with instruments, files, strings, the operating system, interfaces, other programs, Rocky Mountain Basic, and printers. For example, look at the object in Figure 5-3.
  • Page 238: I/O Transaction Format

    Storing and Retrieving Test Results Using the To/From File Objects I/O Transaction Format An I/O transaction to write data is usually in the following format: <action> <encoding> <expression list> <format> <EOL> Table 5-1 describes the most common actions: READ, WRITE, EXECUTE, and WAIT.
  • Page 239: Table 5-2. I/O Transaction Encoding

    Storing and Retrieving Test Results Using the To/From File Objects Table 5-2. I/O Transaction Encoding Encoding Explanations TEXT Reads or writes all data types in a human-readable form (ASCII) that can easily be edited or ported to other software applications. VEE numeric data is automatically converted to text.
  • Page 240: Lab 5-3: Using The To/From File Objects

    Storing and Retrieving Test Results Using the To/From File Objects Lab 5-3: Using the To/From File Objects This lab exercise describes the process of getting test data to and from files. In this exercise, you will store and retrieve three common test result items: a test name, a time stamp, and a one-dimensional array of Real values.
  • Page 241: Sending A Time Stamp To A File

    Storing and Retrieving Test Results Using the To/From File Objects TEXT Use the default . The encoding TEXT TEXT will send the data using ASCII characters. DEFAULT . The DEFAULT FORMAT DEFAULT FORMAT will choose an appropriate VEE FORMAT format such as STRING EOL ON Use the default.
  • Page 242: Sending A Real Array To A File

    Storing and Retrieving Test Results Using the To/From File Objects HH:MM:SS Click and toggle to (from the hour, minute, HH:MM and second format to the hour, minute format). 24 HOUR Click and toggle to (from 24-hour format to 12 HOUR a.m.
  • Page 243: Figure 5-6. Storing Data Using The To File Object

    Storing and Retrieving Test Results Using the To/From File Objects will now create the array , which you Collector [0, 1, 2, 3] can send to the data file. 3. Using the same object, double-click in the transaction area. In To File dialog box, open the menu,...
  • Page 244: Retrieving Data With The From File Object

    Storing and Retrieving Test Results Using the To/From File Objects Retrieving Data with the From File Object To retrieve data using a object, you must know how the data From File was stored. Note You can also store and retrieve data using To DataSet From DataSet which does not require you to know the type of data in the file.
  • Page 245: Figure 5-7. Selecting String Format

    Storing and Retrieving Test Results Using the To/From File Objects Figure 5-7. Selecting String Format 4. All of the other defaults are correct, so click to close the box. The transaction bar in the object should Transaction From File now contain the statement READ TEXT x STR Now add two more transactions to read back the time stamp and the real array.
  • Page 246 Storing and Retrieving Test Results Using the To/From File Objects 6. In the same object, double-click below the second From File transaction bar to display to the dialog box. Set I/O Transaction entries as follows: (expression field) Edit , so that the array is read back to the Real output terminal.
  • Page 247: Figure 5-8. Retrieving Data Using The From File Object

    Storing and Retrieving Test Results Using the To/From File Objects Figure 5-8. Retrieving Data Using the From File Object Notice that the first Alphanumeric displays the title, the second displays the time of the test, and the third lists the numbers in the array. Chapter 5...
  • Page 248: Using Records To Store Mixed Data Types

    Storing and Retrieving Test Results Using Records to Store Mixed Data Types Using Records to Store Mixed Data Types The Record data type can store different data types in a single data container. Record can include any VEE data type. The data can be in the shape of a Scalar or an Array.
  • Page 249: Building A Record

    Output Shape Build Record . The default will be the correct choice for Scalar Array Scalar the majority of situations. (For more information, see the VEE Pro Advanced Techniques manual.) Chapter 5...
  • Page 250: Figure 5-9. Output Terminal Information On A Record

    Storing and Retrieving Test Results Using Records to Store Mixed Data Types 6. Connect the object to the terminal, the Text Constant testname object to the terminal, and the object to the data now() time Real64 terminal on the object. Build Record 7.
  • Page 251: Getting A Field From A Record

    Storing and Retrieving Test Results Using Records to Store Mixed Data Types Getting a Field From a Record Use the object to extract each of the three fields from the record, Get Field then display the values for each. 1. Open the program.
  • Page 252: Figure 5-10. The Alphanumeric Properties Box

    Storing and Retrieving Test Results Using Records to Store Mixed Data Types Set the display format. Open the menu in the section. Standard Real Select and click Time Stamp 8. Click to toggle to . Click to toggle to HH:MM:SS HH:MM 24 HOUR .
  • Page 253: Setting A Field In A Record

    Storing and Retrieving Test Results Using Records to Store Mixed Data Types Figure 5-11. Using the Get Field Object Notice that the second display lists the weekday, the date, and the time expressed in hours, minutes, and an a.m. or p.m. designation. Setting a Field in a Record This exercise shows how to change data in specific fields of a record.
  • Page 254 Storing and Retrieving Test Results Using Records to Store Mixed Data Types ⇒ ⇒ 1. Select and place it to the Data Access Record Set Field right of . Connect the output from to the Build Record Build Record input of .
  • Page 255: Figure 5-12. Using The Set Field Object

    Storing and Retrieving Test Results Using Records to Store Mixed Data Types Note You could also use a object with in the expression field. Formula A.data 5. Select an display, size it to accommodate an array, and AlphaNumeric connect it to the output pin.
  • Page 256: Unbuilding A Record In A Single Step

    Storing and Retrieving Test Results Using Records to Store Mixed Data Types Unbuilding a Record in a Single Step To extract all record fields and get a list of the field names and their types, use the object. UnBuild Record 1.
  • Page 257: Figure 5-13. Using The Unbuild Record Object

    Storing and Retrieving Test Results Using Records to Store Mixed Data Types Figure 5-13. Using the UnBuild Record Object Notice that the pin gives the names , and Name List testname time data of the three fields in the record, just as the identifies Type List testname...
  • Page 258: Using Datasets To Store And Retrieve Records

    Storing and Retrieving Test Results Using DataSets to Store and Retrieve Records Using DataSets to Store and Retrieve Records can retrieve one or more records. VEE objects unpack the DataSets records. Therefore, by storing records to DataSets instead of files, you do not have to remember the data types.
  • Page 259 Storing and Retrieving Test Results Using DataSets to Store and Retrieve Records ⇒ ⇒ 3. Select and place the object to the Data Build Data Record, right of . Add a data input pin. Connect the data output of Formula to the input of Formula...
  • Page 260: Figure 5-14. Storing An Array Of Records In A Dataset

    Storing and Retrieving Test Results Using DataSets to Store and Retrieve Records 8. Run the program. It should put an array of ten records into the DataSet called , as shown in Figure 5-14. myFile Figure 5-14. Storing an Array of Records in a DataSet Now retrieve the array of records and display it using the From DataSet objects.
  • Page 261 Storing and Retrieving Test Results Using DataSets to Store and Retrieve Records ⇒ ⇒ 10.Select and place the object below Data Constant Record ⇒ . Open the object menu and select Data Set Add Terminal . Click from the list box presented, Control Input Default Value then click...
  • Page 262: Figure 5-15. Storing And Retrieving Data Using Datasets

    Storing and Retrieving Test Results Using DataSets to Store and Retrieve Records Figure 5-15. Storing and Retrieving Data Using DataSets Note object must include at least one record that meets the From Data Set criterion, or VEE issues an error message. To avoid an error, add an (end-of-file) output pin to the object which activates if no records meet the criterion.
  • Page 263: Customizing A Simple Test Database

    Storing and Retrieving Test Results Customizing a Simple Test Database Customizing a Simple Test Database You can search and sort a for information, such as test name, time DataSet stampls, test parameters, test values, pass or fail indicators, and test descriptions.
  • Page 264: Creating An Operator Interface For A Search Operation

    Storing and Retrieving Test Results Customizing a Simple Test Database Figure 5-16. A Search Operation with DataSets Creating an Operator Interface for a Search Operation This exercise adds a menu for an operator to extract data from the test results database.
  • Page 265 Storing and Retrieving Test Results Customizing a Simple Test Database Follow these steps to create the program. 1. Open the program. dataset2.vee Add a control input that will allow you to input the expression in the From object programmatically. Data Set 2.
  • Page 266: Figure 5-17. Adding The Test Menu Object

    Storing and Retrieving Test Results Customizing a Simple Test Database 4. The program can now execute whenever the operator makes a menu selection, so delete the object. Press the right mouse button over Start object and select Start 5. The program should only execute when a menu selection is made, so connect the data output pin to the...
  • Page 267 Storing and Retrieving Test Results Customizing a Simple Test Database 6. The output of the goes into a object, which then Test Menu Formula sends the correct formula to the object. From Data Set ⇒ Select , and place the object below Device Formula Test Menu...
  • Page 268: Figure 5-18. Adding A Menu To The Search Operation

    Storing and Retrieving Test Results Customizing a Simple Test Database 10.Connect the sequence output pin to the Formula From Data Set sequence input pin. This ensures the right data from is being Formula used. ⇒ 11. Create a box displaying instructions for the operator. Select Display .
  • Page 269: Figure 5-19. The Operator Interface For The Database

    Storing and Retrieving Test Results Customizing a Simple Test Database 14.Press and click these objects: Ctrl Test Menu Test Results , and Database Instructions Test Results All objects selected show a shadow. Verify no other objects are selected. ⇒ Then select , and the operator interface Edit Add to Panel...
  • Page 270: Performing A Sort Operation On A Record Field

    Storing and Retrieving Test Results Customizing a Simple Test Database ⇒ Note To secure the operator interface and program from changes, select File . Enter a name for the program and VEE Create RunTime Version... will automatically add a extension to separate it from unsecured *.vxe versions.
  • Page 271: Figure 5-20. A Sort Operation On A Record Field

    Storing and Retrieving Test Results Customizing a Simple Test Database 4. Run the program a few times. It should look similar to Figure 5-20. Notice that the program sorts all of the records returned from the file in ascending order by field DataSet Figure 5-20.
  • Page 272: Chapter Checklist

    Storing and Retrieving Test Results Chapter Checklist Chapter Checklist You should now be able to perform the following tasks. Review topics, if necessary, before proceeding to the next chapter. n Explain the basic notation for using arrays. n Create an array using the object.
  • Page 273: Creating Reports Easily Using Activex

    Creating Reports Easily Using ActiveX...
  • Page 274 Creating Reports Easily Using ActiveX Creating Reports Easily Using ActiveX In this chapter you will learn about: n ActiveX Automation in VEE n Using ActiveX for reports with MS Excel n Using ActiveX for reports with MS Word Average time to complete: 1.5 hours Chapter 6...
  • Page 275: Overview

    Creating Reports Easily Using ActiveX Overview Overview In this chapter, you will learn how to generate reports in other applications, such as MS Excel, by sending data from the VEE program to the MS Excel program. VEE uses ActiveX Automation to control other applications, which provides a fast process for creating detailed and effective reports.
  • Page 276: Activex Automation In Agilent Vee

    Control” on page 396, and “The Callable VEE ActiveX Automation Server” on page 446. For more detailed information about Automation terminology and concepts, refer to the VEE Pro Advanced Techniques manual. Listing ActiveX Automation Type Libraries To find the automation objects installed on your computer, click Devices ⇒...
  • Page 277: Creating And Using Activex Programs With Agilent Vee

    References box, the library objects become available for use in a VEE program. For example, in Figure 6-1, Microsoft Excel 9.0 is checked. Figure 6-1. The ActiveX Automation Reference Box Creating and Using ActiveX Programs with Agilent VEE includes a data type called for ActiveX programs. A VEE...
  • Page 278: Performing Operations Using Activex Statements

    Creating Reports Easily Using ActiveX ActiveX Automation in Agilent VEE Figure 6-2. Example of Data Type “Object” Performing Operations Using ActiveX Statements To communicate with an ActiveX Automation server, such as the Excel Automation Server, enter ActiveX commands in a VEE object.
  • Page 279: Using Createobject And Getobject

    Creating Reports Easily Using ActiveX ActiveX Automation in Agilent VEE VEE uses standard Microsoft Visual Basic syntax to create the commands or statements like those shown in Figure 6-3. The commands or statements perform three types of operations: get properties, set properties, or call methods.
  • Page 280: Figure 6-4. Createobject And Getobject

    Creating Reports Easily Using ActiveX ActiveX Automation in Agilent VEE Figure 6-4. CreateObject and GetObject Chapter 6...
  • Page 281: Sending Agilent Vee Data To Ms Excel

    This section introduces the VEE objects and MS Excel function calls for generating reports. Lab 6-1: Sending Agilent VEE Data to MS Excel In this lab, you will generate virtual test data for MS Excel. (The example uses MS Office 2000 and the MS Excel 9.0 Object Library, and should also work with MS Office 97 and the MS Excel 8.0 Object Library.) After...
  • Page 282: Figure 6-5. The Globals Userfunction

    Creating Reports Easily Using ActiveX Sending Agilent VEE Data to MS Excel 5. After you have compared the entries to Figure 6-5, iconize the four objects. Figure 6-5. The Globals UserFunction Notice that by using the datatype in the Objects...
  • Page 283: Figure 6-6. Setting Up The Ms Excel Worksheet

    Creating Reports Easily Using ActiveX Sending Agilent VEE Data to MS Excel Events are useful for ActiveX Controls, where you need a way for the control to communicate back to VEE. For more information, refer to the VEE Pro Advanced Techniques manual.
  • Page 284 (often the name) of the right-hand side is assigned to the left-hand side. For more information, refer to the VEE Pro Advanced Techniques manual. worksheets(1); Now that Excel is running with a new workbook in...
  • Page 285 Creating Reports Easily Using ActiveX Sending Agilent VEE Data to MS Excel set app = Asks Excel for a pointer to the entire application, sheet.application; and not just the worksheet itself, by asking the worksheet for its property Application setting it to the variable app.visible = true;...
  • Page 286: Figure 6-7. Adding The Title And Data To The Sheet

    Creating Reports Easily Using ActiveX Sending Agilent VEE Data to MS Excel Figure 6-7. Adding the Title and Data to the Sheet The instructions in the objects and the object are Formula For Range described as follows: sheet.cells(1,1) = Refers to the first row and column in the Excel “DC Volts”...
  • Page 287: Figure 6-8. The Results Average Program

    Creating Reports Easily Using ActiveX Sending Agilent VEE Data to MS Excel from 1 thru 20, As the object outputs the integers from For Range step 1 (the puts the random number in Fill in Cells For Range object) the specified cell.
  • Page 288: Figure 6-9. Excel Worksheet For "Results Average" Program

    Creating Reports Easily Using ActiveX Sending Agilent VEE Data to MS Excel The entries in the object are as follows: Formula set range = Sets the VEE variable range to sheet.range(“A2:A21"); reference the range the Excel worksheet. ( refers to the first column in a worksheet.)
  • Page 289: Creating An Agilent Vee To Ms Excel Template

    In this exercise, you will create a program to display an array of VEE test data in MS Excel. You can use this program as a template for displaying the results of other tests in MS Excel spreadsheets. Lab 6-2: Creating an Agilent VEE to MS Excel Template 1. Open results_average.vee...
  • Page 290: Figure 6-10. Excel Worksheet For Array Of Test Data

    Creating Reports Easily Using ActiveX Creating an Agilent VEE to MS Excel Template Figure 6-10. Excel Worksheet for Array of Test Data Figure 6-11. Program for Array of Test Data Chapter 6...
  • Page 291: On Your Own

    Creating Reports Easily Using ActiveX Creating an Agilent VEE to MS Excel Template You can re-use this program as a template for displaying test results in MS Excel. You simply put the test data into arrays and modify the rest of the template to fill in the appropriate cells in the right format.
  • Page 292: Extending Capabilities With Ms Excel

    Creating Reports Easily Using ActiveX Creating an Agilent VEE to MS Excel Template Extending Capabilities With MS Excel Figure 6-13 shows a more elaborate example of a program to display test results in MS Excel. You can see how knowledge of a few more calls in the MS Excel library can expand the template for displaying VEE data in MS Excel.
  • Page 293 Creating Reports Easily Using ActiveX Creating an Agilent VEE to MS Excel Template Memory Tracking (Click in the Show Terminals Properties boxes on the objects.) Notice Formula Meter properties in memoryTotal memoryUsed the Excel library that are assigned to the VEE variables .
  • Page 294: Using Ms Word For Agilent Vee Reports

    XY Display. Consult Microsoft documentation to find out more elaborate ways of controlling MS Word from other applications using ActiveX Automation. Lab 6-3: Using MS Word for Agilent VEE Reports To begin, follow the steps to declare five variables as type Object ⇒...
  • Page 295: Figure 6-14. Object Variables

    Creating Reports Easily Using ActiveX Using MS Word for Agilent VEE Reports Figure 6-14. Object Variables 3. Create a called , which uses a UserFunction Graph Function virtual source to send a sine wave to a Generator Waveform (Time) display. Create a panel view of the display only. Then generate a Call object in the Main window.
  • Page 296: Figure 6-15. Beginning Of Lab 6-3 Program

    Creating Reports Easily Using ActiveX Using MS Word for Agilent VEE Reports in the input field. (Use the escape sequence "\\panel.bmp" Formula to specify the ASCII character .) Delete input terminal If you installed in for example, you c:\Program Files\Agilent\...
  • Page 297: Figure 6-16. Adding The Activex Statements

    Creating Reports Easily Using ActiveX Using MS Word for Agilent VEE Reports ⇒ 7. Click and enter the statements shown in Figure Device Formula 6-16, which are also described below. Rename input terminal . Connect the data input and sequence input pins as shown in FileName Figure 6-16.
  • Page 298 Creating Reports Easily Using ActiveX Using MS Word for Agilent VEE Reports Set Doc = Adds a Document in MS Word and assigns it App.Documents. to the variable Object Add(); Note: In the Excel example, Excel was started with a blank worksheet using .
  • Page 299: Figure 6-17. The Complete Program For Report In Ms Word

    Creating Reports Easily Using ActiveX Using MS Word for Agilent VEE Reports Figure 6-17. The Complete Program for Report in MS Word The entries in the additional objects are as follows: App.ActivePrinter Requests the default printer in a string including its port.
  • Page 300: Figure 6-18. The Ms Word Document Created By Lab 6-3

    Creating Reports Easily Using ActiveX Using MS Word for Agilent VEE Reports Figure 6-18. The MS Word Document Created by Lab 6-3 For more information about controlling MS Excel and MS Word using ActiveX Automation, refer to Microsoft documentation. Remember that you can also control other Server applications that support ActiveX Automation, sometimes just called Automation, or OLE Automation.
  • Page 301: Chapter Checklist

    Creating Reports Easily Using ActiveX Chapter Checklist Chapter Checklist You should now be able to perform the following tasks. Review topics, if necessary, before going on to the next chapter. n Describe the basic concept behind ActiveX Automation in VEE. n Send data from VEE to MS Excel.
  • Page 302 Creating Reports Easily Using ActiveX Chapter Checklist Chapter 6...
  • Page 303: Integrating Programs In Other Languages

    Integrating Programs In Other Languages...
  • Page 304 Integrating Programs In Other Languages Integrating Programs In Other Languages In this chapter you will learn about: n The object Execute Program n Using operating system commands from VEE n Making VEE programs portable across platforms Average time to complete: 1 hour Chapter 7...
  • Page 305: Overview

    Integrating Programs In Other Languages Overview Overview In this chapter, you will learn the easiest way to integrate compiled programs and operating system commands with VEE. One of the great advantages of VEE is that it integrates well with other applications and programs. Furthermore, by using ActiveX, you can use components from other programs.
  • Page 306: Understanding The Execute Program Object

    Integrating Programs In Other Languages Understanding the Execute Program Object Understanding the Execute Program Object In addition to ActiveX Automation, there are three ways to run programs in other languages from VEE: 1. Use the object to escape VEE and run another Execute Program program, application, or operating system command.
  • Page 307: Using The Execute Program Object (Pc)

    Any document or URL with a recognized extension. The “open” action is invoked in the files. If an “open” action does not exist, the default action is invoked with the file. An example of a URL would be http://www.agilent.com/find/vee The fields in the are as follows:...
  • Page 308 Integrating Programs In Other Languages Understanding the Execute Program Object Wait for Specifies when to fire the sequence pin. prog exit n When set to Yes, the sequence pin is not fired until the program finishes executing. n When set to No, the sequence out pin fires before the specified program is done executing.
  • Page 309: Using The Execute Program Object (Hp-Ux)

    Integrating Programs In Other Languages Understanding the Execute Program Object Using the Execute Program Object (HP-UX) Figure 7-2 shows the Object for HP-UX. Execute Program Figure 7-2. The Execute Program Object (UNIX) HP-UX is designed to run a number of programs (called processes) concurrently.
  • Page 310 Integrating Programs In Other Languages Understanding the Execute Program Object Wait for prog exit field toggles between Wait for prog exit field . Regardless of the setting, VEE spawns a child process, if one is not already active. All transactions specified in the Execute Program are completed.
  • Page 311: Using A System Command

    Integrating Programs In Other Languages Using a System Command Using a System Command To call a compiled program in another language, you can type in the executable file and any parameters in the object. Execute Program However, to execute an MS DOS system command, you must first run the DOS command interpreter.
  • Page 312: Figure 7-3. Listing The Files In A Directory (Pc)

    Integrating Programs In Other Languages Using a System Command 3. Double-click the transaction bar to get the box. I/O Transaction a. Change REAL64 FORMAT STRING FORMAT b. Change SCALAR ARRAY 1D c. Click on the field to toggle it to , then SIZE: (10) TO END: (*)
  • Page 313: Lab 7-2: Listing The Files In A Directory (Unix)

    Integrating Programs In Other Languages Using a System Command Lab 7-2: Listing the Files in a Directory (UNIX) In this exercise, you will use the operating system command , which lists the filenames in a directory. Since this is not a shell-dependent command, you can set Shell to .
  • Page 314: Listing The Files In A Directory Using A Shell

    Integrating Programs In Other Languages Using a System Command 7. Run the program. It should look like Figure 7-4. Figure 7-4. Listing the Files in a Directory (UNIX) Listing the Files in a Directory Using a Shell This variation of the last exercise uses a shell-dependent feature, a pipe ( to send the output of one operating system command to another.
  • Page 315: Figure 7-5. Using A Shell Command With A Pipe

    Integrating Programs In Other Languages Using a System Command d. Configure the first transaction as . Lines READ TEXT Lines INT32 replaces the default variable e. Configure a second transaction as READ TEXT X STR . Enter in the field to specify the length ARRAY:Lines Lines SIZE...
  • Page 316: Writing Programs That Port Easily

    Integrating Programs In Other Languages Using a System Command Writing Programs That Port Easily If you plan to integrate programs in other languages, write the VEE programs so that they ports easily between platforms. VEE includes system ⇒ information objects in Function &...
  • Page 317 Integrating Programs In Other Languages Using a System Command whichOS Determines the operating system and sends out one of the following strings: Windows_95 Windows_98 Windows_2000 Windows_NT HP-UX The program can branch based on these results when incorporating programs in other languages. For example, look at in the manual49.vee...
  • Page 318: Chapter Checklist

    Integrating Programs In Other Languages Chapter Checklist Chapter Checklist You should now be able to perform the following tasks. Review topics, if necessary, before going on to the next chapter. n Explain the purpose of the object. Execute Program n Give an overview of the configuration settings on the Execute object.
  • Page 319: Using Agilent Vee Functions

    Using Agilent VEE Functions...
  • Page 320 Using Agilent VEE Functions Using Agilent VEE Functions In this chapter you will learn about: n Defining a user function n Creating, calling, and editing functions n Creating, merging, importing, and deleting function libraries n Finding functions in large programs...
  • Page 321: Overview

    Using Agilent VEE Functions Overview Overview In this chapter, you will learn about VEE compiled UserFunctions, functions, and remote functions. Functions are re-usable, modular code that can help you significantly reduce the time it takes to develop tests. By re-...
  • Page 322: Using Functions

    Defining an Agilent VEE Function There are three types of user-defined functions in VEE. The overview of each type of function is as follows:...
  • Page 323: The Differences Between Userobjects And Userfunctions

    To link a compiled function to a program, you use the Import object, which links the library to VEE at run time. (For a Library more detailed discussion, refer to Chapter 11, “Optimizing Agilent VEE Programs.”). q To call a compiled function, you use the object Call myFunction or write an expression within a VEE object.
  • Page 324: Lab 8-1: Userfunction Operations

    Using Agilent VEE Functions Using Functions Otherwise, it is stored to be called from the object or any other Call expression field. Changes to a will be inherited by all UserFunction instances in the program that calls that . You can also create...
  • Page 325: Figure 8-1. The Main And Arraystats Windows

    Using Agilent VEE Functions Using Functions Figure 8-1. The Main and ArrayStats Windows 3. Iconize . It appears as an icon at the bottom of the ArrayStats workspace. ⇒ 4. Click , open the object menu, and click Device Call Select as shown in Figure 8-2.
  • Page 326: Figure 8-2. Configuring The Pins For Call Myfunction

    Using Agilent VEE Functions Using Functions Figure 8-2. Configuring the Pins for Call myFunction 5. Connect the output of to the input. Select Formula Call ArrayStats ⇒ , clone it three times, and connect the Display AlphaNumeric displays to the output pins.
  • Page 327: Editing A Userfunction

    Using Agilent VEE Functions Using Functions ⇒ Shortcut: From the object menu, select UserFunction Generate to bring up the object. (Make sure that the Call Call ArrayStats is not expanded to the whole workspace when doing this.) UserFunction Editing a UserFunction...
  • Page 328: Figure 8-4. Editing The Userfunction Arraystats

    Using Agilent VEE Functions Using Functions f. Connect the output to the output terminal on the Build Record editing window. The program should look like User Function Figure 8-4. Then click the iconize button on the window. Figure 8-4. Editing the UserFunction ArrayStats 6.
  • Page 329: Calling A Userfunction From An Expression

    Using Agilent VEE Functions Using Functions ⇒ ⇒ 7. Select and place it to the right of the Data Constant Record object. Call Function ⇒ a. Open the object menu and click Record Add Terminal . Select from the list box Control Input...
  • Page 330: Figure 8-6. Calling The Arraystats User Function

    Using Agilent VEE Functions Using Functions The Status Bar at the bottom of the VEE screen prompts you to select the replacement object. Click on the object that calls the Formula function. VEE automatically replaces the ArrayStats Call object with the new...
  • Page 331: Generating A Call To A Userfunction

    Using Agilent VEE Functions Using Functions Note When you call a from an expression, input terminals are UserFunction used as function parameters to pass to the function. If no data is passed to the function, you must still include empty parentheses after the function name.
  • Page 332: Figure 8-7. The Generate Menu In A Userfunction

    Using Agilent VEE Functions Using Functions Figure 8-7. The Generate Menu in a UserFunction 3. Place the object in Main. Notice that VEE automatically names the new object and includes the expression ArrayStats(A) ArrayStats(A) call the UserFunction ArrayStats 4. Connect the output from the...
  • Page 333: Userfunctions And The Program Explorer

    Using Agilent VEE Functions Using Functions Figure 8-8. Generating a Call Object ArrayStats(A) from a UserFunction UserFunctions and the Program Explorer make VEE programs more modular UserFunctions UserObjects and easy to understand. The Program Explorer is a valuable tool to navigating through complex programs.
  • Page 334: Figure 8-10. Using The Program Explorer With Userfunctions

    Using Agilent VEE Functions Using Functions Figure 8-10 shows the Program Explorer being used. Figure 8-10. Using the Program Explorer with UserFunctions Chapter 8...
  • Page 335: Using Libraries With Agilent Vee Userfunctions

    Using Agilent VEE Functions Using Libraries With Agilent VEE UserFunctions Using Libraries With Agilent VEE UserFunctions To leverage existing VEE test programs, you can re-use UserFunctions When you save a program, the are automatically saved as UserFunctions well. A can hold a VEE program or a library of logically...
  • Page 336: Lab 8-2: Creating And Merging A Library Of Userfunctions

    Using Agilent VEE Functions Using Libraries With Agilent VEE UserFunctions Lab 8-2: Creating and Merging a Library of UserFunctions In this exercise, you will create a report generation program that includes a VEE library of . Then you will create a new program that...
  • Page 337: Figure 8-12. The Buildrecary Userfunction

    Using Agilent VEE Functions Using Libraries With Agilent VEE UserFunctions Note object does not require parentheses when referring to a Call . If you were calling the function from a object, UserFunction Formula you would need to include parentheses whether or not the function used parameters.
  • Page 338: Figure 8-13. The Reportheader Userfunction

    Using Agilent VEE Functions Using Libraries With Agilent VEE UserFunctions Figure 8-13 shows the ReportHeader UserFunction Figure 8-13. The ReportHeader UserFunction Chapter 8...
  • Page 339: Figure 8-14. The Reportbody Userfunction

    Using Agilent VEE Functions Using Libraries With Agilent VEE UserFunctions Figure 8-14 shows the . Note the array of ReportBody UserFunction records . As the changes from , you can A[B] Value access the particular field in that , including...
  • Page 340: Figure 8-15. The Reportdisplay Detail View

    Using Agilent VEE Functions Using Libraries With Agilent VEE UserFunctions Figure 8-15 shows the in detail view. ReportDisplay UserFunction Note that it reads a string array to the end of the file, specified by the asterisk sign ( ) after the format.
  • Page 341: Creating Another Program And Merging In The Library

    Using Agilent VEE Functions Using Libraries With Agilent VEE UserFunctions Figure 8-16. The ReportDisplay Panel View Creating Another Program and Merging in the Library In this exercise, you will create a new program and merge the library into it. This exercise builds a library of functions for generating reports. The new program contains a object explaining each function in the library.
  • Page 342: Figure 8-17. The Repgen.vee Library Of Userfunctions

    Using Agilent VEE Functions Using Libraries With Agilent VEE UserFunctions ⇒ 3. Select and type the Display Note Pad UserFunction descriptions similar to the ones shown in Figure 8-17. Then save the program as RepGen.vee Note You can save a “program” of...
  • Page 343: Lab 8-3: Importing And Deleting Libraries

    Using Agilent VEE Functions Using Libraries With Agilent VEE UserFunctions Lab 8-3: Importing and Deleting Libraries Once you have created a library of , you may not want to UserFunctions merge them into every program. You might like to bring in the library at run time, use some of the functions, and then delete the library to conserve memory.
  • Page 344 Using Agilent VEE Functions Using Libraries With Agilent VEE UserFunctions 3. Open the object menu and select to import the library Load Lib immediately instead of waiting until runtime. This command is very useful in the development stage. (In the next step, you will notice that...
  • Page 345: Figure 8-18. Selecting A Function From An Imported Library

    Using Agilent VEE Functions Using Libraries With Agilent VEE UserFunctions Figure 8-18. Selecting a Function from an Imported Library VEE automatically inserts the function in the field and Function Name adds the required output terminal. You could also have entered...
  • Page 346: Figure 8-19. Calling A Function From A Library

    Using Agilent VEE Functions Using Libraries With Agilent VEE UserFunctions 8. Run the program. It should look like Figure 8-19. Save the program as libraries.vee Figure 8-19. Calling a Function from a Library Note the following about names of merged and imported functions: n If a merged function has the same name as a local function, VEE displays an error.
  • Page 347: Finding Functions In Large Programs

    Using Agilent VEE Functions Finding Functions in Large Programs Finding Functions in Large Programs VEE provides a feature located in the menu to help you locate Find Edit objects and text in a large program. For example, open the Solitaire.vee program in the directory.
  • Page 348 Using Agilent VEE Functions Finding Functions in Large Programs You can use to locate any object or text such as variables, titles, Find settings on objects, etc. Double-click on any line in the Find Results to locate an object. Note...
  • Page 349: Merging Agilent Vee Programs

    Using Agilent VEE Functions Merging Agilent VEE Programs Merging Agilent VEE Programs The easiest way to leverage existing programs is to merge a past program with the current test. You can re-use programs by merging them and then editing them to suit your current needs.
  • Page 350: Figure 8-22. Merging The Barchart Program

    Using Agilent VEE Functions Merging Agilent VEE Programs Figure 8-22. Merging the BarChart Program Notice that the Bar Chart Display takes a one-dimensional array and displays the values as vertical bars. It uses the number of bars necessary to display the values in the array.
  • Page 351: Chapter Checklist

    Using Agilent VEE Functions Chapter Checklist Chapter Checklist You should now be able to perform the following tasks. Review topics, if necessary, before going on to the next chapter. n Define a and compare it to a Compiled Function and a UserFunction Remote Function.
  • Page 352 Using Agilent VEE Functions Chapter Checklist Chapter 8...
  • Page 353: Test Sequencing

    Test Sequencing...
  • Page 354 Test Sequencing Test Sequencing In this chapter you will learn about: n The object Sequencer n Configuring a test for the Sequencer n Creating a test execution order based on run time results n Accessing data logged by the Sequencer n Ways to pass data to or from tests Sequencer...
  • Page 355: Overview

    Test Sequencing Overview Overview In this chapter, you will learn the fundamentals of using the Sequencer object. The object can execute a series of sequence transactions, Sequencer each of which may call a , Compiled Function, or Remote UserFunction Function. Typically, the is used to perform a series of tests.
  • Page 356: Using The Sequencer Object

    Test Sequencing Using the Sequencer Object Using the Sequencer Object object executes tests in a specified order based on runtime Sequencer results. Each test may be a VEE , a Compiled Function, a UserFunction Remote Function, or any other expression which returns a single result. That result is compared to a test specification to determine whether or not it passes.
  • Page 357: Creating A Test Execution Order

    Test Sequencing Creating a Test Execution Order Creating a Test Execution Order In this lab you will simulate test results using the function, random() establish a test execution order, learn how to modify that order, and retrieve specific data from the logged results. Lab 9-1: Configuring a Test Note The example explains how to implement the...
  • Page 358: Figure 9-1. The Sequence Transaction Dialog Box

    Test Sequencing Creating a Test Execution Order FUNCTION: The default entry holds the actual testFunc(a) function that performs the test. In this case, replace the default field with the function. random() Random() will return a value between simulating Real64 a test result. This result will be compared to the test specification.
  • Page 359: Figure 9-2. Configuring A Test

    Test Sequencing Creating a Test Execution Order 4. Run the program. It should display the name of the test, the test result, and the pass-fail indicator ( ) in the display, as PASS FAIL shown in Figure 9-2. Figure 9-2. Configuring a Test Before proceeding, study Table 9-1 to understand the various choices in the dialog box.
  • Page 360: Table 9-1. Sequence Transaction Dialog Box

    Test Sequencing Creating a Test Execution Order Table 9-1. Sequence Transaction Dialog Box Sequence Explanation Transaction Field TEST: Unique name used to reference the test in the Sequencer. The default names start with test1 and increment with each test. Choosing TEST: means that a test result will be compared to specifications and branching will occur to the next test based on the configuration.
  • Page 361 Test Sequencing Creating a Test Execution Order Table 9-1. Sequence Transaction Dialog Box (Continued) Sequence Explanation Transaction Field RANGE: Specifies the range of test values. This menu displays four menu choices: RANGE signifies the range of test values that signify a PASS condition. You may also choose from the usual comparisons: >, >=, <, <=, ==, != LIMIT uses just one value for a comparison of test data.
  • Page 362 Test Sequencing Creating a Test Execution Order Table 9-1. Sequence Transaction Dialog Box (Continued) Sequence Explanation Transaction Field LOGGING Logs test data. To specify logging options, open the ENABLED Sequencer object menu, choose Properties, click on the Logging folder, and choose from the list.
  • Page 363 Test Sequencing Creating a Test Execution Order Table 9-1. Sequence Transaction Dialog Box (Continued) Sequence Explanation Transaction Field THEN Determines test branching.The drop-down menu CONTINUE THEN CONTINUE (for IF PASS and IF FAIL) contains six branching options: THEN CONTINUE executes the next test configured in the Sequencer.
  • Page 364: Adding Or Inserting Or Deleting A Test

    Test Sequencing Creating a Test Execution Order Table 9-1. Sequence Transaction Dialog Box (Continued) Sequence Explanation Transaction Field IF FAIL Branching instructions. If the test fails, VEE goes to this line for branching instructions. IF FAIL toggles to IF FAIL CALL:. Options are the same as for IF PASS.
  • Page 365 Test Sequencing Creating a Test Execution Order test plan should now have a second transaction that reads: Sequencer . Now insert a transaction between these two tests. test2 (.25) < .5 2. Make sure the second transaction bar is highlighted. Then open the object menu and select .
  • Page 366: Accessing Logged Test Data

    Test Sequencing Creating a Test Execution Order Figure 9-3. A Simple Sequencer Example The braces indicate a data type. The outputs a Record Sequencer Record , as shown in the display. This means you of Records AlphaNumeric could put the sequencer in a loop and run the same sequence of tests several times yielding an array of Records of Records Accessing Logged Test Data...
  • Page 367: Figure 9-4. A Logged Record Or Records

    Test Sequencing Creating a Test Execution Order Figure 9-4. A Logged Record or Records The following steps access test results. 1. Open seq1.vee ⇒ 2. Select and place it below the display. Change the Device Formula expression to . (Remember that VEE is not case Log.Test1.Result sensitive and the capitals in the names are for clarity in documentation.) Change the input terminal name from...
  • Page 368: Figure 9-5. Accessing Logged Data

    Test Sequencing Creating a Test Execution Order Figure 9-5. Accessing Logged Data Note Each test creates a record, named with the test name, as it executes within . This record can be used in subsequent tests. For example, Sequencer you could enable passed ( test2 test1...
  • Page 369: Passing Data In The Sequencer

    Test Sequencing Passing Data in the Sequencer Passing Data in the Sequencer In this lab, you will create a and call it from three different UserFunction tests. In the first part, you will pass data to the through an UserFunctions input terminal on the .
  • Page 370: Figure 9-6. The Rand Userfunction

    Test Sequencing Passing Data in the Sequencer Figure 9-6. The Rand UserFunction 5. Save the program as . Close the window using the x seqdat1.vee Rand button on its top right corner. Note Closing the window does not remove the .
  • Page 371 Test Sequencing Passing Data in the Sequencer Make sure the transaction is highlighted, place the cursor on the transaction bar, press to cut the test, then press three times Ctrl-K Ctrl-Y to paste the test back into the . (You could also cut and paste Sequencer using the object menus.) The default test names will be...
  • Page 372: Passing Data Using A Global Variable

    Test Sequencing Passing Data in the Sequencer Figure 9-7. Passing Data Using an Input Terminal As the number of tests increases, passing data using an input terminal requires more and more input pins. To reduce the input pins, you could pass records to input terminals and use individual fields in the records for the separate tests.
  • Page 373 Test Sequencing Passing Data in the Sequencer You will use mode, since the will only set up a EXEC User Function global variable and will not yield a result that needs to be tested against a specification. 3. Change the field to and click to close the...
  • Page 374 Test Sequencing Passing Data in the Sequencer ⇒ 6. Select and place it to the right of the button. Display Note Pad Enter the following user prompt in the Note Pad Please select a number for this run of tests 1, 2, and 7.
  • Page 375: Figure 9-8. The Global Userfunction (Detail)

    Test Sequencing Passing Data in the Sequencer Figure 9-8. The Global UserFunction (Detail) Figure 9-9. The Global UserFunction (Panel) Chapter 9...
  • Page 376: Comparing A Waveform Output With A Mask

    Test Sequencing Passing Data in the Sequencer 8. Save the program as and run it. When the pop-up panel seqdat2 appears, select a value and press . It should look like Figure 9-10. Note The pop-up panel will appear in the center of the screen by default. To move it, click and drag the title bar.
  • Page 377: Figure 9-11. The Noisywv Userfunction (Detail)

    Test Sequencing Passing Data in the Sequencer Figure 9-11. The noisyWv UserFunction (Detail) 2. Press and click on the button, the , and the Ctrl Real64 Slider Note ⇒ to highlight them for creating a Panel view. Select Edit To Panel When the view displays, rearrange the objects to your taste, and Panel...
  • Page 378: Figure 9-12. The Noisywv Userobject (Panel)

    Test Sequencing Passing Data in the Sequencer Figure 9-12. The noisyWv UserObject (Panel) ⇒ 3. Select and place it left-center of Main. Add a Device Sequencer data input terminal and name it mask 4. Click the transaction bar to get the dialog Sequence Transaction box.
  • Page 379 Test Sequencing Passing Data in the Sequencer ⇒ ⇒ 5. Select and place it above the Data Constant Coord . Connect its output to the input terminal Sequencer Sequencer mask Open the object menu, click , and set fields as Coord Properties follows:...
  • Page 380: Figure 9-13. Comparing A Waveform To A Mask

    Test Sequencing Passing Data in the Sequencer Figure 9-13. Comparing a Waveform to a Mask This completes the exercises about passing data with the . In the Sequencer next exercise, you will learn how to access and analyze data from several iterations of the Sequencer Chapter 9...
  • Page 381: Analyzing Data From The Sequencer

    Test Sequencing Analyzing Data from the Sequencer Analyzing Data from the Sequencer As mentioned earlier, data comes out as a record of records. In Sequencer many cases, however, the may run through a series of tests Sequencer several times. This generates an array of records. Each record represents one run through the and holds other records, representing each test Sequencer...
  • Page 382: Lab 9-3: Analyzing Several Runs Of Data From The Sequencer

    Test Sequencing Analyzing Data from the Sequencer n Within the record there are three fields: , and Test1 Name Result . The same holds for the record Pass Test2 n Therefore, gives an array of four values, each Log.Test1.Result representing one of the four runs. outputs a Log[0].Test1.Result scalar value, the...
  • Page 383 Test Sequencing Analyzing Data from the Sequencer Run the program at this point to see the display of the data. Sequencer Now use the object to extract part of the data to analyze. This Formula exercise uses the results of for all three runs as an example, and finds test1 the mean of that array.
  • Page 384: Figure 9-15. Analyzing Several Runs Of Sequencer Data

    Test Sequencing Analyzing Data from the Sequencer Figure 9-15. Analyzing Several Runs of Sequencer Data Although this exercise accesses a single array, the principle is the same for extracting other arrays of data from the output. Note that you Sequencer can easily change which fields are saved for each by opening the Logging in the...
  • Page 385: Storing And Retrieving Logged Data

    Test Sequencing Storing and Retrieving Logged Data Storing and Retrieving Logged Data This exercise shows how to use the objects and To/From File To/From objects. DataSet Lab 9-4: Using the To/From File Objects with Logged Data 1. Open the file and delete the data line to the display. seqdat2 ⇒...
  • Page 386: Using The To/From Dataset Objects With Logged Data

    Test Sequencing Storing and Retrieving Logged Data Figure 9-16. Storing Logged Data with To/From File Using the To/From DataSet Objects with Logged Data Since you are storing test data as records, you may prefer to use the objects. In this case you do not need a To/From DataSet Collector because you can append each run of the...
  • Page 387: Figure 9-17. Storing Logged Data With To/From Dataset

    Test Sequencing Storing and Retrieving Logged Data One reason you might use the objects to collect data To/From DataSet instead of the objects is because you can convert the data to To/From File useful information with the feature in the Search Specifier From object.
  • Page 388: Chapter Checklist

    Test Sequencing Chapter Checklist Chapter Checklist Use the following checklist to determine whether there are topics you need to review before going on to the next chapter. n Describe the object conceptually. Sequencer n Configure a test for the Sequencer n Add, insert, and delete operations for a test.
  • Page 389: Using Operator Interfaces

    Using Operator Interfaces...
  • Page 390 Using Operator Interfaces Using Operator Interfaces In this chapter you will learn about: n Building operator interfaces n Using menus for an operator n Importing bitmaps to add clarity n Securing test programs n Operator interface features n Using ActiveX Controls to extend capabilities of VEE Average Time To Complete: 2 hours Chapter 10...
  • Page 391: Overview

    Using Operator Interfaces Overview Overview In this chapter, you will learn more about operator interfaces, including adding menus, customizing interfaces, adding warning signals, and importing bitmaps. This chapter expands on the exercises in previous chapters, where you created operator interfaces and pop-up panels. Some benefits of using VEE operator interface features are: n Maximum ease of use for the operator n Improved program performance...
  • Page 392: Key Points Concerning Operator Interfaces

    Using Operator Interfaces Key Points Concerning Operator Interfaces Key Points Concerning Operator Interfaces This section is an overview of how to create an operator interface in VEE. Creating an Operator Interface VEE includes a wide range of selection controls, pop-up dialog boxes, indicators, and displays to create operator interfaces.
  • Page 393: Moving Between Panel View And Detail View

    Using Operator Interfaces Key Points Concerning Operator Interfaces Moving Between Panel View and Detail View To move between the Panel view and the Detail view of a VEE program, click the panel or detail icon on the title bar of the window as shown in Figure 10-1.
  • Page 394: Figure 10-2. A Selection Of Vee Indicators

    Using Operator Interfaces Key Points Concerning Operator Interfaces In panel view, you can choose different colors and fonts to add emphasis, and scalable bitmaps to add clarity. You can also document the panel view for the operator by editing title bars, using the Note Pad Label objects, and using the...
  • Page 395: Using Operator Interface Objects

    Using Operator Interfaces Using Operator Interface Objects Using Operator Interface Objects This section introduces the operator interface objects and options that are available in VEE. You can skim through this section to get an idea of the items you can choose to create operator interfaces for programs, and how you can customize them.
  • Page 396: Figure 10-3. Logo Used As A Background Picture

    Using Operator Interfaces Using Operator Interface Objects may be scaled, tiled, cropped, or centered. Figure 10-3 shows a VEE logo sized and used as a background image. Figure 10-3. Logo Used as a Background Picture Figure 10-4 shows a background picture that has been tiled. Figure 10-4.
  • Page 397: Displaying A Control For Operator Input

    Using Operator Interfaces Using Operator Interface Objects There is also a object in the menu, if you want to place a Picture Display bitmap in a program. Figure 10-5 shows a picture that has been included ⇒ with , and then cropped in VEE. Display Picture Figure 10-5.
  • Page 398: Figure 10-6. Controls From Various Data Submenus

    Using Operator Interfaces Using Operator Interface Objects Figure 10-6. Controls from Various Data Submenus For each of the objects shown in Figure 10-6, you can also customize the object’s look and feel. For example, see the Real64 Knob Properties dialog box in Figure 10-7. To configure the object, choose a folder such as and make selections.
  • Page 399: Displaying A Dialog Box For Operator Input

    Using Operator Interfaces Using Operator Interface Objects Figure 10-7. The Properties Dialog Box Displaying a Dialog Box for Operator Input VEE includes built-in pop-up dialog boxes with automatic error checking, ⇒ prompts, and error messages. They are located under Data Dialog For example, a program could require the operator to enter a real number when the program runs.
  • Page 400: Figure 10-8. A Text Input Box

    Using Operator Interfaces Using Operator Interface Objects Include the object in the program and connect it appropriately When the program runs, the input box appears for the operator Figure 10-8. A Text Input Box Figure 10-9 shows the configurable error message that appears if the program runs and the operator presses without entering correct information into the...
  • Page 401: Displaying A Toggle Control For The Operator

    Using Operator Interfaces Using Operator Interface Objects Figure 10-11 shows a dialog box that pops up for an operator to enter a list. Figure 10-11. The List Selection Box Figure 10-12 shows a dialog box that pops up for an operator to select a file name.
  • Page 402: Aligning Objects In The Operator Interface

    Using Operator Interfaces Using Operator Interface Objects Figure 10-13. Switches and Alarms Combined Aligning Objects in the Operator Interface In the panel view, there is a “snap-to-grid” feature to help align objects. You can change the grid size from 10 to 1 (10 is the default) to make very accurate alignments, as shown in Figure 10-14.
  • Page 403: Creating An Operator Interface For The Keyboard Only

    Using Operator Interfaces Using Operator Interface Objects Figure 10-14. Configuring Panel Properties Creating an Operator Interface for the Keyboard Only You can also use VEE to create interfaces that the operator can control using the keyboard only. They do not require a mouse. For example, you can configure the object to act as a softkey.
  • Page 404: Figure 10-16. Configuring The Confirm (Ok) Object As A Softkey

    Using Operator Interfaces Using Operator Interface Objects Figure 10-16. Configuring the Confirm (OK) Object as a Softkey Furthermore, the program can be controlled with the keyboard in panel view. VEE automatically highlights a button for the panel with a dotted outline. If the operator presses , that button will be “pressed.”...
  • Page 405: Selecting Screen Colors

    Using Operator Interfaces Using Operator Interface Objects Selecting Screen Colors ⇒ To select screen colors, use the dialog File Default Preferences box. Set the VEE environment as desired and save the changes. Figure 10-17 and Figure 10-18 show how to change particular screen elements to the desired color.
  • Page 406: Securing A Program (Creating A Runtime Version)

    Using Operator Interfaces Using Operator Interface Objects Figure 10-18. Color Selection for Screen Elements Securing a Program (Creating a RunTime Version) To prevent an operator from accidentally altering a program, or to prevent others from seeing how a program works (by displaying it in Detail view), you can create a run time version of a VEE program.
  • Page 407: Displaying A Pop-Up Panel During Execution

    Using Operator Interfaces Using Operator Interface Objects ⇒ 3. Select . VEE will File Create RunTime Version... automatically use a extension to indicate a run time version. *.vxe Displaying a Pop-Up Panel During Execution You can cause a panel to pop up when a UserObject UserFunction executes in a program.
  • Page 408: Creating A Status Panel

    Using Operator Interfaces Using Operator Interface Objects Creating a Status Panel In VEE, you can implement status panels to monitor the results of multiple tests or functions. This feature is implemented with the ShowPanel() functions, as shown in Figure 10-19. For more information, HidePanel() refer to “Creating a Status Panel”...
  • Page 409: Common Tasks In Creating Operator Interfaces

    Using Operator Interfaces Common Tasks In Creating Operator Interfaces Common Tasks In Creating Operator Interfaces In the following exercises, you will learn how to implement many operator interface features. Specifically, you will learn how create menus, create warnings, create a status panel, and import bitmaps to add more visual impact to programs.
  • Page 410 Using Operator Interfaces Common Tasks In Creating Operator Interfaces Note Although VEE defaults to the bitmaps subdirectory, you could use a bitmap from any directory. You should now have a picture of a die with one dot on its top. ⇒...
  • Page 411: Figure 10-20. Early Stage In The Dice Program

    Using Operator Interfaces Common Tasks In Creating Operator Interfaces Figure 10-20. Early Stage in the Dice Program Create a menu to select one of these three functions to call. ⇒ ⇒ 7. Select Data Selection Control Radio Buttons is an object that outputs an enumerated value (the Radio Buttons data type: a text string with an ordinal number associated to it) Enum...
  • Page 412: Figure 10-21. The Dice Program (Detail View)

    Using Operator Interfaces Common Tasks In Creating Operator Interfaces 8. Open the object menu and select Radio Buttons Edit Enum Values... Type in the names of the functions , and by pressing die1 die2 die3 key between each entry except the last. Click Note There are six menu formats for data selection control.
  • Page 413 Using Operator Interfaces Common Tasks In Creating Operator Interfaces Note input terminal requires a , so VEE converts the Call Text Scalar to a Enum Scalar Text Scalar Remember the dotted line indicates a control pin. When Auto Execute is turned on, executes whenever you make a change to Radio Buttons it and sends the selection to...
  • Page 414: Figure 10-22. The Dice Program (Panel View)

    Using Operator Interfaces Common Tasks In Creating Operator Interfaces Figure 10-22. The Dice Program (Panel View) There are a few things to note before the next lab exercise: n You can use the same techniques in the exercise above to create menus for any program.
  • Page 415: Lab 10-2: Importing Bitmaps For Panel Backgrounds

    Using Operator Interfaces Common Tasks In Creating Operator Interfaces Lab 10-2: Importing Bitmaps for Panel Backgrounds Bitmaps are not essential to your programs, but they can add clarity and impact to tests. For example, you might want to import a schematic to better illustrate what is being tested.
  • Page 416: Figure 10-23. The Bitmap Function

    Using Operator Interfaces Common Tasks In Creating Operator Interfaces 6. Open the box for the object, and set as follows: Properties Label General/Title: Change to Bitmap Function Label Justification Change to Center Justify Colors/Object/ Select Light Gray click OK Background Fonts/Object/Text: Choose a larger font with bold type, and click...
  • Page 417: Lab 10-3: Creating A High Impact Warning

    Using Operator Interfaces Common Tasks In Creating Operator Interfaces Lab 10-3: Creating a High Impact Warning This exercise includes several that are nested. The first UserFunctions is the alarm itself, which displays a red square and beeps. UserFunction The second calls the alarm repeatedly creating a blinking UserFunction light effect and a pulsing sound, until the operator turns the alarm off.
  • Page 418: Figure 10-24. The Userfunction Alarm (Detail View)

    Using Operator Interfaces Common Tasks In Creating Operator Interfaces ⇒ 5. Select , set it to , and connect its sequence input pin to Flow Delay sequence out pin. The alarm will then last one second. Color Alarm ⇒ 6. Select and add the message: Display Note Pad...
  • Page 419 Using Operator Interfaces Common Tasks In Creating Operator Interfaces Editing/Enabled Deselect. Fonts/Text size Enlarge text size and Font Style: Bold Fonts Select Automatically Resize Object on Font Change Appearance/Border Change to a Raised border Click to close the dialog box. Properties 9.
  • Page 420: Figure 10-25. The Warning Userfunction (Detail View)

    Using Operator Interfaces Common Tasks In Creating Operator Interfaces This creates an input object that uses a . If the operator clicks Check Box the box, an will appear and the object outputs a ; otherwise, the object outputs a .
  • Page 421: Figure 10-26. The Warning Program

    Using Operator Interfaces Common Tasks In Creating Operator Interfaces 19.Open the box, select warning UserFunction Properties Show , deselect (since the title serves no Panel on Execute Show Title purpose to the operator). Click ⇒ 20.Go to Main and click , open its object menu, click Device Call...
  • Page 422: Lab 10-4: Using An Activex Control

    Using Operator Interfaces Common Tasks In Creating Operator Interfaces Lab 10-4: Using an ActiveX Control This lab shows how to use an ActiveX Control within VEE. You can incorporate ActiveX Controls from other applications into VEE programs. In this case, you will incorporate a control and use a loop to ProgressBar show the progress bar 0% to 100% complete.
  • Page 423: Figure 10-27. Using The Activex Control "Progressbar

    Using Operator Interfaces Common Tasks In Creating Operator Interfaces Figure 10-27. Using the ActiveX Control “ProgressBar” Note ActiveX Control have both object menus Properties Control . The menu sets the VEE properties of the Properties Properties object. The are supplied by the Control and can be Control Properties different for each type of ActiveX Control.
  • Page 424: Lab 10-5: Creating A Status Panel

    Using Operator Interfaces Common Tasks In Creating Operator Interfaces Figure 10-28. An ActiveX Control Example Using MSChart Lab 10-5: Creating a Status Panel In this lab, you will learn how to use the functions from the dice program to create a status panel. (The dice program exercise is in “Using Menus” on page 383.) Typically this would be used with the object when Sequencer...
  • Page 425: Figure 10-29. Configuring Test1

    Using Operator Interfaces Common Tasks In Creating Operator Interfaces Figure 10-29. Configuring Test1 2. Configure a second test the same way named test2 3. Open the box, choose the tab, and Sequencer Properties Logging under e select Logging Mod Log Each Transaction To: , then click logTest(thisTest) As the...
  • Page 426: Figure 10-30. The Userfunction Logtest (Detail)

    Using Operator Interfaces Common Tasks In Creating Operator Interfaces 5. Create the named , as shown below. Add an UserFunction logTest input pin. (The logging will be the input.) Put the Record Logging on the panel and connect it to the input pin. Select AlphaNumeric ⇒...
  • Page 427: Figure 10-32. Status Panel Program (Before Running)

    Using Operator Interfaces Common Tasks In Creating Operator Interfaces Figure 10-32. Status Panel Program (before running) 7. Run the program. It should look like Figure 10-33. Chapter 10...
  • Page 428: Figure 10-33. The Status Panel Program (Running)

    Using Operator Interfaces Common Tasks In Creating Operator Interfaces Figure 10-33. The Status Panel Program (running) In summary, the object displays the panel, but showPanel UserFunction does not call the . The calls the UserFunction Sequencer twice through its logging function, and each call updates UserFunction the panel.
  • Page 429: Chapter Checklist

    Using Operator Interfaces Chapter Checklist Chapter Checklist You should now be able to perform the following tasks. Review, if necessary, before going on to the next chapter. n Summarize the key points concerning operator interfaces. n Use a menu to select tests on an operator interface. n Import a bitmap for an operator interface.
  • Page 430 Using Operator Interfaces Chapter Checklist Chapter 10...
  • Page 431: Optimizing Agilent Vee Programs

    Optimizing Agilent VEE Programs...
  • Page 432 Optimizing Agilent VEE Programs Optimizing Agilent VEE Programs In this chapter you will learn about: n Basic techniques for optimizing programs n Using Dynamic Link Libraries (DLLs) on a PC n Optimizing with compiled functions n Using compiled functions in other languages on UNIX platforms...
  • Page 433: Overview

    Optimizing Agilent VEE Programs Overview Overview In this chapter, you will learn how to improve the execution speed of VEE programs. There are three basic components in test program performance: the speed of taking the measurement, the rate at which the data is transferred to the computer, and the speed at which the program processes the data.
  • Page 434: Basic Techniques For Optimizing Programs

    Optimizing Agilent VEE Programs Basic Techniques for Optimizing Programs Basic Techniques for Optimizing Programs To optimize VEE programs, read the information in this section. You can use the techniques described here to develop good programming habits in VEE. Perform Math on Arrays Whenever Possible Performing mathematical operations on arrays greatly improves program performance.
  • Page 435: Make Objects Into Icons Whenever Possible

    Optimizing Agilent VEE Programs Basic Techniques for Optimizing Programs Figure 11-2. Calculating Square Roots using Math Array The difference in the execution speeds of the two programs is due to the time required for an object to execute. There is a fixed amount of overhead when an object executes.
  • Page 436: Reduce The Number Of Objects In Programs

    Optimizing Agilent VEE Programs Basic Techniques for Optimizing Programs Figure 11-3. Optimizing Programs by Using Icons Reduce the Number of Objects in Programs As you become more experienced, you will tend to use less objects in VEE programs. There are two more techniques to reduce the number of objects and therefore optimize programs: 1.
  • Page 437: Figure 11-4. Function Calls Without Optimization

    Optimizing Agilent VEE Programs Basic Techniques for Optimizing Programs Figure 11-4. Function Calls without Optimization Figure 11-5. Function Calls with Optimization Chapter 11...
  • Page 438: Other Ways To Optimize Agilent Vee Programs

    Optimizing Agilent VEE Programs Basic Techniques for Optimizing Programs Other Ways to Optimize Agilent VEE Programs There are other optimization techniques that you can use in programs when appropriate, as follows: n Make sure you are using the VEE compiler by running your programs in VEE 4 or higher Execution Mode.
  • Page 439 Optimizing Agilent VEE Programs Basic Techniques for Optimizing Programs n When using displays, Strip Charts Logging AlphaNumeric set the to the smallest number possible Buffer Size Properties for your application. n Use the triadic operator, (condition ? expression1 : expression2), instead...
  • Page 440: Overview Of Compiled Functions

    Optimizing Agilent VEE Programs Overview of Compiled Functions Overview of Compiled Functions You can use a compiled function in a VEE program, such as a DLL (Dynamic Link Library). To do so, you must obtain the compiled function or follow these steps to create it: 1.
  • Page 441: Design Considerations In Using Compiled Functions

    Optimizing Agilent VEE Programs Overview of Compiled Functions Design Considerations in Using Compiled Functions If you plan to use compiled functions in a VEE program, take the following information into consideration: n You can use any facilities available to the operating system including math routines, instrument I/O, and so forth.
  • Page 442: Guidelines In Using Compiled Functions

    Optimizing Agilent VEE Programs Overview of Compiled Functions Guidelines in Using Compiled Functions When you use compiled functions in a VEE program, follow these guidelines: n Call and configure a just as you would call a Compiled Function . You can either select the desired function using...
  • Page 443: Using Dynamic Link Libraries

    DLLs as well as your own. Integrating a DLL into an Agilent VEE Program This section describes how to import a DLL into a VEE program. Write or obtain the DLL as described above, then follow these steps to use the DLL: ⇒...
  • Page 444: Figure 11-7. Using Call Object For Compiled Functions

    Optimizing Agilent VEE Programs Using Dynamic Link Libraries The fields are described as follows: Library Name The name VEE uses to identify the library. Generally, this is used if you want to delete the library after it has been used in the program.
  • Page 445: An Example Using A Dll

    Optimizing Agilent VEE Programs Using Dynamic Link Libraries Note You can also call a DLL function from an expression field, provided the library has been loaded. When used in this way, you must enclose the parameters in parentheses after the function name, and the function only sends back its return value.
  • Page 446: Figure 11-8. A Program Using A Dll (Manual49)

    Optimizing Agilent VEE Programs Using Dynamic Link Libraries Figure 11-8. A Program Using a DLL (MANUAL49) Import Before the first call to the compiled function Call Library , the DLL must be loaded using the Function Import object (in the menu).
  • Page 447: Figure 11-9. The Shared Library Name Userobject

    Optimizing Agilent VEE Programs Using Dynamic Link Libraries totSize object (in the box) is totSize Math & Functions used to determine the size of the waveform, which is output to the input pin on arraySize Call myFunc XY Trace object displays both the original and the...
  • Page 448 Optimizing Agilent VEE Programs Using Dynamic Link Libraries function has been used in a renamed object to whichos() Formula identify the operating system. An expanded object If/Then/Else examines the output of the function, then triggers the whichos() appropriate text constant. This filename extension is then added to the file using a renamed object.
  • Page 449: Execute Program Object Versus Compiled Functions

    Optimizing Agilent VEE Programs Using Dynamic Link Libraries Execute Program Object versus Compiled Functions When you are deciding whether to use an object or a Execute Program compiled function to integrate your compiled language programs with VEE, consider the following information.
  • Page 450: Compiled Function Using C (Unix)

    Optimizing Agilent VEE Programs Compiled Function using C (UNIX) Compiled Function using C (UNIX) The process of using compiled functions in other languages involves shared libraries on HP-UX platforms. You can dynamically link a program written in C, C++, Fortran, and Pascal with a VEE program on a UNIX workstation.
  • Page 451: Figure 11-10. Program Calling A Compiled Function

    Optimizing Agilent VEE Programs Compiled Function using C (UNIX) Figure 11-10. Program Calling a Compiled Function Notice the following about the program: size of the One variable in the C function (and correspondingly, one array data input terminal in the Call object) is used to indicate the size of the array.
  • Page 452 Optimizing Agilent VEE Programs Compiled Function using C (UNIX) the C routine The C routine is a function, not a procedure. The Compiled Function requires a return value, so if you use a language that distinguishes between procedures and functions, make sure you write the routine as a function.
  • Page 453: Agilent Vee Execution Modes

    Agilent VEE Execution Modes Agilent VEE Execution Modes Agilent VEE Execution Modes allow you to run programs that were created using previous versions of VEE. The Execution Modes allow a newer version of VEE to run programs created with an older version of VEE in exactly the same way the older VEE version ran them.
  • Page 454: The Agilent Vee Compiler

    For more information about the compiler and details of the differences between the Execution Modes, refer to the VEE Pro Advanced Techniques manual. Changing the Execution Mode You should create all new programs in VEE 6 mode. If you have existing programs, you will want to change the execution mode if you add any new features to an existing program.
  • Page 455: Figure 11-12. Default Preferences Button On Toolbar

    Optimizing Agilent VEE Programs Agilent VEE Execution Modes To change the execution mode, follow these steps: ⇒ 1. From the main VEE menu, click , or File Default Preferences press the Default Preferences button on the tool bar as shown in Figure 11-12.
  • Page 456: Effect Of Changing The Execution Mode

    Optimizing Agilent VEE Programs Agilent VEE Execution Modes Effect of Changing the Execution Mode The following example demonstrates the increase in speed when a program is updated. These example focuses on the program speed without instrument I/O. 1. Open the program in the chaos.vee...
  • Page 457: Figure 11-14. Chaos.vee In Vee 3 Mode With Open Displays

    Optimizing Agilent VEE Programs Agilent VEE Execution Modes Timer Figure 11-14. Chaos.vee in VEE 3 Mode with Open Displays In Figure 11-15, the displays are iconized to improve speed without turning on the compiler. This cuts execution time about 1/6.
  • Page 458: Figure 11-15. Chaos.vee In Vee 3 Mode With Closed Displays

    Optimizing Agilent VEE Programs Agilent VEE Execution Modes Figure 11-15. Chaos.vee in VEE 3 Mode with Closed Displays Finally, in Figure 11-16, the compiler is turned on with the debugging features disabled. For optimum performance, check the Disable Debug ⇒...
  • Page 459: Figure 11-16. Chaos.vee In Vee 4 Or Higher Mode With Debugging Dis

    Optimizing Agilent VEE Programs Agilent VEE Execution Modes Figure 11-16. Chaos.vee in VEE 4 or Higher Mode with Debugging Disabled In Figure 11-17 and Figure 11-18, the VEE speed improvements use the compiler on areas of programs involving iterative scalar math routines. The example calculates the square root of a scalar value.
  • Page 460: Figure 11-17. Iterative Math Example In Vee 3 Mode

    VEE 4 or VEE 5 modes require minor modifications to run in mode. For details about the differences between the Execution VEE 6 Modes, refer to the VEE Pro Advanced Techniques manual. For all new programs you should begin in VEE 6 mode. Chapter 11...
  • Page 461: The Agilent Vee Profiler

    Optimizing Agilent VEE Programs The Agilent VEE Profiler The Agilent VEE Profiler is a feature in the Professional Development Environment in Profiler VEE. The helps you optimize programs by displaying the Profiler execution speeds of in the program. UserFunctions UserObjects...
  • Page 462: Chapter Checklist

    Optimizing Agilent VEE Programs Chapter Checklist Chapter Checklist You should now be able to perform the following tasks. Review topics, if necessary. n Explain three basic techniques for optimizing VEE programs and give examples of each. n Explain at least two more techniques in addition to the three above.
  • Page 463: Platform Specifics And Web Monitoring

    Platform Specifics and Web Monitoring...
  • Page 464 Platform Specifics and Web Monitoring Platform Specifics and Web Monitoring In this chapter you will learn about: n The differences between the PC and HP-UX platforms n Communicating with a Rocky Mountain Basic program n Calling VEE functions from other applications using the VEE ActiveX Automation Server n Web Monitoring Average Time To Complete: 2 hours...
  • Page 465: Overview

    Platform Specifics and Web Monitoring Overview Overview In this chapter, you will learn about the key differences between operating systems, and how VEE has designed objects to handle them. Then you will learn about one of the most important techniques for incorporating VEE functions into other applications or programs using the Callable VEE ActiveX Automation Server.
  • Page 466: Differences Between Pc And Hp-Ux Platforms

    Platform Specifics and Web Monitoring Differences Between PC and HP-UX Platforms Differences Between PC and HP-UX Platforms There are several differences in using VEE on a PC and using VEE on HP-UX. Programs All VEE features can be used in programs on all platforms. However, if the object is dependent on the operating system, it will only execute on that operating system.
  • Page 467: To/From Stdout, Stderr (Unix)

    Platform Specifics and Web Monitoring Differences Between PC and HP-UX Platforms To/From Stdout, Stderr (UNIX) Although these objects do work on a PC, they are implemented with files and are not recommended for general programming. You should only use them when porting a VEE program from an HP-UX platform to the PC. Fonts and Screen Resolutions VEE on a PC chooses a font size that looks good with the screen resolution.
  • Page 468: Communicating With Rocky Mountain Basic Programs

    Platform Specifics and Web Monitoring Communicating with Rocky Mountain Basic Programs Communicating with Rocky Mountain Basic Programs VEE includes objects to facilitate communication between VEE and Rocky Mountain Basic on HP-UX. For Series 700 workstations (HP-UX 10.20) you can use VEE 6.0. For Series 300 and 400 workstations (HP-UX 9.0), you must use HP VEE 3.1.
  • Page 469: Using The To/From Rocky Mountain Basic Object

    Platform Specifics and Web Monitoring Communicating with Rocky Mountain Basic Programs Using the To/From Rocky Mountain Basic Object Figure 12-2. The To/From Rocky Mountain Basic Object Figure 12-2 shows the To/From Rocky Mountain Basic (UNIX) ⇒ object, located under . This Rocky Mountain Basic (UNIX) object facilitates data transfer to and from RMB programs.
  • Page 470 . (For more PostRun information about , refer to the PreRun PostRun VEE Pro Advanced Techniques manual.) The EXECUTE CLOSE READ PIPE EXECUTE CLOSE WRITE transactions enable you to close pipes at any PIPE time.
  • Page 471: Figure 12-3. Communicating With Rocky Mountain Basic

    Platform Specifics and Web Monitoring Communicating with Rocky Mountain Basic Programs running in If you are running diskless, be certain you WRITE environment to or from uniquely named pipes. Otherwise, READ without disk several workstations on the same diskless cluster may attempt to access the same named pipe, which will cause contention problems.
  • Page 472: The Callable Vee Activex Automation Server

    Help environment from which you are calling it. For more information, refer to the online in VEE, the VEE Pro Advanced Techniques manual, and Help the examples shipped with VEE. Note The Callable VEE ActiveX Automation Server replaces the Callable VEE ActiveX Control that was shipped with VEE version 5.0.
  • Page 473: Web-Enablement Technologies

    Platform Specifics and Web Monitoring Web-enablement Technologies Web-enablement Technologies You can use VEE to disseminate data you have collected in programs, to monitor test systems, or to review test results remotely. This section describes web-enablement technologies for test and measurement applications, and how VEE supports these technologies.
  • Page 474 Internet Explorer or Netscape Navigator) can request information generated by the server application. The Universal Resource Locator (URL) below typed in Internet Explorer requests information from an Agilent server: http://www.agilent.com/find/vee describes the type of resource being accessed to transfer the http information.
  • Page 475: Figure 12-5. A Scripting Language Host Model

    Platform Specifics and Web Monitoring Web-enablement Technologies External Software Components Host Application Scripting Document Objects Language HTML Controls ActiveX Controls (VBScript, JavaScript) Figure 12-5. A Scripting Language Host Model VBScript, JavaScript, and JScript are scripting languages. VBScript is based on MS Visual Basic. JavaScript is co-created by Sun (Java). JScript is based on Microsoft’s version of JavaScript.
  • Page 476: Web Monitoring With Agilent Vee

    (to monitor the program’s progress), and display error message information. Providing Agilent VEE Data to a Remote User To set up the VEE Web server so that a remote user can access data on your system, follow these general steps: 1.
  • Page 477: Web Server Dialog Box

    Platform Specifics and Web Monitoring Web Monitoring with Agilent VEE 3. Start VEE, and open the program that you want the remote user to access, and/or create any files you want the remote user to access. ⇒ 4. Enable the Web Server by selecting the...
  • Page 478 Platform Specifics and Web Monitoring Web Monitoring with Agilent VEE The fields in the dialog box are as follows: Web Server Enable When checked, turns on VEE’s built-in Web Enable Server Server server. The Web server allows a remote user to view, monitor and troubleshoot VEE programs on your system, by using a Web browser to display your VEE program.
  • Page 479 Platform Specifics and Web Monitoring Web Monitoring with Agilent VEE HTTP Specifies the port number for the VEE Web server. The default Port port number is 80. The only time you need to change the Number default port number is when another Web server, such as...
  • Page 480: How A Remote User Accesses Agilent Vee On Your System

    Platform Specifics and Web Monitoring Web Monitoring with Agilent VEE How a Remote User Accesses Agilent VEE on Your System To access VEE files on your system from another location, the remote user needs to follow these general steps: 1. The remote user’s system must be connected to a network.
  • Page 481 Platform Specifics and Web Monitoring Web Monitoring with Agilent VEE http://hostname{:port}{/command}{?parameter} Specifies a view or for the remote user to view in the UserFunction VEE program. For example, hostname http:// /ViewMainDetail displays the Detail view of your main VEE program.
  • Page 482 Platform Specifics and Web Monitoring Web Monitoring with Agilent VEE File (Optional) Identifies a directory and/or file relative to the root directory for the browser to open. You would only specify a file when you have saved a file such as a for a remote user to *.jpeg...
  • Page 483: Displaying The Agilent Vee Web Server Page

    Display list of available ViewHelp command URLs. Displaying the Agilent VEE Web Server Page When you install VEE, it creates a default file in the index.html directory. This file contains the VEE Web Server Home Page. You can have remote users click choices on this page for displaying your VEE program.
  • Page 484: Figure 12-7. The Index.html Default Page

    Platform Specifics and Web Monitoring Web Monitoring with Agilent VEE Figure 12-7. The Index.html Default Page Note To display this menu on your own system, you can refer to your system as . For example, if you run VEE, run the network browser, and...
  • Page 485: Lab 12-1: Practice Session With Agilent Vee Web Browser

    Platform Specifics and Web Monitoring Web Monitoring with Agilent VEE Lab 12-1: Practice Session with Agilent VEE Web Browser This exercise simulates a Web session where you provide the program for a remote user to view on your system. In this Solitaire.vee...
  • Page 486: Figure 12-8. Viewing The Main Solitaire.vee Program In The Browser

    Platform Specifics and Web Monitoring Web Monitoring with Agilent VEE Figure 12-8. Viewing the Main Solitaire.vee Program in the Browser Figure 12-8 displays the Main program in VEE. Note For this exercise, the program includes an error that is not Solitaire.vee...
  • Page 487: Figure 12-9. Displaying A Vee Error Message, Using The Browser

    Platform Specifics and Web Monitoring Web Monitoring with Agilent VEE Figure 12-9. Displaying a VEE Error Message, using the Browser Notice that the VEE error message specifies the UserFunction makeAMove 6. The remote user goes back to the VEE Web Server Home Page once...
  • Page 488: Restricting Access To Programs Viewed Over The Web

    Platform Specifics and Web Monitoring Web Monitoring with Agilent VEE Figure 12-10. Detail View of a UserFunction Displayed in the Browser The remote user is able to see the error in the VEE program. There is an input pin not connected on the object shown in Figure 12-10.
  • Page 489 Platform Specifics and Web Monitoring Web Monitoring with Agilent VEE To prevent remote users from viewing parts of a VEE program on the Web, you can protect the program in three different ways: ⇒ 1. Change the port number in the Default Preferences folder so only authorized users may view the program.
  • Page 490: Figure 12-11. Example Of Displaying Html Message Instead Of Vee Program

    Platform Specifics and Web Monitoring Web Monitoring with Agilent VEE Figure 12-11. Example of Displaying HTML Message Instead of VEE Program You could also use a file for other purposes, such as putting *.html password protection on a VEE program so that only users with the password can view the program.
  • Page 491: Figure 12-12. An Example Of A Password Window

    Platform Specifics and Web Monitoring Web Monitoring with Agilent VEE Figure 12-12. An Example of a Password Window Chapter 12...
  • Page 492: Chapter Checklist

    Platform Specifics and Web Monitoring Chapter Checklist Chapter Checklist You should now be able to perform the following tasks: n Explain the key differences between PC and HP-UX platforms and the issues they raise in porting programs. n Explain how to call and communicate with a Rocky Mountain Basic program.
  • Page 493: Additional Lab Exercises

    Additional Lab Exercises...
  • Page 494 Additional Lab Exercises Additional Lab Exercises The following exercises give you a chance to practice the VEE concepts you have learned in this book. The exercises are divided into categories. To use this appendix, develop a solution and then compare it to the answers listed.
  • Page 495: General Programming Techniques

    Additional Lab Exercises General Programming Techniques General Programming Techniques Apple Bagger You want to know how many apples it takes to fill a ten pound basket. Create a VEE program that counts how many apples it takes to fill the basket.
  • Page 496: Figure A-1. Apple Bagger, Solution 1

    Additional Lab Exercises General Programming Techniques Solution 1—Apple Bagger Figure A-1 shows one solution to the Apple Bagger exercise. Figure A-1. Apple Bagger, Solution 1 Key Points n Optimal Solutions: To optimize the performance of programs, use fewer objects, if possible. This solution uses six objects. The program could also be implemented with 10 objects, as Figure A-2 shows.
  • Page 497: Figure A-2. Apple Bagger, Solution 2

    Additional Lab Exercises General Programming Techniques Solution 2—Apple Bagger Figure A-2 gives another solution using more objects. Figure A-2. Apple Bagger, Solution 2 Key Points n Start: Using a object for this program is redundant, since you can Start use the Run button on the main menu bar. is best used when you Start have two programs on a screen, and you want to be able to run them...
  • Page 498: Testing Numbers

    Additional Lab Exercises General Programming Techniques Testing Numbers Testing Numbers, Step 1 Create a program that allows a user to enter a number between 0 and 100. If the number is greater than or equal to 50, display the number. If it is less than 50, display a pop-up box with the message “Please enter a number between 50 and 100.”...
  • Page 499: Figure A-3. Testing Numbers (Pop-Up Shown)

    Additional Lab Exercises General Programming Techniques Solution—Testing Numbers, Step 1 Figure A-3 shows a solution to the Testing Numbers exercise using five objects. Figure A-3. Testing Numbers (pop-up shown) Testing Numbers, Step 2 After the model is working with five objects (the Message Box produces the pop-up), try programming it with four objects without using the Gate object.
  • Page 500: Figure A-4. Testing Numbers, Step 2

    Additional Lab Exercises General Programming Techniques Solution—Testing Numbers, Step 2 Figure A-4 shows the solution to the Testing Numbers exercise with four objects. Figure A-4. Testing Numbers, Step 2 Key Points n Auto Execute: All input objects such as the have an Int32 Slider selection in the...
  • Page 501: Figure A-5. Testing Numbers, Step 3

    Additional Lab Exercises General Programming Techniques Solution—Testing Numbers, Step 3 Figure A-5 shows the solution to the Testing Numbers exercise using only three objects. Figure A-5. Testing Numbers, Step 3 Note This could be implemented using a dialog box with its Real64 Input automatic error-checking capability.
  • Page 502: Collecting Random Numbers

    Additional Lab Exercises General Programming Techniques Collecting Random Numbers Create a program that generates 100 random numbers and displays them. Record the total time required to generate and display the values. Suggestions This program can be created with six or fewer objects. Choose from the following objects: Start For Range...
  • Page 503: Figure A-6. Collecting Random Numbers

    Additional Lab Exercises General Programming Techniques Solution—Collecting Random Numbers Figure A-6 shows a solution for the exercise Collecting Random Numbers. Figure A-6. Collecting Random Numbers Key Points n Logging AlphaNumeric vs. AlphaNumeric: Use Logging to display consecutive input (either AlphaNumeric Scalar Array ) as a history of previous values.
  • Page 504: Random Number Generator

    Additional Lab Exercises General Programming Techniques n Timing Pins: The object controls which object executes first. The end of the program is timed from the sequence out pin of the For Count object, because that pin does not fire until all objects inside the loop have executed.
  • Page 505: Figure A-8. Random Number Generator, Step 2

    Additional Lab Exercises General Programming Techniques Key Points n Layout of Slider Objects: You can select either a vertical or horizontal format for the screen image of the slider objects by clicking on under in the box. Horizontal Layout Properties n XY Trace: Use an to display the recent history of data that is XY Trace...
  • Page 506: Using Masks

    Additional Lab Exercises General Programming Techniques n MovingAvg(x, numPts): Use this object located in the Function & category to smooth the input data Object Browser Data Filtering using the average of a specified number of data points preceding the point of interest to calculate the smoothed data point. Using Masks Mask Test, Step 1 Create a 50 Hz sine wave with an adjustable amount of noise.
  • Page 507: Figure A-9. The Mask Test, Step 1

    Additional Lab Exercises General Programming Techniques Solution—Using Masks, Step 1 Figure A-9 shows a solution for step 1. Figure A-9. The Mask Test, Step 1 Using Masks, Step 2 Add to the program to calculate and display the percentage of failures. Appendix A...
  • Page 508: Figure A-10. Mask Test, Step 2

    Additional Lab Exercises General Programming Techniques Solution—Using Masks, Step 2 Figure A-10 shows a solution for step 2. Figure A-10. Mask Test, Step 2 Key Points n Mask: The mask is created using the ⇒ ⇒ Data Constant Coord object, then configuring it for five array elements. You input the coordinate pairs separated by commas and VEE adds the parentheses.
  • Page 509 Additional Lab Exercises General Programming Techniques n TotSize: This object simply gives you the number of elements in an array. Since this array contains the number of failures, dividing this by the total number of elements in the original waveform, 256, and multiplying by 100 gives us the percentage of failures.
  • Page 510: Using Strings And Globals

    Additional Lab Exercises Using Strings and Globals Using Strings and Globals Manipulating Strings and Globals Using string objects or functions, create a program that accepts a user’s name in the following format: <space> <firstname> <space> <lastname>. After the user enters a name, have the program strip off the first name and only print the last name.
  • Page 511 Additional Lab Exercises Using Strings and Globals Key Points n String Objects and Functions: first strips off any StrTrim(str) spaces or tabs from the front and back of the name. StrPosChar(str1, yields the index of the space character between the "...
  • Page 512: Optimizing Techniques

    Additional Lab Exercises Optimizing Techniques Optimizing Techniques For this lab, you will build a VEE program two different ways and note the difference in execution speed. Optimizing Techniques, Step 1 Create a program that sends the range through both a 0 to 710 step 10 sine function and cosine function.
  • Page 513: Figure A-13. Optimizing Vee Programs, Step 2

    Additional Lab Exercises Optimizing Techniques Solution—Optimizing Techniques, Step 2 Figure A-13 shows a solution to step 2. Figure A-13. Optimizing VEE Programs, Step 2 Key Points n Optimizing with Arrays: Note the increase in performance between step 1 and step 2 that comes from using arrays. Whenever possible, perform analysis or display results using rather than arrays...
  • Page 514: Userobjects

    Additional Lab Exercises UserObjects UserObjects Random Noise UserObject Random Noise UserObject, Step 1 Create a that generates a random noise waveform. Display the UserObject noisy waveform and the noise spectrum outside the . Provide UserObject control outside the for the following: UserObject amplitude number...
  • Page 515: Figure A-14. A Random Noise Userobject

    Additional Lab Exercises UserObjects Solution—Random Noise UserObject Figure A-14 shows a solution for the Random Noise UserObject Figure A-14. A Random Noise UserObject Solution—NoiseGen Object in Random Noise Figure A-15 shows a solution for the NoiseGen UserObject Appendix A...
  • Page 516: Figure A-15. The Noisegen Userobject

    Additional Lab Exercises UserObjects Figure A-15. The NoiseGen UserObject Key Points n UserObject: Notice that the you build are essentially UserObjects customized objects that you add to VEE. n Build Waveform: This object creates a data type from a Waveform array of amplitude values and a (the length of time in Real...
  • Page 517: Agilent Vee Userfunctions

    Additional Lab Exercises Agilent VEE UserFunctions Agilent VEE UserFunctions Using UserFunctions UserFunctions, Step 1 Create a function called that accepts an amplitude value (0-1) NoiseGen from a slider and returns a noisy waveform. Do Not Use Virtual Source For Count...
  • Page 518: Figure A-16. User Functions, Step 1

    Additional Lab Exercises Agilent VEE UserFunctions Solution—UserFunctions, Step 1 Figure A-16 shows a solution for step 1. Figure A-16. User Functions, Step 1 Key Points n Ramp(): Notice that the function is used to generate an array of ramp() 256 points within the parameter list for...
  • Page 519 Additional Lab Exercises Agilent VEE UserFunctions UserFunctions, Step 2 In the same program, create another function called that calls the AddNoise first function should add the noisy waveform from NoiseGen AddNoise function to a sine wave. should have two inputs,...
  • Page 520: Figure A-17. User Functions, Step 2

    Additional Lab Exercises Agilent VEE UserFunctions Solution—UserFunctions, Step 2 Figure A-17 shows a solution for step 2. Figure A-17. User Functions, Step 2 UserFunctions, Step 3 In the same program, call the function again, this time from a AddNoise object, taking the absolute value of the result. Display the absolute Formula value waveform on the same display.
  • Page 521: Figure A-18. User Functions, Step 3

    Additional Lab Exercises Agilent VEE UserFunctions Solution—UserFunctions, Step 3 Figure A-18 shows a solution for step 3. Figure A-18. User Functions, Step 3 UserFunctions, Step 4 Now change the program so that the slider sets a global variable called . Have the...
  • Page 522: Figure A-19. User Functions, Step 4

    Additional Lab Exercises Agilent VEE UserFunctions Solution—Using UserFunctions, Step 4 Figure A-19 shows a solution for step 4. Figure A-19. User Functions, Step 4 Hint: Notice the objects use the global Call AddNoise Formula , so both of the objects need to run after the...
  • Page 523: Importing And Deleting Libraries Of Userfunctions

    Additional Lab Exercises Agilent VEE UserFunctions Importing and Deleting Libraries of UserFunctions Build a simple program to import the functions from the uflab.vee previous exercise. Call the function that adds the noise, and then delete the library programmatically. Use the...
  • Page 524: Figure A-20. Importing And Deleting Libraries

    Additional Lab Exercises Agilent VEE UserFunctions Solution—Importing and Deleting Libraries Programmatically Figure A-20 shows a solution for deleting the library programmatically. Figure A-20. Importing and Deleting Libraries Key Points n Select Function: Notice that this selection will configure the proper input and output pins for the function you select.
  • Page 525: Creating Operator Panels And Pop-Ups

    Additional Lab Exercises Creating Operator Panels and Pop-ups Creating Operator Panels and Pop-ups Creating Operator Panels and Pop-ups, Step 1 Create a panel to ask an operator to enter numbers. Create a UserObject interact with an operator. Ask the operator for 2 inputs, .
  • Page 526: Figure A-21. Userobject To Ask Operator To Input A And B

    Additional Lab Exercises Creating Operator Panels and Pop-ups Solution—Creating Operator Panels and Pop-ups, Step 1 Figure A-21 shows a solution in detail view. Figure A-22 shows the panel that appears when the program runs. Figure A-21. UserObject to Ask Operator to Input A and B Figure A-22.
  • Page 527 Additional Lab Exercises Creating Operator Panels and Pop-ups Key Points n UserObject Properties: In the dialog box, UserObject Properties select and click to turn on Pop-Up Panel Show Panel On Execute ⇒ Change the name to “ Pop-Up Panel Panel Title Enter A or .”...
  • Page 528: Figure A-24. Panel For Operator To Choose Whether To Display A Or B

    Additional Lab Exercises Creating Operator Panels and Pop-ups Solution—Creating Operator Panels and Pop-ups, Step 2 Figure A-23 shows the that asks the operator to make a choice UserObject when are different numbers. Figure A-24 shows the second pop-up panel that appears to ask the operator whether to display Figure A-23.
  • Page 529 Additional Lab Exercises Creating Operator Panels and Pop-ups Key Points n Gate: The object only sends a value if the two numbers are equal. Gate n Junction: The object allows multiple inputs to the object . The object is a “wired OR” object. Alphanumeric n List Object as a Menu: Note the use of the ⇒...
  • Page 530: Figure A-25. Generate An Error If Operator Does Not Enter A Choice

    Additional Lab Exercises Creating Operator Panels and Pop-ups Solution—Creating Operator Panels and Pop-ups, Step 3 Figure A-25 shows the modified to generate an error if the UserObject operator does not choose in 10 seconds. Figure A-25. Generate an Error if Operator Does Not Enter a Choice Key Points n Exit UserObject: If the user responds in under 10 seconds, this object will exit the...
  • Page 531 Additional Lab Exercises Creating Operator Panels and Pop-ups n Delay and Raise Error: After 10 seconds the object pings the Delay object, which will pause execution of the program and Raise Error display the you have typed in. A red outline will also Error Message appear around the object that caused the error, which goes away when you click on the Stop or Run buttons on the main menu bar.
  • Page 532: Working With Files

    Additional Lab Exercises Working with Files Working with Files Moving Data To and From Files Create a VEE program to write the time of day to a file. Generate 100 random points and write them to the file. Calculate the mean and standard deviation of the numbers and append them to the file in the following format: Mean: xxxxxx...
  • Page 533 Additional Lab Exercises Working with Files Key Points n Generating an Array: Use randomize(ramp(100,0,1), 0, 1) object to create an array of 100 random numbers. The Formula function generates an ordered array and delivers it to the ramp() function, which then generates random values between randomize() n Time Stamp: The function is used in the expression field of the...
  • Page 534: Records

    Additional Lab Exercises Records Records Manipulating Records Manipulating Records, Step 1 Build a record with three fields holding an integer, the time right now as a string, and a four element array of reals. The fields should be named , and , respectively.
  • Page 535: Figure A-27. Manipulating Records, Step 1

    Additional Lab Exercises Records Solution—Manipulating Records, Step 1 The resulting record should have five fields, as shown in Figure A-27. Figure A-27. Manipulating Records, Step 1 Key Points n Time Stamp: Use the function within the object to now() To String create your time stamp for this program.
  • Page 536 Additional Lab Exercises Records n Naming Fields: By renaming the input terminals on the Build Record object, you can give your record specific field names such as rand wave n The Default Value Control Input: A makes an Record Constant excellent interactive display object by adding a Default Value pin.
  • Page 537: Figure A-28. Manipulating Records, Step 2

    Additional Lab Exercises Records Solution—Manipulating Records, Step 2 Figure A-28 shows manipulating records, step 2. Figure A-28. Manipulating Records, Step 2 Key Points n Using a Conditional Expression: VEE supports a conditional expression, which provides an efficient way to implement an if-then-else action.
  • Page 538 Additional Lab Exercises Records Manipulating Records, Step 3 Replace the integer input for the first field with a object and For Count step through 10 iterations. Be certain to “ping” the random number generator and the time function on each iteration. Send the complete record into a object.
  • Page 539: Figure A-29. Manipulating Records, Step 3

    Additional Lab Exercises Records Solution—Manipulating Records, Step 3 Figure A-29 shows a solution for manipulating records, step 3. Figure A-29. Manipulating Records, Step 3 Key Points n The To DataSet Object: The option only Clear File at PreRun clears the file before data is sent the first time. Notice that the program sends 10 different records to the same file sequentially, and they are appended to the file.
  • Page 540: Test Sequencing

    Additional Lab Exercises Test Sequencing Test Sequencing Using the Test Sequencer, Step 1 Create a simple called that is a pop-up panel UserFunction UpperLimit with a and a object. Send the output of Real64 Slider Confirm (OK) the slider to a global variable called and also to an output terminal.
  • Page 541: Figure A-30. Using The Sequencer, Step 1

    Additional Lab Exercises Test Sequencing Solution—Using the Test Sequencer, Step 1 Figure A-30 shows a solution for the first step of using the Sequencer. Figure A-30. Using the Sequencer, Step 1 Key Points n Setting Global Variables with a UserFunction: A typical use of the first transaction is to call a that sets the...
  • Page 542: Figure A-31. Disable The First Test In The Sequence

    Additional Lab Exercises Test Sequencing Using the Test Sequencer, Step 2 Disable the first test. Assuming that you do not need the global anywhere else, you can call the function directly. Change so that UpperLimit test2 it compares the return value of against the result of the AddRand(0) function.
  • Page 543: Figure A-32. Using The Sequencer, Step 2

    Additional Lab Exercises Test Sequencing Solution—Using the Test Sequencer, Step 2 Figure A-32 shows a solution to using the test , step 2. Sequencer Figure A-32. Using the Sequencer, Step 2 Key Points n The UserFunction in an Expression Field: In this example, instead of comparing a test result to the variable, you can type the UpLimit...
  • Page 544 Additional Lab Exercises Test Sequencing Using the Test Sequencer, Step 3 Edit the transaction that calls the VEE function test2 Sequencer random . Compare the result against a limit less than . Cut and paste the (0,1) transaction until you have a total of four tests. test1 Build a program to run the five times.
  • Page 545: Figure A-33. Using The Test Sequencer, Step 3

    Additional Lab Exercises Test Sequencing Solution—Using the Test Sequencer, Step 3 Figure A-33 shows a solution to Step 3. Figure A-33. Using the Test Sequencer, Step 3 Key Points n The Data Format for Several Runs of the Sequencer (First Thread): When the executes once, it outputs a Sequencer...
  • Page 546 Additional Lab Exercises Test Sequencing object, you will get an array of data. In this case, you get an Formula array of real values giving the test results for five runs of . You can test2 then calculate the minimum, maximum, mean, and standard deviation from this array.
  • Page 547: Figure A-34. Add A Time Stamp To The Logging Record

    Additional Lab Exercises Test Sequencing Figure A-34. Add a Time Stamp to the Logging Record Appendix A...
  • Page 548: Figure A-35. Using The Test Sequencer, Step 4

    Additional Lab Exercises Test Sequencing Solution—Using the Test Sequencer, Step 4 Figure A-35 shows a solution to step 4 of using the test sequencer. Figure A-35. Using the Test Sequencer, Step 4 Hint: ⇒ To display a record, click on the field for one Record Record: Scaler...
  • Page 549: Figure A-36. Checking A Record

    Additional Lab Exercises Test Sequencing Figure A-36. Checking a Record Using the Test Sequencer, Step 5 Print the time stamp fields from the records on a Logging Alphanumeric display. Hint: Use four objects (one for each test). To show all four Formula results in one display, add a...
  • Page 550: Figure A-37. Using The Test Sequencer, Step 5

    Additional Lab Exercises Test Sequencing Solution—Using the Test Sequencer, Step 5 Figure A-37 shows the program thread to print the time stamps to a display, step 5 of using the test sequencer. Figure A-37. Using the Test Sequencer, Step 5 Key Points n Converting Time Stamp Formats: The object before...
  • Page 551: Figure A-38. Using The Test Sequencer, Step 6

    Additional Lab Exercises Test Sequencing Using the Test Sequencer, Step 6 If the includes many tests, it can become cumbersome to use Sequencer many individual objects connected to a . Instead, you Formula Junction can use a that contains an expression, generate the expression at Formula run time, and loop through the possible expressions.
  • Page 552: Figure A-39. Using The Test Sequencer, Step 7

    Additional Lab Exercises Test Sequencing Solution—Using the Test Sequencer, Step 7 Figure A-39 shows a solution to step 7. Figure A-39. Using the Test Sequencer, Step 7 Key Points n The object is still being used to format the into a To String Real64 time stamp format.
  • Page 553: Figure A-40. Using The Test Sequencer, Step 8

    Additional Lab Exercises Test Sequencing Solution—Using the Test Sequencer, Step 8 Figure A-40 shows a solution to the final step in using the test sequencer. Figure A-40. Using the Test Sequencer, Step 8 Key Points n The EOF Pin on the From Data Set Object (Second Thread): The pin is added in case there are no records that fit the criteria.
  • Page 554 Additional Lab Exercises Test Sequencing 0), with the same <record>.<record>.<field> format. is the name of each record in the dataset as it is read and tested. Test1 test2 specify which tests VEE should examine, and the field name pass is the default name for the pass-fail indicator ( ) assigned by VEE.
  • Page 555: Glossary

    Glossary...
  • Page 556: Contents

    Glossary This Glossary defines terms used in this manual. For a complete glossary of ⇒ VEE terms, select . Next, select Help Contents and Index . Then, select . In the glossary, clicking a term Reference Glossary displays a definition. When you have finished reading the definition, click anywhere to clear the text.
  • Page 557 Component A single instrument function or measurement value in a VEE instrument panel or component driver. For example, a voltmeter driver contains components that record the range, trigger source, and latest reading. Component Driver An instrument control object that reads and writes values to components you specifically select.
  • Page 558 Data Input Pin A connection point on the left side of an object that permits data to flow into the object. Data Output Pin A connection point on the right side of an object that propagates data flow to the next object and passes the results of the first object’s operation on to the next object.
  • Page 559 Drop-Down List A list of selections obtained by clicking on the arrow to the right of a selection field. Entry Field A field that is typically part of a dialog box or an editable object, which is used for data entry. An entry field is editable when its background is white.
  • Page 560: Main Window

    Icon 1. A small, graphical representation of a VEE object, such as the representation of an instrument, a control, or a display. 2. A small, graphical representation of an application, file, or folder in the Microsoft Windows and HP-UX (with VUE) operating system. Main Window A window that contains the primary work area in which you develop a VEE program.
  • Page 561 upper-left corner of the object, or click the right mouse button with the pointer over the object. Object Menu Button The button at the upper-left corner of an open view object, which displays the object menu when you click it. Open View The representation of a VEE object that shows more detail than the minimized view (icon).
  • Page 562 Preferences Preferences are attributes of the VEE environment that you can change using the button on the toolbar, or the menu Default Preferences ⇒ . For example, you can change the File Default Preferences default colors, fonts, and number format. Program In VEE, a graphical program that consists of a set of objects connected with lines.
  • Page 563 Selection Field A field in an object or dialog box that allows you to select choices from a drop-down list. Sequence Input Pin The top pin of an object. When connected, execution of the object is held off until the pin receives a container (is “pinged”). Sequence Output Pin The bottom pin of an object.
  • Page 564: Work Area

    Transaction The specifications for input and output (I/O) used by certain objects in VEE. Examples include the To File From File, Sequencer, objects. Transactions appear as phrases listed in the open Direct I/O view of these objects. UserObject An object that can encapsulate a group of objects to perform a particular purpose within a program.
  • Page 565: Index

    Index...
  • Page 566: Table 4-2. Displays

    ActiveX data type Variant objects backward compatibility terminal bar, scroll to panel barchart address, interface basic Agilent VEE Rocky Mountain Basic closing program Beep compiler displays data flow in program Beep object debugging bitmaps exiting branching tests...
  • Page 567 UserFunction from expression creating a UserFunction case sensitivity – creating a UserObject VEE vs. MATLAB customize caution boxes in VEE programs test data displays Agilent VEE cutting an object error messages in VEE changing object views preferences data properties accessing logged data...
  • Page 568 using data types in program object data input pin transaction data output pin display Dataset a record with Record Constant search and sort operations Detail view DataSets to store and retrieve records noise generator – Panel view date & time, time stamp format program connections (detail view) debugging waveform...
  • Page 569 Sequencer transaction field merge end task (quitting VEE) Library Enum data type Save As... EOF, avoiding errors in From DataSet Save Documentation... files error program input pins not connected fill bars errors Find feature adding error output pins flow debugging programs Show Data Flow Go To Show Execution Flow...
  • Page 570 optimizing programs UserFunctions passing data in Sequencer Indicator setting and getting displays setting before using input pins Go To data GPIB errors about GPIO output sequence insert UserObject in program Help Instrument Manager finding menu location for object instruments Object Menu adding physical instrument online configuring...
  • Page 571 search and sort with DataSets case sensitivity setting and getting global variable data types supported feature standard deviation graph using DataSets in Function & Object Browser view data flow and propagation including Script object in VEE Label program displays object in VEE program learn string overview libraries...
  • Page 572 compatibility creating UserFunction execution cutting mouse button Data, Build Data, Record move Data, Constant, Record an object Delete Library data between objects deleting entire work area deleting data lines objects in Panel view deselecting Device => Function & Object Browser Device, Import Library naming direct I/O...
  • Page 573 reducing number of objects in optimizing programs programs resizing retrieving data using From File object – Panel driver Panel view select object menu adding object to selecting adding objects Sequencer aligning objects Set Variable Beep object Show Title Bar turned off button on icon bar sizing create operator interface...
  • Page 574 pop-up menus Edit quitting VEE pop-up panels preferences changing radio buttons printers, using with VEE random number printing the screen generating in lab exercise product support information Range Profiler Sequencer transaction field Program Explorer READ I/O transaction displaying UserFunctions reading data from instrument viewing Program Explorer real array, sending to file programs...
  • Page 575 Strip Chart displaying text description displays Pause subprograms Resume UserObjects and UserFunctions support Step Into Agilent VEE support show MATLAB connections between objects Index-11...
  • Page 576 supported systems switching view UInt8 data type detail unbuild Record systems undo supported deleted object upload instrument state upload string URLs tanks Web addresses for MATLAB terminals Web addresses for VEE adding user input deleting create dialog box examining user interface obtaining information create panel view showing terminal labels...
  • Page 577 VXIplug&play drivers WAIT I/O transaction waveform data type display display waveform program display, changing color of trace display, changing X and Y scales display, Delta markers displays displays, zooming in Web URLs Agilent VEE MATLAB Welcome menu in online Help Index-13...

Table of Contents

Save PDF