Está en la página 1de 11

Visión General de Bloques en STEP 7

Tipo de Bloques Propiedades


- interfase para el usuario
Bloques de
- prioridades graduadas (0 a 27)
Organización (OB)
- información de inicio específica en la pila de datos locales

- parametrizable (los parámetros pueden asignarse en una llamada)


Bloque de Función (FB)
- con (rellamada) memoria (variables estáticas)

- parametrizable (los parámetros deben asignarse en la llamada)


Función (FC)
- básicamente sin memoria (sólo variables temporales)

- almacenamiento estructurado de datos locales (DB de instancia)


Bloque de Datos (DB)
- almacenamiento estructurado de datos globales (válido en todo el programa)

Módulos de Función - FB (con memoria) guardado en el sistema operativo de la CPU y


del Sistema (SFB) llamable por el usuario

Función del - función (con memoria) guardada en el sistema operativo de la CPU


Sistema (SFC) y llamable por el usuario

Bloques de Datos
- bloque de datos para datos de configuración y parámetros
del Sistema (SDB)

SIMATIC S7 Date: 04.05.2009 SITRAIN Formación en


Automatización y Accionamientos
Siemens SA 2009. Todos los derechos reservados. File: 01 SIMATIC S7

Bloques en STEP 7 Los módulos son, por su función, su estructura o su aplicación , partes limitadas del
programa de usuario. Los módulos en STEP 7 pueden, según su contenido, dividirse en dos
clases:
• Bloques de Usuario: Los Bloques de usuario incluyen los Módulos de
Organización (OB), Bloques de Función (FB), Funciones (FC) y Bloques de Datos (DB).
El programador guarda en los bloques (OB, FB y FC) las instrucciones del
programa para el procesamiento de datos o para el control del proceso.
En los bloques de datos (DB), el programador puede guardar datos que
ocurren durante la ejecución del programa y reutilizarlos entonces más tarde.
Los módulos de usuario se crean en un aparato de programación y desde allí son
cargados a la CPU.
• Bloques del Sistema: Los Bloques de Sistema incluyen los Bloques de
Función del Sistema (SFB), Funciones del Sistema (SFC) además de los
Bloques de Datos del Sistema (SDB).
Los SFBs y SFCs se usan para solucionar tareas estándar de PLC requeridas con
frecuencia. Están integradas en el sistema operativo de la CPU.
Los SDBs contienen datos datos de asignación de parámetros que son
evaluados exclusivamente por la CPU. Los SDBs no son creados o escritos por el
programa de usuario, sino por herramientas como el HW-CONFIG o NETPRO.
Los SDBs son creados por estas herramientas durante la carga de los datos de
asignación de parámetros – invisibles para el usuario – y la transferencia a la CPU. La
transferencia sólo es posible en el modo STOP.

Transferir Bloques Además de las ventajas de la programación estructurada, el concepto de


Más Tarde módulo de STEP 7 proporciona también la siguiente ventaja:
• Los módulos de usuario (OB, FB, FC y DB) en STEP 7 pueden modificarse y
transferirse a la CPU en runtime.
Así, se pueden actualizar durante operación partes de software del sistema o
SITRAIN Formación en eliminar errores (software) que puedan ocurrir, por ejemplo.
Automatización y Accionamientos Página 01-25 SIMATIC S7
Bloques para la Programación Estructurada
OB 1 FB1 FB10
Modularización de toda la Tarea:
Motor 1 Controlador
Las tareas parciales se Motor 1 Controlador
. . .
solucionan con sus propios
bloques FB2 FC 5 SFC
La asignación de parámetros Valor
Válvulas Copia
permite el uso flexible Válvulas límite
• Ejemplo: Ciclo de taladro con
profundidad asignable por DB 2
parámetro OB 1 FB 1
Direc. Decl. Nombre Tipo
0.0 in Marcha BOOL
Reutilización de los Bloques: . 0.1
2.0
in
out
Paro
Motor_on
BOOL
BOOL
. 4.0 out Velocidad INT
Los Bloques pueden llamarse 6.0 stat Veloc_ant INT
tantas veces como se necesite CALL FB1, DB2 0.0 temp Calc_1 INT
Marcha :=E 0.0
Restricciones: Paro :=E 0.1 .
.
Motor_on :=A12.0
• no se tiene acceso a Velocidad :=AW14
.
U #Marcha
direcciones globales . UN #Paro
= #Motor_on
• comunicación sólo a través de . .
la lista de parámetros

