Tema3 Tecnologias
Tema3 Tecnologias
Tema3 Tecnologias
Variables binarias. Combinaciones binarias. Operaciones de asignacin. Temporizadores y contadores. Operaciones digitales. Ejemplos.
Fundamentos de Automtica
Variables binarias
La mayora de las aplicaciones de automatizacin evolucionan mediante seales (entradas y salidas) de tipo binario. Lenguajes de programacin de autmatas orientados al tratamiento de entradas y salidas digitales. STEP7 de Siemens permite programar en: Diagrama de contactos: KOP. Plano de funciones: FUP. Lista de instrucciones: AWL. Programacin grfica: S7-GRAPH. Variables binarias bsicas (1 bit): Entrada digital: E. Salida digital: A. Marca (posicin de memoria): M. Tratamiento especfico de variables analgicas.
AND
b 0 1 0 1
f=a.b f 0 0 0 1
a b a 0 0 1 1
OR
b 0 1 0 1
f=a+b f 0 1 1 1
NOT
a 0 1 f 1 0
a b a 0 0 1 1
XOR
b 0 1 0 1
f f 0 1 1 0
S1 S2
S3 S4 L3
NA
L1
L2
FUP
E 0.1 E 3.6 & A 7.1 = M 3.0 = & M 8.7 = M 5.1 = A 0.0 = E 3.4 A 7.1 M 8.7 & A 1.2 =
AWL
U E 0.1 U E 3.6 = A 7.1 = M 3.0 UN E 1.1 U M 3.0 = M 8.7 = M 5.1 = A 0.0
A 0.0
E 3.4
A 7.1
M 8.7
A 1.2
AWL
E 3.4
A 8.7 M 5.1 E 3.4 A 7.1 M 8.7 1 A 8.7 = M 5.1 = O E 3.4 O A 7.1 ON M 8.7 = A 8.7 = M 5.1
A 7.1 M 8.7
A 7.1
E 4.3
AWL
U E 3.4 U M 8.7 O( UN A 7.1 U E 4.3 ) = A 8.7 = M 5.1
FUP
E 3.4 M 8.7 A 7.1 E 4.3 & & 1 A 8.7 = M 5.1 =
A 7.1
E 4.3
AWL
U( O E 3.4 ON A 7.1 ) U( O M 8.7 O E 4.3 ) = A 8.7 = M 5.1
FUP
E 4.3 M 8.7 A 7.1 E 3.4 1 1 & A 8.7 = M 5.1 =
AWL
U E 3.4 UN M 8.7 O( UN E 3.4 U M 8.7 ) = A 8.7 = M 5.1 X E 3.4 X M 8.7 = A 8.7 = M 5.1
FUP
E 3.4 M 8.7 E 3.4 M 8.7 & & 1 A 8.7 = M 5.1 = E 3.4 M 8.7 XOR A 8.7 = M 5.1 =
10
API
A 1.0
API
A 1.0
API
A 1.0
E 0.1
E 0.0 E 0.1
&
A 1.0 =
E 0.0 E 0.1
&
A 1.0 =
E 0.0 E 0.1
&
A 1.0 =
11
En el registro acumulador VKE (RLO: Resultado Lgico de la Operacin), de 1 bit, se almacena el resultado de las combinaciones binarias El resultado de la primera instruccin de una combinacin binaria (resultado de la primera consulta) se almacena sin estar sujeto a una operacin lgica: No existe diferencia en programar la primera instruccin como O o U en AWL. Al ejecutar las siguientes instrucciones de la combinacin, el valor previo del RLO se combina con el resultado de la instruccin y se genera un nuevo RLO. Cuando se ejecuta la ltima instruccin de una combinacin, el RLO se fija. A continuacin se programan las instrucciones que utilicen ese RLO. Instrucciones que permiten modificar el RLO NOT: Invierte el valor del RLO. CLR / SET : Fija el valor del RLO a 0 / 1 sin condiciones previas. La siguiente instruccin de consulta es tratada como una primera consulta.
12
0 0 0 0 0 0 1 0
0 0 0
1 1 1 0 0 0 1
1 0 0
1 0 1 1 1 1 1
1 1 1
Operaciones de asignacin: =, R, S
13
Asignar = : Se transfiere el contenido del RLO a la direccin especificada. Cuando el RLO cambia, el estado de seal de esa direccin tambin cambia. Activar (set) S : Si RLO=1, la direccin especificada se fija al estado de seal 1 y permanece en ese estado hasta que sea desactivada (reseteada) por otra instruccin. Desactivar (reset) R : Si RLO=1, la direccin especificada se fija al estado de seal 0 y permanece en ese estado hasta que sea activada (seteada) por otra instruccin.
E 3.4 A 7.1 M 8.7 A 1.2 S E 3.4 A 8.7 R M 8.7 E 3.4 M 8.7 1 A 8.7 R O E 3.4 O M 8.7 R A 8.7 E 3.4 A 7.1 M 8.7 & A 1.2 S U E 3.4 U A 7.1 UN M 8.7 S A 1.2
14
E 0.0
A 1.0 S SR Q E 0.0 S
E 0.1 R E 0.1 R Q
Ejemplo programacin
15
Trasvase de lquidos entre depsitos: Cada depsito dispone de vlvulas de entrada y salida, y detectores de nivel mximo y mnimo. Las operaciones de llenado y vaciado son independientes.
E 0.2 E 0.3 A 1.0 S E 0.3 A 1.0 R E 0.1 E 0.4 A 1.1 S E 0.4 A 1.1 R U E 0.2 UN E 0.3 S A 1.0 U E 0.3 R A 1.0 U E 0.1 U E 0.4 S A 1.1 UN E 0.4 R A 1.1 E 0.2 E 0.3 E 0.3 & & A 1.0 S A 1.0 R A 1.1 S A 1.1 R
&
&
Evaluacin de flancos
16
En numerosas ocasiones es ms interesante conocer cuando una seal cambia de estado (flanco), que el propio estado. Se utiliza una marca auxiliar que representa el valor en el ciclo anterior. Flanco de subida o positivo FP: Paso de 0 a 1.
17
Trabajan con bytes (8 bits), palabras (16 bits) y dobles palabras (32 bits): Carga / Transferencia de datos. Comparacin. Operaciones matemticas. Operaciones lgicas. Desplazamiento / Rotacin. En la CPU existen memorias auxiliares (registros), denominadas acumuladores, en las cuales se almacenan los operandos y el resultado de la operacin. El nmero de acumuladores depende del modelo de CPU: SIEMENS S7-300 posee 2 acumuladores de 32 bits cada uno, denominados ACU1 y ACU2. ACU1 es el acumulador principal, donde se devuelve el resultado de la operacin. ACU2 almacena el contenido previo del ACU1, cuando en este ltimo se escribe un nuevo valor. Existe tambin un bit de desbordamiento (OV: overflow).
18
MW3: Bytes 3-4 de la memoria de marcas (16 bits). AD12: Bytes 12-13-14-15 de la memoria de salidas (32 bits). -312: Nmero con signo (16 bits). L#523123: Nmero con signo (32 bits). C#215: Nmero sin signo en BCD (16 bits). 2#1010100101100001: Valor binario (16 bits). B#16#3A: Valor hexadecimal (8 bits). W#16#BF5D: Valor hexadecimal (16 bits). DW#16#BF03A50D: Valor hexadecimal (32 bits). -1.3e+3: Nmero real en coma flotante IEEE (32 bits). 3.14: Nmero real (32 bits).
19
Carga L: Copia el contenido de un byte, palabra o doble palabra de memoria al ACU1. El contenido previo de ACU1 pasa a ACU2. L EB 4 , L -129 , L B#16#3A ,
Instruccin
X X X
ACU1
X X X X X Y X 0 0 0 0 0 0 0 0 B Y X F Y X 0
ACU2
Y X 3 Y X A Y X 5 Y X 0 Y X D
L DW#16#BF03A50D L C#215
Cargas especiales: L Z3: Valor actual de contaje del contador 3 a ACU1, en binario.
LC Z3: Valor actual de contaje del contador 3 a ACU1, en BCD. L T6: Valor actual de temporizacin del temporizador 6 a ACU1, en
binario, sin base de tiempo. LC T6: Valor actual de temporizacin del temporizador 6 a ACU1, en BCD, con base de tiempo.
Fundamentos de Automtica Programacin de Autmatas con E/S Digitales Grao en Enxeera Mecnica
20
Transferencia T: Copia el contenido de ACU1 a un byte, palabra o doble palabra de una zona de memoria. No se modifica el contenido de ACU2. T MW 80 , T AD 25 , T DBD2 , El nmero de bytes copiados de ACU1 depender del tamao del destino.
Instruccin
bit 31
ACU1
AB9
T AB9 T AW9 T AD9 MB6 MB6 MB6
AB10
AB11
AB12
Temporizadores: Introduccin
21
Presentan una secuencia de estados con valores 0 y 1 a lo largo del tiempo: Distintos tipo de temporizadores en funcin de dicha secuencia. rea especfica en la memoria del API: Se reserva una palabra de 16 bits para cada operando de temporizador. Cada modelo de CPU dispone de una cantidad determinada de temporizadores, fijada por el tamao de esta zona de memoria. Se disparan (arrancan) mediante la evaluacin de una condicin especfica: Flanco de subida (paso de 0 a 1 de una seal). En estado RUN se ejecuta una funcin de actualizacin de palabras de temporizacin: Disminuye en una unidad un valor de temporizacin dado en el intervalo indicado por la base de tiempos hasta alcanzar el valor 0. El valor de temporizacin se puede cargar en diversos formatos, con un valor mximo de temporizacin de 9.990 seg. (2 horas-46 min.-30 seg.). Existen mdulos de temporizador por hardware.
22
El valor de temporizacin se puede especificar en los siguientes formatos Formato de tiempo: S5T#aHbMcSdMS, con H horas, M minutos, S segundos, MS milisegundos y a, b, c, d definidos por el usuario
S5T#328S 328 segundos = 5 minutos y 28 segundos. Seleccin automtica de la base de tiempos: S5T#5M28S S5T#328S
Formato binario: w#16#txyz, con t la base de tiempos (0 10 mseg., 1 100 mseg., 2 1 seg., 3 10 seg.) y xyz el valor de temporizacin en BCD (entre 000 y 999).
w#16#2328 328 seg.=5 minutos y 28 segundos. Base w#16#1057 5.7 segundos. tiempos w#16#0570 5.7 segundos.
X X Valor temporizacin en BCD
NO todos los formatos se pueden utilizar en todas las formas de representacin del programa.
23
El temporizador seleccionado arranca, E 7.5 tomando el valor 1, cuando se produce un flanco de subida en la entrada E 7.5. T 1.3 8 Si se produce un flanco de bajada en la A entrada E 7.5 antes de que haya transcurrido el intervalo programado, el 3 seg. < 3 seg. temporizador se para, y pasa a valor 0. Un flanco de subida en la entrada R finaliza la funcin de temporizacin actual.
T8 E 7.5 S_IMPULS S Q TV R E 5.7 DUAL DEZ A 1.3 E 7.5 S5T#3S E 5.7 T8 S_IMPULS S DUAL TW R DEZ Q A 1.3 = U E 7.5 L S5T#3S SI T8 E 5.7 U T8 RA T8 = 1.3 U T8 = A 1.3
S5T#3S
24
3 seg.
3 seg.
> 3 seg.
25
26
E 7.5
A 1.3
3 seg.
> 3 seg.
Contadores: Introduccin
28
Permiten almacenar, incrementar y decrementar un valor. rea especfica en la memoria del API: Se reserva una palabra de 16 bits para cada operando de contaje. Cada modelo de CPU dispone de una cantidad determinada de contadores, fijada por el tamao de esta zona de memoria. Las funciones asociadas (inicializacin, incremento, decremento) se disparan mediante la evaluacin de una condicin especfica: Flanco de subida (paso de 0 a 1 de una seal). El valor de contaje se establece entre 0 y 999 en binario (11 1110 0111). Existen mdulos de contaje rpido por hardware.
Contadores: Operaciones
29
Inicializacin: Carga el valor inicial de contaje, habitualmente como constante en BCD (C#58), en el contador seleccionado. Incremento: Aumenta en una unidad el valor de contaje hasta llegar a 999. Al alcanzar dicho lmite superior dejar de incrementarse. Decremento: Disminuye en una unidad el valor de contaje hasta llegar a 0. Al alcanzar dicho lmite inferior dejar de decrementarse. Consulta: Devuelve un 1 siempre que el valor de contaje sea distinto de 0.
E 5.7 Z4 SZ C#58 Z4 ZV E 10.0 Z4 Z4 ZR A 3.1 Z4 E 10.0 E 5.7 C#58 E 3.3 Z4 SZ CV Z4 ZV Z4 ZR A 3.1 = U E 5.7 L C#58 S Z4 U E 3.3 ZV Z4 U E 10.0 ZR Z4 UN Z4 =A 3.1
E 3.3
30
Se pueden agrupar en un nico bloque (slo en FUP y KOP) todas las operaciones posibles sobre un contador. Un flanco de subida en la entrada S ajusta el valor del contador al valor de contaje prefijado en la entrada ZW. Zn Un flanco de subida en la entrada ZV incrementa en ZAEHLER una unidad el valor de contaje hasta llegar a 999. ZV Un flanco de subida en la entrada ZR decrementa en ZR una unidad el valor de contaje hasta llegar a 0. S DUAL Si las entradas ZV y ZR tienen un flanco de subida, DEZ ZW se procesan las dos operaciones y el valor de contaje se mantiene invariable R Q Un flanco de subida en la entrada R ajusta el valor del contador a 0. Siempre que el valor del contador sea distinto de 0, la salida Q se encuentra a 1.
31
Comparan el contenido del ACU2 con el contenido del ACU1 segn los tipos de comparacin siguientes: ==I: ACU2 es igual a ACU1 (16 bits).
<>I: ACU2 es diferente a ACU1 (16 bits). >I: ACU2 es mayor que ACU1 (16 bits). <I: ACU2 es menor que ACU1 (16 bits). >=I: ACU2 es mayor o igual que ACU1 (16 bits). <=I: ACU2 es menor o igual que ACU1 (16 bits).
L MW 5 L MW 23 <=I
0 1 0 0 1 1 1 0 0 0 1 1 1 1 0 0 ACU2 ACU1 0 0 1 0 1 1 0 1 0 1 1 0 1 1 0 0 ACU1 0 RLO
32
Combinan el contenido de ACU1 y ACU2: El resultado se deposita en el ACU1, permaneciendo inalterado el ACU2. +I, +D, +R: Sumar ACU1 y ACU2 (enteros 16 - 32 bits, real 32 bits).
-I, -D, -R: Restar ACU1 de ACU2 (enteros 16 - 32 bits, real 32 bits). *I, *D, *R: Multiplicar ACU1 y ACU2 (enteros 16 - 32 bits, real 32 bits). /I, /D, /R: Dividir ACU2 por ACU1 (enteros 16 - 32 bits, real 32 bits).
En caso de desbordamiento se activa el bit de estado OV (overflow).
L MW 5 L MW 23 +I
0 1 0 0 1 1 1 0 0 0 1 1 1 1 0 0 ACU1 ACU2 0 0 1 0 1 1 0 1 0 1 1 0 1 1 0 0 ACU1 0 1 1 1 1 0 1 1 1 0 1 0 1 0 0 0 ACU1
Ejemplos (I)
La cinta puede ponerse en marcha o pararse, mediante los pulsadores correspondientes, desde cualquiera de sus extremos. El sensor S5 detiene la cinta cuando un paquete alcanza el final de la cinta.
E 3.3 E 3.5 E 3.4 E 3.6 E 3.7 A 5.5 R A 5.5 S E 3.3 E 3.5 E 3.4 E 3.6 E 3.7 1 A 5.5 R 1 A 5.5 S O E 3.3 O E 3.5 S A 5.5 O E 3.4 O E 3.6 ON E 3.7 R A 5.5
33