¿Cómo programar macros de torno CNC?
Programa de macro
Todo el mundo pregunta sobre el programa de macro ~ De hecho, la macro consiste en utilizar fórmulas para procesar partes, como elipses. Si no hay macro, tenemos que calcularla. punto por punto en la curva, y luego aproximarlos lentamente con líneas rectas. Si se trata de una pieza de trabajo con altos requisitos de suavidad, entonces es necesario calcular muchos puntos. Sin embargo, después de aplicar la macro, ingresamos la fórmula de la elipse. en el sistema y luego le damos la coordenada Z. Y cada vez que agrega 10um, la macro calculará automáticamente el valor. Se ingresa en el formato de P#xx Q#xx R#xx, mientras que los programas de macro tipo B se ingresan directamente. fórmulas y lenguaje Es muy similar al lenguaje C y se usa ampliamente en el sistema 0i. Porque hoy en día, el uso extensivo de programas macro de Clase B se ha introducido en muchos libros y no lo repetiré. aquí Sin embargo, en algunos sistemas antiguos, como el sistema Frank OTD, no hay fórmulas en su teclado MDI, ni siquiera el signo igual más simple. Por esta razón, si usamos programas macro de Clase B, solo podemos. programarlos en la computadora y luego transmitirlos a través de la interfaz RSN-32 en el sistema CNC. Sin embargo, si no tenemos una PC y un RSN-32 Qué hacer con los cables, entonces la programación de macros solo se puede realizar a través de una macro Clase A. A continuación presentaré las referencias de las macros de Clase A;
Las macros de Clase A usan G65 Hxx P#xx Q#xx R#xx o G65 Hxx P#xx Qxx El xx ingresado en el formato Rxx significa. un valor numérico, que se ingresa en cantidades de nivel um. Por ejemplo, si ingresa 100, es 0.1MM~~~~~.#xx es el número de variable, aproximadamente si no sabe qué significa el número de variable. No puedo ayudarte, pero será mejor que te enseñe. El número de variable es sustituir el valor en una dirección fija. La dirección fija es la variable. Generalmente, hay #0~~~ en el sistema OTD. #100~#149~~~#500~#531 Cuando se apaga la alimentación, las variables #100~#149 se inicializan a "vacías", mientras que las variables #500~#531 retienen los datos. Si decimos #100=30. Entonces ahora #100 Los datos en la dirección son 30, así de simple. Ahora déjame hablar sobre el código H. Puedes ver que #xx y xx son valores numéricos en el formato estándar de las macros de Clase A y G65. significa usar macros de Clase A, por lo que esta H se usa para representar la operación que se realizará entre cada valor y el valor en el número de variable, o entre el valor en cada número de variable y los valores en otros números de variable. Dijo que si comprende el código H y el programa macro A, básicamente puede aplicarlo. Bien, ahora hablemos del significado de los códigos H:
Lo siguiente usa #100, #101, #102. , y los valores 10 y 20 como ejemplos. No los trate como formatos al aplicarlos,
Instrucciones básicas:
Formato H01: G65H01P#. 101Q#102: asignar el valor en #102 a #101
G65H01P#101Q #10: asignar 10 a #101
H02 más formato G65 H02 P#101 Q#; 102 R#103, suma el valor de #102 al valor de #103 y asígnalo a #101 p>
G65 H02 P#101 Q#102 R10
G65 H02 P# 101 Q10 R#103
G65 H02 P#101 Q10 R20
Las 4 anteriores tienen el formato de instrucciones de suma. Suman el valor después de Q o el valor en la variable. número al número después de R
El valor o el valor en la variable número es entonces igual a la variable después de P. No.
H03 menos formato G65 H03 P#101; Q#102 R#103, resta el valor de #103 al valor de #102 y asígnalo a #101
G65 H
03 P#101 Q#102 R10
G65 H03 P#101 Q10 R#103
G65 H03 P#101 Q20 R10
Todos los anteriores 4 El formato de la instrucción de resta es restar el número después de R del valor después de Q o del valor en el número variable.
El valor o el valor en el número variable es entonces igual al número variable después P.
H04 comando de multiplicación; formatee G65 H04 P#101 Q#102 R#103, multiplique el valor de #102 por el valor de #103 y asígnelo a #101
G65 H04 P#101 Q#102 R10
G65 H04 P#101 Q10 R#103
G65 H04 P#101 Q20 R10
Los 4 anteriores Todas las instrucciones son formatos de multiplicación. El valor después de Q o el valor en el número de variable se multiplica por el número después de R
El valor o el valor en el número de variable es entonces igual al número de variable después de P.
Comando dividir H05 ;Formatear G65 H05P#101 Q#102 R#103, dividir el valor de #102 por el valor de #103 y asignarlo a #101
G65 H05 P#101 Q#102 R10
G65 H05 P#101 Q10 R#103
G65 H05 P#101 Q20 R10
Las 4 instrucciones anteriores son todas excepto el valor después de Q o el número de la variable. El valor se divide por el número después de R
El valor o el valor en el número de la variable es entonces igual al número de la variable después de P. (El resto no es almacenado, y si el divisor es 0, ocurrirá una alarma 112)
Instrucciones de función trigonométrica:
H31 SIN Instrucciones de función ortogonal: formato G65 H31 P#101 Q#102 R# 103; lo que significa que el #102 después de Q es el #103 detrás de la hipotenusa R del triángulo. La memoria es el ángulo. El resultado es #101=#102*SIN#103, lo que significa que puedes usar esto directamente para encontrar la longitud de. el otro lado del triángulo Al igual que las instrucciones anteriores, también se siguen Q y R. Puede escribir valores numéricos directamente.
Comando de función coxuan H32: formato G65 H32 #101 Q#102. R#103; significa que #102 después de Q es la hipotenusa del triángulo
R El siguiente #103 almacena el ángulo. El resultado es #101=#102*COS#103, lo que significa que puedes usarlo directamente. esto para encontrar la longitud del otro lado del triángulo. Es igual que la instrucción anterior Q. También puedes escribir valores numéricos directamente después de y R.
Se supone que H33 y H34 son TAN. y ATAN, pero los números que utilicé no son exactos. Espero que alguien que sepa pueda decirme por qué.
Comando de raíz cuadrada:
H21; 102; significa tomar la raíz cuadrada del valor en #102 y almacenarlo en #101 (este comando es muy importante. Si no hay un comando de raíz cuadrada al tallar una elipse, es imposible usar macros.
Comando de transferencia incondicional:
H80; formato: G65 H80 P10; saltar directamente Ir al décimo segmento del programa
Instrucciones de transferencia condicional:
H81 H82 H83 H84 H85 H86, que es H81 si es igual a él; H82 si no es igual y irá si es menor que H83 si es mayor o igual a H85; igual a Compare los valores que contiene y llévelo a H8x de acuerdo con el código H8x anterior. Si se cumplen las condiciones, salte al décimo proceso.
secuencia, si no coincide, continúe ejecutando el siguiente segmento de programa
Programa macro de usuario
Una serie de instrucciones que pueden completar una determinada función se almacenan en la memoria como una. subrutina, usando un Vienen con un comando general Al usarlo, solo necesitas dar este comando general para realizar su función.
l La serie almacenada de instrucciones - programa macro de usuario
l La instrucción para llamar al programa macro - instrucción macro
l Características: Uso de variables
1. Representación y uso de variables
(1) Representación de variables
#I (I=1, 2, 3,...) o #[
Ejemplo: #5, #109, #501, #[#1+#2-12]
(2) Uso de variables
1. Especifique el número de variable o la fórmula después de la palabra de dirección
Formato:
Ejemplo: F#103, suponiendo #103=15, entonces es F15
Z-#110, suponiendo #110=250, entonces es Z -250
X[#24+#18*COS[#1]]
2. El número de variable se puede reemplazar por una variable
Ejemplo: #[#30], asumiendo #30=3 entonces es #3
3. Las variables no pueden usar las direcciones O, N, I
Ejemplo: permitido bajo el siguiente método
O#1
I#2 6.00×100.0
I#2 6.00×100.0
p>
p>
N#3 Z200.0
4. La variable correspondiente al número de variable tiene un rango de valores específico para cada dirección
Ejemplo: Cuando #30=1100, M#30 no está permitido
5 . #0 es una variable vacía y las variables sin valores de variable definidos también son variables vacías
6. Definición de valor de variable:
El punto decimal se puede omitir al definir el programa, por ejemplo: #123=149
Ingrese uno en el teclado MDI. Tipos de variables
1. Variables locales #1~#33
Una variable utilizada localmente en un programa macro
Ejemplo: Un programa macro B un programa macro
… …
#10=20 Ingresar valores de variables
2 Variables públicas #100~#149, #500~#531
Variables comunes a cada programa de macro de usuario
Ejemplo: Cuando #10 se cambia a #100 en el ejemplo anterior,
X#100 en el programa de macro B significa X20
#100~#149 se borran después del corte de energía
#500~#531 variables retenidas (no se pierden después del corte de energía)
Variables del sistema
Variables de propósito fijo, cuyos valores dependen del estado del sistema
Ejemplo: el valor #2001 es el valor de compensación del eje X de la compensación de la herramienta No. 1
El valor #5221 es el valor de compensación del origen de la pieza de trabajo G54 del eje X
Debe ingresarse al ingresar el punto decimal; cuando se omite el punto decimal, la unidad es μm
Uno. Instrucciones de operación
El lado derecho de la expresión de operación puede ser una constante, variable, función o expresión
#j y #k en la expresión también pueden ser constantes
Ecuación El lado derecho es el número de variable y la fórmula de cálculo
1. Definición
#I=#j
2. Operaciones aritméticas
#I=#j#k
#I=#j-#k
#I=#j*#k
#I=#j/#k
3. Operaciones lógicas
#I=#JOK#k
#I=#JXOK#k
#I=#JAND#k
4. Función
#I=SIN[#j] Seno
#I=COS[#j] Coseno
#I=
TAN[#j] tangente
#I=ATAN[#j] tangente inversa
#I=SQRT[#j] raíz cuadrada
#I= ABS [#j] Valor absoluto
#I=ROUND[#j] Redondeo
#I=FIX[#j] Redondeo hacia abajo
# I= FUP[#j] Redondear hacia arriba
#I=BIN[#j] BCD→BIN (binario)
#I=BCN[#j] BIN→BCD
1. Explicación
1) La unidad del ángulo es grado
Ejemplo: 90 grados y 30 divididos en 90,5 grados
2) La longitud de los dos lados después del La función ATAN debe estar separada con "1"
Ejemplo: cuando #1=ATAN[1]/[-1], #1 es 35,0
3) Se utiliza ROUND en el declaración La dirección se redondea de acuerdo con la unidad de configuración mínima de cada dirección
Ejemplo: Supongamos #1=1.2345, #2=2.3456, la unidad de configuración es 1μm
G91 X- # 1; X-1.235
X-#2 F300; >No vuelve al lugar original, se debe cambiar a
X[ROUND[#1]+ROUND[ #2]];
4) El valor absoluto después del redondeo es mayor que el valor original. Redondea hacia arriba; de lo contrario, redondea hacia abajo.
Ejemplo: supongamos que #1=1,2, #2=. -1.2
Si #3=FUP[#1], entonces #3=2.0
Si #3=FIX[#1], entonces #3=1.0
Si #3=FUP[#2] Cuando #3=-2.0
Si #3=FIX[#2], entonces #3=-1.0
5) Al ordenar una función, puedes escribir solo las 2 primeras letras
Ejemplo: ROUND→RO
FIX→FI
6) Prioridad
Función → Multiplicación y División ( *, 1, AND) → suma y resta (+, –, OR, XOR)
Ejemplo: #1=#2+#3*SIN[#4];
7) Los corchetes son corchetes, hasta 5 veces. Los corchetes de jardín se utilizan para declaraciones de comentarios.
Ejemplo: #1=SIN[[[#2 #3]*#. 4 #5]*#6]; (3 veces) )
1. Instrucciones de transferencia y bucle
1. Transferencia incondicional
Formato: GOTO 1;
GOTO #10; Transferencia condicional
Formato: IF[
Expresión condicional:
#j EQ#k significa =
#j NE#k significa ≠
#j GT#k significa >
#j LT#k significa <
#j GE#k significa ≥
#j LE#k significa ≤
Ejemplo: IF[#1GT 10]GOTO100;
…
N100G00 691 X10;
Ejemplo: Calcula la suma de 1 a 10
O9500
#1=0
#2=1 < /p; >
N1 IF [#2GT10]GOTO 2
#1=#1+#2
#2=#2+1
GOTO 1; /p>
N2 M301. Bucle
Formato: WHILE[
p>
…
…
…
ENDm
Instrucciones: 1. Cuando se cumpla la condición, ejecute DOm hasta ENDm, luego ejecute el segmento del programa desde DOm
Cuando no se cumpla, ejecute el segmento del programa desde DOm hasta ENDm
2. Omitir la declaración WHILE y solo DOm...ENDm formará un bucle infinito desde DOm hasta ENDm
3. Anidamiento
4. EQ Cuando NE, el vacío es diferente de "0"
Bajo otras condiciones, el vacío es lo mismo que "0"
Ejemplo: encontrar la suma de 1 a 10
O0001 ;
#1=0;
#2=1;
MIENTRAS [#2LE10] DO1; #1=# 1+#2;
#2=#2+#1;
END1;
¡Este es un programa de parábola simple! G99
S800M3
T0101
G0 X30.
#1=0
N10#. 2=SQRT[2*#1]
G1X[2*#2]Z-#1F0.05
#1=#1 0.1
SI [#1 LE 50] IR A 10
G0X30
Z100
M5
M30