SIMATIC S7 Date: 04.05.2009 SITRAIN Formación en


Automatización y Accionamientos
Siemens SA 2009. Todos los derechos reservados. File: 01 SIMATIC S7

Modularización de La abstracción es la base para resolver problemas complejos, en los cuales nos
las Tareas concentramos en los aspectos fundamentales de un programa en cada abstracción e
ignoramos todos los detalles que no son esenciales. La abstracción nos ayuda a dividir tareas
complejas en tareas parciales que pueden ser resueltas por si mismas.

Programación STEP7 apoya este concepto de modularización con su modelo de bloques. A


Estructurada las tareas parciales que resultan de la división de la tarea global se les asignan bloques en los
cuales se guardan los algoritmos y datos necesarios para solucionar los problemas parciales.
A los módulos de STEP7 tales como funciones (FC) y Bloques de función (FB) se les pueden
asignar parámetros de forma que con ellos se puedan implementar los conceptos de la
programación estructurada. Esto significa:
• Los bloques para resolver las tareas parciales implementan su propia gestión de datos
con la ayuda de variables locales.
• Los bloques se comunican con el “mundo exterior”, es decir, con los sensores y los
actuadores del control de procesos o con otros bloques del programa de usuario,
exclusivamente a través de sus parámetros. No se debe realizar ningún acceso a
direcciones globales tales como entradas, salidas, marcas o variables en DBs en la zona de
instrucciones de un bloque.

Ventajas La programación estructurada tiene las siguientes ventajas:


• Los bloques de las tareas parciales se pueden crear y probar
independientemente unos de otros.
• Con la ayuda de parámetros, se pueden diseñar los bloques de manera que éstos sean
flexibles. Así, por ejemplo, se puede crear un ciclo de taladro al que se le puedan pasar
las coordenadas y la profundidad del agujero a taladrar por medio de parámetros.
• Se puede llamar a los bloques tantas veces como sea necesario en diferentes lugares
con diferentes registros de datos de parámetros, es decir, pueden reutilizarse.
• Los bloques ”reutilizables" para tareas especiales pueden ser suministrados en librerías
prediseñadas.
SITRAIN Formación en
Automatización y Accionamientos Página 01-26 SIMATIC S7
Mecanismo de Paso para Tipos de Datos Simples
Parámetros simples
actuales en:
el área de direcciones de
marcas EB0 1 0 0 1 0 0 1 0
la imagen de proceso ...
Pila L stack del llamante

OB1 OB1 Función FC10


in On_1 BOOL
Ejecución in On_2 BOOL
del programa out Off BOOL
...
BLD 1
CALL FC10 = L 20.0
On_1 := E 0.1 UC FC 10 ...
On_2 := E 0.2 P#E 0.1 U #On_1
Off := A8.0 P#E 0.2 U #On_2
P#A 8.0 = #Off
BLD 2 ...

Parámetro Parámetro Parámetro


del módulo actual formal

SIMATIC S7 Date: 04.05.2009 SITRAIN Formación en


Automatización y Accionamientos
Siemens SA 2009. Todos los derechos reservados. File: 01 SIMATIC S7

Parámetros FC Los datos a procesar pueden ser suministrados a una función llamada. Este paso de datos
tiene lugar exclusivamente a través de la lista de parámetos que aparece después de la
llamada (CALL). Los nombres y los tipos de datos de los parámetros del módulo que
aparecen se definen en la parte de declaración de la FC.
Se pueden declarar parámetros de entrada (sólo lectura), salida (sólo escritura) y
entrada/salida (lectura y escritura).
No está restringido el número de parámetros (¡espacio de memoria!), los nombres pueden
contener un máximo de 24 caracteres. Además, se puede proveer a los parámetros de un
comentario detallado. Si el bloque no tiene ningún parámetro, entonces no aparece la lista
de parámetros en la llamada al FC.

