What kinds of things can you accomplish with a PC DAQ board? Fundamentally, you've got analog input and output, digital input and output, and counter/timer functions to choose from. So, there is a small, well-defined list of basic categories.
Following this line of reasoning, ADLINK developed the DAQMaster configuration-based system manager software application and DAQPilot software driver and development kit that simplify user involvement with low-level DAQ hardware. The company describes the approach as task oriented and provides an intuitive wizard to help you set the necessary parameters.
To address real applications, each of the basic operations quickly can become more complicated. For example, should an analog output be continuous or only run for a certain time period? Is the output streamed from a data file you have created, or do you want to generate standard waveforms such as sine, triangle, or square? What is the frequency of the waveform and the associated sample rate? How many separate channels do you need?
Nevertheless, a total of 19 functions describes the types of possible actions. Depending on the DAQ board model you are using, the settings for your particular task can be specified with the help of the wizard. The 19 functions are configuration profiles modified by the parameters you supply. When you have completed filling in the various parameter setting boxes, the function you need has been defined.
Having specified the DAQ hardware operation, you're in a position to integrate the corresponding task file into whatever application development environment (ADE) you're using to create your overall DAQ program. Popular ADEs include Borland C++ Builder, Delphi, and National Instruments (NI) LabVIEW/LabVIEW CVI. DAQPilot supports APIs, ActiveX components, .NET Assembly components, LabVIEW Express VIs, and Polymorphic VIs.
Going for a Test Ride
I downloaded DAQMaster and DAQPilot from the ADLINK website onto my Windows PC. The two applications are free and don't require additional supporting software if you just want to become familiar with their operation.
DAQMaster has three sections: the software, device, and task managers. The software manager was the first part I tried, partly because the DAQPilot download didn't seem to be working correctly. I'm not an experienced software developer, so this initial problem was most likely caused by a simple error. In fact, a problem did show up in the software manager's report, which was resolved by reinstalling DAQPilot.
With the software manager, you can see exactly what version of each of the software modules has been installed. If a later version is available, the software manager will recommend that you install it. This feature is always up to date because the software manager downloads information from the ADLINK website when it's selected. Figure 1 shows a listing of the ADLINK modules installed on my PC.
The device manager deals with hardware and the drivers associated with particular boards. A device support matrix that lists board types, model numbers, form factors, and the appropriate Windows and Linux drivers is presented. Virtually all ADLINK boards are supported by DAQMaster and DAQPilot.
Information listed in the matrix is intended to help you select the best board for your application. By entering a board model number in the main function panel at the top of the screen, you can obtain product information in the form of a datasheet or download relevant drivers, associated software, and the operation manual.
DAQMaster presents a list of all the types of ADLINK boards organized in the form of a Windows Explorer tree. Above the tree are two symbols key to its operation. One shows three horizontal parallel lines meant to represent a collapsed tree. In the other symbol, the lower two lines are shorter than the top line and indicate an expanded tree.
Two more symbols further qualify the tree to represent all ADLINK devices or only those you have installed. By selecting All Devices, the tree lists each board model grouped by category. Left-clicking on any one causes the corresponding pin names and numbers to be displayed on a graphical representation of the board's connector(s).
In addition to working with actual hardware, you can select a virtual device that will mimic one of the 19 basic functions. Because of the way DAQPilot has been designed, regardless of the board model being used, its operation is covered by one of the 19 tasks. This means that you can develop your DAQ application and exercise it using a virtual device because the interface is the same as for a real board.
Right-clicking on Virtual Device allows you to select a test panel that can be configured to simulate your application. Categories supported include analog and digital input and output.
The third DAQMaster section, the task manager, incorporates DAQPilot, which presents a column showing 19 icons corresponding to the 19 functions. Right-clicking on one of them opens a list of actions from which you can add a new task; delete, modify, rename, or test the present task; and finally create C reference code for the task.
If you choose to modify the task, DAQPilot will display a succession of panels to guide you through the process of describing the modifications; selecting the appropriate DAQ hardware; and specifying the channel(s), type of waveform, and timing selections. These items change depending on the chosen function: There are different parameters to specify for a digital output than for an analog input.
DAQPilot will access the actual hardware if it's available. Otherwise, if you want to add a new task or modify the existing one, you should choose Virtual Device from the top of the Device list presented on the Select Device and Channel panel. After a few parameters have been provided or their default values accepted, you can start an instant test. Based on the values you have entered, a test panel shows a waveform representing a continuous analog output, for example.
AD-LOGGER, a new ADLINK turnkey configuration-based datalogging application, is a good example of how DAQPilot eliminates programming. The DAQPilot configuration wizard guides you through DAQ board setup. After configuring the recording options and graph settings, you can start acquiring and viewing data. AD-LOGGER supports both real-time and historical views of acquired data and can export to third-party applications such as Excel, NI DIADem, and The MathWorks' MATLAB.
Because I had previously installed LabVIEW 8.6, I decided to explore some of the ADLINK LabVIEW examples. Samples of Express VIs and Polymorphic VIs are provided.
I chose to look at the continuous analog output Polymorphic VI. When the VI is running, the block diagram is displayed as shown in Figure 2.
As you might expect, to generate an analog output you need to simulate an analog signal. This is easily done in LabVIEW through the Simulate Signal sub-VI, a standard Express VI. In Figure 3, the Simulate Signal Express sub-VI icon is shown in detail. Double-clicking on the block-diagram icon presents a configuration panel that includes phase, amplitude, frequency, type of waveform, and the capability to add white Gaussian noise. When parameters are not associated with front-panel indicators, the corresponding I/O pins do not appear in the expanded icon.
It's clear from the block diagram that the simulated signal is defined by the inputs to the icon, corresponding to the values displayed by the numeric indicators on the front-panel diagram. By double left-clicking the Simulate Signal icon, you can change the type of waveform. This could have been included as a user selection by adding an appropriate control to the front panel.
The Polymorphic sub-VIs are much more complex in their operation. Basically, a Polymorphic VI is an abstracted version of a VI that contains several instances of the basic function but involving different aspects. For example, the first of the six Polymorphic sub-VIs defines the category of the waveform operation. In this case, it's Analog Output, but other modes in which it also could operate include Analog Input, Digital Input, Digital Output, and Counter/Timer—the five basic categories into which DAQPilot divides all DAQ tasks.
The second Polymorphic sub-VI resamples the simulated signal, handshakes with a digital input, or simply accepts the simulated waveform. The third Polymorphic sub-VI, the one with a pencil in its icon, writes data to the front panel. It accepts analog, digital, or array inputs. The operation is further qualified by whether single or multiple channels are involved as well as single or multiple samples. Finally, the output can be a waveform or a data array.
The upper output from the first Polymorphic sub-VI is Task Out. In LabVIEW terminology, a task is a collection of related items that defines the overall function. So, in this case, the task includes the number of channels, the data itself, and the parameters selected as inputs to the various Polymorphic sub-VIs.
Because LabVIEW uses a state machine to control task execution, the last three Polymorphic sub-VIs are needed to provide the required information. They have more to do with the program execution than the actual function being performed. The first starts the task, and the second within the while loop checks whether the task is completed. It makes sense that the stop indicator would be associated with the status of this sub-VI. The last Polymorphic sub-VI outside the while loop is the Clear Task VI and drives the error handler.
Although there's a lot of detail within each Polymorphic sub-VI, a wide range of situations is covered. That's the benefit of Polymorphic VIs. Against that, Express VIs, like the Simulate Signal VI, are more straightforward but generally more limited in the combinations of things they will deal with.
When you open a new VI, you are presented with a blank front panel and a blank block diagram. Right-clicking on the block-diagram area brings up the function palette from which you can select Express VIs as well as any of 14 advanced ADLINK Polymorphic VIs. Six of these are the ones described in the Analog Output example.
DAQPilot only goes as far as creating the 19 functions but gives you a good starting point from which the rest of your overall application code can be developed. I delved into the LabVIEW samples because I had LabVIEW on my computer and was somewhat familiar with it. DAQPilot works in a similar way for any supported ADE.
If you're already using ADLINK DAQ boards, DAQMaster and DAQPilot can help you stop losing sleep over limits testing, error checking, data type conflicts, and other similar low-level worries common to DAQ software developers. If you're not using ADLINK DAQ boards, maybe these comprehensive software packages will convince you to try them. Board hardware represents only a small part of the cost to develop a DAQ application, so it makes sense to focus on reducing software development and maintenance costs, especially when the tools are free.