The Stack-DAQ range is a truly novel, low-cost range
of data acquisition and control units suitable for use
with any RS232 equipped PC.
There is a wide range of analogue and digital I/O, thermocouple,
pulse counter and motor control units which simply stack
end-to end on a single RS232 port: you need only use those
modules required for your task. And with the Stack-DAQ
Windows Software, ModCom, setting up complex data logging
and control applications could not be easier.
All Stack-DAQ modules incorporate two serial ports, the host port and
the slave port. The host should be connected to a PC's serial port. The
slave port can be left open, or connected to another module's host port.
Up to 32 modules can be chained together in this fashion to form a
network, either plugged together end to end, or separated by a cable.
Because a module contains two individual bi-directional ports which
pass data through, it also acts as a repeater, extending the total allowable
length of the RS-232 communications line.
Most Stack-DAQ IO modules have built-in features not normally found
in DAQ devices. The 8-channel analogue input module has two
software programmable alarm trip-points for each input channel and
auto calibration. The 4-channel analogue output module has automatic
generation of trapezoidal and S-curve slope profiles. The 4-channel
thermocouple input module accepts J, K, T or E thermocouple types
and has built-in linearisation using high-order polynomial equations
eliminating look-up table interpolation errors. The 14-channel digital
I/O module responds to button presses and switch transitions, decodes
4x4 matrix keypads as well as performing standard input/output functions:
there is also a Solid State Relay output version. The pulse counter
module can be configured to measure frequency, period, duty cycle
or RPM from a single or multiple toothed shaft/pickup devices. There
is even a Stepper Motor module with built-in S-curve acceleration and
deceleration slope profiles and software programmable ramp rate,
velocity, and idle current. It also has a 24-bit absolute motor position
counter and normally-open limit switch inputs.
By far, the most painless way to communicate with the Stack-DAQ
Modules is to use the Windows ModCom software, a GUI-based
HMI development tool designed specifically for the Stack-DAQ range.
The novice or non-programmer will appreciate the ease at which
eye-appealing display screens can be laid out very quickly, and the
ability to perform complex functions with a minimal user learning
curve. ModCom screen components include multiple screens,
text boxes, data windows, status indicators with changing colours,
event timers, push-buttons, rocker switches and sliders.
Collecting data and writing it to a file is a very important aspect of
any data acquisition software. With ModCom, any screen object
which is used to collect and view data can also be set up to send
that data to an Excel compatible text file automatically. This can
occur at a regular user selected time interval from seconds to
days, or be forced on command by any object within ModCom
which is capable of executing a function. And since the original
data is being captured by a screen object, it can be converted
to the appropriate units of measurement ahead of time using
the scaling and offset factors built-in to that screen object.
Conditional statements are used by ModCom to watch for certain
events or conditions during run-time and then act upon them by
executing a function. Such a condition may be the reception of
a specific data string from a Data Module, an Event Counter
which reaches a specific count value, an Event Timer indicating
the passage of a specific amount of time, a Data Window which
displays a reading beyond a specific set point, a Level Indicator
which shows a value above or below a certain tank level, a Signal
Lamp which turns on, or even a Text Window which displays a
certain message. Conditionals are very useful for reporting alarm
One of the more powerful features of ModCom is the ability to
build custom sequences for automation and control tasks. A
Sequence is a list of functions that will execute sequentially
during run-time when being called by other objects such as a
Push Button, a Conditional, or even another Sequence. And
because a Sequence can call another Sequence, this allows
the programmer to assemble groups of commonly used tasks
which can be used as subroutines of other complex Sequences.