Escolar Documentos
Profissional Documentos
Cultura Documentos
1. STEP 7 2. PROGRAMACIN BSICA AWL 3. PROGRAMACIN ESTRUCTURADA Introduccin Bloques de organizacin (OB) Funciones (FC) Bloques de Funcin (FB) Boques de datos (DB)
PLCs
Curso 2009/10
Pgina 1
Introduccin
Facilita modularidad del programa, y clarifica su organizacin y anlisis Permite generar funciones reutilizables y no repetir cdigo Simplifica el test y la puesta en servicio FC Sistema operativo OB1 FB FC FB
SFC
SFB
OBs
PLCs
Pgina 2
Introduccin
OB 1 FB1 Motor 1 FB2 Vlvulas FB10 Controlador . . . FC 5 Valor lmite DB 2
Decl. in in out out stat temp Nombre Marcha Paro Motor_on Velocidad Veloc_ant Calc_1 Tipo BOOL BOOL BOOL INT INT INT
Modularizacin de tareas: Las tareas parciales se solucionan con sus propios mdulos La asignacin de parmetros flexibiliza la programacin Ejemplo: Ciclo de taladro con profundidad asignable por parmetro Reutilizacin de los Mdulos: Los Mdulos pueden llamarse tantas veces como se necesite Restricciones: no se tiene acceso a direcciones globales
SFC Copia
OB 1 . .
CALL FB1, DB2 Marcha :=E 0.0 Paro :=E 0.1 Motor_on :=A12.0 Velocidad :=AW14
FB 1
Direc. 0.0 0.1 2.0 4.0 6.0 0.0 . . . U UN = .
. .
PLCs
Curso 2009/10
Pgina 3
Introduccin
Tipo de Mdulo
Mduo de Organizacin (OB) Mdulo de Funcin (FB) Funcin (FC) Bloque de Datos (DB) Mdulos de Funcin del Sistema (SFB) Funcin del Sistema (SFC) Bloques de Datos del Sistema (SDB)
Propiedades
- interfase para el usuario - prioridades graduadas (0 a 27) - informacin de inicio especfica en la pila de datos locales - parametrizable (los parmetros pueden asignarse en una llamada) - con (rellamada) memoria (variables estticas) - parametrizable (los parmetros deben asignarse en la llamada) - bsicamente sin memoria (slo variables temporales) - almacenamiento estructurado de datos locales (DB de instancia) - almacenamiento estructurado de datos globales (vlido en todo el programa) - FB (con memoria) guardado en el sistema operativo de la CPU y llamable por el usuario - funcin (con memoria) guardada en el sistema operativo de la CPU y llamable por el usuario - bloque de datos para datos de configuracin y parmetros
PLCs
Curso 2009/10
Pgina 4
Introduccin
Variables/Datos Globales (vlidos en todo el programa) Variables/Datos Locales (slo vlidos en un bloque) Variables temporales PAE / PAA E/A M/T/Z reas de DB se borran despus de la ejecucin del bloque asociado almacenamiento temporal en la L stack Varibales estticas se mantienen incluso despus de que sea ejecutado el bloque almacenamiento permanente en DBs.
absoluto Acceso
simblico
PLCs
Curso 2009/10
Pgina 5
Introduccin
Parmetros de Entrada (IN) solo en FBs, FCs, SFBs y SFCs Con ayuda de los parmetros de entrada se pueden asignar datos necesarios para el procesamiento del bloque. Parmetros de Salida (OUT) solo en FBs, FCs, SFBs y SFCs En los parmetros de salida, los resultados del procesamiento del bloque son depositados aqu. Parmetros de Entrada/Salida (IN_OUT) solo en FBs, FCs, SFBs y SFCs En los parmetros de Entrada/Salida, los contenidos de estos parmetros y el resultado del procesamiento del bloque depositado en ellos mismos. Datos Estticos (STAT) slo en FBs y SFBs Los datos estticos son los datos locales a un bloque de funcin, 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 estticos 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.
PLCs
Curso 2009/10
Pgina 6
Introduccin
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 ... .. Tipo BOOL BOOL INT BOOL INT BOOL ... ... Valor inicial FALSE TRUE 0 FALSE 0 FALSE ... ... ...
Los parmetros son canales para transferir informacin: Parmetros de Entrada (In): Parmetros de Salida (Out): Parmetros E/S (In/Out): Los parmetros de un mdulo: Estn en la seccin de cdigo como variables "locales" Pueden tener cualquier tipo de dato
"Motor"
Marcha Paro Velocidad EMER_OFF
Motor_on Consigna
PLCs
Curso 2009/10
Pgina 7
Bloques de organizacin
Son los encargados de poner programa de usuario a disposicin de la CPU, es decir, nuestro programa debe estar incluido en un OB para poder ser ejecutado por el Autmata Los OBs son llamados cclicamente por el sistema operativo. Nunca por otro mdulo lgico . Un OB puede ser interrumpido por otro OB de mayor prioridad. Estn jerarquizados en prioridades y se dividen en dos tipos:
Dedicados a tareas peridicas: OB1: Programa principal (mnima prioridad) OB10: Interrupcin horaria OB35: Interrupcin cclica, etc. Dedicados a tratamiento de errores: OB40: Error hardware OB121 y 122: Error sncrono, etc. PLCs
Curso 2009/10
Pgina 8
Bloques de organizacin
Arranque OB 100 OB 101 OB 102 Ejecucin Cclica del Programa OB 1 Ejecucin Peridica De un programa OB 10...17
(Alarmas horarias)
(Alarmas de retardo)
(Errores Asncronos)
OB 30...38
OB 121, 122
(Alarmas Cclicas)
(Alarmas de Proceso)
(Errores Sncronos)
OBs de Alarma
Error OBs
Pgina 9
PLCs
Curso 2009/10
Bloques de organizacin
Ej. OB82 (Prio.26) = Manejo de Error. Ejecutado en el caso de rotura de un hilo en la entrada analgica PEW 352
Ej. OB20 (Prio.3) = Alarma de retardo. La ejecucin comienza 3.25s despus de la deteccin de un objeto.
Ej. OB10 (Prio.2) = Alarma Horaria. Ejecutada una vez Por minuto desde las 9:30
PLCs
Curso 2009/10
Alimentacin STOP->RUN
C I C L O
PLCs
Curso 2009/10
Pgina 11
Funciones
Las Funciones son mdulos de cdigo que se ejecutan al ser llamadas desde otro mdulo. Cuando se la llama, la funcin acta como una subrutina del programa. Cuando termina de ejecutar su cdigo, el control se devuelve al mdulo y al segmento desde el cual fue llamada.
Programa Principal
OB1
Mdulo Subrutina
FC
fin de bloque
PLCs
Curso 2009/10
Pgina 12
Funciones
Mdulos parametrizables: tantos parmetros de entrada, salida, y entrada/salida como se necesiten. sin memoria, p.e. slo variables temporales sin acceso a variables globales y direcciones absolutas con los mismos parmetros de entrada devuelven el mismo resultado Amplan el juego de instrucciones del procesador
PLCs
Curso 2009/10
Pgina 13
CALL FC 12
Llamada a una funcin con parmetros:
CALL FC 25
Velocidad := MW10 Inicio := E124.0 Alarma := A125.0 Parmetros formales: Velocidad, Inicio y Alarma Parmetros actuales: MW10, E124.0 y A125.0 Dentro de FC 25 (en su Tabla de Declaracin) se habrn definido las caractersticas de Velocidad, Inicio y Alarma CALL llama a un bloque lgico independientemente del RLO
PLCs
Curso 2009/10
Pgina 16
Funciones
Instruccin CALL El tiempo de procesamiento para CALL depende del nmero y la posicin de memoria de los parmetros actuales La instruccin CALL asegura que los parmetros de mdulo son provistos correctamente con datos actuales Ejemplo: CALL FC10 On_1 := E 0.1 On_2 := E 0.2 Off := A 8.0 Instruccin de llamada UC y CC Llamada a mdulo independiente del RLO (UC) o dependiente del RLO (CC) Ejemplos: UC FC20 CC FC20 Slo se pueden usar cuando la FC no tiene parmetros PLCs
Curso 2009/10
Pgina 17
Bloques de funcin
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 funcin. declaracin local del FB Esto no era posible en FCs Llamada a un mdulo con los parmetros actuales Ejemplo: Call FB1,DB10 PLCs
Curso 2009/10
Pgina 18
FB1
rea de Declaracin Local Seccin de cdigo del mdulo llamado usando los valores del rea de memoria local.
Bloques de funcin
Mdulos parametrizables: tantos parmetros de entrada, salida y entrada/salida como se necesiten con memoria, es decir, con variables estticas (tambin puede haber temporales) Llamada con rea de datos propia (instancia) Aplicacin: Funciones de temporizacin y contadores Unidades de control de procesos con estados internos calderas motores, vlvulas, etc.
Curso 2009/10
Motor
DB 16
0.0 0.1 2.0 4.0 Marcha Paro Motor_on Velocidad BOOL BOOL BOOL INT BOOL BOOL BOOL INT
FB 5
CALL FB5, DB16 Marcha :=E 0.0 Paro :=E 0.1 Motor_on :=A8.0 Velocidad :=AW12
... U UN = ...
Es necesario
PLCs
Pgina 19
Bloques de funcin
Tipos de variables aadidos (no en FCs):
STAT: esttico; conserva el valor de la variable de un ciclo para el siguiente, ya que almacena su valor en el mdulo de datos DB asociado a la funcin.
Desde el administrador SIMATIC se habrn creado (dentro del Proyecto y en la carpeta Bloques) FB 1 y DB 3:
Primero se crea FB1: tabla de declaracin de variables, cdigo de funcin, etc. Despus se crea DB3 (asociado a FB1) y toma la tabla de declaracin de FB1 Asignacin del valor actual al parmetro/variable formal:
desde el DB3: Ver > datos > valor actual Desde el OB100: Load + Transfer
PLCs
Curso 2009/10
Pgina 20
Bloques de funcin
Mediante la llamada con varias instancias de un FB se pueden controlar varios equipos con el mismo FB
PLCs
Curso 2009/10
Pgina 21
Bloques de datos
Zonas de memoria para almacenamiento de datos organizados del programa No pierden la informacin cuando el programa los ha acabado de utilizar Existen DBs de dos tipos:
Globales: disponibles para cualquier mdulo lgico del programa. De instancia: asignado a un mdulo de funcin, por lo que slo es accesible por ste.
PLCs
Curso 2009/10
Pgina 22
Apertura: Acceso:
AUF L U T U
lleva implcito AUF DB8 lleva implcito AUF DB7 lleva implcito AUF DB6
Acceso Tradicional
AUF U "Valores" DBX 0.0 U
simblico
o
DB99.DBX0.0
Valores".Estado
DB99.DBB1
Valores".Estados
4.0 Peso[1]
REAL
AUF L "Valores" o DBW 2 L DB99.DBW2
o
L Valores".Numero
8.0 Peso[2]
REAL
AUF L
DB 99 DBD 8
DB99.DBD4
L "Valores".Peso[1]
PLCs
Curso 2009/10
Pgina 24
Carga y transferencia en mdulos de datos L DBB 1 L DBW 2 L5 T DBW 4 L 'A' L DBB28 ==I U DBX 3.1 Cargar el byte de datos 1. Cargar la palabra de datos 2 (byte 2/3). Cargar el nmero 5. Transferir a la palabra 4. Cargar el carcter ASCII A. Cargar el byte de datos 28. Comparar. Consultar el bit 1 del byte 3.
PLCs
Curso 2009/10
Pgina 25
CALL
FB22,DB202
CALL
FB22,DB203
Pgina 26
PLCs
Curso 2009/10
Resumen
FC
Lenguaje
FB
Con parmetros sin param., sin DB inst. Con param., con DB inst.
Sin parmetros
AWL
UC FB1 CC FB1
KOP
FC1
EN ENO
FB2
ENO
EN Par1 Par2
DB3 FC2
EN Par1 Par2 ENO ENO Par3
PLCs
FB1
EN EN
FB2
Par1 Par2
Par3
Pgina 27
Curso 2009/10
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), azcar (A124.3) y un motor que realiza la mezcla (A124.4). La produccin empezar con un flanco de subida de la seal 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 Magdalenas 3 Sobaos Donuts 1 2 Leche 2 2 1 Levadura 3 3 2 Azcar 2 1 1 T mezcla 4 3 2
La entrada E124.5 permite elegir si los productos y el proceso de mezcla se realizan simultneamente (si E124.2=0) o de manera secuencial (si E124.2=1) PLCs
Curso 2009/10
Pgina 28
EJERCICIO (Entregable 7)
Resuelva el ejercicio utilizando: Funciones con parmetros. Bloques de funcin con DBs de instancia. Evite, en la medida de lo posible, el uso de saltos.
PLCs
Curso 2009/10
Pgina 29