Introducción a los Bloques de Función (FB) Automation & Drives Business Unit Contenido de la Presentación 2 Ventajas del ST (Texto Estructurado) o Ladder Editor de Bloques de Función Texto Estructurado Tipos de Datos Edición de Bloques de Función Online Programación Estructurada Re-utilizar Preguntas frecuentes 1 ¿Por qué Bloques de Función? 3 Un programa creado con FBs, muestra una mejor calidad de diseño y requiere menos tiempo de desarrollo. Código de programa Re-utilizado Programar sólo una vez una función/proceso que se repite Re-utilizar el FB una y otra vez Mejor vista/presentación del programa del PLC El programa es más fácil de leer Se reduce el código de programa Se reducen posibles errores de código ¿Por qué Bloques de Función? 4 2 Bloques de Función ≠ Diagramas de Bloques de Función 5 FB (Funcion Block): Programa con funcionalidad propia en Texto Estructurado o Ladder EN Ladder o Texto Estructurado ENO FBD (Funcion Block Diagram): Lenguaje Gráfico para Ladder & Ejemplo de FB vs. llamada a FB Instancia de Bloque de Función 6 Llamada a Bloque de Función 3 Ventajas del Texto Estructurado vs Ladder 7 Texto Estructurado – El Texto Estructurado es un lenguaje de alto nivel de propósito general, para expresar diferentes tipos de comportamiento en los que están implicados diferentes tipos de datos. – Es particularmente utilizado para cálculos aritméticos complejos. Ladder – Operaciones lógicas (operaciones AND y OR) Editor de “definición de Bloques de Función” 8 Editor de Texto Estructurado Editor de Ladder 4 Editor de Bloques de Función 9 Ejemplo de Texto Estructurado Ejemplo de Ladder Editor de Bloques de Función 1 10 Seleccionar un PLC, e Insertar Bloque de Función o 5 Crear un Bloque de Función – Insertar una variable 1/2 2 Seleccionar la cabecera de FB 3 Insertar variables de FB: – Insertar -> FB_Variable – O botón drcho. del ratón Crear un Bloque de Función – Insertar variable 2/2 4 Introducir el nombre 5 Seleccionar tipo de dato 6 Seleccionar Uso: – Interno – Entrada – Salida 11 12 6 Crear un Bloque de Función – Variables como array 13 7.1 Seleccionar uso Interno / Avanzado 7.2 Uso de una variable array Renombrar un Bloque de Función 1. 2. 3. 14 Seleccionar el FB Botón derecho del ratón Elegir nuevo nombre Si existe ya una llamada del FB que se quiere renombrar, aparecerá como aviso el siguiente diálogo. 7 Renombrar una llamada a un Bloque de Función 15 Renombrar el FB en la lista de símbolos Re-utilización Guardar FB en archivo (*.cxf) Añadir Bloques de Función desde archivo 16 8 Texto Estructurado 1/3 Palabras reservadas/ Sintaxis soportada: – – – – – – TRUE, FALSE. IF, THEN, ELSE, ELSEIF, END_IF. DO, WHILE, END_WHILE. REPEAT, UNTIL, END_REPEAT. FOR, TO, BY, END_FOR. CASE, OF, ELSE, END_CASE. Texto Estructurado 2/3 18 Funciones matemáticas soportadas: – – – – 17 Suma (+) Resta (-) Multiplicación (*) División (/) Funciones de bit soportadas: – – – – Bitwise AND (AND o &) Bitwise OR (OR) OR Exclusiva OR (XOR) NOT (NOT) 9 Texto Estructurado 3/3 19 Operadores soportados: – – – – – – – – – Parentesis (brackets ()) Índice de Matriz (square brackets [ ] ) Operador de Asignación (:=) O. de Comparación Menor Que (<) O. de Comparación Menor o Igual Que (<=) O. de Comparación Mayor Que (>) O. de Comparación Mayor o Igual Que (>=) O. de Comparación Igual (=) O. de Comparación Distinto Que (<>) Ejemplo de Texto Estructurado 20 IF A=B THEN; A_is_B := TRUE; A_greater_then_B:=FALSE; B_greater_then_A:=FALSE; ELSIF A>B THEN; A_is_B := FALSE; A_greater_then_B:=TRUE; B_greater_then_A:=FALSE; ELSIF B>A THEN; A_is_B := FALSE; A_greater_then_B:=FALSE; B_greater_then_A:=TRUE; END_IF; 10 Tipo de Datos 21 Keyword Data type BOOL Boolean No. of bits 1 INT Integer 16 UINT Unsigned Integer 16 DINT Double Integer 32 UDINT Unsigned Double Integer 32 LINT Long Integer 64 ULINT Unsigned Long Integer 64 WORD Bit String of 16 Bits 16 DWORD Bit String of 32 Bits 32 LWORD Bit String of 64 Bits 64 REAL Real Number 32 LREAL Long Real Number 64 Online 1/2 Es posible editar contactos, bobinas o instrucciones. Es posible editar los símbolos o direcciones conectados a los terminales de entrada y salida de una llamada de FB. Es posible borrar la llamada de FB durante la edición online. Es posible añadir una nueva llamada de FB si la instancia de FB ya existe. No es posible borrar un instancia de FB si existen llamadas de FB. No es posible añadir una nueva instancia de FB durante la edición online. No es posible editar dentro del FB. 22 11 Online 2/2 Monitorización 23 – Variables internas. – Flujo de alimentación Monitorizació Monitorización OnOn-line – Ventana de Vigilancia 24 Seleccionar el PLC Seleccionar el nombre y dirección Utilizar [i] para el índice de la variable array interna 12 Monitorizació Monitorización OnOn-line – Herramienta de Trazado 25 Capaz de seleccionar variables FB Programación Estructurada 26 Crear un Bloque de Función en 7 pasos: 1. 2. 3. 4. 5. 6. 7. Considerar si un FB es necesario y útil Definir las Entradas Definir las Salidas Definir las Variables Internas Decidir si utilizar Ladder o Texto Estructurado Programar el Bloque de Función (FBD) Compilar/Testear el bloque de función 13 Administrador de Mem. – Asignación de Memoria FB 27 Administrador de Mem. – Estadísticas de Memoria FB 28 14 Precauciones en la estructura del programa 29 No insertar ramas a la izquierda de la instancia Sólo una instancia por red No interconectar Bloques de Función FIN Automation & Drives Business Unit 15