Está en la página 1de 24

Programación Estructurada

Siemens

ING. ESP. JOHN JAIRO PIÑEROS


Tipos de bloques S7 Manager
de programa

OB (bloques de organización)
Concepto de
bloques
FC (función)
No tiene bloque de datos de instancia

FB (bloque de función) tiene un bloque de


datos de instancia para almacenamiento
temporal

DB (bloque de datos) para acceso global


y almacenamiento permanente

ING. ESP. JOHN JAIRO PIÑEROS


Estructurar el OB1 Bloque de

programa de Organización

usuario
FB Bloque de
Función

Al crear el programa de usuario para las


tareas de automatización, las instrucciones del
programa se insertan en bloques lógicos: Bloque de
DB
datos

FC Función

ING. ESP. JOHN JAIRO PIÑEROS


Bloque de OB1
Organización

Estructurar el
programa de Un bloque de organización (OB) reacciona a un evento
específico en la CPU y puede interrumpir la ejecución del
usuario programa de usuario.

El bloque predeterminado para la ejecución cíclica del


programa de usuario (OB 1) ofrece la estructura básica y es el
único bloque lógico que se requiere para el programa de
usuario.

Si se incluyen otros OBs en el programa, Estos


interrumpen la ejecución del OB 1. Los demás OBs ejecutan
funciones específicas, tales como tareas de arranque,
procesamiento de alarmas y tratamiento de errores, o
ejecución de un código de programa específico en
determinados intervalos.

ING. ESP. JOHN JAIRO PIÑEROS


FB
Bloque de Función

Estructurar
del programa Un bloque de función (FB) es una subrutina que se
ejecuta cuando se llama desde otro bloque lógico (OB, FB
de usuario o FC).
El bloque que efectua la llamada transfiere
parámetros al FB e identifica un bloque de datos
determinado (DB) que almacena los datos de la llamada o
instancia específica de este FB.

La modificación del DB instancia permite a un FB


genérico controlar el funcionamiento de un conjunto de
dispositivos.
Por ejemplo, un solo FB puede controlar varias
bombas o válvulas. Diferentes DBs de instancia contienen
los parámetros operativos específicos de cada bomba o
válvula.

ING. ESP. JOHN JAIRO PIÑEROS


FC
Función

Estructurar
del programa
de usuario Una función (FC) es una subrutina que se ejecuta cuando
se llama desde otro bloque lógico (OB, FB o FC).

La FC no tiene un DB instancia asociado. El bloque que


efectúa la llamada transfiere los parámetros a la FC.

Los valores de salida de la FC deben escribirse en una


dirección de la memoria o en un DB global.

ING. ESP. JOHN JAIRO PIÑEROS


Estructura
del programa Según los requisitos de la aplicación, es
de usuario posible seleccionar una estructura lineal o
modular para crear el programa de usuario:

ING. ESP. JOHN JAIRO PIÑEROS


Estructura
del programa
de usuario

Un programa lineal ejecuta todas las Un programa modular llama bloques de función
instrucciones de la tarea de automatización específicos que ejecutan determinadas tareas.
de forma secuencial, es decir, una tras otra.
Para crear una estructura modular, la tarea de
automatización compleja se divide en tareas subordinadas
Generalmente, el programa lineal más pequeñas, correspondientes a las funciones
deposita todas las instrucciones del tecnológicas del proceso.
programa en el OB encargado de la
ejecución cíclica del programa (OB 1). Cada bloque lógico provee el segmento del programa para
cada tarea subordinada. El programa se estructura
llamando uno de los bloques lógicos desde otro bloque.

ING. ESP. JOHN JAIRO PIÑEROS


Creando bloques lógicos genéricos se pueden reutilizarse en
el programa de usuario, es posible el diseño y la
Estructura implementación del programa de usuario.
del programa La utilización de bloques lógicos genéricos ofrece
numerosas ventajas
de usuario

Bloques reutilizables

División del programa

Simplifica la depuración del programa

La puesta den marcha de la


aplicación es mas rápida

ING. ESP. JOHN JAIRO PIÑEROS


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 máxima de
anidamiento es de 16

STEP 7 utiliza arquitectura de bloques


 Modularización y reutilización más sencillas
 Los objetos tecnológicos (p. ej., PID control) se pueden estandarizar y
llamar varias veces
 Soporta referencias simbólicas

ING. ESP. JOHN JAIRO PIÑEROS


OB FB FC
″Motor″

