FANUC Series 16/18/160/180-Model C Machining Center Operators Manual

PROGRAMMING
B–62764EN/01
16. CUSTOM MACRO
385
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], P/S alarm
No. 112 occurs.
D Divisor

Leave a Reply

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