Página 1
Controlador Descripción Instrucciones de programación Base CMXR Descripción 560 317 es 0909a [748 987]...
Página 3
Edición ______________________________________________________ 0909a Referencia ________________________________________ GDCP-CMXR-SW-ES Nº de art. ___________________________________________________ 560 317 Festo AG & Co KG., D-73734 Esslingen, 2009 Internet: http://www.festo.com E-mail: service_international@festo.com Sin nuestra expresa autorización, queda terminantemente prohibida la reproducción total o parcial de este documento, así como su uso indebido y/o su exhibición o comunicación a terceros.
Página 4
Lista de revisiones Autor: Nombre del manual: GDCP-CMXR-SW-DE Nombre del archivo: Lugar de almacenamiento del archivo: Nº Descripción Indicador de Fecha de modificación revisión Redacción 0805NH 25.06.2008 Adaptación a la versión 1.20 0909a 25.08.2009 Festo GDCP-CMXR-SW-DE es 0909a...
Cadenas de caracteres ..................25 Operadores y caracteres de delimitación ............26 4.6.1 Operadores aritméticos ..............26 4.6.2 Operadores lógicos ................26 4.6.3 Operadores comparativos ..............26 4.6.4 Otros operadores ................27 4.6.5 Caracteres de delimitación ..............27 Festo GDCP-CMXR-SW-DE es 0909a...
Página 6
Llamada de subprograma <CALL> ............51 8.7.2 Retorno al programa <RETURN> ............52 Programas paralelos ..................53 8.8.1 Ejecución de programa paralelo <RUN> ..........54 8.8.2 Finalización del programa paralelo <KILL> ........... 54 Influencia del avance de proceso ............... 54 Festo GDCP-CMXR-SW-DE es 0909a...
Página 7
Ajuste de formas de rampa <Ramp> ............. 98 10.7 Conexión de la velocidad de trayectoria constante <VconstOn> ......99 10.8 Desconexión de la velocidad de trayectoria constante <VconstOff> ....101 11. Instrucciones de avance aproximado ..............102 11.1 Segmentos cero ....................103 Festo GDCP-CMXR-SW-DE es 0909a...
Página 8
Sistemas de referencia ..................134 15.6 Pausa programada <ProgHold> ................. 135 16. Sistema de comunicación .................. 137 16.1 Textos de mensaje ................... 137 16.2 Información <SetInfo> ..................139 16.3 Advertencia <SetWarning> ................140 16.4 Mensaje de error <SetError> ................141 Festo GDCP-CMXR-SW-DE es 0909a...
Página 9
Método ResetRisingEdge para borrar flancos ........163 18.5 Módulo de salida digital DOUT................. 163 18.5.1 Instanciación ..................163 18.5.2 Variable.................... 165 18.5.3 Métodos ................... 166 18.5.4 Espera a estado, métodos Wait/WaitN ..........167 18.5.5 Método Read para lectura de estado ..........167 Festo GDCP-CMXR-SW-DE es 0909a...
Página 10
Ajuste del encoder, método Set ............186 18.9.5 Lectura del encoder, método Read ........... 187 18.10 Módulo CANopen COPDEVICE ................187 18.10.1 Instanciación ..................188 18.10.2 Métodos ................... 188 18.10.3 Escritura de SDO, método WriteSDO ..........189 Festo GDCP-CMXR-SW-DE es 0909a...
Página 11
Unidad giratoria con pinzas neumáticas ........... 206 20.5 Empleo de la interface PLC ................210 20.5.1 Tarea ....................210 20.5.2 Interface PLC ..................210 20.5.3 Programa secuencial ................ 211 21. Árbol de menús de las instrucciones FTL............213 Festo GDCP-CMXR-SW-DE es 0909a...
Este manual es válido a partir de la versión de software 1.20 del CMXR. Esta versión es compatible con la versión de software 1. Festo GDCP-CMXR-SW-DE es 0909a...
Uso de la documentación Este documento está concebido para los usuarios y programadores de robots que funcionan con el sistema CMXR de Festo. Existe una introducción al manejo y a la programación. La formación correspondiente del personal es condición previa indispensable.
Peligro de muerte, lesiones graves y daños materiales por movi- miento accidental de los ejes. Medidas de seguridad de este manual Advertencia ¡PELIGRO! La inobservancia puede tener como consecuencia daños materiales y lesiones físicas graves. Atención La inobservancia puede tener como consecuencia daños materiales graves. Festo GDCP-CMXR-SW-DE es 0909a...
Si es necesario realizar trabajos de medición o de comprobación en la instalación, éstos deberán ser efectuados por un electricista. Atención Sólo deben utilizarse repuestos autorizados por Festo. Festo GDCP-CMXR-SW-DE es 0909a...
Edición de programas Información general FTL es la sigla que se obtiene de Festo Teach Language. FTL es un lenguaje de progra- mación de movimientos y sirve para programar los controles CMRX. El FTL es un lenguaje de programación para robótica y sistemas de manipulación muy completo pero fácil de aprender y dominar.
Página 17
La flecha inferior marca la instrucción activa del cálculo por adelantado de proceso. La distancia entre las dos flechas es el avance de proceso. Más información y ejemplos sobre el avance de proceso se describen en el capítulo 20.3 Control del avance de proceso. Festo GDCP-CMXR-SW-DE es 0909a...
Estructura de programa Todos los programas FTL están guardados en la tarjeta de memoria (Compact Flash Card) del control multieje CMXR en el directorio “application\control\teachcontrol” (en adelante denominado “directorio de aplicación de texto”). Los programas se disponen en una estructura de carpetas. Un proyecto contiene los programas de movimientos asignados.
Si es necesario utilizar datos o programas en varios proyectos, éstos se guardan en el proyecto global. De ese modo se garantiza la coherencia de datos. El proyecto global “_global” se carga y activa automáticamente al arrancar el CMXR. Archivo de programa FTL “tip”...
Archivo de datos FTL “<nombre>.tid” En el sistema de mando CMXR, los datos sirven como variable y para la comunicación. La estructura de proyecto permite guardar los datos de una manera clara y limitar el acceso a ellos.
Como todos los programas tienen acceso a los datos compartidos de sistema, estos datos deben utilizarse con cuidado. Compruebe que varios programas no puedan acceder simultáneamente a estos datos. Si es necesario, bloquéelos con las medidas necesarias en la aplicación. Festo GDCP-CMXR-SW-DE es 0909a...
Ejemplo: cpos1 CARTPOS := (100, 50, 100, 0, 0, 0) cpos2 CARTPOS := (600, 550, 100, 180, 0, 0) index DINT := 17 Los tipos de variables posibles se describen en los capítulos siguientes. Festo GDCP-CMXR-SW-DE es 0909a...
Página 23
Al descargar el proyecto/ programa o en caso de caída de tensión de alimentación se pierden los datos modificados en el programa. Indicación Para guardar de manera permanente los valores de posición en la tarjeta de memoria puede utilizarse la macro “SavePosition”. Festo GDCP-CMXR-SW-DE es 0909a...
THEN END_IF ELSIF ELSE GOTO LABEL WHILE END_WHILE LOOP END_LOOP RETURN KILL MAPTO WAIT BOOL DINT DWORD REAL STRING ARRAY El resto de tipos de datos creados a partir de estas claves también son palabras clave. Festo GDCP-CMXR-SW-DE es 0909a...
Las cadenas de caracteres, los denominados strings, se abren y cierran con el carácter “. Pueden incluir todos los caracteres imprimibles. La longitud de una cadena está limitada a 255 caracteres. Son válidos todos los caracteres ASCII. Ejemplo de una cadena de caracteres válida: "Control multieje CMXR-C1” Festo GDCP-CMXR-SW-DE es 0909a...
Negación (NO) Tabla 4.2 Operadores lógicos 4.6.3 Operadores comparativos Operador Significado < Menor que <= Menor o igual que Igual <> No igual a >= Mayor o igual que > Mayor que Tabla 4.3 Operadores comparativos Festo GDCP-CMXR-SW-DE es 0909a...
Tabla 4.4 Otros operadores 4.6.5 Caracteres de delimitación Operador Significado Asignación de valor para variables Carácter de separación para instanciar variables Carácter de enumeración en listas de parámetros para llamar a funciones o macros Tabla 4.5 Caracteres de delimitación Festo GDCP-CMXR-SW-DE es 0909a...
Los paréntesis se utilizan para agrupar cálculos de acuerdo con el orden de procesamiento. Los paréntesis son procesados de dentro a fuera. Ejemplo: (Index < 10) (Index > 5) THEN END_IF Distance (xRow + 10) * Index Festo GDCP-CMXR-SW-DE es 0909a...
Si se realiza una operación que rebasa el tamaño de la matriz, aparece un aviso. Declaración de matrices: Sintaxis <nombre> : ARRAY [ <tamaño de la matriz> ] OF <tipo de datos> := ( <inicialización>) END_VAR Festo GDCP-CMXR-SW-DE es 0909a...
Página 32
El tamaño de la matriz se indica por medio de una constante (número entero). El tamaño de la matriz no se puede indicar con una variable. // Matriz con 10 elementos Matrix1 ARRAY [10] DINT // Matriz con 12 elementos Matrix2 ARRAY [12] CARTPOS Festo GDCP-CMXR-SW-DE es 0909a...
Página 33
// Matriz de 2 dimensiones con 3 elementos cada una = 9 elementos Matrix1 ARRAY [3, 3] DINT // Matriz de 3 dimensiones con 3 elementos o 2 elementos = 18 elementos Matrix2 ARRAY [3, 3, 2] DINT Festo GDCP-CMXR-SW-DE es 0909a...
Matrix ARRAY [5, 19, 10..34] REAL Los límites de rango de la matriz son: De 0 a 4 para la primera dimensión o Abrir LOW da como resultado 0 o Abrir HIGH da como resultado 4 Festo GDCP-CMXR-SW-DE es 0909a...
Página 35
// El índice tiene el valor 0 Index := LOW(Matrix2) // El índice tiene el valor 2 Index := HIGH(Matrix2) // El índice tiene el valor 0 Index := LOW(Matrix2[0]) // El índice tiene el valor 7 Index := HIGH(Matrix2[0]) Festo GDCP-CMXR-SW-DE es 0909a...
Ejemplo: La instrucción Ref_Index := 10 describe la variable Index_C con el valor 10. Indicación Al leer una variable mapeada, se lee la variable asignada. De igual modo, al escribir en una variable mapeada, se escribe en la variable asignada. Festo GDCP-CMXR-SW-DE es 0909a...
Comprobación de variables de referencia, <IS_MAPPED> Con la función IS_MAPPED se puede comprobar si una variable de referencia está vinculada a una variable. Si en el programa se utiliza una variable de referencia que no está vinculada, se producirá un error. Festo GDCP-CMXR-SW-DE es 0909a...
Página 38
La variable de referencia no está vinculada Esta función se utiliza, por ejemplo, al emplear variables de referencia en un subprograma, en cuyo caso la vinculación de variables se realiza fuera de dicho subprograma. Ejemplo: IS_MAPPED(Level) THEN ELSIF SetError(“Not mapped”) END_IF Festo GDCP-CMXR-SW-DE es 0909a...
FTL. La instrucción DO se puede utilizar combinada con todas las instrucciones de movimiento, por ejemplo Ptp o Lin. Ejemplo de establecimiento de una salida: Al alcanzarse la pos2 se establece la salida del módulo “Vacuum” (vacío). Lin(pos1) Lin(pos2) Vacuum.Set() Lin(pos3) Festo GDCP-CMXR-SW-DE es 0909a...
Página 40
En el siguiente contorno se debe conectar una salida digital en los tramos rectos y se debe desconectar dicha salida en los arcos de círculo. Lin(Pos1) Applicator.Set() Lin(Pos2) Applicator.Reset() CircIp(Ipos1,Pos3) Applicator.Set() Lin(Pos4) Applicator.Reset() CircIp(Ipos2,Pos1) Pos1 Pos2 Ipos1 Ipos2 Pos4 Pos3 Festo GDCP-CMXR-SW-DE es 0909a...
Indicación Si los segmentos de movimiento desembocan tangencialmente uno en otro, el avance aproximado no influirá en modo alguno en la ejecución de la instrucción DO. La instrucción DO se ejecuta aquí. P1´ Festo GDCP-CMXR-SW-DE es 0909a...
Las variables reales también pueden inicializarse con valores enteros. Ejemplo de inicializaciones válidas: index DINT := 1 REAL := 3.1415 radius REAL := 10 flag BOOL := TRUE message STRING “Hello” Festo GDCP-CMXR-SW-DE es 0909a...
(p. ej., >, <=,=). El enlace de varias comparaciones se estructura mediante los correspondientes niveles entre paréntesis. Para los ejemplos siguientes se van a utilizar las variables indicadas a continuación: Marker BOOL Flag1 BOOL Flag2 BOOL Flag3 BOOL Index DINT Festo GDCP-CMXR-SW-DE es 0909a...
Con la instrucción ELSIF pueden formularse varias condi- ciones. Con la instrucción ELSE es posible definir instrucciones que pueden saltarse si las condiciones no son pertinentes. La instrucción IF se cierra con la instrucción END_IF. Festo GDCP-CMXR-SW-DE es 0909a...
// ninguna señal definida END_IF Instrucciones de salto En los programas FTL debe efectuarse saltos con frecuencia. Estos saltos pueden ser condicionales o incondicionales. Para realizar un salto, se requiere un punto inicial y un destino. Festo GDCP-CMXR-SW-DE es 0909a...
(LABEL). La instrucción GOTO no puede programarse hasta ese momento. 8.5.2 Salto condicional <IF…GOTO> Con la instrucción IF…GOTO se ejecutan saltos condicionales. Esta instrucción requiere, como la bifurcación del programa IF…THEN, una condición que debe cumplir el tipo de dato BOOL. Festo GDCP-CMXR-SW-DE es 0909a...
Atención La programación de bucles sin fin puede afectar al comportamiento de operación del control CMXR. Los bucles sin fin deben poseer instrucciones como Wait o WaitTime para no bloquear el control CMXR.
Después de cada pasada, el valor de las variables de bucle suma uno y el valor final se calcula de nuevo. El bucle puede contener un número ilimitado de instrucciones. Sintaxis LOOP <número> DO <instrucciones> END_LOOP Ejemplos: LOOP // 10 pasadas index index + 13 Festo GDCP-CMXR-SW-DE es 0909a...
último se activa desde un programa y no directamente desde el proyecto. Proceso: Mientras se procesa el subprograma, el programa que lo ha llamado espera a que acabe. Al finalizar el subprograma se retorna automáticamente al programa superior, que se reanuda. Festo GDCP-CMXR-SW-DE es 0909a...
No es posible realizar llamadas recursivas de programas. Por tanto, un programa no se puede llamar a sí mismo. Además, tampoco es posible llamar al programa que está llamando. Sintaxis CALL <nombre del programa> ( ) Festo GDCP-CMXR-SW-DE es 0909a...
éstos terminan. El programa principal se reanuda. Ejemplo: CALL CheckPart() // Llamar a subprograma CheckPart partOk THEN partStatus := 10 // Variable global para el valor de retorno RETURN // Adelanto del fin de programa END_IF Lin(pos3) Festo GDCP-CMXR-SW-DE es 0909a...
8. Control de programa Programas paralelos Un programa del proyecto activo o del proyecto global también puede iniciarse como proceso paralelo. El sistema operativo del CMXR se encarga del proceso en paralelo de estos programas gracias al sistema interno multitarea. Indicación Las instrucciones de desplazamiento en una cinemática sólo son...
Este tiempo de espera repercute en el comportamiento de movimiento y fuerza la deten- ción del cálculo por adelantado de proceso, que a su vez para el movimiento. El tiempo de espera empieza a contar una vez ejecutada la instrucción anterior. Transcurrido este tiempo se reanuda el programa. Festo GDCP-CMXR-SW-DE es 0909a...
Página 55
// Avanzar a posición de agarre Gripper.Set() // Cerrar pinza WaitTime(70) // Esperar 70 ms de tiempo de agarre Lin(pos1) // Avanzar sobre posición de agarre Desarrollo del movimiento: Velocidad de trayectoria Tiempo de espera 70 Tiempo pos1 pos1 pos2 Festo GDCP-CMXR-SW-DE es 0909a...
El procesamiento de la instrucción WAIT se efectúa en el avance de proceso, es decir cuando el control CMXR calcula por adelantado. Si la condición no se cumple, el avance de proceso (cálculo por adelantado) se detiene hasta que se cumple la condición de la instrucción WAIT.
Página 57
// Esperar a que haya una pieza Lin(pos1) // Avanzar sobre pieza Lin(pos2) // Avanzar sobre pieza Lin(pos3) // Avanzar sobre bandeja Lin(pos4) // Posar pieza WaitTime(0) // Esperar a proceso principal Vacuum.Reset() // Vacío desconectado Lin(pos3) // Avanzar sobre bandeja Festo GDCP-CMXR-SW-DE es 0909a...
150 ms. Sin embargo, el avance de proceso no se debe detener. Lin(pos1) // Avanzar a seguridad Lin(printPos) // Avanzar a posición de estampado WaitOnPath(150) // Esperar 150 ms Lin(pos1) // Avanzar a seguridad Festo GDCP-CMXR-SW-DE es 0909a...
Página 59
8. Control de programa Velocidad de trayectoria Tiempo de espera 150 ms Tiempo pos1 pos1 printPos Festo GDCP-CMXR-SW-DE es 0909a...
En el siguiente ejemplo, se alcanzan posiciones y el avance de proceso se detiene hasta que se recorre el 80% del segmento de la trayectoria. A continuación, en el ejemplo la variable Index adquiere el valor 10. Lin(Pos1) Lin(Pos2) WaitOnPos(80) Index := 10 Pos1 Pos2 Festo GDCP-CMXR-SW-DE es 0909a...
Una instrucción FTL no se procesa en el programa, es decir, el contenido no afecta de ningún modo. El contenido de la instrucción de programa se somete a la verificación de la sintaxis del compilador. Si, p. ej., se borra una variable utilizada, el error se emite al arrancar el programa. Festo GDCP-CMXR-SW-DE es 0909a...
Página 62
IF..THEN…ELSE, deben desactivarse todas las líneas de programa correspondientes. En la figura siguiente se muestra la máscara del programa de la unidad manual con instrucciones del programa desactivas en las líneas 8 a 10: Festo GDCP-CMXR-SW-DE es 0909a...
2. CARTPOS para la indicación en el sistema de coordenadas cartesianas. El número de ejes en CMXR está limitado a seis. Estos ejes pueden distribuirse en ejes cinemáticos y auxiliares. Las posiciones de todos los ejes se guardan en variables de posición.
Página 64
:= (100, 50, 30, 0, 0, 0, 0, 0, 0) posA1 REAL posA2 REAL Programa: Lin(startPos) // Avanzar a startPos posA1 startPos.a1 // Guardar en otra ubicación el valor de eje 1 posA2 startPos.a2 // Guardar en otra ubicación el valor de eje 2 Festo GDCP-CMXR-SW-DE es 0909a...
Página 65
Posición eje 5, no existe : REAL Posición eje 6, no existe : REAL Posición eje auxiliar 1, no existe : REAL Posición eje auxiliar 2, no existe : REAL Posición eje auxiliar 3, no existe Festo GDCP-CMXR-SW-DE es 0909a...
El eje más lento determina la dinámica. El movimiento del TCP se obtiene en este caso de la combinación del movimiento de ejes individuales. El movimiento en el TCP no está definido. Festo GDCP-CMXR-SW-DE es 0909a...
Página 68
AXISPOS o CARTPOS Tabla 9.1 Parámetros de la instrucción PTP La indicación de posición puede ser cartesiana o en el sistema de coordenadas de ejes (en relación con cada eje). El control multieje CMXR transforma las posiciones como corresponde. Ejemplo: Debe posicionarse un pórtico cartesiano con tres ejes X, Y, Z y un eje de rotación con...
Página 69
Como la herramienta posee una asimetría con el eje Z, esta trayectoria se comporta de un modo inesperado ya que, con la interpolación síncrona, todos los ejes se desplazan juntos a su punto de destino sin tener en cuenta la trayectoria descrita. Festo GDCP-CMXR-SW-DE es 0909a...
Distancia relativa que debe recorrerse AXISDIST o CARTDIST Tabla 9.2 Parámetros de la instrucción PtpRel La indicación de distancia puede ser cartesiana o relativa a cada eje. El control CMXR transforma las posiciones como corresponde. Ejemplo: En una aplicación de manipulación, la pieza se desplaza a cuatro posiciones, cada una a una unidad de medición.
Página 71
// Llamada de ciclo de comprobación PtpRel(distZpos) PtpRel(distX) Ptp(pos3) El ciclo de medición de la pieza, así como su evaluación, se procesan en el subprograma “verificar”. El contenido del subprograma no se representa para una mayor simplificación. Festo GDCP-CMXR-SW-DE es 0909a...
Eje 3 = Eje Z. Eje 4 = Eje de rotación de la herramienta. En el ejemplo debe recogerse una pieza en una posición y posarse en otra. Para ello, el eje de rotación debe estar posicionado como corresponde. Festo GDCP-CMXR-SW-DE es 0909a...
9. Instrucciones de movimiento Movimiento lineal <Lin> Con un movimiento lineal, el control multieje CMXR calcula una recta que lleva de la posición actual (posición inicial) a la posición programada (posición de destino). Este movimiento se calcula y ejecuta teniendo en cuenta los valores de trayectoria ajustados, como, p.
Dist Posición de destino AXISDIST o CARTDIST relativa Tabla 9.6 Parámetros de la instrucción LinRel La indicación de distancia puede ser cartesiana o relativa a cada eje. El control multieje CMXR transforma las posiciones como corresponde. Festo GDCP-CMXR-SW-DE es 0909a...
El radio de la trayectoria circular se obtiene a partir de un cálculo interno con punto inicial, punto de apoyo y punto final de la trayectoria circular. Festo GDCP-CMXR-SW-DE es 0909a...
La trayectoria circular se efectúa en un plano definido a partir de los tres puntos: punto inicial, punto de apoyo y punto final. Con esta definición se extiende el plano en el espacio donde se va a describir la trayectoria circular. Festo GDCP-CMXR-SW-DE es 0909a...
Página 80
En la figura se muestra una trayectoria circular con sus tres puntos de apoyo, que definen un plano en el espacio donde se encuentra la trayectoria. Indicación La trayectoria circular siempre está en un plano. No es posible realizar una interpolación helicoidal con una interpolación adicional perpendicular al plano. Festo GDCP-CMXR-SW-DE es 0909a...
AXISPOS o CARTPOS Tabla 9.7 Parámetros de la instrucción CircIp La indicación de posiciones puede ser cartesiana o relativa a cada eje. El control multieje CMXR transforma las posiciones como corresponde. Advertencia La instrucción círculo requiere la indicación de los puntos inicial y final.
Página 82
:= (1050, 400, 0, 0, 0, 0, 0, 0, 0) EndPos CARTPOS := (950, 300, 0, 0, 0, 0, 0, 0, 0) Programa: Lin(pos1) // Aproximar a punto inicial CircIp(IpPos, EndPos) // Movimiento circular en punto final Lin(pos2) // Retirada Festo GDCP-CMXR-SW-DE es 0909a...
AXISPOS o CARTPOS Punto final del arco AXISPOS o CARTPOS Tabla 9.8 Parámetros de la instrucción PtpToCircIp La indicación de posiciones puede ser cartesiana o relativa a cada eje. El control multieje CMXR transforma las posiciones como corresponde. Festo GDCP-CMXR-SW-DE es 0909a...
AXISPOS o CARTPOS Tabla 9.9 Parámetros de la instrucción LinToCircIP La indicación de posiciones puede ser cartesiana o relativa a cada eje. El control multieje CMXR transforma las posiciones como corresponde. Ejemplo: se debe recorrer el contorno siguiente: Eje Y Posición inicial StartPos...
Una vez detectado el estado, la instrucción StopMove detiene el movi- miento. En el capítulo 20.1 Detención de movimientos en la página 194 se da un ejemplo de utilización de la instrucción StopMove. Festo GDCP-CMXR-SW-DE es 0909a...
La cinemática se detiene con la máxima rampa de frenado definida para detener la cine- mática. La reducción de la dinámica por un override no afecta a la detención. Sintaxis StopProgram() Ejemplo: Vel(dynCart, 1000) Lin(pos1) Lin(pos2) SetInfo(“insert workpiece and press start”) StopProgram() Lin(pos3) CALL Conture1 Festo GDCP-CMXR-SW-DE es 0909a...
Dentro del programa, los valores pueden ser sustituidos en cualquier momento por las siguientes instrucciones de dinámica: Gráfico de ajustes de los valores dinámicos en Festo Configuration Tool: Festo GDCP-CMXR-SW-DE es 0909a...
Estos valores máximos están guardados en la configuración de los diferentes ejes. El control CMXR cuenta con un limitador de los valores dinámicos que recibe el nombre de “limitador de la dinámica”. Este limitador opera en el cálculo por adelantado del programa FTL y compara constantemente los valores dinámicos que se deben recorrer con la máxima...
Página 93
10. Instrucciones de dinámica Programa: Ptp(pos0) Jerk(dynPtp, 50) // Sacudida para PTP al 50% Ptp(pos1) Jerk(dynCart, 5000) // Sacudida en la trayectoria a 5000 mm/s³ Lin(pos2) Festo GDCP-CMXR-SW-DE es 0909a...
Con la instrucción Ovr puede ajustarse directamente un valor de override en el programa. Éste tiene el mismo efecto que una modificación efectuada con las teclas de la unidad manual. Festo GDCP-CMXR-SW-DE es 0909a...
Página 95
No es posible un avance aproximado hasta el siguiente segmento de la trayectoria. Ejemplo: // Ajuste del override al 100% Ovr(100) Lin(pos1) Lin(pos2) // Ajuste del override al 60% Ovr(60) Lin(pos3) Lin(pos4) Festo GDCP-CMXR-SW-DE es 0909a...
DynOvr ( <Value> : REAL) Parámetro Significado Unidad Value Valor del override dinámico Porcentaje Tabla 10.8 Parámetros de la instrucción DynOvr Indicación El override no modifica la trayectoria. El valor programado no repercute sobre el cálculo por adelantado del programa. Festo GDCP-CMXR-SW-DE es 0909a...
Forma de rampa trapezoidal trapezoidal con un con un factor aproximado factor 0,5 de 0,1 Si no se indica el parámetro opcional, éste se ajusta automáticamente al factor 0,5 y se obtiene el triángulo de aceleración. Festo GDCP-CMXR-SW-DE es 0909a...
Ramp( <Ramptype> : ENUM, OPT <Param> : REAL) Parámetro Significado Unidad Ramptype Tipo de rampa, selecciona la forma de Enumeración: rampa TRAPEZOID SINE SINESQUARE MINJERK Param Parámetro para rampas trapezoidales ----- Tabla 10.9 Parámetros de la instrucción Ramp Festo GDCP-CMXR-SW-DE es 0909a...
área de avance aproximado. El control multieje CMXR calcula la velocidad posible de trayectoria basándose en la trayectoria y en los valores dinámicos máximos de la mecánica. El límite de la velocidad posible de trayectoria lo determina la dinámica de la mecánica.
Página 100
Esto significa que si la cine- mática no alcanza toda su velocidad porque un override la limita, se activará dicho control y se producirá un error. Ejemplo: Programa: Lin(pos1) VconstOn(25, TRUE) Lin(pos2) Lin(pos3) VconstOff Festo GDCP-CMXR-SW-DE es 0909a...
VconstOff ( ) Indicación La interrupción del programa de usuario no provoca la desconexión automática de la monitorización de la velocidad de trayectoria. Al volver a arrancar el programa de usuario debe desconectarse siempre primero la monitorización. Festo GDCP-CMXR-SW-DE es 0909a...
El avance aproximado se efectúa de dos maneras: 1. Avance aproximado por velocidad basado en la velocidad. 2. Avance aproximado por posición basado en una distancia predefinida. En las páginas siguientes se describen estos tipos. Festo GDCP-CMXR-SW-DE es 0909a...
// Nuevo posicionamiento en pos2 = no es posible el avance aproximado Lin(pos2) Lin(pos3) Puesto que la posición pos2 se ha programado más de una vez, en este punto del programa se produce una parada sobre la trayectoria. Festo GDCP-CMXR-SW-DE es 0909a...
El avance aproximado está limitado al 50% de la longitud del segmento de trayectoria. Si el área de avance aproximado es mayor que el límite máximo permitido, el control multieje CMXR la reduce automáticamente al 50% de la longitud del segmento de trayec- toria.
100%. La siguiente figura muestra los perfiles de velocidad de un desplazamiento hasta las posiciones 1 y 2. Para el área de avance aproximado se han definido distintos valores. Festo GDCP-CMXR-SW-DE es 0909a...
Página 106
área de avance aproximado no es un radio, sino una curva de polinomio que se deriva de los valores dinámicos actuales de los ejes. Ejemplo: OvlVel(100) // Avance aproximado al 100 % Lin(pos1) Lin(pos2) OvlVel(75) // Avance aproximado al 75% Lin(pos3) Festo GDCP-CMXR-SW-DE es 0909a...
La trayectoria en el área de avance aproximado no es un radio, sino un polinomio de quinto grado. Este polinomio genera la trayectoria suave máxima posible, lo que no puede hacerse con un arco de círculo. Sintaxis OvlCart (<Distance> : REAL) Festo GDCP-CMXR-SW-DE es 0909a...
Página 108
5 mm. Área de avance aproximado Vel(dynCart, 300) // Velocidad de trayectoria a 300 mm/s VconstOn(25, TRUE) // Conectar vel. trayectoria const. OvlCart(5) // Ajustar área de avance aproximado Lin(p1) Lin(p2) Lin(p3) Lin(p4) Lin(p5) Lin(p6) Festo GDCP-CMXR-SW-DE es 0909a...
Indicación El anidamiento de sistemas de referencia debe efectuarse con precaución. En ocasiones éste es un mecanismo útil para una programación eficiente aunque dificulta la lectura del programa y el anidamiento descuidado puede provocar colisiones. Festo GDCP-CMXR-SW-DE es 0909a...
RefSys. Con el parámetro RefSys pueden indicarse todas las posibilidades en los tipos de datos. A continuación se describen las instrucciones para activar un sistema de referencia. Festo GDCP-CMXR-SW-DE es 0909a...
Para relacionar el sistema de coordenadas de la cinemática con el sistema de coordenadas universales, se debe efectuar una referenciación con la variable de sistema _system.world. Ejemplo: Datos: refsysdata0 REFSYSDATA := (MAPX("_system.world”), 100, 150, 0, 0, 0, 0) Programa: SetRefSys(refsysdata0) Festo GDCP-CMXR-SW-DE es 0909a...
Con el parámetro baseRs puede indicarse otra referencia, la cual tiene efecto aditivo en el sistema de referencia. Para relacionar el sistema de coordenadas de la cinemática con el sistema de coordenadas universales, se debe efectuar una referenciación con la variable de sistema _system.world. Festo GDCP-CMXR-SW-DE es 0909a...
Para el sistema de referencia de la paleta 1 se utiliza la variable RefPal1, y RefPal2 para la paleta 2. Datos: refPal1 REFSYSDATA := (MAPX("_system.world”), 0, 0, 0, 0, 0, 0) refPal2 REFSYSDATA := (MAPX("_system.world”), 0, 0, 0, 0, 0, 0) pos1 CARTPOS := (100, 80, 70, 0, 0, 0, 0, 0, 0) Festo GDCP-CMXR-SW-DE es 0909a...
Página 115
// Avance a seguridad en el sistema universal SetRefSys(refPal1) // Activar desplazamiento de paleta 1 CALL Feed() // Llamar subprograma Feed SetRefSys(refPal2) // Activar desplazamiento de paleta 2 CALL Feed() // Llamar subprograma Feed SetRefSysWorld() // Activar sistema universal Lin(pos1) Festo GDCP-CMXR-SW-DE es 0909a...
Durante el recorrido de referencia debe observarse que los ejes participantes pueden moverse con libertad. Además, deben seleccionarse los valores dinámicos apropiados para estos movimientos de modo que el recorrido de referencia sea razonable. En este caso, no se recomiendan valores dinámicos elevados. Festo GDCP-CMXR-SW-DE es 0909a...
Página 117
Si se especifica el método de recorrido de referencia 99, se utilizarán los parámetros de recorrido de referencia tal como fueron guardados en el accionamiento mediante Festo Configuration Tool (FCT). En ese caso, el recorrido de referencia se realiza igual que durante la puesta en funcionamiento de los diferentes ejes.
Para determinar si la referenciación ha acabado o para leer su estado existen las instrucciones WaitRefFinished y IsAxisReferenced. Sintaxis RefAxisAsync(<axis>:AXIS, OPT <refData>:REFDATA, OPT <timeout>:REAL) Festo GDCP-CMXR-SW-DE es 0909a...
Página 119
Si se especifica el método de recorrido de referencia 99, se utilizarán los parámetros de recorrido de referencia tal como fueron guardados en el accionamiento mediante Festo Configuration Tool (FCT). En ese caso, el recorrido de referencia se realiza igual que durante la puesta en funcionamiento de los diferentes ejes.
A la hora de ejecutar la macro RefAxisAsync, es obligatorio utilizar la macro WaitRefFinished para garantizar la ejecución subsiguiente del programa. Si no se aguarda al final del recorrido de referencia, el cálculo por adelantado del programa puede dar lugar a instruc- ciones que provoquen errores. Festo GDCP-CMXR-SW-DE es 0909a...
IsAxisReferenced(axis : AXIS ) : BOOL Parámetro Significado Unidad Axis Eje seleccionado objeto de la interrogación Enumeración A1, A2, hasta A9 Tabla 13.5 Parámetros de la instrucción IsAxisReferenced Si el eje indicado está referenciado se emite TRUE, de lo contrario, FALSE. Festo GDCP-CMXR-SW-DE es 0909a...
14. Herramientas Herramientas El control multieje CMXR permite definir los datos de longitud de una herramienta. Estos datos se describen en forma de un vector de seis dimensiones. De ese modo puede asig- narse una orientación, además de las dimensiones, a la herramienta. La orientación se define a partir del método de Euler ZYZ.
Página 123
A = 0 Asimetría B = 0 en Z C = 0 La orientación del sistema de coordena- das de herramienta no cambia. Si es Asimetría en X necesario, deberá ajustarse con los parámetros A, B y C. Festo GDCP-CMXR-SW-DE es 0909a...
Página 124
El programador debe asegurarse de asignar correctamente los datos TCP a la herramienta. El control multieje CMXR no conoce ninguna referencia de los datos de herramienta en relación a la herramienta física.
Estos datos TCP actuales se incluyen en el cálculo de la planifi- cación de trayectoria de las instrucciones de movimiento siguientes. A continuación se presenta un ejemplo en el que se describe el comportamiento de los datos de herramienta aplicados a un eje giratorio neumático. Festo GDCP-CMXR-SW-DE es 0909a...
Página 126
Este movimiento giratorio modifica la orientación de la herramienta. Para que el control multieje CMXR pueda calcular un movimiento cartesiano en el espacio teniendo en cuenta la posición del TCP debe indicarse la orientación nueva después del movimiento giratorio.
Página 127
Nuestra cinemática cartesiana debe desplazarse con la herramienta vertical de una posición 1 a otra 2. A continuación, el eje giratorio gira la herramienta. Ahora, la herramienta girada debe desplazarse a la posición 2. Desplazamiento de pos1 a pos2: Tool(tool1) Lin(pos1) Lin(pos2) Festo GDCP-CMXR-SW-DE es 0909a...
Página 128
El movimiento giratorio provoca que el Tool Center Point (TCP) se desplace hacia arriba. Debido al eje neumático, el control no puede efectuar automáticamente movimientos de compensación. Para aproximarse a la posición 2 debe definirse la orientación nueva de la herramienta. Festo GDCP-CMXR-SW-DE es 0909a...
Página 129
Con el eje giratorio eléctrico se programa la orientación deseada dentro de una instrucción de desplazamiento. A continuación, el control CMXR calcula automáticamente la posición de los ejes teniendo en cuenta la orientación programada. Festo GDCP-CMXR-SW-DE es 0909a...
15. Interface PROFIBUS Interface PROFIBUS El CMXR puede ser controlado por una unidad de control de nivel superior (PLC/IPC) mediante la interface PROFIBUS. Además, a través de ella pueden escribirse y leerse datos en forma de variables. Todos estos datos son datos compartidos de sistema y están a disposición de todos los programas FTL.
La interface dispone de 16 señales de entrada y salida digitales que en adelante se verán siempre desde la perspectiva del CMXR. Las señales están disponibles en forma de variable booleana en el control. Estas señales booleanas se intercambian cíclicamente con la unidad de control de nivel superior.
ésta. Las variables enteras están guardadas en una matriz a la que se accede a través de los índices 0 a 255. Sintaxis plc_Dint [ <Arrayindex> ] : DINT Festo GDCP-CMXR-SW-DE es 0909a...
La interface soporta dos tipos de datos de posición. Desde el control externo es posible enviar posiciones de eje y posiciones cartesianas al control multieje CMXR. El número máximo es de 256 posiciones de eje y 256 posiciones cartesianas. Estas variables no se someten a un intercambio de datos cíclico y el control externo puede escribirlas o leerlas...
Los sistemas de referencia que se establecen a través de la interface externa sólo pueden enlazarse dentro de los sistemas de referencia de la interface. No es posible referenciar a un sistema de referencia definido fuera de la interface. Ejemplo: Lin(pos2) SetRefSys(plc_RefSys[3]) Lin(pos3) Lin(pos4) Festo GDCP-CMXR-SW-DE es 0909a...
El programa del ejemplo se aproxima a diferentes posiciones estando ajustado un avance aproximado por velocidad del 100%. Si la señal de la pausa programada está activada, el programa se para en este punto. Con ello se obtiene el siguiente desarrollo de velocidad: Festo GDCP-CMXR-SW-DE es 0909a...
Página 136
15. Interface PROFIBUS Desarrollo con pausa programada: Tiempo entre la parada y la reanudación de la marcha Velocidad Tiempo pos1 pos2 pos3 pos4 pos5 Desarrollo sin pausa programada: Velocidad Tiempo pos1 pos2 pos3 pos4 pos5 Festo GDCP-CMXR-SW-DE es 0909a...
16.1 Textos de mensaje La programación en FTL (Festo Teach Language) permite generar mensajes de información, advertencia y error desde el programa de movimientos. El propio usuario define libre- mente los textos de mensaje como cadena de caracteres (string). Esta cadena de caracte- res también puede contener entradas variables en forma de dos parámetros como máximo...
Página 138
En un programa se crean dos variables con valores asignados. Estos valores se emiten con la macro SetInfo. Variables: param1 DINT := 7 param2 REAL := 3.48 Código de programa: SetInfo(“Sensor %1, pressure %2 bar”, param1, param2) Se visualiza el siguiente texto informativo: “Sensor 7, pressure 3,48 bar”. Festo GDCP-CMXR-SW-DE es 0909a...
Un mensaje de información no influye en el movimiento de ningún modo. Sólo sirve para informar. Ejemplo: pressure := Sensor.Read(); // Leer un valor de presión cycle cycle // Contar ciclo SetInfo ("Cycle %1 finished, Value %2”, cycle, pressure) Indicación en la unidad manual: Festo GDCP-CMXR-SW-DE es 0909a...
Un mensaje de advertencia no influye en el movimiento de ningún modo. Sólo sirve para informar. Ejemplo: pressure := Sensor.Read(); // Leer un valor de presión cycle cycle // Contar ciclo SetWarning("Cycle %1 finished, Value %2”,cycle, pressure) Indicación en la unidad manual: Festo GDCP-CMXR-SW-DE es 0909a...
Param2 Segundo parámetro posible Tabla 16.3 Parámetros de la instrucción SetError En la memoria de errores del control multieje CMXR, se marca un mensaje de error con el símbolo Indicación Si se emite un mensaje de error, el movimiento se detiene. La cinemática no puede continuar el recorrido hasta que no se acusa...
Los valores no se guardan en el archivo de datos de la tarjeta de memoria. Los va- lores se pierden cuando se deselecciona el programa/proyecto. Para guardar la posición puede utilizarse la macro SavePosition. Festo GDCP-CMXR-SW-DE es 0909a...
(<valor de fecha y hora> : DINT) := Time ( ) Esta instrucción lee la fecha y hora del sistema del control y lo devuelve como valor DINT. Ejemplo: value := Time() Leer la hora y la fecha actuales del sistema Festo GDCP-CMXR-SW-DE es 0909a...
Indicación opcional, valor de fecha y Segundos hora que debe convertirse Tabla 17.4 Parámetros de la función TimeStr Ejemplo: str_Time := TimeToStr() // Leer la hora y la fecha actuales del sistema Devolución: str_Time “Mon Feb 13 11:23:44 2006” Festo GDCP-CMXR-SW-DE es 0909a...
El tramo desconocido se calcula conociéndose el ángulo y el cateto opuesto o la hipotenusa. Si no se conoce el ángulo, el CMXR prepara la función arco seno. Esta función calcula el ángulo contenido, p. ej., alfa, a partir del cateto opuesto y de la hipotenusa.
ángulo y el cateto adyacente o la hipotenusa. Si no se conoce el ángulo, el CMXR prepara la función arco coseno. Esta función calcula el ángulo contenido, p. ej., alfa, a partir del cateto adyacente y de la hipotenusa.
Página 148
Ejemplo: := 30 // Cateto adyacente alpha := 23.5 // Ángulo alfa / COS(alpha) // Cálculo de la hipotenusa := 45.89 // Cateto adyacente := 145.67 // Hipotenusa value alpha := ACOS(value) // Cálculo del ángulo Festo GDCP-CMXR-SW-DE es 0909a...
El tramo desconocido se calcula conociéndose el ángulo y el cateto adyacente o el cateto opuesto. Si no se conoce el ángulo, el CMXR prepara la función arco tangente. Esta función calcula el ángulo contenido, p. ej., alfa, a partir del cateto adyacente y del cateto opuesto.
El tramo desconocido se calcula conociéndose el ángulo y el cateto adyacente o el cateto opuesto. Si no se conoce el ángulo, el CMXR prepara la función arco cotangente. Esta función calcula el ángulo contenido, p. ej., alfa, a partir del cateto adyacente y del cateto opuesto.
C² = A² + B² o C = √(A² + B²) Ejemplo de programa: := 152.67 // Longitud del cateto A := 63.12 // Longitud del cateto B value := SQRT(value) // Cálculo de la hipotenusa Festo GDCP-CMXR-SW-DE es 0909a...
Mask se desplaza 3 bits a la derecha. Por la izquierda se insertan 3 bits con el valor “0”. Contenido de la variable: 1001 1111 0000 1100 1111 1111 1001 1100 Se obtiene el patrón de bits: 0001 0011 1110 0001 1001 1111 1111 0011 Festo GDCP-CMXR-SW-DE es 0909a...
Mask gira 4 bits a la derecha. En el lado izquierdo se insertan de nuevo los 4 bits. Contenido de la variable: 1011 1111 0110 1001 0011 000 1001 1010 Se obtiene el patrón de bits: 1010 1011 1111 0110 1001 0011 000 1001 Festo GDCP-CMXR-SW-DE es 0909a...
Convierte un único carácter en un valor ASCII. Sintaxis (<variable> : DINT / DWORD) := ORD (<valor> : STRING) Ejemplo: Con la siguiente instrucción se asigna a la variable Dint1 el valor 65. Dint1 := ORD(“A”) Festo GDCP-CMXR-SW-DE es 0909a...
Programa FTL Tipo de módulo Presión: tipo valor Valor analógico analógico Peso: tipo valor analógico Instanciación de módulo en el programa de aplicación Declaración de una instancia de módulo <nombre de instancia> : <tipo de instancia> (parámetro) Festo GDCP-CMXR-SW-DE es 0909a...
Los dos tipos de acceso requieren un tiempo de ejecución diferente. Para más información, consulte la descripción de cada uno de los módulos en los capítulos siguientes. En el ejemplo se accede a la variable de módulo State de la instancia Sensor: Sensor.state THEN Lin(pos1) Festo GDCP-CMXR-SW-DE es 0909a...
último punto donde aún sea posible reanudar el movimiento. El movimiento no se detiene sino que avanza continuamente. No es posible el avance aproximado a los movimientos siguientes. Indicación Si no se especifica el parámetro, se supone FALSE. Festo GDCP-CMXR-SW-DE es 0909a...
Instanciación con el editor FTL La instanciación se efectúa en el diálogo para crear variables seleccionando <tipo:> (DIN) e introduciendo el <identificador:> (Sensor). En la línea <MAPTO DINPORT> se activa la referencia real a una entrada digital configurada. Festo GDCP-CMXR-SW-DE es 0909a...
Más información y ejemplos para generar mensajes de error se describen en el capí tulo 20.2 Empleo de los módulos de entrada y salida. Festo GDCP-CMXR-SW-DE es 0909a...
Los métodos pueden seleccionarse en dicha lista. En la unidad manual, los métodos pueden seleccionarse mediante el árbol de menú en el punto “Digital Inputs”. En la figura se muestra la selección de métodos del módulo DIN de la unidad manual. Festo GDCP-CMXR-SW-DE es 0909a...
El valor de retorno sigue siendo TRUE aunque la entrada hubiese cambiado entre tanto a FALSE. El estado del flanco se determina independientemente del ciclo del programa FTL y se ejecuta en un ciclo propio. Festo GDCP-CMXR-SW-DE es 0909a...
Para instanciar el módulo de salida digital se requiere la referencia de hardware de la salida digital. Ésta se indica con el parámetro <output> durante la instanciación. Sintaxis <nombre de instancia> .DOUT( <timeout> : DINT, <RisingEdge> : BOOL, MAPX(“< output>”)) Festo GDCP-CMXR-SW-DE es 0909a...
Página 164
La instanciación del módulo de salida digital por medio de la unidad manual se realiza en la máscara de variables seleccionando el tipo de dato DOUT. La instanciación en la unidad manual guarda automáticamente la entrada en el archivo de datos. Festo GDCP-CMXR-SW-DE es 0909a...
Aunque no se ha llamado al módulo, éste guarda el estado de un flanco de subida. Dicho estado puede evaluarse en el programa. Output La variable output describe la referencia a la salida de hardware del módulo. Festo GDCP-CMXR-SW-DE es 0909a...
En el editor FTL se visualiza automáticamente una lista con los métodos disponibles introduciendo el punto. Los métodos pueden seleccionarse en dicha lista. En la figura se muestra la selección de métodos del módulo DOUT de la unidad manual. Festo GDCP-CMXR-SW-DE es 0909a...
El valor de retorno sigue siendo TRUE aunque la salida hubiese cambiado entre tanto a FALSE. El estado del flanco se determina independientemente del ciclo del programa FTL y se ejecuta en un ciclo propio. Sintaxis <nombre de instancia>.RisingEdge (OPT ovlEnable: BOOL) : BOOL Festo GDCP-CMXR-SW-DE es 0909a...
<nombre de instancia>.Set ( ) <nombre de instancia>.Reset ( ) Set y Reset se ejecutan en la ejecución principal. El módulo NO influye en el avance aproximado. Ejemplo: Lin(pos1) Lin(pos2) cylinder.Set() // Activa la salida cylinder a TRUE Lin(pos3) Festo GDCP-CMXR-SW-DE es 0909a...
<nombre de instancia>.Pulse (timeMs :DINT; OPT pauseAtInterrupt: BOOL) Parámetro Tipo Significado timeMs DINT Tiempo correspondiente a la longitud de impulso en ms pauseAtInterrupt BOOL Detención del tiempo de impulso cuando el programa se para Tabla 18.5 Parámetros del método Pulse Festo GDCP-CMXR-SW-DE es 0909a...
Para instanciar el módulo de entrada analógica se requiere la referencia de hardware de la entrada analógica. Ésta se indica con el parámetro input durante la instanciación. Sintaxis <nombre de instancia> .AIN( <timeout> : DINT, MAPX(“< input>”)) Festo GDCP-CMXR-SW-DE es 0909a...
La instanciación del módulo de entrada analógica por medio de la unidad manual se realiza en la máscara de variables seleccionando el tipo de dato AIN. La instanciación en la unidad manual guarda automáticamente la entrada en el archivo de datos. Festo GDCP-CMXR-SW-DE es 0909a...
Esperar a que el valor de entrada se encuentre dentro del límite indicado WaitOuts Esperar a que el valor de entrada se encuentre fuera del límite indicado Read Leer el valor de entrada Tabla 18.7 Métodos del módulo de entrada analógica Festo GDCP-CMXR-SW-DE es 0909a...
<nombre de instancia>.WaitGrt(value : REAL, OPT ovlEnable : BOOL) Para la descripción del parámetro ovlEnable, véase el capítulo 18.3.1 de la página 158. Parámetro Tipo Significado value REAL Valor límite Tabla 18.8 Parámetros de los métodos WaitLss, WaitGrt Ejemplo: Lin(pos1) temperature.WaitLss(65.0, TRUE) Lin(pos2) Festo GDCP-CMXR-SW-DE es 0909a...
18.6.6 Interrogación del valor, método Read El método Read lee el valor actual de la entrada analógica. Sintaxis <nombre de instancia>.Read(OPT ovlEnable) Para la descripción del parámetro ovlEnable, véase el capítulo 18.3.1 de la página 158. Festo GDCP-CMXR-SW-DE es 0909a...
Instanciación con el editor FTL La instanciación se efectúa en el diálogo para crear variables seleccionando <tipo:> (AOUT) e introduciendo el <identificador:> (aoutQuantity). En la línea <MAPTO AOUTPORT> se activa la referencia real a una salida analógica configurada. Festo GDCP-CMXR-SW-DE es 0909a...
El propio programa secuencial debe generar un mensaje de error. Si se indica el valor 0, se realiza una comprobación inmediatamente. Si la señal no tiene el valor deseado, el programa secuencial debe generar un mensaje de error. Festo GDCP-CMXR-SW-DE es 0909a...
Los métodos pueden seleccionarse en dicha lista. En la unidad manual, los métodos pueden seleccionarse mediante el árbol de menú en el punto “Analog Outputs”. En la figura se muestra la selección de métodos del módulo AOUT de la unidad manual. Festo GDCP-CMXR-SW-DE es 0909a...
Para la descripción del parámetro ovlEnable, véase el capítulo 18.3.1 de la página 158. Parámetro Tipo Significado value REAL Valor límite Tabla 18.13 Parámetros de los métodos WaitLss, WaitGrt Ejemplo: Lin(pos1) // Esperar a que el valor sea menos de 110.0 quantity.WaitLss(110.0, TRUE) Lin(pos2) Festo GDCP-CMXR-SW-DE es 0909a...
El método Read lee el valor actual de la salida analógica. Sintaxis <nombre de instancia>.Read(OPT ovlEnable) Para la descripción del parámetro ovlEnable, véase el capítulo 18.3.1 de la página 158. Ejemplo Lin(pos1) // Leer la cantidad sin parar sobre la trayectoria value := quantity.Read(TRUE) Lin(pos2) Festo GDCP-CMXR-SW-DE es 0909a...
<tipo:> (CLOCK) e introduciendo el <identificador:> (clkTimer). Instanciación con la unidad manual La instanciación del módulo de reloj por medio de la unidad manual se realiza en la máscara de variables seleccionando el tipo de dato CLOCK. Festo GDCP-CMXR-SW-DE es 0909a...
Los métodos pueden seleccionarse en dicha lista. En la unidad manual, los métodos pueden seleccionarse mediante el árbol de menú en el punto “Timing Blocks”. En la figura se muestra la selección de métodos del módulo CLOCK de la unidad manual. Festo GDCP-CMXR-SW-DE es 0909a...
éste se pone a cero y sigue funcionando. Sintaxis <nombre de instancia>.Reset ( ) Ejemplo: Timer.Reset() // El reloj se reinicia 18.8.6 Lectura del reloj, método Read Con el método Read es posible leer el valor de fecha y hora en milisegundos (ms). Festo GDCP-CMXR-SW-DE es 0909a...
<nombre de instancia>.ToStr(OPT ovlEnable : BOOL) : STRING Para la descripción del parámetro ovlEnable, véase el capítulo 18.3.1 de la página 158. Valor de retorno: cadena de caracteres con la información de fecha y hora dd hh:mm:ss:ms Ejemplo: Datos: time STRING Festo GDCP-CMXR-SW-DE es 0909a...
Instanciación con el editor FTL La instanciación se efectúa en el diálogo para crear variables seleccionando <tipo:> (ENCODER) e introduciendo el <identificador:> (encTrack). En la línea <MAPTO ENCPORT> se activa la referencia real a una entrada de encoder configurada. Festo GDCP-CMXR-SW-DE es 0909a...
La variable Port describe la referencia a la entrada de hardware. 18.9.3 Métodos El módulo de encoder dispone de varios métodos: Método Descripción Ajustar manualmente el valor del encoder incremental Read Leer el valor del encoder incremental Tabla 18.17 Métodos del módulo de encoder Festo GDCP-CMXR-SW-DE es 0909a...
Con el parámetro mode puede definirse el punto de la activación. mode Significado DIRECT El valor se activa en el próximo ciclo de sistema E/S ZEROPULSE El valor se activa con el próximo impulso cero del encoder Tabla 18.19 Modos del método Set Ejemplo: enc0.Set(1000, DIRECT) Festo GDCP-CMXR-SW-DE es 0909a...
:= enc0.Read() 18.10 Módulo CANopen COPDEVICE El módulo CANopen puede utilizarse en el programa para activar equipos conectados con el CMXR a través del bus CAN de periféricos. Atención En el bus CAN de periféricos pueden controlarse equipos CANopen pero estos equipos no están sujetos al comportamiento PARADA DE EMERGENCIA de la cinemática.
En el editor FTL se visualiza automáticamente una lista con los métodos disponibles introduciendo el punto. Los métodos pueden seleccionarse en dicha lista. En la unidad manual, los métodos pueden seleccionarse mediante el árbol de menú en el punto “CANopen Devices”. Festo GDCP-CMXR-SW-DE es 0909a...
Si el conjunto se escribe con éxito se devuelve TRUE, de lo contrario se devuelve FALSE. Ejemplo: oData := 12000 Axis3_copd.WriteSDO(16#6085, 0, oData, thirtytwo_bits) 18.10.4 Lectura de SDO, método ReadSDOSigned Con el método ReadSDOSigned, el bus CAN puede leer conjuntos de datos con signo. Festo GDCP-CMXR-SW-DE es 0909a...
Página 190
Tabla 18.23 Parámetros del método ReadSDOSigned Si el conjunto se lee, se devuelve TRUE, de lo contrario, se devuelve FALSE. Ejemplo: dint_iData DINT := 0 Programa: Axis3_copd.ReadSDOSigned(16#6098, 0, dint_iData) SetInfo("método de recorrido de referencia leído: %1”, dint_iData) Festo GDCP-CMXR-SW-DE es 0909a...
Índice de SDO subindex DINT Subíndice de SDO data DWORD Datos que se van a leer Tabla 18.24 Parámetros del método ReadSDOUnsigned Si el conjunto se lee con éxito se devuelve TRUE, de lo contrario se devuelve FALSE. Festo GDCP-CMXR-SW-DE es 0909a...
Cada señal analógica tiene forma de tipo de dato estructurado y contiene los datos: Value : REAL Valor de la señal Error : BOOL Información sobre un error de la señal Para acceder a estos datos se utiliza el nombre de hardware y el operador punto. Festo GDCP-CMXR-SW-DE es 0909a...
Página 193
19. Señales de periféricos Ejemplo: Una señal de entrada analógica se denomina “Level”. El acceso al estado del sensor se declara: Level.Value Esta expresión es de tipo REAL y puede utilizarse como una variable en el programa. Festo GDCP-CMXR-SW-DE es 0909a...
Para detectar si una placa de chapa está mecanizada existe otro sensor (para detectar pilas vacía Sistema de pinzas con detección de avance Entrada: inCollision Vía de rodillos Pila de chapa Sensor para detectar pilas vacías Entrada: inStackNotEmpty Festo GDCP-CMXR-SW-DE es 0909a...
Página 195
Para esta aplicación pueden utilizarse más posiciones, pero el ejemplo se limita a las indicadas. safetyDepositPos safetyPosStack depositPos takePosStack Como la altura de pila varía, la altura de recogida es desconocida y se fija debajo de la pila. Festo GDCP-CMXR-SW-DE es 0909a...
Página 196
Esta posición se complementa con una distancia de seguridad. Así, en el ciclo siguiente puede avanzarse a mayor velocidad sobre la pila. A continuación se conmuta a una velocidad lenta hasta hacer contacto con la pieza. Festo GDCP-CMXR-SW-DE es 0909a...
SetError(“Timeout over”) RETURN END_IF // Reanudar ejecución Lin(pos) Indicación Si se emite un mensaje de error, el movimiento se detiene. No es posible reanudar la ejecución hasta que no se acusa recibo del mensaje de error. Festo GDCP-CMXR-SW-DE es 0909a...
Si el contador de bucles visualiza el ciclo real, el avance de proceso debe interrumpirse con una instrucción WaitTime. El contador de bucles se incrementará siempre al alcanzar la Pos3. Ello se muestra en la figura siguiente. Festo GDCP-CMXR-SW-DE es 0909a...
Una pieza debe transportarse desde la posición pos2 a la posición pos4. pos1 pos3 pos2 pos4 Como generador de vacío se utiliza una tobera Venturi. Ésta se controla a través de una salida digital del CMXR. Para ello se crea un módulo digital. Festo GDCP-CMXR-SW-DE es 0909a...
Página 201
La instrucción siguiente WaitTime impide el avance aproximado ya que el cálculo por adelantado de proceso se detiene en este punto y se reanuda transcurrido el ciclo. Festo GDCP-CMXR-SW-DE es 0909a...
Página 202
20. Ejemplos Perfil de movimiento: pos1 pos3 Área de avance aproximado pos2 pos4 Comportamiento en la línea temporal: Velocidad pos2 pos4 Tiempo pos1 pos1 pos3 pos3 Tiempo de espera Festo GDCP-CMXR-SW-DE es 0909a...
Una pieza debe transportarse desde la posición pos2 a la posición pos4. pos1 pos3 pos2 pos4 El equipo utilizado es una pinza paralela con sensórica de posición final. Se obtienen las señales digitales siguientes y se integran en forma de módulos en la programación FTL. Festo GDCP-CMXR-SW-DE es 0909a...
Página 204
El método de módulo Wait introduce una espera al acuse de recibo de la posición final que evita un avance aproximado a las posiciones de aceptación y posado. El cálculo por adelantado de proceso se detiene en este punto y se reanuda al conmutarse la señal de entrada digital. Festo GDCP-CMXR-SW-DE es 0909a...
Página 205
Comportamiento en la línea temporal: Velocidad pos2 pos4 Tiempo pos1 pos1 pos3 pos3 Tiempo de espera hasta acusar Tiempo de espera hasta acusar recibo del cierre de la pinza recibo de la apertura de la pinza Festo GDCP-CMXR-SW-DE es 0909a...
20. Ejemplos 20.4.3 Unidad giratoria con pinzas neumáticas La unidad giratoria con pinzas neumáticas HGDS de Festo reúne una pinza paralela con un actuador giratorio en una sola unidad. Unidad giratoria con pinzas HGDS con pinza paralela La unidad HGDS permite montar sensores de detección de posiciones finales de la pinza y de la unidad giratoria.
Página 207
// Esperar a pinza cerrada Lin(pos1) outPos0Degree.Reset() // Girar a 90 grados outPos90Degree.Set() Lin(pos3) inPos90Degree.Wait(TRUE) // Esperar a 90 grados con avance aproximado Lin(pos4) // Posición de posado outGripperClose.Reset() // Abrir pinza outGripperOpen.Set() inGripperOpen.Wait() // Esperar a pinza abierta Lin(pos3) Festo GDCP-CMXR-SW-DE es 0909a...
Página 208
El acuse de recibo del movimiento de giro de 90 grados no se ha detectado antes de alcanzar la posición pos3. Se espera al acuse de recibo en la posición pos3 y no se ejecuta el movimiento de avance aproximado a la pos4. pos1 pos3 Área de avance aproximado pos2 pos4 Festo GDCP-CMXR-SW-DE es 0909a...
Página 209
Tiempo de espera hasta acusar Tiempo de espera hasta acusar recibo del cierre de la pinza recibo de la apertura de la pinza Tiempo de espera hasta acusar recibo del giro de 90 grados Festo GDCP-CMXR-SW-DE es 0909a...
20.5.2 Interface PLC El intercambio de datos entre el control CMXR y el PLC se efectúa con dos bits de sin- cronización. En el primer paso, el PLC señaliza que se han enviado los datos. En el momento en que CMXR recibe los datos, se lo indica al PLC. A continuación se borran las dos señales de interface.
// Confirma la recepción WAIT plc_inboolreg[0] // Esperar a la respuesta del PLC plc_outboolreg[0] := FALSE // Avanzar a la posición de aceptación Lin(abovePickPos) Lin(pickPos) // Agarrar gripper.Set() WaitTime(200) // Avanzar a la posición de posado Lin(abovePickPos) Lin(aboveDepositPos) Festo GDCP-CMXR-SW-DE es 0909a...
Página 212
20. Ejemplos Lin(depositPos) // Posar gripper.Reset() WaitTime(200) // Avanzar a la posición de espera Lin(aboveDepositPos) Lin(waitPos) END_WHILE Festo GDCP-CMXR-SW-DE es 0909a...
A continuación se muestran todas las instrucciones del conjunto de instrucciones “Base de programación FTL”. Árbol de menús de la unidad manual CDSA: PLC-Interface (Interface de PLC) ProgHold Mathematical functions (Funciones) Position Functions (Funciones de posición) o ReadTargetPos o ReadActualPos o SavePosition Festo GDCP-CMXR-SW-DE es 0909a...
Página 214
21. Árbol de menús de las instrucciones FTL SQRT ASIN ACOS ATAN ATAN2 ACOT Time TimeToStr Reference Axis (Referenciar) RefAxis RefAxisAsync WaitRefFinished IsAxisReferenced Movement (Instrucciones de movimiento) CircIp LinToCircIp PtpToCircIp MoveAxisPtp MoveAxisCart PtpRel LinRel StopMove Dynamics (Instrucciones de dinámica) DynOvr Jerk OvlVel OvlCart Festo GDCP-CMXR-SW-DE es 0909a...
Página 215
WHILE … DO … END_WHILE LOOP RETURN Robot commands (Instrucciones de robot) Reference Systems (Sistemas de referencia) o SetRefSys o SetRefSys3P o SetRefSysWorld Tool System functions (Funciones del sistema) Time measurement (Cronometraje) o CLOCK.Reset o CLOCK.Start Festo GDCP-CMXR-SW-DE es 0909a...
Página 216
AIN.Read o AIN.WaitLss o AIN.WaitGrt o AIN.WaitIns o AIN.WaitOuts Analog Output (Salidas analógicas) o AOUT.Write o AOUT.Read o AOUT.WaitLss o AOUT.WaitGrt o AOUT.WaitIns o AOUT.WaitOuts CANopen devices (Dispositivos CANopen) o COPDEVICE.WriteSDO o COPDEVICE.ReadSDOUnsigned o COPDEVICE.ReadSDOSigned Festo GDCP-CMXR-SW-DE es 0909a...
Página 217
DIN.WaitN o DIN.RisingEdge o DIN.ResetRisingEdge Digital Output (Salidas digitales) o DOUT.Set o DOUT.Reset o DOUT.Write o DOUT.Pulse o DOUT.Read o DOUT.ResetRisingEdge o DOUT.Wait o DOUT.WaitN o DOUT.RisingEdge Incremental Encoder (Encoder incremental) o ENCODER.Set o ENCODER.Read Festo GDCP-CMXR-SW-DE es 0909a...
Página 218
OvlCart ..........107 Empleo de la interface PLC....210 OvlVel ..........105 Empleo de los módulos de entrada y Ovr ............94 salida .......... 197 Empleo de pinzas ......199 WAIT con entrada digital ....57 Festo GDCP-CMXR-SW-DE es 0909a...