National Instruments Inc.
Today, it is not uncommon for the design process to incorporate multiple software components. While the aerospace and automotive industries are deeply entrenched in a software-aided design structure, the need to easily link between test and measurement (T&M) and calculation software is felt everywhere that measurements are acquired and analyzed, from electronics and semiconductors to industrial control.
There are several stages in the design process where engineers implement T&M and calculation software. One example is where design engineers perform initial system identification for the purpose of control design. They must employ T&M software to excite their system and acquire the response data. They then analyze the data in separate calculation packages. Control engineers use similar software packages to acquire data and analyze the results for rapid-control prototyping and hard-ware-in-the-loop tests.
Early on, the process of communicating between analysis and T&M software was completely manual. Users would save acquired data to a file and then read it into the analysis environment.
Software advances eventually made it possible for the environments to share data through DDE (dynamic-data-exchange) links or technologies such as COM (common object modules) and ActiveX. Acquired data would get passed to a calculation program, which would automatically invoke previously developed analysis routines and return the results to the measurement package for presentation.
MEASUREMENT JOINS ANALYSIS
More recently, measurement packages have started to incorporate increasingly advanced analysis routines. National Instruments Inc.'s Measurement Studio and Agilent Technologies Inc.'s T&M Programmer's Toolkit are add-on packages that bring prepackaged test and measurement to the Microsoft Visual Studio general-programming environment. These packages include libraries for acquiring data, user-interface components for presenting results, and libraries of extensive measurement-specific analysis functions, including signal processing, windowing, and filtering.
In the same vein, calculation tools such as Matlab from The MathWorks Inc. have incorporated data-acquisition libraries. But the measurement capabilities they provide are modest compared to vast I/O offerings in use today. Measurement systems now can incorporate motion control, image-acquisition systems, and signal conditioning, and may be implemented on platforms that include VME, CompactPCI, and PLCs.
Graphical-programming languages as found in instrumentation packages such as National Instruments' LabView tend to handle a wider range of measurement and control tasks. They also incorporate advanced analysis algorithms and can interact with other programs. In many cases they can manage not just signal acquisition but also analysis and presentation.
SIMILARITIES AND DIFFERENCES
Now consider widely used mathematics packages. They include Maple from Maplesoft, a division of Waterloo Maple Inc., Mathematica from Wolfram Research Inc., Mathcad from Mathsoft, and MatrixX from National Instruments Inc., as well as packages from The Mathworks mentioned previously. All of them have roots in mainframes and minicomputers. Each originally used a Unix or Fortran-based computing environment and now predominantly resides on PCs.
These mathematics packages all have some form of a calculation engine at their base, a library of algorithms providing core mathematics functions. Interestingly, core mathematics is a mature field, and some of these packages employ calculation engines available in the public domain.
Thus there is great similarity among these packages at their innermost levels. But though they may execute calculations in similar ways, there are two significant points of differentiation among them: symbolic versus numeric manipulation and use of advanced toolsets.
Symbolic and numeric manipulation pertains to how users will interact with the package to manipulate data. Products with a symbolic representation scheme let users develop expressions using traditional mathematical characters and symbols. In contrast, numerical-package users work with a series of predefined functions specific to the package. Each approach has strengths and weaknesses and preferences for one over the other tend to depend on the background of the user.
Symbolic packages include Maple, Math-cad, and Mathematica. They generally appeal most to users with strong backgrounds in mathematics. Their universal notation aids in quick algorithm development and can be particularly useful in the initial system modeling. The open architecture of symbolic packages makes it easy to develop add-on modules for specific applications. In addition, the numerous mathematic functions these packages provide aren't always available in numeric packages.
In contrast, numeric packages are best known for strong number-crunching capabilities without concern for a completely open architecture. These packages include Matlab and Xmath (part of National Instruments MatrixX). They provide a style of algorithm development analogous to C programming. Users can devise calculation routines in a command-line type setting, a mode often favored by those with an engineering background or who are experienced in programming.
The functions available in such packages are limited to what comes in libraries from the software vendor. Nevertheless, libraries for Matlab and Xmath are extensive and contain numerous specialized routines for a variety of applications. Many of these libraries target control engineers with functions useful in system identification and control design, in addition to core data-analysis routines.
And though Matlab and Xmath aren't considered open-architecture programs, they can be extended through associated programs. For example, the MatrixX software family includes SystemBuild, an environment for graphical development of system models and controllers. A related program called AutoCode parses the SystemBuild model and generates ANSI C or Ada code for use on embedded targets. DocumentIt is a similar package that generates documentation sets from SystemBuild models.
Likewise, The MathWorks offers a suite of products for Matlab that come in handy during the design process. Among them are Simulink for graphical modeling and Real-Time Workshop for generating code, with an extension for producing documentation.
It is useful to review the factors that have brought instrumentation software to begin including qualities of analysis packages. The trend might best be understood in terms of virtual instruments.
As a quick review, virtual instruments are based on PC software that simulates the function of a stand-alone test instrument. The software works in conjunction with plug-in cards that accept inputs from devices under test and may produce output signals.
The beauty of a virtual instrument is that the user defines the instrument operations through software. Users develop in the application development environment (ADE) of their choice, and can take advantage of the latest PC and software technology. Graphical-programming languages, used extensively in virtual-instrumentation development, use icons to represent common instrument functions such as comparison, amplification, averaging, and so forth.
This approach simplifies application development by letting users define a program for making measurements merely in terms of block diagrams rather than by writing code in a low-level language.
Both plug-in modules for PCs and T&M software have grown more sophisticated over the years. The combination of virtual-instrumentation software and plug-in data-acquisition cards has made it possible for PCs to completely replace stand-alone instruments in some cases.
The face of virtual instrumentation is undergoing another change: No longer are virtual instruments confined to desk-top PCs. Next-generation instruments, such as Open Windows oscilloscopes from Tektronix Inc., have PC technology built in. Because they run a Windows operating system, these instruments support ADEs such as LabView and mathematical software such as Matlab.
The LabView Real-Time package lets users develop virtual instruments to execute on a real-time operating system handling instrument platforms such as PXI. It nevertheless retains open-development architectural qualities such as the ability to include analysis routines developed in external mathematics packages that will run in real time. Tight integration between complex calculations and data acquisition on a real-time platform make this system useful in areas such as machine control, machine-condition monitoring, and process control.
Calculation tools are mature, so improvements on the horizon are likely to be incremental. These packages will continue to get faster, host larger libraries of prebuilt functions, and will benefit from improved graphics. However, packages specifically focused on vertical design process will see more significant strides.
For example, future versions of these design tools may incorporate more interactive programming. Users will more easily interact with simulation results and get feedback faster thanks to menu-driven programming oriented toward control design and system identification. This format will also make it easier to learn command-driven languages, so new users can more quickly become productive with the software. Connections with data-acquisition hardware will also become more integrated with easier ways of checking software models against real-world data.
But it takes time to devise such connections simply because there is a vast diversity of data-acquisition hardware with which software must work. Test and measurement software such as LabView benefits from having a large base of hardware with which it can be employed. This helps make it a good potential platform for instrumentation applications.
Agilent Technologies Inc., (877) 424-4536, agilent.com
Maplesoft, a division of WaterlooMaple Inc., (781) 276-4560, maplesoft.com
Mathsoft, (800) 628-4223, mathsoft.com
The MathWorks Inc., (508) 647-7000, mathworks.com
National Instruments Corp., (888) 280-7645, ni.com
Tektronix Inc., (800) 833-9200, tek.com
Wolfram Research Inc., (800) WOLFRAM, wolfram.com