Programación estructurada plc_siemens_by_pgf

24
Programación Estructurada S7-Siemens Ing. Paul Gálvez Mayor información la puede solicitar a: paul [email protected]

Transcript of Programación estructurada plc_siemens_by_pgf

Page 1: Programación estructurada plc_siemens_by_pgf

Programación

Estructurada S7-Siemens

Ing. Paul Gálvez

Mayor información la puede solicitar a:

[email protected]

Page 2: Programación estructurada plc_siemens_by_pgf

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. Paul Gálvez

Page 3: Programación estructurada plc_siemens_by_pgf

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

Concepto de

bloques

Ing. Paul Gálvez

FCBloque de

datos

Globales

Bloque de

datos

Globales

OB

FBFC

FC

FB

Bloque de

datos de

instancia

Bloque de

datos de

instancia

P.G.F.

Page 4: Programación estructurada plc_siemens_by_pgf

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

FBModbusCOMM

Concepto de

bloques

Ing. Paul Gálvez

Page 5: Programación estructurada plc_siemens_by_pgf

Estructura de las alarmas del

S7

Ciclo

Arranque

Hardware

Retardo

OB1

OB100

OB200

FC

FB

DB

Cola de

ejecución

de OBs

FB

DB

OB202

OB80

FC

Alarma error tiempo

Alarma proceso

Alarma cíclica OB201

OB82

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

Page 6: Programación estructurada plc_siemens_by_pgf

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. Paul Gálvez

Page 7: Programación estructurada plc_siemens_by_pgf

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.

OB1

Bloque de

Organización

Ing. Paul Gálvez

Page 8: Programación estructurada plc_siemens_by_pgf

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. Paul Gálvez

Page 9: Programación estructurada plc_siemens_by_pgf

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. Paul Gálvez

Page 10: Programación estructurada plc_siemens_by_pgf

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. Paul Gálvez

Page 11: Programación estructurada plc_siemens_by_pgf

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. Paul Gálvez

Page 12: Programación estructurada plc_siemens_by_pgf

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. Paul Gálvez

Page 13: Programación estructurada plc_siemens_by_pgf

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. Paul Gálvez

Page 14: Programación estructurada plc_siemens_by_pgf

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. Paul Gálvez

Page 15: Programación estructurada plc_siemens_by_pgf

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. Paul Gálvez

Page 16: Programación estructurada plc_siemens_by_pgf

Mas explicativo aúnOB1

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. Paul Gálvez

Page 17: Programación estructurada plc_siemens_by_pgf

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. Paul Gálvez

Page 18: Programación estructurada plc_siemens_by_pgf

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. Paul Gálvez

Page 19: Programación estructurada plc_siemens_by_pgf

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. Paul Gálvez

Page 20: Programación estructurada plc_siemens_by_pgf

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. Paul Gálvez

Page 21: Programación estructurada plc_siemens_by_pgf

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. Paul Gálvez

Page 22: Programación estructurada plc_siemens_by_pgf

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. Paul Gálvez

Page 23: Programación estructurada plc_siemens_by_pgf

Aplicación de un FB y DB´s

FB

DB

Ing. Paul Gálvez

Page 24: Programación estructurada plc_siemens_by_pgf

Ing. Paul Gálvez