Section 10. Troubleshooting
10.5.4.4 SkippedRecord
SkippedRecord is normally incremented when a write-to-data-table event is
skipped, which usually occurs because a scan is skipped. SkippedRecord is not
incremented by all events that leave gaps in data, including cycling power to the
CR1000.
10.5.4.5 ProgErrors
Should be 0. If not, investigate.
10.5.4.6 MemoryFree
A number less than 4 kB is too small and may lead to memory-buffer related
errors.
10.5.4.7 VarOutOfBounds
Related Topics:
• Declaring Arrays (p. 135)
• Arrays of Multipliers and Offsets
• VarOutOfBounds
(p. 488)
When programming with variable arrays, care must be taken to match the array
size to the demands of the program. For example, if an operation attempts to
write to 16 elements in array ExArray(), but ExArray() was declared with 15
elements (for example, Public ExArray(15)), the VarOutOfBound runtime error
counter is incremented in the Status table each time the absence of a sixteenth
element is encountered.
The CR1000 attempts to catch VarOutOfBound errors at compile time (not to be
confused with the CRBasic Editor pre-compiler, which does not). When a
VarOutOfBound error is detected at compile time, the CR1000 attempts to
document which variable is out of bounds at the end of the CompileResults
message in the Status table. For example, the CR1000 may detect that
ExArray() is not large enough and write Warning:Variable ExArray out of
bounds to the CompileErrors register.
The CR1000 does not catch all out-of-bounds errors, so take care that all arrays
are sized as needed.
10.5.4.8 Watchdog Errors
Watchdog errors indicate the CR1000 has crashed and reset itself. A few
watchdogs indicate the CR1000 is working as designed and are not a concern.
Following are possible root causes sorted in order of most to least probable:
• Transient voltage
• Running the CRBasic program very fast
• Many PortSet() instructions back-to-back with no delay
• High-speed serial data on multiple ports with very large data packets or bursts
of data
488