You are on page 1of 35

9.

OPERACIONES BASICAS DE PROGRAMACION

En el capitulo 5 se desarroll la forma de editar bloques lgicos y sus respectivos componentes,


adems se definieron los lenguajes de programacin (AWL, KOP y FUP) incluidos en el software
bsico STEP 7. En el presente capitulo nos centraremos en la programacin en si de los bloques
lgicos haciendo uso de los lenguajes mencionados.

Las operaciones bsicas mediante su combinacin en un programa, permiten llevar a cabo una
gran variedad de tareas de automatizacin. Las operaciones bsicas en cuestin son las
siguientes:
Operaciones lgicas con bits
Operaciones de carga y transferencia
Operaciones de temporizaron
Operaciones de Contaje

Es indispensable tener conocimiento de los operandos que se pueden utilizar para realizar la
programacin, en el capitulo 1 se defini los bits para el direccionamiento de las E/S, as como
tambin los bits de marcas, los temporizadores y contadores con los que cuenta la CPU para
realizar las operaciones bsicas:
Entradas: E 124.0 a 125.7
Salidas: E 124.0 a 125.7
Marcas: M 0.0 a M 143.7
Temporizadores: T 0 a T 127
Contadores: Z 0 a Z 63

Es de anotar, que solamente se incluyeron los bits de E/S integradas de la CPU, puesto que no se
cuentan con mas, si se tuvieran mas mdulos de E/S estaran disponibles mas operandos de este
tipo.

9.1. OPERACIONES LOGICAS CON BITS

Las operaciones lgicas con bits trabajan con dos dgitos, 1 y 0. Estos dos dgitos constituyen la
base de un sistema numrico denominado sistema binario. Los dos dgitos 1 y 0 se denominan
dgitos binarios o bits. En el mbito de los contactos y bobinas, un 1 significa activado (excitado) y
un 0 significa desactivado (no excitado).

Las operaciones lgicas con bits interpretan los estados de seal 1 y 0, y los combinan de acuerdo
con la lgica de Boole. Estas combinaciones crean un 1 un 0 como resultado y se denomina
resultado lgico (RLO). Las operaciones lgicas con bits permiten ejecutar las ms diversas
funciones.

Los operaciones lgicas con bits son las siguientes:


Operaciones con operandos de bits:
Combinacin Y e Y-NO
Combinacin O y O-NO
O-exclusiva y O-exclusiva-NO
Operaciones lgicas con fracciones de una cadena lgica:
Y antes de O
O antes de Y
Operacin de flancos:
Flanco positivo FP
Flancos negativos FN
Operaciones para asignar el resultado de una cadena lgica:
Activar S

124
OPERACIONES BASICAS DE PROGRAMACION

Desactivar R
Asignar =
Operaciones activar y desactivar
Flip-flop Activar/Desactivar
Flip-flop Desactivar/Activar

Las operaciones lgicas con bits ejecutan las siguientes funciones:


Consulta el estado de seal de una entrada (contacto normalmente abierto o normalmente
cerrado) y crean un resultado que se copia en el bit de resultado lgico (RLO).
Consulta el estado de una celda de tiempo (temporizador) o de un contador para determinar si
est a 0 (valor de la celda = 0) o a 1 (valor de la celda > 0).
Asignacin del RLO o almacenamiento temporal del RLO en una salida (bobina).
Reaccin ante un RLO de 1:
Activar bobina y Desactivar bobina
Flip-flop de activacin/desactivacin y Flip-flop de desactivacin/activacin
Operaciones que reaccionan ante un cambio de flanco positivo o negativo, que nos van a
permitir arrancar un temporizador e incrementar o decrementar un contador.

9.1.1. Contacto Normalmente Abierto

En la figura 148 se muestra la representacin de un esquema de rel con un contacto normalmente


abierto. Mientras no se active el contacto, ste permanecer abierto. El estado de seal del
contacto abierto es 0 (desactivado). Si el contacto permanece abierto, la corriente del conductor
no puede pasar corriente a la bobina al final del circuito. Si se activa el contacto (es decir, el
estado de seal del contacto es 1), la corriente fluye a la bobina.

Figura 148. Circuito conmutador de rels con contacto normalmente abierto.

En la figura 149 se muestra las operaciones para la consulta del estado de la seal en un contacto
normalmente abierto.

Resultado de la consulta
Lenguaje Operacin Contacto Contacto
activado 1 desactivado 0
Y (U)
AWL O (O)
1 0

KOP 1 0

FUP 1 0

Figura 149. Consulta para contactos normalmente abiertos.

125
AUTOMATAS PROGRAMABLES SIMATIC S7

9.1.2. Contacto normalmente cerrado

En la figura 150 se muestra la representacin de un esquema de rels con un contacto


normalmente cerrado. Mientras no se active el contacto, ste permanecer cerrado. El estado de
seal del contacto cerrado es 0 (desactivado). Si el contacto permanece cerrado, la corriente del
conductor puede pasar por el contacto y fluir por la bobina al final del circuito. Activando el contacto
(es decir, el estado de seal del contacto es 1) se abre el contacto, interrumpiendo el flujo de
corriente a la bobina.

Figura 150. Circuito conmutador de rels con contacto normalmente cerrado.

En la figura 151 se muestra las operaciones para la consulta del estado de la seal en un contacto
normalmente cerrado.

Resultado de la consulta
Lenguaje Operacin Contacto Contacto
activado 1 desactivado 0
Y-NO (UN)
AWL O-NO (ON)
0 1

KOP 0 1

FUP 0 1

Figura 151. Consulta para contactos normalmente cerrados.

9.1.3. Operaciones Lgicas Con Operandos De Bits

9.1.3.1. Combinacin Y: flujo de corriente en un circuito en serie

En la figura 152 se muestra la combinacin de la operacin Y para programar tres contactos en


serie cuyo estado normal es abierto. La salida A 124.0 slo tendr el estado 1 (y, por tanto, por la
bobina pasar corriente) cuando los tres contactos tengan el estado 1.

Para la negacin de la operacin Y existe la operacin Y-NO que realiza la consulta al estado de
seal 0, es decir consulta la conexin en serie de un contacto normalmente cerrado. En la
figura 153 se muestra un ejemplo.

126
OPERACIONES BASICAS DE PROGRAMACION

EJEMPLO: Combinacin Y Esquema de rels


La salida 124.0 tiene estado de seal "1" cuando las
tres entradas tienen estado de seal "1".
La salida tiene entrada de seal "0" siempre que como
mnimo una entrada tenga estado de seal "0". E 124.0
Es indiferente la cantidad de consultas y la secuencia
de las instrucciones de combinacin.
E 124.1
Diagrama de tiempos
E 124.2
1
E 124.0 0
1
A 124.0
E 124.1 0
1
E 124.2 0
1
A 124.0 0

AWL KOP FUP

U E 124.0
U E 124.1 E 124.0 E 124.1 E 124.2 A 124.0
U E 124.2
()
= A 124.0

Figura 152. Ejemplo combinacin Y.

EJEMPLO: Combinacin con Y-NO Esquema de rels

La salida A 124.0 tiene estado de seal "1" cuando la


entrada E 124.0 este activada estado de seal "1" y la
E 124.1 desactivada estado de seal "1".
La salida A 124.0 tiene estado de seal "0" cuando E 124.0
una de las entradas tenga estado de seal "0"
E 124.1
Diagrama de tiempos
A 124.0
1
E 124.0 0
1
E 124.1 0
1
A 124.0 0

AWL KOP FUP

U E 124.0 E 124.0 E 124.1 A 124.0


UN E 124.1 ()
= A 124.0

Figura 153. Ejemplo combinacin con la operacin Y-NO.

127
AUTOMATAS PROGRAMABLES SIMATIC S7

9.1.3.2. Combinacin O: flujo de corriente de un circuito en paralelo

La figura 154 muestra una operacin O (O) para conectar en paralelo los tres contactos abiertos.
La salida A 124.0 slo tendr el estado 1 (y, por tanto, por la bobina pasar corriente) cuando los
tres contactos tengan el estado 1 (cerrados).

Para la negacin de la operacin O existe la operacin O-NO que realiza la consulta al estado de
seal 0, es decir consulta la conexin en paralelo de un contacto normalmente cerrado. En la
figura 155 se muestra un ejemplo.

EJEMPLO: Combinacin O Esquema de rels


En la salida 124.0 aparece estado de seal "1" cuando
como mnimo una de las tres entradas tiene estado de
seal "1".
En la salida 124.0 aparece estado de seal "0" cuando
todas las entradas tienen simultnemente estado de E 124.0 E 124.1 E 124.2
seal "0".
Es indiferente la cantidad de consultas y la secuencia
de las instrucciones de combinacin.
Diagrama de tiempos
1
E 124.0 0
A 124.0
1
E 124.1 0
1
E 124.2 0
1
A 124.0 0

