Keysight VEE

Last updated

Keysight VEE
Developer(s) Keysight Technologies
Operating system Microsoft Windows
Type 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.

Contents

Release history

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

Related Research Articles

<span class="mw-page-title-main">Logic analyzer</span> Electronic test instrument that measures multiple signals from a circuit

A logic analyzer is an electronic instrument that captures and displays multiple signals from a digital system or digital circuit. A logic analyzer may convert the captured data into timing diagrams, protocol decodes, state machine traces, opcodes, or may correlate opcodes with source-level software. Logic analyzers have advanced triggering capabilities, and are useful when a user needs to see the timing relationships between many signals in a digital system.

In computer engineering, a hardware description language (HDL) is a specialized computer language used to describe the structure and behavior of electronic circuits, most commonly to design ASICs and program FPGAs.

Bytecode is a form of instruction set designed for efficient execution by a software interpreter. Unlike human-readable source code, bytecodes are compact numeric codes, constants, and references that encode the result of compiler parsing and performing semantic analysis of things like type, scope, and nesting depths of program objects.

In computer programming, standard streams are preconnected input and output communication channels between a computer program and its environment when it begins execution. The three input/output (I/O) connections are called standard input (stdin), standard output (stdout) and standard error (stderr). Originally I/O happened via a physically connected system console, but standard streams abstract this. When a command is executed via an interactive shell, the streams are typically connected to the text terminal on which the shell is running, but can be changed with redirection or a pipeline. More generally, a child process inherits the standard streams of its parent process.

<span class="mw-page-title-main">Prograph</span>

Prograph is a visual, object-oriented, dataflow, multiparadigm programming language that uses iconic symbols to represent actions to be taken on data. Commercial Prograph software development environments such as Prograph Classic and Prograph CPX were available for the Apple Macintosh and Windows platforms for many years but were eventually withdrawn from the market in the late 1990s. Support for the Prograph language on macOS has recently reappeared with the release of the Marten software development environment.

<span class="mw-page-title-main">LabVIEW</span> System-design platform and development environment

Laboratory Virtual Instrument Engineering Workbench (LabVIEW) is a system-design platform and development environment for a visual programming language developed by National Instruments.

In computer programming, dataflow programming is a programming paradigm that models a program as a directed graph of the data flowing between operations, thus implementing dataflow principles and architecture. Dataflow programming languages share some features of functional languages, and were generally developed in order to bring some functional concepts to a language more suitable for numeric processing. Some authors use the term datastream instead of dataflow to avoid confusion with dataflow computing or dataflow architecture, based on an indeterministic machine paradigm. Dataflow programming was pioneered by Jack Dennis and his graduate students at MIT in the 1960s.

Dataflow architecture is a dataflow-based computer architecture that directly contrasts the traditional von Neumann architecture or control flow architecture. Dataflow architectures have no program counter, in concept: the executability and execution of instructions is solely determined based on the availability of input arguments to the instructions, so that the order of instruction execution may be hard to predict.

Concurrent computing is a form of computing in which several computations are executed concurrently—during overlapping time periods—instead of sequentially—with one completing before the next starts.

<span class="mw-page-title-main">Binary Modular Dataflow Machine</span>

Binary Modular Dataflow Machine (BMDFM) is a software package that enables running an application in parallel on shared memory symmetric multiprocessing (SMP) computers using the multiple processors to speed up the execution of single applications. BMDFM automatically identifies and exploits parallelism due to the static and mainly dynamic scheduling of the dataflow instruction sequences derived from the formerly sequential program.

In computer science, stream processing is a programming paradigm which views streams, or sequences of events in time, as the central input and output objects of computation. Stream processing encompasses dataflow programming, reactive programming, and distributed data processing. Stream processing systems aim to expose parallel processing for data streams and rely on streaming algorithms for efficient implementation. The software stack for these systems includes components such as programming models and query languages, for expressing computation; stream management systems, for distribution and scheduling; and hardware components for acceleration including floating-point units, graphics processing units, and field-programmable gate arrays.

Dynamic program analysis is analysis of computer software that involves executing the program in question. Dynamic program analysis includes familiar techniques from software engineering such as unit testing, debugging, and measuring code coverage, but also includes lesser-known techniques like program slicing and invariant inference. Dynamic program analysis is widely applied in security in the form of runtime memory error detection, fuzzing, dynamic symbolic execution, and taint tracking.

In computer programming, flow-based programming (FBP) is a programming paradigm that defines applications as networks of black box processes, which exchange data across predefined connections by message passing, where the connections are specified externally to the processes. These black box processes can be reconnected endlessly to form different applications without having to be changed internally. FBP is thus naturally component-oriented.

The Hitachi HD44780 LCD controller is an alphanumeric dot matrix liquid crystal display (LCD) controller developed by Hitachi in the 1980s. The character set of the controller includes ASCII characters, Japanese Kana characters, and some symbols in two 40 character lines. Using an extension driver, the device can display up to 80 characters. Numerous third-party displays are compatible with its 16-pin interface and instruction set, making it a popular and cheap LCD driver.

In computing, reactive programming is a declarative programming paradigm concerned with data streams and the propagation of change. With this paradigm, it's possible to express static or dynamic data streams with ease, and also communicate that an inferred dependency within the associated execution model exists, which facilitates the automatic propagation of the changed data flow.

Service-oriented programming (SOP) is a programming paradigm that uses "services" as the unit of computer work, to design and implement integrated business applications and mission critical software programs. Services can represent steps of business processes and thus one of the main applications of this paradigm is the cost-effective delivery of standalone or composite business applications that can "integrate from the inside-out". It inherently promotes service-oriented architecture (SOA), however, it is not the same as SOA. While SOA focuses on communication between systems using "services", SOP provides a new technique to build agile application modules using in-memory services as the unit of work.

CAL is a high-level programming language for writing (dataflow) actors, which are stateful operators that transform input streams of data objects (tokens) into output streams. CAL has been compiled to a variety of target platforms, including single-core processors, multicore processors, and programmable hardware. It has been used in several application areas, including video and processing, compression and cryptography. The MPEG Reconfigurable Video Coding (RVC) working group has adopted CAL as part of their standardization efforts.

Pin control attack is a class of attack against a system on a chip (SoC) in an embedded system where an attacker targets the I/O configuration of the embedded systems and disables software or operating system I/O functions without detection. The attack is possible due to a lack of hardware protection for pin configuration and pin multiplexing configurations.

This glossary of computer science is a list of definitions of terms and concepts used in computer science, its sub-disciplines, and related fields, including terms relevant to software, data science, and computer programming.

References

  1. Greenbaum, Steven; Stanley Jefferson (May 1998). "A Compiler for HP VEE" (PDF). Hewlett-Packard Journal: 98–122.