You are on page 1of 24

Programacin Estructurada S7-1200

Mayor informacin la puede solicitar a: paul.galvez@usm.cl

Ing. Paul Glvez F.

Tipos de bloques de programa


S7 Manager

OB (bloques de organizacin)
Concepto de bloques

FC (funcin) No tiene bloque de datos de instancia FB (bloque de funcin) tiene un bloque de datos de instancia para almacenamiento temporal DB (bloque de datos) para acceso global y almacenamiento permanente

Estructura del programa S7 Manager


Global Data Block FB Instance Data Block OB FC FC

Concepto de bloques

Global Data Block

FC

FB Instance Data Block

La profundidad mxima de anidamiento es de 16 STEP 7 utiliza arquitectura de bloques Modularizacin y reutilizacin ms sencillas Los objetos tecnolgicos (p. ej., PID control) se pueden estandarizar y llamar varias veces Soporta referencias simblicas

Ing. Paul Glvez F.

Tipos de bloques de datos de instancia del S7


OB FB
Motor

FB

FC

Motor
Concepto de bloques

FC

FB
DB multi-instancia Motor_1 Modbus COMM

DB instancia nica Motor_2

STEP 7 utiliza bloques de datos de instancia nica y multi-instancia Un bloque de funcin (FB) puede llamarse varias veces Un tipo de FB (p. ej., el FB Motor) puede controlar varios

accionamientos Los datos reales de los diferentes accionamientos se pueden almacenar en distintos DBs de instancia nica o multi-instancia Dos FBs pueden compartir un DB multi-instancia y as optimizar el uso de la memoria
Ing. Paul Glvez F.

Estructura de las alarmas del S7


FB Hardware Cola de ejecucin de OBs Ciclo OB1

DB
Arranque OB 100 OB 200 FB Alarma cclica OB 201 OB 202 FC DB

FC

Concepto de bloques

Retardo

Alarmas

Alarma proceso

El acoplamiento del evento al OB se puede realizar durante la configuracin as como en runtime

Alarma error tiempo


Alarma error diagn.

OB 80
OB 82

Se pueden utilizar distintos OBs opcionales de arranque y retardo

Ing. Paul Glvez F.

Estructurar el programa de usuario


OB1

Bloque de Organizacin

FB

Bloque de Funcin

Al crear el programa de usuario para las tareas de automatizacin, las instrucciones del programa se insertan en bloques lgicos:

DB

Bloque de datos

FC

Funcin

Ing. Paul Glvez F.

Estructurar el programa de usuario


Un bloque de organizacin (OB) reacciona a un evento especfico en la CPU y puede interrumpir la ejecucin del programa de usuario.
Bloque de Organizacin

El bloque predeterminado para la ejecucin cclica del programa de usuario (OB 1) ofrece la estructura bsica y es el nico bloque lgico que se requiere para el programa de usuario. Si se incluyen otros OBs en el programa, Estos interrumpen la ejecucin del OB 1. Los dems OBs ejecutan funciones especficas, tales como tareas de arranque, procesamiento de alarmas y tratamiento de errores, o ejecucin de un cdigo de programa especfico en determinados intervalos.

OB1

Ing. Paul Glvez F.

Estructurar del programa de usuario


Un bloque de funcin (FB) es una subrutina que se ejecuta cuando se llama desde otro bloque lgico (OB, FB o FC). El bloque que efectua la llamada transfiere parmetros al FB e identifica un bloque de datos determinado (DB) que almacena los datos de la llamada o instancia especfica de este FB. La modificacin del DB instancia permite a un FB genrico controlar el funcionamiento de un conjunto de dispositivos. Por ejemplo, un solo FB puede controlar varias bombas o vlvulas. Diferentes DBs de instancia contienen los parmetros operativos especficos de cada bomba o vlvula.

Bloque de Funcin

FB

Ing. Paul Glvez F.

Estructurar del programa de usuario


Una funcin (FC) es una subrutina que se ejecuta cuando se llama desde otro bloque lgico (OB, FB o FC). La FC no tiene un DB instancia asociado. El bloque que efecta la llamada transfiere los parmetros a la FC. Los valores de salida de la FC deben escribirse en una direccin de la memoria o en un DB global.

Funcin

FC

Ing. Paul Glvez F.

Estructura del programa de usuario


Segn los requisitos de la aplicacin, es posible seleccionar una estructura lineal o modular para crear el programa de usuario:

Ing. Paul Glvez F.

Estructura del programa de usuario

Un programa lineal ejecuta todas las instrucciones de la tarea de automatizacin de forma secuencial, es decir, una tras otra. Generalmente, el programa lineal deposita todas las instrucciones del programa en el OB encargado de la ejecucin cclica del programa (OB 1).

Un programa modular llama bloques de funcin especficos que ejecutan determinadas tareas. Para crear una estructura modular, la tarea de automatizacin compleja se divide en tareas subordinadas ms pequeas, correspondientes a las funciones tecnolgicas del proceso. Cada bloque lgico provee el segmento del programa para cada tarea subordinada. El programa se estructura llamando uno de los bloques lgicos desde otro bloque.
Ing. Paul Glvez F.

Estructura del programa de usuario


Creando bloques lgicos genricos se pueden reutilizarse en el programa de usuario, es posible el diseo y la implementacin del programa de usuario. La utilizacin de bloques lgicos genricos ofrece numerosas ventajas
Bloques reutilizables

Divisin del programa

Simplifica la depuracin del programa

La puesta den marcha de la aplicacin es mas rpida

Ing. Paul Glvez F.

Bloques para estructurar el programa


