
16.CUSTOM MACRO PROGRAMMING B-63944EN/02
- 418 -
Example:
When an attempt is made to assign the following values to variables #1
and #2:
#1=9876543210123.456
#2=9876543277777.777
the values of the variables become:
#1=9876543200000.000
#2=9876543300000.000
In this case, when #3=#2-#1; is calculated, #3=100000.000 results. (The
actual result of this calculation is slightly different because it is performed
in binary.)
• Also be aware of errors that can result from conditional
expressions using EQ, NE, GE, GT, LE, and LT.
Example:
IF[#1 EQ #2] is effected by errors in both #1 and #2, possibly resulting in
an incorrect decision.
Therefore, instead find the difference between the two variables with
IF[ABS[#1-#2]LT0.001].
Then, assume that the values of the two variables are equal when the
difference does not exceed an allowable limit (0.001 in this case).
• Also, be careful when rounding down a value.
Example:
When #2=#1*1000; is calculated where #1=0.002;, the resulting value of
variable #2 is not exactly 2 but 1.99999997.
Here, when #3=FIX[#2]; is specified, the resulting value of variable #3 is
not 2.0 but 1.0.
In this case, round down the value after correcting the error so that the
result is greater than the expected number, or round it off as follows:
#3=FIX[#2+0.001]
#3=ROUND[#2]
- Brackets
Brackets ([, ]) are used to enclose an expression.
Note that parentheses are used for comments.
- Divisor
When a divisor of zero is specified in a division, an alarm PS0112
occurs.