Keysight VEE explained

Keysight VEE
Developer:Keysight Technologies
Operating System:Microsoft Windows
Genre:Integrated Development Environment
License:Proprietary commercial software
Website:https://www.keysight.com/us/en/product/W4000D/vee-pro-9-33.html

Keysight VEE is a graphical dataflow programming software development environment from Keysight Technologies for automated test, measurement, data analysis and reporting. VEE originally stood for Visual Engineering Environment and developed by HP designated as HP VEE; it has since been officially renamed to Keysight VEE. Keysight VEE has been widely used in various industries, serving the entire stage of a product lifecycle, from design, validation to manufacturing. It is optimized in instrument control and automation with test and measurement devices such as data acquisition instruments like digital voltmeters and oscilloscopes, and source devices like signal generators and programmable power supplies.

Release history

Major Release VersionRelease DateFeatures
A.00.009 May 1991HP-UX Series 300 7.x/8.x release
A.00.017 Oct 1991First release on Series 700 platforms
2.0/B.00.0017 Dec 1992HP-UX Series 700/Series 300 8.x/9.x
2.1/B.01.0011 Mar 1993Ported to SunOS 4.1.2/4.1.3
2.2/B.02.002 Nov 1993Ported to Windows 3.0
2.3/B.03.0021 Jun 1994Windows 3.1 Release
3.02 Feb 1995Colors, fonts, hotkeys, panels, bitmaps, dialogs, and resize objects.
3.13 Apr 1995VXI support, Programmatic Control knobx
3.222 Feb 1996Windows 95 and Windows NT support, performance, more colors, toolbar, and workspace panning.
4.05 Mar 1997Completely rewritten interface, runtime performance, MDI, program explorer, and debugging.
5.01 May 1998ActiveX, multiline formula, user functions, Instrument Manager, display indicators, savePanelImage, and Windows 98 support.
6.027 Mar 20002 versions: VEE Pro and VEE Onelab for students, MATLAB, Real32 datatype, transition from HP to Agilent, and Windows 2000 support.
6.111 May 2002No support on HP-UX, changed licensing to node locked requiring license file from web, and Windows XP support.
6.221 Jul 2003Switched back licensing from node locked to product key.
7.010 Mar 2004Undo, LAN/USB support, IVI-COM, descriptions and panel edit
7.514 May 2005Excel Add-in, NI DAQ support (PXI and PCI), .NET controls, and For Each object.
Lite 7.5419 April 2006Same as VEE except supporting USB devices only and without MATLAB engine, later developed into VEE Express branch.
8.031 Jan 2007Watch window, code completion, Minimap, and Windows Vista support.
8.520 Oct 2007Modern IDE, MATLAB 2007a, I/O monitor, and color-coding.
9.019 Sep 2008Multithread and multicore, SCPI completion, private userfunctions, database support, conditional breakpoints, and call stack.
9.215 Apr 2010Windows 7 support
9.311 Nov 2011Supports Agilent IO Libraries Suite 16.1
9.322 Dec 2013Windows 8 and Microsoft Excel 2013 supportability
9.3328 Aug 2018Windows 10 and Microsoft Excel 2016 supportability
A detailed list of features for each version can be found under the References section.

Keysight VEE objects and pins

A VEE program consists of multiple connected VEE objects (sometimes called devices). Each VEE object consists of different types of pins, namely data pins, sequence pins, execute pins (XEQ), control pins and error pins. Data pins govern the data flow propagation while sequence pins determine object execution order.

The pins on the left side of an object are called input pins, whereas the pins on the right are output pins. Two objects, A and B, are connected if the output pin of object A is connected to object B's input pin. Several connection lines can emanate from a single output pin, but at most one connection line can be attached to an input pin. All data input pins and execute pins must be connected, whereas control pins and output pins can be left unconnected.

Data flow and data propagation

Keysight VEE is a dataflow programming language. Within a VEE program, there are multiple connections between objects and data flows through objects from left to right while sequence flows from top to bottom.

An object's execution order is determined by object connections and the data dependency rule. In general, an object with unconnected data input and sequence input pin will operate first. If an object's sequence input pin is not connected, it will execute as soon as data is present on all data inputs. On the other hand, if a sequence input pin is connected, although data is present on all data input pins, the object will hold its execution until the sequence input pin is pinged. This may not be applicable to some non-primitive objects like the Junction and Collector objects. For example, if object A's sequence output pin is connected, it will fire only after object A has executed and no further execution is possible in the objects descended from the data output pins and error pin of object A.Some examples are taken from [1] and can be referred to for further explanation.

Instrument connectivity

Keysight VEE can connect and control a variety of Keysight and non-Keysight instrumentation via multiple interfaces. Keysight VEE supports the following interfaces:

Extensive interoperability

Keysight VEE can interact with other programming languages using the built-in ActiveX Automation Server. Other software development programs such as Visual Basic, C/C++, Visual C# and all .NET compliant languages can call Keysight VEE UserFunctions. Keysight VEE is also integrated with Microsoft .NET Framework (Common Language Runtime and Framework Class Libraries) that provides a multitude of functions and controls that can be used to enhance a program such as adding email capability and accessing databases.Access to over 2500 MATLAB analysis and visualization functions is made possible with the built-in MATLAB Signal Processing Toolbox. The built-in Microsoft Excel library provides direct access to save, retrieve and generate reports in spreadsheets.

Keysight VEE GUI panels and runtime deployment

Keysight VEE is notable for its capability to deploy unlimited number of runtime programs with no time limitations at no extra cost. These runtime programs could contain a GUI panel and allows interaction with users, presumably operators to execute and control the program and the test execution.

See also

External links

Notes and References

  1. Greenbaum. Steven. Stanley Jefferson. A Compiler for HP VEE. Hewlett-Packard Journal. May 1998. 98–122.