Section 7. Installation
366
protocol to translate since the encode and translation are identical.
Normally, the CR6 is programmed to parse (split) the string and place
values in variables.
Example string from humidity, temperature, and pressure sensor:
SerialInString
= "RH= 60.5 %RH T= 23.7 °C Tdf= 15.6 °C Td= 15.6
°C a= 13.0 g/m3 x= 11.1 g/kg Tw= 18.5 °C H2O= 17889
ppmV pw=17.81 hPa pws 29.43 hPa h= 52.3 kJ/kg dT= 8.1 °C"
•
Hex Pairs
— Bytes are translated to hex pairs, consisting of digits 0 to 9
and letters a to f. Each pair describes a hexadecimal ASCII / ANSI code.
Some codes translate to alpha-numeric values, others to symbols or
non-printable control characters.
Example sting from temperature sensor:
SerialInString
= "23 30 31 38 34 0D"
which translates to
#01 84 cr
•
Binary
— Bytes are processed on a bit-by-bit basis. Character 0 (Null,
&b00) is a valid part of binary data streams. However, the CR6 uses
Null terminated strings, so anytime a Null is received, a string is
terminated. The termination is usually premature when reading binary
data. To remedy this problem, use
SerialInBlock()
or
SerialInRecord()
when reading binary data. The input string variable
must be an array set
As Long
data type, for example:
Dim
SerialInString
As Long
7.7.18.5.5 Serial I/O Memory Considerations
Several points regarding memory should be considered when receiving and
processing serial data.
•
Serial buffer:
The serial port buffer, which is declared in
SerialOpen()
,
must be large enough to hold all data a device will send. The buffer
holds the data for subsequent transfer to variables. Allocate extra
memory to the buffer when needed, but recognize that memory added to
the buffer reduces
final-data memory
(p. 583).
Note
Concerning
SerialInRecord()
running in pipeline mode with
NBytes
(number of bytes) parameter = 0:
For the digital measurement sequence to know how much room to allocate
in
Scan()
buffers
(default of 3),
SerialInRecord()
allocates the buffer size
specified by
SerialOpen()
(default 10,000, an overkill), or default 3 •
10,000 = 30 kB of buffer space. So, while making sure enough bytes are
allocated in
SerialOpen()
(the number of bytes per record •
((records/Scan)+1) + at least one extra byte), there is reason not to make
the buffer size too large. (Note that if the
NumberOfBytes
parameter is
Summary of Contents for CR6 Series
Page 2: ......
Page 4: ......
Page 6: ......
Page 32: ......
Page 36: ......
Page 38: ......
Page 76: ...Section 5 Overview 76 FIGURE 20 Half Bridge Wiring Example Wind Vane Potentiometer ...
Page 80: ...Section 5 Overview 80 FIGURE 23 Pulse Input Wiring Example Anemometer ...
Page 136: ......
Page 454: ...Section 8 Operation 454 FIGURE 104 Narrow Sweep High Noise ...
Page 459: ...Section 8 Operation 459 FIGURE 106 Vibrating Wire Sensor Calibration Report ...
Page 535: ...Section 8 Operation 535 8 11 2 Data Display FIGURE 121 CR1000KD Displaying Data ...
Page 537: ...Section 8 Operation 537 FIGURE 123 CR1000KD Real Time Custom ...
Page 538: ...Section 8 Operation 538 8 11 2 3 Final Storage Data FIGURE 124 CR1000KD Final Storage Data ...
Page 539: ...Section 8 Operation 539 8 11 3 Run Stop Program FIGURE 125 CR1000KD Run Stop Program ...
Page 541: ...Section 8 Operation 541 FIGURE 127 CR1000KD File Edit ...
Page 546: ......
Page 552: ......
Page 610: ...Section 11 Glossary 610 FIGURE 137 Relationships of Accuracy Precision and Resolution ...
Page 612: ......
Page 648: ......
Page 650: ......
Page 688: ......
Page 689: ......