Section 7. Installation
379
Q
: What are the termination conditions that will stop incoming data from being
stored?
A
: Termination conditions:
•
TerminationChar
argument is received
•
MaxNumChars
argument is met
•
TimeOut
argument is exceeded
SerialIn()
does NOT stop storing when a Null character (&h00) is received
(unless a NULL character is specified as the termination character). As a string
variable, a NULL character received will terminate the string, but nevertheless
characters after a NULL character will continue to be received into the variable
space until one of the termination conditions is met. These characters can later
be accessed with
MoveBytes()
if necessary.
Q
: How can a variable populated by
SerialIn()
be used in more than one
sequence and still avoid using the variable in other sequences when it contains old
data?
A
: A simple caution is that the destination variable should not be used in more
than one sequence to avoid using the variable when it contains old data.
However, this is not always possible and the root problem can be handled more
elegantly.
When data arrives independent from execution of the CRBasic program, such as
occurs with streaming data, measures must be taken to ensure that the incoming
data are updated in time for subsequent processes using that data. When the task
of writing data is separate from the task of reading data, you should control the
flow of data with deliberate control features such as the use of flags or a
time-stamped weigh point as can be obtained from a data table.
There is nothing unique about
SerialIn()
with regard to understanding how to
correctly write to and read from global variables using multiple sequences.
SerialIn()
is writing into an array of characters. Many other instructions write
into an array of values (characters, floats, or longs), such as
Move()
,
MoveBytes()
,
GetVariables()
,
SerialInRecord()
,
SerialInBlock()
. In all cases,
when writing to an array of values, it is important to understand what you are
reading, if you are reading it asynchronously, in other words reading it from some
other task that is polling for the data at the same time as it is being written,
whether that other task is some other machine reading the data, like
LoggerNet
, or
a different sequence, or task, within the same machine. If the process is
relatively fast, like the
Move()
instruction, and an asynchronous process is
reading the data, this can be even worse because the “reading old data” will
happen less often but is more insidious because it is so rare.
7.7.19 String Operations
String operations are performed using CRBasic string functions.
Содержание CR6 Series
Страница 2: ......
Страница 4: ......
Страница 6: ......
Страница 32: ......
Страница 36: ......
Страница 38: ......
Страница 76: ...Section 5 Overview 76 FIGURE 20 Half Bridge Wiring Example Wind Vane Potentiometer ...
Страница 80: ...Section 5 Overview 80 FIGURE 23 Pulse Input Wiring Example Anemometer ...
Страница 136: ......
Страница 251: ...Section 7 Installation 251 FIGURE 46 Running Average Frequency Response FIGURE 47 Running Average Signal Attenuation ...
Страница 454: ...Section 8 Operation 454 FIGURE 104 Narrow Sweep High Noise ...
Страница 459: ...Section 8 Operation 459 FIGURE 106 Vibrating Wire Sensor Calibration Report ...
Страница 535: ...Section 8 Operation 535 8 11 2 Data Display FIGURE 121 CR1000KD Displaying Data ...
Страница 537: ...Section 8 Operation 537 FIGURE 123 CR1000KD Real Time Custom ...
Страница 538: ...Section 8 Operation 538 8 11 2 3 Final Storage Data FIGURE 124 CR1000KD Final Storage Data ...
Страница 539: ...Section 8 Operation 539 8 11 3 Run Stop Program FIGURE 125 CR1000KD Run Stop Program ...
Страница 541: ...Section 8 Operation 541 FIGURE 127 CR1000KD File Edit ...
Страница 542: ...Section 8 Operation 542 8 11 5 PCCard Memory Card Management FIGURE 128 CR1000KD PCCard Memory Card Management ...
Страница 546: ......
Страница 549: ...Section 9 Maintenance Details 549 FIGURE 133 Separate Back Shell from Module FIGURE 134 Disconnect Battery Connector ...
Страница 552: ......
Страница 610: ...Section 11 Glossary 610 FIGURE 137 Relationships of Accuracy Precision and Resolution ...
Страница 612: ......
Страница 648: ......
Страница 650: ......
Страница 688: ......
Страница 689: ......