Programacin de los
autmatas programables
Automtica
Representacin de sistemas de
control
Automtica
Representacin de sistemas de
control
Automtica
Representacin de sistemas de
control
Automtica
Representacin de sistemas de
control
Automtica
Representacin de sistemas de
control
Automtica
Representacin de sistemas de
control
Automtica
Automtica
Lenguaje de programacin
Un lenguaje de programacin es el
conjunto de smbolos y textos inteligibles
por la unidad de programacin que le
sirven al usuario para codificar sobre un
cierto autmata las leyes de control
deseadas.
[Balcells]
Automtica
Lenguajes grficos
Las instrucciones se representan mediante smbolos grficos
Automtica
Automtica
Automtica
Asignacin de variables
I124.0
I124.0
Q124.0
Automtica
lgicas
Operaciones de memorizacin
Operaciones de inversin
con flancos
Operaciones de temporizacin y contaje
Automtica
Automtica
Automtica
inglesa
Denominacin alemana
[Modificador] Operando
Automtica
Variables
predefinidas
Operaciones
lgicas
bsicas
Operaciones
con
parntesis
Terminar
una cadena
lgica
Operaciones
con flancos
Entradas
Salidas
Marcas
Carga inicial
Y
NO-Y
O
NO-O
O-exclusiva
NO-O-exclusiva
Y
NO-Y
O
NO-O
O-exclusiva
NO-O-exclusiva
Cerrar parntesis
I, IB, IW, ID
Q, QB, QW,QD
M, MB, MW, MD
A O
A
AN
O
ON
X
XN
A(
AN(
O(
ON(
X(
XN(
)
E, EB, EW, ED
A, AB, AW, AD
M, MB, MW, MD
UO
U
UN
O
ON
X
XN
U(
UN(
O(
ON(
X(
XN(
)
Asignar
Desactivar
Activar
Flanco negativo
Flanco positivo
=
R
S
FN
FP
=
R
S
FN
FP
Automtica
Automtica
I
I
Q
124.0
124.1
124.2
M
I
M
0.0
124.3
0.2
124.5
Automtica
Automtica
Automtica
Tema 6
Programacin de los
autmatas programables
Parte prctica
Automtica
Bit
s
Ejemplo
Descripcin
BOOL
FALSE o TRUE
INT
16
-32768 .. 32767
DINT
32
-231 .. +231 - 1
REAL
32
0.4560
Nmero real
BYTE
0 ..255
Conjunto de 8 bits
WORD
16
0 ..65535
Conjunto de 16 bits
DWORD
32
0 .. 231 -1
TIME
32
T#5d2h2m38s3.5ms
Duracin
DATE
16
D#2002-01-01
Fecha
TIME_OF_DAY
32
TOD#15:35:08.36
Hora del da
S5TIME
16
S5T#2h2m38s
Duracin
DATE_AND_TIME
64
DT#2002-01-01-15:35:08.36
Fecha y hora
CHAR
Carcter
AUTOMATA
Cadena de caracteres
STRING
Automtica
Siemens S7 314C-2DP
Automtica
Concepto de instruccin
Concepto de Instruccin
Instruccin A I124.0
(unidad ms pequea del programa)
124.0
Operacin
Operando
(con qu?)
124.0
Ubicacin
Parmetro
124.0
Direccin byte
Direccin Bit
Automtica
Tipos de datos
Ingls
I
Q
M
P
L
T
C
DB
entrada
salida
marca
periferia (acceso directo)
datos locales
temporizador
contador
mdulo de datos
Automtica
Tipos de datos
Automtica
Tipos de datos
Por defecto (X para DB): Bit.
B: byte (8 bits).
W: palabra (16 bits).
D: palabra doble (32 bits).
Automtica
Direccionamiento simblico
Direccionamiento absoluto
Operando
Ubicacin
en memoria
I
Direccin Direccin
byte
Bit
124 . 0
(I/Q/M/P/L/C/DB)
Direccionamiento simblico
Operando
I 124.0
Smbolo
Bolla_nivel_alto
Automtica
Direccionamiento simblico
Es posible asignar nombre simblico a los siguientes
operandos:
I/Q (E/A)
Entradas/salidas
M, MB, MW, MD
palabra
T y C (T y Z)
Temporizadores y
contadores
Automtica
Q
Automtica
Automtica
Automtica
Automtica
normalmente abierto
Contacto normalmente cerrado
Bobina de rel, salida
Activar salida
Desactivar salida
Desactivar flip-flop de activacin SR
Activar flip-flop de desactivacin RS
Detectar flanco decreciente N
Detectar flanco creciente P
Automtica
Contactos
Automtica
Automtica
Automtica
Automtica
Automtica
Flip-flop de desactivacin
Automtica
Flip-flop de activacin
Automtica
Automtica
Automtica
Tema 6
Programacin de los autmatas
programables
Parte prctica. AWL,
temporizadores y contadores
Automtica
-A
O
OR exclusiva - X
Salida - =
NOT
Activar - S
Desactivar - R
Flip-Flop SR y RS
SET, CLR
Flancos FP, FN
Automtica
AND
A
A
=
I 124.0
I 124.1
Q 124.1
Automtica
AND NOT
AN I 124.0
A I 124.1
= Q 124.1
Automtica
OR
O
O
=
I 124.0
I 124.1
Q 124.1
Automtica
OR NOT
O I 124.0
ON I 124.1
= Q 124.1
Automtica
OR exclusiva
A
I
AN I
O
AN I
A
I
=
Q
124.0
124.1
124.0
124.1
124.2
Equivale a:
X I 124.0
X I 124.1
= Q 124.2
Automtica
NOT
A
I 124.0
A
I 124.1
NOT
=
Q 124.2
Automtica
Activar - Desactivar
A
S
A
R
I 124.0
Q 124.1
I 124.1
Q 124.1
Automtica
Flip-Flop
A
S
A
R
A
=
I 124.0
M 0.0
I 124.1
M 0.0
M 0.0
Q 124.2
Automtica
SET - CLR
SET
=
Q
=
Q
124.0
124.1
CLR
=
Q
=
Q
124.3
124.4
Automtica
A
I 124.0
FP M 0.0
=
Q 124.1
A
I 124.0
FN M 0.1
=
Q 124.2
Automtica
+5
// Carga entero de 16-bit
L#523123 // Carga entero de 32-bit
B#16#EF
// Carga hexadecimal de 8-bit
2#0001_0110_1110_0011
// Carga binario de 16-bit
L TOD#1:10:3.3
// Carga tiempo de 32-bit
AWL
L - Carga
T - Transferencia
T MB0
T AD256
MOVE (KOP)
L y T (AWL)
Automtica
Automtica
Temporizadores
S_SEVERZ. Parametrizar y arrancar temporizador como retardo a la conexin con memoria [S_ODTS]
Automtica
Temporizadores
Automtica
Temporizadores
Valor de temporizacin:
binario
hexadecimal
decimal
Automtica
Temporizadores
S5T#aH_bM_cS_dMS
H
Automtica
Temporizadores
Ejemplos
S5TIME#4S --> 4 segundos
s5t#2h_15m --> 2 horas y 15 minutos
S5T#1H_12M_18S --> 1 hora 12 minutos
y 18 segundos
Automtica
Temporizadores
Base de tiempo
bits
12 y 13 de la palabra de temporizacin
contienen la base de tiempo en cdigo binario
Automtica
Temporizadores
10ms= 9s 990ms
Base 100ms= 1 min 39s 900ms
Base 1s= 16min 39s
Base 10s= 2h 46min 30s
Automtica
Temporizadores
Palabra de temporizacin
bits
0 a 11 almacenan el valor de
temporizacin en BCD
bits 12 a 13 almacenan la base de tiempo en
cdigo binario
Automtica
Temporizadores
[S_PULSE]
[S_PEXT]
[S_ODT]
[S_ODTS]
[S_OFFDT]
Automtica
Temporizadores
[S_PULSE]
[S_PEXT]
[S_ODT]
[S_ODTS]
[S_OFFDT]
Automtica
S_IMPULS
[S_PULSE]
Impulso
Automtica
S_IMPULS [S_PULSE]
Automtica
S_IMPULS [S_PULSE]
Automtica
S_IMPULS [S_PULSE]
A
L
SP
A
R
L
T
LC
T
A
=
I
124.0
S5T#3S
T
1
I
124.1
T
1
T
1
MW
10
T
1
MW
12
T
1
Q
124.1
Automtica
S_VIMP [S_PEXT]
Impulso prolongado
Automtica
S_VIMP
[S_PEXT]
Automtica
S_VIMP [S_PEXT]
A
L
SE
A
R
L
T
LC
T
A
=
I
124.0
S5T#3S
T
1
I
124.1
T
1
T
1
MW
10
T
1
MW
12
T
1
Q
124.1
Automtica
S_EVERZ [S_ODT]
Retardo a la conexin
Automtica
S_EVERZ [S_ODT]
Automtica
S_EVERZ [S_ODT]
A
L
SD
A
R
L
T
LC
T
A
=
I
124.0
S5T#3S
T
1
I
124.1
T
1
T
1
MW
10
T
1
MW
12
T
1
Q
124.1
Automtica
S_SEVERZ [S_ODTS]
Automtica
S_SEVERZ [S_ODTS]
Automtica
S_SEVERZ [S_ODTS]
A
L
SS
A
R
L
T
LC
T
A
=
I
124.0
S5T#3S
T
1
I
124.1
T
1
T
1
MW
10
T
1
MW
12
T
1
Q
124.1
Automtica
S_AVERZ [S_OFFDT]
Retardo a la desconexin
Automtica
S_AVERZ [S_OFFDT]
Automtica
S_AVERZ [S_OFFDT]
A
L
SF
A
R
L
T
LC
T
A
=
I
124.0
S5T#3S
T
1
I
124.1
T
1
T
1
MW
10
T
1
MW
12
T
1
Q
124.1
Automtica
Temporizadores en AWL
Automtica
Contadores
Los contadores tienen reservada un rea
de memoria propia en la CPU.
Dicha rea de memoria reserva una
palabra de 16 bits para cada contador.
La programacin con AWL permite un
mximo de 256 contadores.
Automtica
ZAEHLER [S_CUD]
Incrementar/decrementar
Automtica
ZAEHLER [S_CUD]
Automtica
ZAEHLER [S_CUD]
A
CU
A
CD
A
L
S
A
R
A
=
I
C
I
C
I
C#5
C
I
C
C
Q
124.1
1
124.2
1
124.3
1
124.4
1
1
124.1
Automtica
Z_VORW [S_CU]
Incrementar
Automtica
Z_VORW [S_CU]
Automtica
Z_VORW [S_CU]
A
CU
BLD
A
L
S
A
R
NOP
NOP
A
=
I
C
101
I
C#5
C
I
C
0
0
C
Q
124.1
1
124.3
1
124.4
1
1
124.1
Automtica
Z_RUECK [S_CD]
Decrementar
Automtica
Z_RUECK [S_CD]
Automtica
Z_RUECK [S_CD]
A
CD
BLD
A
L
S
A
R
NOP
NOP
A
=
I
C
101
I
C#5
C
I
C
0
0
C
Q
124.1
1
124.3
1
124.4
1
1
124.1
Automtica
Contadores en AWL
FR Habilitar contador
L Cargar valor actual del contador en ACU 1 en
forma de entero
LC Cargar valor actual del contador en ACU 1
como nmero BCD
R Desactivar contador
S Poner contador al valor inicial
ZV Incrementar contador
ZR Decrementar contador
Tema 6
Programacin de los autmatas
programables
Formatos de representacin
Operaciones complejas
Automtica
3.Formato de representacin
entero
Automtica
Rango:
Byte:
Automtica
3.2 Hexadecimal
(32 bits)
Rango:
Byte:
B#16#0 B#16#FF
Palabra: W#16#0 W#16#FFFF
Doble palabra: DW#16#0 DW#16#FFFFFFFF
Automtica
3.3 BCD
Ejemplo: +310
0000 0011 0001 0000
+
3
1
0
signo: 0000 -> positivo; 1111 -> negativo
Automtica
3.3 BCD
Doble
signo.
Rango: -9999999 9999999
Ejemplo:
L 2#0000_0011_0001_000 //Cargo +310 en
BCD formato en ACU1
LC T1 //Cargo el valor de temporizacin
de T1 en formato BCD en ACU1
Automtica
3.4 Enteros
Automtica
Lmite:
N positivos: 232-1= 2147483647 (El 0 se considera
positivo)
N negativos: 232= -2141483648
Automtica
3.6 Reales
Automtica
3.6 Reales
4.830000e+000
4780000000.0 = L 4.780000e+009
Automtica
4. Operaciones complejas
Operaciones de comparacin
Operaciones aritmticas
Automtica
Automtica
Automtica
Ejemplo:
L MW10
L IW24
>I
= M 2.0
Automtica
Ejemplo:
L MD10
L ID24
>D
= M 2.0
Automtica
Ejemplo:
L MD10
L 1.359E+02
>R
= M 2.0
Automtica
==
<>
>
<
>=
<=
IN1
IN1
IN1
IN1
IN1
IN1
es igual a IN2
es diferente a IN2
es mayor que IN2
es menor que IN2
es mayor o igual a IN2
es menor o igual a IN2
Automtica
Ejemplo:
Automtica
Ejemplo:
Automtica
Ejemplo:
Automtica
Problema de comparadores
La figura muestra un sistema con dos cintas transportadoras y un
rea de almacenamiento temporal (capacidad 100 paquetes) colocada
entre ambas.
La cinta transportadora 1 transporta paquetes al rea de
almacenamiento. Una barrera ptica situada al final de la cinta 1 junto
al rea de almacenamiento determina cuntos paquetes se
transportan a dicha rea.
La cinta transportadora 2 transporta paquetes desde el rea de
almacenamiento a una plataforma de carga donde llegan camiones y
los recogen para suministrarlos a los clientes.
Una barrera ptica situada al principio de la cinta transportadora 2
junto al rea de almacenamiento determina cuntos paquetes
abandonan el rea de almacenamiento para ser transportados a la
plataforma de carga.
Un panel indicador con cinco lmparas seala el nivel del rea de
almacenamiento temporal.
Automtica
Problema de comparadores
BARRERA1
124.1
BARRERA2
VACIO
NO VACIO
I 124.2
Q 124.0
Q 124.1
>= CINCUENTA % Q
124.2
>= NOVENTA %
LLENO
124.3
124.4
Q
Q
Automtica
Automtica
Automtica
Automtica
Automtica
//ACU1=200; ACU2=2
Automtica
L MW0
L MW2
/I //ACU2/ACU1;
L MD0
L MD4
/D
//Cociente
T MD20 //Almacena cociente
L MD0
L MD4
MOD
T MD24 //Almacena resto
Automtica
Automtica
Automtica
Automtica
Ejemplo:
Automtica
Ejemplo:
Automtica
Ejemplo:
Automtica
Ejemplo:
Automtica
Ejemplo:
Una vez activada la entrada I0.0, se multiplica el contenido de las marcas MD0
y MD4 y su resultado se divide entre 7,5. El resultado final se almacena en
QD0.
Automtica
Automtica
Automtica
A1 y A0
OV
OS
Automtica
Automtica
Automtica
Automtica
6. Instrucciones avanzadas
Operaciones de conversin
Operaciones de control de programa
Operaciones de rotacin y desplazamiento
Automtica
de enteros
Conversin de reales
Automtica
Automtica
Automtica
Automtica
6.1.4 Intercambio
CAW: Cambia el orden de los octetos del
ACU1-L (16 bits)
CAD: Cambia el orden de los octetos del
ACU1 (32 bits)
TAK: Intercambia el contenido del ACU1
con el del ACU2.
Automtica
Operaciones de salto
Llamada a funciones o a bloques de
funcin, CALL
Automtica
Automtica
JL
A
JU
NOP
A
=
L
JL
JU
JU
JU
DEF:
CERO:
BEU
...
UNO:
BEU
...
DOS:
BEU
...
I 1.0
AQU
0
I 2.0
Q 3.0
//
//
//
//
//
MB100
DEF
CERO
UNO
DOS
...
...
//
//
//
//
//
cargamos
saltamos
se salta
se salta
se salta
en el ACU1 un byte
a DEF si el valor de ACU1 no est en la lista
a CERO si ACU1 vale 0
a UNO si ACU1 vale 1
Lista de metas
a UNO si ACU1 vale 2
BEU
Automtica
FUNCIONAMIENTO:
El estado de la salida salida Q 124.0 ser:
El estado de la entrada (I 124.0), si el byte de entrada IB 4 vale 0
El estado de la entrada (I 124.1), si el byte de entrada IB 4 vale 1
NORM:
UNO:
DOS:
CONT:
L
JL
IB 4
NORM
JU
JU
CLR
JU
A
JU
A
JU
=
UNO
DOS
CONT
I 124.0
CONT
I 124.1
CONT
Q 124.0
//
//
//
//
//
//
//
//
//
//
//
//
Automtica
FUNCIONAMIENTO:
Segn el contenido de IB0 :
Si 0 => QW4= FFFF
Si 1 => QW4=AAAA
Si 2 => QW4=5555
Si 3 => QW4=0000
Automtica
Ejemplos:
JU
AQUI:
JC
AQUI:
A
JU
NOP
A
=
A
JCN
A
=
NOP
I 1.0
AQU
0
I 2.0
Q 3.0
I 1.0
AQUI
I 2.0
Q 3.0
0
//
//
//
//
//
Automtica
Automtica
OVER1:
OVER2:
NEXT:
IW10
MW12
OVER1
DBW25
Ejemplo:
// Saltar si hay desbordamiento en el producto anterior, OV = 1
MW14
OVER2
MW16
M 4.0
M 4.0
M 4.1
M 4.1
NEXT
M 4.0
M 4.0
NEXT
M 4.1
M 4.1
Automtica
Automtica
Los bits A1 y A0 de la
palabra de estado
indican el estado del
acumulador tras una
operacin
Automtica
RES0:
RES1:
RES2:
NEXT:
L
L
-I
JZ
JM
JUO
AN
S
JU
AN
S
JU
AN
S
JU
AN
S
JU
NOP 0
IW8
MW12
RES0
RES1
RES2
M 4.0
M 4.0
NEXT
M 4.1
M 4.1
NEXT
M 4.2
M 4.2
NEXT
M 4.3
M 4.3
NEXT
Automtica
Automtica
A
BEC
A
=
BEU
A
S
I 1.0
I 2.0
Q 3.0
I 1.1
Q 4.0
Automtica
Cargar n de
iteraciones en
ACU1 L
META: Grupo de
instrucciones
ACU1 L= ACU1 L -1
NO
ACU1 L=0?
SI
Siguiente
instruccin
Automtica
Ejemplo:
PROX:
L +5
T MW 10
L MW 10
LOOP PROX
Automtica
FUNCIONAMIENTO:
Realizar un programa que active el bit del byte de salida QB4 que indique el
valor que haya en el IB0, es decir:
- Si IB0 toma el valor 0, activar el bit 0 de QB124
- Si IB0 toma el valor 1, activar el bit 1 de QB124
- .......
- Si IB0 toma el valor 7, activar el bit 7 de QB124
Para valores no vlidos se apagarn todos los bits de salida
Automtica
FUNCIONAMIENTO:
Se trata de realizar una estructura if ... else if ... else ... que funcione de la
siguiente manera:
Si I 124.0 = 0 e I 124.1 = 1, resta los valores introducidos en las palabras de
entrada IW 4 e IW 6.
Si I 124.0 = 1 e I 124.1 = 0, multiplica los valores introducidos en las palabras
de entrada IW 4 e IW 8.
Si I 124.0 = 1 e I 124.1 = 1, suma los valores introducidos en las palabras de
entrada IW 6 e IW 8.
Si no se da ninguna de las condiciones anteriores, mostrar un 0 en la palabra
de salida QW 4
En todas las acciones anteriores hay que comprobar y actuar del modo y con la
prioridad siguiente:
Si se produce desbordamiento, indicarlo en la salida Q 124.0
Si el resultado es menor de 0, indicarlo en la salida Q 124.1
Si el resultado es igual a 0, indicarlo en la salida Q 124.2 y mostrarlo en la
palabra de salida QW 4
Si no se produce desbordamiento y el resultado es mayor que 0, mostrarlo en
la palabra de salida QW 4
Automtica
Inicio
S
M1.2
I124.0=1
I124.3
No
Q124.1
Q124.2
Fin
M1.0
Q124.0 I124.0
Automtica
Inicio
S
QW2
No
MW5
S
M1.0
I124.0=1
Q124.0=1
No
M1.0
Fin
Automtica
Resolver el siguiente
diagrama de flujo:
Automtica
Automtica
L2
L MB0
==I
S Q4.3
L1
L MB0
==I
S Q4.4
L0
L MB0
==I
S Q4.5
L MB0
LOOP meta
Automtica
Salto absoluto
--(JMP) Salto condicional
--(JMPN) Saltar si la seal es 0
Automtica
Automtica
--(JMP) Salto
condicional
Cuando el RLO de la
combinacin lgica
anterior es "1"
Si un salto condicional
no se ejecuta, el RLO
cambia a "1" despus
de la operacin de
salto.
Automtica
--(JMPN) Saltar si la
seal es 0
Salta cuando el RLO de
la combinacin lgica
anterior es 0"
Si un salto condicional
no se ejecuta, el RLO
cambia a "1" despus
de la operacin de
salto.
Tema 6
Programacin de los autmatas
programables
Tratamiento de seales analgicas
Automtica
Automtica
Conversin en Autmata
Las seales analgicas son convertidas a
valores de voltaje, intensidad o resistencia
normalizados por un transductor.
Ej: Velocidad entre 500 y 1500 rev/min se
traduce a un rango de tensin entre 0-10V.
Automtica
Automtica
Automtica
Automtica
Automtica
Automtica
Tratamiento en Siemens
Automtica
Tratamiento en Siemens
Automtica
Tratamiento en Siemens
Automtica
Una vez que el autmata tiene a su entrada un valor (027648) asociado al transductor que ha traducido el
rango de la variable del sensor hay que programar el
Valor _ real
Valor _ mx Valor _ mn
Entrada Valor _ mn
Rango _ bits
Automtica
Valor _ real
Valor _ mx Valor _ mn
Entrada Valor _ mn
Rango _ bits
Automtica
10
Entrada
27648
Automtica
2.7648e+4
//
//
//
//
//
//
8.000e+1
// Multiplicacin con el nmero real 80 (90-10)
1.000e+1
MD10
Automtica
Automtica
Automtica
Salida(850) 9677
Relacin Salida_aut-Valor_real
Salida
30000
y = 27,64x - 13824
25000
20000
15000
10000
5000
0
-5000
200
400
600
800
1000
1200
1400
1600
Valor_real (rpm)
Automtica
Automtica
Automtica
Bibliografa