Вы находитесь на странице: 1из 24

Programacin

Estructurada S7-Siemens
Mayor informacin la puede solicitar a:
paul.galvez@usm.cl

Ing. Paul Glvez

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

Ing. Paul Glvez

Estructura del programa S7 Manager


FC

FB

Bloque de
datos
Globales

FC

Bloque de
datos de
instancia

OB

Concepto de
bloques
Bloque de
datos
Globales

FC

FB
Bloque de
datos de
instancia

P.G.F.

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
La profundidad mxima de
anidamiento es de 16
Ing. Paul Glvez

Tipos de bloques de datos de


instancia del S7
FB

OB

Motor

FB

Motor

FC

Concepto de
bloques

FB
DB
multi-instancia
Motor_1

DB
instancia nica
Motor_2

Modbus
COMM

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

FC

Estructura de las alarmas del


S7
FB
Hardware

Cola de
ejecucin
de OBs

Ciclo

OB1
DB

Arranque

OB
100

Retardo

OB
200

Alarma cclica

OB
201

FC

Alarmas

FB

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

Alarma proceso

DB

OB
202
FC

Alarma error tiempo

OB
80

Alarma error diagn.

OB
82

Ing. Paul Glvez

Estructurar el programa de
usuario

Al crear el programa de usuario


para las tareas de automatizacin, las
instrucciones del programa se insertan en
bloques lgicos:

Ing. Paul Glvez

OB1

Bloque de
Organizacin

FB

Bloque de
Funcin

DB

Bloque de
datos

FC

Funcin

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

OB1

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. Paul Glvez

Estructurar del programa de


usuario

Bloque de
Funcin

FB

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.

Ing. Paul Glvez

Estructurar del programa de


usuario

Funcin

FC

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. Paul Glvez

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

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

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

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

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.

Inicio del ciclo.

Profundidad del anidamiento

Ing. Paul Glvez

Mas explicativo an

OB1

Bloque de organizacin (OB)


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

Mas explicativo an

OB1

Bloque de organizacin (OB)

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

Mas explicativo an

FC

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

Mas explicativo an

FC

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

Mas explicativo an

FB

Bloque de funcin (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

Mas explicativo an

FB

Bloque de funcin (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

Mas explicativo an

DB

Bloque de datos (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

Mas explicativo an

DB

Bloque de datos (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

Aplicacin de un FB y DBs
FB
DB

Ing. Paul Glvez

Ing. Paul Glvez

Вам также может понравиться