TechTip: Choosing a Software Environment for Data Acquisition
To highlight the different Software options available for data acquisition (DAQ) applications, and outline the Measurement Computing Corporation (MCC) support for these options.
Those new to data acquisition, new to MCC data acquisition products, or who have not decided which software solution is best for their situation.
Data acquisition software is available in three basic categories:
- Ready-to-run, pre-configured applications
- General-purpose programming environments
- Application-specific programming environments
Ready-to-run, pre-configured applications are the simplest to use since they don’t require programming or special skills to sample data. These applications are designed to easily perform common tasks, such as configuring devices and channels, and logging and displaying data.
Although easy to use, the downside of these ready-to-run applications is that they cannot handle more complex tasks. If your needs outgrow the capabilities of the application, choose another application that supports your needs, or move into a programming environment.
MCC ready-to-run applications include TracerDAQ, TracerDAQ Pro, DAQami, and InstaCal.
TracerDAQ and TracerDAQ Pro
A set of virtual instrument applications used to generate, acquire, analyze, display, and export data. Includes a strip chart, oscilloscope, function generator, and rate generator. The Pro version provides enhanced features.
Drag-and-drop software interface used to acquire, view, and log data. DAQami can be configured to log analog channels and to view that data in real-time or post-acquisition on user-configurable displays.
An interactive utility that configures MCC hardware, and for supported devices, performs calibration tasks. InstaCal provides the fastest way to confirm that valid signals can be acquired. InstaCal can read and write analog and digital signals in order to test the device functionality and to confirm sensor connections and sensor integrity.
General-Purpose Programming Environments
Programming environments such as Python, C/C++®, C#®, Visual Basic®, and Java™ are general-purpose, text-based languages. These are the most flexible and lowest cost programming options, but are also the most challenging and time-consuming to learn. Those who have previous programming knowledge are more likely to have success in these languages than those who have no programming experience.
MCC offers numerous options for low-level programmers for any programming environment and any operating system, such as the Universal Library (UL), UL for Android™, UL for Linux®, and the DASYLab® Python® script module.
Programming library of function calls for C, C++, VB, C# .Net, and VB .Net using Visual Studio and other IDEs. The UL includes a driver with a common Application Programming Interface (API) for most MCC data acquisition boards and devices.
UL for Linux
Open-source Linux support for the most popular MCC devices with interfaces for C and Python and support for Linux or macOS®. UL for Linux is easy-to-use and is supported and maintained by MCC.
Python is a powerful object-oriented programming language. Many MCC products – including most USB, Ethernet™, and Bluetooth® hardware – are supported under the open-source MCC Universal Library Python API for Windows. Linux support is available as part of the MCC Universal Library for Linux package.
DASYLab® Python Script Module
Python script is supported in the DASYLab Full and Pro editions, and allows users to create custom modules with Python script. This feature brings DASYLab DAQ and analysis features to those who prefer to program in a text-based language.
UL for Android™
Programming library of function calls for Java programmers who develop apps for Android-based tablets and phones. UL for Android communicates with select MCC DAQ devices.
Application-Specific Programming Environments
Application-specific programming environments are single-vendor solutions that target particular segments. Popular icon-based programming applications in this category include NI LabVIEW™ and DASYLab. These environments focus on test, measurement, and control functions, and provide a rich environment for test and measurement applications. The Mathworks’ MATLAB® focuses on technical computing and modeling and provides a popular scripting environment for acquiring data from a device and analyzing this data.
Application-specific programs are easier to learn than general-purpose programming environments like C, and are a great choice for those that aren’t trained programmers.
The downside of a high-level programming environment is the relatively high cost to purchase. Both MATLAB and NI LabVIEW cost over $2,000 for a single license, while DASYLab is a less expensive option starting at $495.
Another item to consider is the limited number of programmers relative to general-purpose environments. There are far more C programmers than NI LabVIEW, DASYLab, or MATLAB programmers. This is an important consideration if you need to maintain an application over a long period.
MCC offers drivers for NI LabVIEW (ULx for NI LabVIEW) and DASYLab. Drivers for MATLAB are available for many MCC devices on The MathWorks website.
ULx for NI LabVIEW™
A comprehensive library of VIs and example programs for NI LabVIEW that is used to develop custom applications that interact with most MCC devices.
Icon-based data acquisition, graphics, control, and analysis software that allows users to create complex applications in minimal time without text-based programming.
High-level language and interactive environment for numerical computation, visualization, and programming. The Data Acquisition Toolbox™, provided by The Mathworks, allows users to acquire data from most MCC PCI and USB devices.
General-Purpose and Application-Specific Programming Comparison
|C, C++, C#, VB, Java
| Ease of DAQ
|Programming Community Size
|Built-in DAQ Support
|MCC Technical Support
Please reach out to our support team on the Digilent Forum if you have any questions: https://forum.digilent.com/
Additional TechTips are available here in Digilent Reference: App Notes, Tech Tips, and Other Documents