Automatas Programables Avanzado
Automatas Programables Avanzado
Automatas Programables Avanzado
programables
avanzado
Los propietarios del © tienen reservados todos los derechos. Cualquier reproducción, total o parcial de este
texto, por cualquier medio, o soporte sonoro, visual o informático, así como su utilización fuera del ámbito
estricto de la información del alumno comprador, sin la conformidad expresa por escrito de los propietarios
de los derechos, será perseguida con todo el rigor que prevé la ley y se exigirán las responsabilidades civiles
y penales, así como las reparaciones procedentes.
D.L.: Z-1509-2012
ISBN: 978-84-15545-44-6
ÍNDICE GENERAL
1. Operaciones de salto y control de programa............................................................................. 9
ÍNDICE......................................................................................................................11
OBJETIVOS.................................................................................................................................................................. 13
INTRODUCCIÓN......................................................................................................................................................... 14
1.1. Operaciones de salto incondicional..................................................................................................................... 15
1.2. Operaciones de salto condicional en función del RLO........................................................................................ 17
1.3. Operaciones de salto condicional en función de “RB” u “OV/OS”..................................................................... 18
1.4. Operaciones de salto condicional en funcion de “A1” y “A0”........................................................................... 19
1.5. Finalizar módulos.................................................................................................................................................. 20
1.6. LOOP...................................................................................................................................................................... 22
1.7. Llamar funciones y módulos con “CALL”............................................................................................................ 23
1.8. Llamar funciones y módulos con “CC” Y “UC”.................................................................................................... 25
1.9. Llamar funciones de sistema integradas............................................................................................................ 26
1.10. Función master control relay.............................................................................................................................. 27
1.11. Marca de ciclo..................................................................................................................................................... 29
RESUMEN..................................................................................................................................................................... 31
3
Índice General
4
Autómatas programables avanzado
5
Índice General
6
Autómatas programables avanzado
7
Autómatas programables avanzado
1 1
DIDÁCTICA
UNIDAD
ÍNDICE
OBJETIVOS.................................................................................................................................................................. 13
INTRODUCCIÓN......................................................................................................................................................... 14
1.1. Operaciones de salto incondicional..................................................................................................................... 15
1.2. Operaciones de salto condicional en función del RLO........................................................................................ 17
1.3. Operaciones de salto condicional en función de “RB” u “OV/OS”..................................................................... 18
1.4. Operaciones de salto condicional en funcion de “A1” y “A0”........................................................................... 19
1.5. Finalizar módulos.................................................................................................................................................. 20
1.6. LOOP...................................................................................................................................................................... 22
1.7. Llamar funciones y módulos con “CALL”............................................................................................................ 23
1.8. Llamar funciones y módulos con “CC” Y “UC”.................................................................................................... 25
1.9. Llamar funciones de sistema integradas............................................................................................................ 26
1.10. Función master control relay.............................................................................................................................. 27
1.11. Marca de ciclo..................................................................................................................................................... 29
RESUMEN..................................................................................................................................................................... 31
11
1: Operaciones de salto y control de programa
OBJETIVOS
■ Conocer las distintas formas de representar un programa.
■ Razonar los posibles inconvenientes que pueden salir a la hora de estructurar un programa.
■
Conocer los distintos objetos de programación existentes en un autómata programable,
como son entradas, salidas, marcas, etc.
13
Autómatas programables avanzado
INTRODUCCIÓN
Un autómata es una máquina formada por elementos La programación del autómata pasa por los siguientes
de hardware capaces de comunicarse físicamente pasos:
con el proceso para: ■■ Determinar qué debe hacer el sistema de control y en qué
■■ Recoger el conjunto de variables (digitales o analógicas) orden (por ejemplo, mediante un diagrama de flujo, una
que definen el estado del mismo (señales de entrada). descripción literal o un grafo Grafcet).
■■ Enviar otro conjunto de variables que modifiquen dicho ■■ Identificar los componentes (señales) de entrada y salida
estado en un sentido predeterminado (señales de salida). al autómata.
El software nos ayuda a realizar dichas operaciones ■■ Representar mediante un modelo el sistema de control,
con el hardware del autómata. indicando todas las funciones que intervienen, las
El software se clasifica en dos grandes grupos: relaciones entre ellas, y la secuencia que deben seguir.
Esta representación puede ser:
■■ Sistemas operativos, residentes en el propio autómata,
que se encargan de establecer las secuencias de ■■ Algebraica: instrucciones literales.
intercambios de información, interpretar y ejecutar las ■■ Gráfica: símbolos gráficos.
órdenes de usuario, y vigilar por el correcto funcionamiento
del equipo. ■■ Asignar direcciones de entrada/salida o internas a cada
■■ Software de edición/depuración de programas, que uno de los componentes que aparecen en el modelo.
permite al usuario la introducción del programa sobre un ■■ Codificar la representación anterior en instrucciones o
soporte físico (cinta, disco), la modificación del mismo símbolos inteligentes por la unidad de programación.
en la puesta a punto, la obtención de la documentación
■■ Transferir las instrucciones obtenidas a la memoria del
pertinente y la creación de copias de seguridad.
autómata desde la unidad de programación.
■■ Depurar el programa y obtener una copia de seguridad.
14
1: Operaciones de salto y control de programa
Salto SPA:
15
Autómatas programables avanzado
Estructura:
Salto SPL:
16
1: Operaciones de salto y control de programa
RO=0
STA=1
RLO=1
ER=0
En SPBB y SPBNB se almacena el RLO en el bit RB de la palabra de estado antes de
efectuar el salto.
Salto SPB:
17
Autómatas programables avanzado
Salto SPS:
SPS AQUÍ
//se salta a la línea con meta “AQUÍ” si OV=1
SPA SEGU //esta línea no se ejecuta si
OV=1
AQUI:SET //se fuerza el RLO a 1
= A 1.0 //con la salida 1.0 indicamos si hubo un error
Previo en la anterior ejecución del programa
SEGU:U E 3.0//aquí continúa la ejecución del programa normalmente
= A 0.0//se introduce el resultado en la salida 0.0
18
1: Operaciones de salto y control de programa
19
Autómatas programables avanzado
BEA finaliza la ejecución del módulo actual y devuelve el control al módulo que llamó
módulo finalizado. Esta instrucción se ejecuta sin depender del RLO ni de cualquier
otra condición.
Ejemplo:1:
Ejemplo:2:
20
1: Operaciones de salto y control de programa
BEB finaliza la ejecución del módulo actual y devuelve el control al módulo que llamó
módulo finalizado. Esta acción se realiza si el RLO es 1. Si no es así se continúa la
ejecución del actual módulo, pero con el RLO a 1.
21
Autómatas programables avanzado
1.6. LOOP
Instrucción: “LOOP”.
La operación LOOP sirve para llamar varias veces un segmento del programa. Esta
operación decrementa la palabra baja del ACU 1 en 1.
Observaciones:
Hay que tener precaución con el valor que haya en el ACU 1, ya que si ejecutamos
LOOP con un valor de ACU 1 igual a 0 el bucle se ejecutará 65535 veces. Tampoco
se recomienda introducir valores enteros negativos en el ACU 1.
22
1: Operaciones de salto y control de programa
La operación CALL se emplea para llamar funciones (FC’s) y módulos de función (FB’s)
creados para el usuario y para el programa en cuestión, o adquiridos en Siemens
como módulos de función estándar. La operación CALL llama la función FC o módulo
FB indicado como operando, independientemente del resultado lógico o cualquier
otra condición.
El programa que contiene la función o el módulo de función tiene que poder acceder a
estos parámetros actuales, por lo que se deberá indicar en el programa el parámetro
formal que corresponda al parámetro actual. Si no se especifica la correspondencia en
módulos de función el programa accederá a través del módulo de datos de instancia
a los datos del parámetro formal. En la llamada a funciones todos los parámetros
formales tienen que ser asignados a parámetros actuales.
23
Autómatas programables avanzado
Es posible crear una función que dé un valor de retorno. Si se desea crear por ejemplo
una operación aritmética con números de coma flotante, entonces puede utilizar este
valor de retorno como salida para el resultado de la función. Como nombre de la
variable puede introducirse “RE_VAL” y como tipo de datos REAL. Al llamar después
esta función en el programa se ha de proveer la salida RET_VAL de una dirección de
palabra doble de forma que pueda acoger el resultado de 32 bits de la operación
aritmética.
24
1: Operaciones de salto y control de programa
Estas operaciones se emplean para llamar funciones (FC) creadas para el programa
del mismo modo como se utiliza la operación CALL. Sin embargo, no es posible
transferir parámetros.
[DIW]
[MW]
El nombre del parámetro formal o nombre simbólico para el caso de llamar una FC a
través de una FC transferida como parámetro es BLOCK_FC (los parámetros de tipo
BLOCK_FC no pueden utilizarse con la operación CC en módulos FC).
25
Autómatas programables avanzado
La operación CALL puede emplearse también para llamar funciones del sistema (SFC)
y módulos de función del sistema (SFB) integrados en el sistema operativo S7.
Cada SFB o SFC ejecuta una función estándar determinada. Por ejemplo, si se desea
averiguar la hora actual del sistema se utiliza la siguiente operación:
CALL SFC64
La operación de llamada CALL solamente puede llamar a una SFC o un SFB con
direccionamiento directo.
26
1: Operaciones de salto y control de programa
=
S
R
T (con bytes, palabras o palabras dobles)
□□ Escribe 0.
27
Autómatas programables avanzado
28
1: Operaciones de salto y control de programa
Cada bit del byte de marca de ciclo lleva asignada una duración de periodo / frecuencia
en seg:
Bit 7 6 5 4 3 2 1 0
Duración del periodo (seg.): 2 1,6 1 0,8 0,5 0,4 0,2 0,1
29
1: Operaciones de salto y control de programa
RESUMEN
■
Programar un autómata consiste en introducirle una secuencia de órdenes obtenidas
desde un modelo de control, según la codificación determinada.
■
En los autómatas se permiten estructuras de programación tan complejas como
aquellos, sin perder por ello la facilidad de comprensión y visión de conjunto.
■
La tendencia de los lenguajes de programación pasa por integrar las diferentes formas
de representación en un lenguaje mixto, que combine la claridad de los lenguajes
gráficos para las funciones combinacionales y secuenciales, con la potencia y
compacidad de los literales para el cálculo matemático y los tratamientos de textos.
31
Autómatas programables avanzado
2 2
DIDÁCTICA
UNIDAD
ÍNDICE
OBJETIVOS.................................................................................................................................................................. 37
INTRODUCCIÓN......................................................................................................................................................... 38
2.1. Enteros................................................................................................................................................................... 39
2.2. Operaciones aritméticas con números reales..................................................................................................... 41
2.3. Operaciones de conversión.................................................................................................................................. 43
2.4. Operaciones de desplazamiento.......................................................................................................................... 45
2.4.1. Desplazar palabras................................................................................................................................................ 45
2.4.2. Desplazar doble palabras........................................................................................................................................ 45
2.4.3. Desplazar enteros.................................................................................................................................................. 46
2.4.4. Desplazar dobles enteros....................................................................................................................................... 46
2.5. Operaciones de rotación....................................................................................................................................... 47
RESUMEN..................................................................................................................................................................... 49
35
2: Operaciones aritméticas, conversión, rotación y desplazamiento
OBJETIVOS
■ Conocer la forma de operar con operaciones aritméticas de alto nivel.
■
Saber manipular una variable (sin perder la información original), utilizando operaciones de
rotación o de desplazamiento.
■
Analizar como convertir una variable para tenerla en el mejor formato para realizar
operaciones.
37
Autómatas programables avanzado
INTRODUCCIÓN
Los bloques presentan tres tipos de variables ■■ Textos programados escritos en alguna unidad de
asociadas: memoria o dispositivo exterior.
■■ Condiciones de operación, que definen la habilitación y ■■ Variables numéricas más frecuente en:
control del bloque. ■■ Registros internos.
■■ Operandos de función, sobre los que actúan las sentencias ■■ Temporizadores o contadores (valores actuales).
preprogramadas en el bloque funcional.
■■ Canales de datos de 8, 16 ó 32 bits de entrada o
■■ Salidas asociadas, cuyo estado depende de la ejecución salida (por ejemplo, datos binarios resultantes de la
de la función del bloque. conversión A/D en una entrada analógica).
■■ Los operandos de función pueden a su vez ser de dos Aunque los datos internos manejados por el autómata
tipos: siempre son binarios, el usuario puede definirlos
■■ Parámetros iniciales, que una vez fijados por programa en su programa sobre distintas bases: decimal,
o transferidos desde consola permanecen normalmente hexadecimal, BCD, etc., encargándose el intérprete
inalterados. de su conversión automática al binario para su
■■ Datos de operación, variables o constantes contenidas operación.
en palabras de 8, 16 ó 32 bits que reflejan el estado de
entradas/salidas, valores internos, resultados, etc.
■■ Estos datos, numéricos o alfanuméricos, que aparecen
como operandos pueden corresponder a:
■■ Números o caracteres ASCII constantes definidos en
el programa.
38
2: Operaciones aritméticas, conversión, rotación y desplazamiento
2.1. Enteros
Para enteros instrucciones: “+I”, “–I”, “*I”, “/I”
La instrucción de suma “+I”, “+D” suma el contenido de ACU2 con ACU1 y el resultado
lo almacena en ACU1.
En el caso de sumar dos enteros esta operación actúa sobre las palabras bajas de los
acumuladores y el resultado lo almacena en la palabra baja del ACU1.
L8
L9
+I //ACU2+ACU1 → ACU1=17; ACU2=8
La instrucción de resta “–I”, “–D” resta el contenido de ACU2 con ACU1 y el resultado
lo almacena en ACU1.
L 10
L3
–I //ACU2-ACU1 → ACU1=7; ACU2=10
L L#2
L L#100
*D //ACU2*ACU1 → ACU1=200; ACU2=2
39
Autómatas programables avanzado
L ED10
L MD14
/I
T MD20 //Almacena el cociente
MOD
T MD24 //Almacena el resto
40
2: Operaciones aritméticas, conversión, rotación y desplazamiento
La instrucción de suma “+R”, suma el contenido de ACU2 (32bits) con ACU1 (32bits)
y el resultado lo almacena en ACU1 (32 bits).
L 1.0
L 2.4
+R //ACU2+ACU1 → ACU1=3.4; ACU2=1.0
La instrucción de resta “–R” resta el contenido de ACU2 (32bits) con ACU1 (32bits) y
el resultado lo almacena en ACU1 (32 bits).
L 25.0
L 13.4
–R //ACU2-ACU1→ACU1=11.6; ACU2=25.0
L 10.0
L 2.0
/R //ACU2*ACU1 → ACU1=5.0; ACU2=10.0
41
Autómatas programables avanzado
Instrucciones “SIN”,
“COS” y “TAN”: Calculan el seno, coseno o tangente de un ángulo indicado en
radianes, y el resultado se deposita en ACU1.
42
2: Operaciones aritméticas, conversión, rotación y desplazamiento
“RND-” y “TRUNC”
Resultado de la conversión:
Bits 28 ÷ 30 → no se usan
Resultado de la conversión:
Bits 12 ÷ 14 → No se usan
Instrucción “DTB”: convierte un entero doble (32 bits) de ACU1 en un BCD de 7 dígitos.
Resultado de la conversión:
Bits 0 ÷ 27 → Nº BCD
– = 1111
Instrucción “DTR”: convierte un entero doble (32 bits) de ACU1 en real (32 bits). Si es
necesario se redondea el resultado. Un entero de 32 bits es más exacto que un real.
43
Autómatas programables avanzado
Resultado de la conversión:
Bits 0 ÷ 11 → Nº BCD
Bits 12 ÷ 15 → Bit de signo: + = 0000
– = 1111
Instrucción “ITD”: Convierte un entero (16 bits) de la palabra baja de ACU1 en doble
entero (32 bits).
Observación: no hay una instrucción que convierta de entero a real de modo que hay
que hacer dos conversiones consecutivas: ITD y DTR.
Instrucción “RND”: redondea un número real (32 bits) a entero (32 bits). Primero lo
convierte y luego lo redondea al entero más próximo. Si el primer decimal después de
la coma es de 0 a 4, redondea a la baja; si el decimal es de 5 a 9, redondea al alza.
Instrucción “TRUNC”: convierte un real (32 bits) a doble entero (32 bits) y lo redondea
al entero de menor valor absoluto.
8.34 → RND = 8
TRUNC = 8
8.7 → RND = 9
TRUNC = 8
–8.7 → RND = –9
TRUNC = –8
44
2: Operaciones aritméticas, conversión, rotación y desplazamiento
Desplazan el contenido de ACU1 bit a bit. Son incondicionales, no dependen del RLO.
“SRW <nº de bits>” Desplaza la palabra baja (bits 0 al 15) de ACU1 nº bits
SWR 0 = NOP
A la izquierda:
“SLW <nº de bits>” Desplaza la palabra baja (bits 0 al 15) de ACU1 nº bits (0-
15) a la izquierda. Los bits vacíos se rellenan con cero.
A la izquierda:
45
Autómatas programables avanzado
“SSI <nº de bits>” Desplaza la palabra baja (bits 0 al 15) de ACU1 nº bits (0-
15) a la derecha. Los bits vacíos se rellenan con el bit de signo (el bit 15) Nota:
SSI 0 = NOP
SSI 0 = NOP
46
2: Operaciones aritméticas, conversión, rotación y desplazamiento
A la derecha:
“RRD <nº de bits>” Rota el ACU1 nº bits (0-32) a la derecha. Los bits que van
quedando vacíos se llenan con los que salen del ACU1.
RRD 0 = NOP 0
A la izquierda:
“RLD <nº de bits>” Rota el ACU1 nº bits (0-32) a la izquierda. Los bits que van
quedando vacíos se llenan con los que salen del ACU1.
RL 0 = NOP 0
ACU1
1 0 1 0 1 1 1 1 0 1 0 1 0 0 0 0 1 1 0 0 1 0 1 0 0 1 0 1 0 0 0 0
Después de RLD 4:
ACU1
47
2: Operaciones aritméticas, conversión, rotación y desplazamiento
RESUMEN
■
Las instrucciones lógicas elementales basadas en el álgebra de Boole, comunes a
todos los autómatas, se complementan con otras secuencias preprogramadas por el
fabricante y de uso general en automatización, como son los registros, temporizadores,
contadores, etc.
■
Existen instrucciones que manipulan los bytes con operaciones de comparación,
conversión, transferencia, rotación o desplazamiento.
■
Existen instrucciones más potentes que realizan operaciones de cálculo aritméticas y
comunicaciones más o menos transparentes, permitiendo al autómata ser utilizado en
aplicaciones en las que se necesite manipulación de variables numéricas.
■
Todas estas instrucciones de control, cálculo y secuencia de programa forman el
cuerpo de los lenguajes de autómata, tan completos y potentes que en ocasiones
permiten confundir a esta máquina con un pequeño ordenador industrial.
49
3 3
Autómatas programables avanzado
DIDÁCTICA
UNIDAD
ÍNDICE
OBJETIVOS.................................................................................................................................................................. 55
INTRODUCCIÓN......................................................................................................................................................... 56
3.1. Bloques de programa............................................................................................................................................ 57
3.2. Tipo de bloques..................................................................................................................................................... 58
3.3. Módulos de función............................................................................................................................................... 59
3.4. Tabla de declaración de variables........................................................................................................................ 60
3.5. Llamadas a bloques.............................................................................................................................................. 61
3.6. Ejemplo de función “FC”....................................................................................................................................... 63
3.7. Bloques de datos “DB”......................................................................................................................................... 65
3.8. Bloques de datos global........................................................................................................................................ 66
3.9. Ejemplo de bloque de datos global...................................................................................................................... 69
3.10. Formato de datos en los DB............................................................................................................................... 71
3.11. Bloques de función “FB”.................................................................................................................................... 73
3.12. Llamada al “FB”.................................................................................................................................................. 74
3.13. Multidistancia: un “DB” de instancia para cada instancia............................................................................... 76
3.14. Multinstancia: un “DB” de instancia para varias instancias de un “FB”......................................................... 78
RESUMEN..................................................................................................................................................................... 79
53
3: Bloques de programa
OBJETIVOS
■ Simplificar los programas de gran tamaño.
■
Utilizar programa de bloques ya definidos por el fabricante que sólo son necesarios
parametrizar.
55
Autómatas programables avanzado
INTRODUCCIÓN
El ciclo de operación de una tarea, recorre la secuencia La clasificación de las estructuras de programación
siguiente: en mono y multitarea son muy dependientes de la
■■ Adquisición de entradas. configuración hardware de la unidad de control.
56
3: Bloques de programa
57
Autómatas programables avanzado
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.
58
3: Bloques de programa
Los módulos de función, también llamados FC, son módulos en los que
podemos incluir parte del programa de usuario, así obtenemos un programa
mucho más estructurado.
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.
59
Autómatas programables avanzado
En las tabla de declaración de variables se definen las variables locales, que pueden
ser temporales “temp” y estáticas “stat” (sólo FB’s) y los parámetros formales de
bloque, que pueden ser de entrada “in”, de salida “out” o de entrada_salida “in_out”.
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.
■■ Stat: variables que mantienen su valor al salir del módulo. Los FC no permiten
este tipo de variables y sólo para bloques FB.
60
3: Bloques de programa
CALL FC1
3. Hay que asignar a esos parámetros formales los parámetros actuales del bloque
invocante.
CALL FC1
En el caso de los bloques FC no se puede dejar ningún parámetro actual sin definir.
61
Autómatas programables avanzado
U E0.0
CC FC1 //Llama a la función FC1 si E0.0=1
62
3: Bloques de programa
L #valor1
L #valor2
+I
T #resultado
L 2
L MW20
CALL “Suma”
valor1:= MW20
valor2:= 3
resultado:= MW100
Guardamos el OB1.
Para terminar hay que transferir al autómata los dos bloques, OB1 y FC1.
63
Autómatas programables avanzado
64
3: Bloques de programa
■■ Bloques de datos globales: a sus datos pueden acceder todos los bloques.
65
Autómatas programables avanzado
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 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.
2. Active la vista “Declaración” (en menú “Ver”) del bloque de datos en caso de que
ésta no se visualice todavía.
Columna Explicación
Dirección Indica la dirección que STEP 7 asigna automáticamente a la variable al terminar
de introducir una declaración.
Designación Introduzca el nombre que debe asignar a cada variable.
66
3: Bloques de programa
Tipo Introduzca el tipo de datos de la variable (BOOL, INT, WORD, ARRAY, etc.).
Las variables pueden pertenecer a los tipos de datos simples, a los tipos de datos
compuestos, o bien, a los tipos de datos de usuario.
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.
Comentario En este campo puede introducir un comentario para documentar la variable. El
comentario no debe tener más de 80 caracteres.
Instrucción: “AUF”
Una vez abierto el DB el acceso a los datos se hace mediante carga (L) y
transferencia (T).
67
Autómatas programables avanzado
No existe ninguna instrucción para cerrar un DB, sólo se cierra abriendo otro DB.
68
3: Bloques de programa
2. El siguiente paso es declarar los datos. Para ello vamos al menú “Ver” y marcamos
“Declaración”. Definimos la estructura rellenando la tabla:
El valor inicial es valor predeterminado del tipo de variable que el programa usará
si no hemos definido nosotros ningún valor actual.
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.
69
Autómatas programables avanzado
Guardamos el DB.
L Datos.valor2
L Datos.valor1
*I
T Datos.resultado
70
3: Bloques de programa
■■ WORD: W#16#AF
W#16#.
■■ DWORD: DW#16#FFFFAF2D
W#16#..
Datos compuestos:
■■ DATE_AND_TIME: DT#00-11-21-23:59:59.999
STRING[7].
El máximo de caracteres es 254
■■ ARRAY: Matrices
71
Autómatas programables avanzado
■■ 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.
72
3: Bloques de programa
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.
Al asociar el DB a ese FB, el DB será una tabla de variables copia exacta de la tabla
de declaración de variables del FB.
73
Autómatas programables avanzado
Una vez procesado el FB invocado, el programa del bloque invocante seguirá siendo
procesado.
CALL FB1,DB1
3. Hay que asignar a esos parámetros formales los parámetros actuales del bloque
invocante.
CALL FB1,DB1
74
3: Bloques de programa
■■ Si se llama varias veces al FB, sólo hay que introducir los parámetros
actuales que han cambiado respecto a la última llamada, ya que éstos se
han guardado en el DB de instancia una vez procesado el FB.
■■ Si el parámetro actual es un DB, se debe indicar siempre la dirección
absoluta completa.
■■ Asignación de parámetros actuales a los parámetros formales de un FB:
■■ Si al FB se le indican los parámetros actuales en la instrucción de lla-
mada, las operaciones del FB utilizan éstos.
Si en la instrucción de llamada no se indica ningún parámetro actual, el FB
utiliza los valores memorizados en el DB de instancia. A su vez pueden ser
los valores iniciales declarados en el FB (excepto los temporales).
75
Autómatas programables avanzado
76
3: Bloques de programa
77
Autómatas programables avanzado
78
3: Bloques de programa
RESUMEN
■
La programación de autómatas utiliza metodologías de descripción lineal de la tarea
de aplicación para aquellos programas más sencillos, que necesitan pocas tomas de
decisión durante la ejecución, o estructuras más completas cuando la tarea de control
puede dividirse en partes, coincidentes con distintos subprocesos o subtareas de la
aplicación, de ejecución normalmente condicional a alguna variable del proceso.
■
La programación estructurada presenta ventajas tanto en la concepción como en la
explotación del proyecto, dado que el trabajo sobre módulos independientes entre sí,
facilitan la programación, documentación y puesta a punto de la aplicación.
■
En un formato monotarea un autómata tiene un único ciclo de operación, es decir,
las instrucciones se ejecutan de forma secuencial, una tras otra. En cada instante
de tiempo sólo se está resolviendo una sentencia, o lo que es lo mismo, sólo se está
generando una señal de control interna o de salida.
■
En un formato multitarea un autómata tiene varios ciclos de operaciones multiplexados
entre sí en el tiempo. En este formato se generan tantas señales de mando como tareas
se hayan definido en el programa de control, cada una obtenida sobre un procesador
distinto.
79
4
Autómatas programables avanzado
4
DIDÁCTICA
UNIDAD
ÍNDICE
OBJETIVOS.................................................................................................................................................................. 85
INTRODUCCIÓN......................................................................................................................................................... 86
4.1. Tratamiento de señales analógicas...................................................................................................................... 87
4.2. Entrada analógica.................................................................................................................................................. 88
4.3. Salida analógica.................................................................................................................................................... 90
4.4. Direccionamiento de las señales analógicas...................................................................................................... 91
4.5. Función de desescalado de salidas analógicas (FC106).................................................................................... 94
RESUMEN..................................................................................................................................................................... 97
83
4: Tratamiento de señales analógicas
OBJETIVOS
■ Identificar las distintas señales presentes en la naturaleza.
■ Con la información de dicha señal, definir como debe ser la entrada o salida al autómata.
■
Conocer los distintos módulos de programación que ofrece el fabricante, para saber
parametrizarlos.
■
Conocer las distintas instrucciones que tratan las señales tanto del exterior como del
interior del autómata.
85
Autómatas programables avanzado
INTRODUCCIÓN
El control de un proceso requiere siempre de un diálogo La característica esencial del autómata programable
operador-máquina y una comunicación entre máquina es su capacidad de comunicación con un entorno
y el sistema de control. Para el sistema de control, exterior en el que se manejan señales de potencia,
y más concretamente si éste es un autómata, esto con tensiones y corrientes de nivel industrial, aunque
se traduce en que éste reciba una serie de señales suelen disponer también de buses de comunicación
externas, unas de mando y otras de realimentación digital parecidos a los que normalmente incorporan
que, en conjunto, constituyen las entradas. Por otro los sistemas informáticos.
lado, el operador necesita conocer algunos datos sobre Un autómata consta de circuitos de interfaz de E/S
la marcha del proceso y los accionamientos necesitan muy potentes, que permiten conectar directamente
recibir las órdenes oportunas para controlarlo. con los sensores y accionamientos del proceso.
Las señales de entrada van desde el simple pulsador
o final de carrera, hasta la medición de cualquier
magnitud física que intervenga en el proceso. Por otro
lado, las salidas pueden consistir también en señales
todo o nada, generalmente actuando sobre relés,
electroválvulas u otros elementos electromecánicos,
o señales analógicas o digitales para señalización en
instrumentos de medida, visualizadores, impresión
de mensajes de alarma o mostrar el estado de los
sensores y accionamientos, etc.
86
4: Tratamiento de señales analógicas
87
Autómatas programables avanzado
88
4: Tratamiento de señales analógicas
Estos valores van a ser un número entero, con la siguiente resolución máxima:
Para un módulo de entradas de 12 bits la resolución será: 212 = 4096. Pero nosotros
veremos X cantidad de resolución, dependiendo de la tarjeta analógica.
Así, y en el ejemplo, con 0 litros obtendré el entero 0, con 500 litros obtendré 13824,
y con 1000 litros obtendré 27648.
89
Autómatas programables avanzado
90
4: Tratamiento de señales analógicas
■■ Entradas externas:
■■ Salidas externas:
Un módulo de entrada/salida analógica tiene las mismas direcciones iniciales para los
canales de entrada y salida analógicos.
91
Autómatas programables avanzado
CALL “SCALE”
IN:=
HI_LIM:=
LO_LIM:=
BIPOLAR:=
RET_VAL:=
OUT:=
Fórmula:
■■ Bipolar: se supone que el valor entero de entrada deberá estar entre K1= –27648
y K2= 27648.
Por ejemplo, ¿cuántos litros se corresponden con el valor interno de tarjeta de 10000?
92
4: Tratamiento de señales analógicas
(10000 − 0 )x (1000 − 0 )
Litros = + 0 = 361' 68l
27648 − 0
Parámetros de salida:
93
Autómatas programables avanzado
CALL “UNSCALE”
IN :=
HI_LIM :=
LO_LIM :=
BIPOLAR :=
RET_VAL :=
La función toma en la entrada IN un valor real que está ajustado a escala entre un
rango comprendido entre un límite inferior y un límite superior (LO_LIM y HI_LIM), y lo
convierte a un valor entero. El resultado se escribe en la salida (OUT).
Fórmula:
IN − LO _ LIM)x (K 2 − K1)
OUT = + K1
(HI _ LIM − LO _ LIM)
Parámetros de salida:
94
4: Tratamiento de señales analógicas
Parámetros
Habilitar:
95
Autómatas programables avanzado
■■ “Alarma de proceso al final del ciclo”: un ciclo abarca la conversión de los valores
medidos en todos los canales de entrada activos en el módulo con entradas
analógicas. El módulo procesa los canales uno tras otro. Tras la conversión de
valores medidos, el módulo notifica que todos los canales presentan valores
de medición nuevos a la CPU mediante una alarma de proceso (=alarma fin
de ciclo). Se puede utilizar la alarma de proceso para cargar continuamente
los valores analógicos actuales convertidos. Para reducir el tiempo de ciclo
desactive los canales que no utilice.
■■ “Tipo”: haga clic en este campo para hacerse mostrar los tipos de medición
disponibles (tensión, intensidad...) y elegir uno de ellos.
■■ “Margen”: haga clic en este campo para hacerse mostrar los márgenes de
medida disponibles para el respectivo tipo de medición y elija uno de ellos.
96
4: Tratamiento de señales analógicas
RESUMEN
■
El autómata se diferencia de otros sistemas programables precisamente por la potencia
de su sistema de entradas/salidas, que le permite un enlace fácil con la mayor parte de
los sensores y actuadores industriales.
■
La conexión tan directa entre el autómata y los elementos de potencia del proceso
a través del sistema de entradas/salidas, hace que éstas deban ser diseñadas
cuidadosamente, para poder soportar las duras condiciones ambientales y de entorno
a que se ven sometidas.
■
Existe una gran diversidad de módulos o tarjetas de interfaz disponibles, comparando
sus características y campo de aplicación. Se ha explicado los principios de
funcionamiento de los tipos de interfaces principales, tanto lógicos como analógicos.
■
Se debe también separar las distintas fuentes de señal para que no exista modificación
de la señal a medir y no influya el ruido.
97
5
Autómatas programables avanzado
5
DIDÁCTICA
UNIDAD
ÍNDICE
OBJETIVOS................................................................................................................................................................ 103
INTRODUCCIÓN....................................................................................................................................................... 104
5.1..Eventos de alarma y error asíncrono................................................................................................................... 105
5.2..Módulo de arranque OB100.................................................................................................................................. 107
5.3..Alarma cíclica OB35.............................................................................................................................................. 108
5.4..Alarma horaria OB10............................................................................................................................................. 109
5.5..Interrupción de retardo OB20............................................................................................................................... 110
5.6..Más OB’S............................................................................................................................................................... 111
RESUMEN................................................................................................................................................................... 113
101
5: Eventos de alarma y error asíncrono
OBJETIVOS
■ Conocer las distintas causas que pueden producir errores graves en un proceso.
■ Saber tratar esas alarmas para que un sistema productivo no pierda el sincronismo.
103
Autómatas programables avanzado
INTRODUCCIÓN
Los autómatas programables son máquinas El autómata realiza también una serie de acciones
secuenciales que ejecutan correlativamente las comunes que garantizan la seguridad en el
instrucciones indicadas en el programa de usuario funcionamiento, como son los chequeos de memoria
almacenando en su memoria, generando unas y de CPU, comprobación del “watchdog” o reloj de
órdenes o señales de mando a partir de las señales de guarda, etc.
entrada leídas de la planta: al detectarse cambios en Además, y eventualmente, establece comunicación
las señales, el autómata reacciona según el programa con periféricos exteriores, por ejemplo para volcado
hasta obtener las órdenes de salida necesarias. Esta de datos en impresora, comunicación con otros
secuencia se ejecuta continuamente para conseguir el autómatas u ordenadores, conexión con la unidad de
control actualizado del proceso. programación, etc.
La secuencia de operación del autómata se puede Todas estas acciones se van repitiendo periódicamente,
dividir en tres fases principales: definiendo un ciclo de operación que necesita de un
■■ Lectura de señales desde la interfaz de entradas. cierto tiempo para ser ejecutado. Este tiempo será
■■ Escritura de señales en la interfaz de salidas. determinante cuando el autómata pretenda controlar
procesos rápidos, con señales de muy corta duración
■■ Procesado del programa para obtención de las señales o alta frecuencia de conmutación.
de control.
En este tema se describe el ciclo de operación del
Con el fin de optimizar los tiempos de acceso a las autómata y las comprobaciones o test que realiza
interfaces E/S, se realiza la lectura y escritura de durante su funcionamiento, con una valoración
señales simultáneamente para todas las entradas y cualitativa de los tiempos que emplea en realizar
salidas implicadas, de forma que las entradas leídas cada operación. Se define también el concepto de
se almacenan en una memoria temporal o memoria respuesta del autómata en tiempo real, y se indican
imagen de entradas, a la que acude la CPU durante la las soluciones que ofrecen los fabricantes para el
ejecución del programa, mientras que los resultados control de procesos rápidos.
o señales de mando se van almacenando en otra
memoria temporal o imagen de salidas, según se van
obteniendo. Finalizada la ejecución, estos resultados
se colocan en la interfaz de salida de una sola vez.
104
5: Eventos de alarma y error asíncrono
Para la programación de los eventos de alarma y error asíncrono se emplean las SFC
39 a 42.
Las alarmas están subdivididas en diferentes clases. La siguiente tabla contiene todas
las clases de alarmas y sus OB correspondientes:
Clases de alarmas OB
Alarmas horarias OB 10 a OB 17
Alarmas de retardo OB 20 a OB 23
Alarmas cíclicas OB 30 OB 38
Alarmas de proceso OB 40 OB 47
Alarmas de comunicación OB 50 OB 51
Alarmas de error asíncrono OB 80 OB 87 (siguiente tabla)
Alarmas de error asíncrono OB 10 a OB 17 el tratamiento de las alarmas de error asíncrono se
enmascara o desenmascara con las SFC 36 a 38.
La siguiente tabla contiene los eventos de error asíncrono, ante los cuales se puede
reaccionar llamando al OB correspondiente en el programa de usuario.
105
Autómatas programables avanzado
106
5: Eventos de alarma y error asíncrono
■■ OB100
■■ OB101
■■ OB102
En estos casos el OB100 sólo se ejecutará una vez, un ciclo, y después se ejecuta el
OB1 cíclicamente.
El OB100 nos puede ser útil para inicializar valores, por ejemplo inicializar un contador:
OB100
L C#5
S Z0
107
Autómatas programables avanzado
Tan sólo nos queda crear el OB35 con el código que queremos que se ejecute en la
interrupción, y transferirlo a la CPU.
108
5: Eventos de alarma y error asíncrono
Interrumpen el OB1 cíclico y ejecutan el código del OB de alarma horaria en una fecha
especificada o a intervalos especificados.
Configuración
■■ Activa: Activa / desactiva la alarma
□□ Periodicidad:
Fecha : 30.03.95
Hora : 22:15:00
No olvidarse de “Guardar y compilar” y “Cargar en módulo”
Tan sólo nos queda crear el OB de alarma horaria con el código que queremos que se
ejecute en la interrupción y transferirlo a la CPU.
Observaciones
■■ Si ponemos una fecha en pasado con respecto al reloj interno de la CPU y de
periodicidad una sola vez, el OB de alarma horaria se ejecutaría 1 sola vez tras
un rearranque completo (caliente) o un rearranque en frío.
109
Autómatas programables avanzado
Parámetros de salida:
Códigos:
110
5: Eventos de alarma y error asíncrono
111
5: Eventos de alarma y error asíncrono
RESUMEN
■ Con el autómata en RUN, el programa de usuario se ejecuta siguiendo una secuencia
o ciclo de operación que pasa por las siguientes etapas:
■ Los retardos dependientes de entradas y salidas son debidos a los filtrados de señales
preferentemente.
113
6
Autómatas programables avanzado
6
DIDÁCTICA
UNIDAD
ÍNDICE
OBJETIVOS................................................................................................................................................................ 119
INTRODUCCIÓN....................................................................................................................................................... 120
6.1. Direccionamiento indirecto................................................................................................................................. 121
6.1.1. Direccionamiento indirecto por memoria................................................................................................................. 121
6.1.2. Direccionamiento indirecto por registro intraárea...................................................................................................... 123
6.1.3. Direccionamiento indirecto por registro interárea...................................................................................................... 124
6.2. Operaciones con el registro de direcciones...................................................................................................... 126
6.3. Array - matrices................................................................................................................................................... 127
RESUMEN................................................................................................................................................................... 131
117
6: Direccionamiento indirecto y matrices
OBJETIVOS
■ Distinguir los distintos modos de direccionamiento existentes en un autómata.
■ Saber cómo quedan los datos en memoria en función del direccionamiento seleccionado.
■
Utilizar de forma correcta las operaciones de carga y transferencia en función del
direccionamiento.
■ Utilizar arrays y matrices para colocar, de forma optimizada, los distintos datos en memoria.
■ Saber introducir, de forma correcta, los datos en los arrays y las matrices.
119
Autómatas programables avanzado
INTRODUCCIÓN
Un autómata programable industrial es un equipo El autómata gobierna las señales de salida según el
electrónico de control con un cableado interno programa de control previamente almacenado en una
independiente del proceso a controlar, el cual se memoria, a partir del estado de las señales de entrada.
adapta a dicho proceso mediante un programa El autómata se configura alrededor de una unidad
específico, que contiene la secuencia de operaciones central o de control que, unida por medio de buses
a realizar. internos a las interfaces de entrada y salida y a las
Esta secuencia de operaciones se define sobre memorias, define lo que se conoce como arquitectura
señales de entrada y salida al proceso, cableadas interna del autómata.
directamente en los bornes de conexión del autómata. Según las soluciones constructivas adoptadas, esta
Las señales de entrada pueden proceder de arquitectura puede tomar distintas configuraciones.
elementos digitales, como finales de carrera y
detectores de proximidad, o analógicos, como
sensores de temperatura y dispositivos de salida
en tensión o corriente continuas. Las señales de
salida son órdenes digitales, todo o nada o señales
analógicas en tensión o corriente, que se envían a
los elementos indicadores y actuadores del proceso,
como lámparas, contactores, válvulas, etc.
120
6: Direccionamiento indirecto y matrices
En este ejemplo la instrucción es una carga en ACU1 del valor del temporizador cuyo
número está contenido en MW2.
□□ Temporizadores (T).
□□ Contadores (Z).
L 5 //Carga 5 en ACU1
T MW2 //Transfiere 5 a MW2
L T[MW2] //Carga el valor actual del temporizador T5 en ACU1
□□ Bit.
□□ Byte.
121
Autómatas programables avanzado
□□ Palabra.
□□ Doble palabra.
P#Byte.Bit
Para direccionar byte, palabra y doble palabra, el bit de puntero siempre debe
ser 0.
L 1 //Carga 1 en ACU1
T MW10 //Transfiere 1 a MW10
L P#4.0 //Carga el puntero en ACU1
T MD2 //Transfiere el puntero a MD2
AUF DB[MW10] //Abre el DB1
L DBD[MD2] //En ACU1 carga DBD4 (La doble palabra 4 del DB)
No se podría hacer así: L DB[MW10].DBD[MD2]
Además, en el ejemplo deberá existir previamente el DB1, si no, da fallo.
122
6: Direccionamiento indirecto y matrices
= A[AR1,P#1.1]
(*) (**)
123
Autómatas programables avanzado
□□ Con la función carga (L) que direcciona bytes palabras y doble palabras: E, A,
M, L, D y PE.
□□ Con la función transferencia (L) que direcciona bytes palabras y doble palabras:
E, A, M, L, DB, DI y PA.
Para acceder a un byte, palabra o doble palabra el nº de bit del puntero debe ser cero,
ej.:
L P#4.0
L AR1
124
6: Direccionamiento indirecto y matrices
L P#E8.7
L AR1
L P#A8.7
L AR2
U [AR1,P#0.0] //Consulta la entrada E8.7
= [AR2,P#1.1] //Lo asignas a la salida A10.0 (8.7
+ 1.1 = 9.8 = 10.0)
Para acceder a un byte, palabra o doble palabra, el nº de bit de puntero debe ser 0:
L P#MB0
L AR1
L P#MD1
L AR2
T D[AR2,P#53.0] //Transfiere el contenido de ACU1 a la doble pala
bra MD54
125
Autómatas programables avanzado
■■ “+AR1” y “+AR2” suma el contenido de ACU1 (un entero de 16 bits que será el
desplazamiento) al contenido de AR1. La suma se hace a nivel de bits.
L P#4.1
L AR1
L 8
+AR1 //4.1 + 8 bits = 5.1
U E0.0
= A[AR1,P#0.0] //Se activa la salida A5.1
L P#4.1
L AR1
+AR1 P#5.0 //4.1 + 5.0 = 9.1
U E0.0
= A[AR1,P#0.0] //Se activa la salida A9.1
126
6: Direccionamiento indirecto y matrices
Matriz unidimensional
ARRAY de 1 dimensión:
127
Autómatas programables avanzado
Matriz bidimensional:
ARRAY [1..2,1..3] = Matriz de 2 x 3, primer elemento= [1,1]
Último elemento= [2,3]
Para acceder a estos datos: Matriz[1,1], Matriz[1,2], Matriz[1,3], Matriz[2,1],
Matriz[2,2] y Matriz[2,3].
Observaciones
■■ El índice puede ser un valor entre –32768 y 32767
128
6: Direccionamiento indirecto y matrices
OB1:d
FC1:
CALL FC1
Datos_temp: =#Datos
CALL FC1
Datos_temp: =#Datos[1]
129
6: Direccionamiento indirecto y matrices
RESUMEN
■
El autómata es una máquina industrial programable basada en un sistema de
microprocesador, con un hardware y un software incorporado que permite la ejecución
de programas de usuario, escritos en algún lenguaje de programación.
■
Como en todo sistema microprocesador, en el autómata se identifican cuatro bloques
básicos diferenciados:
131
7 7
Autómatas programables avanzado
DIDÁCTICA
UNIDAD
ÍNDICE
OBJETIVOS................................................................................................................................................................ 137
INTRODUCCIÓN....................................................................................................................................................... 138
7.1. Concepto del control proporcional integral derivativo (PID)............................................................................. 139
7.2. Parametrización................................................................................................................................................... 140
7.3. Regulación continua “FB 41” “CONT_C”........................................................................................................... 141
7.4. Regulación discontinua “FB 42” “CONT_S”...................................................................................................... 148
7.5. Formación de impulsos “FB 43” “PULSEGEN”.................................................................................................. 153
7.6. Ejemplo con el bloque “PULSEGEN”.................................................................................................................. 161
RESUMEN................................................................................................................................................................... 165
135
7: Regulación PID
OBJETIVOS
■ Conocer los procesos industriales más utilizados.
■
Conocer los módulos especiales de programación para realizar controles más precisos en
la industria.
137
Autómatas programables avanzado
INTRODUCCIÓN
Las interfaces específicas permiten la conexión con A diferencia de las entradas/salidas inteligentes, que
elementos o procesos particulares de la planta, limitan a unos pocos los parámetros necesarios para
realizando funciones que van desde la lectura directa su funcionamiento (funciones muy especializadas),
de termopares hasta la presentación de sipnósticos los procesadores periféricos, de uso más general,
y control SCADA, pasando por la regulación, necesitan más información para definir, no sólo la
posicionamiento de ejes, etc. configuración del periférico, sino además:
Estas interfaces específicas están disponibles para ■■ Condiciones de aplicación, que definen las condiciones
autómatas modulares de gamas media y alta, de entorno.
máquinas que exigen, por su mayor campo de ■■ Consignas a seguir.
aplicaciones, mayor personalización que los micro y
miniautómatas. ■■ Condiciones de control, que definen la respuesta según la
evolución del proceso.
Aunque a todas estas interfaces se les denomina, en
general, específicas por lo concreto de la función que El conjunto de estos valores, enviados al periférico
realizan, se pueden distinguir entre ellos tres grupos desde la unidad de programación o desde la CPU
bien diferenciados: principal, se denomina programa de la interfaz.
138
7: Regulación PID
Una regulación creada con los dos bloques mencionados es neutra, por principio, en
cuanto a sus posibles aplicaciones. El rendimiento de regulación y con ello la velocidad
de procesamiento dependen únicamente de la potencia de la CPU utilizada.
Cuanto más rápidos sean los lazos de regulación, es decir, deban calcularse con
mayor frecuencia las magnitudes manipuladas por unidad de tiempo, menor es el
número de reguladores instalables.
Por ello es indispensable conocer exactamente el tipo y las características del sistema
o proceso regulado.
139
Autómatas programables avanzado
7.2. Parametrización
Bajo Windows, el interface de usuario de parametrización de PID Control se llama con
la secuencia de comandos siguiente:
140
7: Regulación PID
El regulador puede aplicarse como regulador PID de consigna fija, autónomo o también
en regulaciones de varios lazos como regulador en cascada, regulador de mezcla o
regulador de relación. Su modo de trabajo se basa en el algoritmo de regulación
PID del regulador muestreado con señal de salida analógica, complementada dado el
caso por una etapa de formación de impulsos para la creación de señales de salida
con modulación de ancho de impulsos para regulaciones de dos o tres puntos con
actuadores proporcionales.
El valor real puede ser leído en formato de periferia y en formato en coma flotante.
100
Salida de CPR _ IN = PV _ PER ⋅
27648
La función PV_NORM normaliza la salida de CRP_IN según la fórmula siguiente:
141
Autómatas programables avanzado
■■ Algoritmo PID:
27648
LMN _ PER = LMN ⋅
100
■■ Aplicación de magnitud perturbadora (control anticipativo):
142
7: Regulación PID
143
Autómatas programables avanzado
Tipo de Por
Parámetro Valores posibles Descripción
datos defecto
COM_RST BOOL FALSE COMPLETE RESTART / Rearranque completo.
El bloque tiene una rutina de rearranque completo que se ejecuta cuando está
activada la entrada “Rearranque completo”.
MAN_ON BOOL TRUE MANUAL VALUE ON / Conectar modo manual.
El tiempo entre las llamadas del bloque deber ser constante. La entrada
“Tiempo de muestreo” indica el tiempo entre las llamadas del bloque.
SP_INT REAL -100.0...100.0 (%) ó 0.0 INTERNAL SETPOINT / Consigna interna.
magnitud física 1)
La entrada “Consigna interna” sirve para ajustar un valor de consigna.
PV_IN REAL -100.0...100.0 (%) ó 0.0 PROCESS VARIABLE IN / Entrada de valor real
magnitud física 1)
En la entrada “Entrada de valor real” puede parametrizarse un calor de puesta
en servicio, o aplicarse un valor real externo en formato en coma flotante.
144
7: Regulación PID
Tipo de
Parámetro Valores posibles Por defecto Descripción
datos
PV_PER WORD W#16#0000 PROCESS VARIABLE PERIPHERY / Valor real de periferia.
La entrada “Offset del valor real” se suma con el valor real. La entrada
sirve para la adaptación del margen de valor real.
LMN_FAC REAL 1.0 MANIPULATED FACTOR / Factor del valor manipulado.
145
Autómatas programables avanzado
Tipo de Valores
Parámetro Por defecto Descripción
datos posibles
LMN REAL 0.0 MANIPULATED VALUE / Valor manipulado.
146
7: Regulación PID
Tipo de Valores
Parámetro Por defecto Descripción
datos posibles
LMN_I REAL 0.0 INTEGRAL COMPONENT / Acción I.
Por la salida “Valor real” se emite el valor real que actúa efectivamente.
ER REAL 0.0 ERROR SIGNAL / Error de regulación.
Por la salida “Error de regulación” se emite la diferencia o error de regulación que actúa
efectivamente.
147
Autómatas programables avanzado
El regulador puede aplicarse como regulador de valor fijo PI, autónomo o en lazos
de regulación subordinados en regulaciones de cascada, regulaciones de mezcla o
regulaciones de relación, pero no como regulador piloto. Su modo de trabajo se basa
en el algoritmo de regulación PI del regulador muestreado y es completado con los
elementos funcionales para la generación de la señal de salida binaria a partir de la
señal manipulada analógica.
El valor real puede ser leído en formato de periferia y en formato en coma flotante.
100
Salida de CPR _ IN = PV _ PER ⋅
27648
La función PV_NORM normaliza la salida de CRP_IN según la fórmula siguiente:
148
7: Regulación PID
149
Autómatas programables avanzado
Tipo de
Parámetro Valores posibles Por defecto Descripción
datos
COM_RST BOOL FALSE COMPLETE RESTART / Rearranque completo.
150
7: Regulación PID
Tipo de
Parámetro Valores posibles Por defecto Descripción
datos
PV_IN REAL -100.0…100.0 0.0 PROCESS VARIABLE IN / Entrada de valor real.
(%) o magnitud
física 1) En la entrada “Entrada de valor real” puede para metrizrse un valor
de puesta en servicio o aplicarse un valor real externo en formato en
coma flotante.
PV_PER WORD W#16#0000 PROCESS VARIABLE PERIPHERY / Valor real de periferia.
151
Autómatas programables avanzado
Parámetros en las ramas de valor de consigna y valor real con la misma unidad.
Tipo de
Parámetro Valores posibles Por defecto Descripción
datos
QLMNUP BOOL FALSE MANIPULATED SIGNAL UP / Subir señal manipulada.
152
7: Regulación PID
PULSEGEN transforma la magnitud de entrada INV (= LMN del regulador PID) por
modulación del ancho de impulsos en un tren de impulsos de período constante, que
corresponde al tiempo de ciclo con el que se actualiza la magnitud de entrada y que
debe parametrizarse en PER_TM.
153
Autómatas programables avanzado
■■ ”Uno” en la salida QPOS para las primeras tres llamadas del FB ”PULSEGEN”
(30 % de 10 llamadas).
■■ ”Uno” en la salida QPOS para las tres primeras llamadas del FB ”PULSEGEN”
(70% de 10 llamadas).
Esquema de Bloques “PULSEGEN”:
Así, p. ej., si se llama PULSEGEN 100 veces más que CONT_C, se consigue una
resolución del 1 % del margen de valor manipulado.
154
7: Regulación PID
Pero como INV se calcula casi siempre en un nivel de alarma cíclica más lento, el
formador de impulsos debería comenzar lo más rápidamente posible después de la
actualización de INV a transformar el valor discreto en un impulso.
Para ello, el bloque puede sincronizar él mismo el arranque del período según el
siguiente procedimiento:
Actuador
Calentar OFF Enfriar
Impulso
QPOS_P TRUE FALSE FALSE
QNEG_P FALSE TRUE TRUE
155
Autómatas programables avanzado
Los codos de la característica son originados por la duración mínima de impulso y por
la duración mínima de pausa.
INV
Duración de impulso = PER _ TM
100
Figura 7.3. Característica simétrica del regulador de tres puntos (factor de relación = 1).
156
7: Regulación PID
INV
Duración de impulso negativo = PER _ TM
100
INV
Duración de impulso positivo = PER _ TM RATIOFAC
100
Figura 7.4. Característica asimétrica del regulador de tres puntos (factor de relación = 0.5).
INV
Duración de impulso negativo = PER _ TM
100
INV PER _ TM
Duración de impulso positivo =
100 RATIOFAC
En la regulación de dos puntos se conecta únicamente la salida de impulso
positiva QPOS_P de PULSEGEN con el correspondiente actuador todo/nada
(ON/OFF).
157
Autómatas programables avanzado
Regulación de dos puntos con margen de valor manipulado bipolar (-100 % ... 100 %):
Figura 7.5. Característica con margen de valor manipulado bipolar (-100 % ... 100 %).
Regulación de dos puntos con margen de valor manipulado unipolar (0 % ... 100 %).
Figura 7.6. Característica con margen de valor manipulado unipolar (0 % ... 100 %).
Actuador
ON OFF
Impulso
QPOS_P TRUE FALSE
QNEG_P FALSE TRUE
En modo manual (MAN_ON = TRUE) las salidas binarias del regulador de tres puntos
o dos puntos pueden forzarse a través de las señales POS_P_ON y NEG_P_ON con
independencia de INV.
158
7: Regulación PID
Por
Parámetro Tipo de datos Valores posibles Descripción
defecto
INPUT VARIABLE / Variable de entrada.
INV
REAL -100.0…100.0 (%) 0.0 En el parámetro de entrada “Variable de entrada” se aplica una magnitud de valor
manipulado analógica.
PERIOD TIME / Periodo.
PER_TM
En el parámetro “Periodo” se introduce la duración de periodo constante de
TIME >=20*CYCLE T#1s la modulación de ancho de impulsos. La duración corresponde al tiempo de
muestreo del regulador. La relación entre el tiempo de muestreo del formador de
impulsos respecto al tiempo de muestreo del regulador determina la precisión de
la modulación del ancho de impulsos.
MINIMUM PULSE/BREAK TIME / Duración mínima de impulso o duración mínima
P_B_TM
de pausa.
TIME >=CYCLE T#0ms
En el parámetro “duración mínima de impulso o duración mínima de pausa”
puede parametrizarse una longitud mínima de impulso o de pausa.
RATIO FACTOR / Factor de relación.
RATIOFAC
Este parámetro permite modificar la relación de la duración de impulsos negativos
REAL 0.1 … 10.0 1.0 a impulsos positivos. En un proceso térmico, esto permite compensar diferentes
constantes de tiempo para calentar y enfriar (por ejemplo, con calefacción
eléctrica o refrigeración por agua).
THREE STEP CONTROL ON / Conectar regulación de tres puntos.
STEP3_ON
BOOL TRUE En el parámetro de entrada “Conectar regulación de tres puntos” se activa el
correspondiente modo de operación. En la regulación de tres puntos trabajan
ambas señales de salida.
TWO STEP CONTROL FOR BIPOLAR MANIPULATED VALUE RANGE ON / Conectar
ST2BI_ON
regulación de dos puntos para margen de valores manipulados bipolar.
En el parámetro “Conectar regulación de dos puntos para margen de valores
BOOL FALSE manipulados bipolar” puede seleccionarse entre los modos de operación
“Regulación de dos puntos para margen de valores manipulados bipolar” y
“Regulación de dos puntos para margen de valores manipulados unipolar”. Debe
ser aquí STEP3_ON=FALSE.
MANUAL MODE ON / Conectar modo manual.
MAN_ON
BOOL FALSE Activando el parámetro de entrada “Conectar modo manual” es posible forzar a
mano las señales de salida.
POSITIVE MODE ON / Impulso positivo ON.
POS_P_ON
En modo manual de una regulación de tres puntos, el parámetro de entrada
BOOL FALSE “Impulso positivo ON” permite forzar la señal de salida QPOS_P. En modo manual
de una regulación de dos puntos, QNEG_P está siempre invertida respecto a
QPOS_P.
NEGATIVE PULSE ON / Impulso negativo ON.
NEG_P_ON
En modo manual de una regulación de tres puntos, el parámetro de entrada
BOOL FALSE “Impulso negativo ON” permite forzar la señal de salida QNEG_P. En modo
manual de una regulación de dos puntos, QNEG_P está siempre invertida
respecto a QPOS_P.
159
Autómatas programables avanzado
Tipo de
Parámetro Valores posibles Por defecto Descripción
datos
SYN_ON BOOL TRUE SYNCHRONISATION ON/ Conectar sincroni-
zación.
Tipo de
Parámetro Valores posibles Por defecto Descripción
datos
QPOS_P BOOL FALSE OUTPUT POSITIVE PULSE / Señal de salida
de impulso positivo.
160
7: Regulación PID
161
Autómatas programables avanzado
162
7: Regulación PID
163
7: Regulación PID
RESUMEN
■
Las interfaces específicas facilitan la adaptación del autómata a procesos que manejan
señales particulares, bien por la forma en que se presentan (impulsos, códigos binarios,
analógicos de bajo valor, etc.), bien por el control que se ejerce sobre ellas (regulación
PID, control numérico, etc.).
■
En general, las interfaces tratan además de canalizar señales específicas, de descarga a
la CPU principal del trabajo de interpretación y ejecución de sus programas asociados.
■
Precisamente, la potencia del tratamiento incorporado en la tarjeta permite su
clasificación en:
165
8
Autómatas programables avanzado
8
DIDÁCTICA
UNIDAD
ÍNDICE
OBJETIVOS................................................................................................................................................................ 171
INTRODUCCIÓN....................................................................................................................................................... 172
8.1. Conceptos fundamentales.................................................................................................................................. 173
8.2. Clasificación de las redes................................................................................................................................... 175
8.3. Características generales de una red PROFIBUS.............................................................................................. 177
8.3.1. Paso de testigo (TOKEN BUS)............................................................................................................................... 177
8.3.2. Maestro-esclavo................................................................................................................................................. 179
8.4. PROFIBUS-DP...................................................................................................................................................... 180
8.4.1. Periferia distribuida a través del puerto integrado de la CPU....................................................................................... 181
8.4.2. Coherencia de datos ............................................................................................... 185
8.4.3. Comandos SYNC y Freeze ................................................................................................................................... 188
8.4.4. Periferia distribuida a través de una CP .................................................................................................................. 192
8.4.5. Inteligencia distribuida entre CPU’s......................................................................................................................... 196
8.4.6. Routing.............................................................................................................................................................. 202
8.4.7. PG Bus.............................................................................................................................................................. 208
8.4.8. Configuración de parámetros en una red PROFIBUS................................................................................................. 209
8.5. Profibus FDL (Send/Receive).............................................................................................................................. 212
8.6. Protocolo S7........................................................................................................................................................ 221
8.7. Protocolo FMS..................................................................................................................................................... 225
RESUMEN................................................................................................................................................................... 231
169
8: PROFIBUS (Configuración en Siemens)
OBJETIVOS
■ Analizar el porqué de las comunicaciones industriales.
■
Analizar las características de los distintos protocolos de comunicación y saber cuál elegir
dependiendo del entorno industrial.
■
Conocer las principales características de un protocolo de comunicación industrial muy
utilizado en la industria y por autómatas de la marca Siemens denominado Profibus.
■
Conocer qué elementos, tanto software como hardware, son necesarios para realizar una
comunicación Profibus.
■
Conocer qué módulos software parametrizables son necesarios configurar, para realizar
una comunicación Profibus.
171
Autómatas programables avanzado
INTRODUCCIÓN
La integración de los autómatas en un proceso ■■ Nivel de LAN. Éste es el nivel jerárquicamente por encima
industrial, suele hacerse dividiendo las tareas entre del anterior y se encarga normalmente de enlazar las
grupos de autómatas jerárquicamente anidados. distintas “células de fabricación” en grupos más grandes.
Esto da lugar a una estructura de las redes industriales A este nivel se suelen encontrar los autómatas de gama
en las que se pueden distinguir claramente tres niveles: alta y los ordenadores de uso específico a las tareas de
diseño, control de calidad, etc.
■■ Nivel de bus de campo. Éste es el nivel de red más próximo
al proceso y se encarga de la integración de pequeños ■■ Nivel LAN/WAN. Este nivel es el más próximo al área de
automatismos (autómatas compactos, multiplexores de gestión y se encarga de integrar los niveles anteriores a
E/S, controladores PID, equipos de medida, etc.) en las una estructura de fábrica o incluso de múltiples factorías
llamadas “islas”, que controlan distintas parcelas de un con emplazamientos dispersos. Las máquinas que forman
proceso. Generalmente, en el nivel más alto de estas redes parte de este nivel suelen ser miniordenadores o redes
se suelen encontrar uno o varios autómatas modulares de de ordenadores compartiendo recursos e incorporando
gama alta, que pueden actuar como maestro de red o en bases de datos que permiten centralizar los servicios de
estructuras de maestro flotante. El conjunto constituye lo compras, control de stocks, ventas, control de costos,
que se suele llamar una “célula de fabricación”. etc.
172
8: PROFIBUS (Configuración en Siemens)
Comunicación:
Transferencia de datos entre dos interlocutores con diferentes prestaciones
y el control de un interlocutor por otro, además de la consulta o interroga-
ción del estado operativo del interlocutor.
Equipo
En este contexto se denomina equipo a una unidad, que puede ser un au-
tómata programable, PG, panel operador/sistema, PC, aparato ajeno, etc.,
conectable a una o varias subredes.
173
Autómatas programables avanzado
Subred
Conjunto de todos los componentes físicos necesarios para establecer una
vía de transmisión de datos, así como el respectivo procedimiento común
para el intercambio de datos.
Ejemplos de subredes: MPI, PROFIBUS, Industrial Ethernet
Red
Conjunto formado por una o varias subredes iguales o diferentes, interco-
nectadas.
174
8: PROFIBUS (Configuración en Siemens)
1. Industrial Ethernet.
2. PROFIBUS / MPI.
3. Interface AS-i.
175
Autómatas programables avanzado
Nivel de célula
En el nivel de célula se procesan autónomamente todas las tareas de automatización
y optimización. En este nivel están interconectados los autómatas, PC’s y los equipos
para el funcionamiento y la observación.
Nivel de campo
El nivel de campo es el nexo entre las instalaciones y los autómatas programables. Los
dispositivos de campo miden, señalizan y retransmiten a las instalaciones las órdenes
recibidas del nivel de célula. En general, se transmiten pequeñas cantidades de datos,
en este caso es típica una comunicación jerarquizada, es decir, varios dispositivos de
campo se comunican con un maestro.
Nivel de actuadores-sensores
En este nivel, un maestro se comunica con los actuadores y sensores conectados a
su subred.
176
8: PROFIBUS (Configuración en Siemens)
■■ Protocolo S7.
■■ DP periferia descentralizada.
Hay dos métodos de acceso a la red, según queramos acceder a estaciones activas
(método de paso de testigo), o a estaciones pasivas (método maestro-esclavo).
177
Autómatas programables avanzado
Cuando una estación tiene el testigo, puede enviar telegramas mientras dure el
denominado tiempo de retención del testigo (configuración).
Una vez transcurrido éste, la estación ya sólo puede enviar un mensaje de alta prioridad.
Si una estación no tiene ningún mensaje que enviar, pasa el testigo directamente a
la siguiente estación en el anillo lógico. De esto se exceptúa la estación activa con
la dirección más alta existente en el bus, también denominada HSA (Highest Station
Address); dicha estación pasa el testigo exclusivamente a la estación del bus activa
con la mínima dirección de bus, para que se cierre nuevamente el anillo de paso de
testigo lógico.
Este método de acceso es independiente del tipo de red física PROFIBUS utilizada.
178
8: PROFIBUS (Configuración en Siemens)
8.3.2. Maestro-esclavo
Si un anillo lógico consta de una sola estación activa y en el bus hay varias estaciones
pasivas, esto es un sistema Maestro-Esclavo.
179
Autómatas programables avanzado
8.4. PROFIBUS-DP
PROFIBUS-DP cumple los elevados requisitos de tiempo que se imponen para el
intercambio de datos en el sector de la periferia descentralizada y los dispositivos de
campo.
El maestro dirige todo el tráfico de datos en el bus, esto significa que los esclavos DP
sólo pueden actuar en el bus tras solicitarlo el maestro. A tal efecto, los esclavos DP
son activados sucesivamente por el maestro conforme a una lista de llamadas (lista
de sondeo).
Requisitos hardware:
■■ S7-300 :
□□ CP 342-5.
■■ S7-400:
□□ CPU: 41X-DP (Sólo maestro). Si fuese 3DP: 1 puerto MPI, 1 puerto DP, 1
puerto configurable como MPI/DP.
180
8: PROFIBUS (Configuración en Siemens)
Cuando configuremos la red de este modo, las entradas y salidas de las ET’s las verá
el maestro como propias, accediendo a ellas con las instrucciones normales de S7.
181
Autómatas programables avanzado
Configuramos las propiedades del maestro DP (doble clic sobre “Maestro DP”).
182
8: PROFIBUS (Configuración en Siemens)
183
Autómatas programables avanzado
184
8: PROFIBUS (Configuración en Siemens)
A partir de ahora las entradas y salidas de la ET formarán parte de la PAE y PAA del
maestro. Podemos cambiar el direccionamiento de la ET haciendo doble clic en la
vista detallada del HW:
Si meto una dirección mayor que 128, no podré acceder a esas entradas/salidas
como parte de la PAE o PAA, sino como periferia.
Programa
U E2.0 //Consulta una de las entradas de la ET
= A4.0 //y asigna a la salida de mi maestro
185
Autómatas programables avanzado
La zona de PAA se escribe en la periferia de salida al final de cada ciclo, donde puede
ser leída en su totalidad por PROFIBUS.
Otra solución es utilizar las funciones SFC14 y SFC15 para leer y escribir datos con
coherencia.
186
8: PROFIBUS (Configuración en Siemens)
CALL SFC14
LADDR:=
RET_VAL:=
RECORD:=
Parámetros de entrada
LADDR (WORD): dirección inicial configurada desde el área de E del módulo esclavo,
de donde debe ser leída. Debe tener la misma longitud que la que se ha configurado
con STEP 7 para el módulo seleccionado. La dirección se debe indicar en valores
hexadecimales, p. ej., para la dirección inicial 100 es:
LADDR:=W#16#64.
Parámetros de salida
RET_VAL (INT): si durante la ejecución de la función ocurre un error, este valor de
retorno contiene un código de error. Se permite E, A, M, D, L.
Por ejemplo, si tienes una ET de 64 salidas digitales con dirección inicial 200:
CALL SFC14
LADDR:=W#16#C8 //Dirección inicial de las salidas de la ET (en la PAE o
PEW)
RET_VAL:=MW100
RECORD:=P#DB1.DBX0.0 BYTE 8 //Guarda esas salidas en un DB.
SFC 15 “DPWR_DAT”: Permite transferir los datos a RECORD de forma coherente con
respecto al esclavo DP.
CALL SFC15
LADDR:=
RECORD:=
RET_VAL:=
187
Autómatas programables avanzado
Parámetros de entrada
■■ LADDR (WORD): dirección inicial configurada desde el área PAA del módulo en
el que debe escribirse. La dirección se debe indicar en valores hexadecimales,
p. ej., para la dirección inicial 100 es:
LADDR:=W#16#64.
■■ RECORD (ANY): área de donde recojo los datos útiles a escribir. Debe tener
la misma longitud que la que se ha configurado con STEP 7 para el esclavo
seleccionado. Sólo se admite el tipo de datos BYTE.
Parámetros de salida
■■ RET_VAL (INT): si durante la ejecución de la función ocurre un error, este valor
de retorno contiene un código de error. Se permite E, A, M, D, L.
Por ejemplo, si tengo una ET de 64 entradas digitales con dirección inicial 200:
CALL SFC15
RET_VAL:=MW100
8.4.3.1. SYNC
Normalmente, el maestro DP transfiere los datos de salida cíclicamente (dentro del
ciclo del bus PROFIBUS DP) a las salidas de los esclavos DP.
Cuando se quiera que determinados datos de salida (que puedan estar repartidos
entre varios esclavos) sean emitidos al proceso exactamente en el mismo instante, se
debe enviar el comando de control SYNC al correspondiente maestro DP aplicando la
función SFC 11 “DPSYC_FR”.
Un ejemplo de esto podría ser arrancar una serie de motores en el mismo instante.
Funcionamiento de SYNC
Con el comando de control SYNC los esclavos DP de los grupos especificados
cambian al modo SYNC, esto es, el maestro DP transfiere los datos de salida actuales
y hace que los esclavos DP afectados congelen las salidas.
188
8: PROFIBUS (Configuración en Siemens)
Para que las salidas se vuelvan a actualizar cíclicamente es necesario dar el comando
UNSYNC con la SFC 11 “DPSYC_FR”.
189
Autómatas programables avanzado
Procedimientos
■■ Hay asignar los esclavos DP a grupos SYNC y FREEZE. En HW Config haz doble
clic sobre el sistema maestro DP, o botón derecho y selecciona “Propiedades
del objeto...”.
Por cada sistema maestro se pueden formar como máximo 8 grupos. Sin embargo, a
cada esclavo DP se le puede asignar solamente un grupo SYNC y un grupo FREEZE.
Activar SYNC y/o FREEZE para el grupo haciendo clic en la casilla de verificación
correspondiente.
190
8: PROFIBUS (Configuración en Siemens)
Se puede saber si el esclavo admite los comandos SYNC y FREEZE, pinchando sobre
él y leyendo la última línea.
Comando SYNC/FREEZE:
CALL “DPSYC_FR”
REQ:=
LADDR:=
GROUP:=
MODE:=
RET_VAL:=
BUSY:=
191
Autómatas programables avanzado
Ahora las E/S de las ET estarán almacenadas en un búfer de entradas o salidas que
se encuentra en la CP. El maestro para acceder a ellas tendrá que hacerlo mediante
dos funciones:
* FC1(DP_SEND).
* FC2 (DP_RECV).
192
8: PROFIBUS (Configuración en Siemens)
Hay un buffer de salidas en la CP, donde se depositan los datos que ha enviado
la CPU hacia la periferia. Este buffer se puede escribir mediante la función “DP_
SEND”.
193
Autómatas programables avanzado
FC1 “DP_SEND” : transfiere datos (E, M, DB) a la CP, o sea, transfiere los datos
de un área de salidas DP determinada al CP PROFIBUS para emitirlo a la periferia
descentralizada.
CALL “DP_SEND”
CPLADDR:=
SEND :=
DONE :=
ERROR :=
STATUS :=
Parámetros de entrada
■■ CPLADDR (WORD): dirección inicial de la CP. Al configurar el CP con la
herramienta de configuración STEP?7 se visualiza la dirección inicial del módulo
en la tabla de configuración, de modo que introduce aquí esta dirección en
hexadecimal. Ej.: W#16#130
Ej.: P#E0.0 byte 6 // 6 bytes será la cantidad de entradas totales en los esclavos.
194
8: PROFIBUS (Configuración en Siemens)
Parámetros de salida
■■ DONE (BOOL): si está a 1, indica que se han aceptado nuevos datos.
FC1 “DP_RECV”: recibe datos a través del CP PROFIBUS, o sea, recibe los datos del
proceso de la periferia descentralizada al igual que una información de estado en un
área de entrada DP determinada.
CALL “DP_RECV”
CPLADDR :=
RECV :=
NDR :=
ERROR :=
STATUS :=
DPSTATUS:=
195
Autómatas programables avanzado
Parámetros de entrada
■■ CPLADDR (WORD): dirección inicial de la CP. Al configurar el CP con la
herramienta de configuración “HW Config” se visualiza la dirección inicial del
módulo en la tabla de configuración, de modo que aquí esta dirección en
hexadecimal. Ej.: W#16#130
■■ RECV (ANY): zona de memoria (A, M, DB) de la CPU donde deposito las entradas
leídas en la CP. Se indica la dirección inicial y la longitud.
Ej.: P#A4.0 byte 2 // 2 bytes será la cantidad de salidas totales en los esclavos.
Parámetros de salida
■■ NDR (BOOL): si esta a 1, indica que se han aceptado nuevos datos.
En las configuraciones con esclavos DP inteligentes, como por ejemplo una CPU 315-
2DP, el maestro DP no accede a los módulos de E/S de la CPU esclava, sino sólo
a la zona de operandos de la CPU esclava; es decir, que dicha zona de operandos
no deberá ser ocupada para módulos E/S reales de la CPU esclava. Esta asignación
debe efectuarse durante la configuración del esclavo.
196
8: PROFIBUS (Configuración en Siemens)
197
Autómatas programables avanzado
198
8: PROFIBUS (Configuración en Siemens)
Los datos a transferir al maestro se depositan en el área de salidas 20 (PAA del esclavo)
de longitud 1 byte coherencia unidad.
Del sistema maestro DP deberá colgar la CPU Esclavo. Para ello vamos al Catalogo
de Hardware → Carpeta “PROFIBUS DP” → Carpeta “Estaciones ya configuradas” →
Y aquí seleccionamos la CPU correspondiente.
199
Autómatas programables avanzado
Nos saldrá la siguiente ventana, Pestaña “Acoplamiento”, donde aparecerán todos los
esclavos previamente configurados. Seleccionamos aquél que queremos insertar en
el sistema maestro DP y pinchamos en el botón “Acoplar”.
200
8: PROFIBUS (Configuración en Siemens)
Por ejemplo: Queremos mandar datos del esclavo al maestro. Para ello enviamos los
datos al búfer de salida del esclavo mediante una transferencia T. Automáticamente
los datos depositados en el búfer de salida del esclavo se transfieren al búfer de
entrada del maestro, de donde pueden ser leídos mediante una carga L.
OB1 Maestro:
L MW77
T PAW200
L PEW30
T DB1.DBW0
OB1 Esclavo:
L DB5.DBWO
T PAW20
L PEW100
T MW34
201
Autómatas programables avanzado
8.4.6. Routing
Se puede acceder a la red PROFIBUS a través de la red MPI. Se pueden hacer hasta
2 pasarelas.
Requisitos de Software
Redes MPI y PROFIBUS:
■■ Para las tarjetas Sofnet PROFIBUS (CP 5411 (ISA), CP 5511 (PCMCIA), CP
5611 (PCI), CP 5611 (on board) no se necesitan drivers adicionales, ya se
suministran con STEP7.
■■ Para las tarjetas Hardnet PROFIBUS (CP 5412(A2) (ISA), CP 5613/5614 (PCI))
son imprescindibles los drivers del SIMATIC NET CD de Noviembre del 99.
202
8: PROFIBUS (Configuración en Siemens)
■■ Para las tarjetas Softnet IE (CP 1411 (ISA), CP 1511 (PCMCIA), 3COM) son
indispensables los drivers que vienen en el CD SIMATIC NET de Noviembre 99.
■■ Para las tarjetas Hardnet-IE (CP 1413 (ISA), CP 1613 (PCI)) son indispensables
los drivers que vienen en el CD SIMATIC NET de Noviembre 99.
TeleService S7 V5.0.
Requisitos de hardware
Se necesitan módulos compatibles con el routing. Acerca de los módulos que son
compatibles con el routing véase el catálogo de hardware de la configuración hardware
de STEP7.
203
Autómatas programables avanzado
Observación
El último módulo para ser direccionado a través de las funciones de routing no tiene
que ser compatible con el routing.
Procedimiento de configuración
Todas las estaciones que están entre los dispositivos de inicio y final se deben
configurar en un único proyecto STEP7. Desde el configurar de redes NetPro:
Esto también se hará para las redes que no están directamente en el camino
de ruta, pero que están conectadas a las estaciones de ruta. Esto no significa
que se deban conectar a la red todos los interfaces disponibles. Sólo hay que
configurar las conexiones de comunicación que estén físicamente presentes.
204
8: PROFIBUS (Configuración en Siemens)
■■ Abrir las Propiedades de la estación “PG/PC” haciendo doble clic sobre el dibujo
de la PG/PC.
Advertencia:
La estación “PG/PC” tiene que tener la misma dirección que la que está
establecida en el programa “Ajustar interface PG/PC” (esto también es de
aplicación para la CP 1413 y CP 1613).
205
Autómatas programables avanzado
206
8: PROFIBUS (Configuración en Siemens)
Configuraciones de ejemplo
Routing con módem y TS Adapter
207
Autómatas programables avanzado
8.4.7. PG Bus
Consiste en conectar la PG a la red PROFIBUS para acceder a los distintos equipos
existentes en dicha red.
208
8: PROFIBUS (Configuración en Siemens)
Observaciones
■■ Si se hace PGBUS a través de las CP’s o si se hace el acceso online mediante
“Mostrar estaciones accesibles”, no se accederá al contenido de las CPU’s,
sino al de las CP’s.
209
Autómatas programables avanzado
LAS (List of Active Stations): lista de las estaciones activas de la red generada cada X
ciclos.
Todos los parámetros vienen definidos en la unidad t_bit, que es el tiempo que se
tarda en transmitir un bit; este tiempo depende de la velocidad de la red.
■■ Factor gap (0÷99): indica cada cuantos ciclos de bus se actualiza la LAS. Un
factor gap bajo tiene el inconveniente de que se pierde tiempo de bus al mandar
telegramas GAP, pero por el contrario la red es más dinámica ya que detecta con
rapidez la incorporación de nuevos equipos.
TSDR (Time Station Delay Response): tiempo de respuesta de una estación ante un
mensaje que se le envía. No existe un tiempo fijo, depende de la estación. Se define
un margen de respuesta: un TSDR mínimo y un TSDR máximo.
■■ Tsdr mín.: determina el tiempo que debe transcurrir como mínimo para que la
estación pueda responder.
■■ Tsdr máx.: determina el tiempo tras el cual tiene que haber respondido la estación.
Si el tiempo de respuesta supera al Tsdr máx. aún espera el tiempo Tslot, que
es el máximo tiempo que espera el emisor a que responda su estación. Si se
supera el Tslot, el emisor vuelve a enviar el telegrama tantas veces como indique
el parámetro Retry Limit.
210
8: PROFIBUS (Configuración en Siemens)
■■ Ttr: tiempo máximo de rotación del testigo. Establece el tiempo máximo para
que el testigo vuelva a una estación activa (maestro DP).
211
Autómatas programables avanzado
También podemos utilizar las funciones AGL_SEND (FC50) y AGL_RECV (FC60) con
las que podremos mandar 8 kbytes máximo.
Requisitos de hardware
S7-300 :
●● CP 342-5 y CP343-5
S7-400:
●● CP 343-5 BASIC Y EXTENDED
Enlaces
Un enlace constituye la correspondencia lógica entre dos interlocutores para ejecutar
servicios de comunicación.
Cada enlace tiene dos puntos finales (situados en la respectiva CPU o CP), que
incluyen las informaciones necesarias para direccionar el interlocutor, así como otros
atributos para establecer el enlace.
212
8: PROFIBUS (Configuración en Siemens)
Los enlaces son bidireccionales, creamos uno para comunicar dos equipos.
Recursos de enlace
Cada enlace precisa recursos en los equipos implicados para el punto final (por
ej. CPU) o para el punto de transición (p.ej. CP). El número de recursos de enlace
depende del tipo de CPU/CP. Si están ocupados todos los recursos de enlace de un
interlocutor no puede establecerse ningún nuevo enlace.
213
Autómatas programables avanzado
Tipos de enlaces
Enlaces
Tipo de enlace Configurado no configurado
214
8: PROFIBUS (Configuración en Siemens)
Debes conectar las CP’s a una red PROFIBUS y el perfil de la red debe ser
“Estándar”.
215
Autómatas programables avanzado
Parámetros de bloque:
216
8: PROFIBUS (Configuración en Siemens)
3. Programación:
La comunicación se realiza a través de la CP, pero los datos los envías o recibes
desde la CPU mediante las funciones FC5 “AG_SEND” y FC6 “AG_RECV”.
217
Autómatas programables avanzado
OB1 Equipo 1:
CALL “AG_SEND”
ACT :=
ID :=
LADDR :=
SEND :=
LEN :=
DONE :=
ERROR :=
STATUS:=
Parámetros de entrada:
□□ ACT (BOOL: si ACT = 1 se envían los bytes.
ERROR y STAT.
□□ ID (INT): número del enlace FDL (1÷16) por el que voy a enviar.
Ej.: W#16#130
□□ LEN (INT): número de bytes (1 hasta 240 máx.) que enviaras del área de datos
indicada en el parámetro SEND. Este número debe ser menor que la longitud
de datos indicada con SEND.
Parámetros de salida
□□ DONE (BOOL): si DONE=1, significa que la petición de envío ha terminado
con o sin errores.
218
8: PROFIBUS (Configuración en Siemens)
En nuestro ejemplo:
CALL “AG_SEND”
ACT := 1
ID := 1
LADDR := W#16#100
SEND := P#E0.0 BYTE 2
LEN := 2
DONE := M0.0
ERROR := M0.1
STATUS:= MW2
OB1 Equipo 2:
Recogerás los datos mediante la función FC6 “AG_RECV”. No hay que activar
la recepción siempre estarás alerta para recibir los datos.
CALL “AG_RECV”
ID :=
LADDR :=
RECV :=
NDR :=
ERROR :=
STATUS:=
LEN :=
Parámetros de entrada
■■ ID (INT): indica el número del enlace FDL (1÷16).
■■ RECV (ANY): área de memoria donde se almacena los datos que recibo. El área
de datos puede ser la PAE, PAA, marcas o bloques de datos.
Parámetros de salida
■■ LEN (INT): indica el número de bytes (1÷240) que han sido recibidos por la CP
en el área de datos FDL.
219
Autómatas programables avanzado
En nuestro ejemplo:
CALL “AG_RECV
ID := 1
LADDR := W#16#100
RECV := P#A4.0 BYTE 2
NDR := M0.0
ERROR := M0.1
STATUS:= MW2
LEN := MW4
220
8: PROFIBUS (Configuración en Siemens)
8.6. Protocolo S7
Cada CPU S7 lleva integrada una serie de funciones S7 (SFB’s y SFC’s) para la
transferencia de datos entre ellas. Estas funciones son independientes del tipo de red,
pueden utilizarse para MPI, PROFIBUS e Ethernet.
Tipos:
Función SFC68 “X_PUT”: esta SFC permite a una CPU escribir datos en otra CPU sin
que ésta última deba tener ninguna SFC, ya que esta funcionalidad la realiza el sistema
operativo.
CALL “X_PUT”
REQ :=
CONT :=
DEST_ID:=
VAR_ADDR:=
SD :=
RET_VAL :=
BUSY :=
Parámetros de entrada:
■■ REQ (BOOL): la escritura de datos se activa llamando la SFC con REQ=1 (cambio
de nivel). Si no existe enlace, se crea antes de enviar los datos, a continuación
se llama repetidamente a la SFC hasta que se señalice, con BUSY=0, que la
escritura de datos ha finalizado. Si se vuelve a llamar a la función con REQ=1 y
todavía no se han enviado los datos, está nueva petición se desestima.
221
Autómatas programables avanzado
Hay que tener en cuenta que la longitud del área de datos y el tipo de datos de la CPU
emisora deben coincidir con que la longitud del área de datos y el tipo de datos de la
CPU receptora.
Parámetros de salida:
■■ BUSY (BOOL):
Si la CPU donde se escriben los datos pasa a STOP, no pasa nada ya que los
datos emitidos (que estarán en un búfer) se escriben de todos modos.
Función SFC67 “X_GET”: esta SFC permite a una CPU leer datos de otra CPU
sin que ésta última deba tener ninguna SFC, ya que esta funcionalidad la realiza
el sistema operativo.
CALL “X_GET”
REQ :=
CONT :=
DEST_ID :=
VAR_ADDR:=
RET_VAL :=
BUSY :=
RD :=
■■ REQ (BOOL): la lectura de datos se activa llamando la SFC con REQ=1. Si no
existe enlace, se crea.
222
8: PROFIBUS (Configuración en Siemens)
Parámetros de salida:
■■ BUSY (BOOL):
Hay que tener en cuenta que la longitud del área de datos y el tipo de datos de la CPU
receptora deben coincidir con que la longitud del área de datos y el tipo de datos de
la CPU emisora.
Para que haya coherencia de datos en la recepción, el área de datos RD donde se
almacenan los datos recibidos se debe evaluar antes de hacer una nueva recepción
en esa área.
Si la CPU donde se escriben los datos recibidos pasa a STOP, se rompe el enlace.
Los datos recibidos se perderán o no según el tipo de rearranque: Si “Rearranque”
(no en los S7-300), no se pierden los datos, se escriben en el área RD. Si “Rearranque
completo (caliente)” o “Rearranque frío”, se pierden los datos.
Si la CPU de donde se leen los datos pasa a STOP, no pasa nada, los datos son leíbles
aún estando la CPU en STOP.
Enlaces configurados
Los SFB’s para comunicaciones permiten realizar una transmisión de datos acusada
vía enlaces S7 configurados. Dichos enlaces se crean con STEP 7.
Los SFB’s para comunicaciones sólo pueden aplicarse en los CPU’s de la familia S7-
400. Las funciones PUT/GET permiten leer o inscribir datos de un S7-300 desde un
S7-400. Estas funciones permiten transmitir datos hasta a 64 Kbytes vía las subredes
MPI, PROFIBUS e Industrial Ethernet.
223
Autómatas programables avanzado
Funciones:
SFB14 (GET): lee por programa datos del programa de aplicación del
interlocutor.
224
8: PROFIBUS (Configuración en Siemens)
El servicio FMS puede clasificarse en el nivel 7 del modelo de referencia ISO y permite
así una comunicación abierta con equipos no Siemens.
Propiedades
Los servicios FMS permiten leer, inscribir y notificar las variables FMS a través de
enlaces FMS. El interlocutor confirma la recepción de los datos mediante un acuse de
usuario, es decir, la aplicación en el interlocutor remoto ha recibido correctamente los
datos. La transmisión de los datos usando el servicio FMS se realiza exclusivamente a
través de una red PROFIBUS.
Requisitos hardware
■■ S7-300:
□□ CP343-5
■■ S7-400:
□□ CP443-5 Basic
2. Se configuran el cliente. En el NetPro se crea los enlaces entre las CPU se hace
clic con el botón derecho sobre la CPU y se crea un enlace nuevo:
225
Autómatas programables avanzado
226
8: PROFIBUS (Configuración en Siemens)
227
Autómatas programables avanzado
3. En el servidor se crea un DB :
En la tabla de símbolos:
228
8: PROFIBUS (Configuración en Siemens)
Programa servidor:
L EB 0
T “datos”.variable_1 //variable que utiliza el cliente para leer
229
8: PROFIBUS (Configuración en Siemens)
RESUMEN
■
En el entorno industrial nos encontramos con una serie de equipos digitales tales como
controladores, ordenadores de proceso y de gestión, etc., con grados de complejidad
muy diversos según su función. La integración en red de todos ellos comporta ventajas,
pues permite situar la “inteligencia” cerca del proceso, aprovechar al máximo los
recursos y obtener el máximo de información útil, tanto desde el punto de vista técnico
y de control como desde el punto de vista de gestión de la fabricación.
■
Todo ello ha llevado a la concepción de una estructura óptima de las redes para
obtener todas las ventajas con un mínimo coste y complejidad. Esta estructura óptima
contempla tres niveles jerárquicos: bus de campo, LAN y LAN/WAN.
■
Para cada uno de estos niveles, el mercado ofrece una serie de productos, de distintas
fuentes, que solucionan una parcela del control y gestión.
■
Lo deseable sería definir un estándar de red que permita la integración de productos
compatibles de distintos fabricantes.
■
En la industria actual, parece claro que se va a incorporar una estructura MAP para
grandes redes y que, a nivel de campo, seguirán existiendo dos o tres buses con
máxima implantación y otra serie de productos cuya conexión a la red se deberá hacer
por medio de pasarelas.
231
9
Autómatas programables avanzado
9
DIDÁCTICA
UNIDAD
ÍNDICE
OBJETIVOS................................................................................................................................................................ 237
INTRODUCCIÓN....................................................................................................................................................... 238
9.1. Bloques de organización..................................................................................................................................... 239
9.2. OB’s de alarma horaria (de OB10 a OB17)........................................................................................................ 243
9.3. OB’s de alarma de retardo (de OB20 a OB23)................................................................................................... 247
9.4. OB’s de alarma cíclica (de OB30 a OB38)......................................................................................................... 249
9.5. OB’s de alarma de proceso (de OB40 a OB47)................................................................................................. 251
9.6. OB de fallo de alimentación (OB81)................................................................................................................... 254
9.7. OB’s de arranque (OB100, OB101 y OB102)..................................................................................................... 257
9.8. Ajuste de hora con el SFC 0 “SET_CLK”........................................................................................................... 263
9.9. Leer la hora con el SFC 1 “READ_CLK”............................................................................................................. 264
9.10. Ajustar la hora y establecer el estado del reloj con el SFC 100 “SET_CLKS”.............................................. 265
9.11. SFC’s para gestionar el contador de horas de funcionamiento..................................................................... 267
9.12. Gestión de contadores de horas de funcionamiento con SFC 101 “RTM”................................................... 268
9.13. Ajuste de contadores de horas de funcionamiento con SFC 2 “SET_RTM”................................................. 270
9.14. Arrancar y parar el contador de horas de funcionamiento con SFC 3 “CTRL_RTM”................................... 271
9.15. Leer el contador de horas de funcionamiento con el SFC 4 “READ_RTM”.................................................. 272
9.16. Leer el cronómetro del sistema con SFC 64 “TIME_TCK”............................................................................. 273
9.17. SFC’s para gestionar alarmas horarias............................................................................................................ 274
9.18. Características de los SFC’s 28 a 31............................................................................................................... 275
9.19. Ajustar una alarma horaria con el SFC 28 “SET_TINT”.................................................................................. 277
9.20. Anular una alarma horaria con el SFC 29 “CAN_TINT”.................................................................................. 279
9.21. Activar una alarma horaria con el SFC 30 “ACT_TINT”.................................................................................. 280
9.22. Consultar una alarma horaria con el SFC 31 “QRY_TINT”............................................................................. 281
9.23. Listas de SFC’s.................................................................................................................................................. 282
9.24. Listas de SFB’s.................................................................................................................................................. 286
RESUMEN................................................................................................................................................................... 289
235
9: Bloques de Organización y “SFC’s” de Control y Gestión
OBJETIVOS
■ Conocer los distintos bloques de organización existentes.
■
Saber combinar los distintos bloques de organización para un mejor rendimiento del
proceso productivo.
237
Autómatas programables avanzado
INTRODUCCIÓN
Diremos que un sistema o bloque es lineal si la relación Otro aspecto a considerar es que muchos de los
salida-entrada es una ecuación diferencial lineal. sistemas de control actuales son de tipo digital y
Sin embargo, la mayor parte de los sistemas reales utilizan métodos numéricos para el tratamiento de las
presentan algún tipo de no linealidad, incluso dentro magnitudes analógicas. En tal caso, las magnitudes
de su campo de trabajo. del proceso se capturan por muestreo, las variables
A pesar de ello, si restringimos su estudio a un numéricas que las representan lo hacen con una
determinado rango de valores de entrada-salida o resolución limitada y las relaciones salida-entrada
dividimos su campo de trabajo en tramos, casi todos quedan expresadas por ecuaciones diferenciales.
ellos pueden aproximarse mediante ecuaciones Todo ello afecta al diseño del sistema, pero carece de
lineales. Esto permite estudiar los sistemas no lineales importancia desde el punto de vista de su aplicación.
como lineales por tramos o en el entorno de un punto
de funcionamiento.
Una gran parte de los sistemas analógicos trabajan
en lazo cerrado. Una de las mayores dificultades que
presenta el diseño de dichos sistemas es el de obtener
un regulador óptimo en los aspectos de mínimo error,
máxima rapidez de respuesta y gran capacidad de
adaptación a diferentes tipos de respuesta de una
planta.
238
9: Bloques de Organización y “SFC’s” de Control y Gestión
■■ Al arrancar la CPU.
■■ Al producirse errores.
239
Autómatas programables avanzado
Prioridad
OB Evento de arranque preajustada Aclaración
OB 1 Final del arranque o final del OB 1 1 Ciclo libre
OB 10 Alarma horaria 0 2 Sin valores por
defecto
OB 11 Alarma horaria 1 2
OB 12 Alarma horaria 2 2
OB 13 Alarma horaria 3 2
OB 14 Alarma horaria 4 2
OB 15 Alarma horaria 5 2
OB 16 Alarma horaria 6 2
OB 17 Alarma horaria 7 2
OB 20 Alarma de retardo 0 3 Sin valores por
defecto
OB 21 Alarma de retardo 1 4
Alarma de retardo 2 5
OB 22
Alarma de retardo 3 6
OB 23
OB 30 Alarma cíclica 0 (valor prefijado: impulso de reloj de 5 s) 7 Alarmas
cíclicas
OB 31 Alarma cíclica 0 (valor prefijado: impulso de reloj de 2 s) 8
OB 32 Alarma cíclica 0 (valor prefijado: impulso de reloj de 1 s) 9
OB 33 Alarma cíclica 0 (valor prefijado: impulso de reloj de 500 ms) 10
OB 34 Alarma cíclica 0 (valor prefijado: impulso de reloj de 200 ms) 11
OB 35 Alarma cíclica 0 (valor prefijado: impulso de reloj de 100 ms) 12
OB 36 Alarma cíclica 0 (valor prefijado: impulso de reloj de 50 ms) 13
OB 37 Alarma cíclica 0 (valor prefijado: impulso de reloj de 20 ms) 14
OB 38 Alarma cíclica 0 (valor prefijado: impulso de reloj de 10 ms) 15
OB 40 Alarma de proceso 0 16 Alarmas de
OB 41 Alarma de proceso 1 17 proceso
OB 42 Alarma de proceso 2 18
OB 43 Alarma de proceso 3 19
OB 44 Alarma de proceso 4 20
OB 45 Alarma de proceso 5 21
OB 46 Alarma de proceso 6 22
OB 47 Alarma de proceso 7 23
OB 55 Alarma de estado 2 Alarmas DPV1
OB 56 Alarma de actualización 2
OB 57 Alarma del fabricante
2
240
9: Bloques de Organización y “SFC’s” de Control y Gestión
241
Autómatas programables avanzado
242
9: Bloques de Organización y “SFC’s” de Control y Gestión
■■ Una vez.
■■ Cada minuto.
■■ Cada hora.
■■ Cada día.
■■ Cada semana.
■■ Cada mes.
■■ Cada año.
■■ A final de mes.
Intervalo Descripción
No activado El OB de alarma horaria no es procesado incluso aunque esté cargado
en la CPU. La alarma horaria puede activarse mediante la llamada a la
SFC 30.
Activado una vez El OB de alarma horaria se anula automáticamente, después de haber
sido procesado una vez como se ha indicado.
243
Autómatas programables avanzado
Condición Resultado
EL programa llama la SFC29 El sistema operativo borra el evento de arranque (fecha y hora) de la
“CAN_TINT” y anula una alarma alarma horaria. Es necesario ajustar de nuevo el evento de arranque y
horaria. activarlo cuando se deba llamar de nuevo al OB.
El programa ha intentado El sistema operativo llama al OB 85. Si el OB 85 no fue programado
activar un OB de alarma horaria (cargado en la CPU) la CPU para entonces al estado operativo STOP.
que no estaba cargado en
la CPU en el momento de la
activación.
Al sincronizar o corregir el reloj El sistema operativo llama al OB 80 y codifica el número del OB de alar-
del sistema de la CPU, se ha ma horaria y las informaciones sobre el evento de arranque en el OB 80.
adelantado la hora y con ello se
ha saltado el evento de arran- Después, el sistema operativo ejecutará una vez el OB de alarma horaria,
que, la fecha o la hora para un independientemente del número de veces que en teoría debía ejecutar-
OB de alarma horaria. se. Las informaciones sobre el evento de arranque del OB 80 muestran
la fecha y la hora de la primera vez que se saltó el OB de alarma
Al sincronizar o corregir el reloj CPU’s S7-400 y una CPU 318:
del sistema de la CPU se ha
retrasado la hora repitiéndose Si antes de retrasar el reloj, se activó el OB de alarma horaria, éste no se
el evento de arranque, la fecha volverá a llamar a las horas que ya han pasado.
o la hora para un OB de alarma
CPU’s S7-300; el OB de alarma horaria se ejecuta.
horaria.
244
9: Bloques de Organización y “SFC’s” de Control y Gestión
Condición Resultado
La CPU realiza un rearranque Cada OB de alarma horaria configurado mediante una SFC adopta de
completo (arranque en caliente) nuevo la configuración ajustada con el STEP 7.
o un arranque en frío.
Si se ha configurado una alarma horaria de manera que el correspon-
diente OB arranque una vez, habiéndose ajustado y activado el OB con
STEP 7, el sistema operativo llamará una vez al OB tras un rearranque
completo (arranque en caliente) o un arranque en frío, si el momento de
arranque ya ha pasado (con respecto al reloj de tiempo real de la CPU).
Se está procesando todavía un El sistema operativo llama al OB 80. Si el OB no se ha programado, la
OB de alarma horaria cuando CPU pasa entonces al estado operativo STOP.
aparece ya el evento de arran-
que para el próximo intervalo. En caso contrario, tras la ejecución del OB 80 y del OB de alarma hora-
ria, se efectúa la ejecución OB solicitada.
Como nombres de variables se eligieron los nombres por defecto del OB 10.
245
Autómatas programables avanzado
W#16
OB10_RESERVED_3 INT Reservado
OB10_RESERVED_4 INT Reservado
OB10_DATE_TIME DATE_AND_TIME Fecha y hora a las que se solicitó el OB
246
9: Bloques de Organización y “SFC’s” de Control y Gestión
Si desea utilizar OB’s de alarma de retardo, es preciso ejecutar las siguientes tareas:
Los OB’s de alarma de retardo sólo son ejecutados si la CPU se encuentra en estado
operativo RUN. Un rearranque completo (arranque en caliente) y un arranque en frío
borran cualquier evento de arranque de un OB de alarma de retardo. Una alarma de
retardo que todavía no está activada, puede anularse con la SFC 33 “CAN_DINT”.
El tiempo de retardo se mide con una precisión de 1 ms y una vez transcurrido puede
ser inmediatamente arrancado de nuevo. Un tiempo de retardo puede arrancarse otra
vez inmediatamente después de transcurrido y con ayuda de la SFC 34 “QRY_DINT”
es posible determinar el estado de una alarma de retardo.
■■ Cuando surge el próximo evento de arranque para una alarma de retardo antes
de que haya finalizado la ejecución del correspondiente OB de alarma de retardo.
Con ayuda de las SFC’s 39 hasta 42 es posible bloquear o retardar y habilitar de nuevo
alarmas de retardo.
247
Autómatas programables avanzado
Como nombres de variables se han elegido los nombres por defecto del OB 20.
248
9: Bloques de Organización y “SFC’s” de Control y Gestión
La tabla siguiente muestra los valores preajustados para las bases de tiempo y las
prioridades de los OB’s de alarma cíclica.
Con ayuda de las SFC’s 39 hasta 42 es posible bloquear o retardar y habilitar de nuevo
las alarmas cíclicas.
Los márgenes de valores para los parámetros cadencia temporal, prioridad y desfase,
pueden consultarse en los datos técnicos de su CPU. La modificación de los
parámetros se realiza por parametrización con STEP 7.
249
Autómatas programables avanzado
Como nombres de variables se eligieron los nombres por defecto del OB 35.
250
9: Bloques de Organización y “SFC’s” de Control y Gestión
Para cada módulo de señales que debe activar alarmas de proceso se utiliza la
parametrización con STEP 7:
■■ Qué canales y bajo qué condición marginal deben originar una alarma de
proceso.
En los CP’s y FM’s debe emplearse para ello el correspondiente software para el
módulo.
Las prioridades para los diversos OB’s de alarma de proceso se establecen con STEP
7.
251
Autómatas programables avanzado
Con ayuda de las SFC’s 39 a 42 es posible bloquear o retardar y habilitar de nuevo las
alarmas de proceso.
Como nombres de variables se han elegido los nombres por defecto del OB 40.
252
9: Bloques de Organización y “SFC’s” de Control y Gestión
253
Autómatas programables avanzado
Como nombres de variables se eligieron los nombres por defecto del OB 81.
B#16#38:Evento saliente.
B#16#39:Evento entrante.
254
9: Bloques de Organización y “SFC’s” de Control y Gestión
Bits 8 a 15
255
Autómatas programables avanzado
La variable (siguiente tabla) muestra qué evento ha provocado el inicio del OB 81.
256
9: Bloques de Organización y “SFC’s” de Control y Gestión
Modos de arranque
Se distinguen los siguientes modos de arranque:
■■ Arranque en caliente.
■■ Arranque en frío.
Descripción
La CPU efectúa un arranque:
■■ Tras la solicitud por una función de comunicación (por comando de menú desde
la unidad PG o por llamada de los bloques de función para comunicaciones 19
“START”, o 21 “RESUME” en otra CPU).
257
Autómatas programables avanzado
258
9: Bloques de Organización y “SFC’s” de Control y Gestión
259
Autómatas programables avanzado
260
9: Bloques de Organización y “SFC’s” de Control y Gestión
261
Autómatas programables avanzado
262
9: Bloques de Organización y “SFC’s” de Control y Gestión
Fecha y hora
La fecha y la hora se indican con el tipo de datos DT. Ejemplo para el 15 de enero de
1995, 10:30 y 30 segundos: DT#1995-01-15-10:30:30.
Informaciones de error
263
Autómatas programables avanzado
264
9: Bloques de Organización y “SFC’s” de Control y Gestión
Hora de notificación.
265
Autómatas programables avanzado
Valores posibles:
B#16#01: Ajustar la hora.
B#16#02: Establecer el estado
horario.
B#16#03: Ajustar la hora y
establecer el estado
horario.
PDT INPUT DT D, L Hora predeterminada.
CORR INPUT INT E, A, M, D, const Valor de corrección (en intervalos 0,5 h).
0= horario de invierno.
1=horario de verano.
ANN_1 INPUT BOOL E, A, M, D, const Hora de notificación:
Informaciones de error
266
9: Bloques de Organización y “SFC’s” de Control y Gestión
Aplicación
Un contador de horas de funcionamiento puede emplearse para las más variadas
aplicaciones:
Margen de valores
■■ CPU con contadores de horas de funcionamiento de 16 bits: de 0 a 32.767
horas.
267
Autómatas programables avanzado
Para leer todos los contadores de horas de funcionamiento de 32 bits de una CPU, se
utiliza la SFC 51 “RDSYSST” con SZL_ID=W#16#0132 e INDEX=W#16#000B (para
los contadores de horas de funcionamiento 0 a 7), o bien INDEX=W#16#000C (para
los contadores de horas de funcionamiento 8 a 15).
Área de
Parámetro Declaración Tipo de datos Descripción
memoria
NR INPUT BYTE E, A, M, D, L, Numero del contador de horas de
Const funcionamiento (valores posibles:
0 a 15).
MODE INPUT BYTE E, A, M, D, L, Identificación de petición:
Const
0: ller (el estado se registra en CQ y
el valor actual en CV) Si el contador
de horas de funcionamiento
funciona más de (2 elevado a 31)
-1 horas, se para en el último valor
representable y muestra el mensaje
de error “Desbordamiento”.
2: parar.
268
9: Bloques de Organización y “SFC’s” de Control y Gestión
Compatibilidad con programas desarrollados para una CPU con contadores de horas
de funcionamiento de 16 bits.
Informaciones de error
269
Autómatas programables avanzado
Informaciones de error
270
9: Bloques de Organización y “SFC’s” de Control y Gestión
Tipos de Área de
Parámetro Declaración Descripción
datos memoria
NR INPUT BYTE E, A, M, D, L La entrada NR contiene el número del
Const contador de horas de funcionamiento
que se desea arrancar o parar. Valores
posibles: 0 hasta 7.
S INPUT BOOL E, A, M, D, L La entrada S arranca o para el contador
Const de horas de funcionamiento. El contador
se para poniendo el estado de la señal a
“0” y se arranca poniendo la señal a “1”
RET_VAL OUTPUT INT E, A, M, D, L Si ocurre un error al procesar la función
el valor de retorno contiene un código de
error.
Informaciones de error
271
Autómatas programables avanzado
Tipo de Área de
Parámetro Declaración Descripción
datos memoria
NR INPUT BYTE E, A, M, D, L. La entrada NR contiene el número del
Const contador de horas de funcionamiento que
se desea arrancar o parar. Posibles valores
0 hasta 7.
CQ OUTPUT BOOL E, A, M, D, L. La salida CQ indica si el contador de horas
de funcionamiento está en marcha o
parado. El estado de señal “0” indica que el
contador está parado, mientras que el “1”
señaliza que está en marcha.
CV OUTPUT INT E, A, M, D, L. La salida CV emite el valor actual del
contador.
RET_VAL OUTPUT INT E, A, M, D, L. Si ocurre un error el valor actual de función
el valor de retorno contiene un código de
error.
Informaciones de error
Código de error
Explicación
(W#16#...)
0000 No hay error.
8080 Número del contador de horas de funcionamiento es erróneo.
8081 Desbordamiento del contador de horas de funcionamiento.
8xyy Información general sobre errores, consulte evaluación de errores con el
parámetro de salida RET_VAL.
272
9: Bloques de Organización y “SFC’s” de Control y Gestión
Aplicación
El cronómetro del sistema se puede utilizar por ejemplo para cronometrar operaciones
formando la diferencia de los valores de retorno de dos llamadas sucesivas de la SFC
64.
Informaciones de error
La SFC 64 “TIME_TCK” no ofrece informaciones de error.
273
Autómatas programables avanzado
Sugerencia
La alarma horaria se puede parametrizar con STEP 7 y activar en el programa de
usuario (SFC 30 “ACT_TINT”).
274
9: Bloques de Organización y “SFC’s” de Control y Gestión
Si… Entonces…
Se ajusta de nuevo una alarma horaria (llamada Se anula automáticamente la alarma horaria vigente.
de la SFC 28: SET_TINT)
Se anula la alarma horaria (llamada de la SFC 28, Se borran la fecha y la hora de arranque. Por consi-
CANT_TINT) guiente, la alarma horaria se debe ajustar nuevamen-
te antes de activarla
El OB de alarma horaria no existe en el momento Se operan automáticamente un error de prioridad; es
de efectuar la llamada decir, el sistema iparativo se llama el OB 85.
275
Autómatas programables avanzado
La tabla siguiente muestra los diferentes efectos del parámetro “Ejecución”. Este
parámetro se ajusta con STEP 7 o con la SFC 28 “SET_TINT” (parámetro de entrada
PERIOD).
Consecuencias:
276
9: Bloques de Organización y “SFC’s” de Control y Gestión
Tipo de Área de
Parámetro Declaración Descripción
datos memoria
OB_NR INPUT INT E,A,M,D,L Número del OB que se activa en el instante
Const SDT (fecha y hora de arranque) + múltiplo del
periodo PERIOD (OB10 a OB17).
SDT INPUT DT D,L. Fecha y hora de arranque:
W#16#1001= diaria.
W#16#1201= semanal.
W#16#1401= mensual.
W#16#1801= anual.
277
Autómatas programables avanzado
Informaciones de error
278
9: Bloques de Organización y “SFC’s” de Control y Gestión
Parámetros
Informaciones de error
279
Autómatas programables avanzado
Área de
Parámetro Declaración Tipo de datos Descripción
memoria
OB_NR INPUT INT E,A,M,D,L, Número del OB que se desea activar
Const (habilitar) (OB10 a OB17).
RET_VAL OUTPUT INT E,A,M,D,L Si ocurre un error al procesar la
función, el parámetro actual RET_VAL
contiene un código de error.
Informaciones de error
280
9: Bloques de Organización y “SFC’s” de Control y Gestión
Informaciones de error
281
Autómatas programables avanzado
Nƒ Abreviatura Función
SFC 0 SET_CLK Ajustar la hora.
SFC 1 READ_CLK Leer la hora.
SFC 2 SET_RTM Ajustar el contador de horas de funcionamiento.
SFC 3 CTRL_RTM Arrancar/parar el contador de horas de funcionamiento.
SFC 4 READ_RTM Leer el contador de horas de funcionamiento.
SFC 5 GADR_LGC Determinar la dirección base lógica de un módulo.
SFC 6 RD_SINFO Leer la información de arranque del OB actual.
SFC 7 DP_PRAL Disparar una alarma de proceso en el maestro DP.
SFC 9 EN_MSG Habilitar avisos de bloque, de símbolo y del sistema de control.
SFC 10 DIS_MSG Bloquear avisos de bloque, de símbolo y del sistema de control.
SFC 11 DPSYC_FR Sincronizar grupos de esclavos DP.
SFC 12 D_ACT_DP Activar y desactivar esclavos DP.
SFC 13 DPNRM_DG Leer los datos de diagnóstico (diagnostico de esclavo) de un esclavo DP.
SFC 14 DPRD_DAT Leer los datos coherentemente de un esclavo normalizado DP.
SFC 15 DPWR_DAT Escribir datos coherentemente en un esclavo normalizado DP.
SFC 17 ALARM_SQ Generar avisos de bloque acusable.
SFC 18 ALARM:S Generar avisos de bloque siempre acusados.
SFC 19 ALARM_SC Determinación del estado de acuse del último aviso entrante.
SFC 20 BLKMOV Copiar variable.
SFC 21 FILL Inicializar campo.
SFC 22 CREAT_DB Crear bloque de datos.
SFC 23 DEL_DB Borrar un bloque de datos.
SFC 24 TEST_DB Comprobar un bloque de datos.
SFC 25 COMPRESS Comprimir la memoria de usuario.
SFC 26 UPDAT_PI Actualizar la imagen de proceso de las entradas.
SFC 27 UPDAT_PO Actualizar las salidas en los módulos de periferia.
SFC 28 SET_TINT Ajustar alarma horaria.
SFC 29 CAN_TINT Anular alarma horaria.
SFC 30 ACT_TINT Activar alarma horaria.
SFC 31 QRY_TINT Consultar alarma horaria.
SFC 32 SRT_DINT Arrancar alarma horaria.
282
9: Bloques de Organización y “SFC’s” de Control y Gestión
Nƒ Abreviatura Función
SFC 33 CAN_DINT Anular alarma horaria.
SFC34 QRY_DINT Consultar estado de alarma de retardo.
SFC 35 MP_ALM Disparar alarma de multiprocesamiento.
SFC 36 MSK_FLT Enmascarar evento de error síncrono.
SFC 37 DMSK_FLT Desenmascarar evento de error síncrono.
SFC 38 READ_ERR Leer registro de estado de eventos.
SFC 39 DIS_IRT Bloquear el tratamiento de nuevos eventos de alarma y de error asíncrono.
SFC 40 Habilitar el tratamiento de eventos de alarma y de error asíncrono de mayor
EN_IRT
prioridad.
SFC 41 Retardar el tratamiento de eventos de mayor prioridad de alarma y de error
DIS_AIRT
asíncrono.
SFC 42 Habilitar el tratamiento de eventos de alarma y de error asíncrono de mayor
EN_AIRT
prioridad.
SFC 43 RE_TRIGR Redisparar el tiempo de ciclo de vigilancia.
SFC 44 REPL_VAL Transferir valor de sustitución a ACU 1.
SFC 46 STP Poner la CPU en STOP.
SFC 47 WAIT Retardar el tratamiento.
SFC 48 SNC_RTCB Sincronizar de relojes esclavos.
SFC 49 LGC_GADR Determinar el slot correspondiente a una dirección lógica.
SFC 50 RD_LGADR Determinar todas las direcciones lógicas de un módulo.
SFC 51 RDSYSST Leer lista de estado del sistema.
SFC 52 WR_USMSG Escribir eventos de diagnósticos de usuario en el búfer de diagnóstico.
SFC 54 RD_DPARM Leer parámetros predefinidos.
SFC 55 WR_PARM Escribir parámetros dinámicos.
SFC 56 WR_DPARM Escribir parámetros predefinidos.
SFC 57 PARM_MOD Parametrizar módulo.
SFC 58 WR_REC Escribir el registro en la periferia.
SFC 59 RD_REC Leer el registro en la periferia.
SFC 60 GD_SND Emisión programada de un paquete GD.
SFC 61 GD_RCV Recepción programada de un paquete GD recibido.
SFC 62 Consultar el estado del enlace asociado a la instancia de SFBx de
CONTROL
comunicación.
SFC 63 AB_CALL Llamar bloque ensamblador.
SFC 64 TIME_TCK Time Tick – Leer el cronómetro del sistema.
SFC 65 X_SEND Enviar datos a un interlocutor fuera del equipo S7 propio.
SFC 66 X_RCV Recibir datos de un interlocutor fuera del equipo S7 propio.
SFC 67 X_GET Leer datos de un interlocutor fuera del equipo S7 propio.
SFC 68 X_PUT Escribir datos en un interlocutor fuera del equipo S7 propio.
283
Autómatas programables avanzado
Nƒ Abreviatura Función
SFC 69 Interrumpir un enlace existente con un interlocutor fuera del equipo S7
X_ABORT
propio.
SFC 70 GEO_LOG Determinar la dirección inicial del módulo.
SFC 71 LOG_GEO Determinar el slot que corresponde a una dirección lógica.
SFC 72 I_GET Leer datos de un interlocutor dentro del propio equipo S7.
SFC 73 I_PUT Escribir datos en un interlocutor dentro del equipo S7 propio.
SFC 74 Interrumpir un enlace existente con un interlocutor dentro del equipo S7
I_ABORT
propio.
SFC 78 OB_RT Averiguar tiempo de ejecución de programa OB.
SFC 79 SET Activar mapa de bits en el área de periferia.
SFC 80 RSET Desactivar mapa de bits en el área de periferia.
SFC 81 UBLKMOV Copiar una variable ininterrumpible.
SFC 82 CREA_DBL Crear un bloque de datos en la memoria de carga.
SFC 83 READ_DBL Leer un bloque de datos residente en la memoria de carga.
SFC 84 WRIT_DBL Escribir en un bloque de datos residente en la memoria de carga.
SFC 85 CREA_DB Crear un bloque de datos.
SFC 87 C_DIAG Determinar el estado actual de los enlaces.
SFC 90 H_CTRL Influir en los procesos de los sistemas H.
SFC
100 SET:CLKS Ajustar la fecha y hora.
SFC
101 RTM Gestionar contadores de horas de funcionamiento.
SFC
102 RD_DPARA Leer parámetros predefinidos.
SFC
103 DP_TOPOL Determinar la topología de bus en un sistema maestro DP.
SFC
104 CiR Forzar el proceso CiR.
SFC
105 READ_SI Leer recursos de sistema ocupados de forma dinámica.
SFC
106 DEL_SI Habilitar recursos de sistema ocupados de forma dinámica.
SFC
107 ALARM_DQ Crear avisos de boque acusables.
SFC
108 ALARM_D Crear avisos de bloque siempre acusados.
284
9: Bloques de Organización y “SFC’s” de Control y Gestión
Nƒ Abreviatura Función
SFC
114 PN_DP Actualizar interconexiones DP.
SFC
126 SYNC_PI Actualizar sincrónicamente la imagen de proceso parcial de las entradas.
SFC
127 SYNC_PO Actualizar sincrónicamente las imágenes del proceso parcial de las salidas.
285
Autómatas programables avanzado
Nƒ Abreviatura Función
SFB 0 CTU Contaje adelante.
SFB 1 CTD Contaje atrás.
SFB 2 CTUD Contaje adelante y atrás.
SFB 3 TP Generar un impulso.
SFB 4 TON Generar un retardo a la conexión.
SFB 5 TOF Generar un retardo a la desconexión.
SFB 8 USEND Emisión no coordinada de datos.
SFB 9 URCV Recepción no coordinada de datos.
SFB 12 BSEND Emisión de datos por paquetes.
SFB 13 BRCV Recepción de datos por paquetes.
SFB 14 GET Leer datos de una CPU remota.
SFB 15 PUT Escribir datos en una CPU remota.
SFB 16 PRINT Enviar datos a una impresora.
SFB 19 START Realizar un rearranque completo (arranque en caliente) o un arranque en
frío en un equipo remoto.
SFB 20 STOP Pasar a STOP un equipo remoto.
SFB 21 RESUME Efectuar un rearranque en un equipo remoto.
SFB 22 STATUS Consultar un estado de un equipo remoto.
SFB 23 USTATUS Recibir el estado de un equipo remoto.
SFB 29 HS_COUNT Contador (high Speedy counter, integrated function).
SFB 30 FREQ_MES Frecuencímetro (frequency meter, integrated function).
SFB 31 NOTIFY_8P Generar avisos de bloques sin indicación de acuse.
SFB 32 DRUM Realizar un mecanismo de movimiento intermitente.
SFB 33 ALARM Generar avisos de bloque sin indicación de acuse.
SFB 34 ALARM_8 Generar avisos de bloque sin valores asociados para ocho señales.
SFB 35 ALARM_8P Generar avisos de bloque con valores asociados para ocho señales.
SFB 36 NOTIFY General avisos de bloque sin indicación de acuse.
SFB 37 AR_SEND Enviar datos de archivado.
SFB 38 HSC_A_BX Contador A/B (integrated function).
SFB 39 POS ‘ Posicionamiento (integrated function).
SFB 41 CONT_C1) Regulación continúa.
SFB 42 CONT_S 1)
Regulación discontinua.
286
9: Bloques de Organización y “SFC’s” de Control y Gestión
Nƒ Abreviatura Función
SFB 43 PULSEGEN1) Formación de impulsos.
SFB 44 ANALOG 2)
Posicionar con salida analógica.
SFB 46 DIGITAL2) Posicionar con salida digital.
SFB 47 COUNT 2)
Forzar contador.
SFB 48 FREQUENC2) Forzar frecuencímetro.
SFB 49 PULSE2) Forzar modulación de ancho de pulso.
SFB 52 RDREC Leer registro.
SFB 53 WRREC Escribir registro.
SFB 54 RALRM Recibir alarma.
SFB 60 SEND_PTP2) Enviar datos (ASCII, 3964 (R)).
SFB 61 RCV_PTP ) 2
Recibir datos (ASCII, 3964 (R)).
SFB 62 RES_RCVB2) Borrar búfer de recepción (ASCII, 3964 (R)).
SFB 63 SEND_RK ) 2
Enviar datos (RK 512).
SFB 64 FETCH_RK2) Recibir datos (RK 512).
SFB 65 SERVE_RK ) 2
Recibir y preparar datos (RK 512).
SFB 75 SALRM Enviar alarma al maestro DP.
SFB 81 RD_DPAR Leer parámetros predefinidos.
287
9: Bloques de Organización y “SFC’s” de Control y Gestión
RESUMEN
■
La mayor parte de los sistemas de control industriales son sistemas en lazo cerrado y
ello entraña un cierto peligro de oscilación o de excesiva lentitud de respuesta, si no
se elige convenientemente el regulador acorde con las características de la planta que
se desea regular.
■
La acción proporcional en un sistema en lazo cerrado permite acercar la salida al valor
de consigna, pero deja siempre un error permanente sin corregir, tanto mayor cuanto
menor es la constante proporcional.
■
Los reguladores comerciales o aquellos incorporados a los autómatas programables
suelen ser reguladores de propósito general que permiten superponer los tres tipos de
acciones básicas.
■
Algunos procesos complejos requerirán, pues, un estudio más profundo para poder
obtener dicho regulador óptimo.
■ (Footnotes)
289