24
Programación Estructurada Siemens ING. ESP. JOHN JAIRO PIÑEROS

Programación estructurada Siemens - TIA PORTAL

Embed Size (px)

Citation preview

Page 1: Programación estructurada Siemens - TIA PORTAL

Programación Estructurada Siemens

ING. ESP. JOHN JAIRO PIÑEROS

Page 2: Programación estructurada Siemens - TIA PORTAL

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

Page 3: Programación estructurada Siemens - TIA PORTAL

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

Page 4: Programación estructurada Siemens - TIA PORTAL

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

Page 5: Programación estructurada Siemens - TIA PORTAL

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

Page 6: Programación estructurada Siemens - TIA PORTAL

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

Page 7: Programación estructurada Siemens - TIA PORTAL

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

Page 8: Programación estructurada Siemens - TIA PORTAL

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

Page 9: Programación estructurada Siemens - TIA PORTAL

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

Page 10: Programación estructurada Siemens - TIA PORTAL

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

Page 11: Programación estructurada Siemens - TIA PORTAL

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

Page 12: Programación estructurada Siemens - TIA PORTAL

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

Page 13: Programación estructurada Siemens - TIA PORTAL

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

Page 14: Programación estructurada Siemens - TIA PORTAL

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

Page 15: Programación estructurada Siemens - TIA PORTAL

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

Page 16: Programación estructurada Siemens - TIA PORTAL

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

Page 17: Programación estructurada Siemens - TIA PORTAL

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

Page 18: Programación estructurada Siemens - TIA PORTAL

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

Page 19: Programación estructurada Siemens - TIA PORTAL

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

Page 20: Programación estructurada Siemens - TIA PORTAL

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

Page 21: Programación estructurada Siemens - TIA PORTAL

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

Page 22: Programación estructurada Siemens - TIA PORTAL

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

Page 23: Programación estructurada Siemens - TIA PORTAL

Aplicación de un FB y DB´s

FB

DB

ING. ESP. JOHN JAIRO PIÑEROS

Page 24: Programación estructurada Siemens - TIA PORTAL

MUCHAS GRACIAS

ING. ESP. JOHN JAIRO PIÑEROS