Mecanismo Con una llamada CALL, el Editor KOP/AWL/FUP calcula en primer lugar los
de Paso punteros interárea de los parámetros actuales dados en la lista de parámetros y almacena
éstos inmediatamente después de la instrucció de llamada a la FC.
Si ahora tiene lugar un acceso a un parámetro formal (por ejemplo: U On_1) dentro de la
FC, la CPU determina la instrucción de llamada a la FC de la dirección de retorno guardada
en la pila B-Stack. De la lista de parámetros pertinentes, la FC determina entonces el
puntero interárea a los parámetros actuales que pertenecen a los parámetros formales.
Entonces tiene lugar el acceso a los parámetros actuales a través de este puntero.
Este mecanismo de paso corresponde a una “Llamada por Referencia”. Si tiene lugar un
acceso a un parámetro formal dentro de una FC, entonces el acceso al parámetro actual
correspondiente resulta de esto.
Este mecanismo de paso a través de puntero supone que:
• todos los parámetros del bloque deben asignarse en una llamada a FC.
• los parámetros de bloque no pueden ser inicializados en la declaración.

Notas Si un parámetro de bloque es asignado con un parámetro actual dentro de un DB o si se


pasan tipos de datos compuestos, entonces el paso de parámetros se vuelve más complejo
SITRAIN Formación en (ver Apéndice).
Automatización y Accionamientos Página 01-27 SIMATIC S7
Características de las Llamadas a Función

Instrucción CALL
La instrucción es una Macro
El contenido del registro puede ser sobreescrito, incluso los registros DB
Precaución en la interpretación del contenido de la pila B
Después de la llamada, puede abrirse otro DB
El tiempo de procesamiento para CALL depende del número y la posición de
memoria de los parámetros actuales
La instrucción CALL asegura que los parámetros de bloque son provistos
correctamente con datos actuales
Ejemplo:
CALL FC10
On_1 := E 0.1
On_2 := E 0.2
Off := A 8.0

Instrucción de llamada UC y CC
Llamada a módulo independiente del RLO (UC) o dependiente del RLO (CC)
Ejemplos: UC FC20 ó CC FC20
sólo se pueden usar cuando la FC no tiene parámetros

SIMATIC S7 Date: 04.05.2009 SITRAIN Formación en


Automatización y Accionamientos
Siemens SA 2009. Todos los derechos reservados. File: 01 SIMATIC S7

Instrucción CALL La instrucción (Macro) CALL debería usarse para llamar a bloques (FCs, SFCs, FBs y
SFBs).
En una llamada a FC, sólo es posible un intercambio directo de información entre el
bloque llamante y la función llamada a través de CALL. CALL se asegura de que los
parámetros formales del bloque se han asignado correctamente.
En cualquier caso, deben tenerse en cuenta varias características, que resultan del hecho
de que la instrucción CALL está implementada mediante una macro que a su vez se
compone de varias instrucciones AWL.
Si se asigna un parámetro formal con direcciones que se encuentran en un DB, entonces
el paso de parámetros tiene lugar con la ayuda del registro DB (ver apéndice). De esto
resulta que:
• dentro de la FC llamada, es posible que el DB que está abierto no sea el DB que
estaba abierto antes de la llamada CALL.
• si la CPU se va a STOP durante la ejecución de la FC llamada, entonces el valor
visualizado en la pila B-Stack -> Registro DB es el que el Editor AWL usó para
sobreescribir el registro DB en la asignación de parámetros.
• si después de la ejecución, se realiza un salto de vuelta al módulo llamante, es
posible que el DB que estaba abierto antes de la llamada CALL no continúe abierto
más.

