Table 11. logical expression examples – Campbell Scientific CR200/CR200X-series Dataloggers User Manual
Page 101

Section 9. Programming
The following commands and logical operators are used to construct logical
expressions.
CRBASIC EXAMPLE. Logical Expression Examples
p. 89
demonstrate some logical expressions.
•
IF
•
AND
•
OR
•
NOT
•
XOR
•
IIF
Table 11. Logical Expression Examples
If X >= 5 then Y = 0
Sets the variable Y to 0 if the expression "X >= 5" is true, i.e. if X is greater than or equal to 5. The CR200(X) evaluates
the expression (X >= 5) and registers in system memory a -1 if the expression is true, or a 0 if the expression is false.
If X >= 5 OR Z = 2 then Y = 0
Sets Y = 0 if either X >= 5 or Z = 2 is true.
If X >= 5 AND Z = 2 then Y = 0
Sets Y = 0 only if both X >= 5 and Z = 2 are true.
If 6 then Y = 0.
"If 6" is true since "6" (a non-zero number) is returned, so Y is set to 0 every time the statement is executed.
If 0 then Y = 0.
"If 0" is false since "0" is returned, so Y will never be set to 0 by this statement.
Z = (X > Y).
Z will equal -1 if X > Y, or Z will equal 0 if X <= Y.
The NOT operator simply complements every bit in the word. A Boolean can only be 0 or have all of its bits set to 1.
Complementing a Boolean will turn TRUE (all bits set) to FALSE (all bits complemented to 0). Since the CR200(X)
cannot declare a variable to be a Boolean data type, IIF is used to force the logical results to either 0 or -1.
Example Program
'(a AND b) = (26 AND 26) = (&b11010 AND &b11010) =
'&b11010. NOT (&b11010) yields &b00101.
'This is non-zero, so when converted to a
'BOOLEAN, it becomes TRUE.
Public a
Public b
Public is_true
Public not_is_true
Public not a and b
BeginProg
a = 26
b = a
Scan (1,Sec)
is_true = IIF(a AND b = 0,0,-1)
'This evaluates to TRUE.
not_is_true = IIF(NOT (is_true) = 0,0,-1) 'This evaluates to FALSE.
not_a_and_b = IIF(NOT (a AND b) = 0,0,-1) 'This evaluates to TRUE!
NextScan
EndProg
89