Está en la página 1de 35

9.

OPERACIONES BASICAS DE PROGRAMACION

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


además se definieron los lenguajes de programación (AWL, KOP y FUP) incluidos en el software
básico STEP 7. En el presente capitulo nos centraremos en la programación en si de los bloques
lógicos haciendo uso de los lenguajes mencionados.

Las operaciones básicas mediante su combinación en un programa, permiten llevar a cabo una
gran variedad de tareas de automatización. Las operaciones básicas en cuestión son las
siguientes:
• Operaciones lógicas 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
programación, en el capitulo 1 se definió los bits para el direccionamiento de las E/S, así como
también los bits de marcas, los temporizadores y contadores con los que cuenta la CPU para
realizar las operaciones básicas:
• 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 módulos de E/S estarían disponibles mas operandos de este
tipo.

9.1. OPERACIONES LOGICAS CON BITS

Las operaciones lógicas con bits trabajan con dos dígitos, 1 y 0. Estos dos dígitos constituyen la
base de un sistema numérico denominado sistema binario. Los dos dígitos 1 y 0 se denominan
dígitos 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 lógicas con bits interpretan los estados de señal 1 y 0, y los combinan de acuerdo
con la lógica de Boole. Estas combinaciones crean un 1 ó un 0 como resultado y se denomina
”resultado lógico” (RLO). Las operaciones lógicas con bits permiten ejecutar las más diversas
funciones.

Los operaciones lógicas con bits son las siguientes:


• Operaciones con operandos de bits:
• Combinación Y e Y-NO
• Combinación O y O-NO
• O-exclusiva y O-exclusiva-NO
• Operaciones lógicas con fracciones de una cadena lógica:
• Y antes de O
• O antes de Y
• Operación de flancos:
• Flanco positivo FP
• Flancos negativos FN
• Operaciones para asignar el resultado de una cadena lógica:
• Activar S

124
OPERACIONES BASICAS DE PROGRAMACION

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

Las operaciones lógicas con bits ejecutan las siguientes funciones:


• Consulta el estado de señal de una entrada (contacto normalmente abierto o normalmente
cerrado) y crean un resultado que se copia en el bit de resultado lógico (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).
• Asignación del RLO o almacenamiento temporal del RLO en una salida (bobina).
• Reacción ante un RLO de 1:
• Activar bobina y Desactivar bobina
• Flip-flop de activación/desactivación y Flip-flop de desactivación/activación
• 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 representación de un esquema de relé con un contacto normalmente


abierto. Mientras no se active el contacto, éste permanecerá abierto. El estado de señal 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 señal del contacto es ”1”), la corriente fluye a la bobina.

Figura 148. Circuito conmutador de relés con contacto normalmente abierto.

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

Resultado de la consulta
Lenguaje Operación 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 representación de un esquema de relés con un contacto


normalmente cerrado. Mientras no se active el contacto, éste permanecerá cerrado. El estado de
señal 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 señal del contacto es ”1”) se abre el contacto, interrumpiendo el flujo de
corriente a la bobina.

Figura 150. Circuito conmutador de relés con contacto normalmente cerrado.

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

Resultado de la consulta
Lenguaje Operación 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 Lógicas Con Operandos De Bits

9.1.3.1. Combinación Y: flujo de corriente en un circuito en serie

En la figura 152 se muestra la combinación de la operación Y para programar tres contactos en


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

Para la negación de la operación Y existe la operación Y-NO que realiza la consulta al estado de
señal “0”, es decir consulta la conexión en serie de un contacto normalmente cerrado. En la
figura 153 se muestra un ejemplo.

126
OPERACIONES BASICAS DE PROGRAMACION

EJEMPLO: Combinación Y Esquema de relés


La salida 124.0 tiene estado de señal "1" cuando las
tres entradas tienen estado de señal "1".
La salida tiene entrada de señal "0" siempre que como
mínimo una entrada tenga estado de señal "0". E 124.0
Es indiferente la cantidad de consultas y la secuencia
de las instrucciones de combinación.
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 combinación Y.

EJEMPLO: Combinación con Y-NO Esquema de relés

La salida A 124.0 tiene estado de señal "1" cuando la


entrada E 124.0 este activada estado de señal "1" y la
E 124.1 desactivada estado de señal "1".
La salida A 124.0 tiene estado de señal "0" cuando E 124.0
una de las entradas tenga estado de señal "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 combinación con la operación Y-NO.

