Campbell Scientific CR800 and CR850 Measurement and Control Systems User Manual
Page 138

Section 7. Installation
138
semaphore before measurements in a calibration or slow-sequence scan. The
semaphore is taken by the main scan at its beginning if there are measurements
included in the scan. The semaphore is released only after the last instruction in
the main scan is executed.
Slow-Sequence Scans
Slow-sequence scans begin after a SlowSequence instruction. They start
processing tasks prior to a measurement but stop to wait when a measurement
semaphore is needed. Slow sequences release the semaphore
(p. 442)
after complete
execution of each measurement instruction to allow the main scan to acquire the
semaphore when it needs to start. If the measurement semaphore is set by a slow-
sequence scan and the beginning of a main scan gets to the top of the queue, the
main scan will not start until it can get the semaphore; it waits for the slow
sequence to release the semaphore. A slow-sequence scan does not hold the
semaphore for the whole of its scan. It releases the semaphore after each use of
the hardware.
WaitDigTrig Scans
Read More! See Synchronizing Measurements
(p. 310).
Main scans and slow sequences usually trigger at intervals defined by the Scan()
instruction. Some applications, however, require the main- or slow-sequence scan
to be started by an external digital trigger such as a 5-Vdc pulse on a control port.
The WaitDigTrig() instruction activates a program when an external trigger is
detected. WaitDigTrig() gives priority to begin a scan, but the scan will execute
and acquire the semaphore
(p. 442)
according to the rules stated in Main Scans
(p. 137)
and Slow-Sequence Scans
(p. 138).
Any processing will be time sliced with
processing from other sequences. Every time the program encounters
WaitDigTrig(), it will stop and wait to be triggered.
Note WaitDigTrig() allows one CR800 to exert control over another CR800.