AWL KOP FUP


E 124.0 A 124.0
O E 124.0 ()
O E 124.1 E 124.1
O E 124.2 E 124.2
= A 124.0

Figura 154. Ejemplo combinacin O.

9.1.3.3. O-exclusiva

La operacin O-exclusiva (programable en AWL y FUP) corresponde a un esquema de rel como


el representado en la figura 156, con un contacto cerrado y un contacto abierto unidos
mecnicamente. En este esquema, la salida A 124.0 ser 1 cuando E 124.0 y E 124.1 tengan
valores diferentes.

Para la negacin de la operacin O-exclusiva existe la operacin O-exclusiva-NO que realiza la


consulta a la conexin acoplada en paralelo de un contacto cerrado/abierto. En la figura 157 se
muestra un ejemplo con esta operacin.

128
OPERACIONES BASICAS DE PROGRAMACION

EJEMPLO: Combinacin con O-NO Esquema de rels

La salida A 124.0 tiene estado de seal "1" cuando


una de las entradas tiene estado de seal "1", es decir
E 124.0 activada o E 124.1 desactivada.
La salida A 124.0 tiene estado de seal "0" cuando las E 124.0 E 124.1
2 entradas tengan estado de seal "0"

Diagrama de tiempos
A 124.0
1
E 124.0 0
1
E 124.1 0
1
A 124.0 0

AWL KOP FUP


E 124.0 A 124.0
O E 124.0 ()
ON E 124.1 E 124.1
= A 124.0

Figura 155. Ejemplo combinacin con operacin O-NO.

EJEMPLO: O exclusiva Esquema de rels


En la salida A 124.0 aparecera el estado de seal "1"
si las entradas E 124.0 y 124.1 tienen valores
diferentes.
Si las entradas tienen valores iguales aparece estado E 124.0
de seal "0" en la salida.
Diagrama de tiempos
E 124.1
1
E 124.0
0
1
E 124.1
0
A 124.0
1
A 124.0
0

AWL KOP (no programable) FUP

X E 124.0 X E 124.0
X E 124.1 X E 124.1
= A 124.0 = A 124.0

Figura 156. Ejemplo combinacin O-exclusiva.

129
AUTOMATAS PROGRAMABLES SIMATIC S7

EJEMPLO: O-exclusiva-NO Esquema de rels


En la salida A 124.0 aparecera el estado de seal "1"
si las entradas E 124.0 y 124.1 tienen valores iguales.
Si las entradas tienen valores diferentes aparece E 124.0
estado de seal "0" en la salida.

Diagrama de tiempos
E 124.1
1
E 124.0
0
1
E 124.1
0
A 124.0
1
A 124.0
0

AWL KOP (no programable) FUP

X E 124.0 X E 124.0
XN E 124.1 XN E 124.1
= A 124.0 = A 124.0

Figura 157. Ejemplo de combinacin con O-exclusiva-NO.

En el ejemplo de la figura 158 se muestra la operacin O-exclusiva programada mediante


combinaciones entre la operacin Y, Y-NO, y O. Este tipo de combinacin se conoce como una
combinacin Y antes de O que corresponde a las operaciones lgicas con fracciones de una
cadena lgica cuya programacin se va a desarrollar a continuacin.

O EXCLUSIVA SI NO EXISTIERA LA OPERACION X


AWL KOP FUP
U E 124.0 E 124.0 E 124.1 A 124.0 E 124.0 &
UN E 124.1 ()
O E 124.1 >=1

UN E 124.0 E 124.0 E 124.1


E 124.0 & A 124.0
U E 124.1
= A 124.0 =
E 124.1

Figura 158. Ejemplo de alternativa para programar O-exclusiva.

9.1.4. Operaciones Lgicas con Fracciones de una Cadena Lgica:

Las operaciones Y, O y X (O-exclusiva) y sus negaciones Y-NO, O-NO y XN (O-exclusiva-NO)


permiten ejecutar operaciones lgicas con fracciones de una cadena lgica encerradas entre
parntesis (expresiones entre parntesis). Los parntesis que encierran una fraccin de una
cadena lgica indican que el programa va a ejecutar las operaciones entre parntesis antes de
ejecutar la operacin lgica que precede a la expresin entre parntesis.

130
OPERACIONES BASICAS DE PROGRAMACION

Tambin es posible combinar las operaciones Y y O en una cadena lgica sin utilizar parntesis.
Existe la convencin de evaluar en primer lugar las instrucciones Y, y combinar luego los
resultados con la operacin O.

9.1.4.1. Combinacin Y antes de O

En la figura 159 se utiliza el principio Y antes de O para programar un circuito. Por convencin, el
programa evala en primer lugar la combinacin Y. A continuacin combina los resultados de la
combinacin Y con la operacin O. No se requieren parntesis. El principio con el que se trabaja
aqu se denomina Y antes de O.

EJEMPLO: Combinacin Y antes de O Esquema de rels


En la salida 124.0 aparece estado de seal "1" cuando
se cumple como mnimo una condicion Y.
Si no se cumple ninguna de las dos condiciones Y, la
salida 124.0 tiene estado de seal "0". E 124.0 E 124.2

Diagrama de tiempos E 124.1 E 124.3


1
E 124.0 0
1
E 124.1 0
1
A 124.0
E 124.2 0
1
E 124.3 0
1
A 124.0 0

AWL KOP FUP


U E 124.0 E 124.0 E 124.1 A 124.0 E 124.0 &
U E 124.1 ()
O E 124.1 >=1

U E 124.2 E 124.2 E 124.3


E 124.2 & A 124.0
U E 124.3
= A 124.0 =
E 124.3

Figura 159. Ejemplo de combinacin Y antes de O.

9.1.4.2. Combinacin O antes de Y (Expresiones entre parntesis)

En la figura 160 y 161 son ejemplos de la combinacin O antes de Y, esta combinacin realizada
conjuntamente, se debe escribir en lgebra de Boole con parntesis, para aclarar que la funcin O
va antes de la funcin Y.

La operacin que abre una expresin entre parntesis almacena el RLO de la operacin
precedente en la pila de parntesis. A continuacin, el programa combina el RLO almacenado con
el resultado de las combinaciones lgicas ejecutadas dentro del parntesis.

