29
PLC’s Página 1 Curso 2009/10 1. 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) Tema 2: Programación de PLCs

PLC Funcion de Los Bloques

Embed Size (px)

Citation preview

Page 1: PLC Funcion de Los Bloques

PLC’s Página 1 Curso 2009/10

1.  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)

Tema 2: Programación de PLCs

Page 2: PLC Funcion de Los Bloques

PLC’s Página 2 Curso 2009/10

  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

Introducción

Sistema operativo

OB1

FC

FB

SFC

SFB

Otros OBs

FC

FB

Page 3: PLC Funcion de Los Bloques

PLC’s Página 3 Curso 2009/10 Curso 2009/10

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

OB 1

Motor 1

FB1

Válvulas

FB2

Controlador

FB10

FC 5 Valor límite Copia

SFC

. . .

.

.

CALL FB1, DB2 Marcha :=E 0.0 Paro :=E 0.1 Motor_on :=A12.0 Velocidad :=AW14

.

.

FB 1 Direc. Decl. Nombre Tipo 0.0 in Marcha BOOL 0.1 in Paro BOOL 2.0 out Motor_on BOOL 4.0 out Velocidad INT 6.0 stat Veloc_ant INT 0.0 temp Calc_1 INT

.

.

. U #Marcha UN #Paro = #Motor_on .

DB 2 OB 1

Introducción

Page 4: PLC Funcion de Los Bloques

PLC’s Página 4 Curso 2009/10 Curso 2009/10

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

Tipo de Módulo

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 la 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

Introducción

Page 5: PLC Funcion de Los Bloques

PLC’s Página 5 Curso 2009/10 Curso 2009/10

Variables temporales • se borran después de la ejecución del bloque asociado

• almacenamiento temporal en la L stack

• utilizables en OBs / FCs / FBs

Varibales estáticas • se mantienen incluso después de que sea ejecutado el bloque

• almacenamiento permanente en DBs.

• solo se pueden usar en FBs

Variables/Datos Locales (sólo válidos en un bloque)

Variables/Datos Globales (válidos en todo el programa)

• PAE / PAA

• E / A • M / T / Z

• Áreas de DB

simbólico absoluto

Acceso

Introducción

Page 6: PLC Funcion de Los Bloques

PLC’s Página 6 Curso 2009/10 Curso 2009/10

• 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.

Introducción

Page 7: PLC Funcion de Los Bloques

PLC’s Página 7 Curso 2009/10 Curso 2009/10

"Motor" EN ENO

Marcha

Dir. Decl. Nombre Tipo Valor inicial ... 0.0 in Marcha BOOL FALSE 0.1 in Paro BOOL TRUE 2.0 in Velocidad INT 0 2.0 out Motor_on BOOL FALSE 8.0 out Consigna INT 0 10.0 inout EMER_OFF BOOL FALSE ... stat ... ... ... ... temp .. ... ...

Consigna

EMER_OFF

Motor_on Paro Parámetros

de entrada

Parámetros In/Out

Parám. de Salida

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

Velocidad

Introducción

Page 8: PLC Funcion de Los Bloques

PLC’s Página 8 Curso 2009/10 Curso 2009/10

•  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.

Bloques de organización

Page 9: PLC Funcion de Los Bloques

PLC’s Página 9 Curso 2009/10 Curso 2009/10

OB 10...17 (Alarmas horarias)

OB 80...87 (Errores Asíncronos)

OB 20...23 (Alarmas de retardo)

Ejecución Periódica De un programa

OB 30...38 (Alarmas Cíclicas)

Ejecución del programa Sujeta a eventos

OB 40...47 (Alarmas de Proceso)

Arranque

OB 102

OB 100

OB 101

Ejecución Cíclica del Programa

OB 1

OB 121, 122 (Errores Síncronos)

OBs de Alarma Error OBs

Bloques de organización

Page 10: PLC Funcion de Los Bloques

PLC’s Página 10 Curso 2009/10 Curso 2009/10

Ej. OB82 (Prio.26) = Manejo de Error. Ejecutado en el caso de rotura de un hilo en la entrada analógica PEW 352

Ej. OB10 (Prio.2) = Alarma Horaria. Ejecutada una vez Por minuto desde las 9:30 El

OB1 Se ejecuta contínua- mente .....

Prioridad OB 1

3 Alarma Horaria

Alarma Cíclica

1

16 Manejo de Error

Programa Cíclico

Alarma de retardo

Alarma de proceso

2

12

26 / 28

OB 20

OB 40

OB 10

OB 35

OB 82

Nº OB Tipo de OB

Ej. OB20 (Prio.3) = Alarma de retardo. La ejecución comienza 3.25s después de la detección de un objeto.

...... Hasta que es interrumpido por otro OB

Bloques de organización

Page 11: PLC Funcion de Los Bloques

PLC’s Página 11 Curso 2009/10 Curso 2009/10

Lectura de la PAE

Ejecución del OB1

Escritura de la PAA

Rearranque Completo

automatico manual

S7-300 / 400

Alimentación

S7-300

STOP->RUN

S7-400 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

Bloques de organización: OB de Arranque

Page 12: PLC Funcion de Los Bloques

PLC’s Página 12 Curso 2009/10 Curso 2009/10

•  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.

Programa Principal Módulo Subrutina

Ejecución del programa

Ejecución del Programa Instrucción que llama

a otro módulo

OB1 FC

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

Funciones