Instrucción UC, CC A los módulos también se les puede llamar con las instrucciones UC o CC. La instrucción
de llamada UC es una instrucción absoluta, es decir, UC siempre llama al módulo
independientemente de las condiciones (p. e.: UC FC20).
La instrucción de llamada CC es una instrucción condicional, es decir, CC sólo llama al
módulo cuando el RLO es igual a “1”. Si el RLO es igual a “0”, entonces el CC no hace la
llamada al bloque y pone el RLO a “1”. Consecuentemente, la instrucción siguiente a CC
es procesada..

SITRAIN
ImportanteFormación en UC y CC sólo se puedenPágina
usar cuando
Automatización y Accionamientos 01-28 no se declararon parámetros en la FC llamada.
SIMATIC S7
Bloques de Función (FBs)

OB 1

DB 2
FB 2
EN
Entrada_pert
Acuse Display
Freq_parp ENO

Tabla de Declaración del Bloque de Función

SIMATIC S7 Date: 04.05.2009 SITRAIN Formación en


Automatización y Accionamientos
Siemens SA 2009. Todos los derechos reservados. File: 01 SIMATIC S7

Características A diferencia de las funciones (FCs), los bloques de función (FBs) poseen
especiales de memoria (rellamada). Esto significa que se le asigna al bloque de función, un
los FBs bloque de datos locales, llamado bloque de datos de instancia.
Cuando llamamos a un FB, debemos especificar, además, el número del DB de
instancia, el cual se abre automáticamente.
Un DB de instancia se usa para guardar variables estáticas. Estas variables locales
sólo se pueden usar en el FB, en cuya tabla de declaración estén declaradas. Cuando
salimos del bloque, su valor se mantiene.

Parámetros Cuando llamamos al bloque de función, los valores del parámetro real se almacenan
en el bloque de datos de instancia.
Si no asignamos parámetros reales a los parámetros formales en una llamada a un
bloque, se usa el último valor almacenado en el DB de instancia para este parámetro
en la ejecución del programa.
Se pueden especificar diferentes parámetros reales para cada llamada a un FB.
Cuando salimos del bloque de función los datos del bloque de datos se conservan.

Ventajas del FB • Cuando escribimos un programa para un FC, debemos buscar áreas de
direcciones de marcas o áreas de datos vacías y debemos conservarlas
nosotros mismos. En cambio, las variables estáticas de un FB, son
administradas por el software STEP 7.
• Cuando usamos variables estáticas, evitamos el riesgo de asignar áreas de
direcciones de marcas o áreas de datos dos veces.
• En lugar de los parámetros formales “Mem_informe" y “Marca_de_flanco" del
FC20, usamos variables estáticas “Mem_informe" y “Marca_de_flanco" en el FB.
Esto simplifica la llamada al bloque ya que los dos parámetros formales se
omiten.
SITRAIN Formación en
Automatización y Accionamientos Página 01-29 SIMATIC S7
Propiedades de los Bloques de Función (FB)
Módulos parametrizables:
Motor
conforme a IEC 61131-3
DB 16
tantos parámetros de entrada,
0.0 Marcha BOOL
salida y entrada/salida como 0.1 Paro BOOL
se necesiten FB 5 2.0 Motor_on BOOL
4.0 Velocidad INT
con memoria, es decir, no
in Marcha BOOL
sólo variables temporales in Paro BOOL
sino también estáticas out Motor_on BOOL
out Velocidad INT
Llamada con área de datos stat ...
propia (instancia) CALL FB5, DB16 Temp...
“Encapsulación de datos" Marcha :=E 0.0
Paro :=E 0.1
Motor_on :=A8.0 ...
Aplicación: Velocidad :=AW12 U #Marcha
UN #Paro
Funciones de temporización y = #Motor_on
contadores ...

Unidades de control de
procesos con estados
internos
calderas
motores, válvulas, etc.

SIMATIC S7 Date: 04.05.2009 SITRAIN Formación en


Automatización y Accionamientos
Siemens SA 2009. Todos los derechos reservados. File: 01 SIMATIC S7

