Festo CMXR Instrucciones De Programacion
Ocultar thumbs Ver también para CMXR:
Tabla de contenido

Publicidad

Enlaces rápidos

Controlador
Descripción
Instrucciones de
programación
CMXR
FTL elemental
Descripción
560317
es 1205c
[761539]

Publicidad

Tabla de contenido
loading

Resumen de contenidos para Festo CMXR

  • Página 1 Controlador Descripción Instrucciones de programación CMXR FTL elemental Descripción 560317 es 1205c [761539]...
  • Página 3 Edición ______________________________________________________ 1205c Denominación _____________________________________ GDCP-CMXR-SW-ES Nº de art. ___________________________________________________ 560317  Festo AG & Co KG., D-73734 Esslingen, 2012 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 Lugar de almacenamiento del archivo: Nº de art. Descripción Indicador de Fecha de modificación revisión Redacción 0805NH 25.06.2008 Adaptación a CMXR-C1 Versión 1.20 0909a 25.08.2009 Adaptación a CMXR-C2 Versión 1.0 1002b 24.03.2010 Adaptación a CMXR-C2 Versión 1.1 1205c 04/04/2012 Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 5: Tabla De Contenido

    Identificadores ....................26 Palabras clave ....................26 Constantes numéricas ..................27 Cadenas de caracteres ..................27 Operadores y caracteres de delimitación ............27 4.6.1 Operadores aritméticos ..............28 4.6.2 Operadores lógicos ................28 4.6.3 Operadores comparativos ..............28 Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 6 Subprogramas ....................48 8.7.1 Llamada de subprograma <CALL> ............49 8.7.2 Retorno al programa <RETURN> ............50 Programas paralelos ..................51 8.8.1 Ejecución del programa paralelo <RUN> ..........52 8.8.2 Finalización del programa paralelo <KILL> ........... 52 Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 7 Detención del movimiento <StopMove> .............. 90 Detención del programa <StopProgram> ............. 91 10. Instrucciones de dinámica................... 92 10.1 Limitación automática de la dinámica, limitador de la dinámica ...... 93 10.2 Velocidades <Vel> ....................94 10.3 Aceleración <Acc> ....................95 Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 8 <IsAxisReferenced> ........127 14. Herramientas ....................128 14.1 Datos de herramienta ..................128 14.1.1 Datos del vector TCP ................ 128 14.2 Activación de datos de herramienta <Tool> ............131 14.2.1 Efecto de los datos TCP ..............131 Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 9 Coseno <COS>, <ACOS> ..................163 19.8 Tangente <TAN>, <ATAN> ................... 165 19.9 Cotangente <COT>, <ACOT> ................166 19.10 Tangente 2 <ATAN2> ..................167 19.11 Logaritmo <LN> ....................167 19.12 Exponente <EXP> ....................167 19.13 Valor absoluto <ABS> ..................168 Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 10 Pulse ................... 188 20.6 Módulo de entrada analógica AIN ..............189 20.6.1 Instanciación ..................189 20.6.2 Variable.................... 191 20.6.3 Métodos ................... 191 20.6.4 Espera a que el valor sea menor/mayor, métodos WaitLss, WaitGrt ................192 Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 11 Empleo de las entradas y salidas digitales ............211 21.2 Empleo de las entradas y salidas analógicas ............ 211 22. Programación de eventos .................. 213 22.1 Eventos soportados ..................213 22.2 Utilización del registro de instrucciones FTL ............. 214 22.3 Control temporal ..................... 215 Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 12 Fijación del indicador de frase ............240 24.7.4 Influencia del override ..............241 24.7.5 Trabajar en modo manual con velocidad reducida ......242 24.7.6 Interrupción del programa ..............242 24.8 Puntos de conmutación no ejecutados ............243 Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 13 Empleo de la interface PLC ................260 25.5.1 Tarea ....................260 25.5.2 Interface PLC ..................260 25.5.3 Programa secuencial ................ 261 Lista de instrucciones FTL ................. 263 Árbol de menús de las instrucciones FTL............268 Términos utilizados ................... 273 Índice ........................ 274 Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 14: Introducción

    En este documento se describe el juego de instrucciones FTL (Festo Teach Language) del control multieje CMXR de Festo. La programación del control CMXR se realiza con el editor FTL en el plugin correspondiente de Festo Configuration Tool (FCT) o con la unidad de mando manual CDSA-D1-VX.
  • Página 15: Medidas De Seguridad

    2.1 Uso de la documentación Este documento está concebido para los usuarios y programadores de robots que funcio- nan 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.
  • Página 16: Personal Cualificado

    2.5 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-ES es 1205c...
  • Página 17: Medidas De Seguridad Para El Producto Descrito

    Si es necesario realizar trabajos de medición o de comprobación en la instalación, deberán ser efectuados por un electricista. Atención Sólo deben utilizarse repuestos autorizados por Festo. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 18: Edición De Programas

    Edición de programas 3.1 Información general FTL es la sigla que se obtiene de Festo Teach Language. FTL es un lenguaje de programa- ción y sirve para programar los controles CMXR. FTL es un lenguaje de programación para robótica y sistemas de manipulación muy com- pleto pero fácil de aprender y dominar.
  • Página 19 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 25.3 Control del avance de proceso. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 20: Estructura De Programa

    3.5 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”). Los programas se disponen en una estructura de carpetas.
  • Página 21: Proyecto Ftl Global

    Si el programa se guarda mediante la unidad de mando manual CDSA o mediante el editor FTL de Festo (en Festo Configuration Tool), el archivo de datos locales de programa se genera automáticamente. Si la generación de programa se efectúa con otro software, debe observar que se guarde el archivo de datos correspondiente para cada programa.
  • Página 22: Archivo De Datos Ftl " .tId

    3. Edición de programas 3.8 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.
  • Página 23: Datos Compartidos De Sistema

    En la figura siguiente se muestra el proyecto global “_global” enlazado con datos compartidos de proyecto y locales. Además, en el área de objetos compartidos de sistema también se muestran programas compartidos de sistema. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 24: Creación De Instancias De Variables

    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. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 25 3. Edición de programas Nota Para guardar de manera permanente los valores de posición en la tarjeta de memoria puede utilizarse la instrucción FTL “SavePosition”. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 26: Estructura Del Lenguaje

    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-ES es 1205c...
  • Página 27: Constantes Numéricas

    255 caracteres. Son válidos todos los caracteres ASCII. Ejemplo de una cadena de caracteres válida: "Control multieje CMXR-C1" 4.6 Operadores y caracteres de delimitación Los operadores se utilizan en expresiones y describen cómo conectar los valores de variables y las constantes numéricas. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 28: Operadores Aritméticos

    Negación Tabla 4.2 Operadores lógicos 4.6.3 Operadores comparativos Operador Significado < Menor que <= Menor o igual que Igual a <> No igual a >= Mayor o igual que > Mayor que Tabla 4.3 Operadores comparativos Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 29: Otros Operadores

    Caracteres de delimitación Operador Significado Asignación de valor para variables Carácter de separación para crear instancias de variables Carácter de enumeración en listas de parámetros para acceder a funciones o instrucciones FTL Tabla 4.5 Caracteres de delimitación Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 30: Tipos De Datos Básicos

    Operaciones lógicas AND, OR, XOR, NOT DINT Operaciones aritméticas, operaciones de comparación DWORD Operaciones de bits AND, OR, XOR, NOT, SHL, SHR, ROL, ROR, =, <> REAL Operaciones aritméticas, operaciones de comparación STRING Operaciones de comparación, + Tabla 5.2 Operaciones posibles Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 31: Tipo De Datos Booleano (Bool)

    Ejemplo: Variables: pos1 BOOL pos2 BOOL pos3 BOOL min1PosValid BOOL allPosValid BOOL Código de programa: allPosValid pos1 AND NOT pos2 AND NOT pos3 min1PosValid pos1 pos2 pos3 Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 32: Tipos De Número Entero, Tipo De Datos Real, Tipos De Patrón De Bits

    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-ES es 1205c...
  • Página 33: Cadenas De Caracteres (String)

    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-ES es 1205c...
  • Página 34 El siguiente ejemplo muestra una matriz de 10 elementos cuyo índice va de 3 a 12: Matrix3 ARRAY [3...12] DINT Dimensiones Toda matriz tiene, por lo menos, una dimensión, pero también puede tener varias dimen- siones. Las matrices multidimensionales se indican especificando sus dimensiones entre corchetes y separadas por comas. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 35: Inicialización De Matrices

    Con la palabra clave LOW se puede averiguar el índice de rango más bajo de una matriz y con la palabra clave HIGH, el índice de rango más alto. Sintaxis <variable : DINT> := LOW( <variable de matriz> ) <variable : DINT> := HIGH( <variable de matriz> ) Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 36 // 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-ES es 1205c...
  • Página 37: Variables De Referencia (Mapeado)

    Ejemplo: La instrucción Ref_Index := 10 describe la variable Index_C con el valor 10. Nota 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-ES es 1205c...
  • Página 38: Declaración De Variables De Referencia

    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. Sintaxis IS_MAPPED (<variable de referencia>) : BOOL Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 39 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-ES es 1205c...
  • Página 40: Declaración De Variables

    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-ES es 1205c...
  • Página 41: Expresiones

    2. [] (Índice de matriz) 3. NOT (Negación) 4. * / MOD AND (Multiplicación, división, módulo, Y lógico) 5. + - OR XOR (Adición, sustracción, O/EXOR lógicos) 6. < <= = <> >= > (Operaciones de comparación) Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 42: Control De Programa

    (p. ej., >, <=,=). El enlace de varias comparaciones se estructura mediante los correspondientes niveles entre paréntesis. Para los ejemplos siguientes se utilizan las variables indicadas a continuación: Marker BOOL Flag1 BOOL Flag2 BOOL Flag3 BOOL Index DINT Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 43: Bifurcación

    Con la instrucción ELSIF pueden formularse varias condiciones. 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-ES es 1205c...
  • Página 44: Instrucciones De Salto

    // ninguna señal definida END_IF 8.5 Instrucciones de salto En los programas FTL es necesario efectuar 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-ES es 1205c...
  • Página 45: Marca De Salto

    (LABEL). Sólo entonces puede programarse la instrucción GOTO. 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 datos BOOL. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 46: Salto Absoluto

    Atención La programación de bucles sin fin puede reducir el comportamiento de operación del control CMXR. Los bucles sin fin deben poseer instrucciones como Wait o WaitTime para no bloquear el control CMXR.
  • Página 47: Instrucción Loop

    Después de cada ciclo, 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 Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 48: Subprogramas

    ú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-ES es 1205c...
  • Página 49: Llamada De Subprograma

    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-ES es 1205c...
  • Página 50: Retorno Al Programa

    éstos terminan. El programa principal se reanuda. Ejemplo: CALL CheckPart() // Llamar al 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-ES es 1205c...
  • Página 51: Programas Paralelos

    8. Control de programa 8.8 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. Nota Las instrucciones de desplazamiento en una cinemática sólo son...
  • Página 52: Ejecución Del Programa Paralelo

    Un programa paralelo activo puede terminarse con la instrucción “KILL” emitida desde el programa que lo ha llamado. Primero se detienen el programa y la cinemática, luego el programa finaliza. Sintaxis KILL <nombre del programa> La instrucción RETURN en programas paralelos también provoca su terminación. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 53: Influencia Del Avance De Proceso

    Extracto del programa de movimientos: Lin(pos1) // Avanzar sobre posición de sujeción Lin(pos2) // Avanzar a posición de la pinza Gripper.Set() // Cerrar pinza WaitTime(70) // Esperar 70 ms de tiempo de sujeción Lin(pos1) // Avanzar sobre posición de sujeción Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 54: Instrucción Condicional Wait

    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 cumpla la condición de la instrucción WAIT.
  • Página 55 Pos2 Pinza por vacío Pos3 Pos1 Pos4 Sensor Bandeja Pieza El sensor detecta si hay una pieza sobre la bandeja. Si hay una pieza preparada, el sistema de manipulación la recoge. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 56: Waitonpath - Instrucción Con Tiempo

    (por ejemplo la conmutación de una salida o la descripción de una variable) con la ejecución principal del programa. Sintaxis WaitOnPath ( <timeMS> : DINT ) Parámetro Significado Unidad time Tiempo de espera Tabla 8.1 Parámetro de la instrucción WaitOnPath Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 57: Waitonpos - Instrucción Con Tiempo

    Si está activado un avance aproximado y la distancia hasta el punto de destino del avance aproximado es lo bastante grande, el avance se ejecuta. El parámetro de la parte porcentual es opcional. Si no se especifica, tendrá un valor de 100%. Esto tendrá como consecuencia una parada en la trayectoria. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 58: Waitonmainrun - Esperar A La Ejecución Principal

    WaitOnMainRun y, a continuación, se describe la variable plc_InBool[3], que va al PLC. Lin(pos1) // Ir a pos1 Lin(pos2) // Ir a pos2 WaitOnMainRun() // Esperar a la ejecución principal plc_InBool[3] := TRUE // Señal a PLC Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 59: Instrucción Do

    La instrucción DO se ejecuta después de que se ha ejecutado, en la ejecución principal, la instrucción FTL situada antes de ella. La eje- cución se realiza incondicionalmente. La línea de programa sólo debe contener una instrucción DO, detrás de la cual puede haber exactamente una instrucción FTL. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 60 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) Ejemplo de descripción de variables en el PLC: Lin(pos1) SetVel(dynCart, 1000)) plc_Dint[3] := 5 Lin(pos2) Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 61: Insertar Comentarios

    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 sintaxis del compilador. Si, p. ej., se borra una variable utilizada, se emite un error al arrancar el programa. Festo GDCP-CMXR-SW-ES es 1205c...
  • 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 de mando manual con instrucciones del programa desactivas entre las líneas 8 y 10: Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 63: Instrucciones De Movimiento

    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: Posición De Eje

    := (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-ES es 1205c...
  • 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-ES es 1205c...
  • Página 66: Posición Cartesiana

    Ejemplo: Variable: startPos CARTPOS := (1050, 130, 30, 0, 0, 0, 0, 0, 0) newPos CARTPOS := (0, 0, 0, 0, 0, 0, 0, 0, 0) posX REAL posY REAL Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 67 X, Y y Z. Como no hay ejes manuales, no es posible orientar la herramienta. La programación de las variables a, b, c, aux1, aux2 o aux3 en la indicación de posición del tipo de datos CARTPOS no tiene efecto alguno. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 68: Programación Tipo Teach-In De Variable De Posición

    Para programar por teach-in una variable de posición es necesario que el control multieje CMXR esté situado en el modo de funcionamiento MANUAL y que la variable a programar por teach-in esté marcada. 1. Hacer clic en la variable y se mostrará...
  • Página 69 AXISPOS o CARTPOS Tabla 9.1 Parámetro 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 70 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-ES es 1205c...
  • Página 71: Programación Tipo Teach-In Del Movimiento Ptp

    Una aplicación posible es, p. ej., el posicionamiento relativo dentro de una retícula, como con una paleta. Sintaxis PtpRel ( <Dist> : AXISDIST o CARTDIST) Parámetro Significado Unidad Dist Distancia relativa que debe recorrerse AXISDIST o CARTDIST Tabla 9.2 Parámetro de la instrucción PtpRel Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 72 9. Instrucciones de movimiento La indicación de distancia puede ser cartesiana o relativa a cada eje. El control multieje 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 73: Movimiento De Un Eje

    Axis Eje físico seleccionado que Enumeración con los valores A1 debe desplazarse a A9 para los ejes 1 a 9 Posición de destino absoluta Unidad de los ejes definidos Tabla 9.3 Parámetros de la instrucción MoveAxisPtp Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 74 := (300, 0, 250, 0, 0, 0, 0, 0, 0) takeAbove CARTPOS := (350, 0, 145, 0, 0, 0, 0, 0, 0) pos2 CARTPOS := (575, 0, 250, 0, 0, 0, 0, 0, 0) takePos REAL := 96.5 Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 75: Programación Tipo Teach-In De La Posición Con Moveaxisptp Y Moveaxiscart

    Pos. Si se ha asignado una variable REAL al parámetro Pos, se escribe el valor en esta variable. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 76 Éste se muestra en el cuadro de selección en la página de posición. En la programación por teach-in de la posición de eje de la instrucción MoveAxisPtp, el sistema de referencia seleccionado carece de importancia. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 77: Movimiento Lineal

    9. Instrucciones de movimiento 9.5 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.
  • Página 78 Sin embargo, no está previsto que la brida de herramienta discurra por la trayectoria en el plano X-Y. Esta trayectoria se obtiene de la combinación de la cinemática y del vector del TCP, y se calcula mediante la transformación interna de coordenadas. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 79: Programación Tipo Teach-In Del Movimiento Lin

    Una aplicación posible es, p. ej., el posicionamiento relativo dentro de una retícula, como con una paleta. Sintaxis LinRel (<Dist> : AXISDIST o CARTDIST) Parámetro Significado Unidad Dist Posición de destino relativa AXISDIST o CARTDIST Tabla 9.6 Parámetro de la instrucción LinRel Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 80 9. Instrucciones de movimiento La indicación de distancia puede ser cartesiana o relativa a cada eje. El control multieje CMXR transforma las posiciones como corresponde. Ejemplo: Un contorno contiene tramos repetibles. Estos tramos pueden describirse de manera relativa. Este tipo de aplicación se resuelve con comodidad utilizando una programación de bucles.
  • Página 81: Movimiento Circular Con Punto De Apoyo

    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-ES es 1205c...
  • Página 82: Definición De Planos

    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-ES es 1205c...
  • Página 83 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 circular. Nota 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-ES es 1205c...
  • Página 84: Instrucción Circular Con Punto De Apoyo

    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 del punto de apoyo y el final.
  • Página 85 := (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-ES es 1205c...
  • Página 86: Instrucción Circular Con Punto De Apoyo, Aproximación Ptp

    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-ES es 1205c...
  • Página 87 CARTPOS := (950, 300, 0, 0, 0, 0, 0, 0, 0) Pos1 CARTPOS := (455, 300, 0, 0, 0, 0, 0, 0, 0) Programa: // Aproximación PTP, movimiento circular cartesiano PtpToCircIp(StartPos, IpPos, EndPos) Lin(Pos1) // Retirada Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 88: Instrucción Circular Con Punto De Apoyo, Avance Lineal

    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 con una cinemática: Eje Y Posición inicial StartPos...
  • Página 89: Programación Tipo Teach-In De Las Instrucciones Circulares

    La programación tipo teach-in se realiza siempre en una variable de posición. Para la programación tipo teach-in de otras posiciones, debe hacerse clic en la posición correspondiente para marcarla. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 90: Detención Del Movimiento

    Una aplicación de esta parada es, p. ej., el desplazamiento hasta un obstáculo detectado por un sensor. Una vez detectado el estado, la instrucción StopMove detiene el movimiento. En el capítulo 25.1 Detención de movimientos de la página 244 se da un ejemplo de utilización de la instrucción StopMove. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 91: Detención Del Programa

    La cinemática se detiene con la máxima rampa de frenado definida para detener la cinemá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-ES es 1205c...
  • Página 92: Instrucciones De Dinámica

    Dentro del programa, los valores pueden ser sustituidos en cualquier momento por las siguientes instrucciones de dinámica. Gráfica de ajustes previos de los valores dinámicos en Festo Configuration Tool: Valores estándares Punto a punto: Estándar...
  • Página 93: Limitación Automática De La Dinámica, Limitador De La Dinámica

    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 94: Velocidades

    := (100, 60, 0, 0, 0, 0, 0, 0, 0) Programa: Vel(dynPtp, 30) // Velocidad para PTP al 30 % Ptp(axis0) Vel(dynCart, 500) // Velocidad de trayectoria a 500 mm/s Lin(axis1) speed := 85 Vel(dynPtp, speed) // Velocidad para PTP al 85% Ptp(axis3) Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 95: Aceleración

    AXISPOS := (60, 60, 0, 0, 0, 0, 0, 0, 0) pos2 AXISPOS := (100, 60, 0, 0, 0, 0, 0, 0, 0) Programa: Ptp(pos0) Acc(dynPtp, 30, 30) // Aceleración para PTP al 30% Ptp(pos1) Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 96: Sacudida

    AXISPOS := (-60, -60, 0, 0, 0 ,0, 0, 0, 0) pos1 AXISPOS := (60, 60, 0, 0, 0, 0, 0, 0, 0) pos2 AXISPOS := (100, 60, 0, 0, 0, 0, 0, 0, 0) Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 97 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-ES es 1205c...
  • Página 98: Override

    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 de mando manual. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 99 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-ES es 1205c...
  • Página 100: Override Dinámico

    Parámetro Significado Unidad Value Valor del override dinámico Porcentaje Tabla 10.8 Parámetro de la instrucción DynOvr Nota El override no modifica la trayectoria descrita. El valor programado no repercute sobre el cálculo por adelantado del programa. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 101: Rampas De Aceleración

    Forma de rampa trapezoidal con Forma de rampa trapezoidal un factor aproximado de 0,1 con el factor 0,5 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-ES es 1205c...
  • Página 102: Ajuste De Formas De Rampa

    Ramp( <Ramptype> : RAMPTYPE, OPT <Param> : REAL) Parámetros 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-ES es 1205c...
  • Página 103: Conexión De La Velocidad De Trayectoria Constante

    á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 104 Esto significa que si la cinemática no alcanza toda su velocidad porque un override la limita, se activará dicha monitorización y se producirá un error. Ejemplo: Programa: Lin(pos1) VconstOn(25, TRUE) Lin(pos2) Lin(pos3) VconstOff Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 105: Desconexión De La Velocidad De Trayectoria Constante

    VconstOff ( ) Nota 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-ES es 1205c...
  • Página 106: Instrucciones De Avance Aproximado

    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-ES es 1205c...
  • Página 107: Segmentos Cero

    // 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 en la trayectoria. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 108: Área Extrema

    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.
  • Página 109: Avance Aproximado Por Velocidad

    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-ES es 1205c...
  • Página 110 á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-ES es 1205c...
  • Página 111: Avance Aproximado Por Geometría

    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-ES es 1205c...
  • Página 112 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-ES es 1205c...
  • Página 113: Sistemas De Referencia (Desplazamiento Del Punto Cero)

    Nota El encadenado de sistemas de referencia debe efectuarse con precaución. En ocasiones este mecanismo es útil para una programación eficiente aunque dificulta la lectura del programa y el anidamiento descuidado puede provocar colisiones. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 114: Datos Del Sistema De Referencia

    RefSys. Con el parámetro RefSys puede indicarse cualquier tipo de datos. A continuación se describen las instrucciones para activar un sistema de referencia. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 115: Sistema De Referencia Con Valores Directos

    Para relacionar la cinemática con el sistema de coordenadas universales, se debe establecer una referencia con la variable de sistema world. Ejemplo: Datos: refsysdata0 REFSYSDATA := (MAP(world), 100, 150, 0, 0, 0, 0) Programa: SetRefSys(refsysdata0) Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 116: Sistema De Referencia Con Tres Puntos

    Con el parámetro baseRs puede indicarse otra referencia, la cual tiene efecto aditivo en el sistema de referencia. Para relacionar la cinemática con el sistema de coordenadas universales, se debe establecer una referencia con la variable de sistema world. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 117: Programación Tipo Teach-In Del Sistema De Referencia Setrefsys3P

    180 grados del eje Z. Estos tres parámetros se pueden programar por teach-in con la ayuda de la unidad de mando manual o del software de emulación. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 118 Para la programación tipo teach-in de otra posición, deberá marcarse haciendo clic en ella. Nota El sistema de referencia seleccionado en la página de posición carece de importancia con la instrucción SetRefSys3P. La referencia al sistema de referencia se establece mediante el parámetro baseRs. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 119: Sistema De Referencia Universal

    Tabla 12.3 Parámetro de la instrucción SetRefSysDyn Nota Esta instrucción sólo funciona en combinación con el PLC integrado. Se puede encontrar más información sobre la instrucción y la función de seguimiento a ella asociada en la documentación especial “Programación FTL - Seguimiento”. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 120: Ejemplo

    := 1500 // Desplazamiento de paleta 2 en X refPal2.y := 300 // Desplazamiento de paleta 2 en Y Lin(pos1) // Avance a seguridad en el sistema universal SetRefSys(refPal1) // Activar desplazamiento de paleta 1 Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 121 12. Sistemas de referencia (desplazamiento del punto cero) CALL Feed() // Llamar subprograma de alimentación de piezas SetRefSys(refPal2) // Activar desplazamiento de paleta 2 CALL Feed() // Llamar subprograma de alimentación de piezas SetRefSysWorld() // Activar sistema universal Lin(pos1) Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 122: Referenciación De Una Cinemática

    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, unos valores dinámicos elevados no son razonables. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 123 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.
  • Página 124 Ésta es relevante desde el inicio del recorrido de referencia hasta alcanzar el flanco del interruptor correspondiente. Cuando se detecta el flanco, se conmuta a velocidad de avance lento y se finaliza el recorrido de referencia conforme al método seleccionado. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 125: Recorrido De Referencia Asíncrono

    En este caso, unos valores dinámicos elevados no son razonables. Los parámetros y su funcionamiento se corresponden con la instrucción RefAxis. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 126: Espera Al Final Del Recorrido De Referencia

    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.
  • Página 127: Interrogación Del Estado De Un Eje

    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ámetro de la instrucción IsAxisReferenced Si el eje indicado está referenciado se emite TRUE, de lo contrario, FALSE. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 128: Herramientas

    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 asignarse una orientación a la herramienta, además de las dimensiones. La orientación se define a partir del método de Euler ZYZ.
  • Página 129 A = 0 Asimetría B = 0 en Z C = 0 La orientación del sistema de coordenadas Asimetría en X de herramienta no cambia. Si es necesario, deberá ajustarse con los parámetros A, B y C. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 130 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.
  • Página 131: Activación De Datos De Herramienta

    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-ES es 1205c...
  • Página 132 Con ayuda de este eje puede girarse la herramienta a una posición fija. 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 133 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-ES es 1205c...
  • Página 134 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-ES es 1205c...
  • Página 135 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-ES es 1205c...
  • Página 136: Modo De La Cinemática

    La modificación del modo de la cinemática debe realizarse mediante un movimiento PTP (punto a punto). Una interpolación cartesiana, p. ej. lineal, no es posible. Atención: durante un movimiento PTP pueden generarse trayectorias y valores dinámicos inesperados en la herramienta. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 137: Clasificación De Los Modos De Cinemática, Variables

    Posición de la muñeca WRISTMODE WristNotSet, WristFlip WristNoFlip Elbow Posición del codo ELBOWMODE ElbowNotSet, ElbowLeft, ElbowRight Hombro Posición del hombro SHOULDERMODE ShoulderNotSet, ShoulderLeft, ShoulderRight Tabla 15.1 Clasificación de los modos Las opciones ajustables dependen de la cinemática empleada. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 138: Ajuste Del Modo De La Cinemática

    137. Ejemplo: // activar el modo del codo derecha SetRobotMode(WristNoMode, ElbowRight, ShoulderNoMode) // Movimiento PTP en la zona de trabajo del modo ElbowRight Ptp(StartPosModeRight) // movimientos cartesianos dentro del modo Lin(pos1) Lin(pos2) Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 139: Lectura Del Modo De La Cinemática

    = ElbowLeft THEN // desplazar el eje Z hacia arriba MoveAxisCart(Z, 0) // activar el modo del codo derecha SetRobotMode(WristNoMode, ElbowRight, ShoulderNoMode) // Movimiento PTP en la zona de trabajo del modo ElbowRight Ptp(StartPosModeRight) END_IF Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 140: Cambio Del Modo De La Cinemática

    Modo de la cinemática Modo de la cinemática “ElbowLeft” “ElbowRight” // activar el modo del codo derecha SetRobotMode(WristNoMode, ElbowRight, ShoulderNoMode) // Movimiento PTP en la zona de trabajo del modo ElbowRight Ptp(PosModeRight) // aplicar objeto 1 SetRefSys(Object1) CALL ApplyGlue Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 141 15. Modo de la cinemática Lin(SafePosObject1) // activar el modo del codo izquierda SetRobotMode(WristNoMode, ElbowLeft, ShoulderNoMode) // Movimiento PTP en la zona de trabajo del modo ElbowLeft Ptp(PosModeLeft) // aplicar objeto 2 SetRefSys(Object2) CALL ApplyGlue Lin(SafePosObject2) Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 142: Interface Profibus

    16. 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.
  • Página 143: Entradas Y Salidas Booleanas, Plc_Inbool, Plc_Outbool

    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.
  • Página 144: Variables Enteras De 32 Bits, Plc_Dint

    é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-ES es 1205c...
  • Página 145: Posiciones, Plc_Axispos, Plc_Cartpos

    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...
  • Página 146: Sistemas De Referencia, Plcrefsys

    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-ES es 1205c...
  • Página 147: Pausa Programada

    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-ES es 1205c...
  • Página 148 16. 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-ES es 1205c...
  • Página 149: Interface Ftl Con Plc Interno (Sólo Para Controlador Multieje Con Codesys)

    Para poder crear también procesos individuales en paralelo a los programas de movi- mientos, el control CMXR posee un PLC CoDeSys integrado, que permite una programación según IEC 61131-3. La descripción de rendimiento que figura en el manual del sistema del correspondiente control CMXR detalla en qué...
  • Página 150: Ejemplo Con Variables Del Sistema

    PLC debe procurarse que todos los datos necesarios estén a disposición del programa FTL en el momento adecuado. De ser necesario, deben implementarse medidas como, p. ej., esperar a datos especiales y, de este modo, detener el cálculo por adelantado. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 151: Ejemplo Con Variables De Sistema E Instrucción Map

    // Procesar pieza B CALL PartTypeB END_IF CycleFinished := TRUE // Confirmación de tareas resueltas = TRUE Lin(Home) Nota Gracias al uso de variables de referencia y de la instrucción se mejora la lectura de los programas. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 152: Sistema De Comunicación

    18.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 caracteres también puede contener entradas variables en forma de dos parámetros como...
  • Página 153 En un programa se crean dos variables con valores asignados. Estos valores se emiten con la instrucción 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-ES es 1205c...
  • Página 154: Información

    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 de mando manual: Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 155: Advertencia

    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 de mando manual: Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 156: Mensaje De Error

    Ejemplo: pressure := Sensor.Read(); // Leer un valor de presión cycle cycle // Contar ciclo SetError("Cycle %1 error, pressure %2", cycle, pressure) Indicación en la unidad de mando manual: Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 157 Si aparece un mensaje de error, el texto de error se visualiza también en la cabecera de la unidad de mando manual. Además, el LED de error de la unidad de mando manual se ilumina en rojo. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 158: Funciones

    AXISPOS := (0, 0, 0, 0, 0, 0, 0, 0, 0) axis1 AXISPOS := (60, -120, 0, 0, 0, 0, 0, 0, 0) axis2 AXISPOS := (-120, -120, -250, 0, 0, 0, 0, 0, 0) Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 159: Lectura De La Posición De Destino

    Los valores no se guardan en el archivo de datos de la tarjeta de memoria. Los valores se pierden cuando se deselecciona el programa o proyecto. Para guardar la posición puede utilizarse la instrucción SavePosition. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 160: Memorización Del Valor De Posición De Manera Permanente

    (<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-ES es 1205c...
  • Página 161: Conversión De Un Valor De Fecha Y Hora En Texto

    Indicación opcional, valor de fecha y Segundos hora que debe convertirse Tabla 19.4 Parámetro 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-ES es 1205c...
  • Página 162: Seno

    á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.
  • Página 163: Coseno

    á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 164 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-ES es 1205c...
  • Página 165: Tangente

    á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.
  • Página 166: Cotangente

    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.
  • Página 167: Tangente 2

    La función logaritmo calcula el logaritmo natural del argumento transferido. Sintaxis (<logaritmo natural> : REAL) := LN (<valor> : REAL) 19.12 Exponente <EXP> La función exponencial calcula el valor e(x). Sintaxis (<resultado> : REAL) := EXP (<valor>:REAL) Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 168: Valor Absoluto

    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-ES es 1205c...
  • Página 169: Desplazamiento De Bits

    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-ES es 1205c...
  • Página 170: Rotación De Bits

    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-ES es 1205c...
  • Página 171: Conversión De Un Valor En Una Cadena

    <ORD> 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-ES es 1205c...
  • Página 172: Establecer El Bit En Una Variable Word

    Si se transmite un valor no permitido en el parámetro bitNr, se emite un error. Ejemplo: // Ajustar la variable a 0 mask := 16#0000 // Ajustar el tercer bit en TRUE mask := SetBit(mask, 2) // Mask posee el valor 2#0000 0100 Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 173: Borrar El Bit En Una Variable Word

    Si se transmite un valor no permitido en el parámetro bitNr, se emite un error. Ejemplo: // Ajustar la variable a 2#0000 1111 mask := 16#000F // Ajustar el primer bit en FALSE mask := ResetBit(mask, 0) // Mask posee el valor 2#0000 1110 Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 174: Comprobar El Bit En Una Variable Word

    Si se transmite un valor no permitido en el parámetro bitNr, se emite un error. Ejemplo: CheckBit(mask, 1) THEN // Estado TRUE SetInfo("Bit 1 está fijado”) ELSE // Estado FALSE SetInfo("Bit 1 no está fijado”) END_IF Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 175: Módulos

    Programa FTL Tipo de módulo Presión: tipo valor analógico Valor 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-ES es 1205c...
  • Página 176: Funciones

    <nombre de instancia> . <nombre de variable> Para acceder a los datos de algunos módulos pueden utilizarse variables o funciones indistintamente. Cada tipo de acceso requiere un tiempo de ejecución diferente. En el capítulo dedicado a cada módulo se ofrece más información. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 177: Comportamiento Del Tiempo De Operación

    ú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. Nota Si no se especifica el parámetro, se supone FALSE. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 178: Módulo De Entrada Digital Din

    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-ES es 1205c...
  • Página 179 Más información y ejemplos para generar mensajes de error se describen en el capítulo 25.2 Empleo de los módulos de entrada y salida. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 180: Métodos

    En la unidad de mando 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 de mando manual. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 181: Espera A Estado, Métodos Wait/Waitn

    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-ES es 1205c...
  • Página 182: Método Resetrisingedge Para Borrar Flancos

    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, <Output> : MAPTO DOUTPORT) Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 183 La instanciación del módulo de salida digital por medio de la unidad de mando manual se realiza en la máscara de variables seleccionando el tipo de datos DOUT. La instanciación en la unidad de mando manual guarda automáticamente la entrada en el archivo de datos. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 184: Variable

    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-ES es 1205c...
  • Página 185: Métodos

    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 de mando manual. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 186: Espera A Estado, Métodos Wait/Waitn

    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 Para la descripción del parámetro ovlEnable, véase el capítulo 20.3.1 de la página 177. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 187: Borrado De Flancos, Resetrisingedge

    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) cylinder.Reset() // Activa la salida cylinder a FALSE Lin(pos4) Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 188: Activación De La Salida, Método Write

    Al principio del impulso, la salida siempre adquiere el estado TRUE y al final, el estado FALSE. No obstante, si la salida ya posee el estado TRUE, este estado se restablece una vez transcurrido el tiempo del impulso. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 189: Módulo De Entrada Analógica Ain

    Es posible indicar otros parámetros para, p. ej., realizar ajustes previos. Sin embargo, esto no es necesario para la instanciación y puede efectuarse en el programa. Ejemplo: Un sensor se guarda como instancia de módulo: Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 190 La instanciación del módulo de entrada analógica por medio de la unidad de mando manual se realiza en la máscara de variables seleccionando el tipo de datos AIN. La instanciación en la unidad de mando manual guarda automáticamente la entrada en el archivo de datos. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 191: Variable

    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 20.7 Métodos del módulo de entrada analógica Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 192: Espera A Que El Valor Sea Menor/Mayor, Métodos Waitlss, Waitgrt

    <nombre de instancia>.WaitGrt(value : REAL, OPT ovlEnable : BOOL) Para la descripción del parámetro ovlEnable, véase el capítulo 20.3.1 de la página 177. Parámetro Tipo Significado value REAL Valor límite Tabla 20.8 Parámetro de los métodos WaitLss, WaitGrt Ejemplo: Lin(pos1) temperature.WaitLss(65.0, TRUE) Lin(pos2) Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 193: Espera A Que El Valor Entre/Salga De Un Margen, Métodos Waitins, Waitouts

    20.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 20.3.1 de la página 177. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 194: Módulo De Salida Analógica Aout

    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-ES es 1205c...
  • Página 195: Variable

    Más información y ejemplos para generar mensajes de error se describen en el capítulo 25.2 Empleo de los módulos de entrada y salida. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 196: Métodos

    En la unidad de mando 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 de mando manual. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 197: Escritura Del Valor De Salida, Método Write

    Para la descripción del parámetro ovlEnable, véase el capítulo 20.3.1 de la página 177. Parámetro Tipo Significado value REAL Valor límite Tabla 20.13 Parámetro 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-ES es 1205c...
  • Página 198: Espera A Que El Valor Entre/Salga De Un Margen, Métodos

    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 20.3.1 de la página 177. Ejemplo: Lin(pos1) // Leer la cantidad sin parar sobre la trayectoria value := quantity.Read(TRUE) Lin(pos2) Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 199: Módulo De Reloj Clock

    (CLOCK) e introduciendo el <identificador:> (clkTimer). Instanciación con la unidad de mando manual La instanciación del módulo de reloj por medio de la unidad de mando manual se realiza en la máscara de variables seleccionando el tipo de datos CLOCK. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 200: Métodos

    En la unidad de mando 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 de mando manual. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 201: Puesta En Marcha Del Reloj, Método Start

    éste se pone a 0 y sigue funcionando. Sintaxis <nombre de instancia>.Reset ( ) Ejemplo: Timer.Reset() // El reloj se reinicia 20.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-ES es 1205c...
  • Página 202: Convertir El Valor De Fecha Y Hora En Una Cadena De Caracteres, Método Tostr

    <nombre de instancia>.ToStr(OPT ovlEnable : BOOL) : STRING Para la descripción del parámetro ovlEnable, véase el capítulo 20.3.1 de la página 177. Valor de retorno: cadena de caracteres con la información de fecha y hora con formato dd hh:mm:ss:ms Ejemplo: Datos: time STRING Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 203: Módulo De Encoder Encoder

    Es posible indicar otros parámetros para, p. ej., realizar ajustes previos. Sin embargo, esto no es necesario para la instanciación y puede efectuarse en el programa. Ejemplo: Un encoder se guarda como instancia de módulo: Instanciación en el archivo de datos enc0 ENCODER := (-1, MAP(Encoder_0)) Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 204 La instanciación del módulo de encoder por medio de la unidad de mando manual se realiza en la máscara de variables seleccionando el tipo de datos ENCODER. La instanciación en la unidad de mando manual guarda automáticamente la entrada en el archivo de datos. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 205: Variable

    En la figura se muestra la selección de métodos del módulo de encoder de la unidad de mando manual. 20.9.4 Ajuste del encoder, método Set Con el método Set, el programa de usuario puede ajustar un valor de encoder incremental. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 206: Lectura Del Encoder, Método Read

    El método devuelve el valor incremental del encoder. Éste no se computa con el valor de conversión. Para leer el valor estándar se utiliza el elemento Value para acceder directamente al puerto de la entrada de encoder. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 207: Módulo Canopen Copdevice

    := enc0.Read() 20.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 de PARADA DE EMERGENCIA de la cinemática.
  • Página 208: Métodos

    20.10.3 Escritura de SDO, método WriteSDO Con el método WriteSDO es posible escribir conjuntos de datos en el bus CAN. Sintaxis: <COPDEVICE>.WriteSDO ( <index> : DINT, <subindex> : DINT, <data> : DINT, <type> : SdoDataType ) : BOOL Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 209: Lectura De Sdo, Método Readsdosigned

    Tabla 20.23 Parámetros del método ReadSDOSigned Si el conjunto se lee con éxito 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-ES es 1205c...
  • Página 210: Lectura De Sdo, Método Readsdounsigned

    Índice de SDO subindex DINT Subíndice de SDO data DWORD Datos que se van a leer Tabla 20.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-ES es 1205c...
  • Página 211: Señales De Periféricos

    Cada señal analógica tiene forma de tipo de datos estructurados 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-ES es 1205c...
  • Página 212 21. 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 del tipo de datos REAL y puede utilizarse como una variable en el programa. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 213: Programación De Eventos

    Tabla 22.1 Resumen de los eventos FTL Los nombres de eventos/programas mencionados en la tabla deben respetarse estrictamente. En la imagen siguiente, se han creado los 3 eventos onf1keypressed, onprogstart, onstartup en el proyecto “GLOBAL”. Sólo se puede reaccionar a estos eventos. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 214: Utilización Del Registro De Instrucciones Ftl

    Nota Los nombres de los programas siempre se escriben en minúsculas debido al sistema de archivos del CMXR. Nota Si durante la ejecución de un programa de eventos se produce un error, esto conllevará una parada y la cancelación de este programa.
  • Página 215: Control Temporal

    22.4 Evento arranque del control, <onstartup> Tras el arranque del control multieje CMXR se ejecuta una vez el programa de eventos “onstartup”. Una posible aplicación para este evento es, p. ej., la carga automática de un programa FTL.
  • Página 216: Comportamiento Del Tiempo De Ejecución Durante El Funcionamiento

    Esto también incluye la parada de los ejes. Los eventos “onprogstart” y “onprogcontinue” se llaman antes de la ejecución del programa. Por consiguiente, en caso de utilizar estos eventos, siempre debe tenerse en cuenta la fijación temporal. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 217: Solapamiento De Eventos De Programa

    Esto puede realizarse mediante el uso de variables globales. Nota Al iniciar diferentes programas, debe tenerse en cuenta el orden arriba indicado para la ejecución de los programas de eventos y de los programas normales desencadenantes. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 218: Ejemplo: Activación De Un Aplicador Al Encolar

    Glue. Si el programa FTL se detiene, en el evento “onproginterrupt” se almacena el estado actual de la salida digital en la variable GlueOpened y el aplicador se cierra. Programa “onproginterrupt” // Recordar estado de aplicación Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 219 // Cerrar aplicador Glue.Reset() Si se reinicia el programa FTL parado, se ejecuta el programa de eventos “onprogcontinue”, donde se comprueba el estado de la variable GlueOpened y, en caso necesario, se vuelve a abrir el aplicador. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 220: Eventos Para Las Teclas F1 Y F2

    La unidad de mando manual CDSA dispone de 2 teclas de función con la designación F1 y F2 situadas en la parte izquierda de la barra inferior de teclas de función. Con la ayuda de los eventos de programa onf1keypressed, onf1keyreleased, onf2keypressed, onf2keyreleased se pueden utilizar estas dos teclas en la aplicación. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 221 Al continuar el programa (nueva instrucción de inicio), la pinza se sitúa en el estado en el que se encontraba al interrumpirse el programa. Programa “onprogcontinue” // Comprobar si la pinza estaba abierta IF(GripperOpen)THEN // Abrir pinza OpenGripper.Set() ELSE // Cerrar pinza OpenGripper.Reset() END_IF Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 222: Instrucciones Ftl Especiales Para Su Aplicación Con Eventos

    Con esta instrucción se puede consultar si el modo de funcionamiento activo es automático o manual. Sintaxis GetAutoModeActive( ): BOOL GetManualModeActive( ): BOOL Valores devueltos: FALSE Modo de funcionamiento no activo TRUE Modo de funcionamiento activo Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 223: Cargar Programa Ftl

    ¡Atención! Si se ejecuta la instrucción “LoadProgram” fuera de un programa de eventos, esto provocará la parada y descarga del programa. De este modo, todas las líneas de programa siguientes ya no se ejecutarán. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 224: Mensajes De Los Programas De Eventos

    Se cancela el evento de programa. Causa No está permitido utilizar instrucciones que influyan en la cinemática, p. ej. instrucciones de desplazamiento, datos dinámicos en programas de eventos. Medida Eliminar las instrucciones no permitidas del programa de eventos. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 225 Se cancela el evento de programa. Causa El evento de programa requiere demasiado tiempo. Posiblemente se han programado demasiadas instrucciones, una instrucción en espera (WaitTime) o un bucle sin fin. Medida Comprobar el programa y eliminar las instrucciones no permitidas. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 226: Puntos De Conmutación Simples

    Ejemplo: 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. Pos1 Pos2 Ipos1 Ipos2 Pos4 Pos3 Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 227: Punto De Conmutación Simple

    En este caso, el punto de conmutación se proyecta sobre la trayectoria del área de avance aproximado y se ejecuta. De este modo se pueden producir imprecisiones, cuyo alcance se desconoce y que se deben determinar mediante una puesta en funcionamiento. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 228: Comportamiento Del Tiempo De Ejecución De La Instrucción Do

    El ejemplo siguiente muestra una ejecución de programa que no brinda el resultado deseado: Started := FALSE Lin(Home) Lin(Pos2) Started := TRUE Started THEN ELSE END_IF Debido al cálculo por adelantado del programa FTL, la instrucción IF siempre ejecutará la derivación ELSE. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 229: Puntos De Conmutación De La Trayectoria

    La gráfica siguiente explica la definición del segmento: Segmento de trayectoria entre P1 y P2 Fin de segmento Inicio de segmento Punto de conmutación Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 230: Comportamiento En El Área De Avance Aproximado

    área. Esto puede realizarse, p. ej., mediante la inserción de segmentos circulares que desemboquen de forma tangencial. Punto de conmutación proyectado y ejecutado Punto de conmutación programado, desplazado desde P2 Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 231: Punto De Conmutación Con Desplazamiento Porcentual

    Se recorre una trayectoria y, tras un recorrido del 70% de la longitud del segmento entre la posición P0 y P1, debe abrirse una pinza. La instrucción DO se ejecuta aquí. Lin(P0) OnParam(70) Gripper.Set() Lin(P1) 100% Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 232: Punto De Conmutación En Cualquier Lugar De La Trayectoria

    PTP. En caso de uso antes de instrucciones de desplazamiento PTP, se emite una advertencia. El efecto del offset de tiempo (parámetro timeMs) se trata en el capítulo 24.6 Offset de tiempo opcional de la página 238. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 233 En el caso de una referencia al fin del segmento, el offset se compensa en dirección al inicio del segmento. Nota El parámetro offset debe especificarse como valor positivo. Si se especifica un valor negativo, se emitirá un mensaje correspondiente. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 234 Fin de segmento Offset = 30 mm Ejemplo de punto de conmutación con distancia desde el fin del segmento: Lin(P1) OnDistance(FROMEND, 30) <Instrucción> Lin(P2) Lin(P3) Inicio de segmento Punto de conmutación Fin de segmento Offset = 30 mm Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 235: Punto De Conmutación En Un Plano De Conmutación

    El plano de conmutación sólo puede activarse mediante movimien- tos cartesianos. Si es atravesado por un movimiento PTP, se emitirá una advertencia, puesto que el punto de conmutación no se puede calcular con un movimiento PTP. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 236 Puesto que el plano está situado en el punto cero del sistema de referencia, debe desplazarse correspondientemente en paralelo con el parámetro pos. P1´ 100 mm Plano XZ // Ida Lin(P0) OnPlane(XZPLANE, 100) mySignal := TRUE Lin(P1) Lin(P2) // Vuelta Lin(P1) OnPlane(XZPLANE, 100) mySignal := FALSE Lin(P0) Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 237: Programación Tipo Teach-In De La Posición Respecto Al Plano De Conmutación

    Si se ha asignado una variable a este parámetro, se escribe el valor en esta variable. Nota El valor siempre se programa por teach-in en el sistema de refe- rencia seleccionado. Éste se muestra en el cuadro de selección en la página de posición. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 238: Offset De Tiempo Opcional

    Ejemplo de offset de tiempo negativo en el segmento: Offset de tiempo negativo Lin(P1) OnDistance(FROMEND, 0, -250) Lamp.Set() Lin(P2) Punto de Offset conmutación Ejemplo con offset de tiempo positivo: Offset de tiempo positivo Lin(P1) OnDistance(FROMEND, 0, 250) Lamp.Set() Lin(P2) Punto de Offset conmutación Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 239: Reacción Del Sistema En Caso De Valor Temporal No Permitido

    Si al indicar el valor temporal se infringen los valores máximos permitidos, se emite un mensaje de advertencia. Dentro de este mensaje se incluye la macro de punto de conmutación con la indicación del programa y de la línea de programa en cuestión. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 240: Condiciones Generales

    Si se inicia el programa mostrado en la imagen siguiente, no se puede ejecutar el punto de conmutación programado donde está situado el indicador de programa. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 241: Influencia Del Override

    <Ovr>). De este modo el override se fija una vez mediante el programa FTL. Se puede realizar una modificación manual en cualquier momento. Ejemplo: // Ajuste del override al 100% Ovr(100) Lin(HomePos) Lin(pos1) // Punto de conmutación OnDist(FROMEND, Offset, -55) Gripper.Set() Lin(pos2) Lin(pos3) Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 242: Trabajar En Modo Manual Con Velocidad Reducida

    Si al parar el programa ya se están calculando puntos de conmutación de trayectoria, esto repercutirá en la ejecución y, por consiguiente, en la precisión al volver a iniciar el programa. Esto puede provocar mermas de calidad. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 243: Puntos De Conmutación No Ejecutados

    Este mensaje incluye la información siguiente: Nombre de la macro de punto de conmutación del programa FTL Nombre de proyecto y programa Número de línea Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 244: Ejemplos

    Para detectar si una pila 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-ES es 1205c...
  • Página 245 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-ES es 1205c...
  • Página 246 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-ES es 1205c...
  • Página 247: Empleo De Los Módulos De Entrada Y Salida

    SetError(“Timeout over”) RETURN END_IF // Reanudar ejecución Lin(pos) Nota La edición de un mensaje de error provoca la detención del movimiento. No es posible reanudar la ejecución hasta que se acuse recibo del mensaje de error. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 248: Control Del Avance De Proceso

    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-ES es 1205c...
  • Página 249: Empleo De Pinzas

    En los capítulos siguientes se explica la integración de diferentes tipos de pinza en el sistema CMXR. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 250: Pinzas Por Vacío

    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 de salida digital. Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 251 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-ES es 1205c...
  • Página 252 25. 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-ES es 1205c...
  • Página 253: Pinzas Paralelas Neumáticas

    Una pieza debe transportarse desde la posición pos2 a la posición pos4. pos1 pos3 pos2 pos4 Se utiliza una pinza paralela con técnica de sensores 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-ES es 1205c...
  • Página 254 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-ES es 1205c...
  • Página 255 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-ES es 1205c...
  • Página 256: Unidad Giratoria Con Pinzas Neumáticas

    25. Ejemplos 25.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 del actuador giratorio.
  • Página 257 // 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-ES es 1205c...
  • Página 258 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-ES es 1205c...
  • Página 259 Tiempo de espera hasta acusar Tiempo de espera hasta acusar recibo de la apertura de la pinza recibo del cierre de la pinza Tiempo de espera hasta acusar recibo del giro de 90 grados Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 260: Empleo De La Interface Plc

    En el primer paso, el PLC señaliza que se han enviado los datos. En el momento en que el CMXR recibe los datos, se lo indica al PLC. A continuación se borran las dos señales de interface. La secuencia se muestra en el diagrama de flujo siguiente.
  • Página 261: Programa Secuencial

    // 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-ES es 1205c...
  • Página 262 25. 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-ES es 1205c...
  • Página 263: Lista De Instrucciones Ftl

    √ √ √ WaitTime √ √ √ √ WAIT √ √ √ √ WaitOnPath √ √ √ WaitOnPos √ √ √ WaitOnMainRun √ √ Instrucciones de movimiento √ √ √ √ PtpRel √ √ √ √ Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 264 √ √ √ RefAxisAsync √ √ √ √ WaitRefFinished √ √ √ √ IsAxisReferenced √ √ √ √ Herramientas Tool √ √ √ √ Modo cinemático SetRobotMode √ GetRobotMode √ Interface Profibus, variables de sistema, funciones Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 265 √ CARTPOS Sistema de comunicación SetInfo √ √ √ √ SetWarning √ √ √ √ SetError √ √ √ √ Funciones ReadActualPos √ √ √ √ ReadTargetPos √ √ √ √ SavePosition √ √ √ √ Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 266 √ √ Wait, WaitN √ √ √ √ Read √ √ √ √ RisingEdge √ √ √ √ ResetRisingEdge √ √ √ √ Salida digital, DOUT √ √ √ √ Wait, WaitN √ √ √ √ Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 267 √ √ onprogend √ √ onf1keypressed √ √ onf1keyreleased √ √ onf2keypressed √ √ onf2keyreleased √ √ Puntos de conmutación √ √ √ OnPosition √ √ OnParameter √ √ OnDistance √ √ OnPlane √ √ Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 268: Árbol De Menús De Las Instrucciones Ftl

    Representación del árbol de menús de la unidad de mando manual CDSA: Interface PLC  ProgHold Funciones  ABS  ACOS  ACOT  ASIN  ATAN  ATAN2  COS  COT  EXP  LN Funciones de posición o ReadActualPos o ReadTargetPos o SavePosition Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 269  PtpToCircIp  StopMove Instrucciones de dinámica  Acc  DynOvr  Jerk  OvlCart  OvlVel  Ovr  Ramp  VconstOff  VconstOn  Vel Instrucciones  … := …  CALL…  // Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 270 Instrucciones de robot Sistemas de referencia o SetRefSys o SetRefSys3P o SetRefSysDyn o SetRefSysWorld Modo de la cinemática o SetRobotMode o GetRobotMode  Tool Funciones del sistema Cronometraje o GetManualModeAcitve o GetAutoModeActive o Tiempo o TimeToStr o LoadProgram Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 271 Sistema de comunicación  SetError  SetInfo  SetWarning Módulos E/S Entradas analógicas o AIN.Read o AIN.WaitGrt o AIN.WaitIns o AIN.WaitLss o AIN.WaitOuts Salidas analógicas o AOUT.Read o AOUT.WaitGrt o AOUT.WaitIns o AOUT.WaitLss o AOUT.WaitOuts o AOUT.Write Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 272 DOUT.WaitN o DOUT.Write Encoder incremental o ENCODER.Read o ENCODER.Set Funciones tecnológicas Seguimiento de objetos o CONVEYOR.Begin o CONVEYOR.End o CONVEYOR.Done o CONVEYOR.Wait o CONVEYOR.WaitReachable Puntos de conmutación de la trayectoria o OnDistance o OnParamter o OnPlane Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 273: Términos Utilizados

    CMXR-C1 Código de tipo Festo para el modelo básico CMXR C1 CMXR-C2 Código de tipo Festo para el modelo CMXR de la clase superior CoDeSys Nombre del control PLC integrado, que se puede programar según IEC 61131-3 y que funciona en un procesador junto con la robótica.
  • Página 274: Índice

    D. Índice D. Índice Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 275 MoveAxisCart ........74 Control del avance de proceso ..250 MoveAxisPtp ........74 Detención de movimientos ..... 246 Empleo de la interface PLC....262 Empleo de los módulos de entrada y ORD ..........173 salida .......... 249 Festo GDCP-CMXR-SW-ES es 1205c...
  • Página 276 WaitOnPath ......... 57 Segmento cero ........108 WaitOnPos .......... 58 Set ............ 207 WaitRefFinished ........ 128 SetBit ..........174 WaitTime..........54 SetError ..........158 WHILE ..........47 SetInfo ..........156 WriteSDO .......... 210 SetRefSys .......... 116 Festo GDCP-CMXR-SW-ES es 1205c...

Este manual también es adecuado para:

Ftl elemental

Tabla de contenido