PLC Funcion de Los Bloques

June 25, 2018 | Author: Ricardo Ormeño | Category: Operating System, Variable (Computer Science), Computer Program, Computer Memory, Central Processing Unit
Report this link


Description

Tema 2: Programación de PLCs1.  STEP 7 2.  PROGRAMACIÓN BÁSICA AWL 3.  PROGRAMACIÓN ESTRUCTURADA •  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 FC Sistema operativo OB1 FB FC FB SFC SFB Otros Curso 2009/10 OBs PLC’s Página 2 .0 . .0 Paro :=E 0.Introducción OB 1 FB1 Motor 1 FB2 Válvulas FB10 Controlador .0 0. 0.1 Motor_on :=A12. . .0 0. U UN = . #Marcha #Paro #Motor_on PLC’s Curso 2009/10 Página 3 . in in out out stat temp Nombre Marcha Paro Motor_on Velocidad Veloc_ant Calc_1 Tipo BOOL BOOL BOOL INT INT INT Modularización de tareas: –  Las tareas parciales se solucionan con sus propios módulos –  La asignación de parámetros flexibiliza la programación •  Ejemplo: Ciclo de taladro con profundidad asignable por parámetro Reutilización de los Módulos: –  Los Módulos pueden llamarse tantas veces como se necesite –  Restricciones: •  no se tiene acceso a direcciones globales SFC Copia OB 1 . CALL FB1. FC 5 Valor límite DB 2 Decl.1 2. .0 4. . DB2 Marcha :=E 0.0 Velocidad :=AW14 FB 1 Direc. .0 6. bloque de datos para datos de configuración y parámetros PLC’s Curso 2009/10 Página 4 .información de inicio específica en la pila de datos locales .básicamente sin memoria (sólo variables temporales) .con (rellamada) memoria (variables estáticas) .almacenamiento estructurado de datos locales (DB de instancia) .parametrizable (los parámetros pueden asignarse en una llamada) .Introducción Tipo de Módulo Móduo de Organización (OB) Módulo de Función (FB) Función (FC) Bloque de Datos (DB) Módulos de Función del Sistema (SFB) Función del Sistema (SFC) Bloques de Datos del Sistema (SDB) Propiedades .interfase para el usuario .función (con memoria) guardada en el sistema operativo de la CPU y llamable por el usuario .prioridades graduadas (0 a 27) .almacenamiento estructurado de datos globales (válido en todo el programa) .parametrizable (los parámetros deben asignarse en la llamada) .FB (con memoria) guardado en el sistema operativo de la CPU y llamable por el usuario . • utilizables en OBs / FCs / FBs • solo se pueden usar en FBs absoluto Acceso simbólico PLC’s Curso 2009/10 Página 5 .Introducción Variables/Datos Globales (válidos en todo el programa) Variables/Datos Locales (sólo válidos en un bloque) Variables temporales • PAE / PAA •E/A •M/T/Z • Áreas de DB • se borran después de la ejecución del bloque asociado • almacenamiento temporal en la L stack Varibales estáticas • se mantienen incluso después de que sea ejecutado el bloque • almacenamiento permanente en DBs. SFBs y SFCs En los parámetros de Entrada/Salida. el contenido de estas variables se pierde. los contenidos de estos parámetros y el resultado del procesamiento del bloque depositado en ellos mismos. FCs. • Parámetros de Entrada/Salida (IN_OUT) solo en FBs. SFBs y SFCs En los parámetros de salida. FCs. PLC’s Curso 2009/10 Página 6 . • Datos Estáticos (STAT) sólo en FBs y SFBs Los datos estáticos son los datos locales a un bloque de función.Introducción • Parámetros de Entrada (IN) solo en FBs. los cuales son almacenados en un bloque de datos de instancia y por tanto preservados hasta el siguiente procesamiento del bloque. SFBs y SFCs Con ayuda de los parámetros de entrada se pueden asignar datos necesarios para el procesamiento del bloque. una vez ha terminado de procesarse el bloque. FCs. • Parámetros de Salida (OUT) solo en FBs. • 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. los resultados del procesamiento del bloque son depositados aquí. .... Tipo BOOL BOOL INT BOOL INT BOOL .0 8....Introducción Dir.. Decl. 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 EN Parámetros de entrada Parámetros In/Out "Motor" Marcha Paro Velocidad EMER_OFF ENO Parám..0 0..0 .0 10.1 2.0 2. in in in out out inout stat temp Nombre Marcha Paro Velocidad Motor_on Consigna EMER_OFF .. Valor inicial FALSE TRUE 0 FALSE 0 FALSE . 0. .... . de Salida Motor_on Consigna PLC’s Curso 2009/10 Página 7 .. .. .. . •  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. Nunca por otro módulo lógico . 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. etc. –  Dedicados a tratamiento de errores: OB40: Error hardware OB121 y 122: Error síncrono. Un OB puede ser interrumpido por otro OB de mayor prioridad. etc.Bloques de organización •  Son los encargados de poner programa de usuario a disposición de la CPU. es decir. PLC’s Curso 2009/10 Página 8 . ...23 OB 40...47 OB 80.17 (Alarmas horarias) Ejecución del programa Sujeta a eventos OB 20. 122 (Alarmas Cíclicas) (Alarmas de Proceso) (Errores Síncronos) OBs de Alarma Error OBs Página 9 PLC’s Curso 2009/10 ....38 OB 121..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.87 (Alarmas de retardo) (Errores Asíncronos) OB 30.. .3) = Alarma de retardo. Ejecutado en el caso de rotura de un hilo en la entrada analógica PEW 352 Ej.Bloques de organización Ej. OB10 (Prio.2) = Alarma Horaria. OB20 (Prio. El OB1 Se ejecuta contínuamente ....25s después de la detección de un objeto.. 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 Página 10 PLC’s Curso 2009/10 . Ej.26) = Manejo de Error. OB82 (Prio. Ejecutada una vez Por minuto desde las 9:30 ... La ejecución comienza 3... 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 . T.Bloques de organización: OB de Arranque Rearranque Completo automatico S7-300 / 400 S7-300 manual S7-400 STOP->RUN + CRST Alimentación STOP->RUN Borrado de la imagen de proceso. M. el control se devuelve al módulo y al segmento desde el cual fue llamada. la función actúa como una subrutina del programa.Funciones •  Las Funciones son módulos de código que se ejecutan al ser llamadas desde otro módulo. Cuando se la llama. Cuando termina de ejecutar su código. Programa Principal •  OB1 Módulo Subrutina FC Ejecución del programa Instrucción que llama a otro módulo Ejecución del Programa 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 . U U = .. sólo variables temporales –  sin acceso a variables globales y direcciones absolutas –  con los mismos parámetros de entrada devuelven el mismo resultado –  Amplían el juego de instrucciones del procesador Function FC10 Ejecución del programa CALL FC 10 On_1 := On_2 := Off := E 0.. y entrada/salida como se necesiten. #On_1 #On_2 #Off in in out .1 E 0.0 . On_1 On_2 Off BOOL BOOL BOOL PLC’s Curso 2009/10 Página 13 .Funciones Módulos parametrizables: –  tantos parámetros de entrada.. salida.e. p.2 A8. –  sin memoria.... : U E125.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.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 .: UC FC12 CC llamada condicionada a RLO=1 Ej. 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. 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 . •  Los parámetros actuales serán los que se transfieran desde el bloque actual a la función. 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 –  Dentro de FC 25 (en su Tabla de Declaración) se habrán definido las características de Velocidad.0 y A125. E124.0 Parámetros formales: Velocidad. Inicio y Alarma –  CALL llama a un bloque lógico independientemente del RLO PLC’s Curso 2009/10 Página 16 . Inicio y Alarma Parámetros actuales: MW10. 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 Copia la parte de variables internas de la función. . declaración local del FB Esto no era posible en FCs Llamada a un módulo con los parámetros actuales Ejemplo: Call FB1.DB10 PLC’s Curso 2009/10 Página 18 FB1 Área de Declaración Local Sección de código del módulo llamado usando los valores del área de memoria local. 1 2.0 Marcha Paro Motor_on Velocidad BOOL BOOL BOOL INT BOOL BOOL BOOL INT –  FB 5 –  •  –  –  CALL FB5.Bloques de función •  –  Módulos parametrizables: tantos parámetros de entrada. #Marcha #Paro #Motor_on Es necesario PLC’s Página 19 . válvulas.0 0.0 4. Temp. Curso 2009/10 Motor DB 16 0..0 Paro :=E 0. U UN = . DB16 Marcha :=E 0.. etc..0 Velocidad :=AW12 in Marcha in Paro out Motor_on out Velocidad stat .... . 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 Unidades de control de procesos con estados internos •  calderas •  motores.1 Motor_on :=A8. salida y entrada/salida como se necesiten con memoria. código de función. ya que almacena su valor en el módulo de datos DB asociado a la función. DB3 CALL FBnx. –  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 . •  Llamada a módulo de función: CALL FB1.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. etc. DBny •  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. 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 . por lo que sólo es accesible por éste. –  De instancia: asignado a un módulo de función.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. PLC’s Curso 2009/10 Página 22 . •  Compuesto (STRING.0 DB7. –  Tipo de variables: •  Simple (bool. byte. ARRAY). palabra. éste debe ser definido (rellenado) con las variables que se desee. •  Estructuras. entero.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. doble palabra).DBW3 DB6.DBD4 lleva implícito AUF DB8 lleva implícito AUF DB7 lleva implícito AUF DB6 •  Los DB permiten la asignación de simbólicos. DATE_AND_TIME. •  •  •  Apertura: Acceso: AUF L U T U DB8 DB8 DB8. PLC’s Curso 2009/10 Página 23 .DBX3. 0 U Acceso Total absoluto o simbólico o DB99.0 1.Estado L DB99.DBB1 o L “Valores".Estados 4.DBD4 o L "Valores".0 Peso[2] REAL AUF L DB 99 DBD 8 o L DB99. Nombre 0.Numero 8.0 Estado Estados Numero Tipo BOOL BYTE INT AUF L DB 99 DBB 1 o Acceso Tradicional AUF U "Valores" DBX 0.0 2.DBX0.0 Peso[1] REAL AUF L "Valores" o DBW 2 L DB99.0 U “Valores".DBW2 o L “Valores".Bloques de datos globales DB 99 "Valores" Dir.Peso[1] PLC’s Curso 2009/10 Página 24 . Cargar el byte de datos 28.DBW4 Cargar la palabra de datos 4 del DB19 (incluye AUF DB 19). Cargar el número 5. Consultar el bit 1 del byte 3. L DB19. Transferir a la palabra 4.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 U DBX 3. PLC’s Curso 2009/10 Página 25 . Cargar la palabra de datos 2 (byte 2/3).1 Cargar el byte de datos 1. Cargar el carácter ASCII A. Comparar. CALL FB22. Antes de crear un DB instancia debe existir el FB Cuando se inserta en el proyecto desde el Administrador SIMATIC. Aparecen en la tabla de variables los parámetros correspondientes al FB asociado automáticamente.Bloques de datos de instancia •  •  Asociado a un bloque de función FB. se debe asociar a un bloque de función FB ya existente.DB201 •  •  •  CALL FB22. Pueden asociarse varios DBs a un único FB.DB203 Página 26 PLC’s Curso 2009/10 .DB202 CALL FB22. DB3 Par1: . Par3: ......... sin DB inst.. Con param. Sin parámetros AWL • CALL FC1 • UC FC1 • CC FC1 FC1 ( CALL ) • CALL FC2 Par1: .. Par2: .... • UC FB1 • CC FB1 • CALL FB2.Resumen FC Lenguaje FB Con parámetros sin param.. DB3 FC2 FB1 ENO EN ENO EN Par1 Par3 Par2 Par3 KOP FC1 EN ENO FB2 ENO EN Par1 Par2 DB3 FC2 EN Par1 Par2 ENO ENO Par3 PLC’s FB1 EN EN FB2 Par1 Par2 Par3 Página 27 Curso 2009/10 ENO . Par2: . con DB inst. Par3: . El byte EB125 controla el producto a fabricar: magdalenas si es 0.4). azúcar (A124.5 permite elegir si los productos y el proceso de mezcla se realizan simultáneamente (si E124.3) y un motor que realiza la mezcla (A124. leche (A124.2=0) o de manera secuencial (si E124. magdalenas. sobaos si vale 1 y donuts en caso de que almacene 2.0. levadura (A124. La producción empezará con un flanco de subida de la señal E124.1). La tabla de tiempos para cada producto es la siguiente: Harina Magdalenas 3 Sobaos Donuts •  1 2 Leche 2 2 1 Levadura 3 3 2 Azúcar 2 1 1 T mezcla 4 3 2 •  •  •  La entrada E124. para lo cual controla la receta modificando las proporciones de harina (A124.2).2=1) PLC’s Curso 2009/10 Página 28 . En cualquier otro caso la mezcladora se mantendrá parada. sobaos y donuts.0).EJERCICIO (Entregable 7) •  Tenemos una mezcladora que produce 3 tipos de productos. •  Bloques de función con DB’s de instancia. •  PLC’s Curso 2009/10 Página 29 . el uso de saltos. Evite. en la medida de lo posible.EJERCICIO (Entregable 7) •  Resuelva el ejercicio utilizando: •  Funciones con parámetros.


Comments

Copyright © 2024 UPDOCS Inc.