Red de conocimiento informático - Aprendizaje de código fuente - Tutorial detallado sobre el programa macro de programación CNC

Tutorial detallado sobre el programa macro de programación CNC

Todo el mundo pregunta sobre los programas de macros ~ De hecho, las macros usan fórmulas para procesar partes, como elipses. Si no hay macros, tenemos que calcular los puntos de la curva punto por punto y luego usarlos. lentamente, 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. agregue 10um cada vez, luego la macro calculará automáticamente la entrada del formato, mientras que los programas de macro de Clase B se ingresan en fórmulas y lenguaje directos, que son muy similares al lenguaje C y se usan ampliamente en los sistemas 0i debido a su gran uso. de programas macro Clase B ahora

p>

Se ha introducido en muchos libros y no lo repetiré aquí, pero en algunos sistemas antiguos, como el sistema Frank OTD, no hay símbolos de fórmula en el teclado MDI, ni siquiera el signo igual más simple, por esta razón, si se utilizan programas macro Clase B, solo se pueden programar en la computadora y luego transmitir a través de la interfaz RSN-32 en el sistema CNC. no tenemos una PC y un cable RSN-32, entonces solo podemos usar un programa de macro Clase A para la programación de macros. Permítanme presentarles las referencias de las macros Clase A.

Las macros Clase A usan G65 Hxx; La entrada P#xx Q#xx R#xx o G65 Hxx P#xx Qxx en formato Rxx significa valor numérico, que se ingresa en el nivel um. Por ejemplo, si ingresa 100, es 0.1MM~~~~~. #xx es el número de variable. Si no sabes lo que significa el número de variable, no hay cura, pero déjame enseñarte que el número de variable es sustituir el valor en una dirección fija. variable Generalmente, hay #0~~~#100~#149~~~#500 en el sistema OTD ~#531 Cuando se apaga la alimentación, las variables #100~#149 se inicializan en "vacío", mientras que. Las variables #500~#531 retienen datos. Si decimos #100=30, entonces los datos en la dirección #100 ahora son 30, eso es simple. Ahora déjame hablar sobre el código H. Puedes verlo en el formato estándar. de las macros de tipo A, #xx y xx son valores numéricos, y G65 significa usar macros de tipo A, por lo que esta H debe representar cada valor numérico y número de variable qué operación se debe realizar entre los valores en cada número de variable y los valores. ​​En otros números variables, se puede decir que una vez que comprenda el programa de macro tipo A del código H, básicamente podrá aplicarlo. Bien, ahora hablemos del código H. Cada significado:

El. A continuación se utilizan # 100, # 101 y # 102, y los valores numéricos 10 y 20 como ejemplos al aplicar, no los considere formatos.

Instrucciones básicas:

<. p>Asignación de H01: G65H01P#101Q#102: Asignar el valor en #102 a #101

G65H01P#101Q#10: Asignar 10 a #101

Comando H02 plus; ; formatee G65 H02 P#101 Q#102 R#103, agregue el valor de #102 al valor de #103 y asígnelo a #101

G65 H02 P#101 Q#102 R10

G65 H02 P#101 Q10 R#103

G65 H02 P#101 Q10 R20

Los cuatro anteriores tienen el formato de agregar instrucciones El valor después de Q o el valor en el número de variable se suma al 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 de resta H03 ; formatear G65 H03 P#101 Q#102 R#103, restar el valor de #103 al valor de #102 y asignarlo a #101

G65 H03 P#101 Q#102 R10

G65 H03 P#101 Q10 R#103

G65 H03 P#101 Q20 R10

Las cuatro instrucciones de resta anteriores están todas en el formato del valor o número de variable después de Q. valor menos 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.

Formato de instrucción de multiplicación H04 G65 H04 P#101 Q; #102 R#103, multiplica el valor de #102 por el valor de #103 y asígnalo a #101

G65 H04 P#101 Q#102 R10

G65 H04 P #101 Q10 R #103

G65 H04 P#101 Q20 R10