Visión General Los Bloques de función (FB) son bloque del programa de usuario y representan
bloques lógicos con memoria según el estándar IEC Standard 61131-3. Pueden ser
llamados por OBs, FBs y FCs.
Los bloque de función pueden tener tantos parámetros de entrada, salida y
entrada/salida como sea necesario además de variables estáticas y temporales.
Al contrario que con las FCs, los FBs disponen de instancias, es decir, a un FB se le
asigna su propia área de datos privada en la cual el FB puede “recordar” estados de
proceso entre llamada y llamada, por ejemplo. De la forma más sencilla esta área de
datos privada es su propio DB, el llamado DB de instancia.

”Memoria" El programador tiene la oportunidad de declarar variables estáticas en la sección de


declaración de un FB. El bloque de función puede “recordar” información entre llamada
y llamada en estas variables.
La capacidad de un bloque de función de “recordar” información a lo largo de varias
llamadas es la diferencia fundamental con las funciones.

Aplicación Con la ayuda de esta ”memoria", un bloque de función puede implementar funciones
de temporización y contadores o unidades de control de procesos, tales como
estaciones de procesado, motores, calderas, etc. por ejemplo.
En particular, los bloque de función son muy apropiados para controlar todas aquellas
unidades de proceso cuyo funcionamiento depende no sólo de influencias externas
sino también de estados internos, tales como paso del proceso, velocidad,
temperatura, etc.
Cuando se controlan tales unidades, los datos de estado internos de la unidad de
proceso son copiados entonces en variables estáticas del bloque de función.

SITRAIN Formación en
Automatización y Accionamientos Página 01-30 SIMATIC S7
Formación de Instancias de los Bloques de Función
OB, FB o FC
FBx DBy
Llamada a FB DBx
Algoritmos Datos del
con DB de
para control estado del
Instancia CALL FBx, DBy
... + Motor_1
...
Motor_1
Instancia del FB

FB

Declaración ...
stat Motor_1 FBx Datos del
dentro de FBs
stat Motor_2 FBx FBx estado
(Multiinstancias)
para el
CALL #Motor_1 Algoritmos Motor_2
.
para control Motor_2
CALL #Motor_2 Datos del
estado
par el
Motor_3

Motor_3

SIMATIC S7 Date: 04.05.2009 SITRAIN Formación en


Automatización y Accionamientos
Siemens SA 2009. Todos los derechos reservados. File: 01 SIMATIC S7

¿Qué es una El concepto de instancia en bloques de función tiene gran importancia y


Instancia? compone el criterio diferenciador fundamental con las FCs. La definición de variables en un
lenguaje de alto nivel como puede ser “C” bajo la declaración de nombre y tipo de datos de la
variable en la zona de declaración se denomina “instanciar” o “formación de instancia”.
Al igual que ocurre con las variables, los bloques de función también están “instanciados”.
Sólo a través de esta área de datos ‘propia’, en la cual se guardan los valores de los
parámetros del bloque además de las variables estáticas, es como el FB se convierte en una
unidad ejecutable (instancia del FB).
El control de una unidad física de proceso, como puede ser un motor o una caldera tiene lugar
entonces con la ayuda de una instancia de FB, es decir, un bloque de función con un área de
datos asignada. Entonces, los datos correspondientes a esta unidad de proceso son
guardados en esta área de datos.
Creación de La creación de una instancia de FB, es decir, la asignación de su área de
Instancias memoria propia en una llamada al FB, se puede hacer de dos formas en STEP 7:
• mediante la declaración explícita del denominado bloque de datos de instancia cuando se
llama a un bloque de función.
• mediante la declaración explícita de instancias de un bloque de función dentro de un
bloque de función de más alto nivel (modelo multiinstancia). Entonces STEP 7 se asegura de
que el área de datos necesario para la instancia se establezca dentro del área de datos del FB
de más alto nivel.
Ventajas El concepto de instancia de STEP 7 tiene las siguientes ventajas:
• En la llamada a FBs, no son necesarias medidas para el guardado y la
administración de datos locales excepto para la asignación de los DBs de instancia.
• Un bloque de función puede usarse varias veces debido a su concepto de instancia. Si,
por ejemplo, se deben controlar varios motores del mismo tipo, entonces esto tiene lugar
usando varias instancias de un FB. Los datos de estado de los motores individuales son
guardados en las variables estáticas del FB.
SITRAIN Formación en
Automatización y Accionamientos Página 01-31 SIMATIC S7
Paso de Parámetros en una Llamada a FB