Es de anotar que las cadenas lgicas que comenzaron con las operaciones U(, UN(, O(, ON(,
X( y XN( deben terminar con la operacin ) en el lenguaje AWL.

131
AUTOMATAS PROGRAMABLES SIMATIC S7

EJEMPLO: Combinacin O antes de Y Esquema de rels


En la salida A 124.0 aparece estado de seal "1"
cuando se cumplen ambas condiciones O.
En la salida A 124.0 aparece estado de seal "0" E 124.0 E 124.1
cuando no se cumple como mnimo una condicion O.
Diagrama de tiempos
1
E 124.0 0 E 124.3
E 124.2
1
E 124.1 0
1
E 124.2 0
1
A 124.0
E 124.3 0
1
A 124.0 0

AWL KOP FUP


U(
O E 124.0 E 124.0 E 124.1 A 124.0 E 124.0 >=1
O E 124.1 ()
) E 124.1 &
U(
O E 124.2 E 124.2 E 124.3
E 124.2 >=1 A 124.0
O E 124.3
) =
E 124.3
= A 124.0
Figura 160. Ejemplo de combinacin O antes de Y.

EJEMPLO: Combinacin O antes de Y Esquema de rels


La salida 124.0 tiene estado de seal "1" si se cumple una
de las siguientes condiciones:
! La entrada 124.0 tiene esrado de seal "1"
! La entrada 124.1 y una de las entradas 124.2 o 124.3
tiene estado de seal "1" E 124.0 E 124.2 E 124.3
Si no se cumple ninguna de las condiciones Y, la salida
124.0 tiene seal "0".
Diagrama de tiempos E 124.1
1
E 124.0 0
1
E 124.1 0
A 124.0
1
E 124.2 0
1
E 124.3 0
1
A 124.0 0

AWL KOP FUP


O E 124.0 E 124.0 A 124.0
O ()
U( E 124.0 >=1
E 124.2 >=1
O E 124.2 E 124.2 E 124.1
A 124.0
O E 124.3 E 124.3 &
) =
E 124.1
U E 124.1 E 124.3
= A 124.0
Figura 161. Ejemplo de combinacin O antes de Y.

132
OPERACIONES BASICAS DE PROGRAMACION

9.1.5. Resultado de una Combinacin (RLO)

Las operaciones lgicas con bits implican la ejecucin de combinaciones, que al final arrojan un
resultado binario 0 o 1, pero a medida que la combinacin avanza, debe almacenarse un
resultado temporal que refleja el estado de la combinacin hasta el momento y un valor que se
combinara con el resultado para continuar la combinacin. Para cumplir este objetivo la CPU
destina un rea de memoria con tamao de una palabra (16 bits), que se conoce como La palabra
de estado, en la cual 3 bits que se van a explicar a continuacin, sirven de apoyo para la ejecucin
de la combinacin.

9.1.5.1. Primera Consulta (bit /ER)

El bit 0 de la palabra de estado se denomina bit de primera consulta (bit /ER). Si el estado de
seal del bit /ER es 0, significa que siguiendo este punto en el programa, la siguiente operacin
lgica da inicio a otra cadena lgica.

Cada operacin lgica consulta el estado del bit /ER, as como el estado de seal del operando
direccionado. Si el bit /ER es 0, la operacin almacenar el resultado de la consulta de estado de
seal en el bit RLO de la palabra de estado (bit RLO) y se pone el bit /ER a 1. Este proceso se
denomina primera consulta (figura 162).

Si el bit /ER es 1, una operacin combina el resultado de la consulta del estado de seal del
contacto direccionado con el valor almacenado en el bit RLO anterior (figura 162).

Una cadena de operaciones lgicas siempre termina con una operacin de salida (S, R =, se
explicaran en el pargrafo 9.1.8), o con una expresin entre parntesis U(, O(, X(, UN(, ON( o XN( .
Estas operaciones de salida o de salto desactivan el bit /ER, es decir, lo ponen a 0 (figura 162).

9.5.1.2. Resultado Lgico (bit RLO)

El bit 1 de la palabra de estado se denomina bit RLO (RLO = resultado lgico). Este bit almacena
el resultado de una operacin lgica binaria.

Por ejemplo, la segunda operacin de una cadena de operaciones lgicas consulta el estado de
seal de un contacto, obteniendo el resultado 1 0. A continuacin, la operacin combina este
resultado con el valor almacenado en el bit RLO de la palabra de estado, de acuerdo con los
principios de la lgica de Boole. El resultado de esta operacin lgica se almacena en el bit RLO
de la palabra de estado, reemplazando el valor anterior en el bit RLO. Cada instruccin
subsiguiente en la cadena ejecuta una operacin lgica con dos valores: el resultado que se
obtiene consultando el estado de seal del contacto, y el RLO actual.

El bit RLO puede ponerse absolutamente a 1 con la instruccin Activacin S. Utilizando una
operacin lgica a la primera consulta es posible asignarle al RLO el estado de contenido de un
espacio de memoria de bit.

9.1.5.3. Bit de estado (bit STA)

El bit de estado (bit 2 de la palabra de estado) almacena el valor del bit direccionado. El estado de
una operacin lgica que tiene acceso de lectura a la memoria (Y, Y-NO, O, O-NO, X, XN) siempre
es igual al valor del bit que est consultando dicha operacin (el bit con el que est ejecutando la
combinacin). El estado de una operacin lgica que tiene acceso de escritura a la memoria (S, R,
=) siempre es igual al valor del bit donde la operacin est escribiendo, o bien, si no tiene lugar
ningn acceso de escritura, es igual al valor del bit direccionado.

El bit de estado carece de importancia para las operaciones lgicas que no accedan a la memoria.
Dichas operaciones ponen el bit de estado a 1 (STA = 1) como las expresiones entre parntesis

133
AUTOMATAS PROGRAMABLES SIMATIC S7

U(, O(, X(, UN(, ON( o XN(. El bit de estado no es consultado por ninguna operacin sino que
solamente es interpretado durante el test del programa (estado del programa).

En la figura 15 se muestra los resultados de una combinacin, en lenguaje de programacin AWL y


los respectivos resultados en los 3 bits de la palabra de estado.

Resultado
Programa
Bit STA de la Bit RLO Bit /ER Explicacin
AWL consulta

0 Bit /ER= 0 significa que la prxima


operacin da inicio a una nueva
cadena logica.

El resultado de la primeraconsulta
U E 124.0 1 1 1 1 esta almacenado en el bit RLO. El
bit /ER se pone a "1".

El resultado de la consulta se
UN E 124.1 0 1 1 1 combina con el anterior RLO, de
acuerdo con la combinacion Y. El
bit /ER permanece "1".

El RLO se asigna a la bobina de


= A 124.0 1 0 salida. El bit /ER se pone a "0"

Figura 162. Ejemplo de resultados de una combinacin.

9.1.6. Tablas de verdad

Las tablas de verdad permiten determinar el resultado lgico de las operaciones al comienzo de
una cadena lgica (tabla 37) y dentro de una cadena lgica (tabla 38), aplicando los principios de la
lgica de Boole.

Tabla 37. Tabla de verdad al principio de una cadena lgica.

134
OPERACIONES BASICAS DE PROGRAMACION

Tabla 38. Tabla de verdad dentro de una cadena lgica.

9.1.7. Operaciones de flancos: FP y FN

Las operaciones FP (flanco positivo) y FN (flanco negativo) pueden utilizarse como contactos
detectores de cambios de flanco en un circuito de rel. Estas combinaciones detectan cambios en
el resultado lgico y reaccionan correspondientemente. El cambio de 0 a 1 se denomina flanco
positivo, mientras que el cambio de 1 a 0 se denomina flanco negativo (figura 163).

Figura 163. Representacin flancos positivo y negativo.

135
AUTOMATAS PROGRAMABLES SIMATIC S7

9.1.7.1. Flanco Positivo FP

En el ejemplo de la figura 164 se muestra la operacin FP que permite al programa reaccionar


ante un cambio de flanco positivo.

EJEMPLO: Flanco Positivo FP Esquema de rels


Cada vez que la entrada E 124.0 cambia de "0" a "1"
la salida A 124.0 cambia de "0" a "1" por un ciclo.
El RLO de la operacion Y es almacenado en la marca
M 1.0 y lo compara con el RLO del ciclo presedente. E 124.0
E 124.0

Diagrama de tiempos M 1.0

E 124.0 A 124.0

M 1.0 A 124.0

A 124.0

OB1 ciclo No.

AWL KOP FUP

U E 124.0 E 124.0 M 1.0 A 124.0


FP M 1.0 (P) ()
= A 124.0

Figura 164. Ejemplo de reaccin a un cambio de flanco positivo.

Cuando el autmata programable detecta un flanco positivo en el contacto E 124.0 excita la bobina
en la salida A 124.0 durante un ciclo de un OB1. El autmata programable almacena el resultado
lgico de la operacin Y en la marca de flancos M 1.0 y lo compara con el RLO del ciclo
precedente (tabla 39). Si el RLO actual es 1 y el RLO del ciclo precedente almacenado en el bit
de marcas M 1.0 es 0, entonces la operacin FP pone el RLO a 1. La operacin FP detecta un
flanco positivo en el contacto (por ejemplo, el estado de seal del RLO cambi de 0 a 1). Si no
se produce ningn cambio en el RLO (el RLO actual y el RLO precedente almacenados en la
marca de flancos son ambos igual a 0 1), entonces la operacin FP desactiva el RLO, es
decir, lo pone a 0.

Tabla 39. Consulta de un cambio de flanco en la entrada E 124.0

OB1. Estado de seal de la Estado de seal Cambi el Est excitada la


Ciclo No. entrada en el ciclo de la entrada en estado de seal bobina en la A
precedente el ciclo actual de 0 a 1? 124.0?
1 0(valor predeterminado) 0 No No
2 0 1 S S
3 1 1 No No
4 1 0 No No
5 0 0 No No
6 0 1 S S
7 1 0 No No
8 0 1 S S
9 1 1 No No

136
OPERACIONES BASICAS DE PROGRAMACION

9.1.7.2. Flanco Negativo FN

En el ejemplo de la figura 165 se muestra la operacin FN que permite al programa reaccionar


ante un cambio de flanco negativo.

EJEMPLO: Flanco Negativo FN Esquema de rels


Cada vez que la entrada E 124.0 cambia de "1" a "0"
la salida A 124.0 cambia de "0" a "1" por un ciclo.
El RLO de la operacion Y es almacenado en la marca
M 1.0 y lo compara con el RLO del ciclo presedente. E 124.0
E 124.0

Diagrama de tiempos M 1.0

E 124.0 A 124.0

M 1.0 A 124.0

A 124.0

OB1 ciclo No.

AWL KOP FUP

U E 124.0 E 124.0 M 1.0 A 124.0


FN M 1.0 (N) ()
= A 124.0

Figura 165. Ejemplo de reaccin a un cambio de flanco negativo.

Cuando el autmata programable detecta un flanco negativo en el contacto E 124.0, excita la


bobina en A 124.0 durante todo el ciclo de un OB1. El autmata programable almacena el
resultado lgico, de la operacin Y en la marca de flancos M 1.0 y lo compara con el RLO del ciclo
precedente (tabla 40). Si el RLO actual es 0 y el RLO del ciclo precedente almacenado en la
marca M 1.0 es 1, entonces la operacin FN pone el RLO a 1. La operacin FN detecta un
flanco negativo en el contacto (por ejemplo. el estado de seal del RLO cambi de 1 a 0). Si no
se produce ningn cambio en el RLO (el RLO actual y el RLO precedente almacenado en la marca
de flancos son ambos igual a 0 o igual a 1), entonces la operacin FN vuelve a poner el RLO a
0.

Tabla 40. Consulta de un cambio de flanco en la entrada E 124.0

OB1. Estado de seal de la Estado de seal Cambi el Est excitada la


Ciclo No. entrada en el ciclo de la entrada en estado de seal bobina en la A
precedente el ciclo actual de 0 a 1? 124.0?
1 0(valor predeterminado) 0 No No
2 0 1 No No
3 1 0 S S
4 0 0 No No
5 0 1 No No
6 1 1 No No
7 1 1 No No
8 1 0 S S
9 0 0 No No

137
AUTOMATAS PROGRAMABLES SIMATIC S7

Existe otra forma de programar la valoracin de flancos de positivos FP y flancos negativos


haciendo uso de las operaciones activar S y desactivar R, estas operaciones se van a explicar
detalladamente en el siguiente pargrafo. En los ejemplos de las figuras 166 y 167 se muestra la
programacin de valoracin de flancos positivos y negativos respectivamente, en estos ejemplos la
seal que tiene estado de seal 1 durante un solo ciclo del programa es la marca M 2.0. Se ha
omitido los esquemas de rel pues son similares a los de las figura 164 y 165.

FLANCO POSITIVO SI NO EXISTIERA LA OPERACION FP


Cada vez que la entrada E 124.0 cambia de "0" a "1" (flanco positivo) se cumple Y de E124.0
y Y-NO de M 4.0, el RLO se pone a "1" con ello se activan las marcas M 4.0 y M 2.0 ("marcas
de flanco"). En el proximo ciclo de procesamiento no se cumple ya la condicin Y ya que ha
sido activada la marca M 4.0. Se borra la marca 2.0.
Asi pues, la marca M 2.0 solo tiene estado de seal "1" durante un ciclo del programa.
Al abrir la entrada E 124.0 se borra la marca M 4.0. Con ello se prepara la evaluacion del
siguiente flanco positivo en la entrada E 124.0.
AWL KOP FUP
U E 124.0
M 4.0
UN M 4.0 E 124.0 & M 2.0
M 4.0
E 124.0 M 4.0 M 2.0 SR
= M 2.0 S Q SR
U M 2.0 (#) M 4.0
=
S
S M 4.0
UN E 124.0 E 124.0 E 124.0 R Q
R M 4.0 R
NOP 0

Figura 166. Ejemplo de alternativa para programar flancos positivos.

FLANCO NEGATIVO SI NO EXISTIERA LA OPERACION FN


AWL KOP FUP
UN E 124.0 M 4.0
U M 4.0 E 124.0 M 4.0 M 2.0 RS M 4.0
E 124.0 & M 2.0
= M 2.0 (#) R Q RS
U M 2.0 =
M 4.0 R
R M 4.0 E 124.0 S S Q
U E 124.0 E 124.0
S M 4.0
NOP 0

Figura 167. Ejemplo de alternativa para programar flancos negativos.

9.1.8. Operaciones para asignar el resultado de una cadena lgica

Para terminar una cadena lgica se puede utilizar una de las tres operaciones AWL siguientes.
Cada una de estas operaciones puede hacer variar al bit que representa el fin de dicha cadena.

S (Activar): si el RLO de la operacin anterior se puso a 1, S pone a 1 el estado de seal


del contacto direccionado o de la bobina direccionada.
R (Desactivar): si el RLO de la operacin anterior se puso a 1, R pone a 0 el estado de
seal del contacto direccionado o de la bobina direccionada.
= (Asignar): independientemente del estado del RLO, el valor del RLO se le asigna al
operando direccionado.

138
OPERACIONES BASICAS DE PROGRAMACION

9.1.9. Operaciones Activar (S) y Desactivar (R)

La operacin S (Activar) puede utilizarse para activar el estado de seal de un bit direccionado, es
decir, para ponerlo a 1. La operacin R (Desactivar) puede utilizarse para desactivar el estado de
seal de un bit direccionado, es decir, para ponerlo a 0. Las operaciones S y R finalizan una
cadena lgica y son conocidas tambin con el nombre de Biestable RS

La operacin S pone a 1 el bit que direcciona si el resultado lgico de la instruccin precedente


es 1.

La figura 168 muestra cmo la operacin S mantiene a 1 el estado de seal de la bobina A 124.5
que ha direccionado hasta que la operacin R cambia el estado de seal a 0. El que el estado de
seal de la bobina direccionada permanezca a 1 hasta que la operacin R lo ponga a 0 muestra
el carcter esttico de la operacin S.

En el esquema de rels, cuando se activa el contacto abierto de la entrada E 124.0 (su estado de
seal cambia a 1) se cierra el contacto. La corriente fluye a travs del contacto de la entrada E
124.0 y a travs del contacto cerrado situado ms abajo, excitando la bobina en la salida A 124.5
(el estado de seal de A 124.5 cambia a 1).

Al activarse la bobina se cierra el contacto abierto en la salida A 124.5 frente a E 124.0. Despus,
independientemente de que el contacto de la entrada E 124.0 est abierto o cerrado, queda
excitada la bobina en la salida A 124.5 (con estado de seal 1). La bobina se mantiene a s
misma en tensin.

EJEMPLO: Activar-Desactivar (Biestable RS) Esquema de rels


El estado de seal "1" en la entrada E 124.0 Activa la salida
A 124.5 (estado de seal "1"). Si el estado de seal en E
124.0 cambia a "0" se mantiene el estado de la salida A
124.5, es decir se memoriza.
Aplicando estado de seal "1" en la entrada E 124.1
desactiva la salida A 124.5 (estado de seal "0"). E 124.0 E 124.1
Si se aplican simultaneamente los estados de activacin (E
124.0) y desactivacin (E 124.1), al ejecutar el programa
actua la consulta programada en ltimo lugar (E124.1)
durante la ejecucion del programa restante, esto es, la A 124.5
salida A 124.1 tiene desactivacion o borrado prioritario.

Diagrama de tiempos
1
E 124.0 0
1
E 124.1 0
1
A 124.5 0

AWL KOP FUP


A 124.5
U E 124.0
E 124.0 SR
S A 124.5
S Q
U E 124.1
R E 124.5 E 124.1
R

Figura 168. Ejemplo de biestable RS (prioridad a la desconexin).

139
AUTOMATAS PROGRAMABLES SIMATIC S7

La operacin R desactiva el bit que direcciona, es decir, lo pone a 0 cuando el resultado lgico de
la operacin precedente es 1

La figura 168 muestra cmo la operacin R mantiene a 0 el estado de seal de la bobina A 124.0
que ha direccionado, independientemente de que cambie el estado de seal del contacto que
impuls la desactivacin (E 124.1). El que el estado de seal de la bobina direccionada se
mantenga a 0 hasta ser desactivado por una operacin S muestra el carcter esttico de la
operacin R.

En el esquema de rels, la bobina de la salida A 124.0 activada por la operacin S se desactiva (su
estado de seal cambia a 0) cerrando el contacto abierto de la entrada E 124.1. El cierre del
contacto E 124.1 permite que fluya la corriente hasta la bobina situada debajo. Esta bobina abre el
contacto cerrado que se encuentra directamente encima de la bobina de A 124.0, impidiendo que
la corriente alcance la bobina. Cerrando el contacto E 124.1 se activa la operacin R.

En la figura 168 se mostr un ejemplo de un biestable RS con prioridad a la desconexin, en la


figura 169 se muestra un ejemplo de biestable RS pero con prioridad a la conexin.

Biestable RS con prioridad a la conexin


AWL KOP FUP
A 124.5
U E 124.0
E 124.0 RS
R A 124.5
R Q
U E 124.1
S E 124.5 E 124.1
S

Figura 169. Ejemplo de biestable RS (prioridad a la conexin)

Cuando se trata de combinaciones binarias muy voluminosas es necesaria la memorizacin


intermedia de resultados, a fin de poderlos consultar a lo largo de la programacin y continuar
posteriormente su elaboracin. Para este almacenamiento intermedio se tiene siempre a
disposicin los operandos marcas. Una marca que se ha utilizado como almacenamiento
intermedio da como resultado de combinacin que se llama marca intermedia.

Las marcas utilizadas como marcas intermedias, se pueden utilizar a lo largo del programa. Para
ello hay que tener en cuenta:
La marca intermedia tiene que ser en primer lugar activada y despus consultada
Cuando se activa de nuevo, la misma marca intermedia, el resultado antiguo no estar mas
disponible durante la ejecucin del programa.

Las marcas intermedias que se deben de consultar a lo largo del programa, solamente se pueden
utilizar una vez.

9.1.9.1. Flip-flop de Activacin/Desactivacin

El Flip-flop permite la memorizacin de resultados intermedios, es decir es un Biestable RS con


marcas.

En la figura 170 se muestra un ejemplo del Flip-flop de activacin/desactivacin. La operacin es


muy similar a la de Biestable RS pero en esta operacin se hace uso de una marca intermedia, la
cual puede ser consultada posteriormente.

140
OPERACIONES BASICAS DE PROGRAMACION

La operacin Flip-flop de activacin/desactivacin ejecuta las operaciones Activar (S) y Desactivar


(R) solamente si el RLO es 1. Un 0 en el RLO no afecta a dichas operaciones y el operando
indicado en la operacin permanece inalterado.

La operacin Flip-flop de activacin/desactivacin se activa si el estado de seal en la entrada S es


1 y en la entrada R es 0. En otro caso, si el estado de seal en la entrada S es 0 y en la
entrada R es 1, el Flipflop se desactiva. Si el RLO es 1 en ambas entradas, el Flip-flop se
desactiva.

EJEMPLO: Filp-flop S/R Esquema de rels


Si el estado de seal de la entrada E 124.0 es "1" y el
de la entrada 124.1 es "0", se activa el bit de marcas
M 1.0 y la salida A 124.5 es "1".
Si el estado de seal de la entrada E 124.0 es "0" y el
de la entrada E 124.1 es "1", se desactiva el bit de
marcas M 1.0 y la salida A 124.0 es "0". E 124.0 E 124.1
Si ambos estados de seal son "0" no se produce
ningun cambio. Si son "1" domina el estado de
desactivacin, M 1.0 se pone a "0" y A 124.5 es
"0". M 1.0

Diagrama de tiempos
1
E 124.0 0
1
E 124.1 0
1
M 1.0 0
1
A 124.5 0

AWL KOP FUP


U E 124.0 M 1.0
S M 1.0
E 124.0 SR A 124.5
U E 124.1
R M 1.0
S Q ()
U M 1.0 E 124.1
R
= A 124.5

Figura 170. Ejemplo de Flip-flop S/R.

9.1.9.2. Flip-flop de Desactivacin/Activacin

La operacin Flip-flop de desactivacin/activacin ejecuta las operaciones Activar (S) y Desactivar


(R) solamente si el RLO es 1. Un 0 en el RLO no afecta dichas operaciones y el operando
indicado en la operacin permanece inalterado.

La operacin Flip-flop de desactivacin/activacin se desactiva si el estado de seal en la entrada


R es 1 y en la entrada S es 0. En otro caso, si el estado de seal en la entrada R es 0 y en la
entrada S es 1, el flip-flop se activa. Si el RLO es 1 en ambas entradas, el flip-flop se activa.

En la figura 171 se muestra un ejemplo del Flip-flop para desactivacin/activacin.

141
AUTOMATAS PROGRAMABLES SIMATIC S7

EJEMPLO: Filp-Flop R/S Esquema de rels


Si el estado de seal de la entrada E 124.0 es "1" y el
de la entrada 124.1 es "0", el bit de marcas M 1.0 se
desactiva y la salida A 124.5 es "0".
Si el estado de seal de la entrada E 124.0 es "0" y el
de la entrada E 124.1 es "1", el bit de marcas M 1.0 se E 124.1 E 124.0
activa y la salida A 124.0 es "1".
Si ambos estados de seal son "0" no se produce
ningun cambio. Si son "1" domina el estado de
activacin, M 1.0 se pone a "1" y A 124.5 es "1". M 1.0

Diagrama de tiempos
1
E 124.0 0
1
E 124.1 0
1
M 1.0 0

A 124.5

AWL KOP FUP


U E 124.0 M 1.0
R M 1.0
E 124.0 RS A 124.5
U E 124.1
S M 1.0
R Q ()
U M 1.0 E 124.1
S
= A 124.5

Figura 171. Ejemplo de Flip-flop R/S.

9.2. OPERACIONES DE CARGA Y TRANSFERENCIA

Las operaciones de carga (L) y transferencia (T) permiten programar un intercambio de informacin
entre mdulos de E/S y reas de memoria, o bien entre reas de memoria. La CPU ejecuta estas
operaciones en cada ciclo como operaciones incondicionales, es decir, independientemente del
resultado lgico de la operacin.

Las operaciones L y T permiten un intercambio de informacin entre los mdulos o reas de


memoria siguientes:
Entre mdulos de E/S y las reas de memoria siguientes:
Imagen del proceso de las entradas y salidas
Marcas
Temporizadores y contadores
Areas de datos
Entre las imgenes del proceso de las entradas y salidas y las reas de memoria siguientes:
Marcas
Temporizadores y contadores
Areas de datos
Entre temporizadores, contadores y las reas de memoria siguientes:
Imgenes del proceso de las entradas y salidas
Marcas
Areas de datos

Las operaciones de carga (L) y transferencia (T) intercambian informacin a travs del acumulador.
La operacin L escribe (carga) el contenido de la direccin fuente direccionada en el ACU 1,

142
OPERACIONES BASICAS DE PROGRAMACION

desplazando toda la informacin que encuentra en ste al ACU 2. El antiguo contenido del ACU 2
se pierde. La operacin T copia el contenido del ACU 1 y lo desplaza a la memoria del destino
direccionado. Ya que la operacin T solamente copia la informacin que se encuentra en el ACU 1,
sta informacin seguir estando disponible para otras operaciones (figura 172)

OPERACIONES DE CARGA (L) Y TRANSFERENCIA (T)

ACU 1 ACU 2
15 0 31 16 15 0 31 16 15 0

MW 10 WORD 2 WORD 1 WORD 4 WORD 3

L MW 10 (SE PIERDE)

15 0 31 16 15 0 31 16 15 0

MW 10 0 MW 10 WORD 2 WORD 1

L MW 12 (SE PIERDE)

31 16 15 0 31 16 15 0

0 MW 12 0 MW 10

15 0

MW 12 T MW 12

Figura 172. Palabra doble del acumulador (ACU 1) para Cargar y transferir.

En otras palabras, las operaciones Cargar (L) y Transferir (T) sirven para transferir informacin a o
desde el ACU 1. La informacin puede tener el siguiente tamao:
Byte (B, 8 bits)
Palabra (W, 16 bits)
Palabra doble (D, 32 bits)

Un byte se carga en el byte bajo de la palabra baja del ACU 1 (bits 0 a 7). Una palabra se carga
en la palabra baja del ACU 1 (bits 0 a 15). Como se mostr en la figura 172 los bytes no
aprovechados se ponen a 0 al cargarse en el ACU 1.

9.3. OPERACIONES DE TEMPORIZACION

Un temporizador es un elemento funcional del software de programacin STEP 7 que implementa y


vigila secuencias controladas por tiempo. Las operaciones de temporizacin permiten al programa
ejecutar las funciones siguientes:
Proveer tiempos de espera. Por ejemplo, despus de un ciclo de inyeccin de plstico, el
molde debe quedar cerrado durante dos segundos. El programa vigila que se cumpla este
lapso de dos segundos antes de que la pieza sea retirada del molde.
Proveer tiempos de vigilancia. Por ejemplo, el programa vigila las revoluciones de un motor
durante 30 s despus de pulsar el botn de arranque.
Generar impulsos. Por ejemplo, el programa emite impulsos que hacen que se encienda una
lmpara.

143
AUTOMATAS PROGRAMABLES SIMATIC S7

Medir tiempo. Por ejemplo, el programa puede determinar cunto tiempo se requiere para
rellenar un recipiente.

9.3.1. Operaciones de temporizacin

Step 7 permite ejecutar las siguientes operaciones de temporizacin:


Arrancar uno de los siguientes tipos de temporizador:
SI: Impulso (S_IMPULS)
SV: Impulso prolongado (S_VIMP)
SE: Retardo a la conexin (S_EVERZ)
SS: Retardo a la conexin con memoria (S_SEVERZ)
SA: Retardo a la desconexin (S_AVERZ)

Cargar un temporizador en uno de los formatos siguientes:


L: binario
LC: decimal codificado en binario BCD
Consultar el estado de seal de un temporizador y combinar el resultado con las operaciones
logicas con bits (U, O, X, UN, ON, XN).

Los temporizadores tienen reservada un rea de memoria de la CPU. Esta rea de memoria
reserva una palabra de 16 bits Palabra de temporizacin por cada operando de tiempo. Para el
caso de la CPU 314 IFM se disponen de 128 temporizadores desde T 0 a T 127.

En la figura 173 se ilustra las operaciones que utilizan una palabra de temporizacin.

Figura 173. Operaciones para una palabra de temporizacin.

9.3.2. Valor de temporizacin

Los bits 0 a 9 de la palabra de temporizacin contienen el valor de temporizacin en cdigo binario.


Este valor indica un nmero de unidades. La actualizacin del tiempo decrementa el valor de
temporizacin en un intervalo dictado por la base de tiempo. El tiempo va decrementando hasta
ser igual a 0. El valor de temporizacin puede cargarse en la palabra baja del ACU 1 en formato
binario, hexadecimal o decimal codificado en binario (BCD). El periodo de tiempo va de 0 a 9.990
seg.

Para cargar un valor de temporizacin predefinido utilice la sintaxis siguiente:


L W#16#wxyz
siendo: w = la base de tiempo (intervalo o resolucin)
xyz = valor de temporizacin en formato BCD

L S5T#aH_bbM_ccS_dddMS
siendo: a = horas, bb = minutos, cc = segundos y dd = milisegundos
La base de tiempo se selecciona automticamente, redondendose el valor al prximo valor
inferior con la base de tiempo correspondiente.

144
OPERACIONES BASICAS DE PROGRAMACION

El valor de temporizacin mximo que puede introducirse es de 9.990 segundos o de


2H_46M_30S.

Los bits 12 y 13 de la palabra de temporizacin contienen la base de tiempo en cdigo binario. La


base de tiempo define el intervalo en que decrementa el valor de temporizacin. La base de
tiempo ms pequea es de 10 ms; la mxima es de 10 s. En la tabla 41 se muestra el cdigo
binario de la base de tiempo.

Tabla 41. Base de tiempo y cdigo binario.

Debido a que los valores de temporizacin se almacenan en un solo intervalo de tiempo, los
valores que no son exactamente mltiplos de un intervalo quedan truncados. Los valores cuya
resolucin es demasiado alta para el rango deseado se redondean por defecto, alcanzando el
rango, pero no la resolucin deseada. La tabla 42 muestra las resoluciones posibles y sus
correspondientes rangos.

Tabla 42. Resolucin y rangos de la base de tiempos.

9.3.3. Configuracin binaria en la clula de temporizacin

Cuando arranca un temporizador, el contenido de la clula de temporizacin 1 (ACU 1) se utiliza


como valor de temporizacin. Los bits 0 a 11 de la palabra baja del ACU 1 contienen el valor de
temporizacin en formato decimal codificado en binario (formato BCD: cada grupo de 4 bits
contiene el cdigo binario de un valor decimal). Los bits 12 y 13 contienen la base de tiempo en
cdigo binario. La figura 174 ilustra el contenido de la palabra baja del ACU 1 tras haber cargado el
valor de temporizacin 127 con la base de tiempo de 1 segundo.

Figura 174. Contenido de la palabra baja del ACU1.

145
AUTOMATAS PROGRAMABLES SIMATIC S7

9.3.4. Leer valores de temporizacin como entero.

En la palabra de temporizacin se encuentra almacenado un valor de temporizacin en cdigo


binario. La siguiente operacin de carga (L) permite leer este valor binario en la palabra de
temporizacin y cargarlo en la palabra baja del ACU 1:

L <palabra de temporizacin>

Este tipo de carga se denomina carga directa de un valor de temporizacin.

El valor que contiene el acumulador puede utilizarse como resultado de la operacin de carga para
su posterior procesamiento, por ejemplo transferirlo con la operacin T a las salidas o a una marca.
Sin embargo, no es posible transferir un valor desde el acumulador a la palabra de temporizacin.

Para el caso de la programacin en lenguaje AWL y KOP los cuadros de temporizadores disponen
de una salida DUAL para la cual se puede indicar una direccin de palabra para leer el valor de
temporizacin en formato binario.

9.3.5. Leer valores de temporizacin en formato BCD

En la palabra de temporizacin se encuentra almacenado un valor en cdigo binario. Con la


siguiente operacin de carga (LC) se puede leer el valor en formato BCD de una palabra de
temporizacin y cargarlo a continuacin en la palabra baja del ACU 1:

LC <palabra de temporizacin>

Adems del valor de temporizacin se carga la base de tiempo. El valor contenido en la palabra
baja del ACU 1 como resultado de la operacin LC tiene el mismo formato que el que se necesita
para arrancar un temporizador. Este tipo de carga se denomina carga directa de un valor de
temporizacin en formato BCD.

El valor que se encuentra en el acumulador como resultado de la operacin LC puede ser utilizado
para un procesamiento posterior, por ejemplo para transferirlo con la operacin T a las salidas y
controlar as un display. Sin embargo no es posible transferir un valor desde el acumulador a la
palabra de temporizacin.

146
OPERACIONES BASICAS DE PROGRAMACION

Para el caso de la programacin en lenguaje AWL y KOP los cuadros de temporizadores disponen
de una salida DEZ para la cual se puede indicar una direccin de palabra para leer el valor de
temporizacin en formato decimal codificado en binario (BCD) y la base de tiempo.

Al procesar el programa de usuario en la CPU, el valor de la palabra de temporizacin se va


decrementando desde el valor de arranque hasta 0. Cuando se utiliza la operacin de carga L o
LC con una palabra de temporizacin como operando, se obtiene un valor comprendido entre el
tiempo de arranque de la palabra y 0. El tiempo que transcurre desde el arranque del temporizador
resulta de la diferencia entre el tiempo de arranque y el tiempo actual de lectura.

9.3.6. Tipos de temporizadores

Como ya se menciono existen los siguientes 5 tipos de temporizadores (fig. 175):

TIPOS DE TEMPORIZADORES

Seal de entrada E 124.0

A 124.0
SI
Temporizador de
impulso

SV A 124.0
Temporizador de
impulso prolongado

SE A 124.0
Temporizador de
retardo a la conexin

SS
Temporizador de A 124.0
retardo a la conexin
con memoria

SA A 124.0
Temporizador de
retardo a la
desconexin

Figura 175. Tipos de temporizadores.

147
AUTOMATAS PROGRAMABLES SIMATIC S7

9.3.7. Ejemplos de Temporizadores

A continuacin se van a desarrollar 5 ejemplos con cada tipo de temporizador.

9.3.7.1. Temporizador de Impulso: SI

EJEMPLO: Temporizador "SI"


1 Un cambio del RLO de 0 a 1 en la entrada de arranque hace que el temporizador
arranque y empiece a contar el tiempo programado t.

2 Un RLO a 0 aplicado a la entrada de arranque pone el temporizador a 0.

3 El resultado de la consulta del estado de seal en la salida A 124.5 dar 1 mientras el


temporizador est en marcha.

4 Cuando en la entrada de puesta a 0 hay un RLO a 1, el temporizador se pone a 0.


Mientras el estado de seal permanezca a 1 en la entrada de arranque, el temporizador
no se ver afectado por un cambio de seal del RLO de 1 a 0 en la entrada de puesta
a 0.

5 Si el RLO cambia de 0 a 1 en la entrada de arranque al mismo tiempo que la seal de


puesta a 0, el temporizador arrancar brevemente. Sin embargo, volver a ponerse a 0
inmediatamente debido a la siguiente operacin de puesta a 0 que se ejecuta en el
programa (representado como lnea de impulsos en el diagrama de tiempos). De este
impulso no se obtiene ningn resultado siempre que se respete la secuencia de
operaciones arriba descrita.
DIAGRAMA DE TIEMPOS

1
RLO en la entrada de
E 124.0 0
arranque
1
RLO en la entrada de
E 124.1 0
puesta a "0"

Reaccin del temporizador

Consulta al estado de seal 1


en la salida del temporizador A 124.5 0

MW 10
Cargar temporizador: L, LC
MW 12

AWL KOP FUP


U E 124.0 T1
L S5T#10s
SI T 1 E 124.0 S_IMPULS A 124.5
U E 124.1 S Q ()
R T 1
S5T#10s TW DUAL MW 10
L T 1
A 124.5
T MW 10 MW 12
LC T 1 E 124.1 DEZ =
T MW 12 R
U T 1
= A 124.5

Figura 176. Ejemplo con temporizador SI.

148
OPERACIONES BASICAS DE PROGRAMACION

9.3.7.2. Temporizador de impulso prolongado: SV

EJEMPLO: Temporizador "SV"


1 Si el RLO cambia de 0 a 1 en la entrada de arranque, el temporizador arranca y
empieza a contar el tiempo programado t, independientemente de que el RLO cambie
posteriormente en la entrada de arranque.

2 Si el RLO cambia de 0 a 1 en la entrada de arranque antes de que haya transcurrido el


tiempo, entonces se redispara el temporizador con el tiempo programado inicialmente.

3 La consulta del estado de seal en la salida A 124.5 da el resultado 1 mientras dure la


operacin de temporizacin.

4 Si en la entrada de puesta a 0 hay un RLO de 1 se pone el temporizador a 0. Mientras el


estado de seal permanezca a 1 en la entrada de arranque, el temporizador no se ver
afectado por un cambio de seal del RLO de 1 a 0 en la entrada de puesta a 0.

5 Si el RLO cambia de 0 a 1 en la entrada de arranque al mismo tiempo que se aplica la


seal de puesta a 0, el temporizador arrancar brevemente. Sin embargo, volver a
ponerse a 0 inmediatamente debido a la siguiente instruccin de puesta a 0 que se ejecuta
en el programa (representado como lnea de impulsos en el diagrama de tiempos). De
este impulso no se obtiene ningn resultado siempre que se respete la secuencia de
operaciones arriba descrita.
DIAGRAMA DE TIEMPOS
RLO en la entrada de 1
arranque E 124.0 0

RLO en la entrada de 1
puesta a "0" E 124.1 0

Reaccin del temporizador

Consulta al estado de
seal en la salida del 1
temporizador A 124.5 0

Cargar temporizador: MW 10
L, LC MW 12

AWL KOP FUP


U E 124.0 T2
L S5T#10s
SV T 2 E 124.0 S_VIMP A 124.5
U E 124.1 S Q ()
R T 2
S5T#10s TW DUAL MW 10
L T 2
A 124.5
T MW 10
DEZ MW 12
LC T 2 E 124.1 =
T MW 12 R
U T 2
= A 124.5

Figura 177. Ejemplo con temporizador SV.

149
AUTOMATAS PROGRAMABLES SIMATIC S7

9.3.7.3. Temporizador de retardo a la conexin: SE

EJEMPLO: Temporizador "SE"


1 Si el RLO cambia de 0 a 1 en la entrada de arranque, el temporizador arranca y
empieza a contar el tiempo programado t.

2 Si hay un RLO de 0 en la entrada de arranque, el temporizador se pone a 0.

3 La consulta del estado de seal en la salida A 124.5 da un estado de seal de 1 cuando


ha transcurrido el tiempo y la entrada de arranque est a 1.

4 Si en la entrada de puesta a 0 hay un RLO de 1, el temporizador se pone a 0. Mientras


haya un estado de seal de 1 en la entrada de arranque, el temporizador no se ver
afectado por un cambio de seal del RLO de 1 a 0 en la entrada de puesta a 0.

5 Si el RLO cambia de 0 a 1 en la entrada de arranque al mismo tiempo que la seal de


puesta a 0, el temporizador arrancar brevemente. Sin embargo, volver a ponerse a 0
inmediatamente debido a la siguiente operacin de puesta a 0 que se ejecuta en el
programa (representado como lnea de impulsos en diagrama de tiempos). De este
impulso no se obtiene ningn resultado siempre que se respete la secuencia de
operaciones arriba descrita.

DIAGRAMA DE TIEMPOS
RLO en la entrada de
1
arranque E 124.0
0
RLO en la entrada de
1
puesta a "0" E 124.1
0
Reaccin del temporizador

Consulta al estado de
seal en la salida del 1
temporizador A 124.5 0

Cargar temporizador: MW 10
L, LC MW 12

AWL KOP FUP


U E 124.0 T3
L S5T#15s
SE T 3 E 124.0 S_EVERZ A 124.5
U E 124.1 S Q ()
R T 3
S5T#15s TW DUAL MW 10
L T 3
A 124.5
T MW 10
DEZ MW 12
LC T 3 E 124.1 =
T MW 12 R
U T 3
= A 124.5

Figura 178. Ejemplo con temporizador SE.

150
OPERACIONES BASICAS DE PROGRAMACION

9.3.7.4. Temporizador con retardo a la conexin con memoria: SS

EJEMPLO: Temporizador "SS"


1 Si el RLO cambia de 0 a 1 en la entrada de arranque, el temporizador arranca y
empieza a contar el tiempo programado t, independientemente de que vuelva a cambiar el
RLO en la entrada de arranque.

2 La consulta del estado de seal en la salida de temporizacin da 1 cuando ha


transcurrido el tiempo.

3 El resultado de la consulta del estado de seal en la salida A 124.5 slo cambia a 0 si el


RLO en la entrada de puesta a 0 es 1.

4 Si el RLO est a 1 en la entrada de puesta a 0, el temporizador se pone a 0. Mientras


haya un estado de seal de 1 en la entrada de arranque, el temporizador no se ver
afectado por un cambio de seal del RLO de 1 a 0 en la entrada de puesta a 0.

5 Si el RLO cambia de 0 a 1 en la entrada de arranque al mismo tiempo que la seal de


puesta a 0, el temporizador arrancar brev emente, pero v olv er a ponerse a 0
inmediatamente debido a la siguiente operacin de puesta a 0 que se ejecuta en el
programa (representado como lnea de impulsos en el diagrama de tiempos). De este
impulso no se obtiene ningn resultado siempre que se respete la secuencia de
operaciones arriba descrita.
DIAGRAMA DE TIEMPOS
RLO en la entrada de
1
arranque E 124.0
0
RLO en la entrada de
1
puesta a "0" E 124.1
0
Reaccin del temporizador

Consulta al estado de
seal en la salida del 1
temporizador A 124.5 0

Cargar temporizador: MW 10
L, LC MW 12

AWL KOP FUP


U E 124.0 T4
L S5T#12s
SS T 4 E 124.0 S_SEVERZ A 124.5
U E 124.1 S Q ()
R T 4
S5T#12s TW DUAL MW 10
L T 4
A 124.5
T MW 10
DEZ MW 12
LC T 4 E 124.1 =
T MW 12 R
U T 4
= A 124.5

Figura 179. Ejemplo con temporizador SS.

151
AUTOMATAS PROGRAMABLES SIMATIC S7

9.3.7.5. Temporizador con retardo a la desconexin: SA

EJEMPLO: Temporizador "SA"


1 Si el RLO cambia de 0 a 1 en la entrada de arranque se produce un cambio de 0 a 1
en la salida A 124.5. Si el RLO cambia de 1 a 0 en la entrada de arranque, el
temporizador arranca y empieza a contar el tiempo programado t.

2 Si vuelve a haber un RLO de 1 en la entrada de arranque, el temporizador arranca.

3 La consulta del estado de seal en la salida A 124.5 da un estado de seal de 1 si el


RLO est a 1 en la entrada de arranque y el tiempo programado an no ha transcurrido.

4 Si el RLO cambia a 1 en la entrada de puesta a 0, el temporizador se pone a 0. Si se


consulta entonces el estado de seal del temporizador, ste es 0. Si el RLO cambia de 1
a 0 en la entrada de puesta a 0, el temporizador no se ve afectado.

5 Si hay un RLO de 1 en la entrada de puesta a 0 mientras est parado el temporizador,


ello no afecta al temporizador.

6 Si el RLO cambia de 1 a 0 en la entrada de arranque al mismo tiempo que la seal de


puesta a 0, el temporizador arrancar brev emente, pero v olv er a ponerse a 0
inmediatamente debido a la siguiente operacin de puesta a 0 que se ejecuta en el
programa (representado como lnea de impulsos en el diagrama de tiempos). En este
caso, la consulta del estado de seal del temporizador da 0.

DIAGRAMA DE TIEMPOS
RLO en la entrada de 1
arranque E 124.0 0

RLO en la entrada de 1
puesta a "0" E 124.1 0

Reaccin del temporizador

Consulta al estado de
seal en la salida del 1
temporizador A 124.5 0

Cargar temporizador: MW 10
L, LC MW 12

AWL KOP FUP


U E 124.0 T5
L S5T#10s
SA T 5 E 124.0 S_AVERZ A 124.5
U E 124.1 S Q ()
R T 5
S5T#10s TW DUAL MW 10
L T 5
A 124.5
T MW 10
DEZ MW 12
LC T 5 E 124.1 =
T MW 12 R
U T 5
= A 124.5

Figura 180. Ejemplo con temporizador SA.

152
OPERACIONES BASICAS DE PROGRAMACION

9.4. OPERACIONES DE CONTAJE

Un contador es un elemento funcional de contaje del software de programacin STEP 7.

Los contadores tienen un rea de memoria propia en la CPU. Dicha rea de memoria reserva una
palabra de 16 bits Palabra de contaje para cada contador. Para el caso de la CPU 314 IFM se
disponen de 64 temporizadores desde Z 0 a Z 127.

Las operaciones de contaje son las nicas funciones que tienen acceso al rea de memoria
reservada para contadores.

9.4.1. Operaciones de contaje

STEP 7 permite ejecutar las siguientes operaciones de contaje:


S: Ajustar a un valor (activar)
R: Poner a 0 (desactivar)
ZV: Incrementar contador
ZR: Decrementar contador
Cargar contador en uno de los formatos siguientes:
L: binario
LC: decimal codificado en binario
U, UN, O, ON, X, XN: Consultar el estado de seal de un contador y combinar el resultado. La
consulta del estado de seal con la operacin U, O o X dar como resultado 1 cuando el valor
de contaje sea mayor que 0; el resultado ser 0 si el valor de contaje es 0.

En la figura 181 se ilustra las operaciones que utilizan una palabra de contaje como operando.

Figura 181. Operaciones para una palabra de contaje.

9.4.2. Valor de contaje

Los bits 0 a 9 de la palabra de contaje contienen el valor de contaje en cdigo binario. El valor
fijado por el usuario se transfiere del acumulador al contador al activarse ste. El valor de contaje
puede estar comprendido entre 0 y 999. Dentro de esta rea se puede variar dicho valor utilizando
las operaciones Incrementar y Decrementar contador, Incrementar contador y Decrementar
contador.

9.4.3. Configuracin binaria en el contador

Para poner el contador a un valor determinado hay que introducir un nmero de 0 a 999, por
ejemplo 127, en el siguiente formato:

C# 127

C# sirve para indicar el formato decimal codificado en binario (formato BCD: cada conjunto de
cuatro bits contiene el cdigo binario de un valor decimal).

153
AUTOMATAS PROGRAMABLES SIMATIC S7

Los bits 0 a 11 del contador contienen el valor de contaje en formato BCD. La figura 182 muestra el
contenido del contador despus de haber cargado el valor de contaje 127 y el contenido de la
clula de contaje despus de haber activado el contador.

Figura 182. Contenido de la clula de contaje (palabra baja del ACU1)

9.4.4. Leer un valor de contaje como entero

En una palabra de contaje se encuentra almacenado un valor en cdigo binario. Para leer el valor
binario de una palabra de contaje hay que cargarla en la palabra baja del ACU 1 con la siguiente
instruccin:

L <palabra de contaje>

Este tipo de carga se denomina carga directa de un valor de contaje.

El valor que se encuentra en el ACU 1 como resultado de la operacin L puede utilizarse para su
posterior procesamiento (transferir el valor con la operacin T a una salida o marca de palabra). Sin
embargo, no es posible transferir un valor desde el acumulador a la palabra de contaje. Si se
desea arrancar un contador con un valor determinado hay que utilizar la operacin de activacin
correspondiente.

9.4.5. Leer un valor de contaje en formato BCD

En una palabra de contaje se encuentra almacenado un valor en cdigo binario. Para leer este
valor de contaje en formato BCD desde una palabra de contaje hay que cargar sta en la palabra
baja del ACU 1 con la operacin siguiente:

LC <palabra de contaje>

154
OPERACIONES BASICAS DE PROGRAMACION

Este tipo de carga se denomina carga de un valor de contaje en formato BCD.

El valor contenido en la palabra baja del ACU 1 como resultado de la operacin LC tiene el mismo
formato que el que se necesita para activar un contador.

El valor que se encuentra en el acumulador como resultado de la operacin de carga LC puede


utilizarse para su procesamiento posterior, por ejemplo para transferirlo (operacin T) a las salidas
y controlar as un display. Sin embargo, no es posible transferir un valor desde el acumulador a la
palabra de contaje.

Existen tres posibilidades para programar un contador:


ZV/ZV Incrementar/decrementar un contador (ZAHLER): permite incrementar y decrementar
el valor del contador
ZV Incrementar un contador (Z_VORW): permite nicamente, incrementar el valor del
contador
ZR Decrementar un contador (Z_RUECK): permite nicamente, decrementar el valor del
contador.

9.4.6. Incrementar/Decrementar un contador

El contador se activa con el valor de la entrada ZV al producirse un flanco positivo (es decir,
cuando el estado de la seal cambia de 0 a 1) en la entrada S de la operacin Incrementar y
decrementar contador.

El contador se desactiva si se produce un flanco positivo en la entrada R. La desactivacin del


contador pone el valor de contaje a 0. Si dicho valor es menor de 999, al producirse un flanco
positivo en la entrada ZV se incrementa en 1 el valor del contador. Si el valor de contaje es mayor
de 0, el valor del contador al producirse un flanco positivo en la entrada ZR se decrementa en 1. Si
ambas entradas tienen un flanco positivo, se procesan las dos operaciones y el valor de contaje se
mantiene invariable.

La consulta sobre si el estado de la seal de la salida es 1 produce un resultado de 1 si el valor de


contaje es mayor de 0. La consulta produce 0 si dicho valor es 0.

En la figura 183 se muestra el diagrama de tiempos y la explicacion de un ejemplo de contador


Incrementar/Decrementar

155
AUTOMATAS PROGRAMABLES SIMATIC S7

EJEMPLO: Contador Incrementar/Decrementar


1 Si el RLO cambia de 0 a 1 en la entrada de activacin, el contador se pone a 3. Un cambio de
1 a 0 en la entrada de activacin no afecta al contador.

2 Si el RLO cambia de 0 a 1 en la entrada de cuenta atrs, el contador decrementa. Un cambio de


1 a 0 en la entrada de cuenta atrs no afecta al contador.

3 El resultado de la instruccin de consulta del estado de seal U Z 1 es 0 si el valor de contaje es


0.

4 Si el RLO cambia de 0 a 1 en la entrada de cuenta adelante, el contador incrementa. Un cambio


de 1 a 0 en la entrada de cuenta adelante no afecta al contador.

5 Si hay un RLO de 1 en la entrada de puesta a 0, el contador se pone a 0. Si se consulta el


estado de seal el resultado es 0. Un cambio de 1 a 0 en la entrada de puesta a 0 no afecta al
contador.

6 Si el RLO cambia de 0 a 1 en la entrada de cuenta adelante al mismo tiempo que la seal de


puesta a 0, entonces el contador incrementa su valor momentneamente, pero se desactiva de
inmediato debido a la siguiente instruccin de puesta a 0 en el programa. (El incremento se indica
mediante una lnea de impulsos en el esquema de la figura 13-5). Si se consulta el estado de seal
el resultado es 0.

DIAGRAMA DE TIEMPOS
1
Incrementar contador E 125.0 0

1
Decrementar contador E 125.1 0

1
Activar E 125.2 0

1
Poner a 0 E 125.3 0

Reaccion del contador

1
Consulta del estado
A 125.0 0
de seal en la salida

MW 10
Cargar: L, LC MW 12

Figura 183. Explicacin de un ejemplo de contador Incrementar/Decrementar.

En la figura 184 se muestra la programacin en los lenguajes AWL, KOP y FUP para el mismo
ejemplo de contador Incrementar/Decrementar.

156
OPERACIONES BASICAS DE PROGRAMACION

EJEMPLO: Contador Incrementar/Decrementar (continuacin)


AWL KOP FUP
U E 125.0
ZV Z 1
U E 125.1 A 125.0
ZR Z 1
U E 125.2
()
L C#3
S Z 1
U E 125.3
R Z 1
L Z 1
T MW 10 A 125.0
LC Z 1
=
T MW 12
U Z 1
= A 125.0

Figura 184. Programacin de un ejemplo de contador Incrementar/Decrementar.

9.4.7. Incrementar un contador

El contador se activa con el valor de la entrada ZW al producirse un flanco positivo (es decir,
cuando el estado de la seal cambia de 0 a 1) en la entrada S de la operacin Incrementar
contador.

El contador se desactiva si se produce un flanco positivo en la entrada R. La desactivacin del


contador pone el valor de contaje a 0. Si dicho valor es menor de 999, al producirse un flanco
positivo en la entrada ZV se incrementa en 1 el valor del contador. La consulta sobre si el estado
de la seal de la salida es 1 produce un resultado de 1 si el valor de contaje es mayor de 0. La
consulta produce 0 si dicho valor es 0.

En la figura 185 se muestra un ejemplo para incrementar un contador.

EJEMPLO: Incrementar Contador


AWL KOP FUP
U E 125.0
ZV Z 2
U E 125.2 A 125.0
L C#10 ()
S Z 2
U E 125.3
R Z 2
L Z 2
A 125.0
T MW 10
LC Z 2 =
T MW 12
U Z 2
= A 125.0

Figura 185. Ejemplo para incrementar un contador.

157
AUTOMATAS PROGRAMABLES SIMATIC S7

9.4.8. Decrementar un contador

El contador se activa con el valor de la entrada ZW al producirse un flanco positivo (es decir,
cuando el estado de la seal cambia de 0 a 1) en la entrada S de la operacin Decrementar
contador.

El contador se desactiva si se produce un flanco positivo en la entrada R. La desactivacin del


contador pone el valor de contaje a 0. Si dicho valor es menor de 999, al producirse un flanco
positivo en la entrada ZV se incrementa en 1 el valor del contador. La consulta sobre si el estado
de la seal de la salida Q es 1 produce un resultado de 1 si el valor de contaje es mayor de 0. La
consulta produce 0 si dicho valor es 0.

En la figura 186 se muestra un ejemplo para decrementar un contador.

EJEMPLO: Decrementar Contador


AWL KOP FUP
U E 125.1
ZR Z 3
U E 125.2 A 125.0
L C#100 ()
S Z 3
U E 125.3
R Z 3
L Z 3
T MW 10 A 125.0
LC Z 3 =
T MW 12
U Z 3
= A 125.0

Figura 186. Ejemplo para decrementar contador.

158

You might also like