2. Tipos de bloques
de programa
S7 Manager
Concepto de
bloques
OB (bloques de organización)
FB (bloque de función) tiene un bloque de
datos de instancia para almacenamiento
temporal
FC (función)
No tiene bloque de datos de instancia
DB (bloque de datos) para acceso global
y almacenamiento permanente
ING. ESP. JOHN JAIRO PIÑEROS
3. Estructurarel
programa de
usuario
Al crear el programa de usuario para
las tareas de automatización, las instrucciones
del programa se insertan en bloques lógicos:
OB1
FB
DB
FC
Bloque de
Organización
Bloque de
Función
Bloque de
datos
Función
ING. ESP. JOHN JAIRO PIÑEROS
4. Estructurarel
programa de
usuario
Un bloque de organización (OB) reacciona a un
evento específico en la CPU y puede interrumpir la ejecución
del 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.
OB1Bloque de
Organización
ING. ESP. JOHN JAIRO PIÑEROS
5. Estructurar
del programa
de usuario
Un bloque de función (FB) es una subrutina que
se ejecuta cuando se llama desde otro bloque lógico (OB,
FB 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.
FB
Bloque de Función
ING. ESP. JOHN JAIRO PIÑEROS
6. 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.
FC
Función
ING. ESP. JOHN JAIRO PIÑEROS
7. Estructura
del programa
de usuario
Según los requisitos de la aplicación,
es posible seleccionar una estructura lineal o
modular para crear el programa de usuario:
ING. ESP. JOHN JAIRO PIÑEROS
8. Estructura
del programa
de usuario
Un programa lineal ejecuta
todas las instrucciones de la tarea de
automatización de forma secuencial, es
decir, una tras otra.
Generalmente, el programa
lineal deposita todas las instrucciones del
programa en el OB encargado de la
ejecución cíclica del programa (OB 1).
Un programa modular llama bloques de
función específicos que ejecutan determinadas tareas.
Para crear una estructura modular, la tarea de
automatización compleja se divide en tareas subordinadas
más pequeñas, correspondientes a las funciones
tecnológicas del proceso.
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
9. Estructura
del programa
de usuario
Creando bloques lógicos genéricos se pueden reutilizarse en
el programa de usuario, es posible el diseño y la
implementación del programa de usuario.
La utilización de bloques lógicos genéricos ofrece
numerosas ventajas
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
10. Estructura
del programa
S7 Manager
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
FCBloque de
datos
Globales
Bloque de
datos
Globales
OB
FB
FC
FC
FB
Bloque de
datos de
instancia
Bloque de
datos de
instancia
ING. ESP. JOHN JAIRO PIÑEROS
Concepto de
bloques
11. Tipos de
bloques de
datos de
instancia del
S7
STEP 7 utiliza bloques de datos de instancia única y multi-instancia
Un bloque de función (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
OB FCFB
″Motor″
DB
instancia única
″Motor_2″
FB
″Motor″
DB
multi-instancia
″Motor_1″
FC
FB
Modbus
COMM
Concepto de
bloques
ING. ESP. JOHN JAIRO PIÑEROS
12. Estructura de
las alarmas del
S7
Ing. Paul Gálvez
Ciclo
Arranque
Hardware
Retardo
OB1
OB
100
OB
200
FC
FB
DB
Cola de
ejecución
de OBs
FB
DB
OB
202
OB
80
FC
Alarma error tiempo
Alarma proceso
Alarma cíclica OB
201
OB
82
Alarma error diagn.
Alarmas
Se pueden utilizar distintosOBs opcionales de arranque y retardo
El acoplamiento del evento
al OB se puede realizar
durante la configuración
así como en runtime
Concepto
de bloques
13. Bloques para
estructurar el
programa
Diseñando FBs y FCs que ejecuten tareas genéricas, se
crean bloques lógicos modulares.
El programa se estructura luego, de manera que otros
bloques lógicos llamen estos bloques modulares reutilizables. El
bloque que efectúa la llamada transfiere los parámetros específicos
del dispositivo al bloque llamado.
A B
ING. ESP. JOHN JAIRO PIÑEROS
14. Bloques para
estructurar el
programa
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
ejecución del bloque llamado, la CPU reanuda la ejecución del
bloque que ha efectuado la llamada.
El procesamiento continúa con la ejecución
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.
Profundidad del anidamiento
1
2
1 2
ING. ESP. JOHN JAIRO PIÑEROS
15. Mas
explicativo
aún
Bloque de organización (OB)
OB1
Los bloques de organización 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 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
16. Mas
explicativo
aún
OB1
Tras finalizar el procesamiento de los OBs de
ciclo, la CPU vuelve a ejecutarlos inmediatamente. Esta
ejecució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.
Bloque de organización (OB)
ING. ESP. JOHN JAIRO PIÑEROS
17. Mas
explicativo
aún
Función (FC)
Una función (FC) es un bloque lógico que, por lo
general, 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.
FC
ING. ESP. JOHN JAIRO PIÑEROS
18. Mas
explicativo
aún
Una FC también se puede llamar varias veces en
diferentes puntos de un programa. Esto facilita la
programación de tareas que se repiten con frecuencia.
Función (FC)
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.
FC
ING. ESP. JOHN JAIRO PIÑEROS
19. Mas
explicativo
aún
Bloque de función (FB)
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.
FB
ING. ESP. JOHN JAIRO PIÑEROS
20. 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.
Bloque de función (FB)
FB
ING. ESP. JOHN JAIRO PIÑEROS
21. Mas
explicativo
aún
DB
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.
Bloque de datos (DB)
ING. ESP. JOHN JAIRO PIÑEROS
22. Mas
explicativo
aún
DB
Los datos almacenados en un DB no se borran
cuando 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.
Bloque de datos (DB)
ING. ESP. JOHN JAIRO PIÑEROS