
B–61404E/08
16. CUSTOM MACRO BPROGRAMMING
311
D The precision of variable values is about 8 decimal digits. When very
large numbers are handled in an addition or subtraction, the expected
results may not be obtained.
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.)
D 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).
D 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 #1 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]
When a divisor of zero is specified in a division or TAN[90], alarm No.
112 occurs.
D Divisor