FANUC Series 16/18/160/180-Model C for Lathe Operator Manual

PROGRAMMING
16. CUSTOM MACRO
B–62754EN/01
288
S 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.)
S 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).
S 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

Leave a Reply

Your email address will not be published. Required fields are marked *