beautypg.com

10 error codes – Campbell Scientific CR23X Micrologger User Manual

Page 63

background image

SECTION 3. INSTRUCTION SET BASICS

3-9

3.10 ERROR CODES

There are four types of errors flagged by the
CR23X: Compile, Run Time, Editor, and

D

Mode. Compile errors are errors in programming
which are detected once the program is entered
and compiled for the first time (

0

,

6

, or

B

Mode entered). If a programming error is

detected during compilation, an E is displayed with
the 2 digit error code. The Instruction Location
Number of the Instruction which caused the error
is displayed to the right of the error code (e.g., E23
105; 105 indicates that the fifth instruction in Table
1 caused error 23). Error 22, missing END, will
indicate the location of the instruction which the
compiler cannot match with an END instruction.

Run time errors are detected while the program
is running. The number of the instruction being
executed at the time the error is detected is
displayed to the right of the error code (e.g.,
E09 06 indicates that an Instruction 6 in the
program is attempting to store data in input
locations beyond those allocated). Run time
errors 9 and 31 are the result of programming
errors. While E08 will display the number of the
instruction that was being executed when the
error occurred, it is unlikely that the instruction
has anything to do with the error.

If there is a run time error in a table with a fast
execution interval, the error may be written to
the display so frequently that it seems the
CR23X is not responding to the keyboard.
Once the program is stopped, normal function
will return. To stop the program some entry
must be changed which requires recompiling
(Section 1.1.4). For example, enter 0 for the
execution interval of Table 1 (i.e., enter

1

A

0

A

as fast as possible). The

program can easily be stopped by pressing any
key while the CR23X is displaying “Hello” after
applying power (turn the CR23X off and then on
again). This delays program execution for
about two minutes, allowing the program to be
changed.

Error 8 is the result of a hardware and software
"watchdog" that checks the processor state,
software timers, and program related counters.
The watchdog will attempt to reset the
processor and program execution if it finds that
the processor has bombed or is neglecting
standard system updates, or if the counters are
out of allowable limits. Error code 08 is flagged
when the watchdog performs this reset. E08 is

occasionally caused by voltage surges or
transients. Frequent repetitions of E08 are
indicative of a dead lithium battery, a hardware
problem, or a software bug. Check the lithium
battery voltage (

B

). If the lithium battery

voltage is good (2.4 volts or higher), contact
Campbell Scientific for assistance as a
hardware or software bug is indicated. The
CR23X keeps track of the number of times (up
to 99) that E08 has occurred. The number can
be displayed and reset in the

B

Mode

(Section 1.6) or with the Telecommunications A
command (Section 5.1).

Error 10 is displayed if the primary power drops
below 11 volts. When this happens, the CR23X
stops executing programs. The low voltage
counter (

B

Window 9, Section 1.6) counts

the number of times the voltage drops below 11
volts and displays a double dash (--) if the
CR23X is currently in a low voltage shut down.
Low voltage shut down terminates when voltage
is raised above 11 volts.

Editor errors are detected as soon as an
incorrect value is entered and are displayed
immediately.

B

Mode errors indicate

problems with saving or loading a program.

TABLE 3.10-1. Error Codes

Code

Type

Description

03

Editor

Program table full

04

Compile

Intermediate Storage full

05

Compile

Storage Area #2 not
allocated

08

Run Time

CR23X reset by
watchdog timer

09

Run Time

Insufficient Input Storage

10

Run Time

Low battery voltage

11

Editor

Attempt to allocate more
Input or Intermediate
Storage than is available

12

Compile

Duplicate

4

ID

13

Run Time

Low 5 V supply

20

Compile

SUBROUTINE encountered
before END of previous
subroutine

21

Compile

END without IF, LOOP or
SUBROUTINE

22

Compile

Missing END

23

Compile

Nonexistent
SUBROUTINE

24

Compile

ELSE in SUBROUTINE
without IF