Programación
Estructurada S7-1200
Ing. Paul Gálvez F.
Mayor información la puede solicitar a:
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
FC Global
Data Block
Global
Data Block
Estructura del programa S7 Manager
OB
FB FC
FC
FB
Instance
Data Block
Instance
Data Block
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. Paul Gálvez F.
Concepto de
bloques
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 FC FB ″Motor″
DB
instancia única
″Motor_2″
FB ″Motor″
DB
multi-instancia
″Motor_1″
FC
FB Modbus COMM
Ing. Paul Gálvez F.
Concepto de
bloques
Estructura de las alarmas del
S7
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.
Ala
rma
s
Se pueden utilizar distintos OBs opcionales de arranque y retardo
El acoplamiento del
evento al OB se puede
realizar durante la
configuración así como
en runtime
Ing. Paul Gálvez F.
Concepto de
bloques
Estructurar el programa de
usuario
Ing. Paul Gálvez F.
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
Estructurar el programa de
usuario
Ing. Paul Gálvez F.
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.
OB1
Bloque de
Organización
Estructurar del programa de
usuario
Ing. Paul Gálvez F.
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
Estructurar del programa de
usuario
Ing. Paul Gálvez F.
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
Estructura del programa de
usuario
Ing. Paul Gálvez F.
Según los requisitos de la
aplicación, es posible seleccionar una
estructura lineal o modular para crear el
programa de usuario:
Estructura del programa de
usuario
Ing. Paul Gálvez F.
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.
Estructura del programa de
usuario
Ing. Paul Gálvez F.
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
Bloques para estructurar el
programa
Ing. Paul Gálvez F.
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
Bloques para estructurar el
programa
Ing. Paul Gálvez F.
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
Mas explicativo aún
Ing. Paul Gálvez F.
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. Paul Gálvez F.
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)
Mas explicativo aún
Ing. Paul Gálvez F.
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
Mas explicativo aún
Ing. Paul Gálvez F.
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
Mas explicativo aún
Ing. Paul Gálvez F.
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
Mas explicativo aún
Ing. Paul Gálvez F.
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
Mas explicativo aún
Ing. Paul Gálvez F.
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)
Mas explicativo aún
Ing. Paul Gálvez F.
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)
Aplicación de un FB y DB´s
Ing. Paul Gálvez F.
FB
DB
Ing. Paul Gálvez F.
Top Related