Muchos técnicos de CNC no entienden los programas de macros. Piensan que con el software de programación automática, no hay necesidad de aprender programas de macros. De hecho, las funciones de los programas de macros son muy potentes. Por ejemplo, para escribir algunos programas por lotes y repetitivos, solo necesita cambiar algunos datos cuando usa programas macro. No hay necesidad de una gran cantidad de programación repetida, lo que puede simplificar en gran medida las operaciones y mejorar en gran medida la eficiencia del trabajo.
Los programas de macros pueden usar variables para realizar operaciones mixtas de operaciones aritméticas, operaciones y funciones lógicas, y también proporcionar declaraciones de bucle, declaraciones de bifurcación y declaraciones de llamadas a subrutinas.
En términos generales: el programa de macros es adecuado para la programación de una serie de piezas con los mismos gráficos pero con diferentes tamaños; es adecuado para la programación de una serie de piezas con la misma ruta de proceso pero con diferentes parámetros de posición; es adecuado para la programación de parábolas, elipses, hipérbolas y otras curvas sin instrucciones de interpolación.
01
Representación y uso de variables
1. Representación de variables
#I(Yo=1,2,3,…) o #[
Ejemplo: #5, #109, #501, #[#1 más #2-12]
En segundo lugar, el uso de variables
1. Especifique el número de variable o fórmula después de la palabra de dirección
Formato:
Aquí "I" significa número variable
Ejemplo: F#103, si #103=15, entonces es F15
Z-#110, si #110=250, es Z-250
X[#24 más #18*COS[#1]]
2. El número de variable puede ser reemplazado por variable
Ejemplo: #[#30], si #30=3, será #3
3. Las variables no pueden usar direcciones O, N, I
Ejemplo: Los siguientes métodos están permitidos
O#1;
I#2 6.00×100.0;
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 una variable sin un valor de variable definido también es una variable vacía
6. Definición de valor variable:
El punto decimal se puede omitir cuando se define el programa, por ejemplo: #123=149
02
tipo de variable
Agregue imágenes a WeChat: mvm9987 enviará un tutorial CNC
1. Variables locales #1~#33
Una variable utilizada localmente en un programa macro, el resultado de su operación no puede ser utilizado por otros programas.
Ejemplo: Un programa macro B programa macro
...
#10=20 X#10 no significa X20
...
Se borrará después del apagado y el valor de la variable se completará cuando se llame al programa macro.
2. Variables públicas #100~#199, #500~#999
La variable común en cada programa de macro de usuario tiene el mismo resultado de operación en cualquier llamada de programa.
Ejemplo: Cuando #10 en el ejemplo anterior se cambia a #100, el
X#100 significa X20
#100~#149 Vacío después de apagar
#500~#531 Variables persistentes (no se pierden después del apagado)
3. Variables del sistema
Variable de propósito fijo cuyo valor depende del estado del sistema
Ejemplo: #2001 es el valor de compensación del eje X de la compensación de herramienta n.º 1
El valor #5221 es el valor de desplazamiento del origen de la pieza de trabajo G54 del eje X
Se debe ingresar un punto decimal al ingresar, y la unidad es μm cuando se omite el punto decimal
03
Instrucción de operación
El lado derecho de la expresión puede ser constantes, variables, funciones, expresiones
En la fórmula, #j y #k también pueden ser constantes
El lado derecho de la expresión es el número variable, la expresión
1. Definición
#I=#j
2. Operaciones aritméticas
#I=#j más #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
imagen
#I=SIN[#j] seno
#I=COS[#j] coseno
#I=TAN[#j] tangente
#I=ATAN[#j] arco tangente
#I=SQRT[#j] raíz cuadrada
#I=ABS[#j] valor absoluto
#I=ROUND[#j] Redondeo
#I=FIX[#j] redondear hacia arriba
#I=FUP[#j] Redondear hacia abajo
#I=BIN[#j] BCD→BIN (binario)
#I=BCN[#j] BIN→BCD
1) Los ángulos están en grados
Ejemplo: 90 grados y 30 minutos son 90,5 grados
2) Las dos longitudes de los lados después de la función ATAN deben estar separadas por "/"
Ejemplo: #{{0}}ATAN[1]/[-1], #1 es 35.0
3) ROUND se utiliza para la dirección en el estado de cuenta, redondeado según la unidad de configuración mínima de cada dirección
Ejemplo: establezca #1=1.2345, #2=2.3456, la unidad de configuración es 1 μm
G91 X-#1; X-1.235
X-#2 F300; X-2.346
X[#1 más #2]; X3.580
no se devuelve y debe ser reemplazado por
X[ROUND[#1] más ROUND[#2]];
4) Si el valor absoluto después del redondeo es mayor que el valor original, se redondeará hacia arriba; de lo contrario, se redondeará hacia abajo.
Ejemplo: Cuando #1=1.2, #2=-1.2
Si #{{0}}FUP[#1], entonces #3=2.0
Si #{{0}}FIX[#1], entonces #3=1.0
Si #{{0}}FUP[#2], entonces #3=-2.0
Si #{{0}}FIX[#2], entonces #3=-1.0
5) Al comandar una función, solo se pueden escribir las dos primeras letras
Ejemplo: RONDA→RO
FIX→FI
6) Prioridad
Función → multiplicación y división (*, 1, AND) → suma y resta ( plus , -, OR, XOR)
Ejemplo: #1=#2 más #3*SIN[#4];
7) Los corchetes son corchetes, hasta 5 veces, y los corchetes se usan para declaraciones de comentarios.
Ejemplo: #1=SIN[[[#2 más #3]*#4 más #5]*#6]; (3 pesos)
04
Instrucciones de bifurcación y bucle
1. Transferencia incondicional
Formato: GOTO n;
Rama incondicionalmente al bloque n
n: número de bloque (1-99999)
n también se puede reemplazar por variables o expresiones
ir a10;
IR A #10;
2. Transferencia condicional
SI [
Si el
Si no está satisfecho, ejecute el siguiente bloque.
SI [
Si el
SI[#1EQ #2] ENTONCES #3=0;
Expresión condicional:
imagen
#j y #k también se pueden reemplazar por
Ejemplo: IF[#1 GT 10] GOTO 100;
…
N100 G00 G91 X10;
Ejemplo: encontrar la suma de 1 a 10
O9500;
#1=0
#2=1
N1 SI [#2 GT10] IR A 2
#1=#1 más #2;
#2=#2 más 1;
IR A 1
N2 M30
3. Ciclo
Formato: MIENTRAS [
…
…
…
FINm
1. Cuando se cumplan las condiciones, ejecute DOm a ENDm, luego desde el segmento de programa de DOm
Si no está satisfecho, ejecute el segmento de programa después de ENDm
2. Si omite la instrucción WHILE y solo tiene DOm...ENDm, se formará un ciclo infinito desde DOm hasta ENDm
3. anidamiento
4. EQ NE, vacío y "0" son diferentes
En otros lugares, nulo es lo mismo que "0"
Ejemplo: encontrar la suma de 1 a 10
O0001;
#1=0;
#2=1;
MIENTRAS [#2LE10] HACER1;
#1=#1 más #2;
#2=#2 más #1;
FIN1;
M30;





