Programar Una Multiinstancia; Crear Y Abrir Un Bloque De Función De Orden Superior - Siemens SIMATIC STEP 7 V5.3 Introducción

Tabla de contenido

10 Programar una multiinstancia

10.1 Crear y abrir un bloque de función de orden superior
En el capítulo 5 hemos programado un control de motor con el bloque de función
"Motor" (FB1). En la llamada del bloque de función FB1 desde el OB1, el FB1
utilizaba sólo los bloques de datos "Gasolina" (DB1) y "Diesel" (DB2), los cuales
contenían los datos de los correspondientes motores (p.ej., '#Drehzahl_Soll').
Supongamos que su tarea de automatización requiere otros controles de motor,
p.ej., para un motor que funciona con aceite de colza, para un motor de
hidrógeno, etc.
Procediendo de la misma forma que lo hemos hecho hasta ahora, utilizaríamos el
FB1 asignándole un nuevo DB por cada control adicional. Dicho DB contendrá los
datos del motor en cuestión. Así pues, para el control del motor de aceite de
colza, utilizaríamos el FB1 con el DB3; para el motor de hidrógeno, el FB1 con el
DB4; y así sucesivamente. Por consiguiente, el número de bloques aumentaría
rápidamente al aumentar el número de controles programados.
Es posible reducir el número de bloques programando multiinstancias. Para ello
se tiene que crear un nuevo FB de orden superior (en nuestro ejemplo, el FB10) y
llamar desde el mismo al FB1, que ha permanecido invariable, como "instancia
local". En cada llamada, el FB1 subordinado deposita sus datos en el bloque de
datos DB10 del FB10 de orden superior, con lo cual no se tienen que asignar más
DBs al FB1. Todos los FBs acceden a un único bloque de datos (aquí, el DB10).
OB1
CALL FB10, DB10
Getting Started STEP 7
A5E00261424-01
En el DB10 se integran los bloques de datos DB1
y DB2. Por ello es necesario declarar el FB1 en
los datos locales estáticos del FB10.
FB10
CALL FB1 (para motor gasolina)
CALL FB1 (para motor diesel)
. . .
FB1
"Motor"
FB1
"Motor"
DB10
Datos "motor gasolina""
Datos "motor diesel"
10-1
Tabla de contenido
loading

Tabla de contenido