Esa displayport phy compliance test standard version 1 revision 2b agilent method of implementation (moi) for displayport cable compliance tests (45 pages)
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.
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...
⇒ 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...
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 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...
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...
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.
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.
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...
“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.
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.
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).
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).
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...
“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...
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...
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...
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 ⇒...
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 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...
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.
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.
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.
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.
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.
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.
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...
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.
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.
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.
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.)
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.
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.
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...
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.
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 .
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.
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.
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...
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.)
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.
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- ⇒...
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;...
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.
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.
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.
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.
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.
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 ⇒...
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.
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,...
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 ⇒...
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...
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.
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.
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...
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...
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.
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...
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.
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...
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;...
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.
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.
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.
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...
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...
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.
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.
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...
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 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...
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.
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...
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...
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.
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...
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 .
“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.
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...
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.
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.
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...
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.
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...
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...
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.)
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.
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.
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...
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...
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...
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.
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...
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...
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...
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...
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.
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.
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.
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.)
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.
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...
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 .
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”...
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.
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.
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.
. 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...
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...
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.
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 ⇒...
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.”...
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.
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...
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...
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...
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 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...
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.
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.
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.
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...
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 ⇒...
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 .
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.
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...
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...
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.
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 .
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.
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.
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.
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.
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...
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.
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)) ⇒...
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.
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 .
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.
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...
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.
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.
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.
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...
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.
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.
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.
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.
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...
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.
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))
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 ⇒...
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...
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.
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...
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 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...
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.
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...
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.
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.
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 ⇒...
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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...
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.
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...
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.
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 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...
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.
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.
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.
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.
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...
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.
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.
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.
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.
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.
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.
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,...
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.
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.
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...
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.
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...
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.
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.
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 .
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 .
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.
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.
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...
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...
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...
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.
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.
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.
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...
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 .
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...
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.
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.
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 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...
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.
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 ⇒...
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...
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.
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.
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...
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...
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;...
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”...
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.
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.)
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...
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...
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.
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 .
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 ⇒...
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.
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\...
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 .
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.
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.
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 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...
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.
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.
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.
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.
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.
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: (*)
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 .
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.
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...
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...
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 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...
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-...
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.
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...
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.
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.
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...
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.
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...
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...
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.
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...
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.
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...
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...
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...
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.
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...
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...
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.
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.
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...
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...
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...
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.
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...
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.
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.
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 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...
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.
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.
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...
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.
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.
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.
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 .
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...
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...
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...
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 .
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...
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.
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.
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...
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:...
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...
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...
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.
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...
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 ⇒...
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...
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.
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 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...
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...
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.
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.
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...
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.
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.
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.
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.
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.
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...
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.
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.
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.
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.”...
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.
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.
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.
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”...
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. ⇒...
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...
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...
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.
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.
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...
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.
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.
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 .
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...
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.
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.
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...
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...
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 ⇒...
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...
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.
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 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...
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.
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.
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.
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.
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...
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...
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.
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.
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...
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: ⇒...
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.
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.
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).
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.
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.
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.
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.
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.
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.
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.
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...
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.
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 ⇒...
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.
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...
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...
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 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...
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.
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.
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.
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.
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.
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.
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.
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.
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.
(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.
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...
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...
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.
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...
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...
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...
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...
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.
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.
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 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.
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.
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.
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...
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.”...
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.
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...
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.
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...
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.
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.
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...
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.
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...
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.
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 "...
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.
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...
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...
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...
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...
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...
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,...
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.
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...
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...
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...
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.
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, .
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 .”...
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 ⇒...
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.
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...
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.
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.
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.
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.
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.
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...
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.
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.
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.
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...
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...
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...
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.
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.
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.
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.
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.
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.
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...
Need help?
Do you have a question about the VEE Pro and is the answer not in the manual?
Questions and answers