Está en la página 1de 19

Mdulos de Funcin

Automatizacin Industrial

ndice
TEMA Mdulos de Funcin
1. Llamadas a Mdulos
2. Partes de un Mdulo
2.1 Variables Locales
3. Funciones FCs
4. Mdulos de Funcin FBs
5. Parmetros de Funciones
5.1 Parmetros Formales
5.2 Parmetros Actuales
6. Mdulos de Funcin y Mdulos de Datos
6.1 Mdulos de Datos a Instancia
6.2 Mdulos de Multi-Instancia

Llamada a Mdulos
Mdulo que llama
(OB, FB, FC, SFB, SFC)
Ejecucin del
Programa
Instruccin que llama
a otro mdulo

Mdulo llamado
(FB, FC, SFB, SFC)
Ejecucin del
Programa
(FB, FC, SFB, SFC)

Ejecucin del
Programa
Instruccin que llama
a otro mdulo

Ejecucin del
Programa
(FB, FC, SFB, SFC)

Llamadas a Mdulos (I)


Llamada General CALL
Para que un mdulo de cdigo sea procesado debe ser llamado
Una llamada a mdulo consta de la sentencia de llamada (CALL FC 10) y la lista de
parmetros (si el mdulo llamado tiene parmetros)
Despus de la llamada, el mdulo es procesado hasta encontrar una sentencia de fin de
mdulo
En el caso de los OB se retorna al sistema operativo
La informacin requerida por la CPU para el retorno es almacenada en la pila del mdulo
(pila B)
Los parmetros del mdulo son el interfaz de datos al mdulo llamado
Con CALL se pueden llamar FBs, FCs, SFBs y SFCs
La sentencia CALL es una llamada incondicional
Si el mdulo llamado tiene parmetros tiene que utilizarse esta sentencia

Llamadas a Mdulos (II)


Llamada a Funciones
Se puede llamar a una funcin con CALL por su direccin absoluta
o por su direccin simblica
Se deben inicializar todos los parmetros de la funcin
Normalmente, las funciones tienen el parmetro RET_VAL en el que
devuelven cdigos de error

Llamada a Mdulos de Funcin


En la llamada a un FB hay que especificar el DB de instancia asociado
separados ambos por una coma
Se puede utilizar para ambos mdulos direcciones absolutas o simblicas
En FBs no es necesario inicilizar todos los parmetros del mdulo
Los parmetros no inicializados mantienen su valor inicial

Llamada a Funciones y Mdulos de Funcin del Sistema


Todas las funciones y mdulos de funcin del sistema deben llamarse
con la instruccin CALL

Llamadas a Mdulos (III)


Llamada con UC y CC:

Permiten llamar a funciones y mdulos de funcin


La funcin llamada no debe tener parmetros ni DB de instancia
El editor no chequea estas condiciones
UC y CC no distinguen entre FCs y FBs. Los tratan igual
UC es una llamada incondiconal
CC es una llamada condicional al valor del RLO
Otras posibilidades:
Direccionamiento indirecto de llamadas a FB o FC con UC y CC
Llamada va parmetros de bloque con UC
Llamada va parmetros de bloque con CC tambin en FB

Fin de Mdulo:
BEC. Fin de mdulo condicionado al RLO
BEU. Fin de mdulo incondicional
BE. Fin de mdulo. ltima sentencia del mdulo

Uso del Parmetro EN/ENO


EN = Entrada Enable

ENO = Salida Enable


EN

Si est activo (1), se


ejecuta la instruccin
de la caja.

Caja de instrucciones STL


(FC, FB, Move, Add, etc)

Si no est activo (0), no se


ejecuta la instruccin.

Partes de un Mdulo

Tabla de
Declaracin
de Variables

Seccin de
Cdigo

ENO

Si est activo (1), indica que la


instruccin se ejecut sin error.
Si no est activo (0), no se llam
a la instruccin o no se produjo la
la ejecucin de la instruccin

Datos Locales

Los Datos Locales utilizados normalmente en un mdulo son :


Variables Temporales
Parmetros
Variables Permanentes o estticas

Variables Locales Temporales (I)


Direccin

Smbolo

Tipo de Declaracin

Valor Inicial

Tipo de Datos

Comentario

Las variables locales son las declaradas como temp


Se definen en la cabecera del mdulo
Se pueden definir en cualquier mdulo de cdigo
Se usan para almacenar datos locales de la ejecucin del programa
Temporalmente se almacenan en la pila de datos locales. La pila la controla el S.O.

Variables Locales Temporales (II)

Se utilizan para almacenar resultados intermedios en la ejecucin de un mdulo


