PROGRAMACION PARAMETRICA
LENGUAJE DE ALTO NIVEL
MILTRONICS CNC MACHINES
Control Centurion 7
Ing. Roberto Spicacci
GENERALIDADES
En la programación paramétrica se pueden utilizar
ECUACIONES para definir la posición de los ejes en
lugar de hacerlo mediante números decimales.
Programación paramétrica = subrutinas = macros
Se pueden utilizar en cualquier parte del programa.
No se pueden utilizar expresiones paramétricas para
especificar códigos G o M, si para ejes X Y Z o
funciones F y S
Existen los llamados “Parámetros de Usuario” y
“Parámetros de Máquina” que pueden ser utilizados
en la programación.
Ver 5.9.8 PROG (PRAL – PARMS –
PROG) pag 5-41 se listan los
parámetros internos del CNC
El control posee un conjunto de 125 parámetros
internos del CNC usados para ejecutar un programa.
Estos parámetros se pueden leer y cargar en un
programa paramétrico.
Hay que tener cuidado en su utilización puesto que los
valores de ellos serán utilizados por el control para
ejecutar el próximo movimiento.
Ver 5.9.8 PROG (PRAL – PARMS –
PROG) pag 5-41 se listan los
parámetros internos del CNC
PROGRAMACION PARAMETRICA.
OPERACIONES CON PARAMETROS
El CNC dispone de parámetros (Pxxx) mediante los que
se pueden programar bloques paramétricos y realizar
diferentes tipos de operaciones y saltos dentro de un
programa.
Referencia paramétrica
Se especifican mediante la letra “P” seguida de un
número de parámetro
Las expresiones paramétricas no se utilizan para
especificar los códigos G o M si para los ejes X, Y, Z
utilizando corchetes
X [P10]
Y [-P145]
Z [P2]
Asignación de parámetros
Es la operación básica en el uso de parámetros, se utiliza
el signo “ = “
Ej. P1 = 1.234
es decir el valor 1.234 es asignado al parámetro 1
Por lo tanto cualquiera de estos comando ejecutará el
mismo movimiento
X [P1] X 1.234
Las operaciones que se pueden realizar entre parámetros es de
+ Suma
- Resta
* Multiplicación
/ División
Raíz cuadrada
Raíz cuadrada de la suma de los cuadrados
Seno
Coseno
Tangente
Arco tangente
Comparación
Parte entera
Parte entera más uno
Parte entera menos uno
Valor absoluto
Complementación
Operadores paramétricos
Operadores aritméticos
Operadores relacionales
Operadores funcionales
Operadores aritméticos
Operador Operación
+ suma
- resta
/ división
* Multiplicación
** exponente
DIV División entera
MOD resto
El valor de A DIV B es la parte entera del cociente A/B y por el contrario el A
MOD B es la parte fraccional del cociente A/B
3/2 = 1.5 _______3 DIV 2 = 1 ____________3 MOD 2 = 5
Operadores relacionales
Operador Operación
EQ o = Igual
EN o <> No igual
LT o < Menor que
GT o > Mayor que
LE o <= Menor o igual que
GE o >= Mayor o igual que
Operadores funcionales
SIN Seno del argumento SIN[90]=1
COS Coseno del argumento COS[180]=1
TAN Tangente del argumento TAN[135]=-1
ATAN Arco tangente del arg ATAN[1/-1]=135
SQRT Raíz cuadrada del arg SQRT[9]=3
ABS Valor absoluto del arg ABS[-15]=15
LN Logaritmo natural del arg LN[10]=2.3026
EXP Exponencial del arg EXP[1]=2.71
Expresiones matemáticas
Se construyen con los operadores aritméticos y
funcionales.
X [SIN [P123] * COS [P124]]
Y[2.5+[P2/P3] * SQRT [P4]]
Z [[P2 DIV 3] + [P2 MOD 3]]
Comandos condicionales
(saltos dentro del programa)
Se utilizan para transferir el control de un
programa de un punto a otro basándonos en
algunas condiciones generadas en el programa .
Son de dos tipos:
IF THEN
WHILE - WEND
El comando IF THEN es la manera de ejecutar un bloque si
se evalúa como cierta una expresión. Debe contener un
operador relacional para poder ser evaluada como cierta o
falsa. Si fuera cierta ejecuta el bloque THEN si no lo es se
ejecuta la siguiente línea del programa.
IF P1*P3/COS[90] GE TAN[P6] THEN X1
IF P1=P2 THEN P4=P5-P6
Puedo reemplazar THEN con GO TO
IF P4/P3 LT P6 GO TO 25
El comando WHILE contiene una expresión que controla la
ejecución repetida de los bloques contenidos entre los
comandos WHILE y WEND
La expresión debe contener alguno de los operadores
relacionales para que el resultado de la misma sea del tipo
verdadero / falso.
Si la expresión es cierta los bloques serán ejecutados, sino se
pasará a la línea posterior del comando WEND
N20 WHILE [[P2*P3]/COS[P6]]LT P2
N21 P6=P6+1
N22 Y[P2] Z[P3]
N23 X[P6]
N24 X1 Y0 Z0
N25 WEND
N26 M30
Comandos transferencia
Transfieren el control de una parte del programa a
otra. Son comandos incondicionales, siempre son
ejecutados.
Los comandos GOSUB, RETURN y CALL retornan el
control al boque N+1 después de haber finalizado.
El comando GOTO por el contrario transfiere el
control al bloque especificado sin retorno
SUBPROGRAMA
CALL transfiere el control a cualquier programa
residente en la memoria del CNC (equivale M98)
CALL xxx (número de programa) L xxx (número de
ejecuciones) si se omite L, lo ejecuta una sola vez
Opciones:
CALL 2 L5
M98 P2 L5
M98 P0002 L5
[Link]=50
[Link] L=999
TRANSFERENCIA
GO TO
GO TO 30 (el próximo bloque ejecutado será el 30)
GOSUB Y RETURN transfiere la ejecución del
programa al número de bloque especificado hasta que
encuentre el comando RETURN, devolviendo la
ejecución al bloque posterior a GOSUB
GOSUB xxx (número de línea) L xxx (contador de
bucles)
SUBRRUTINA
Se llama subrutina a una parte de programa que,
convenientemente identificada, puede ser llamada desde
cualquier posición de un programa para su ejecución.
Una subrutina puede ser llamada varias veces desde
diferentes posiciones de un programa o desde diferentes
programas.
Con una sola llamada puede repetirse la ejecución de una
subrutina x veces.
Una subrutina puede estar almacenada en la memoria del
CNC como un programa independiente o como parte de un
programa.
Una vez finalizada la ejecución de la subrrutina,
volverá al bloque del comienzo donde se realizó el
salto, recuperando toda la historia de aquel momento
(funciones G, etc.)
N1 (PROGRAMA PRINCIPAL)
N2
N3 GOSUB 100
N4
N5 M30 (FIN DE PROGRAMA)
N100 (SUBRUTINA)
N101
N102 RETURN (FIN SUBRUTINA)
EJEMPLO DE
PROGRAMACION
Trayectoria cardioide
Radio=K*|cos(β/2)|
EJEMPLO DE
PROGRAMACION
Trayectoria cardioide
P0=5 (incremento)
P1=0 (ángulo inicial)
P2=1*ABS[COS[P1/2]]
While P1 LE 360
G1 R[p2] XC0 YC0 AB[P1]
P1=P1+P0
WEND