Tipos de FB
bloques de ″Motor″
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 función (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 PIÑEROS


Estructura de
las alarmas del FB
S7 Hardware Cola de
ejecución
Ciclo OB1
DB
de OBs
Arranque OB
100 FC

Retardo OB
200
Concepto FB
de bloques Alarma cíclica 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 configuración Alarma error diagn. OB
así como en runtime 82

Se pueden utilizar distintos OBs


Ing. Paul opcionales de arranque y retardo
Gálvez
Diseñando FBs y FCs que ejecuten tareas genéricas, se crean

Bloques para bloques lógicos modulares.


El programa se estructura luego, de manera que otros bloques
estructurar el lógicos llamen estos bloques modulares reutilizables. El bloque que
efectúa la llamada transfiere los parámetros específicos del
programa dispositivo al bloque llamado.

A B

ING. ESP. JOHN JAIRO PIÑEROS


Cuando un bloque lógico llama a otro bloque lógico, la CPU
ejecuta el código en el bloque llamado. Una vez finalizada la
Bloques para ejecución del bloque llamado, la CPU reanuda la ejecución del
bloque que ha efectuado la llamada.
estructurar el
programa

El procesamiento continúa con la ejecución 1 2


de la instrucción siguiente a la llamada de
bloque.

Las llamadas de bloque pueden anidarse


para crear una estructura más modular.

Inicio del ciclo.


1

Profundidad del anidamiento


2

ING. ESP. JOHN JAIRO PIÑEROS


OB1

Bloque de organización (OB)

Mas Los bloques de organización permiten estructurar el


explicativo programa. Estos bloques sirven de interfaz entre el sistema
operativo y el programa de usuario. Los OBs son controlados
aún por eventos.
Un evento, p. ej. una alarma de diagnóstico 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 más 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 más bajo y pueden ser interrumpidos
por todos los demás 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 PIÑEROS
OB1

Bloque de organización (OB)

Mas
explicativo Tras finalizar el procesamiento de los OBs de ciclo, la
CPU vuelve a ejecutarlos inmediatamente. Esta ejecución
aún cíclica es el tipo de procesamiento "normal" que se utiliza
para los controladores lógicos 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


específicas, tales como tareas de arranque, procesamiento
de alarmas y tratamiento de errores, o ejecución de un
código de programa específico en determinados intervalos.
Estos OBs interrumpen la ejecución de los OBs de ciclo.

ING. ESP. JOHN JAIRO PIÑEROS


FC
Función (FC)

Mas
explicativo Una función (FC) es un bloque lógico que, por lo general,
aún realiza una operación específica en un conjunto de valores de
entrada. La FC almacena los resultados de esta operación en
posiciones de memoria.

Las FCs se utilizan para realizar las tareas siguientes:

 Para ejecutar operaciones estándar y reutilizables, p. ej. en


cálculos matemáticos.
 Para ejecutar funciones tecnológicas, p. ej. controles
individuales con operaciones lógicas binarias.

ING. ESP. JOHN JAIRO PIÑEROS


FC
Función (FC)

Mas
explicativo Una FC también se puede llamar varias veces en
aún diferentes puntos de un programa. Esto facilita la
programación de tareas que se repiten con frecuencia.

Una FC no tiene ningún bloque de datos instancia


asociado (DB).
La FC usa la pila de datos locales para los datos temporales
utilizados para calcular la operación. Los datos temporales no
se almacenan.

Para almacenar los datos de forma permanente es


preciso asignar el valor de salida a una posición de memoria
global, p. ej. el área de marcas o un DB global.

ING. ESP. JOHN JAIRO PIÑEROS


FB

Bloque de función (FB)

Mas
explicativo
aún Un bloque de función (FB) es un bloque lógico que utiliza
un bloque de datos instancia para sus parámetros y datos
estáticos. 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 genérico para controlar varios
dispositivos.

ING. ESP. JOHN JAIRO PIÑEROS


FB

Bloque de función (FB)

Mas
explicativo
aún
El programa se estructura de manera que un bloque
lógico llame un FB y un DB instancia. La CPU ejecuta luego el
código del programa en ese FB y almacena los parámetros
del bloque y los datos locales estáticos en el DB instancia.
Cuando finaliza la ejecución del FB, la CPU regresa al bloque
lógico que ha llamado el FB. El DB instancia conserva los
valores de esa instancia del FB. Estos valores están
disponibles para las llamadas posteriores al bloque de
función, bien sea en el mismo ciclo o en otros ciclos.

ING. ESP. JOHN JAIRO PIÑEROS


DB
Bloque de datos (DB)

Mas
explicativo
aún
Los bloques de datos (DB) se crean en el programa de
usuario para almacenar los datos de los bloques lógicos.
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 función (FB) específico.
Un DB se puede definir de manera que sea de sólo lectura.

ING. ESP. JOHN JAIRO PIÑEROS


Bloque de datos (DB) DB

Mas
explicativo Los datos almacenados en un DB no se borran cuando
aún finaliza la ejecución de un bloque lógico asociado. Hay dos
tipos de DBs,:

 Un DB global almacena los datos de los bloques lógicos 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 específico.


La estructura de los datos en Un DB instancia refleja los
parámetros (Input, Output e InOut) y los datos estáticos del
FB.

ING. ESP. JOHN JAIRO PIÑEROS


FB

DB

Aplicación de
un FB y DB´s

ING. ESP. JOHN JAIRO PIÑEROS


MUCHAS GRACIAS

ING. ESP. JOHN JAIRO PIÑEROS

También podría gustarte