127
AUTOMATAS PROGRAMABLES SIMATIC S7

9.1.3.2. Combinación O: flujo de corriente de un circuito en paralelo

La figura 154 muestra una operación O (O) para conectar en paralelo los tres contactos abiertos.
La salida A 124.0 sólo tendrá el estado ”1” (y, por tanto, por la bobina pasará corriente) cuando los
tres contactos tengan el estado ”1” (cerrados).

Para la negación de la operación O existe la operación O-NO que realiza la consulta al estado de
señal “0”, es decir consulta la conexión en paralelo de un contacto normalmente cerrado. En la
figura 155 se muestra un ejemplo.

EJEMPLO: Combinación O Esquema de relés


En la salida 124.0 aparece estado de señal "1" cuando
como mínimo una de las tres entradas tiene estado de
señal "1".
En la salida 124.0 aparece estado de señal "0" cuando
todas las entradas tienen simultánemente estado de E 124.0 E 124.1 E 124.2
señal "0".
Es indiferente la cantidad de consultas y la secuencia
de las instrucciones de combinación.
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 combinación O.

9.1.3.3. O-exclusiva

La operación 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
mecánicamente. En este esquema, la salida A 124.0 será ”1” cuando E 124.0 y E 124.1 tengan
valores diferentes.

Para la negación de la operación O-exclusiva existe la operación O-exclusiva-NO que realiza la


consulta a la conexión acoplada en paralelo de un contacto cerrado/abierto. En la figura 157 se
muestra un ejemplo con esta operación.

128
OPERACIONES BASICAS DE PROGRAMACION

EJEMPLO: Combinación con O-NO Esquema de relés

La salida A 124.0 tiene estado de señal "1" cuando


una de las entradas tiene estado de señal "1", es decir
E 124.0 activada o E 124.1 desactivada.
La salida A 124.0 tiene estado de señal "0" cuando las E 124.0 E 124.1
2 entradas tengan estado de señal "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 combinación con operación O-NO.

EJEMPLO: O exclusiva Esquema de relés


En la salida A 124.0 aparecera el estado de señal "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 señal "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 combinación O-exclusiva.

129
AUTOMATAS PROGRAMABLES SIMATIC S7

EJEMPLO: O-exclusiva-NO Esquema de relés


En la salida A 124.0 aparecera el estado de señal "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 señal "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 combinación con O-exclusiva-NO.

En el ejemplo de la figura 158 se muestra la operación O-exclusiva programada mediante


combinaciones entre la operación Y, Y-NO, y O. Este tipo de combinación se conoce como una
combinación Y antes de O que corresponde a las operaciones lógicas con fracciones de una
cadena lógica cuya programación se va a desarrollar a continuación.

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 Lógicas con Fracciones de una Cadena Lógica:

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


permiten ejecutar operaciones lógicas con fracciones de una cadena lógica encerradas entre
paréntesis (expresiones entre paréntesis). Los paréntesis que encierran una fracción de una
cadena lógica indican que el programa va a ejecutar las operaciones entre paréntesis antes de
ejecutar la operación lógica que precede a la expresión entre paréntesis.

130
OPERACIONES BASICAS DE PROGRAMACION

También es posible combinar las operaciones Y y O en una cadena lógica sin utilizar paréntesis.
Existe la convención de evaluar en primer lugar las instrucciones Y, y combinar luego los
resultados con la operación O.

9.1.4.1. Combinación Y antes de O

En la figura 159 se utiliza el principio Y antes de O para programar un circuito. Por convención, el
programa evalúa en primer lugar la combinación Y. A continuación combina los resultados de la
combinación Y con la operación O. No se requieren paréntesis. El principio con el que se trabaja
aquí se denomina “Y antes de O”.

EJEMPLO: Combinación Y antes de O Esquema de relés


En la salida 124.0 aparece estado de señal "1" cuando
se cumple como mínimo una condicion Y.
Si no se cumple ninguna de las dos condiciones Y, la
salida 124.0 tiene estado de señal "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 combinación Y antes de O.

9.1.4.2. Combinación O antes de Y (Expresiones entre paréntesis)

En la figura 160 y 161 son ejemplos de la combinación O antes de Y, esta combinación realizada
conjuntamente, se debe escribir en álgebra de Boole con paréntesis, para aclarar que la función O
va antes de la función Y.

