 # Fanuc Macro Programming Training Series [ Part 5 Arithmetic Functions / Control Commands ]

The power of the Custom Macro language lies in the use of a variety of arithmetic functions within the custom macro body. This features gives the user the power to re-define and re-calculate the values of variables “on the fly.” This post is meant as a brief explanation and overall view of some of these functions available with a more in-depth view given in following posts in this series.

Types of Commands Available

Definition and Substitution
( #100 = #101 )

( #100 = #101 + #102 )
( #100 = #101 – #102 )

Multiplication and Division
( #100 = #101 * #102 )
( #100 = #101 / #102 )

Logical Sum — Exclusive OR — Logical Product
(  #100 = #101 OR  #102 )
(  #100 = #101 XOR  #102 )
(  #100 = #101 AND  #102 )

Trigonometric Functions
( #100 = SIN(#101)) —– Sine
( #100 = COS(#101)) —– Cosine
( #100 = TAN(#101)) —– Tangent
( #100 = ATAN(#101)) —– Arc Tangent
( #100 = ASIN(#101)) —– Arc Sine
( #100 = ACOS(#101)) —– Arc Cosine

Other Mathematical Functions
( #100 = SQRT(#101)) —– Square Root
( #100 = ABS(#101)) —– Absolute Value
( #100 = BIN(#101)) —– Conversion from BCD to BIN
( #100 = BCD(#101)) —– Conversion from BIN to BCD
( #100 = ROUND(#101)) —– Rounding Off
( #100 = FIX(#101)) —– Discard fractions less than 1
( #100 = FUP(#101)) —– Add 1 for fractions less than 1
( #100 = LN(#101)) —– Natural Logarithm
( #100 = EXP(#101)) —– Exponent with base

Another powerful feature of the Custom Macro language is the ability for the user to control the flow of the programs execution. Using a variety of what is called CONTROL COMMANDS, the user can repeat areas, jump to areas and set conditions for program execution.Again, presented here is a brief explanation and overall view of some of these functions available with a more in-depth view given in following posts in this series.

Types of Control Commands Available

DIVERGENCE
IF < condition> GOTO N—-

When the <condition> is satisfied, the program execution jumps
to sequence number N—-.
Example : IF [#100 = #102] GOTO N100

CONDITIONAL EXPRESSIONS EXPLAINED
The following are expressions that can be used to define conditional expressions :
EQ = equal to
NE = not equal to
GT = greater than
LT = less than
GE = greater than or equal to
LE = less than or equal to

ITERATION
WHILE < condition> DO <number>
……
END <number>

While the <condition> is satisfied, the program executes blocks between the WHILE statement and the END statement.

Example :
WHILE [#100 LT #102] DO 1
( program commands )
( program commands )
( program commands )
#100 = #100 + 1 ( add 1 to #100 at the end of each body run )
END 1

BRANCH COMMAND
GOTO N—-

Program execution jumps to sequence number N—-
Example : GOTO N101

—————————-

Being well versed in the information from this post will be a big help as we go forward with some macro programming examples in future posts.

The fun is just beginning … Stay Tuned !!

Kenney Skonieczny – President
Kentech Inc.
www.KentechInc.com 