Solamente estn disponibles durante la ejecucin del mdulo
Se puede utilizar direccionamiento absoluto o simblico
En los OB hay que declarar 20 bytes de informacin de comienzo de cada uno de ellos
Normalmente se accede por direccionamiento simblico
El identificador de datos locales es la L
un bit se direcciona con L
un byte se direcciona con LB
una palabra con LW
una doble palabra LD

Direccin

Declaracin

Nombre

Valor inicial

Comentario

0.0

temp

temporal1

Tipo
INT

Variable temporal

2.0

temp

temporal2

REAL

Variable temporal

Variables Locales Estticas (I)


Direccin

Smbolo

Tipo de Declaracin

Valor Inicial

Tipo de Datos

Comentario

Variables Locales Estticas (II)


Datos locales estticos son direcciones que un mdulo de funcin FB
almacena en el mdulo de datos de instancia DI.
Las variables estticas son las declaradas como stat
Son declaradas en la cabecera del mdulo
Estn en la memoria del mdulo de funcin.
Mantiene la informacin hasta que es modificada por programa
El nmero est limitado por el tipo de dato de las variables y por el
tamao del DB
Se puede utilizar direccionamiento absoluto aunque debe ser la excepcin
En el FB, el DB de instancia se abre con OPN DI xxx
se puede direccionar un bit con DIX y.x
un byte con DIB y
una palabra con DIW y
una doble palabra con DID y

Variables Locales Estticas (III)


Se puede utilizar direccionamiento simblico utilizando sus nombres
Se pueden utilizar las mismas sentencias que las utilizadas con DBs globales
Direccin

Declaracin

Nombre

0.0

temp

temporal1

Tipo
INT

Valor inicial
0

Comentario
Variable temporal

2.0

stat

Total

INT

Variable esttica

Ejemplo:
FB Totalizador

DB TotalizadorDato

Direccin Declaracin Nombre Tipo

Direccin Declaracin Nombre Tipo

0.0

temp

In

INT

0.0

temp

In

INT

2.0

stat

Total

INT

2.0

stat

Total

INT

L
L
+I
T

#In
#Total
#Total

Funciones FCs
Las Funciones son mdulos de cdigo que se ejecutan al ser llamadas desde otro
mdulo. Cuando se la llama, la funcin acta como una subrutina del programa.
Cuando termina de ejecutar su cdigo, el control se devuelve al mdulo y al
segmento desde el cual fue llamada.

Programa Principal OB1

Mdulo Subrutina FC

Ejecucin
del programa
Ejecucin del
Programa

Instruccin que llama


a otro mdulo

Mdulos de Funcin FBs


Un Mdulo de Funcin (FB) tiene un mdulo adicional de memoria asociado a
l. Un Mdulo de Datos (DB) mantiene una copia de los parmetros que van a
pasar al rea de datos locales. Despus de la ejecucin del FB, se borra el rea
de memoria local, pero el DB asociado retiene sus valores.

DB10
Llamada a un
mdulo con los
parmetros
actuales
Ejemplo:
Call FB1,DB10

Copia la parte de
declaracin local del FB

FB1
rea de
Declaracin Local
Seccin de Cdigo
del mdulo llamado
usando los valores
del rea de
memoria local.

Parmetros de Funciones
Declaracin de los Parmetros:
Los parmetros de un mdulo representan el interfaz entre el modulo que llama y
el mdulo llamado
Soportan parmetros las funciones y los mdulos de funcin
Los parmetros pueden declararse de IN, OUT IN_OUT

Procesamiento de los Parmetros


Progr. en mdulo que llama

Progr. en mdulo llamado

// Primera llamada
CALL Adder
Numb_1 := MW 30
Numb_2 := MW 32
Numb_3 := MW 34
Result := MW 40

#L

Numb_1

#L

Numb_2

I+
#L
+I

Parmetros Parmetros
del mdulo actuales

#T

// Primera llamada
L
MW 30
L
MW 32
+I
L
MW 34
+I
T
MW 40

Numb_3

// Segunda llamada
CALL Adder
Numb_1 :=DB 10.DBW 30
Numb_2 :=DB10.DBW 32
Numb_3 :=DB10.DBW 34
Result :=DB10.DBW 40

Programa ejecutado

Result

Parmetros
formales

// Segunda llamada
L
DB 10.DBW 30
L
DB10.DBW 32
+I
L
DB10.DBW 34
+I
T
DB10.DBW 40

Declaracin de Parmetros
Los nombres de los parmetros de hasta 24 caracteres
El nombre de un parmetro no puede ser una palabra clave
Los parmetros IN/OUT pueden ser tipos de datos elementales, complejos o definidos
por el usurio
El valor inicial y el comentario son opcionales

