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 p>
M9
G91G28Z0. p>
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 p>
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