Escolar Documentos
Profissional Documentos
Cultura Documentos
PROGRAMACIN S-7
Programacin S7 2
Tamao (bits)
SIMBOLO
COMENTARIO
BOOL
{0,1}
INT
16
con signo
DINT
32
con signo
BYTE
sin signo
WORD
16
sin signo
DOUBLE WORD
32
DW
sin signo
REAL
32
notacin nmero
con signo
DOUBLE WORD
32
DW
sin signo
S5TIME
16
S5T
aHbbMccSdddMS
Tmax: 2H46M30S (9990s)
TIME
32
Hora
DATE_AND_TIME
64
DT
Fecha y hora
alfanumrico
CHAR
STRING
ABCD
Programacin S7 3
CONSTANTES / FORMATO
Nmero
Tamao
(bits)
Formato
Rango
Ejemplo
12
16
L 12
L#
2
231
100000
32
L L#10000
0,0053
32
[1.171038, 3.410+38]
L 5.3E-3
AF
B#16#
28
216
232
L B#16#AF
FF99
16
W#16#
FF99AFAF
32
DW#16#
Binario
16
2#
Binario
32
2#
5m3seg
16
S5T#
9990 seg.
L S5T# 5M3S
BCD
16
C#
0-999
L C#890
15
216
232
L W#16#FF99
L DW#16#FF99AFAF
L 2#0010101
L 2#100101000101
Programacin S7 4
MODIFICADOR
OPERANDO
COMENTARO
U, O, X
Variable lgica
1 consulta
Booleano
Asignacin
Booleano
=
U, O, X
N, (
Booleano
Pone a 1 si RLO=1
Booleano
Pone a 0 si RLO=1
NOT
RLO
CLR
RLO
SET
RLO
SAVE
RB
Guarda RLO en RB
FP
Marca flanco
Flanco de subida
FN
Marca flanco
Flanco de bajada
Programacin S7 5
A1.0
A1.0 = Expresin
Expresin
Mflanco
A1.0
A1.0 = Expresin
Expresin
E1.0
Expresin
A1.0
POS
Mflanco
E1.0
Expresin
A1.0
NEG
Mflanco
A1.0
M10.0
Expresin
NOT
Bloque conector
A1.0 = Expresin
M 10.0 = Expresin
Programacin S7 6
EJEMPLO
CONTACTOS (KOP)
E1.0
M100.0
E1.3
P
E1.1
M100.1
N
E1.2
A1.6
AWL S7
U E1.0
U E1.0
FP M100.0
FP M100.0
= M100.6
= M100.6
U M100.6
U E1.1
U E1.3
FN M100.1
O(
= M100.7
U E1.1
FN M100.1
U M100.6
= M100.7
U E1.3
U M100.7
UN E1.2
U M100.7
UN E1.2
= A1.6
= A1.6
Programacin S7 7
PALABRA DE ESTADO
RB
A1
BIT
A0
Nombre
OV
OS
OR
STA
RLO
Significado
/ER
RLO
Resultado lgico
STA
OR
Combinacin Y = 1
OS
OV
A0
A1
RB
Resultado Binario
9-15
Sin uso
/ER
Programacin S7 8
OB1
U ==0
S M 1.0
U BIE
S M1.1
==0
<>0
A1 distinto de A0
>0
<0
>=0
==0 OR >0
<=0
==0 OR <0
UO
BIE
RB=1
OS
OS=1
OV
OV=1
Programacin S7 9
RB
A1
A0
OV
OS
OR
L 5
L 0
/I
U UO
= A1.0
OB1
Programacin S7 10
MB 0
MB 1
MW 0
MD 0
MW 1
MB 2
1
MD 1
MB 3
MB 4
L DW#16#FF00FF00
T MD 0
Programacin S7 11
Otras
Operaciones de Desplazamiento y Rotacin
Operaciones de conversin
Operaciones de redondeo etc.
Programacin S7 12
CARGA Y TRANSFERENCIA
OPERADORES
OPERADOR CARGA: L
OPERADOR TRANSFERENCIA: T
L EW10
EW10
ACU1
ACU2
MW10
T MW10
32 bits
No modifica
ACU1
Programacin S7 13
OPERACIONES ARITMTICAS
DOS OPERANDOS IMPLCITOS
A1, A0
ACU2
Operador
<OPERADOR>
Tamao(bits)
ACU1
ACU1
Comentario
(+,-,/,*) I
16
(+,-,/,*) D
32
MOD
32
(+,-,/,*) R
32
+ <entero>
16 / 32
OVERFLOW?
Programacin S7 14
OPERACIONES ARITMTICAS
OVERFLOW
VALOR ACU1 EN
RELACIN CON 0
Programacin S7 15
EJEMPLOS
OPERACIONES ARITMTICAS
SUMA CTE ENTERA (ACU1)
L 5
L 8
+13
ACU1=21, ACU2=5
A1=1, A0=0
MULTIPLICACIN 16 bits
L 1000
L 100
ACU1=100000 A1=1,
A0=0, OV=1, OS=1
*I
SUMA 16 bits
MULTIPLICACIN 16 bits
L -8
L 6
+I
ACU1=-2
L 1000
A1=0, A0=1
L 100
*I
ACU1=100000
A1=1, A0=0, OV=1, OS=1
L 200
ACU1=1000
DIVISIN 16 bits
L 5
A1=1, A0=0, OV=0, OS=1
*I
L 2
L 6
/I
ACU1=0x20000
A1=1, A0=0
Programacin S7 16
OPERACIONES ARITMTICAS
UN OPERANDO IMPLCITO
ACU1
<OPERADOR>
ACU1
OB1
L 9.0E10
SQR
UN OV
SPB OK
BEA
OK: T MW10
Programacin S7 17
OPERACIONES DE COMPARACIN
A1
A0
ACU2
<OPERADOR>
Operador
ACU1
RLO
Tamao(bits) Comentario
(==,<>,>,<,>=,<=) I
16
(==,<>,>,<,>=,<=) D
32
(==,<>,>,<,>=,<=) R
32
ACU-1 y
ACU-2 no
varan
Programacin S7 18
EJEMPLOS
OPERACIONES COMPARACIN
L 5
Bits A1 y A0 de la palabra de
estado
L 8
>=I
ACU1=8, ACU2=5
A1=0, A0=1, RLO=0
ACU1
ACU2
L 5
L 8
A1
A0
Los valores de A1 y A0 no
dependen de la operacin de
comparacin en concreto,
sino del tamao relativo
del valor del ACU2 y del
ACU1 entre s.
ACU1=8, ACU2=5
A1=0, A0=1, RLO=1
<=I
L 9.7E+6
L 2
<I
ACU1=2, ACU2=9.7E+6
A1=1, A0=0, OV=0, OS=0
Programacin S7 19
EJEMPLOS (II)
OPERACIONES COMPARACIN
L 5
L 5
L 8
<I
= A 1.0
A1.0 = 1
L 8
U >=0
(5<8)
A1.1 = 1
(A1=0,A0=0)
= A 1.1
L EW0
L EW2
<I
= A 1.0
U ==0
= A1.1
Programacin S7 20
EJEMPLOS (III)
OB1
Primera consulta
S0
1
S1
C>3
C=C+1
2
C<=3
15
OB1
//
//
U E2
U E2
ZV Z1
ZV Z1
// Transicin
// Transicin
L Z1
L Z1
L 3
L 3
>I
>I
SPB _MA
S E1
U E2
R E2
S E15
R E2
U <=0
SPA FIN
S E15
_MA: NOP 0
U E2
S E1
FIN: NOP 0
//
R E2
//
Programacin S7 21
TRUE
(RLO = 1)
Tras Op.
Aritmtica
Tras Op.
Comparacin
==0
ACU1=0
ACU2 == ACU1
<>0
A1 distinto de A0
ACU1<>0
>0
ACU1>0
<0
ACU1<0
>=0
==0 OR >0
ACU1>=0
<=0
==0 OR <0
ACU1<=0
UO
BIE
RB=1
OS
OS=1
OV
OV=1
A1,A0->ACU1
A0->ACU1,A1->ACU2
Programacin S7 22
ACU2
OPERADOR
Operador Tamao(bits)
ACU1
ACU1
Comentario
UW
16
OW
16
XOW
16
UD
32
OD
32
XOD
32
L MW10
L MW12
UW
T MW14
Programacin S7 23
<OPERADOR>
<NBITS> +
ACU1
ACU1
OPERADORES
SLW SRW SLD SRD
RLD RRD
NEGI
NEGD
(sin arg.)
0.7
0.0
1 1 1 1 0 0 0 0
OB1
L W#16#F0F0
SLW
1 0 0 0 0 0 0 0
Programacin S7 24
CONVERSIN DE TIPOS
UN OPERANDO IMPLCITO
ACU1
<OPERADOR>
ACU1
OB1
L 9
T MW10
L MW10
ITD
T MD 20
DTR
T MD 30
SQRT
T MD40
TRUNC
T MW 50
Programacin S7 25
EJEMPLOS-ESCALABILIDAD
1-DETECCIN SIMULTNEA DE FLANCOS
0
P0
30
P1
P30
3-ARRANQUE EN FRIO
31
P31
Programacin S7 26
EJEMPLOS-ESCALABILIDAD
1-FLANCO DE 32 VARIABLES
ED10
Entrada (Pi)
MD100
Flancos
MD10
Pulsos
Flanco
positivo
Memoria
Flanco
negativo
L MD 100
L MD 100
L ED 10
L ED 10
XOD
XOD
L ED 10
L MD 100
UD
UD
T MD 10
T MD 10
L ED 10
L ED 10
T MD 100
T MD 100
Programacin S7 27
EJEMPLOS-ESCALABILIDAD
Ecuacin de
activacin
U E0
U S1U E0
L DW#16#FFFFFFFF
U S1
S1
T MDSPBN
1 NOAC
R E0
//Activacin
1
31
32
DW#16#FFFFFFFF
T MD 1
MD 1
R E0
NOAC: NOP 0
Programacin S7 28
EJEMPLOS-ESCALABILIDAD
DIVERGENCIA AND
Desactivacin simultnea
Transicin a E33
MD 1
L MD 1
L DW#16#FFFFFFFF
1
31
32
==D
SPBN NOAC
U S1
= E33
S1
Activacin
33
L DW#16#0
T MD1
NOAC: NOP 0
S2
34
//Retencin
U E33
UN E34
Retencin
= E33
//
Programacin S7 29
EJEMPLOS-ESCALABILIDAD
3-ARRANQUE / REARME
EN FRIO
M 0.0
OB100
UN M1.0
UN M1.1
1
UN M1.2
//
OB100
SET
S M0.0
R Act.1
R Act.2
//
R Act.N
S M0.0
R Act.1
R Act.2
OB100
//
32
R Act.N
MD1
SET
S M0.0
L DW#16#0
T MD1
EN CALIENTE
OB102
L MD 1
L DW#16#0
==D
S M0.0
R Act.1
R Act.2
//
R Act.N
OB102
L MD 1
L DW#16#0
==D
SPBN _001
S M0.0
L DW#16#0
L AD1
_001:NOP 0
//
Programacin S7 30
INSTRUCCIONES DE CONTROL
INDICE
CONTROL DE BLOQUES
CALL, UC, CC, BEA, BEB
Programacin S7 31
SPA 0E01
Programacin S7 32
INCONDICIONAL
SPA : Salto incondicional (absoluto)
LOOP : Bucle FOR
SPL : Switch-case
CONDICIONAL
Operaciones lgicas / comparacin (RLO)
Operaciones aritmticas (A1, A0)
Errores (OV / OS / A1=1y A0=1)
Programacin S7 33
OB1
MW 10: INDICE
Decrementa el
contenido del
ACU1 y salta a
la meta NEXT,
si el ACU1-L >0
L 1
T MW 20
L 5
NEXT: T MW 10
L MW 20
*I
T MW 20
L MW 10
LOOP NEXT
MW
MW 20
20 == ?120
Programacin S7 34
NOP 0
SET
= A2.0
[SPA FIN]
[BEA]
SEG0:
SET
= A1.0
[SPA FIN]
SEG1:
SET
= A1.1
[SPA FIN]
SEG2:
SET
= A1.2
[SPA FIN]
FIN:
CLR
Programacin S7 35
SALTO CONDICIONAL
SABER
Operador
Condicin
SPB
RLO=1
RLO =1 / ER=0
SPBN
RLO=0
RLO =1 / ER=0
SPBB
RLO=1
SPBNB
RLO=0
SPBI
RB=1
ER=0
SPBIN
RB=0
ER=0
Programacin S7 36
EJEMPLOS
IMPLEMENTACION-AWL
SPB: Switch-Case
Divergencia
OR
0
Pesar
P<30Kg
P>=30Kg
1
Divergencia
OR
L EW10
L EW10
L 30
L 30
>=I
>=I
= Maux
SPB _MAY
//Act Etapa1
EW10
Peso (Kg)
M1.0
Etapa 0
M1.1
Etapa 1
M1.2
Etapa 2
//Act. Etapa2
S M1.1
S M1.2
R M1.0
R M1.0
//Act Etapa2
SPA CONT
U M1.0
//Act. Etapa1
UN Maux
_MAY:
S M1.2
R M1.0
S M1.1
R M1.0
_CONT:
NOP 0
//...
Programacin S7 37
EJEMPLO (II)
BLOQUE
COMPARADOR
SPB: Switch-Case
L EW 0
L EW 2
==I
SPB _IGU
EW 0
EW 0 = EW 2
M1.0
EW 0 > EW 2
M1.1
EW 0 < EW 2
M1.2
EW 2
U >0
SPB _MAY
U <0
SPB _MEN
EJERCICIO
_IGU:
= M1.0
SPA FIN
_MAY:
FIN:
L 10
L 12
<>I
= M1.2
NOP 0
U E1.0
U(
= M1.1
SPA FIN
_MEN:
EW0 = EW2
)
= M1.0
Programacin S7 38
SALTO CONDICIONAL
DEPENDENCIA BITS: A1,A0 (Op. Aritmticas / Comparacin)
Operador
Resultado
(Id. asociado) Op. Aritmtica
Resultado
Op. Comparacin
SPZ (=0)
ACU1=0
ACU2 = ACU1
SPN (<>0)
ACU1<>0
SPP (>0)
ACU1>0
SPPZ (>=0)
ACU1>=0
SPM (<0)
ACU1<0
SPMZ (<=0)
ACU1<=0
Programacin S7 39
EJEMPLO (III)
SPB: Switch-Case
BLOQUE
COMPARADOR
L EW 0
L EW 2
==I
SPB _IGU
SPP _MAY
EW 0
EW 0 = EW 2
EW 0 > EW 2
M1.1
EW 0 < EW 2
M1.2
EW 2
SPM _MEN
_IGU:
= M1.0
EW0 = EW2
SPA FIN
_MAY:
= M1.1
SPA FIN
_MEN:
FIN:
= M1.2
NOP 0
M1.0
Programacin S7 40
SALTO CONDICIONAL
GESTIN ERRORES
Operador
Palabra de estado
SPO
Salta is OV=1
SPS
Salta si OS=1
OS = 0
SPU
Salta si el resultado no es
vlido (i.e. 3/0)
SIG:
NOP 0
//
Programacin S7 41
EJEMPLOS
GESTIN DE ERRORES
FC-1
SGTE:
SPS SGTE
L MW 12
L MW 14
*I
L MW 16
/I
SPS OVER
SPP _>0
SPA _COM
OVER:
NOP 0
...
//Tratamiento Overflow
SPA _COM
_>0:
_COM:
NOP 0
...
NOP 0
...
//Programa comn
Programacin S7 42
Operador
Palabra
Estado
Operador
Palabra
(Id. asociado) Estado
SPB
RLO =1 / ER=0
SPZ (=0)
SPBN
RLO =1 / ER=0
SPN (<>0)
SPBB
SPP (>0)
SPBNB
SPPZ (>=0)
SPBI
SPM (<0)
SPBIN
SPMZ (<=0)
SPO
SPU
SPS
OS=0
Programacin S7 43
Sistema Operativo
UC
FBX
FCX
DBX
FBX
DBX
Accesible por
cualquier bloque
OB_X
DBY
(global)
FCX
Programacin S7 44
Descripcin
Observaciones
CALL<ID_BLOQUE>
LLamada incondicional
[, <ID_BLOQUE_DATOS>] de un bloque
UC <ID_FUNCION>
Llamada incondicional
de un bloque
No permite paso de
parmetros ni llamadas a
bloques FB
CC <ID_FUNCION>
[RLO=1]
Llamada condicionada
de un bloque
No permite paso de
parmetros ni llamadas a
bloques FB
BE
Fin incondicional de
bloque
(autmata)
BEA
Fin incondicional de
bloque (usuario)
BEB [RLO=1]
Fin condicionado a
RLO=1
Programacin S7 45
E 1.0
E
M 1.0
EO
(500 * 600)
Implementacin
caja
Uso de
bit de
error RB
U E1.0
SPBNB _001
L 500
L 600
*I
Tarea
Objetivo
CALL FC_1
UN OV
SAVE
_001:
U BIE
= M 1.0
OB1
RB=Bit de Error
Error: Nivel bajo
FC1
Programacin S7 46
EJEMPLO
GESTIN DE ERROR MEDIANTE EL BIT RB
Bloque invocante
U M100.0
SPBNB _001
_001:
CALL FC1
FC1
U BIE
L EW 0
= M100.1
L EW 2
*I
SPO _ERR
T MW 1
BLOQUE
MULTIPLICADOR
BEA
_ERR:
M 100.0
EO
M 100.1
EW 0
EW 2
EW 0 * EW 2
MW 1
CLR
SAVE
Programacin S7 47
EJEMPLO (II)
GESTIN DE ERROR MEDANTE EL BIT RB
U M100.0
SPBNB _001
ERROR?
CALL FC1
_001:
U BIE
M100.0=1
M100.1=0
SPBNB _002
CALL FC2
_002:
U BIE
= M100.1
FC1
M 100.0
EO
M 100.1
EW 4
EW 0
EW 2
EO
EW 0 * EW 2
MW 1
EW 6
EW 4 * EW 6
MW 3
Programacin S7 48
TEMPORIZADORES
BLOQUES KOP
TX (0-XXX)
<TIPO>
Habilitacin
FR
Seal de disparo
S
Habilitacin (FR)
Borra el biestable que
detecta el flanco de la
seal de disparo.
[S5T#]
Reset
En consecuencia redispara
el temporizador si se
encuentra la seal de
disparo activada por
nivel.
DU
DE
Binario natural
BCD
TW
R
BOOL
Comparacin de
tiempos intermedios
16 BITS
Programacin S7 49
TEMPORIZADORES (II)
IMPLEMENTACIN AWL
E 2.0
0
FR
T1
<SI>
U
L
MW10
SE
MW12
U
FR
E 2.1
S
SE1
S5T#10s
SE1
U
U
S
R
MOTOR 1
E 2.2
DUAL
DEZ
TW
R
A 4.0
U
U
S
R
(T1 / X 1 / 50 s ) SE1
2
SE1
PRIORIDAD T1 o
Flanco de SE1?
U
FR
U
L
SI
U
R
U
=
L
T
LC
=
E 2.0
T1
E 2.1
S5T#10s
T1
E 2.2
T1
T1
A 4.0
T1
MW10
T1
MW12
//Habilitar
E0
FlancoSE1
E1
E0
E1
S5T#50s
T1
SE1
T1
E1
T1
E2
E1
T1
//
// ACU1_L = 10 segundos
//Pone T1 a 0
//Consulta el estado T1.
//ACU1_L= valor de T1 (binario)
// ACU1_L= valor de T1 (BCD)
Programacin S7 50
Ecuacin
Activacin Etapa 2
P1
U E1
SPBN _002
L S5T#10s
SE T1
1
T1/E1/10s
U
U
S
R
2
P2
_002:
E1
T1
E2
E1
NOP 0
//...
OPCIN
A
OPCIN
OPCINBC
CORRECTO?
CORRECTO?
U E1
UU EE
12
SPBN
_002
SPBN
_002
SPBN
_003
L S5T#10s
L S5T#10s
SECLR
T1
SE
SET1
T1
U U
E1P2
US E1
U T1E1
U T1
S R
E2E2
S E2
R E1
E1
_003: RRNOP
T1 0
_002:
_002:
El temporizador T1 no funciona a
partir de la segunda activacin de la
etapa 1. Hay que mostrarle el cero
NOP 0
FR T1
NOP 0
Programacin S7 51
CONTADORES
BLOQUES KOP
ZX (0-XXX)
<Tipo>
Suma
ZV
Resta
ZR
DU
DE
Seal de carga
[C#]
Habilitacin
Reset
Salida Binario
natural
Salida BCD
S
ZW
Salida lgica
( ==0 falso )
U
FR
U
L
S
U
R
U
=
U
ZV
U
ZR
L
T
LC
T
Habilitacin
Z1
//Habilitar Z1
Carga
C#3
// Carga Z1 con 3 unidades
Z1
Reset
Z1
//Poner Z1 a 0
Z1
A 4.0
//A4.0=Q
Suma
Z1
//Incrementa en una unidad
Resta
//Decrementa en una unidad
Z1
Z1
//ACU1_L= DU
MW10
Z1
//ACU1_L= DE
MW12
FR
R
No aparece en
KOP de Siemens
16 BITS
Programacin S7 52
PASO DE PARMETROS
BLOQUE SUMADOR: FUNCIN
Se usa # para
indicar parmetro
Programacin S7 53
PASO DE PARMETROS
BLOQUE OPERACION NUMRICA: [(A+B)/C]-D
FC1
A
B
C
IN
TEMP
(A+B/C)-D
OUT
RES
FC1
D
L
L
+I
L
/I
T
#A
#B
L
L
-I
T
#Div
#D
#C
//Divisin entera
#Div
#RES
Programacin S7 54
PASO DE PARMETROS
IMPLEMENTACIN AWL
0
SE1
SE1
Tipo IN
MOTOR 1
SE1
S5T#50s
Etapa0
SE1
Etapa1
Etapa2
FC1
Tipo OUT
Motor1
Programacin S7 55
PASO DE PARMETROS
BLOQUE SUMADOR: BLOQUE INVOCANTE
Completar la gestin
del Enable Out