Direccin

Smbolo

Tipo de Declaracin

Valor Inicial

Tipo de Datos

Comentario

Parmetros Formales
Los tipos de parmetros los clasifica en: datos simples, datos compuestos y parmetros

Parmetros Formales: Tipos de Datos (I)


Tipo BOOL

Parmetros Formales: Tipos de Datos (II)


Parmetros de mdulo de tipo de dato digital:
Ocupan 8, 16 o 32 bits
Se leen con la instruccin L (load). p. e. L xxxx
Se escriben con la instruccin T (transfer). p.e. T xxxx
Direcciones que pueden asignar tipos de datos elementales
Direcciones que pueden asignar un tipo de parmetro

Parmetros de mdulo de tipo TIMER:


Funciones binarias
Tipos de temporizadores:
SP, SE, SD, SS, SF, R xxxx (parmetro de entrada tipo timer)

Parmetros de mdulo de tipo COUNTER:


Funciones binarias
Tipos de contadores:
S, CU, CD, R xxxx (parmetro de entrada tipo counter)

Parmetros Formales: Tipos de Datos (III)


Parmetros de mdulo de tipo de dato BLOCK_xx:
OPN - Abrir mdulo de datos (parmetro tipo BLOCK_DB)
UC - Llamada a funcin (parmetro tipo BLOCK_FC)
UC - Llamada a FB (parmetro tipo BLOCK_FB)
CC - Llamada condicional a FC (parmetro tipo BLOCK_FC)
CC - Llamada condicional a FB (parmetro tipo BLOCK_FB)
- xxxx va parmetro de entrada
Cuando se abre un DB con parmetro, la CPU lo usa como DB global
Las funciones y mdulos de funcin pasados con parmetros de mdulo
no deben contener parmetros de mdulo
Una llamada condicional a mdulo va un parmetro de mdulo es slo
posible si el parmetro de bloque es de un mdulo de funcin

#Data es un parmetro tipo BLOCK_DB


CALL FB 10.#Data

El usuario debe asegurar que #Data es el


DB de instancia del FB 10

Parmetros Actuales
Cuando se llama a un mdulo se inicializan los parmetros con los
parmetros actuales con los que el mdulo se ejecuta
Pueden ser constantes, direcciones absolutas, direcciones simblicas, ..
El parmetro actual debe ser del mismo tipo que el parmetro del bloque
Cuando se llama a funciones se deben inicializar todos los parmetros
En los FBs es opcional inicializar todos o slo alguno de los parmetros

Parmetros Actuales: Tipos de Datos Bsicos


Son permitidos como parmetros actuales de tipos de datos bsicos:

Acceso y Restricciones de los Parmetros de Paso


Llamada a mdulo (FC, FB)
Tabla de Declaracin

Mdulo llamado (FC, FB)


Tabla de Declaracin

Valor_1

Input

Medida_1

Input

Valor_2

Output

Medida_2

Output

Valor_Total

In/Out

Medida_Total

In/Out

Call FC10
Medida_1:=Valor_1
Medida_2:=Valor_2
Medida_Total:= Valor_Total

Paso de Parmetros de un mdulo lgico a otro

Paso de Parmetros entre mdulos


Combinaciones posibles en el paso de parmetros de mdulos:

E = Tipos de datos elementales


C = Tipos de datos complejos
P = Parmetros tipo TIMER, COUNTER y BLOCK_xx

Parmetros y Variables Locales (I)


FC1 (Clculo)

OB1

FC1
MW5

Entrada1 Salida_A

3369

Entrada2

MW10

Entrada3

AW12

0.0

in

Entrada1

int

2.0

in

Entrada2

int

4.0

in

Entrada3

int

6.0

out

Salida_A

int

8.0

temp

TEMP1

int

muestra 1
constante
distancia
resultado
intermedia

ADD_I
#Entrada1 IN1
#Entrada2 IN2

#TEMP1

#Salida_A

FC1
SUB_I
MW2

Entrada1 Salida_A

6869

Entrada2

MW16

Entrada3

AW20

#TEMP1 IN1
#Entrada3 IN2

#Entrada1 , si es variable local


Entrada1" , si es variable global (simblico)

Parmetros y Variables Locales (II)


STL
Parmetros Formales
del FB

CALL FB7, DB45


Comenzar:=I 1.0
Parar:=I 1.1
Longitud:=MW 20
Correr:=M2.1

Llama al FB7 (utilizando


un Mdulo de Datos
a instancia DB45) y le
pasa los parmetros

Direcciones Actuales donde


residen los datos o se almacenarn

FBD

DB45
EN

Direcciones Actuales
donde residen los datos
o se almacenarn