1 DB16
EB0 1 0 0 1 0 0 1 0
.. .. .. .. .. .. 0 1
.. .. .. .. .. .. .. ..
AB8 1 0 0 1 0 0 1 0
3 .. .. .. .. .. .. .. 1
...
... ...
BLD 3
OB1 = L 24.0 FB10
TDB
0.0 in Marcha BOOL
Ejecución del AUF DI 16 0.1 in Paro BOOL
Programa TAR2 LD 20 2.0 out Motor_on BOOL
U E 0.4 4.0 out Velocidad INT
= DIX 0.0 ...
CALL FB10, DB16 U E 0.0
= DIX 0.1
Marcha :=E 0.4
Paro :=E 0.0 LAR2 P#DBX 0.0 ...
Motor_on :=A8.1 UC FB 10 2 U #Marcha
Velocidad :=AW12 LAR2 LD 20 UN #Paro
U DIX 2.0 = #Motor_on
= A 8.1 ...
L DIW 4
T AW 12
Parámetro TDB Parámetro
Parámetro
de bloque Actual BLD 4 formal

SIMATIC S7 Date: 04.05.2009 SITRAIN Formación en


Automatización y Accionamientos
Siemens SA 2009. Todos los derechos reservados. File: 01 SIMATIC S7

Parámetros en una Los datos a procesar pueden ser facilitados a una instancia de FB. Este paso
Llamada a FB de datos puede tener lugar usando la lista de parámetros que aparece después de la
llamada CALL. El tipo (parámetro de entrada, salida, o entrada/salida), los nombres y
los tipos de datos de los parámetros se definen en la parte de declaración de la FC.
Al contrario que en una llamada a una FC, los parámetros de entrada y salida así como
los parámetros de entrada/salida del tipo de datos simples no tienen que ser asignados
con parámetros actuales en la llamada de un FB. El motivo de esto recae en el
mecanismo de cómo se pasan los parámetros actuales al FB llamado.

Mecanismo de paso Si se crea un DB de instancia para un FB, el editor de bloques reserva


automáticamente memoria para los parámetros del bloque (parámetros de entrada,
salida, y entrada/salida) y para las variables estáticas declaradas en la parte de
declaración del FB. Las direcciones de los parámetros y variables estáticas en el DB
de instancia son exactamente aquellas direcciones de byte o bit dadas por el Editor y
que se encuentran en la primera columna de la sección de declaración del FB.
En una llamada a una instancia de FB usando la macro CALL, el DB de instancia se
abre usando el registro DI y los valores de los parámetros de entrada y entrada/salida
actuales se copian en el DB de instancia, antes de la ejecución del FB actual.
Tiene lugar entonces el inicio de la ejecución del FB. Si ahora tiene lugar un acceso a
los parámetros formales en la ejecución del FB, entonces esto resulta en un acceso a
las direcciones pertenecientes al DB de instancia. Este acceso tiene lugar
internamente usando direccionamiento indirecto por registro respecto al registro DI y el
registro AR2.
Después de la ejecución del FB, los valores de los parámetros formales de salida y
entrada/salida se copian en los parámetros actuales especificados en la llamada CALL.
Sólo después de eso, continúa el proceso con la siguiente instrucción después de la
llamada CALL.