La operación que abre una expresión entre paréntesis almacena el RLO de la operación
precedente en la pila de paréntesis. A continuación, el programa combina el RLO almacenado con
el resultado de las combinaciones lógicas ejecutadas dentro del paréntesis.

Es de anotar que las cadenas lógicas que comenzaron con las operaciones “U(“, “UN(“, “O(“, “ON(“,
“X(“ y “XN(“ deben terminar con la operación “)” en el lenguaje AWL.

131
AUTOMATAS PROGRAMABLES SIMATIC S7

EJEMPLO: Combinación O antes de Y Esquema de relés


En la salida A 124.0 aparece estado de señal "1"
cuando se cumplen ambas condiciones O.
En la salida A 124.0 aparece estado de señal "0" E 124.0 E 124.1
cuando no se cumple como mínimo 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 combinación O antes de Y.

EJEMPLO: Combinación O antes de Y Esquema de relés


La salida 124.0 tiene estado de señal "1" si se cumple una
de las siguientes condiciones:
! La entrada 124.0 tiene esrado de señal "1"
! La entrada 124.1 y una de las entradas 124.2 o 124.3
tiene estado de señal "1" E 124.0 E 124.2 E 124.3
Si no se cumple ninguna de las condiciones Y, la salida
124.0 tiene señal "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 combinación O antes de Y.

132
OPERACIONES BASICAS DE PROGRAMACION

9.1.5. Resultado de una Combinación (RLO)

Las operaciones lógicas con bits implican la ejecución de combinaciones, que al final arrojan un
resultado binario “0” o “1”, pero a medida que la combinación avanza, debe almacenarse un
resultado temporal que refleja el estado de la combinación hasta el momento y un valor que se
combinara con el resultado para continuar la combinación. Para cumplir este objetivo la CPU
destina un área de memoria con tamaño de una palabra (16 bits), que se conoce como “La palabra
de estado”, en la cual 3 bits que se van a explicar a continuación, sirven de apoyo para la ejecución
de la combinación.

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
señal del bit /ER es ”0”, significa que siguiendo este punto en el programa, la siguiente operación
lógica da inicio a otra cadena lógica.

Cada operación lógica consulta el estado del bit /ER, así como el estado de señal del operando
direccionado. Si el bit /ER es ”0”, la operación almacenará el resultado de la consulta de estado de
señal 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 operación combina el resultado de la consulta del estado de señal del
contacto direccionado con el valor almacenado en el bit RLO anterior (figura 162).

Una cadena de operaciones lógicas siempre termina con una operación de salida (S, R ó =, se
explicaran en el parágrafo 9.1.8), o con una expresión entre paréntesis 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 Lógico (bit RLO)

El bit 1 de la palabra de estado se denomina bit RLO (RLO = ”resultado lógico”). Este bit almacena
el resultado de una operación lógica binaria.

Por ejemplo, la segunda operación de una cadena de operaciones lógicas consulta el estado de
señal de un contacto, obteniendo el resultado ”1” ó ”0”. A continuación, la operación combina este
resultado con el valor almacenado en el bit RLO de la palabra de estado, de acuerdo con los
principios de la lógica de Boole. El resultado de esta operación lógica se almacena en el bit RLO
de la palabra de estado, reemplazando el valor anterior en el bit RLO. Cada instrucción
subsiguiente en la cadena ejecuta una operación lógica con dos valores: el resultado que se
obtiene consultando el estado de señal del contacto, y el RLO actual.

El bit RLO puede ponerse absolutamente a ”1” con la instrucción Activación “S”. Utilizando una
operación lógica 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 operación lógica 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 operación (el bit con el que está ejecutando la
combinación). El estado de una operación lógica que tiene acceso de escritura a la memoria (S, R,
=) siempre es igual al valor del bit donde la operación está escribiendo, o bien, si no tiene lugar
ningún acceso de escritura, es igual al valor del bit direccionado.

El bit de estado carece de importancia para las operaciones lógicas que no accedan a la memoria.
Dichas operaciones ponen el bit de estado a ”1” (STA = 1) como las expresiones entre paréntesis

133
AUTOMATAS PROGRAMABLES SIMATIC S7

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

En la figura 15 se muestra los resultados de una combinación, en lenguaje de programación AWL y


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

Resultado
Programa
Bit STA de la Bit RLO Bit /ER Explicación
AWL consulta

0 Bit /ER= 0 significa que la próxima


operación 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 combinación.

9.1.6. Tablas de verdad

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

Tabla 37. Tabla de verdad al principio de una cadena lógica.

134
OPERACIONES BASICAS DE PROGRAMACION

Tabla 38. Tabla de verdad dentro de una cadena lógica.

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 lógico 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. Representación 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 operación “FP” que permite al programa reaccionar
ante un cambio de flanco positivo.

EJEMPLO: Flanco Positivo FP Esquema de relés


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 reacción a un cambio de flanco positivo.

Cuando el autómata 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 autómata programable almacena el resultado
lógico de la operación 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 operación FP pone el RLO a ”1”. La operación FP detecta un
flanco positivo en el contacto (por ejemplo, el estado de señal del RLO cambió de ”0” a ”1”). Si no
se produce ningún 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 operación 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 señal de la Estado de señal ¿Cambió el ¿Está excitada la


Ciclo No. entrada en el ciclo de la entrada en estado de señal 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 operación “FN” que permite al programa reaccionar
ante un cambio de flanco negativo.

EJEMPLO: Flanco Negativo FN Esquema de relés


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 reacción a un cambio de flanco negativo.

Cuando el autómata 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 autómata programable almacena el
resultado lógico, de la operación 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 operación FN pone el RLO a ”1”. La operación FN detecta un
flanco negativo en el contacto (por ejemplo. el estado de señal del RLO cambió de ”1” a ”0”). Si no
se produce ningún 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 operación 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 señal de la Estado de señal ¿Cambió el ¿Está excitada la


Ciclo No. entrada en el ciclo de la entrada en estado de señal 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 valoración 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 parágrafo. En los ejemplos de las figuras 166 y 167 se muestra la
programación de valoración de flancos positivos y negativos respectivamente, en estos ejemplos la
señal que tiene estado de señal “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 condición 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 señal "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 lógica

Para terminar una cadena lógica 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 operación anterior se puso a ”1”, S pone a ”1” el estado de señal
del contacto direccionado o de la bobina direccionada.
• R (Desactivar): si el RLO de la operación anterior se puso a ”1”, R pone a ”0” el estado de
señal 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 operación S (Activar) puede utilizarse para activar el estado de señal de un bit direccionado, es
decir, para ponerlo a ”1”. La operación R (Desactivar) puede utilizarse para desactivar el estado de
señal de un bit direccionado, es decir, para ponerlo a ”0”. Las operaciones S y R finalizan una
cadena lógica y son conocidas también con el nombre de Biestable RS

La operación S pone a ”1” el bit que direcciona si el resultado lógico de la instrucción precedente
es ”1”.

La figura 168 muestra cómo la operación S mantiene a ”1” el estado de señal de la bobina A 124.5
que ha direccionado hasta que la operación R cambia el estado de señal a ”0”. El que el estado de
señal de la bobina direccionada permanezca a ”1” hasta que la operación R lo ponga a ”0” muestra
el carácter estático de la operación S.

En el esquema de relés, cuando se activa el contacto abierto de la entrada E 124.0 (su estado de
señal cambia a ”1”) se cierra el contacto. La corriente fluye a través del contacto de la entrada E
124.0 y a través del contacto cerrado situado más abajo, excitando la bobina en la salida A 124.5
(el estado de señal 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. Después,
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 señal ”1”). La bobina se mantiene a sí
misma en tensión.

EJEMPLO: Activar-Desactivar (Biestable RS) Esquema de relés


El estado de señal "1" en la entrada E 124.0 Activa la salida
A 124.5 (estado de señal "1"). Si el estado de señal en E
124.0 cambia a "0" se mantiene el estado de la salida A
124.5, es decir se memoriza.
Aplicando estado de señal "1" en la entrada E 124.1
desactiva la salida A 124.5 (estado de señal "0"). E 124.0 E 124.1
Si se aplican simultaneamente los estados de activación (E
124.0) y desactivación (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 desconexión).

139
AUTOMATAS PROGRAMABLES SIMATIC S7

La operación R desactiva el bit que direcciona, es decir, lo pone a ”0” cuando el resultado lógico de
la operación precedente es ”1”

La figura 168 muestra cómo la operación R mantiene a ”0” el estado de señal de la bobina A 124.0
que ha direccionado, independientemente de que cambie el estado de señal del contacto que
impulsó la desactivación (E 124.1). El que el estado de señal de la bobina direccionada se
mantenga a ”0” hasta ser desactivado por una operación S muestra el carácter estático de la
operación R.

En el esquema de relés, la bobina de la salida A 124.0 activada por la operación S se desactiva (su
estado de señal 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 operación R.

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


figura 169 se muestra un ejemplo de biestable RS pero con prioridad a la conexión.

Biestable RS con prioridad a la conexión


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 conexión)

Cuando se trata de combinaciones binarias muy voluminosas es necesaria la memorización


intermedia de resultados, a fin de poderlos consultar a lo largo de la programación y continuar
posteriormente su elaboración. Para este almacenamiento intermedio se tiene siempre a
disposición los operandos marcas. Una marca que se ha utilizado como almacenamiento
intermedio da como resultado de combinación 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 después consultada
• Cuando se activa de nuevo, la misma marca intermedia, el resultado antiguo no estará mas
disponible durante la ejecución 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 Activación/Desactivación

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


marcas.

En la figura 170 se muestra un ejemplo del Flip-flop de activación/desactivación. La operación es


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

140
OPERACIONES BASICAS DE PROGRAMACION

La operación Flip-flop de activación/desactivación 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 operación permanece inalterado.

La operación Flip-flop de activación/desactivación se activa si el estado de señal en la entrada S es


“1” y en la entrada R es “0”. En otro caso, si el estado de señal en la entrada S es “0” y en la
entrada R es “1”, el Flip–flop se desactiva. Si el RLO es 1 en ambas entradas, el Flip-flop se
desactiva.

EJEMPLO: Filp-flop S/R Esquema de relés


Si el estado de señal 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 señal 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 señal son "0" no se produce
ningun cambio. Si son "1" domina el estado de
desactivación, 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 Desactivación/Activación

La operación Flip-flop de desactivación/activación 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 operación permanece inalterado.

La operación Flip-flop de desactivación/activación se desactiva si el estado de señal en la entrada


R es 1 y en la entrada S es 0. En otro caso, si el estado de señal 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 desactivación/activación.

141
AUTOMATAS PROGRAMABLES SIMATIC S7

EJEMPLO: Filp-Flop R/S Esquema de relés


Si el estado de señal 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 señal 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 señal son "0" no se produce
ningun cambio. Si son "1" domina el estado de
activación, 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 información
entre módulos 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 lógico de la operación.

Las operaciones L y T permiten un intercambio de información entre los módulos o áreas de


memoria siguientes:
• Entre módulos 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 imágenes 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:
– Imágenes del proceso de las entradas y salidas
– Marcas
– Areas de datos

Las operaciones de carga (L) y transferencia (T) intercambian información a través del acumulador.
La operación L escribe (carga) el contenido de la dirección fuente direccionada en el ACU 1,

142
OPERACIONES BASICAS DE PROGRAMACION

desplazando toda la información que encuentra en éste al ACU 2. El antiguo contenido del ACU 2
se pierde. La operación T copia el contenido del ACU 1 y lo desplaza a la memoria del destino
direccionado. Ya que la operación T solamente copia la información que se encuentra en el ACU 1,
ésta información 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 información a o
desde el ACU 1. La información puede tener el siguiente tamaño:
• 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 programación STEP 7 que implementa y


vigila secuencias controladas por tiempo. Las operaciones de temporización permiten al programa
ejecutar las funciones siguientes:
• Proveer tiempos de espera. Por ejemplo, después de un ciclo de inyección de plástico, 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 después de pulsar el botón de arranque.
• Generar impulsos. Por ejemplo, el programa emite impulsos que hacen que se encienda una
lámpara.

143
AUTOMATAS PROGRAMABLES SIMATIC S7

• Medir tiempo. Por ejemplo, el programa puede determinar cuánto tiempo se requiere para
rellenar un recipiente.

9.3.1. Operaciones de temporización

Step 7 permite ejecutar las siguientes operaciones de temporización:


• Arrancar uno de los siguientes tipos de temporizador:
SI: Impulso (S_IMPULS)
SV: Impulso prolongado (S_VIMP)
SE: Retardo a la conexión (S_EVERZ)
SS: Retardo a la conexión con memoria (S_SEVERZ)
SA: Retardo a la desconexión (S_AVERZ)

• Cargar un temporizador en uno de los formatos siguientes:


L: binario
LC: decimal codificado en binario BCD
• Consultar el estado de señal 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 temporización” 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 temporización.

Figura 173. Operaciones para una palabra de temporización.

9.3.2. Valor de temporización

Los bits 0 a 9 de la palabra de temporización contienen el valor de temporización en código binario.


Este valor indica un número de unidades. La actualización del tiempo decrementa el valor de
temporización en un intervalo dictado por la base de tiempo. El tiempo va decrementando hasta
ser igual a ”0”. El valor de temporización 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 temporización predefinido utilice la sintaxis siguiente:


• L W#16#wxyz
siendo: w = la base de tiempo (intervalo o resolución)
xyz = valor de temporización 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 automáticamente, redondeándose el valor al próximo valor
inferior con la base de tiempo correspondiente.

144
OPERACIONES BASICAS DE PROGRAMACION

El valor de temporización máximo que puede introducirse es de 9.990 segundos o de


2H_46M_30S.

Los bits 12 y 13 de la palabra de temporización contienen la base de tiempo en código binario. La


base de tiempo define el intervalo en que decrementa el valor de temporización. La base de
tiempo más pequeña es de 10 ms; la máxima es de 10 s. En la tabla 41 se muestra el código
binario de la base de tiempo.

Tabla 41. Base de tiempo y código binario.

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

Tabla 42. Resolución y rangos de la base de tiempos.

9.3.3. Configuración binaria en la célula de temporización

Cuando arranca un temporizador, el contenido de la célula de temporización 1 (ACU 1) se utiliza


como valor de temporización. Los bits 0 a 11 de la palabra baja del ACU 1 contienen el valor de
temporización en formato decimal codificado en binario (formato BCD: cada grupo de 4 bits
contiene el código binario de un valor decimal). Los bits 12 y 13 contienen la base de tiempo en
código binario. La figura 174 ilustra el contenido de la palabra baja del ACU 1 tras haber cargado el
valor de temporización 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 temporización como entero.

En la palabra de temporización se encuentra almacenado un valor de temporización en código


binario. La siguiente operación de carga (L) permite leer este valor binario en la palabra de
temporización y cargarlo en la palabra baja del ACU 1:

L <palabra de temporización>

Este tipo de carga se denomina carga directa de un valor de temporización.

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

Para el caso de la programación en lenguaje AWL y KOP los cuadros de temporizadores disponen
de una salida DUAL para la cual se puede indicar una dirección de palabra para leer el valor de
temporización en formato binario.

9.3.5. Leer valores de temporización en formato BCD

En la palabra de temporización se encuentra almacenado un valor en código binario. Con la


siguiente operación de carga (LC) se puede leer el valor en formato BCD de una palabra de
temporización y cargarlo a continuación en la palabra baja del ACU 1:

LC <palabra de temporización>

Además del valor de temporización se carga la base de tiempo. El valor contenido en la palabra
baja del ACU 1 como resultado de la operación 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
temporización en formato BCD.

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

146
OPERACIONES BASICAS DE PROGRAMACION

Para el caso de la programación en lenguaje AWL y KOP los cuadros de temporizadores disponen
de una salida DEZ para la cual se puede indicar una dirección de palabra para leer el valor de
temporización 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 temporización se va


decrementando desde el valor de arranque hasta ”0”. Cuando se utiliza la operación de carga L o
LC con una palabra de temporización 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

Señal 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 conexión

SS
Temporizador de A 124.0
retardo a la conexión
con memoria

SA A 124.0
Temporizador de
retardo a la
desconexión

Figura 175. Tipos de temporizadores.

147
AUTOMATAS PROGRAMABLES SIMATIC S7

9.3.7. Ejemplos de Temporizadores

A continuación 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 señal 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 señal permanezca a ”1” en la entrada de arranque, el temporizador
no se verá afectado por un cambio de señal 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 señal de
puesta a 0, el temporizador arrancará brevemente. Sin embargo, volverá a ponerse a 0
inmediatamente debido a la siguiente operación de puesta a 0 que se ejecuta en el
programa (representado como línea de impulsos en el diagrama de tiempos). De este
impulso no se obtiene ningún 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"

Reacción del temporizador

Consulta al estado de señal 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 señal en la salida A 124.5 da el resultado ”1” mientras dure la
operación de temporización.

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


estado de señal permanezca a ”1” en la entrada de arranque, el temporizador no se verá
afectado por un cambio de señal 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
señal de puesta a 0, el temporizador arrancará brevemente. Sin embargo, volverá a
ponerse a 0 inmediatamente debido a la siguiente instrucción de puesta a 0 que se ejecuta
en el programa (representado como línea de impulsos en el diagrama de tiempos). De
este impulso no se obtiene ningún 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

Reacción del temporizador

Consulta al estado de
señal 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 conexión: 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 señal en la salida A 124.5 da un estado de señal 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 señal de ”1” en la entrada de arranque, el temporizador no se verá
afectado por un cambio de señal 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 señal de
puesta a 0, el temporizador arrancará brevemente. Sin embargo, volverá a ponerse a 0
inmediatamente debido a la siguiente operación de puesta a 0 que se ejecuta en el
programa (representado como línea de impulsos en diagrama de tiempos). De este
impulso no se obtiene ningún 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
Reacción del temporizador

Consulta al estado de
señal 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 conexión 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 señal en la salida de temporización da ”1” cuando ha


transcurrido el tiempo.

3 El resultado de la consulta del estado de señal en la salida A 124.5 sólo 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 señal de ”1” en la entrada de arranque, el temporizador no se verá
afectado por un cambio de señal 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 señal de
puesta a 0, el temporizador arrancará brev emente, pero v olv erá a ponerse a 0
inmediatamente debido a la siguiente operación de puesta a 0 que se ejecuta en el
programa (representado como línea de impulsos en el diagrama de tiempos). De este
impulso no se obtiene ningún 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
Reacción del temporizador

Consulta al estado de
señal 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 desconexión: 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 señal en la salida A 124.5 da un estado de señal de ”1” si el


RLO está a ”1” en la entrada de arranque y el tiempo programado aún 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 señal 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 señal de
puesta a 0, el temporizador arrancará brev emente, pero v olv erá a ponerse a 0
inmediatamente debido a la siguiente operación de puesta a 0 que se ejecuta en el
programa (representado como línea de impulsos en el diagrama de tiempos). En este
caso, la consulta del estado de señal 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

Reacción del temporizador

Consulta al estado de
señal 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 programación 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 señal de un contador y combinar el resultado. La
consulta del estado de señal con la operación 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 código 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. Configuración binaria en el contador

Para poner el contador a un valor determinado hay que introducir un número 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 código 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 después de haber cargado el valor de contaje 127 y el contenido de la
célula de contaje después de haber activado el contador.

Figura 182. Contenido de la célula 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 código binario. Para leer el valor
binario de una palabra de contaje hay que cargarla en la palabra baja del ACU 1 con la siguiente
instrucción:

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 operación L puede utilizarse para su
posterior procesamiento (transferir el valor con la operación 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 operación de activación
correspondiente.

9.4.5. Leer un valor de contaje en formato BCD

En una palabra de contaje se encuentra almacenado un valor en código 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 operación 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 operación 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 operación de carga LC puede


utilizarse para su procesamiento posterior, por ejemplo para transferirlo (operación 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 señal cambia de 0 a 1) en la entrada S de la operación Incrementar y
decrementar contador.

El contador se desactiva si se produce un flanco positivo en la entrada R. La desactivación 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 señal 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 activación, el contador se pone a 3. Un cambio de
”1” a ”0” en la entrada de activación no afecta al contador.

2 Si el RLO cambia de ”0” a ”1” en la entrada de cuenta atrás, el contador decrementa. Un cambio de
”1” a ”0” en la entrada de cuenta atrás no afecta al contador.

3 El resultado de la instrucción de consulta del estado de señal 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 señal 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 señal de
puesta a 0, entonces el contador incrementa su valor momentáneamente, pero se desactiva de
inmediato debido a la siguiente instrucción de puesta a 0 en el programa. (El incremento se indica
mediante una línea de impulsos en el esquema de la figura 13-5). Si se consulta el estado de señal
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 señal en la salida

MW 10
Cargar: L, LC MW 12

Figura 183. Explicación de un ejemplo de contador Incrementar/Decrementar.

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

156
OPERACIONES BASICAS DE PROGRAMACION

EJEMPLO: Contador Incrementar/Decrementar (continuación)


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. Programación 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 señal cambia de 0 a 1) en la entrada S de la operación Incrementar
contador.

El contador se desactiva si se produce un flanco positivo en la entrada R. La desactivación 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 señal 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 señal cambia de 0 a 1) en la entrada S de la operación Decrementar
contador.

El contador se desactiva si se produce un flanco positivo en la entrada R. La desactivación 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 señal 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

También podría gustarte