At the beginning of the fitting to mention as Fanuc controllers define variables in our macro. For Sinumerik been done to this by assigning specific values of R parameters, eg

`R10=25`

. In Fanucach proceed similarly, except that instead of the letter R, using, # ', eg `#10=25`

. More as a curiosity must be given to the fact that the number of our variable, we also present in the form of an arithmetic expression, included in square brackets, eg: N10 # 1 = 10 N15 # 2 = 1 N20 # [# 1 + # 2-8] = 5 // which in our case is equivalent to # 3 = 5

Variables can be set to zero, and the values in the range (-10 ^{47} -10 ^{-29)} ∪ (10 ^{-29,} 10 ^{47).} Values outside this range will trigger the alarm No. 111.

In the program, to specify the variables referenced in the following manner:

N10 # 2 = 10 # 5 = 100 N15 G90 G1 X # 2 F # 5 // equivalent to G90 G1 X10 F100 N20 G90 G1 X # 2 // equivalent to G90 G1 X-10 N25 G90 G1 Y [# 1 + # 5] // mandatory in square brackets. equivalent to G90 G1 Y110

When defining the values of the variables do not have to use commas, decimals, so important when programming Fanuc controllers, ie .:

N10 # 1 = 5 // definition of the variable, without the dot / comma decimal N15 G90 G1 X5. // Here the lack of dots for the X5. cause an error N20 G90 G2 X # 1 // even though the value was not dot, it will not cause the program error

Arithmetic and logic operations on variables that make a very simple

- the sum of
`#1+#2`

- difference
`#1-#2`

- product
`#1*#2`

- quotient
`#1/#2`

The values define the angle in degrees, which angle e.g.

90 degrees 30 minutes: # 1 = 90.5

- Sine
`SIN[#1]`

- cosine
`COS[#1]`

- tangent
`TAN[#1]`

- arctangent
`ATAN[#1]`

- square root
`SQRT[#1]`

- the absolute value
`ABS[#1]`

- rounding the
`ROUND[#1]`

- rounding down
`FIX[#!]`

- rounding up
`FUP[#1]`

- Boolean value OR
`#1 OR #2`

- XOR logical value
`#1 XOR #2`

- Boolean value AND
`#1 AND #2`

We can perform nesting operations and define their execution sequence using square brackets. We can nest up to 5 arithmetic functions, such as:

```
N10 # 1 = SIN [[[# 2 + # 3] * # 4 & # 5] * # 6]
```

## 1 comment

Widget says:

Sep 28, 2012

Regarding the decimal comma where the subject poruszyłeś, it is to your advantage to change the parameters that the machine read without a decimal number as mm, and not as micrometers. Unfortunately, I can not remember at the moment who is responsible for that parameter. But it is much more convenient to write programs without these unnecessary commas.