For a start it would be fitting to mention how Fanuc controllers define variables in our macro. For Sinumerik been done to this by assigning parameters R-specific values, eg

`R10=25`

The Fanucach act similarly, except that the letter R, using, # ', eg `#10=25`

More as a curiosity must be given to the fact that a number of our variable we can present also in the form of an arithmetic expression, recognized in square brackets, for example: 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 of this range will trigger an alarm No. 111.

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

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

When defining variables do not have to use commas, decimals, so relevant programming guide for the Fanuc controllers, ie .:

N10 # 1 = 5 // definition of a variable without a point / comma Decimal N15 G90 G1 X5. // Here lack of periods 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 logical variables make 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]`

- the arc tangent
`ATAN[#1]`

- the square root
`SQRT[#1]`

- the absolute value
`ABS[#1]`

- rounding values
`ROUND[#1]`

- rounding down
`FIX[#!]`

- rounding up
`FUP[#1]`

- boolean OR
`#1 OR #2`

- boolean XOR
`#1 XOR #2`

- boolean AND
`#1 AND #2`

We can perform nesting operations and the sequence of their execution is defined by 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 which voice to a topic, it is to your advantage to change the parameters that the machine read the number without a decimal point as a mm, and not as micrometers. Unfortunately, I can not remember at the moment who is responsible for that parameter. But much more convenient to write programs without these unnecessary commas.