Diseando FBs y FCs que ejecuten tareas genricas, se crean bloques lgicos modulares. El programa se estructura luego, de manera que otros bloques lgicos llamen estos bloques modulares reutilizables. El bloque que efecta la llamada transfiere los parmetros especficos del dispositivo al bloque llamado.

Ing. Paul Glvez F.

Bloques para estructurar el programa


Cuando un bloque lgico llama a otro bloque lgico, la CPU ejecuta el cdigo en el bloque llamado. Una vez finalizada la ejecucin del bloque llamado, la CPU reanuda la ejecucin del bloque que ha efectuado la llamada.

El procesamiento contina con la ejecucin de la instruccin siguiente a la llamada de bloque. Las llamadas de bloque pueden anidarse para crear una estructura ms modular.

1 2

Inicio del ciclo.

Profundidad del anidamiento

Ing. Paul Glvez F.

Mas explicativo an
Bloque de organizacin (OB)

OB1

Los bloques de organizacin permiten estructurar el programa. Estos bloques sirven de interfaz entre el sistema operativo y el programa de usuario. Los OBs son controlados por eventos. Un evento, p. ej. una alarma de diagnstico o un intervalo, hace que la CPU ejecute un OB. Algunos OBs tienen eventos de arranque y comportamiento en arranque predefinidos.
El OB de ciclo contiene el programa principal. Es posible incluir ms de un OB de ciclo en el programa de usuario. En estado operativo RUN, los OBs de ciclo se ejecutan en el nivel de prioridad ms bajo y pueden ser interrumpidos por todos los dems tipos de procesamiento del programa. El OB de arranque no interrumpe el OB de ciclo, puesto que la CPU ejecuta el OB de arranque antes de pasar al estado operativo RUN.
Ing. Paul Glvez F.

Mas explicativo an
Bloque de organizacin (OB)

OB1

Tras finalizar el procesamiento de los OBs de ciclo, la CPU vuelve a ejecutarlos inmediatamente. Esta ejecucin cclica es el tipo de procesamiento "normal" que se utiliza para los controladores lgicos programables. En numerosas aplicaciones, el programa de usuario entero est contenido en un solo OB de ciclo. Es posible crear otros OBs para ejecutar funciones especficas, tales como tareas de arranque, procesamiento de alarmas y tratamiento de errores, o ejecucin de un cdigo de programa especfico en determinados intervalos. Estos OBs interrumpen la ejecucin de los OBs de ciclo.

Ing. Paul Glvez F.

Mas explicativo an
Funcin (FC) Una funcin (FC) es un bloque lgico que, por lo general, realiza una operacin especfica en un conjunto de valores de entrada. La FC almacena los resultados de esta operacin en posiciones de memoria. Las FCs se utilizan para realizar las tareas siguientes:

FC

Para ejecutar operaciones estndar y reutilizables, p. ej. en clculos matemticos. Para ejecutar funciones tecnolgicas, p. ej. controles individuales con operaciones lgicas binarias.

Ing. Paul Glvez F.

Mas explicativo an
Funcin (FC) Una FC tambin se puede llamar varias veces en diferentes puntos de un programa. Esto facilita la programacin de tareas que se repiten con frecuencia.

FC

Una FC no tiene ningn bloque de datos instancia asociado (DB). La FC usa la pila de datos locales para los datos temporales utilizados para calcular la operacin. Los datos temporales no se almacenan. Para almacenar los datos de forma permanente es preciso asignar el valor de salida a una posicin de memoria global, p. ej. el rea de marcas o un DB global.

Ing. Paul Glvez F.

Mas explicativo an
Bloque de funcin (FB)

FB

Un bloque de funcin (FB) es un bloque lgico que utiliza un bloque de datos instancia para sus parmetros y datos estticos. Los FBs tienen una memoria variable ubicada en un bloque de datos (DB) o DB "instancia". El DB instancia ofrece un bloque de memoria asociado a esa instancia (o llamada) del FB y almacena datos una vez que haya finalizado el FB. Es posible asociar distintos DBs de instancia a diferentes llamadas del FB. Los DBs instancia permiten utilizar un FB genrico para controlar varios dispositivos.

Ing. Paul Glvez F.

Mas explicativo an
Bloque de funcin (FB)

FB

El programa se estructura de manera que un bloque lgico llame un FB y un DB instancia. La CPU ejecuta luego el cdigo del programa en ese FB y almacena los parmetros del bloque y los datos locales estticos en el DB instancia. Cuando finaliza la ejecucin del FB, la CPU regresa al bloque lgico que ha llamado el FB. El DB instancia conserva los valores de esa instancia del FB. Estos valores estn disponibles para las llamadas posteriores al bloque de funcin, bien sea en el mismo ciclo o en otros ciclos.

Ing. Paul Glvez F.

Mas explicativo an
Bloque de datos (DB)

DB

Los bloques de datos (DB) se crean en el programa de usuario para almacenar los datos de los bloques lgicos. Todos los bloques del programa de usuario pueden acceder a los datos en un DB global. En cambio, un DB instancia almacena los datos de un bloque de funcin (FB) especfico. Un DB se puede definir de manera que sea de slo lectura.

Ing. Paul Glvez F.

Mas explicativo an
Bloque de datos (DB)

DB

Los datos almacenados en un DB no se borran cuando finaliza la ejecucin de un bloque lgico asociado. Hay dos tipos de DBs,: Un DB global almacena los datos de los bloques lgicos en el programa. Cualquier OB, FB o FC puede acceder a los datos en un DB global. Un DB de instancia almacena los datos de un FB especfico. La estructura de los datos en Un DB instancia refleja los parmetros (Input, Output e InOut) y los datos estticos del FB.

Ing. Paul Glvez F.

Aplicacin de un FB y DBs
FB DB

Ing. Paul Glvez F.

Ing. Paul Glvez F.

You might also like