Professional Documents
Culture Documents
5
Operaciones
básicas
de
programación
2
Áreas
de
memoria
20/10/14
• La
CPU
ofrece
disNntas
áreas
de
memoria,
incluyendo
entradas
(I),
salidas
(Q),
marcas
(M),
bloque
de
datos
(DB)
y
memoria
temporal
o
local
(L).
• El
programa
de
usuario
accede
a
(lee
de
y
escribe
en)
los
datos
almacenados
en
estas
áreas
de
memoria.
3
3
Tipos
de
datos
20/10/14
• El
Npo
de
datos
especifica
no
sólo
el
tamaño
de
un
elemento
de
datos,
sino
también
la
estructura
de
los
bits
en
los
datos.
4
5
Direccionamiento
Direccionamiento
20/10/14
ི
ཱ
7 0
MB100
MB100
7
0
MW100
MB100
MB101
7
0
6
6
Estructura
del
programa
en
KOP
20/10/14
• KOP
• la
lógica
se
divide
en
unidades
pequeñas
y
de
fácil
comprensión
llamadas
“segmentos"
o
“networks”
20/10/14
• CONTACTOS
IF in THEN
Statement;
• Los
contactos
ELSE son
la
base
de
programación
en
lenguaje
KOP.
Son
elementos
Statement;
Npo
bit
qEND_IF;
ue
pueden
adoptar
los
valores
1
ó
0.
Se
representan
como
abiertos
IF in THEN
Statement;
ELSE
IF inStatement;
THEN
Statement;
END_IF;
ELSE
IF NOT (in) THEN
Statement;
END_IF;
ELSE
8
IF NOT (in) THEN
Statement;
Statement;
END_IF;
8
ELSE
Statement;
Operaciones
lógicas
con
bits
Bobina de relé, salida Bobina de relé negada
20/10/14
• BOBINA
DE
RELÉ
• ︎
︎
︎La
instrucción
"Bobina
● dSi e
sfluye
alida,
corriente
relé”
escribe
un
valor
a través deeunan
un
bobina
bit
de
de salida, el
20/10/14
• FUNCIONES
SET/RESET
• ︎La
acNvación
de
salidas
(áreas
de
memoria)
asociada
a
bobinas
sólo
se
manNene
durante
el
Nempo
que
dure
la
señal
acNvadora.
Es
10
• EJEMPLO
Operaciones
lógicas
con
bits
20/10/14
• AND(SERIE)
Y
OR(PARALELO)
AND
OR
12
12
Ejemplos
de
programación
20/10/14
• La
figura
siguiente
muestra
una
cinta
transportadora
que
se
pone
en
marcha
eléctricamente.
Al
principio
de
la
cinta
transportadora
se
6
6
20DUFKD
23DUR
6 20DUFKD
6 23DUR
encuentran dos pulsadores: S1 para MARCHA y S2 para PARO. Al
6 20DUFKD 6 20DUFKD
6 23DUR 6 23DUR
13
02725B21
13
Ejemplos
de
programación
20/10/14
TEMA
5
OPERACIONES
BÁSICAS
DE
PROGRAMACIÓN
ಯ0DUFKDBL]Tಯ ಯ02725B21ಯ
6
ಯ0DUFKDBGHUಯ
3DURBL]TXLHUGD 02725B21
5
3DURBGHUHFKD
14
14
Ejemplos
de
programación
20/10/14
• TAREA
DE
CONTROL
DE
UNA
PRENSA.
• Una
prensa
con
disposiNvo
de
protección
solo
se
acNvará
con
un
pulsador
START
de
inicio
S3
si
está
cerrada
la
rejilla
protectora.
Este
estado
se
vigila
con
un
sensor
de
rejilla
protectora
cerrada
B1.
• Si
es
así,
se
acciona
una
válvula
distribuidora
5/2
M0
para
el
cilindro
de
la
prensa,
para
que
se
pueda
prensar
un
molde
de
plásNco.
• La
prensa
debe
elevarse
de
nuevo
al
accionar
el
pulsador
de
PARADA
DE
EMERGENCIA
(NC),
al
dejar
de
responder
el
sensor
de
rejilla
protectora
B1
o
al
responder
el
sensor
de
cilindro
B2
reNrado.
PARADA DE
EMERGENCIA
15
15
Las bobinas no tienen que estar necesa
insertar en el centro de un circuito del s
20/10/14
NOT (KOP) lógica negada (FU
• CONTACTO
NOT
• El
contacto
NOT
KOP
invierte
el
estado
lógico
de
la
entrada
de
flujo
InstruccionesEl
de
NOT KOP invierte el estado
decontacto
programación
corriente.
6.1 Instrucciones básicas
• Si
no
fluye
corriente
al
contacto
NOT,
hay
flujo
de
corriente
en
la
salida.
● Si no fluye corriente al contacto NOT
20/10/14
Instrucciones de program
6.1 Instrucciones bá
• CONSULTA
DE
FLANCO
• Bobina
Instrucciones
6.1.1.2 P:
"Consultar flanco de señal ascendente de un operando" y "Consultar fla
• El
bit
ade
signado
"OUT"
es
TRUE
señal descendente de(un verdadero)
operando" cuando
se
detecta
un
flanco
17
17
20/10/14
6.1.4 Comparación
20/10/14
encuentran en un bloque de da
El temporizador TONR dispone adicionalmente de la entrada de reset R.
cada temporizador. Esto reduce
Cree un "Nombre de temporizador" propio para designar el bloque de necesaria para gestionar los tem
• TEMPORIZADORES
datos temporizador y describir el objetivo de este temporizador en el
datos de los temporizadores en
proceso.
• ︎Todos
los
temporizadores
Nenen
base
de
Nempo
de
1ms,
por
lo
temporizador"
que
el
valor
"Nombre de
de
Nempo
puede
introducirse
directamente
La instrucción RT inicializa el tiempo del temporizador indicado. Los temporiz
entrada y sa
Valores TIME
"Nombre de La instrucci
Los valores PT (tiempo predeterminado) y ET (tiempo transcurrido)
Controlador se almacenan
programable S7-1200 en la
112 memoria como enteros dobles con signo que representan
Manual milisegundos.
de sistema, 11/2009, Los datos TIMEtemporizador"
A5E02486683-02
utilizan el identificador T# y pueden introducirse como unidad de tiempo simple "T#200ms" o
como unidades de tiempo compuestas "T#2s_200ms".
----[ RT ]----
20/10/14
• TEMPORIZADORES
• Todos
los
temporizadores
uNlizan
una
estructura
almacenada
en
un
bloque
de
datos
para
mantener
los
datos.
El
bloque
de
20
20
Al colocar instrucciones de tem
Tipo de Tamaño Rangos válidos opción de bloque de datos mult
datos
pueden diferir en las distintas e
Operaciones
lógicas
con
bits
TIME 32 bits T#-24d_20h_31m_23s_648ms hastaT#24d_20h_31m_23s_647ms
20/10/14
encuentran en un bloque de da
Almacenado -2.147.483.648 ms hasta +2.147.483.647 ms
como cada temporizador. Esto reduce
necesaria para gestionar los te
• TEMPORIZADORES
datos de los temporizadores en
Nota
• ElTP:
El
temporizador
Impulso
genera
un
impulso
con
una
duración
rango negativo del tipo de datos TIME indicado arriba no puede utilizarse con las
predeterminada.
instrucciones
Los valores PT (tiempo predeterminado) negativos se
de temporización. Los tempori
ponen a cero cuando se ejecuta la instrucción de temporización. ET (tiempo transcurrido) es entrada y sa
TP: ,1
Cronograma
de impulsos El temporiza
Cree un "No
(7 datos tempo
37 proceso.
"Nombre de La instrucci
4
temporizador"
37 37 37 ----[ RT ]----
20/10/14
de impulsos
(7
• TEMPORIZADORES
37
• TON:
La
salida
Q
del
temporizador
de
retardo
al
conectar
se
acNva
al
cabo
de
un
Nempo
de
retardo
predeterminado.
37 37 37
TON: ,1
Cronograma
de retardo al
conectar
(7
37
4
37 37 22
22
Operaciones
lógicas
con
bits
20/10/14
• TEMPORIZADORES
• TOF:
La
salida
Q
del
temporizador
de
retardo
al
desconectar
se
desacNva
al
cabo
de
un
Nempo
de
retardo
predeterminado.
TOF: ,1
Cronograma
de retardo al
desconectar
(7
37
4
23
37 37
23
TONR: ,1
Cronograma
en el editor.
Al colocar instrucciones de tempo
Operaciones
lógicas
con
bits
opción de bloque de datos multiins
20/10/14
Instrucciones de programación
6.1 Instrucciones básicas
pueden diferir en las distintas estr
encuentran en un bloque de datos
• TEMPORIZADORES
cada temporizador. Esto reduce e
• TONR:
TOF:
Cronograma
La
s,1alida
Q
del
acumulador
de
Nempo
se
acNva
necesaria
al
cabo
para
de
ugestionar
n
los temp
Nempo
de
retardo
predeterminado.
El
Nempo
transcurrido
de retardo al datos deslose
temporizadores en el
desconectar
24
"Nombre de La instrucción
5
temporizador"
24
----[ RT ]----
Cree un "Nombre de te
datos temporizador y d
proceso.
20/10/14
"Nombre de La instrucción RT inici
temporizador"
----[ RT ]----
• TEMPORIZADORES
Parámetro Tipo de datos
• RT:
Inicializa
un
temporizador
borrando
los
datos
de
Nempo
IN Bool
25
25
Operaciones
lógicas
con
bits
20/10/14
• EJEMPLO
2
DE
UTILIZACION
DE
TEMPORIZADORES
• Asociación
de
contactos
a
un
temporizador.
• Al
no
ser
temporizadores
hardware
y
no
exisNr
un
direccionamiento
directo
a
una
zona
de
memoria
específica
para
ellos,
ya
no
es
posible
asignar,
como
se
hacía
en
otros
PLC's,
contactos
a
los
temporizadores
mediante
su
26
26
Operaciones
lógicas
con
bits
20/10/14
• EJEMPLO
3
DE
UTILIZACION
DE
TEMPORIZADORES
• Uso
de
un
solo
temporizador
para
acciones
a
diferentes
valores
de
Mempo.
Lo
visto
anteriormente
requiere
usar
un
temporizador
por
cada
conmutación
temporizada
que
se
desee
realizar.
Es
decir,
si
se
desea
20/10/14
• EJEMPLO
3
DE
UTILIZACION
DE
TEMPORIZADORES
• Opción
1:
Comparar
el
valor
de
una
variable
asignada
a
la
salida
ET
del
temporizador.
28
Operaciones
lógicas
con
bits
20/10/14
• EJEMPLO
3
DE
UTILIZACION
DE
TEMPORIZADORES
• Opción
2:
Comparar
el
valor
de
la
salida
ET
del
temporizador.
• De
igual
forma
que
para
la
salida
Q
del
del
DB
a
instancia,
es
posible
leer
la
salida
ET
(que
Nene
formato
DInt)
y
operar
con
ella
en
las
comparaciones
sin
29
29
Ejemplos
de
programación
20/10/14
• TAREA
DE
CONTROL
DE
UNA
PRENSA.
• Una
prensa
con
disposiNvo
de
protección
solo
se
acNvará
con
un
pulsador
START
de
inicio
S3
si
está
cerrada
la
rejilla
protectora.
Este
estado
se
vigila
con
un
sensor
de
rejilla
protectora
cerrada
B1.
• Si
es
así,
se
acciona
una
válvula
distribuidora
5/2
M0
para
el
cilindro
de
la
prensa,
para
que
se
pueda
prensar
un
molde
de
plásNco.
• La
prensa
debe
elevarse
de
nuevo
al
accionar
el
pulsador
de
PARADA
DE
EMERGENCIA
(NC),
al
dejar
de
responder
el
sensor
de
rejilla
protectora
B1
o
al
responder
el
sensor
de
cilindro
B2
reNrado.
• Si
el
sensor
de
cilindro
reMrado
B2
responde,
la
prensa
debe
elevarse
de
nuevo
después
de
un
Mempo
de
prensado
de
5
segundos.
PARADA DE
EMERGENCIA
30
30
● CTU es un contador limitada por la frecuencia de ejecución del OB en el que está
ascendente.
se depositan las instrucciones debe ejecutarse con suficiente
6.1.3.1 Contadores ● CTD es un contador las descendente.
transiciones de las entradas CU o CD. Para operaciones
20/10/14
eventos del procesoTodo externos:
contador utilizaAl unacolocar instrucciones
estructura almacenada con contadores
en un bloque endeundatos
bloque parade con
fun
datos. El bloque de datos opción sede bloque
asigna al de colocardatoslamultiinstancia.
instrucción deLos nombres
contaje en el de es
edito
• CONTADORES
● CTU es un contador ascendente.
instrucciones utilizanpueden contadores diferir
porensoftware
las distintas cuyaestructuras,
frecuencia de pero los datos
contaje de
máxima
● CTD es un contador
• Las
instrucciones
con
limitada descendente.
contadores
por la sfrecuencia en undebloque
e
uNlizan
ara
cde
pejecuciónontar
datos
deleOB individual
ventos
en el quedyel
no requieren
están un bloque
contenidas. El OB de
contador. debeEsto reduce el tiempo de procesamiento frecuenciaypara la memo
● CTUD
programa
y
ese
es un contador
internos
depositan las p instrucciones
ascendente/descendente.
ventos
d el
roceso
e xternos:
contadores. No
ejecutarse
hay interacción
las transiciones de las entradas CU o CD. Para operaciones de contaje rápido, co
con suficiente
entre las estructuras de
dete
dato
Todo contador utiliza
• CTU
es
un
contador
una estructura
ascendente.
instrucción CTRL_HSC.
bloque deen
almacenada datos
un bloquemultiinstancia de datos compartido.
para conservar sus
31
20/10/14
Instrucciones de programación
opción de bloque de datos multiinstancia. Los nombres de estructura de los 6.1 contadores
Instrucciones básicas
pueden diferir en las distintas estructuras, pero los datos de los contadores se encuentran
• CONTADORES
en un bloque de Cree
datosunindividual
"Nombreyde nocontador"
requierenpropio
un bloque de datoselpropio
para designar bloque para cada
de datos
contador. Esto reduce el tiempo
contador de procesamiento
y describir
Parámetro el objetivo
Tipode y lacontador
de este
datos memoriaende eldatos
proceso.
Descripción necesaria para los
contadores. No hay interacción entre las estructuras
CU, CD Bool de datos de los contadores
Contaje en el
ascendente o descendente, en
bloque de datos multiinstancia compartido. incrementos de uno
R (CTU, CTUD) Bool Poner a cero el valor del contador
32
&8
Controlador programable S7-1200
5 Manual de sistema, 11/2009, A5E02486683-02
32
&9
● CTU es un contador ascendente. UDInt
● CTD es un contador descendente.
20/10/14
Todo contadorde contaje
utiliza es un entero
una estructura almacenadasin signo, en unesbloque posible contarpara
de datos hacia atrás hasta
conservar sus cero o hac
• datos. El bloque
CONTADORES
hasta el límite
de datos del rango.
se asigna al colocar Si el valor de contaje
la instrucción de contaje es en
unelentero editor. con Estassigno, es posible
instrucciones utilizan hacia atráscontadoreshastaporel software
límite de cuya entero frecuencia
negativo de contaje
y contar máxima haciaestá delante hasta el lími
• CTU:
por
limitada CTU
se
incrementa
la positivo.
frecuencia en
1
cdel
de ejecución uando
OB en el
elvalor
del
parámetro
que están contenidas.CEl U
OB
cambia
en el que
se depositan
de
0
a
1.
las
instrucciones debe ejecutarse con suficiente frecuencia para detectar todas
las transiciones de lasCTU
CTU: entradas CU o CD. Para
se incrementa en operaciones
1 cuando eldevalor contaje delrápido,
parámetro consulte CUlacambia de 0 a
• Si
el
CTRL_HSC.
instrucción valor
del dparámetro
el
parámetro
CVCV
(valor
de
(valor de
contaje
contaje
actual)
actual)
ees s
mmayor
ayor
o
o
igual
igual al
al valor del parámet
20/10/14
se depositan las instrucciones debe ejecutarse con suficiente frecuencia para detectar todas
las transiciones de las entradas CU o CD. Para operaciones de contaje rápido, consulte la
• CONTADORES
Instrucciones deCTRL_HSC.
instrucción programación
• CTD:
6.1 Instrucciones
Al colocar Cbásicas
TD
se
decrementa
instrucciones en
1en
cun
con contadores uando
bloque el
de
valor
función del
esparámetro
CD
cambia
posible seleccionar la
opciónde
de0bloque
a
1.
de datos multiinstancia. Los nombres de estructura de los contadores
pueden diferir en las distintas estructuras, pero los datos de los contadores se encuentran
• Si
ede
en un bloque l
valor
datosdel
parámetro
individual y no Crequieren
V
(valor
d
une
bloque
contaje
deactual)
datos propio es
menor
paraocada
igual
a
0,
el
CTD: CTD se decrementa en 1 cuando el valor del parámetro CD cambia de 0 a 1. Si
CTUD: CTUD se 34
incrementa o decrementa en 1 cuando el estado lógico de las entrad
contaje ascendente (CU) o descendente (CD) cambia de 0 a 1. Si el valor del paráme
(valor de contaje actual) es mayor o igual al valor del parámetro PV (valor predetermin
La figura siguiente muestra un cronograma de la instrucción CTD con un valor de contaje de
Al colocar instrucciones con contadores en un bloque de función es posible seleccionar la
entero sin signo (donde PV = 3).
opción de bloque de datos multiinstancia. Los nombres de estructura de los contadores
pueden diferir en las distintas estructuras, pero los datos de los contadores se encuentran
20/10/14
contador. Esto reduce el tiempo de procesamiento y la memoria de datos necesaria para los
/2$'
• CTUD: CTUD &9se incrementa o decrementa en 1 cuando el estado lógico de
&'
5
La
figura
muestra
un
cronograma
de
la
instrucción
CTUD
/2$' con
un
valor
de
contaje
de
entero
sin
signo
(donde
PV
=
4).
&9
35
48
35
4'