The Internal Channels
The dataTaker has a number of internal channels that are used to extend function of the logger. The internal channels include System Timers, System Variables, a Text channel, and calibration channels.
The dataTaker has four System Timers that can be used for a wide variety of applications. The System Timers are linked to the real time clock as follows
System Timer 1 increments every second, and has a default range of 60 seconds. This system timer is identified as channel 1ST, andprovides the second of the minute.
System Timer 2 increments every minute, and has a default range of 60 minutes. This system timer is identified as channel 2ST, and provides the minute of the hour.
System Timer 3 increments every hour, and has a default range of 24 hours. This system timer is identified as channel 3ST, and provides the hour of the day.
System Timer 4 increments every day (at midnight), and has a default range of 7 days. This system timer is identified as channel 4ST, and provides the day of the week as follows
0 = Sunday
The System Timers each count up through their respective ranges, and automatically reset to zero when their respective terminal count is reached. The System Timers increment as follows
System Timer 1 increments on the second of the real time clock
System Timer 2 increments on the minute of the real time clock
System Timer 3 increments on the hour of the real time clock
System Timer 4 increments at midnight of the real time clock
The System Timers are synchronised to the real time clock and will re-synchronise each time the real time clock is changed.
Using the System Timers
The System Timers can be included in schedule lists to return elapsed time, and can be used in Alarms to measure off periods of time.
The System Timers are specified in schedule lists and Alarms by the general format
n is the System Timer number
The reset channel option resets the System Timer to zero when read. This allows the elapsed time between successive readings to be returned, and can be used for example to measure the elapsed time between digital events, etc.
Using DeTransfer, the System Timers are used by the commands for example
which returns the value of System Timer 2 every 10 minutes.
will turn digital output channel 1 ON for the last 5 seconds of every minute (See Section III ñ Alarms for details of how the Alarm command works).
Using DeLogger, the System Timers can be included in programs in the Program Builder as follows
and can be included in Alarms as follows
Setting the Range of System Timers
The range of the system timers can be changed from the defaults to suit the particular needs of applications.
The system timer ranges are specified by including the new range as a channel option as follows
n is the System Timer number
If the value of the range specified is greater than 65535, then the range is set to 65535. If the value for the range is a decimal value, then this is truncated to an integer.
Using DeTransfer, the command for example
programs System Timer 2 is to count through the range of 0 to 119 minutes, then reset to zero.
DeLogger does not directly support setting of the System Timer ranges, however this can be done via the general purpose User channel in the Program Builder (requires DeLogger ver 4.2.16 or later).
Initialising the System Timers
The System Timers begin counting from zero when the dataTaker is initially powered up or RESET. However the System Timers can be set to an initial count as follows
n is the System Timer number
The initial count can a constant, a channel variable or an expression. If the value of the initial count is a decimal value, then the value is rounded to the nearest integer.
However if the value of the initial count is greater than 65535, then an ìE15-assignment errorî is returned and the System Timer is initialised to 99999.9 which is the universal dataTaker error value.
The System Timer begins counting from the initial count and 'rolls over' to zero when the range count is reached.
Using DeTransfer, System Timer initial count can be set by the commands for example
Whenever the initial count of the System Timer is set, the System Timer is read and the new count is returned. The return of the new count can be disabled by including the W or NR channel options in the counter as follows
Commands to set the initial count of System Timers should not be included in Triggered Schedules, since this will cause the System Timer to be set to the initial count each time the Schedule runs.
Note : After setting the initial count, the first increment of System Timers 2, 3 and 4, will occur at the next increment for the respective unit of time of the real time clock .
Therefore the first increment of the System Timer may occur after a period which is less than the full period for the respective unit of time.
System Timers are synchronised to the real time clock and will re-synchronise each time the real time clock is changed.
DeLogger does not directly support setting of the System Timer initial values, however this can be done via the general purpose User channel in the Program Builder (requires DeLogger ver 4.2.16 or later).
Applications for System Timers
The System Timers can be used for a number of ways, including to return the elapsed time between asynchronous events, can be used in Alarms to measure off periods of time, etc.
Using DeTransfer, the program for example
will return the elapsed time in minutes between events received on digital input channel 1. A large range is chosen, and the System Timer is reset to zero when it is read.
System Timer 1 is synchronised with the real time clock, and counts over the range of 0 ñ 59 seconds. The timer is used as the input to an alarm command, which toggles a relay connected to digital output 1 ON when the count exceeds 50 seconds. When the count reaches 59 seconds the system timer automatically resets to zero, and the alarm toggles the relay OFF.
This scenario could be used for instance to turn a pump on for 10 seconds before the end of every minute.
The dataTaker has a user definable Text Channel into which a text string can be stored, and later returned with real time or logged data.
This text string could be the project name, the operators name, site details, column headings for tabulated data, initialisation strings for printers and modems, etc. The Text Channel is implemented and used in the same manner as any other input channel, and is identified as channel $.
Using DeTransfer, a text string is entered into the Text Channel by direct assignment, for example
$="A text string of 1 to 80 characters"
The text string can contain any of the ASCII character set, including control characters. The ASCII control characters are entered in the format
^H for CTRL H (Backspace)
and occupy one character position although two ASCII characters are required for their definition.
An example of control characters in a text string follows
This string defines a heading for tabulating data, and uses tab characters to align the columns.
All characters received between the opening and closing quotes are entered into the text string. The Text Channel may be re-defined at any time, however any previous definition is lost.
The Text Channel is treated as any other input channel, and may be included in schedule lists for return to the computer, and flagged in the data storage memory for return with logged data.
Once defined, the Text Channel is returned with channel data at regular intervals by including the text channel in a Triggered Schedule as follows
$="Boiler Temperatures at^M^J"
In this case the Text Channel is returned as the first line of data resulting from each scan.
Whenever data from a Schedule that has the Text Channel in it is stored in the data memory, then redefining the text string has important implications
whenever the text string is logged, a text flag is written into the data memory rather than the text string per se
when the data memory is later unloaded to the computer, the text string currently defined in the Text Channel is returned whenever the text flag occurs in the store
if a new text string is assigned to the Text Channel during the course of a data logging application, then the previous text string is lost and the new text string is returned for all occurrences of the text flag in the data memory
The current definition of the Text Channel is also stored into the memory card if used. The text string is available for inclusion in data which is subsequently read from the memory card, either by another dataTaker or the dataTaker MCI-04 Memory Card Interface.
If however the Text Channel is changed during the course of a data logging application, then the new string is also written to the memory card and the previous string is lost.
The dataTaker has a number of special channels which provide access to various system variables. The System Variables are used in the same manner as normal input channels, except that the data returned is from internal sources rather than from input channels.
The System Variables can be included in Schedules to return system information at intervals. The System Variables can also be used in Alarms to provide warnings of internal conditions such as data memory capacity, etc.
The allocation of internal information to the System Variables is as follows
1SV Data points free in internal data memory
The system variables are returned by the command format
n is the System Variable number 1 ñ 14
Using System Variables in Schedules
When System Variables are included in Schedules, the current contents of the System Variables are returned each time that the Schedule is run.
Using DeTransfer, the programs for example
returns the number of data points free in the internal memory, and the number of data points stored in the internal memory, along with other channel data every 10 minutes.
returns the number of times that the Statistical Sub Schedule has run, along with the average data every 15 minutes.
returns the identity of the Schedule which produced the data as the first item in each data block.
Similar programs can be created in the Program Builder of DeLogger, using the Add Channels:System Variables path to select the System Variables required.
Using System Variables in Alarms
System Variables can also be used as the input channel to Alarms. One application for this function is to indicate if the internal data memory or a memory card is becoming full, or the memory card has been removed.
Using DeTransfer, the alarm for example
will monitor the number of data points stored in the memory card, and will Halt scanning and turn the warning LED 1 of the display panel on when more than 340,000 data points have been stored.
Changing System Variables
System Variables 6, 7 and 8 can also be assigned values, which has the effect of setting the appropriate Parameter (see table above). The legal assignments for each Parameter are detailed in Section III ñ Parameter Commands.
The assignment can be either as a constant, Channel Variable or an expression.
Using DeTransfer, assignments can be made for example
which sets the mains frequency to 100 Hz (Parameter11), thereby reducing the analog to digital conversion period to 10 mS.
Unlike the Parameter commands, assignments to System Variables 6, 7 and 8 can be included in schedule lists and so can be changed whenever Schedules run.
For example the program
changes the ADC settling time during each scan as follows
the first group of voltages are read following a 20mS delay after selecting each channel
the second group of voltages are read following a 5mS delay after selecting each channel
Internal Analog Channels
The dataTaker and the Channel Expansion Module have a number of internal analog channels that are used for calibration of the analog to digital converter, and for sensor support.
The internal channels in the dataTaker are as follows
1%LM35 ñ Case temperature
2%V ñ Internal zero voltage
2%R ñ Internal precision resistance
0%V(M18:156,101) ñ Battery voltage
0%I(M18:220,-0.22) ñ Battery current
The internal channels in the Channel Expansion Modules are as follows
n:1%LM35 ñ Case temperature for CEM n
n:2%V ñ Internal zero voltage for CEM n
These internal analog channels can be scanned at any time by including the appropriate channels in a schedule list.
Using DeTransfer, the case temperature of the logger can be read along with other channels by the program for example
In this instance, monitoring the case temperature of the logger also monitors the reference temperature for the thermocouples being measured, which may be useful as a check.
DeLogger also supports the internal channels, so that these can be included in programs in the Program Builder.