![Galil Motion Control RIO-47 series
RIO-47100 User Manual Download Page 69](http://html1.mh-extra.com/html/galil-motion-control/rio-47-series-rio-47100/rio-47-series-rio-47100_user-manual_558776069.webp)
:MG var;'
Print result
1120000.0000
:var= var/10;'
Divide by 10 to add in decimal
:MG var;'
Print correct result
112000.0000
:
Bit-Wise Operators
The mathematical operators & and | are bit-wise operators. The operator, &, is a Logical And. The
operator, |, is a Logical Or. These operators allow for bit-wise operations on any valid RIO numeric
operand, including variables, array elements, numeric values, functions, keywords, and arithmetic
expressions. The bit-wise operators may also be used with strings. This is useful for separating
characters from an input string. When using the input command for string input, the input variable
will hold up to 6 characters. These characters are combined into a single value, which is represented
as 32 bits of integer and 16 bits of fraction. Each ASCII character is represented as one byte (8 bits),
therefore the input variable can hold up to six characters. The first character of the string will be
placed in the top byte of the variable and the last character will be placed in the lowest significant
byte of the fraction. The characters can be individually separated, by using bit-wise operations as
illustrated in the following example:
Instruction
Interpretation
#TEST
Begin main program
IN "ENTER",LEN{S6}
Input character string of up to 6 characters into variable ‘LEN’
FLEN=@FRAC[LEN]
Define variable ‘FLEN’ as fractional part of variable ‘LEN’
FLEN=$10000*FLEN
Shift FLEN by 32 bits (IE - convert fraction, FLEN, to integer)
LEN1=(FLEN&$00FF)
Mask top byte of FLEN and set this value to variable ‘LEN1’
LEN2=(FLEN&$FF00)/$100
Let variable, ‘LEN2’ = top byte of FLEN
LEN3=LEN&$000000FF
Let variable, ‘LEN3’ = bottom byte of LEN
LEN4=(LEN&$0000FF00)/$100
Let variable, ‘LEN4’ = second byte of LEN
LEN5=(LEN&$00FF0000)/$10000
Let variable, ‘LEN5’ = third byte of LEN
LEN6=(LEN&$FF000000)/$1000000
Let variable, ‘LEN6’ = fourth byte of LEN
MG LEN6 {S4}
Display ‘LEN6’ as string message of up to 4 chars
MG LEN5 {S4}
Display ‘LEN5’ as string message of up to 4 chars
MG LEN4 {S4}
Display ‘LEN4’ as string message of up to 4 chars
MG LEN3 {S4}
Display ‘LEN3’ as string message of up to 4 chars
MG LEN2 {S4}
Display ‘LEN2’ as string message of up to 4 chars
MG LEN1 {S4}
Display ‘LEN1’ as string message of up to 4 chars
EN
This program will accept a string input of up to 6 characters, parse each character, and then display
each character. Notice also that the values used for masking are represented in hexadecimal (as
denoted by the preceding ‘$’). For more information, see the section on Sending Messages
(page
.
To illustrate further, if the user types in the string “TESTME” at the input prompt, the RIO will respond
with the following:
T
Response from command MG LEN6 {S4}
E
Response from command MG LEN5 {S4}
S
Response from command MG LEN4 {S4}
T
Response from command MG LEN3 {S4}
M
Response from command MG LEN2 {S4}
E
Response from command MG LEN1 {S4}
Chapter 5 Programming ▫ 69 RIO-47xxx Rev 1.0r