T04-Programación de Autómatas
T04-Programación de Autómatas
• Direccionamiento de la memoria.
• Leguajes de programación de Step7 (TIA PORTAL)
• Operaciones binarias.
• Operaciones de memorización.
• Símbolos.
• Evaluación de flancos.
• Operaciones digitales.
• Operaciones auxiliares.
• Temporizadores y contadores.
• Operaciones organizativas de salto.
• Programación modular.
• Ejercicios.
• Bibliografía
E(I): Entradas.
A(Q): Salidas.
M : Marcas. (volátiles y no-volátiles, parametrizable)
D : Datos.
T : Temporizadores.
Z(C) : Contadores.
Constantes: TRUE, FALSE, +3100, -1.5e+34, #2, B#, W#,
L#, S5T#, C#, ...
Además
OB, FC, FB, DB: Módulos organizativos.
CPU IM
y
0.0 4.0 8.0 12.0 16.0 20.0 24.0 28.0
fuente de a a a a a a a a
alimentación (emisor)
3.7 7.7 11.7 15.7 19.7 23.7 27.7 31.7
E 0.0
U E 0.0
&
E 0.1
U E 0.1
E 0.0 E 0.1 A 4.0 ≥1
O
E 0.2 A 4.0
E 0.2 E 0.3 & U E 0.2
=
E 0.3
U E 0.3
= A 4.0
// Instrucciones
BEGIN
IF E0.0=1 then
A0.0:=1;
A0.1:=1;
ELSE
AB0:=0;
END_IF;
END_ORGANIZATION_BLOCK
A6.7
EW8 Operación Operando Comentario
A7.0
A7.7
AW0 U %E 8.1 // A %I 8.1
E11.7 E13.7
Posición en memoria
AI5/AO2 DI16/DO16 DI16/DO16
Tipo de operando del operando
4
10 10
10 10
10
4
10
4 10 10
11
11
11
11
Esquema eléctrico
Diagrama de funciones (FUP)
S3 S5 E 5.0 >=1
(E 5.0)
S4
(E 8.1)
E 7.1 = A 1.2
OR
(E 7.1) E 8.1
Operaciones binarias
L3 (A 1.2)
Diagrama de contactos (KOP)
= A 1.2
E 5.0 A 8.1
E 8.1 M 7.1
S1 S2 S1 S2 S1 S2
I1.0
E 1.0 E
I1.1
1.1 I1.0
E 1.0 I1.1
E 1.1. E
I1.0
1.0 E
I1.1
1.1
Controlador programable Controlador programable Controlador programable
A 4.0 A 4.0 A 4.0
Software
E 1.0 E 1.1 A 4.0 E 1.0 E 1.1 A 4.0 E 1.0 E 1.1 A 4.0
KOP
FUP
E 1.1 A 4.0 E 1.1 A 4.0 E 1.1 A 4.0
A 8.0 X E 0.4
E 0.4 XOR X E 0.5
=
E 0.5 = A 8.0
U(
O %E 0.0 U %E 0.0
E0.0 A1.0 S %A 1.0
O %A 1.0
U %E 0.1
)
E0.1 UN %E 0.1 R %A 1.0
A1.0 = %A 1.0
E0.0
S %A 1.1
Parar
U %E 0.1
O %E 0.0
Simple
A4.1 A4.3
E0.3 E0.5
A4.0
Tanque 1 Tanque 2
E0.4 E0.6
A4.2 A4.4
E0.0 E0.1 E0.2
Tq1 => Tq2 Tq2 => Tq1 PARAR
A4.1 A4.3
E0.3 E0.5
A4.0
Tanque 1 Tanque 2
E0.4 E0.6
A4.2 A4.4
E0.0 E0.1 E0.2
Tq1 => Tq2 Tq2 => Tq1 PARAR
Llamada S Pulsador S
U “Sensor S” %E 10.5
Pulsador B R “Subir” %A 4.0
Sensor S
U “Llamada B” %E 10.0
O “Pulsador B” %E 10.2
UN “Sensor B” %E 10.4
Llamada B S “Bajar” %A 4.1
Llamada S Pulsador S
U “Sensor S” %E 10.5
Pulsador B R “Subir” %A 4.0
Sensor S
U “Llamada B” %E 10.0
O “Pulsador B” %E 10.2
UN “Sensor B” %E 10.4
Llamada B S “Bajar” %A 4.1
= %A 4.0
%M 1.0 %M 1.1
KOP N P
Nº Ciclo 1 2 3 4 5 6 7 8 9 10 11 12 13
%M 1.0 %M 1.1
%E 1.0 %M 1.1 %A 4.0 FUP N P
KOP
& >=1
%M 0.0 %M 0.1
%M 0.0 %M 0.1
%M 0.0 o = %M 0.1 o =
VARIANT S7-1500
ACU1 ACU2
L %EW 10
T %MW 27
Transferencia
desde ACU1
Ejemplo:
Área de marcas
%MW27
Acción que se realiza al
ejecutar una instrucción T
L %EW 90 0 0 0 0 0 0 1 1 0 1 1 0 1 1 0 0 AK2
ACU2-L
L W#16#F0E9 1 1 1 1 0 0 0 0 1 1 1 0 1 0 0 1 ACU1-L
UW 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 ACU1-L
L %EW 90 0 0 0 0 0 0 1 1 0 1 1 0 1 1 0 0 AK2
ACU2-L
AK2
L Z3 0 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 ACU1-L
+I 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 ACU1-L
L %EW 90 0 0 0 0 0 0 1 1 0 1 1 0 1 1 0 0 AK2
ACU2-L
AK2
L Z 3 0 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 ACU1-L
<I RLO = 0
= %A 1.2 A 1.2 = 0
OPERACIÓN RESULTADO
ACUMULADOR 2 ACUMULADOR 1
DE LÓGICO
(ACU2) (ACU1)
COMPARACIÓN (RLO)
RLO del paréntesis: La pila de paréntesis almacena los bits RB, RLO y OR
de la palabra de estado además de un código que especifica que tipo de
instrucción lógica ha abierto el paréntesis. Tiene un tamaño de 8 bytes y, por
lo tanto, el máximo anidamiento es de 8 niveles.
ISA - Vigo 2019 Programación de Autómatas
→
45
Programación básica: Conversión de datos y manipulación del acumulador
0 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 AK1
ACU1
SLW 3
0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 0 ACU1
0 0 1 1 0 1 1 1 1 0 0 0 0 0 0 0 ACU1
SRW 4
0 0 0 0 0 0 1 1 0 1 1 1 1 0 0 0 ACU1
0 1 1 1 0 0 0 1 1 0 0 1 1 1 0 0 ACU1
AK1
INVI
1 0 0 0 1 1 1 0 0 1 1 0 0 0 1 1 ACU1
0 1 0 1 1 0 0 1 1 1 0 0 0 1 0 1 ACU1
NEGI
1 0 1 0 0 1 1 0 0 0 1 1 1 0 1 1 ACU1
IEC
Temporizadores y Contadores
Simatic
IEC
Simatic
QD ← (CV ≤ 0)
FIN
& Z5_DB
%M50.1 A
B P
CU %MW6
%M50.0 A &
B N CD
CV %MW6
LD
PV
R
E – Entrada de disparo
Simatic
---------------------------------- t SI
TP
SV
Impulso prolongado t
TOFF
Retardo a la desconexión t SA
TON
SE
Retardo a la conexión t
----------------------------------- t SS
Reset
FC1
IEC_COUNTER en la sección "Static" de un módulo FB
• Declaración como variable local del tipo IEC_TIMER e
Q
TW TW TW
DUAL
Q
PT PT PT PT
ET
PULSADOR
RC RC A 4.0
AC AC A 4.1
RP
VC VC A4.2 A 4.2
VP
RP A 4.5 A 4.5
PULSADOR VP A 4.6
E 0.0
3s 2s 5s 2s 2s
RC A 4.0
AC A 4.1
VC A 4.2
RP A 4.5 A 4.5
U #TP1.Q
VP A 4.6
= %A 4.1
O #TP3.Q 3s 5s
O( O #TP2.Q
U #TP4.Q O #TP3.Q
U %M 7.1 O #TP4.Q
) O #TP5.Q
= %A 4.6 = %A 4.0
UN #TP3.Q UN %A 4.0
UN #TP4.Q UN %A 4.1
= %A 4.5 = %A 4.2
ISA - Vigo 2019 Programación de Autómatas 60
simbólica (“meta:”).
– SPA <meta> : Salto incondicional a una meta
– SPB <meta> : Salto condicionado si RLO=1
– SPZ <meta> : Salto si resultado de operación es 0
– SPN <meta> : Salto si resultado distinto de 0
– SPP <meta> : Salto si signo positivo
– SPM <meta> : Salto si signo negativo
– SPO <meta> : Salto si desbordamiento (overflow)
INICIO U E 0.0
SPB LAB1
U A 4.0
SI E0.0=1 NO U E 0.0
M1.2 ← E0.3 A4.1 ← A4.0 & E0.0 = A 4.1
SPA LAB2
LAB1: U E 0.3
A4.2 ← M1.0
= M 1.2
INICIO
FIN
OB 1
parámetros
• CC : Llamada a FC sin parámetros, BE
FC 1
condicionada a que RLO=1
FC 21
• CALL : Llamada incondicional a FC o FB, BE
con o sin parámetros
BE
• BE(BEA) : Fin de bloque incondicional FB 5
Properties 1500
OBs are called by the operating
system of the controller.
Recommendation
Encapsulate the different program parts
which should maybe be replaceable from controller to controller, into several Main OBs.
Avoid the communication between the different Main OBs. They can then be used
independent of each other. If you nevertheless exchange data between the individual
main OBs, use the global DBs.
Divide all program parts that belong to each other into folders and store them for
reusability in the project or global library.
ISA - Vigo 2019 Programación de Autómatas 68
Programación modular: Funciones (FC) y sistema (SFC)
OB1 FC5
U %E 2.0 U %E 0.0
U %E 2.3 UN %E 0.1
= %A 4.0 = %A 4.2
UC FC5 BE
...
Ejercicio: AWL
OB 1 OB 1
OB 1 U %E 0.0 O %E 0.0
U %E 0.0 ZV Z 1 O %E 0.1
Ejercicios
CC FC 5 U %E 0.1 ZV Z 1
ZV Z 1 L Z 1
FC 5 L Z 1 L 5
= %A 4.7 L 10 >I
>I = %A 4.7
= %A 4.7
• Bibliografía principal:
– Siemens, Manuales SIMATIC S7-300 y S7-1500, Ed. SIEMENS AG 2004-
2017.
– IEC, Norma “IEC 61131-3: Programmable Controllers – Programming
Languages”, Ed. IEC.
– E. Mandado, J. Acevedo, C. F. Silva, I. Armesto, J. L. Rivas y J. M. Nuñez,
Bibliografía
• Bibliografía adicional:
– A. Porras y A.P. Montero, “Autómatas Programables. Fundamento. Manejo.
Instalación y Práctica”, Ed. Mc. Graw-Hill.
– J.P. Romeda et al., “Problemas Resueltos con Autómatas Programables”, Ed.
Paraninfo.
Anexo:
%Z<n>
Su inicialización, incremento o
decremento se realizan mediante la
evaluación del flanco de subida de
una condición lógica.
→
ISA - Vigo 2019 Programación de Autómatas 82
U M 0.0 ( )
Inicialización constante. Ej. 37
Operación Operando
Cuenta inicial (0..999)
L C# 37
Inicialización variable. Ej. 153
Valor BCD (0..999)
L MW 160
0 0 0 1 0 1 0 1 0 0 1 1
15 14 13 12 11 10 9 8 7… …0
Palabra del Contador 1 0 1 0 0 0 0 1 0 0 1 0 0 1 1 1
en la memoria
Bits de estado Valor del contador en binario natural
S %Z 1 b14=0
Q=b14≠b15 Bits de control de la activación, de la habilitación, y del contaje
ascendente y descendente
U E 3.1
ZV Z 1
...
U E
ZV Z
3.2
1
?
ISA - Vigo 2019 Programación de Autómatas 85
Ejemplo: Evaluación de flancos y Contaje
E – Entrada
SI – Impulso
t
SV – Impulso prolongado
t
SA – Retardo a la desconexión
t
SE – Retardo a la conexión
t
U M 0.0 ( )
Temporización constante. Ej. 4.2 s H: horas
M: minutos
Operación Operando S: segundos
MS: milisegundos
0 1 0 0 0 0 0 1 0 0 0 0 1 0 Actualización
asíncrona
Base de tiempo 15 14 13 12 11 10 9 8 7… …0
1 0 1 0 0 0 0 1 0 0 1 0 0 1 1 1
Palabra del temporizador
Base de Valor del tiempo
en la memoria Bits de tiempo en binario natural
Bits de control de la habilitación y el
S<?> %T 1 estado
T>0→b15=1 arranque
I, V, A, E, S ↵ Q=b14≠b15
SI : Impulso 1
E 0.1
U %E 0.1 0
1
L S5T#42S500MS T1
0
SI %T1 42.5 s
SV : Impulso prolongado 1
E 3.0
U %E 3.0 0
L S5T#25S 1
T3
SV %T3 0 25 s 25 s
L S5T#700MS 1
T2
SE %T2 0 0,7 s 0,7 s
1
L S5T#4S T3
SS %T3 0
4s 4s
SA : Retardo a la desconexión.
1
U %E 3.4 E 3.4
0
L S5T#8S
1
SA %T2 T2
0 8s 8s
TW BI
Salidas
Q : estado (booleano)
R BCD
BI(DUAL): valor del tiempo actual (int)
BCD (DEZ): valor del tiempo actual (BCD)
FUP %T<n>
Tipo
Tipo
S_PULSE : impulso (SI)
S BI
S_PEXT : impulso prolongado (SV)
TW BCD
S_OFFDT : retardo desconexión (SA)
S_ODT : retardo conexión (SE)
R Q
S_ODTS : retardo conexión memoria (SS)
1 UN %M 2.0
M 2.0
L S5T#1S
0
SE %T7
1
T 7 = M 2.0
1s 1s 1s U %T7
0 = %M 2.0
1
4s 4s
T 1
0
1
2s 2s 2s
T 2
0
1
A 4.0 2s 4s
0
PULSADOR
RC RC A 4.0
AC AC A 4.1
RP
VC VC A4.2 A 4.2
VP
RP A 4.5 A 4.5
PULSADOR VP A 4.6
E 0.0
3s 2s 5s 2s 2s
U T 1
= A 4.1
O T 3
O( O T 2
U T 4 O T 3
U M 5.1 O T 4
) O T 5
= A 4.6 = A 4.0
UN T 3 UN A 4.0
UN T 4 UN A 4.1
= A 4.5 = A 4.2
ISA - Vigo 2019 Programación de Autómatas 99