Red de conocimiento informático - Aprendizaje de código fuente - Programa macro CNC morl selkl (Haas) fnuc (Frank)

Programa macro CNC morl selkl (Haas) fnuc (Frank)

Programación de macros del sistema FANUC

Programación de macros del sistema FANUC

Una variable

Los programas de mecanizado ordinarios utilizan directamente valores numéricos para especificar G códigos y distancia de movimiento; por ejemplo, GO1 y X100.0. Cuando se utiliza un programa de macro de usuario, el valor se puede especificar directamente o mediante una variable. Cuando se utilizan variables, el valor de la variable se puede cambiar mediante programación o mediante operaciones en el panel MDI.

#1=#2+100

G01 X#1 F300

Descripción:

Representación de variables

La computadora permite el uso de nombres de variables, pero los programas de macros de usuario no. Las variables se especifican utilizando el símbolo de variable (#) seguido del número de variable.

Por ejemplo: #1

Las expresiones se pueden utilizar para especificar números de variables. En este caso, la expresión debe estar entre paréntesis.

Por ejemplo: #[#1+#2-12]

Tipos de variables

Las variables se pueden dividir en cuatro tipos según el número de variable

Número de variable

Tipo de variable

Función

#0

Variable vacía

Esta variable siempre está vacía, no se puede asignar ningún valor a la variable.

#1-#33

Variables locales

Las variables locales solo se pueden usar para almacene datos en programas macro, por ejemplo, el resultado de la operación Cuando se apaga la alimentación, las variables locales se inicializan para vaciar. Cuando se llama al programa macro, las variables independientes asignan valores a las variables locales. >

#100-#199

#500 -#999

Variables públicas***

Las variables públicas*** tienen el mismo significado en diferentes programas macro cuando se apaga la alimentación, las variables #100-#199 se inicializan en Vacío. Los datos de las variables #500-#999 se guardan y no se perderán incluso si se apaga la alimentación.

#1000

Variables del sistema

Las variables del sistema se utilizan para leer y escribir cambios en diversos datos cuando el CNC está en ejecución, como la posición actual y el valor de compensación de la herramienta.

Rango de valores de las variables

Las variables locales y las variables públicas pueden tener un valor de 0 o un valor en el siguiente rango:

-1047 a -10- 29 o -10-2 a -1047

Si el resultado del cálculo excede el rango válido, se emite una alarma P/S NO .111.

Omisión del punto decimal

Al definir valores de variables en un programa, se puede omitir el punto decimal.

Ejemplo: Cuando la definición #1=123; el valor real de la variable #1 es 123.000.

Referencia de variable

Para utilizar el valor de la variable en el programa, especifique la dirección seguida del número de la variable. Al especificar una variable con una expresión, incluya la expresión entre paréntesis.

Por ejemplo: G01X[#1+#2]F#3;

El valor de la variable referenciada se redondea automáticamente según la unidad mínima de configuración de la dirección.

Por ejemplo:

Cuando G00X#/; se ejecuta en unidades de 1/1000 mm, el CNC asigna 123456 a la variable #1 y el valor del comando real es G00X12346.

Para cambiar el signo del valor de la variable de referencia, coloque el signo negativo (-) delante de #.

Por ejemplo: G00X-#1

Cuando se hace referencia a una variable no definida, se ignoran la variable y la dirección.

Por ejemplo: cuando el valor de la variable #1 es 0 y el valor de la variable #2 está vacío, el resultado de la ejecución de G00X#1 Y#2 es G00X0.

Variables públicas para trayectorias duales (control de trayectoria dual)

Para el control de trayectoria dual, el sistema proporciona macrovariables separadas para cada trayectoria, sin embargo, de acuerdo con la configuración del parámetro N0 .6036 y 6037. , algunas variables comunes se pueden utilizar para dos trayectorias al mismo tiempo.

Variable no definida

Cuando el valor de la variable no está definido, dicha variable se convierte en una variable vacía. La variable #0 es siempre una variable vacía. No se puede escribir, sólo leer.

Referencias

Cuando se hace referencia a una variable no definida, se ignora la dirección en sí.

Cuando #1=

Cuando #1=0

G90 X100 Y#1

G90 X100

G90 X100 Y#1

G90

Cuando #1=

Cuando #1=0

#2=#1

#2=

#2=#1

#2=0

#2=#*5

#2=0

# 2=#*5

#2=0

#2=#1+#1

#2=0

# 2=#1+#1

#2=0

(c) Expresión condicional

Diferente de 0 en EQ y NE.

Cuando #1=

Cuando #1=0

#1EQ#0 está establecido

#1EQ#0 no está establecido

#1 NE #0 está establecido

#1 NE #0 no está establecido

#1 GE #0 está establecido

#1 GE #0 No es cierto

#1 GT #0 No es cierto

#1 GT #0 No es cierto

Restricciones

El número de programa, el número de secuencia y las variables opcionales no se pueden utilizar para los números de salto de segmento de programa.

Ejemplo: Las variables no se pueden utilizar en las siguientes situaciones:

0#1;

/#2G00X100.0;

N #3Y200. 0;

Dos operaciones aritméticas y lógicas

Las operaciones enumeradas en la siguiente tabla se pueden realizar con variables. La expresión del lado derecho del operador puede contener constantes y variables o variables compuestas de funciones u operadores. A las variables #j y #k en las expresiones se les pueden asignar valores constantes. A la variable de la izquierda también se le puede asignar una expresión.

Descripción:

Unidad de ángulo

La unidad de ángulo de las funciones SIN, COS, ASIN, ACOS, TAN y ATAN son grados. Por ejemplo, 90°30’ se expresa como 90,5 grados.

ARCSIN # i= ASIN[#j]

(1) El rango de valores es el siguiente:

Cuando el parámetro (NO.6004#0) El bit NAT está establecido cuando es 0, 270°~90°

Cuando el parámetro (NO.6004#0) el bit NAT está establecido en 1, -90°~90°

(2) Cuando # Cuando j excede el rango de -1 a 1, se emite la alarma P/S NO.111.

(3) Variable reemplazable constante #j

ARCCOS #i=ACOS[#j ] El rango de valores es de 180° a 0° Cuando #j excede el rango de -1 a 1, se emite la alarma P/S NO.111. Las constantes pueden reemplazar las variables #j

Tres ejemplos de programas

Elipse de fresado:

Trayectoria:

El código del programa de elipse es el siguiente:

N10 G54 G90 G0 S1500 M03

N12 X0 Y0 Z20.

N14 G0 Z1

N16 G1 Z-5.

N18 G41. D1

N20 #1=0

N22 #2=34

N24 #3=24

N26 #4=#2 *COS[#1]

N28 #5=#3*SIN[#1]

N30 #10=#4*COS[45]-#5*SIN[45 ]

N32 #11=# 4*SIN[45]+#5*COS[45]

N34 G1 X#10 Y#11

N36 #1=#1+1

N38 SI [#1 LT 370] GOTO26

N40 G40 G1 X0 Y0

N42 G0 Z100

N44 M30

Fresado de ranura rectangular:

El código para fresar ranura rectangular es el siguiente:

#102=0.

N3#100=0.

#101= 0.

#103=200.

#104=400.

G91G28Z0.

G0G90G54X0.Y0.

G43H1Z20.

M3S2000.

N4G0X#100Y#101

G01Z#102F200.

#102=#102- 2.

IF[#102EQ-50.]GOTO1

GOTO2

N2

N4X#104F500.

Y#103

X#100

Y#101

# 100=#1010.

#101= #101+10.

#103=#103-10.

#104=#104- 10.

SI[#100EQ100.]GOTO3

GOTO4

N3

N1

M5

M9

G91G28Z0.

G28Y0.

M30

Fresado de una superficie inclinada 3 grados:

Pista:

Fresado de una superficie inclinada a 3 grados El código anterior es el siguiente:

O0001

#[#1+1*2 ]=1

G65P9012L1A0B0.1C4I100J3K0

M30

El código del programa macro O9012 es el siguiente:

G54 G90 G00 X[ #3] Y0 Z100

S500 M3

G01 Z0 F300

p>

WHILE[#1LE10]DO1

#7= # 1/TAN[#5]+#3

G1

Z-#1 X#7

#8=#6/2-ROUND[#6/2]

IF[#8EQ0]GOTO10

G1Y0

GOTO20

N10 Y#4

N20#1=#1+#2

#6=#6+1

END1

G0

Z100

Hemisferio de fresado:

Pista:

Fresado El código del hemisferio es el siguiente:

G90G0G54X-10.Y0M3S4500

G43Z50.H1M8

#1=0.5

WHILE[# 1LE50.] DO1

#2=50.-#1

#3=SQRT[2500.-[#2*#2]]

G1Z -#1F20

X-#3F500

G2I#3

#1=#1+0.5

END1

G0Z50.M5

M30

Bocina de fresado:

El código de la bocina de fresado es el siguiente:

M03 S500

M06 T01

#1=0

#2=0

G0 Z15

X150 Y0

N11

#2=30*SIN[#1]

#3=330*[1-COS[#1]]

G01 Z-# 2 F40

G41 X#3 D01

G03 I-#3

G40 G01 X150 Y0

#1=#1+ 1

SI [#1 LE 90] IR A 11

G0 Z30

M30