Red de conocimiento informático - Conocimiento informático - ¿Cómo empezar a aprender programación de macros?

¿Cómo empezar a aprender programación de macros?

No es difícil aprender bien los programas macro. La gente gasta enormes sumas de dinero para desarrollarlos sólo por la comodidad de su uso. Déjame contarte en detalle las diferencias entre sus sistemas y cómo usarlos: \x0d\ Los diferentes sistemas tienen una sintaxis de programación diferente. Siemens es obviamente diferente de Mitsubishi, Fanuc, Huazhong, Haas y otros sistemas. Pero las ideas de programación son similares. Su pregunta es demasiado amplia, permítame hablar primero de los mismos lugares (excepto Siemens): \x0d\1: Al igual que las variables en la programación de computadoras, las variables también deben usarse en los programas CNC. Para controlar el flujo del programa, las variables son esenciales. Las variables en la programación CNC están representadas por el símbolo # seguido de un número entero. Por ejemplo, el número 1 es una variable. El método para asignar valores a las variables es el mismo que en la programación informática, como #1=5. (Equivalente a a=5 en lenguaje básico o C, a:=5 en pascal.) \x0d\Las variables en la programación CNC se pueden dividir en tres categorías según su alcance: variables locales, variables globales y variables del sistema. #1~#33 son variables locales, que solo funcionan dentro de este programa; #100~#199, #500~#599 (muchos sistemas ahora tienen más de 599) son variables globales, que funcionan en todos los programas anteriores; #1000 son variables del sistema que controlan varios estados de funcionamiento de la máquina herramienta. No las modifique fácilmente. Las variables locales no se pueden modificar mientras el programa se está ejecutando y solo pueden ser controladas por el programa. Cuando se utilizan variables locales, se deben asignar valores iniciales en el programa. Las variables globales se pueden modificar manualmente mientras el programa se está ejecutando. Cuando se utilizan variables globales, no puede asignar un valor inicial en el programa, pero puede ingresar el valor requerido durante el procesamiento. La naturaleza de la compensación es variable. \x0d\#0 es una variable vacía (equivalente a nil de Pascal, NULL de C), y a #0 no se le puede asignar un valor. Nota: Las variables vacías son diferentes de 0. Al igual que definir una variable de puntero p en Pascal, los dos programas siguientes son diferentes: p:=nil, p^:=0. (O p=NULL, *p=0 en lenguaje C) Cuando #1 es 0, G1X100Y#1 es equivalente a G1X100Y0, y cuando #1 está vacío, G1X100Y#1 es equivalente a G1X100. Cuando #1 es 0, G#1X100 equivale a G0X100, y cuando #1 está vacío, G#1X100 equivale a X100. \x0d\El número después del signo # que indica una variable también puede ser una expresión o variable. Por ejemplo, se sabe que #1=5, #2=30, #3=25, #4=0, #5=80, entonces #6=#[#1] es equivalente a #6=80 #; [3 4]= 128 equivale a #7=128; #8=#[#4] equivale a que #8 esté vacío; #9=#[#2-#3] equivale a #9=80; #4X#2*#1Y# [#4] Equivalente a G0X150. \x0d\Las variables pueden aumentar o disminuir por sí mismas, y el valor de la variable después de la operación se puede asignar a sí misma. Por ejemplo, si #1=3 actualmente, entonces el valor de #1 es 4 después de ejecutar #1=#1 1. (Equivalente a INC AL en lenguaje ensamblador; i=i 1 en básico; inc(i) en pascal; i en lenguaje C.) Para otro ejemplo, si #1=3 actualmente, entonces se ejecutará #1=#1EQ3, el valor del #1 es 1. \x0d\2. Operaciones aritméticas y operaciones lógicas: ① Las operaciones aritméticas son suma, resta, multiplicación y división (-*/). Al calcular las cuatro operaciones mixtas, calcule primero la multiplicación y la división y luego la suma y la resta. Si hay paréntesis, calcule primero los que están entre paréntesis. Por ejemplo, 1 2*(7-4)=7. Por lo general, los corchetes en programación de computadoras se expresan con corchetes, pero en programación CNC se expresan con corchetes. Los paréntesis en la programación CNC representan comentarios (equivalentes a punto y coma en lenguaje ensamblador, rem en básico, {} o (*?*) en pascal, /*?*/ en lenguaje C). ② Operaciones lógicas comunes Existen los siguientes cuatro tipos: y (y), o (o), no (no), y exclusivo o (xor). AND, OR, NOT son operaciones lógicas básicas, XOR no es una operación lógica básica. El resultado del OR exclusivo de A y B es AB AB.

