Programming The Datalogger; General Principles - Campbell SDM-IO16 User Manual

16 channel input/output expansion module
Table of Contents

Advertisement

SDM-IO16 16 Channel Input/Output Expansion Module

6. Programming the Datalogger

6.1 General Principles

8
For recent dataloggers, there is a specific program instruction that is used to
control operation of the SDM-IO16. The different variants of this command are
described in Sections 6.1 to 6.3 below. Older dataloggers can use different
commands to control the output functions only; if you have such a datalogger
please go to Section 6.5 now as the remainder of this section will not be relevant.
The general form of the command specific to the SDM-IO16 includes:
parameters to specify which module to address,
a command code to specify what the module is to do, and
a number of control parameters and pointers to input locations /variables
which can hold data (either read by the module or which are used to control
the outputs of the module).
The instruction differs from many others in that, rather than addressing a variable
number of ports (using a 'reps' parameter), ports are dealt with in blocks of 1, 4, 8
or 16 ports at a time. The specific port(s) and number to be controlled is implicit in
the command code used. This approach has been taken to improve the efficiency
of programming and also to reduce the amount of data transferred between the
module and datalogger via the SDM port.
The module can be reconfigured quite extensively from the controlling program to
allow for more demanding applications. In most cases, though, operation is quite
simple as on power-up the input/output ports of the SDM-IO16 default to input
mode, with no switch debounce filtering and measurement of frequency and duty-
cycle automatically starts for all ports.
For many input measurements, the controlling program in the datalogger can then
simply be written to ask the SDM-IO16 for measurements of status, duty-cycle or
frequency from any channel. The only constraint is that it must ask for duty-cycle
or frequency measurements more frequently than once every 15.9375 seconds (see
Appendix B).
Where one or more channels will be used for output, one call of the instruction can
be within the normal program structure to set those ports to either a fixed state, or
a state dependent upon a variable in an input location.
Where ports will be used as switch closure inputs, where a change of state of a port
will be used to toggle the I/O line (normally to generate an interrupt to the
datalogger) or where the port is to be used as a fixed output, then it would be usual
to include code that sends a command to the SDM-IO16 to configure the ports
before they are used. See the program examples in Appendix B.
The configuration of individual ports can also be changed during normal program
operation, if required.

Advertisement

Table of Contents
loading

Table of Contents