SITRAIN Formación en
Automatización y Accionamientos Página 01-32 SIMATIC S7
Características de las Llamadas a Bloques de Función
Paso de parámetros “por valor" (Copiando el Valor):
Asignación del parámetro del FB en una llamada CALL:
Los parámetros del FB no tienen que ser asignados
La asignación y "des-" asignación puede tener lugar desde “afuera"
p.e.: directamente desde el Panel de Operador
Excepción: los parámetros de entrada/salida del tipo de datos compuesto
(STRUCT, ARRAY, STRING y DATE_AND_TIME)
Inicialización:
Los parámetros del FB pueden inicializarse en la declaración
Excepción: los parámetros de entrada/salida del tipo de datos compuesto
(STRUCT, ARRAY, STRING y DATE_AND_TIME)

El acceso a los parámetros formales tiene lugar internamente usando los


registros DI y AR2
Si se sobreescriben los registros DI o AR2, ya no será posible el acceso a
los datos de instancia
Instrucción de llamada adicional UC y CC
Ejemplos: UC FB20 ó CC FB20
sólo utilizables si el FB no tiene datos de instancia (parám. + variables
estáticas)

SIMATIC S7 Date: 04.05.2009 SITRAIN Formación en


Automatización y Accionamientos
Siemens SA 2009. Todos los derechos reservados. File: 01 SIMATIC S7

Asignación de los Los parámetros de bloque no tienen que asignarse en una llamada a FB. En
Parámetros del este caso, no se copian valores a o del DB de instancia. Los parámetros del DB
Bloque de instancia mantienen los valores que se guardaron en la última llamada.
Excepción: los parámetros de entrada/salida del tipo de datos compuesto deben ser
asignados en la lista de parámetros.
Acceso a Parámetros El acceso a los parámetros en un DB de instancia puede hacerse de la misma
desde ”Afuera" manera que con las direcciones de DBs globales. Los parámetros del bloque pueden por
tanto ser asignados o “des-“ asignados desde “afuera” también.
Esto es especialmente útil cuando, por ejemplo, se tienen que asignar o “des-” asignar
solamente componentes individuales de los tipos de datos compuestos o cuando se
conectan directamente parámetros con campos de entrada/salida en OPs.
Excepción: los parámetros de entrada/salida del tipo de datos compuesto no pueden
asignarse o “des-” asignarse desde “afuera”.
Inicialización Los parámetros de bloque y las variables estáticas se pueden inicializar en la declaración
del FB. Si se crea entonces un DB de instancia, se introducen en el DB de instancia los
valores iniciales especificados en la declaración.
Excepción: los parámetros de entrada/salida del tipo de datos compuestos no pueden
inicilizarse.
Nota Si se sobreescribe el registro DI o el registro AR2 en la ejecución del FB, entonces ya no
podrá efectuarse más el acceso a los datos de instancia (parámetros de entrada, salida,
entrada/salida y variables estáticas) en el FB.
Instrucción UC, CC También se puede llamar a los bloques con la instrucción independiente del RLO UC o
con la instrucción dependiente del RLO CC.
UC y CC sólo pueden usarse cuando el FB llamado no tiene datos de instancia. Es decir,
no se declararon en la sección de declaración ni parámetros de bloque ni variables
estáticas.

SITRAIN Formación en
Automatización y Accionamientos Página 01-33 SIMATIC S7
El Modelo Multi-instancia

El Modelo de Instancia El Modelo Multi-instancia

OB 1 DB10 OB 1

Call FB20, DB10 Call FB100, DB100


FB20
Entrada_pert:=
Acuse:= FB 100
Freq_parp:=
Display:= stat Pert_1 FB20

DB11 stat Pert_2 FB20


Call FB20, DB11 DB100
Entrada_pert:=
Acuse:= Call Pert_1 Parámetros y
FB20 Entrada_pert:=
Freq_parp:= variables estáticas
Display:= Acuse:= de la 1ª llamada al
Freq_parp:= FB 20
Display:=

Call FB20, DB12 DB12 Call Dist_2


Entrada_pert:= Entrada_pert:= Parámetros y
Acuse:= FB20 Acuse:= variables estáticas
Freq_parp:= Freq_parp:= de la 2ª llamada al
Display:= Display:= FB 20