La regla de operación de "Y" es que todos los 1 salen como 1, y si hay 0, sale 0, como 1 y 1 = 1 y 1 = 0; Los 0 salen como 0, y si hay 1, sale 1, como 1 o 1 = 1 o 1 = 1; 0. Los valores lógicos en programación (también llamados valores booleanos, es decir, "verdadero" y "falso") están representados por 1 y 0 en las computadoras. Por lo general, 1 representa "verdadero" y 0 representa "falso". Si se utilizan dos números enteros para operaciones lógicas, los bits binarios de los dos números se utilizan para la operación, por ejemplo, 5 y 6=4 o 6=7; Para un uso específico, puede recordar el uso en programación de computadoras y también se usa en programación CNC. Los cuatro operadores and, or, not y xor son respectivamente equivalentes a and, or, not y xor en ensamblador, básico o pascal amp;, |,! y ^ en lenguaje C. ③La operación restante (mod) también se puede utilizar en la programación CNC, por ejemplo, 10 mod 3=1. Mod equivale a mod en lenguaje ensamblador, básico o pascal y C. ④Los operadores de comparación en la programación CNC son los mismos que en el lenguaje ensamblador (refiriéndose al lenguaje ensamblador Intel80x86), a saber, EQ (igual), NE (no igual), LT (menor que), LE (menor o igual que), GT (mayor que), GE (mayor o igual que). Equivalente a =,,,gt;= en básico o pascal, y ==,!=,,gt;= en lenguaje C. \x0d\3. Funciones matemáticas de uso común: Las funciones utilizadas en la programación CNC son principalmente funciones matemáticas. Generalmente, los sistemas CNC proporcionan las siguientes funciones: función de valor absoluto abs(x); función de raíz cuadrada sqrt(x); función trigonométrica sin(x); China es radianes); función trigonométrica inversa asin(x); función de redondeo round(x); ) ; Lleva la función de redondeo fup(x); y la función bin(x) que convierte el código 8421BCD a binario y la función bcd(x) que convierte el binario a código 8421BCD. La mayoría de los sistemas CNC requieren que los nombres de las funciones estén en letras mayúsculas y los corchetes deben estar entre corchetes. Por ejemplo, G[#1GT30]X[50 2*ABS[#1]], cuando #1=20, es equivalente a G0X90. \x0d\4. Control de flujo del programa: el flujo del programa puede realizar transferencias incondicionales, transferencias condicionales, bucles y también puede llamar a subrutinas o programas macro. \x0d\El formato de transferencia incondicional es GOTO_. El número después de GOTO es la etiqueta de la línea del programa que se transferirá (es decir, N_). Si retrocede incondicionalmente, puede provocar un bucle infinito (es decir, el programa no puede finalizar de forma natural). El formato de transferencia condicional es IF[?]GOTO_ o IF[?]THEN?. Dentro de los corchetes hay un valor lógico, generalmente representado por una expresión de juicio. El formato del bucle es WHILE [expresión condicional] DO m END m. La parte entre DO m y END m es el cuerpo del bucle, y m es un número entero que se utiliza para indicar qué END está emparejado con qué DO. m es reutilizable y solo necesita cambiarse cuando los bucles están anidados. Al realizar un salto de programa, puede saltar desde el cuerpo del bucle al exterior del bucle, pero no puede saltar desde el exterior del bucle al cuerpo del bucle (esto es cierto para varios lenguajes de programación). \x0d\Las principales diferencias entre programas macro (llamados con G65 o escritos directamente como G××) y subprogramas (llamados con M98 o escritos directamente como M××) son las siguientes: \x0d\① Los programas macro pueden pasar parámetros, pero los subprogramas no pueden. \x0d\②La instrucción M98 puede especificar una etiqueta, por lo que la subrutina y el programa principal se pueden escribir en un programa (dependiendo del sistema, la instrucción G65 no puede especificar una etiqueta y el programa macro debe escribirse como un programa separado); . \x0d\③Las variables en los subprogramas no son jerárquicas. La número 1 en el programa principal y la número 1 en el subprograma son la misma variable. Las variables en el programa macro son jerárquicas. . No es la misma variable.

Esto es similar al anidamiento de funciones en Pascal (el lenguaje C no permite el anidamiento de funciones). \x0d\\x0d\Cada sistema tiene sus propias características. Por ejemplo, Mitsubishi puede escribir G#1 #2, Fanuc debe escribir G[#1 #2]; Mitsubishi puede escribir IF[#1]GOTO1 (piense en C El if. (a)...) en el idioma no puede ser utilizado por Fanuc; las variables de Siemens son R1 y R2, y las transferencias incondicionales son gotof, gotob, etc. Hay demasiadas diferencias en los detalles. Consulte el manual del sistema. \x0d\\x0d\ Los programas macro se pueden definir como códigos G (como G200, siempre que el sistema no los utilice), y su uso es casi el mismo que el proporcionado originalmente por el sistema. De hecho, a excepción de algunos básicos (como G0 ~ G4, etc.), la mayoría de los códigos G originales del sistema se implementan mediante programas macro, como G73 ~ G89 (mecanizado de agujeros), M6 (cambio de herramienta), etc. (Déjame decirte algo: puedes abrir sus programas macro y echarles un vistazo, ¡pero no los modifiques!) \x0d\\x0d\ Pasé mucho tiempo respondiendo a tu publicación, pero me pregunto si la encontrarás. útil. ¿Eres estudiante o ya estás trabajando? ¿Dónde? Si te sumas al trabajo, puedo explicarte en detalle cómo programar macros, lo que involucra ideas de programación, cálculos matemáticos, variables del sistema, métodos de transferencia de parámetros, etc. También estoy dispuesto a intercambiar más experiencias. Si eres estudiante, me temo que te resultará demasiado aburrido si digo más.