Page 13: PLC Funcion de Los Bloques

PLC’s Página 13 Curso 2009/10 Curso 2009/10

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

–  con los mismos parámetros de entrada devuelven el mismo resultado

–  Amplían el juego de instrucciones del procesador

Ejecución del programa

CALL FC 10 On_1 := E 0.1 On_2 := E 0.2 Off := A8.0

Function FC10

in On_1 BOOL in On_2 BOOL out Off BOOL ...

... U #On_1 U #On_2 = #Off ...

Funciones

Page 14: PLC Funcion de Los Bloques

PLC’s Página 14 Curso 2009/10

•  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)

Funciones: sin parámetros

Page 15: PLC Funcion de Los Bloques

PLC’s Página 15 Curso 2009/10

•  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

Funciones: con parámetros

Page 16: PLC Funcion de Los Bloques

PLC’s Página 16 Curso 2009/10

•  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

Funciones: con parámetros

Page 17: PLC Funcion de Los Bloques

PLC’s Página 17 Curso 2009/10 Curso 2009/10

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

Funciones

Page 18: PLC Funcion de Los Bloques

PLC’s Página 18 Curso 2009/10

•  Es un bloque con memoria. Tiene asociado un bloque de datos DB de instancia, de tal forma que en cada nueva llamada se puede conservar el valor de las variables internas de la función. Esto no era posible en FCs

Llamada a un módulo con los parámetros actuales Ejemplo:

Call FB1,DB10

Área de Declaración Local

Sección de código del módulo llamado usando los valores del área de memoria local.

DB10

FB1

Copia la parte de declaración local del FB

Bloques de función

Page 19: PLC Funcion de Los Bloques

PLC’s Página 19 Curso 2009/10 Curso 2009/10

FB 5

in Marcha BOOL in Paro BOOL out Motor_on BOOL out Velocidad INT stat ... Temp...

... U #Marcha UN #Paro = #Motor_on ...

•  Módulos parametrizables: –  tantos parámetros de entrada,

salida y entrada/salida como se necesiten

–  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 –  Unidades de control de procesos

con estados internos •  calderas •  motores, válvulas, etc.

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 4.0 Velocidad INT

DB 16

Motor

Es necesario

Bloques de función

Page 20: PLC Funcion de Los Bloques

PLC’s Página 20 Curso 2009/10

•  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

Bloques de función

Page 21: PLC Funcion de Los Bloques

PLC’s Página 21 Curso 2009/10

•  Mediante la llamada con varias instancias de un FB se pueden controlar varios equipos con el mismo FB

Bloques de función

Page 22: PLC Funcion de Los Bloques

PLC’s Página 22 Curso 2009/10

•  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.

Bloques de datos

Page 23: PLC Funcion de Los Bloques

PLC’s Página 23 Curso 2009/10

•  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.

Bloques de datos globales

Page 24: PLC Funcion de Los Bloques

PLC’s Página 24 Curso 2009/10 Curso 2009/10

DB 99 "Valores" Acceso Tradicional

Acceso Total

o L DB99.DBB1 o L “Valores".Estados

o U DB99.DBX0.0 o U “Valores".Estado

o L DB99.DBW2 o L “Valores".Numero

o L DB99.DBD4 o L "Valores".Peso[1]

absoluto simbólico

AUF DB 99 L DBB 1

1.0 Estados BYTE AUF "Valores" U DBX 0.0

0.0 Estado BOOL

AUF "Valores" L DBW 2

2.0 Numero INT

4.0 Peso[1] REAL

AUF DB 99 L DBD 8 8.0 Peso[2] REAL

Dir. Nombre Tipo

Bloques de datos globales

Page 25: PLC Funcion de Los Bloques

PLC’s Página 25 Curso 2009/10

AUF DB 19 L DBB 1 Cargar el byte de datos 1. L DBW 2 Cargar la palabra de datos 2 (byte 2/3). L 5 Cargar el número 5. T DBW 4 Transferir a la palabra 4. L 'A' Cargar el carácter ASCII A. L DBB28 Cargar el byte de datos 28. ==I 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).

Abrir módulo de datos Carga y transferencia en módulos de datos

Bloques de datos globales

Page 26: PLC Funcion de Los Bloques

PLC’s Página 26 Curso 2009/10

•  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

Bloques de datos de instancia

Page 27: PLC Funcion de Los Bloques

PLC’s Página 27 Curso 2009/10 Curso 2009/10

• CALL FC1 • UC FC1 • CC FC1

AWL

KOP FC1

EN ENO

( CALL )

FB

sin param., sin DB inst.

• UC FB1 • CC FB1

FB1 EN

ENO

FB1 EN ENO

Con parámetros

• CALL FC2 Par1: ... Par2: ... Par3: ...

FC2 EN ENO

Par3

Par1

Par2

FC2 EN

ENO

Par1

Par2

Par3

Con param., con DB inst.

• CALL FB2, DB3 Par1: ... Par2: ... Par3: ...

FB2 EN ENO

Par3

Par1 Par2

DB3

FB2 EN

ENO

Par3

Par1

Par2

DB3

Sin parámetros Len- guaje

FC

FC1

Resumen

Page 28: PLC Funcion de Los Bloques

PLC’s Página 28 Curso 2009/10 Curso 2009/10

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:

•  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)

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

Page 29: PLC Funcion de Los Bloques

PLC’s Página 29 Curso 2009/10 Curso 2009/10

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.