Documente Academic
Documente Profesional
Documente Cultură
Programables II
Bloques de programa
Autómatas Programables II 03
• Índice
• OBJETIVOS .......................................................................................................... 3
• INTRODUCCIÓN .................................................................................................. 4
3.1. Bloques de programa ................................................................................. 5
3.2. Tipo de bloques ........................................................................................... 6
3.3. Módulos de función .................................................................................... 7
3.4. Tabla de declaración de variables ............................................................. 8
3.5. Llamadas a bloques .................................................................................... 9
3.6. Ejemplo de función “FC” .......................................................................... 11
3.7. Bloques de datos “DB” ............................................................................ 13
3.8. Bloques de datos global ........................................................................... 14
3.9. Ejemplo de bloque de datos global ......................................................... 17
3.10. Formato de datos en los DB .................................................................... 19
3.11. Bloques de función “FB” ......................................................................... 21
3.12. Llamada al “FB” ........................................................................................ 22
3.13. Multidistancia: un “DB” de instancia para cada instancia .................... 24
3.14. Multinstancia: un “DB” de instancia para varias instancias de un
“FB” ............................................................................................................ 26
• RESUMEN .......................................................................................................... 27
Bloques de programa 1
Autómatas Programables II 03
• Objetivos
Bloques de programa 3
Formación Abierta
• Introducción
• Adquisición de entradas.
• Actualización de salidas.
4 Bloques de programa
Autómatas Programables II 03
Bloques de programa 5
Formación Abierta
Bloques de organización
Los OBs definen la estructura del programa de usuario.
(OB)
Funciones (FC) Las FCs contienen rutinas de programa para funciones frecuentes.
Los DBs son áreas de datos para almacenar los datos de usuario.
Bloques de datos (DB) Adicionalmente a los datos asociados a un determinado bloque de
función, se pueden definir también datos globales a los que
pueden acceder todos los bloques.
Los OBs, FBs, SFBs, FCs y SFCs contienen partes del programa, por lo que se
denominan también bloques lógicos. El número permitido de bloques de cada tipo y
su longitud admisible dependen de la CPU.
6 Bloques de programa
Autómatas Programables II 03
CALL FC1
UC FC1 CALL FC3
CC FC1
FC2
CALL FC2
Creación de un FC: hacer clic con el botón izquierdo del ratón en la carpeta de
Bloques e “Insertar nuevo objeto...” -> “Función”. Se le puede dar un nombre
simbólico. Para abrirlo hacer doble clic sobre él.
Bloques de programa 7
Formación Abierta
Parámetros:
• Out: son valores que devuelve el bloque al programa que lo llamó después de la
ejecución del bloque. Pueden ser direcciones absolutas o simbólicas.
Variables:
• Temp.: variables o datos locales que se usan dentro del bloque y no salen
fuera. Pierden su valor cuando salimos del bloque.
8 Bloques de programa
Autómatas Programables II 03
3. Hay que asignar a esos parámetros formales los parámetros actuales del bloque
invocante.
CALL FC1
Num de motor:= MW100 (Parámetros actuales)
Velocidad:= MW110 (Parámetros actuales)
Potencia:= A0.1 (Parámetros actuales)
En el caso de los bloques FC no se puede dejar ningún parámetro actual sin definir.
Bloques de programa 9
Formación Abierta
U E0.0
10 Bloques de programa
Autómatas Programables II 03
in_out
temp
L #valor1
L #valor2
+I
T #resultado
El símbolo # significa variable temporal y se pone automáticamente.
Para terminar hay que transferir al autómata los dos bloques, OB1 y FC1.
Bloques de programa 11
Formación Abierta
12 Bloques de programa
Autómatas Programables II 03
• Bloques de datos globales: a sus datos pueden acceder todos los bloques.
Bloques de programa 13
Formación Abierta
FC1
DB
Global
OB1
Los DB Globales sirven para depositar datos con los que trabaja el programa de
usuario. Estos datos los puede utilizar cualquier tipo de bloque (OB, FC y FB) para
leer datos o escribir datos que se conservan aún después de salir del DB.
Un DB no tiene área de instrucciones S7, sino que es una tabla de datos que forma
una estructura:
0.0 STRUCT
=0.0 END_STRUCT
Creación de un DB: hacer clic con el botón izquierdo del ratón en la carpeta de
Bloques e “Insertar nuevo objeto...” -> “Bloque de datos”. Se le puede dar un
nombre simbólico. Para abrirlo hacer doble clic sobre él.
14 Bloques de programa
Autómatas Programables II 03
Columna Explicación
Valor inic. Indique el valor inicial, en caso de que el software no deba tomar el valor
predeterminado del tipo de datos introducido. Todos los valores
introducidos deben ser compatibles con los tipos de datos.
Cuando guarde por primera vez el bloque de datos, el valor inicial será
adoptado como valor actual de la variable, a menos que defina
expresamente su valor actual.
Hay 2 métodos:
Una vez abierto el DB el acceso a los datos se hace mediante carga (L) y
transferencia (T).
Se puede consultar un bit de la siguiente forma: “U DBXByte.Bit”
“U DBXByte.Bit”
Bloques de programa 15
Formación Abierta
L 5 //Carga 5 en ACU1
No existe ninguna instrucción para cerrar un DB, sólo se cierra abriendo otro DB.
16 Bloques de programa
Autómatas Programables II 03
2. El siguiente paso es declarar los datos. Para ello vamos al menú “Ver” y
marcamos “Declaración”. Definimos la estructura rellenando la tabla:
0.0 STRUCT
=6.0 END_STRUCT
Para definir los valores actuales vamos a menú “Ver” y marcamos “Datos”. Los
valores actuales son en realidad los que están almacenados en el DB y que
podemos leer mediante la instrucción L de carga y escribir mediante la
instrucción T de transferencia.
Bloques de programa 17
Formación Abierta
Guardamos el DB.
18 Bloques de programa
Autómatas Programables II 03
• WORD: W#16#AF
Permite introducirlo de la forma 2#1001..., pero lo traduce a
W#16#.
• DWORD: DW#16#FFFFAF2D
Permite introducirlo de la forma 2#1001..., pero lo traduce a
W#16#..
Datos compuestos:
• DATE_AND_TIME: DT#00-11-21-23:59:59.999
STRING[7].
• ARRAY: Matrices
Bloques de programa 19
Formación Abierta
• STRUCT: es una estructura dentro del DB. Sirve para agrupar conjuntos de
datos de distinto tipo, simples o complejos. Empieza en STRUCT y acaba en
END_STRUCT se pueden anidar hasta 8 subestructuras.
0.0 STRUCT
=4.0 END_STRUCT
=12.0 END_STRUCT
=12.0 END_STRUCT
L Datos.Ficha.Nombre
T Datos.Ficha.telefono.fijo
20 Bloques de programa
Autómatas Programables II 03
Creación de un FB:
1. Hacer clic con el botón izquierdo del ratón en la carpeta de Bloques e “Insertar
nuevo objeto...” -> “Bloque de función”. Se le puede dar un nombre simbólico.
Rellenar su tabla de declaración de variables.
2. Crear un bloque de datos DB y asignarlo como bloque de datos de instancia a
ese FB:
Bloques de programa 21
Formación Abierta
Incondicional.
22 Bloques de programa
Autómatas Programables II 03
Bloques de programa 23
Formación Abierta
in
out
in_out
temp.
24 Bloques de programa
Autómatas Programables II 03
U E0.2
L #tiempo
SV T0
U T0
= A4.0
U E0.0
SPB mot1
U E0.1
SPB mot2
BEA
Bloques de programa 25
Formación Abierta
FB2
Aquí realizo la función para el control del motor. Declaro la
variable tiempo.
No necesita DB propio, ya que los valores de tiempo para cada
uno de los motores se memorizan en el DB de instancia del FB
invocante.
26 Bloques de programa
Autómatas Programables II 03
• Resumen
Bloques de programa 27