Los cuatro anteriores son todos formatos de instrucciones de multiplicación, que multiplican el valor después de Q o el valor en el número variable por el valor 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 de división H05 G65 H05P#101 Q#102 R; #103, pon # Dividiendo el valor de 102 por el valor de #103 da #101

G65 H05 P#101 Q#102 R10

G65 H05 P#101 Q10 R# 103

G65 H05 P#101 Q20 R10

Los 4 anteriores son formatos de instrucción de división, que dividen el valor después de Q o el valor en el número de variable por el número después de R

O el valor en el número de variable es entonces igual al número de variable después de P. (El resto no se almacena y si el divisor es 0, aparecerá una alarma 112)

Trigonométrico comando de función:

H31 SIN instrucción de función ortográfica: Formato G65 H31 P#101 Q#102 R#103; significa que #102 después de Q es la hipotenusa del triángulo y #103 detrás de R es el ángulo. El resultado es #101=#102*SIN# 103, es decir, puedes usar esto directamente para encontrar la longitud del otro lado del triángulo. Al igual que las instrucciones anteriores, también puedes escribir valores directamente después de Q y. R.

H32 COS resto Comando de función misteriosa: Formato G65 H32 #101 Q#102 R#103; significa que #102 después de Q es la hipotenusa del triángulo

#103 después de R almacena el ángulo. El resultado es #101=# 102*COS#103, lo que significa que puedes usar esto directamente para encontrar la longitud del otro lado del triángulo

. También escriba los valores directamente después de Q 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; Formato G65 H21 P#101 Q#102 ; Significa tomar la raíz cuadrada del valor en #102 y almacenarlo en #101; es muy importante si no hay un comando de raíz cuadrada al tallar una elipse. Se puede hacer usando macros.

Instrucción de transferencia incondicional:

Formato: G65 H80 P10; al décimo segmento del programa

Instrucciones de transferencia condicional:

H81 H82 H83 H84 H85 H86, respectivamente H81 si es igual a, girar H82 si no es igual a H83; ; H84 si es mayor o igual a; gire a H85 si es menor o igual a; Si es mayor o igual a, convierta a H86; valor en #101 con el valor en #102, y llévelo a H8x de acuerdo con el código H8x anterior. Si se cumplen las condiciones, saltará al décimo segmento del programa. Si no se cumple, continuará ejecutando lo siguiente. segmentos del programa.

/p>

Programa de macro de usuario

Una serie de instrucciones que pueden completar una determinada función se almacenan en la memoria como una subrutina, y se utiliza una instrucción general para acceder a ellas. necesario dar esta instrucción general puede 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: #I

-#I

[< Fórmula>]

Ejemplo: F#103, si #103=15, entonces es F15

Z-#110, si #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, 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

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, en el programa de macro B

>

#500~# 531 variables retenidas (no se pierden tras un corte de energía)

3. 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 n.° 1

El valor #5221 es el valor de compensación del origen de la pieza de trabajo G54 del eje X

Debe ingresarse cuando 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] arcotangente

#I=SQRT[#j] raíz cuadrada

#I=ABS[#j] Valor absoluto

#I=ROUND[#j] Redondeo a entero

#I=FIX[#j] Siguiente Redondeo

#I=FUP[#j] Redondeo 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 #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 capas)

1. Instrucciones de transferencia y bucle

1. Transferencia incondicional

Formato: GOTO 1;

GOTO #10

2. Transferencia condicional

Formato: IF[] GOTO n

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[#1 GT 10] GOTO 100

N100 G00; 691 /p>

N1 SI [#2 GT10] IR A 2

#1=#1+#2

#2=#2+1

IR A 1

N2 M301. Bucle

Formato: WHILE[]DO m; (m=1, 2, 3)

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 la condición, ejecute el segmento del programa desde DOm hasta ENDm

2. Omitir la instrucción WHILE y solo DOm...ENDm formará un bucle infinito desde DOm hasta ENDm

3. Anidamiento

4. Cuando EQ NE, el vacío es diferente de "0"

En 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]

#1=# 1+#2;

#2=#2+#1;

FINAL

M30;