Preview only show first 10 pages with watermark. For full document please download

Plc Funcion De Los Bloques

   EMBED


Share

Transcript

Tema 2: Programación de PLCs 1. STEP 7 2. PROGRAMACIÓN BÁSICA AWL 3. PROG PROGRAM RAMACI ACIÓN ÓN ES ESTR TRUCT UCTURA URADA DA • Introducción • Bloques de organización (OB) • Funciones (FC) • Bloques de Función (FB) • Boques de datos (DB) PLC’s Curso 2009/10 Página 1 Introducción  Facilita modularidad del programa, y clarifica su organización y análisis  Permite generar funciones reutilizables y no repetir código  Simplifica el test y la puesta en servicio Sistema operativo OB1 FC FB FB FC SFC SFB OtrosPLC’s Curso 2009/10 OBs Página 2 Introducción OB 1 Motor 1 Modularización de tareas:  –  Las tareas parciales se solucionan con sus propios módulos Reutilización de los Módulos:  –  Los Módulos pueden llamarse tantas veces como se necesite  –  Restricciones: • no se tiene acceso a direcciones globales Controlador  . . . Válvulas OB 1 FB 1 . . CALL FB1, DB2 Marcha :=E 0.0 Paro :=E 0.1 Motor_on :=A12.0 Velocidad :=AW14 . . SFC FC 5 Valor  límite FB2  –  La asignación de parámetros flexibiliza la programación • Ejemplo: Ciclo de taladro con  profundidad asignable por   parámetro FB10 FB1 DB 2 Direc. Decl. 0.0 in 0.1 in 2.0 out 4.0 out 6.0 stat 0.0 temp . . . U UN = . Copia Nombre Marcha Paro Motor_on Velocidad Veloc_ant Calc_1 Tipo BOOL BOOL BOOL INT INT INT #Marcha #Paro #Motor_on PLC’s Curso 2009/10 Página 3 Introducción Tipo de Módulo Propiedades Móduo de Organización (OB) - interfase para el usuario - prioridades graduadas (0 a 27) - información de inicio específica en la pila de datos locales Módulo de Función (FB) - parametrizable (los parámetros pueden asignarse en una llamada) - con (rellamada) memoria (variables estáticas) Función (FC) - parametrizable (los parámetros deben asignarse en la llamada) - básicamente sin memoria (sólo variables temporales) Bloque de Datos (DB) - almacenamiento estructurado de datos locales (DB de instancia) - almacenamiento estructurado de datos globales (válido en todo el programa) Módulos de Función del Sistema (SFB) - FB (con memoria) guardado en el sistema operativo de l a CPU y llamable por el usuario Función del Sistema (SFC) - función (con memoria) guardada en el sistema operativo de la CPU y llamable por el usuario Bloques de Datos del Sistema (SDB) - bloque de datos para datos de configuración y parámetros PLC’s Curso 2009/10 Página 4 Introducción Variables/Datos Globales (válidos en todo el programa) • PAE / PAA •E/A •M/T/Z • Áreas de DB Variables/Datos Locales (sólo válidos en un bloque) Variables temporales Varibales estáticas • se borran después de la ejecución del bloque asociado • se mantienen incluso después de que sea ejecutado el bloque • almacenamiento temporal en la L stack • almacenamiento permanente en DBs. • utilizables en OBs / FCs / FBs • solo se pueden usar en FBs absoluto simbólico Acceso PLC’s Curso 2009/10 Página 5 Introducción •Parámetros de Entrada (IN) solo en FBs, FCs, SFBs y SFCs Con ayuda de los parámetros de entrada se pueden asignar datos necesarios para el  procesamiento del bloque. •Parámetros de Salida (OUT) solo en FBs, FCs, SFBs y SFCs En los parámetros de salida, los resultados del procesamiento del bloque son depositados aquí. •Parámetros de Entrada/Salida (IN_OUT) solo en FBs, FCs, SFBs y SFCs En los parámetros de Entrada/Salida, los contenidos de estos parámetros y el resultado del  procesamiento del bloque depositado en ellos mismos. •Datos Estáticos (STAT) sólo en FBs y SFBs Los datos estáticos son los datos locales a un bloque de función, los cuales son almacenados en un bloque de datos de instancia y por tanto preservados hasta el siguiente  procesamiento del bloque. •Datos Temporales (TEMP) en todos los bloques Los datos estáticos son los datos locales a un bloque que almacenan valores durante el  proceso de dicho bloque en una pila de datos locales (L-Stack) y, una vez ha terminado de procesarse el bloque, el contenido de estas variables se pierde. PLC’s Curso 2009/10 Página 6 Introducción Los parámetros son canales para transferir información:  –  Parámetros de Entrada (In):  –  Parámetros de Salida (Out):  –  Parámetros E/S (In/Out): Los parámetros de un módulo:  –  Están en la sección de código como variables "locales"  –  Pueden tener cualquier tipo de dato Dir. 0.0 0.1 2.0 2.0 8.0 10.0 ... ... Decl. in in in out out inout stat temp Nombre Marcha Paro Velocidad Motor_on Consigna EMER_OFF ... .. EN Tipo BOOL BOOL INT BOOL INT BOOL ... ... "Motor" Marcha Parámetros de entrada Parámetros In/Out Paro Velocidad Valor inicial FALSE TRUE 0 FALSE 0 FALSE ... ... ... ENO Motor_on Consigna Parám. de Salida EMER_OFF PLC’s Curso 2009/10 Página 7 Bloques de organización • Son los encargados de poner programa de usuario a disposición de la CPU, es decir, nuestro programa debe estar incluido en un OB para poder ser ejecutado por el Autómata • Los OBs son llamados cíclicamente por el sistema operativo. Nunca por otro módulo lógico . Un OB puede ser interrumpido por otro OB de mayor prioridad. • Están jerarquizados en prioridades y se dividen en dos tipos:  –  Dedicados a tareas periódicas: OB1: Programa principal (mínima prioridad) OB10: Interrupción horaria OB35: Interrupción cíclica, etc.  –  Dedicados a tratamiento de errores: OB40: Error hardware OB121 y 122: Error síncrono, etc. PLC’s Curso 2009/10 Página 8 Bloques de organización Arranque OB 100 OB 101 OB 102 Ejecución Cíclica del Programa OB 1 Ejecución Periódica De un programa OB 10...17 (Alarmas horarias) OB 30...38 ( Alarmas Cíclicas) Ejecución del programa Sujeta a eventos OB 20...23 OB 80...87 OB 40...47 OB 121, 122 OBs de Alarma Error OBs (Alarmas de retardo) (Alarmas de Proceso) (Errores Asíncronos) (Errores Síncronos) PLC’s Curso 2009/10 Página 9 Bloques de organización Ej. OB82 (Prio.26) = Manejo de Error. Ejecutado en el caso de rotura de un hilo en la entrada analógica PEW 352 Ej. OB20 (Prio.3) =  Alarma de retardo. La ejecución comienza 3.25s después de la detección de un objeto. Ej. OB10 (Prio.2) =  Alarma Horaria. Ejecutada una vez Por minuto desde las 9:30 El OB1 Se ejecuta contínuamente ..... ...... Hasta que es interrumpido por otro OB Nº OB OB 1 OB 10 OB 20 OB 35 OB 40 OB 82 Tipo de OB Programa Cíclico  Alarma Horaria  Alarma de retardo  Alarma Cíclica  Alarma de proceso Manejo de Error  Prioridad 1 2 3 12 16 26 / 28 PLC’s Curso 2009/10 Página 10 Bloques de organización: OB de Arranque Rearranque Completo automatico S7-300 / 400 manual S7-300 S7-400  Alimentación STOP->RUN STOP->RUN + CRST Borrado de la imagen de proceso, M, T, Z no remanentes Ejecución del OB 100 Habilitación de Salidas C I C L O Lectura de la PAE Ejecución del OB1 Escritura de la PAA PLC’s Curso 2009/10 Página 11 Funciones • Las Funciones son módulos de código que se ejecutan al ser llamadas desde otro módulo. • Cuando se la llama, la función actúa como una subrutina del programa. Cuando termina de ejecutar su código, el control se devuelve al módulo y al segmento desde el cual fue llamada. FC Programa Principal OB1 Módulo Subrutina Ejecución del programa Ejecución del  Programa Instrucción que llama a otro módulo fin de bloque  Las Funciones son bloques lógicos sin memoria Las variables temporales de las FCs se memorizan en la tabla de datos locales PLC’s Curso 2009/10 Página 12 Funciones Módulos parametrizables:  –  tantos parámetros de entrada, salida, y entrada/salida como se necesiten.  –  sin memoria, p.e. sólo variables temporales  –  sin acceso a variables globales y direcciones absolutas Function FC10 Ejecución del programa in in out ... On_1 On_2 Off BOOL BOOL BOOL CALL FC 10 On_1 := On_2 := Off :=  –  con los mismos parámetros de entrada devuelven el mismo resultado E 0.1 E 0.2 A8.0 ... U U = ... #On_1 #On_2 #Off   –  Amplían el juego de instrucciones del procesador  PLC’s Curso 2009/10 Página 13 Funciones: sin parámetros • Contienen instrucciones a modo de subrutinas • Se insertan como nuevo bloque desde el administrador SIMATIC (del mismo modo que se insertan VATs) • Llamada (equivalen a CALL pero no es posible transferir parámetros): UC llamada incondicional Ej.: UC FC12 CC llamada condicionada a RLO=1 Ej.: • U E125.0 CC FC1 El fin de una función se realiza con la instrucción  –  BEA (incondicional) o  –  BEB (condicional a RLO=0) PLC’s Curso 2009/10 Página 14 Funciones: con parámetros • Contienen instrucciones a modo de subrutinas • Se insertan como nuevo bloque desde el administrador SIMATIC (del mismo modo que se insertan DBs o FCs sin parámetros) • Al darles contenido (introducir código) se debe rellenar también su Tabla de Declaración, donde se incluyen los parámetros formales de la función (con los que se diseña la función) declarados como IN, OUT o IN/OUT. • Los parámetros actuales serán los que se transfieran desde el bloque actual a la función, siendo estos valores asignados a los parámetros formales de la FC para que trabaje con ellos • El fin de una función con parámetros se realizará igualmente con instrucciones BEA y BEB PLC’s Curso 2009/10 Página 15 Funciones: con parámetros • Ejemplos:  –  Llamada a una función sin parámetros: CALL FC 12  –  Llamada a una función con parámetros: CALL FC 25 Velocidad := MW10 Inicio := E124.0 Alarma := A125.0 Parámetros formales: Velocidad, Inicio y Alarma Parámetros actuales: MW10, E124.0 y A125.0  –  Dentro de FC 25 (en su Tabla de Declaración) se habrán definido las características de Velocidad, Inicio y Alarma  –  CALL llama a un bloque lógico independientemente del RLO PLC’s Curso 2009/10 Página 16 Funciones Instrucción CALL  –  El tiempo de procesamiento para CALL depende del número y la posición de memoria de los parámetros actuales  –  La instrucción CALL asegura que los parámetros de módulo son provistos correctamente con datos actuales  –  Ejemplo: • CALL FC10 On_1 := E 0.1 On_2 := E 0.2 Off := A 8.0 Instrucción de llamada UC y CC  –  Llamada a módulo independiente del RLO (UC) o dependiente del RLO (CC) • Ejemplos: UC FC20 ó CC FC20  –  Sólo se pueden usar cuando la FC no tiene parámetros PLC’s Curso 2009/10 Página 17 Bloques de función • Es un bloque con memoria. Tiene asociado un bloque de datos DB de instancia, de tal forma que en cada nueva llamada DB10 se puede conservar el valor de las variables internas de la función.  Esto no era posible en FCs Copia la parte de declaración local del FB FB1  Área de Declaración Local Llamada a un módulo con los parámetros actuales Ejemplo: Sección de código del módulo llamado usando los valores del área de memoria local. Call FB1,DB10 PLC’s Curso 2009/10 Página 18 Bloques de función • Módulos parametrizables: Motor   –  tantos parámetros de entrada, salida y entrada/salida como se necesiten DB 16  –  con memoria, es decir, con variables estáticas (también puede haber temporales)  –  Llamada con área de datos propia (instancia) • Aplicación:  –  Funciones de temporización y contadores CALL FB5, DB16 Marcha :=E 0.0 Paro :=E 0.1 Motor_on :=A8.0 Velocidad :=AW12 0.0 Marcha BOOL 0.1 Paro BOOL 2.0 Motor_on BOOL FB 5 4.0 Velocidad INT in Marcha BOOL in Paro BOOL out Motor_on BOOL out Velocidad INT stat ... Temp...  –  Unidades de control de procesos con estados internos ... U UN = ... #Marcha #Paro #Motor_on • calderas Es necesario • motores, válvulas, etc. PLC’s Curso 2009/10 Página 19 Bloques de función • Tipos de variables añadidos (no en FCs): STAT: estático; conserva el valor de la variable de un ciclo para el siguiente, ya que almacena su valor en el módulo de datos DB asociado a la función. • Llamada a módulo de función: CALL FBnx, DBny CALL FB1, DB3 • Desde el administrador SIMATIC se habrán creado (dentro del Proyecto y en la carpeta Bloques) FB 1 y DB 3:  –  Primero se crea FB1: tabla de declaración de variables, código de función, etc.  –  Después se crea DB3 (asociado a FB1) y toma la tabla de declaración de FB1  –  Asignación del valor actual al parámetro/variable formal: • desde el DB3: Ver > datos > valor actual • Desde el OB100: Load + Transfer  PLC’s Curso 2009/10 Página 20 Bloques de función • Mediante la llamada con varias instancias de un FB se pueden controlar  varios equipos con el mismo FB PLC’s Curso 2009/10 Página 21 Bloques de datos • Zonas de memoria para almacenamiento de datos organizados del programa •  No pierden la información cuando el programa los ha acabado de utilizar  • Existen DB´s de dos tipos:  –  Globales: disponibles para cualquier módulo lógico del programa.  –  De instancia: asignado a un módulo de función, por lo que sólo es accesible por éste. PLC’s Curso 2009/10 Página 22 Bloques de datos globales • Son remanentes: no pierden la información aunque se corte la alimentación (en coherencia con el programa cargado en la CPU) • Tras la creación de un DB, éste debe ser definido (rellenado) con las variables que se desee.  –  Tipo de variables: • Simple (bool, byte, entero, palabra, doble palabra). • Compuesto (STRING, DATE_AND_TIME, ARRAY). • Estructuras. • Apertura: AUF DB8 • Acceso: L DB8 U DB8.DBX3.0 lleva implícito AUF DB8 T DB7.DBW3 lleva implícito AUF DB7 U DB6.DBD4 lleva implícito AUF DB6 • Los DB permiten la asignación de simbólicos. PLC’s Curso 2009/10 Página 23 Bloques de datos globales DB 99 "Valores" Dir. Nombre Tipo 0.0 Estado BOOL 1.0 Estados BYTE 2.0 Numero INT 4.0 Peso[1] 8.0 Peso[2]  Acceso Tradicional  Acceso Total absoluto simbólico  AUF U "Valores" o DBX 0.0 U DB99.DBX0.0 o U “Valores".Estado  AUF L DB 99 DBB 1 L DB99.DBB1 o L “Valores".Estados  AUF L "Valores" o DBW 2 L DB99.DBW2 o L “Valores".Numero  AUF L DB 99 DBD 8 L DB99.DBD4 o L "Valores".Peso[1] o REAL REAL o PLC’s Curso 2009/10 Página 24 Bloques de datos globales Abrir módulo de datos  AUF DB 19 Carga y transferencia en módulos de datos L DBB 1 L DBW 2 L5 T DBW 4 L 'A' L DBB28 ==I Cargar el byte de datos 1. Cargar la palabra de datos 2 (byte 2/3). Cargar el número 5. Transferir a la palabra 4. Cargar el carácter ASCII A. Cargar el byte de datos 28. Comparar. U DBX 3.1 Consultar el bit 1 del byte 3. L DB19.DBW4 Cargar la palabra de datos 4 del DB19 (incluye AUF DB 19). PLC’s Curso 2009/10 Página 25 Bloques de datos de instancia • Asociado a un bloque de función FB. Antes de crear un DB instancia debe existir el FB • Cuando se inserta en el proyecto desde el Administrador SIMATIC, se debe asociar a un bloque de función FB ya existente. • Aparecen en la tabla de variables los parámetros correspondientes al FB asociado automáticamente. • Pueden asociarse varios DBs a un único FB. • CALL FB22,DB201 CALL FB22,DB202 CALL FB22,DB203 PLC’s Curso 2009/10 Página 26 Resumen FC Lenguaje AWL FB Sin parámetros Con parámetros • CALL FC1 • UC FC1 • CC FC1 • CALL FC2 Par1: ... Par2: ... Par3: ... sin param., sin DB inst. Con param., con DB inst. • CALL FB2, DB3 Par1: ... Par2: ... Par3: ... • UC FB1 • CC FB1 FC1 ( CALL ) KOP FC2 FC1 EN ENO EN FB1 ENO ENO Par3 FC2 EN Curso 2009/10 EN Par1 Par2 DB3 FB2 Par3 PLC’s EN ENO Par1 Par2 Par3 DB3 FB2 FB1 EN EN Par1 Par1 Par2 Par2 Par3 Página 27 ENO EJERCICIO (Entregable 7) • • • • Tenemos una mezcladora que produce 3 tipos de productos, magdalenas, sobaos y donuts, para lo cual controla la receta modificando las proporciones de harina (A124.0), leche (A124.1), levadura (A124.2), azúcar (A124.3) y un motor que realiza la mezcla (A124.4). La producción empezará con un flanco de subida de la señal E124.0. El byte EB125 controla el producto a fabricar: magdalenas si es 0, sobaos si vale 1 y donuts en caso de que almacene 2. En cualquier otro caso la mezcladora se mantendrá parada. La tabla de tiempos para cada producto es la siguiente: Harina • Leche Levadura Azúcar T mezcla Magdalenas 3 2 3 2 4 Sobaos 1 2 3 1 3 Donuts 2 1 2 1 2 La entrada E124.5 permite elegir si los productos y el proceso de mezcla se realizan simultáneamente (si E124.2=0) o de manera secuencial (si E124.2=1) PLC’s Curso 2009/10 Página 28 EJERCICIO (Entregable 7) • Resuelva el ejercicio utilizando: • Funciones con parámetros. • Bloques de función con DB’s de instancia. • Evite, en la medida de lo posible, el uso de saltos. PLC’s Curso 2009/10 Página 29