programación estructurada siemens - tia portal
TRANSCRIPT
Programación Estructurada Siemens
ING. ESP. JOHN JAIRO PIÑEROS
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 globaly almacenamiento permanente
ING. ESP. JOHN JAIRO PIÑEROS
Estructurar el 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
Estructurar el 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
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.
FBBloque de Función
ING. ESP. JOHN JAIRO PIÑEROS
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.
FCFunción
ING. ESP. JOHN JAIRO PIÑEROS
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
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
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
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
FBFC
FC
FB
Bloque de datos deinstancia
Bloque de datos deinstancia
ING. ESP. JOHN JAIRO PIÑEROS
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 FCFB ″Motor″
DBinstancia única
″Motor_2″
FB″Motor″
DBmulti-instancia
″Motor_1″
FC
FBModbusCOMM
Concepto de bloques
ING. ESP. JOHN JAIRO PIÑEROS
Estructura de las alarmas del S7
Ing. Paul Gálvez
Ciclo
Arranque
Hardware
Retardo
OB1
OB100
OB200
FC
FB
DBCola de
ejecución de OBs
FB
DBOB202
OB80
FCAlarma error tiempo
Alarma proceso
Alarma cíclica OB201
OB82
Alarma error diagn.
Ala
rmas
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
Concepto de bloques
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
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
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
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
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
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
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
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
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
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
Aplicación de un FB y DB´s
FB
DB
ING. ESP. JOHN JAIRO PIÑEROS
MUCHAS GRACIAS
ING. ESP. JOHN JAIRO PIÑEROS