SIMATIC S7 Date: 04.05.2009 SITRAIN Formación en


Automatización y Accionamientos
Siemens SA 2009. Todos los derechos reservados. File: 01 SIMATIC S7

Modelo Hasta ahora, debíamos usar un bloque de datos de instancia diferente para
Multi-instancia cada llamada a un bloque de función. De cualquier modo, el número de bloques de
datos es limitado y, por esa razón, existe un método que nos permite usar un DB de
instancia común para varias llamadas a un FB.

Ahora, el modelo multi-instancia nos permite usar un único DB para varias llamadas.
Para hacer esto, necesitaremos un FB adicional para manejar estas instancias.
Para cada llamada a un FB (FB 20), definiremos una variable estática en el FB de nivel
más alto (FB 100). Entonces, con la llamada a bloque Call Dist_1, no tenemos que
especificar un DB de instancia.

Al FB de nivel más alto (FB 100) se le llama, por ejemplo, en el OB1; el DB de


instancia común (DB 100) sólo se genera una vez.

Nota Las multi-instancias son estudiadas en un curso de programación avanzada.

SITRAIN Formación en
Automatización y Accionamientos Página 01-34 SIMATIC S7
Estructura del Modelo Multiinstancia

DB10
FB10
FB1
...
p.e. OB1 stat Taladro FB1 Algorit-
stat Motor_1 FB2 mos Datos para
stat Motor_2 FB2 para el el taladro
taladro
.
CALL FB10,DB10
CALL Taladro
. Datos
. FB2
para el
CALL Motor_1 Control Motor_1
de un
.
motor
CALL Motor_2 Datos
para el
Motor_2

DB de instancia del FB10

SIMATIC S7 Date: 04.05.2009 SITRAIN Formación en


Automatización y Accionamientos
Siemens SA 2009. Todos los derechos reservados. File: 01 SIMATIC S7

Modelo Además de la creación de instancias de módulos de función especificando un


Multiinstancia DB de instancia en una llamada a FB, STEP 7 también permite la declaración explícita de
instancias de FB en un módulo de función de más alto nivel.
Para ello, se declaran instancias de los módulos de función llamados con los tipos de
datos FB1 o FB2 usando identificadores simbólicos (Taladro, Motor_1 y Motor_2). Esto
tiene lugar en la sección de declaración del módulo de función llamante FB 10 en la
sección ”variable estática". Entonces, se llama a las instancias individuales usando sus
identificadores simbólicos en el módulo de función de más alto nivel. El módulo de función
de más alto nivel FB10 debe llamarse en cualquier caso con su propio DB de instancia
(DB10).
En la creación del DB de instancia de más alto nivel, STEP 7 se asegura de que las áreas
de datos necesarias para las instancias individuales se establezcan en el área de datos
para el FB10 de más alto nivel.
En la llamada de las instancias individuales usando nombres simbólicos, la macro CALL
se asegura de que el registro AR2 se ajuste al comienzo del área de datos asignada a la
instancia de forma que se acceda a los parámetros y las variables locales de la instancia
durante la ejecución del módulo de función llamado.

Beneficios El uso del modelo multiinstancia tiene los siguientes beneficios:


• Las instancias individuales no necesitan sus propios bloques de datos cada vez.
Dentro de una jerarquía de llamadas a módulos funcionales, sólo se “gasta” un DB de
instancia en la llamada del módulo de función “exterior”.
• El modelo multiinstancia ”fusiona" un módulo de función y un área de datos de
instancia en un solo objeto (instancia de FB), que sólo puede ser manejada como una
unidad. El programador no debe preocuparse por la gestión (creación, direccionamiento)
de las áreas de datos de las instancias individuales. Simplemente debe proporcionar un
DB de instancia para el FB “exterior”.
• El modelo multiinstancia permite un estilo de programación orientado a objetos.
SITRAIN Formación en
Automatización y Accionamientos Página 01-35 SIMATIC S7

También podría gustarte