La programación paramétrica ( en inglés , programación paramétrica , también macroprogramación ) en el procesamiento de sistemas de control numérico (CNC) para equipos tecnológicos es un enfoque para aumentar el nivel de programación, implementado mediante la creación de lenguajes especializados o extensiones a las herramientas de programación existentes.
Históricamente, el primer lenguaje de programación para máquinas herramienta CNC, código G , es inherentemente un lenguaje para describir ciclogramas del movimiento de una herramienta de mecanizado, encender/apagar el husillo, suministrar fluidos de corte (refrigerante) y otras acciones y no tiene medios de comprobación actual del estado del proceso de mecanizado. Por ejemplo, si una herramienta de mecanizado se estropea o no hay refrigerante, el ciclograma descrito por el código G continuará inútilmente o se ejecutará peligrosamente para el equipo hasta que intervenga el operador o finalice el código G. Para eliminar este importante inconveniente del código G, se desarrollaron lenguajes de programación paramétricos.
Estos lenguajes tienen mucho en común con los lenguajes de programación convencionales de alto nivel como Fortran , C. La principal ventaja sobre el código G es la disponibilidad de instrucciones/operadores de bifurcación condicionales . Esta extensión le permite cambiar el progreso del mecanizado cuando cambia el estado del proceso, por ejemplo, detener el procesamiento con una alarma cuando se activa un sensor de desgaste o rotura de herramienta.
Una ventaja adicional de la programación paramétrica para máquinas CNC es la capacidad de organizar cálculos complejos de las coordenadas de la herramienta y sus movimientos para procesar superficies curvas especificadas matemáticamente en forma de splines 3D o superficies Bezier .
Los fabricantes de sistemas de control utilizan la programación paramétrica como una extensión del código G. Se puede comparar con lenguajes de programación de computadoras como Basic, pero se puede acceder a él a nivel de funciones G (códigos). A diferencia de la programación CNC, la programación paramétrica amplía las posibilidades comparables a la programación orientada a objetos. A través de sus sistemas de control CNC, se hace posible el cálculo de varianza, el uso de operadores lógicos, el trabajo con pases de herramienta, los movimientos del manipulador, la capacidad de organizar ciclos, seleccionar por condición, saltar, trabajar con subrutinas, elementos que ejercen un control total sobre el CNC son agregado: acceso a las variables del sistema y celdas del programa electroautomático, la capacidad de crear sus propios códigos G y funciones que implementan más completamente el control de todos los componentes de la máquina. Es posible acceder a los parámetros del CNC que almacenan información sobre la herramienta, la posición de los cuerpos de trabajo, los manipuladores, el sistema de coordenadas, los valores del código G del programa de control y los errores. Con la ayuda de la programación paramétrica, es posible desarrollar programas de control interactivos. Al igual que los lenguajes de programación informática, existen varias versiones de ellos en la programación paramétrica: Custom Macro, User Task (Okuma), Q Routine (Sodick), Advanced Programming Language (APL G&L). Por ejemplo, el lenguaje de programación de macros FMS-3000 de un subconjunto del lenguaje básico permite organizar ventanas de información adicionales, un sistema de seguimiento de parámetros, modos de control y registro de procesos de procesamiento. Dichos programas se ejecutan en segundo plano y en su tiempo libre de todas las demás tareas, con una gran carga, pueden suspender temporalmente su trabajo. Aprovechando estas oportunidades, tiene una de las formas más efectivas de controlar una máquina herramienta, un robot, un sistema CNC.
Un programa escrito con un lenguaje de programación de macros tiene una estructura de código G similar a la de un sistema de control. La unidad estructural es el marco. Un marco es una secuencia de caracteres en un lenguaje de programación. El elemento marco es una palabra que consta de una dirección y un valor numérico o una variable, una variable global.
Como ejemplo de un programa macro, puede escribir una subrutina de función G200 para el sistema de control FMS-3000 y usar esta función G como una herramienta de rebote y transición entre pasadas, como en el caso de un taladro que se mueve de una coordenada a otra.
Propiedades de la función:
1. Condiciones iniciales.
2. Rebote a W (en el caso de un rebote simple) o salga al punto de cambio de herramienta y continúe.
3. Elección de herramienta tomando el corrector de longitud.
4. Seleccione G54 G55 G56 G57 G58 G59.
5. Determine el ángulo de rotación de la parte A
6. Seleccione M3 M13 M4 M14.
7. Seleccione el número de revoluciones S.
8. Mueva la herramienta a la posición en XY (con compensación H).
a=(_a+obtenerparámetro(65)) | definimos el parámetro A (ángulo de rotación) como la suma de una variable global (dada permanentemente, ángulo de rotación) y una variable local (devuelta de la función, ángulo de rotación) |
g=obtenerparámetro(71) | definir el parámetro (seleccione el punto G54 G55 G56 G57 G58 G59) G como variable (devuelto de la función) |
m=obtenerparámetro(77) | definir el parámetro (funciones adicionales) M como variable (devuelto de la función) |
s=obtenerparámetro(83) | definir el parámetro (número de revoluciones) S como una variable (devuelta de la función) |
t=obtenerparámetro(84) | definir el parámetro (número de herramienta) T como una variable (devuelta desde la función) |
x=obtenerparámetro(88) | definir el parámetro (coordenada) X como una variable (devuelta de la función) |
y=obtenerparámetro(89) | definir el parámetro (coordenada) Y como una variable (devuelta de la función) |
w=obtenerparámetro(87) | definir el parámetro (valor de rebote) W como una variable (devuelta por la función) |
tt=getdatacadr(134) | variable tt devuelve el valor de la anterior (número de herramienta anterior) |
A diferencia de Custom Macro (sistema de control Fanuc), los parámetros de función en el FMS-3000 deben definirse al comienzo de la subrutina.
_t=t | para organizar el trabajo de funciones posteriores, la herramienta actual T, la definimos como una variable global |
hh=t+100 | establecer el número de compensación para la longitud de la herramienta |
La expresión hh=t+100 es una tabla de compensaciones de 1 a 200. Dividimos todas las compensaciones en dos partes de 1 a 100 compensaciones para el diámetro de la herramienta, de 101 a 201 para la longitud de la herramienta. La herramienta T1 tiene un número de compensación de diámetro de 1 y un número de compensación de longitud de 101. La herramienta T2 tiene un número de 2 y un número de 102, etc.
si paramactive(71)=0 entonces g=_g | si en la función no se especifica G54 G55 G56 G57 G58 G59, la selección del punto se determinará a partir de la variable global |
Si en la función G200 no se especifica el parámetro G200, el punto se tomará por defecto de la variable global en la función G201.
G37X0Y0A0 | cancelar el ángulo de rotación previamente establecido |
si paramactive(87)=0 entonces vaya a 500 | si el parámetro W (rebote) no está configurado, vaya al punto de cambio de herramienta, vaya a la etiqueta 500 |
N100G1F2000G17G40G80G91Zw | si el parámetro W (rebote) no está configurado, vaya al punto de cambio de herramienta, vaya a la etiqueta 500 |
G32M1 | parada tecnológica |
G90GgG37X0Y0Aa | establecer el ángulo de rotación |
ir a 600 | si la función está configurada en rebote simple (sin cambio de herramienta), salte a la marca 600. |
Rebote al punto de cambio de herramienta.
N500M9 | apagado enfriamiento |
G53G1F2000G90G40G49G80Z0 | salir al punto de cambio de herramienta |
M5 | apagado vueltas |
Las funciones de cambio de herramienta en cada máquina tienen sus propias características dependiendo del número de herramientas en el almacén. Por ejemplo, cuando hay muchas herramientas, a veces se utilizan algoritmos que organizan la herramienta en un orden aleatorio para no vincular la herramienta a ciertas celdas y reducir el tiempo de reemplazo. De gran importancia es el diseño de la mecánica de cambio de herramientas, varios tipos de manipuladores, deslizadores, etc.
rem S100 | cambie el rango de velocidad para el cambio de herramienta manual |
N502G32M0 | parada tecnológica |
hh1=obtenerdatosdelsistema(1000+hh) | leer el valor del corrector de longitud |
G1G91G43HhhZ-hh1F2000 | trabajando en corrector |
G90GgG37X0Y0Aa | se toma el corrector, calculamos el ángulo de rotación |
si paramactive(83)=0 entonces vaya a 600 | si el parámetro S (revoluciones) no está configurado, salte cuadros y vaya a la etiqueta 600 |
si paramactive(77)><0 entonces m= | la función auxiliar predeterminada M será M3 |
N520MmSs | definir funciones adicionales M y S |
tt | seleccione el número de herramienta |
N600si paramactive(88)=0 entonces vaya a 9999 | si al menos una de las coordenadas XY de la posición no está configurada, no vamos a la posición, saltamos fotogramas y vamos a 9999 |
si paramactive(89)=0 entonces vaya a 9999 | si al menos una de las coordenadas XY de la posición no está configurada, no vamos a la posición, saltamos fotogramas y vamos a 9999 |
G1F2000G1X(x+1)Y(y+1) | ingresamos la preposición, damos un ajuste de interferencia a lo largo de XY 1mm |
F100G9XxYy | salida exacta a la posición XY con verificación |
N9999G1F2000 | establecer las condiciones iniciales para el contorno |
G32 | ralentizamos el cálculo del programa |
M99 | fin de función, regreso al programa |