I 1.0
I 1.1
MW20

FB7

ENO

Comenzar Correr
Parar
Longitud

Llama al FB7 (utilizando


un Mdulo de Datos
a instancia DB45) y le
M2.1 pasa los parmetros
Parmetros Formales
del FB

Mdulos de Funcin y Mdulos de Datos


Para almacenar datos se pueden utilizar:
zona de marcas
mdulos de datos
Los mdulos de datos presentan mayores prestaciones
Los mdulos de datos pueden ser:
globales. Pueden acceder cualquier mdulo
de instancia. Slo se puede acceder desde el FB asociado
Los DBs deben de crearse con el editor o en runtime SFC 22 CREAT DB
Deben de ser cargados en la memoria de trabajo para que se pueda leer y
escribir en ellos
la CPU utiliza dos registros:
registro DB: para mdulos de datos globales
registro DI: para mdulos de datos de instancia
se puede tener abierto simultneamente un mdulo de datos de cada tipo

Mdulos de Datos a Instancia


Un Mdulo de Datos a Instancia es un duplicado de la Tabla de Declaracin
del Mdulo de Funcin asociado a l. Los datos de DB a Instancia
permanecern despus de cerrar el FB.

Uso de un FB sin DB a Instancia


El STEP7 Versin 2.X le permite crear y utilizar un FB sin usar un DB
asociado a l. Utilizado de esta forma, el FB trabaja igual que un FC.

FB sin DB a Instancia
Tabla de Declaracin
usando la memoria local

Seccin de
Cdigo

FC

Tabla de Declaracin
usando la memoria local

Seccin de
Cdigo

Mdulos de Funcin y Mdulos de Datos (II)


Direcciones de Datos

Direccin de datos Localizado en DB abierto va el


Registro DB

Registro DI

Bit

DBX y.x

DIX y.x

Byte

DBB y

DIB y

Palabra

DBW y

DIW y

Doble palabra

DBD y

DID y

Direccionamiento Absoluto de Direcciones de Datos


En este caso hay que conocer las direcciones absolutas que el editor asigna a las
variables. Poco recomendable.

Direccionamiento Completo
Se hace en dos pasos:
asignar nombre simblico al DB en la tabla de smbolos. p.e. MOTOR1 al DB 51
asignar direccin de los datos en el mdulos de datos. p.e. PAR a la DBW 20
Con direccionamineto simblico queda: L MOTOR1.PAR
Con direccionamiento absoluto queda: L
DB 51.DBW 20

Mdulos de Datos (I)


Operaciones con Mdulos de Datos

Mdulos de Datos (II)


Abrir Mdulos de Datos

Direccionamiento Partido
OPN DB 25
L DBW 10

OPN DB x
OPN DB nombre
OPN DI x
OPN DI nombre

Direccionamiento Completo
L DB25.DBW 10

Longitud y Nmero de DBs


L
L
L
L

Cambio los Registros de los


Mdulos de Datos

DBLG // longitud de un DB
DBNO // nmero de un DB
DILG // longitud de un DI
DINO // nmero de un DI

CDB

Funciones del Sistema para DBs


SFC 22 CREAT_DB. //Crea un mdulo de datos
SFC 23 DEL_DB // Borra un mdulo de datos
SFC 24 TEST_DB // Test de un mdulo de datos

Mdulos de Datos Multi-Instancia (I)


Los mdulos Multi-Instancia le permiten usar un Mdulo de Datos para
mantener unos valores separados mientras llama a un FB con un DB asociado.
Un FB ejecuta la seccin de cdigo actual mientras otro maneja el Mdulo de
Datos a Instancia.

FB que ejecuta
las instrucciones
lgicas

Usar este
rea primero

Mdulo de Datos
Multi-instancia
asociado a un FB

Segmentos dentro

FB que maneja
la seccin del mdulo
de datos a instancia
que mantendr los
ltimos parmetros

del DB que contendrn


Usar este
los datos separados de
rea despus los parmetros pasados

Usar este
rea despus

Mdulos de Datos Multi-Instancia (II)


Para utilizar DBs multiinstancia:
Incorporar los FBs a llamar en forma de variables estticas en la declaracin de
variables del FB invocante
El FB invocante llama otros bloques de funcin sin DBs de instancia propios (es
decir, adicionales),
Esto permite concentrar los datos de instancia en un solo bloque de datos de
instancia, pudindose as aprovechar mejor el nmero disponible de DBs.

Mdulos de Datos Multi-instancia (III)


Mdulo de control FB 101

FB 100 con mltiples llamadas al FB101

Variables usadas:
setpoint_value: real
sum: real
actual_value: real

DB Multi instancia

También podría gustarte