Está en la página 1de 24

Programacin Estructurada

Siemens

ING. ESP. JOHN JAIRO PIEROS


Tipos de bloques S7 Manager
de programa

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

ING. ESP. JOHN JAIRO PIEROS


Estructurar el OB1
Bloque de
Organizacin
programa de
usuario
FB Bloque de
Funcin

Al crear el programa de usuario para


las tareas de automatizacin, las instrucciones
del programa se insertan en bloques lgicos: Bloque de
DB
datos

FC Funcin

ING. ESP. JOHN JAIRO PIEROS


Bloque de OB1
Organizacin

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

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.

ING. ESP. JOHN JAIRO PIEROS


FB
Bloque de Funcin

Estructurar
del programa Un bloque de funcin (FB) es una subrutina que
se ejecuta cuando se llama desde otro bloque lgico (OB,
de usuario 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.

ING. ESP. JOHN JAIRO PIEROS


FC
Funcin

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.

ING. ESP. JOHN JAIRO PIEROS


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

ING. ESP. JOHN JAIRO PIEROS


Estructura
del programa
de usuario

Un programa lineal ejecuta Un programa modular llama bloques de


todas las instrucciones de la tarea de funcin especficos que ejecutan determinadas tareas.
automatizacin de forma secuencial, es
Para crear una estructura modular, la tarea de
decir, una tras otra. automatizacin compleja se divide en tareas subordinadas
ms pequeas, correspondientes a las funciones
Generalmente, el programa tecnolgicas del proceso.
lineal deposita todas las instrucciones del
programa en el OB encargado de la Cada bloque lgico provee el segmento del programa para
ejecucin cclica del programa (OB 1). cada tarea subordinada. El programa se estructura
llamando uno de los bloques lgicos desde otro bloque.

ING. ESP. JOHN JAIRO PIEROS


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

Bloques reutilizables

Divisin del programa

Simplifica la depuracin del programa

La puesta den marcha de la


aplicacin es mas rpida

ING. ESP. JOHN JAIRO PIEROS


Estructura
del programa Bloque de FB
FC

S7 Manager datos
Globales Bloque de FC
datos de
instancia
OB

Concepto de Bloque de FC FB
datos
bloques Globales Bloque de
datos de
instancia
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. ESP. JOHN JAIRO PIEROS


OB FB FC
Motor

Tipos de FB
Motor
bloques de FC
datos de
instancia del DB
instancia nica
S7 DB
FB
Modbus
Motor_2

multi-instancia COMM
Motor_1

Concepto de STEP 7 utiliza bloques de datos de instancia nica y multi-instancia


Un bloque de funcin (FB) puede llamarse varias veces
bloques 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. ESP. JOHN JAIRO PIEROS
Estructura de
las alarmas del FB

S7 Hardware Cola de
ejecucin
Ciclo OB1
DB
de OBs
Arranque OB
100 FC

Retardo OB
200
Concepto
FB
de bloques Alarma cclica OB
201
DB

Alarmas Alarma proceso OB


202
FC
Alarma error tiempo OB
El acoplamiento del evento 80
al OB se puede realizar
durante la configuracin Alarma error diagn. OB
as como en runtime 82

Se pueden utilizar distintos OBs opcionales de arranque y retardo


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

A B

ING. ESP. JOHN JAIRO PIEROS


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

El procesamiento contina con la ejecucin 1 2


de la instruccin siguiente a la llamada de
bloque.

Las llamadas de bloque pueden anidarse


para crear una estructura ms modular.

Inicio del ciclo.


1

Profundidad del anidamiento


2

ING. ESP. JOHN JAIRO PIEROS


OB1

Bloque de organizacin (OB)

Mas Los bloques de organizacin permiten estructurar


explicativo el programa. Estos bloques sirven de interfaz entre el
sistema operativo y el programa de usuario. Los OBs son
an 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. ESP. JOHN JAIRO PIEROS
OB1

Bloque de organizacin (OB)

Mas
explicativo Tras finalizar el procesamiento de los OBs de
ciclo, la CPU vuelve a ejecutarlos inmediatamente. Esta
an 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. ESP. JOHN JAIRO PIEROS


FC
Funcin (FC)

Mas
explicativo Una funcin (FC) es un bloque lgico que, por lo
an 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:

Para ejecutar operaciones estndar y reutilizables, p. ej. en


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

ING. ESP. JOHN JAIRO PIEROS


FC
Funcin (FC)

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

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. ESP. JOHN JAIRO PIEROS


FB

Bloque de funcin (FB)

Mas
explicativo
an 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. ESP. JOHN JAIRO PIEROS


FB
Bloque de funcin (FB)

Mas
explicativo
an
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. ESP. JOHN JAIRO PIEROS


DB
Bloque de datos (DB)

Mas
explicativo
an
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. ESP. JOHN JAIRO PIEROS


Bloque de datos (DB) DB

Mas
explicativo Los datos almacenados en un DB no se borran
an 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. ESP. JOHN JAIRO PIEROS


FB

DB

Aplicacin de
un FB y DBs

ING. ESP. JOHN JAIRO PIEROS


ING. ESP. JOHN JAIRO PIEROS

También podría gustarte