SET y RESET en AWL y alguna cosilla más.

¿Ya sólo nos queda ver SET y RESET en AWL en lógica binaria?

Bueno, a decir verdad… no. Queda también ver los pulsos o flancos, además de cosas que afectan al RLO.

set y reset en AWLPero a decir verdad, poco más vamos a ver de momento. Tampoco se trata de pegarse un atracón de lógica booleana en AWL. Se trata fundamentalmente de entender muy bien que es el RLO, para qué sirve y cómo se utiliza. Si en estas dos lecciones aprendes a entenderlo podemos darnos por satisfecho. La destreza del uso de la lógica booleana la cogeras programando nuevos PLC de Siemens, por eso no te preocupes.

¿Qué es un set y reset en AWL?

Buceando con el amigo Google, he encontrado la imagen dinámica de la derecha. La verdad es que está muy bien para explicar lo que hace si no lo tienes aún claro.

Un SET no es mas que fijar a uno una variable booleana. Como la has fijado, esta variable seguirá a uno aun cuando las condiciones de ponerla a uno desaparezcan.

Se diferencia de una igualación en que en esta,  el resultado final es dependiente en todo momento de las condiciones para estar a uno o a cero. Mientras que las condiciones se cumplen la variable está  a uno. Cuando una de las condiciones falla, la señal cae.

Aquí no. Una vez dadas las condiciones la señal estará a uno indefinidamente… o hasta que se le haga un RESET.

Y es que el RESET lo que hace es fijar a cero la variable. Como en el caso anterior, aunque las condiciones de reset desaparezcan, la señal seguirá a cero y no recobrará su estado de uno hasta un nuevo SET.

¿Qué pasa si se dan ambas condiciones, SET y RESET en AWL?

Pues lo primero que habría que darte un capón por hacer un programa en el que el set y reset se de simultáneamente.

¿Puede darse ese caso?

Porsupuestísimo que sí.

¿Es grave?

No conozco a nadie que haya enfermado de ello, pero mejor evitarlo.

¿Qué pasa si se da?

La respuesta seguro que la sabes. Depende.

¿De qué depende ?

De según como se ejecute todo depende… (léase a lo Pau Donés).

Como bien sabes, si ambas condiciones se dan simultáneamente y seguidas una de otra, la que sobrevivirá del envite será la segunda.

Ahora bien, si hay distancia en el programa, imaginemos el SET al principio del programa, el RESET a eso de la mitad, la cosa puede hacer cosas pintorescas ya que la variable entre el SET y el RESET estará a uno con lo que ello pueda conllevar en lo que haya en el programa entre estos dos puntos.

A partir del RESET se pondrá a cero hasta el siguiente ciclo de scan que se volverá a poner a uno si las condiciones se mantienen. Tendríamos por tanto la variable la mitad del ciclo a uno y la otra mitad a cero… una fiesta.

Por tanto, mejor evitar estas circunstancias y a ser posible, el set y el reset que estén seguidos siempre que sea posible. Por este posible problema y porque será más fácil de seguir el programa.

 ¿Esto sólo se puede dar en AWL?

No. Ahora vamos a ver cómo se activan y se desactivan, pero lo dicho anteriormente vale para todos los lenguajes disponibles. Por tanto tendrás que tener cuidado con el Set y Reset en AWL, en FUP o en KOP

¿Qué pasa si mezco Set, Reset e igualaciones?

Espero que esto no se te haya pasado siquiera por la cabeza… cárcel directamente. Punto. Y sin galletas en el desayuno hasta nuevo aviso.

 Vale, vale… pero ¿qué hay del SET y RESET en AWL?

Bien. Te lo voy a explicar con un ejemplo sencillo:

O E0.0

O E0.1

S A 1.0

U E0.2

U E0.3

R A1.0

¿Chupado no?

Como bien imaginarás, la señal A1.0 se pondrá a uno, cuando el OR formado por la E0.0 y E0.1 de como resultado un uno poniendo el RLO a uno.

Igualmente, la A1.0 se podrá a cero, cuando el AND de la E0.2 y E0.3 se ponga a uno poniendo el RLO también a uno haciendo por tanto el reset.

En definitiva, el Set y el Reset se ejecutarán forzando la marca o salida en una dirección u otra, cuando el RLO esté a uno y pasando olímpicamente del Set o Reset cuando el RLO esté a cero.

¿Fácil no?

Forzado del RLO – SET y CLR

Unas instrucciones muy interesantes son las de forzar el RLO, es decir, cargar en el RLO un cero o un uno de forma incondicional hasta que haya una nueva operación de combinatoria booleana:

  • SET: Fijaremos con ello el RLO a uno
  • CLR: Fijaremos con ello el RLO a cero

 

Por ejemplo:

U E0.1

U E0.2

SET

= A1.0

 ¿Cuánto valdrá A1.0?

Pues efectivamente, la salida A1.0 estará forzada a uno ya que da igual lo que pase con la combinación de las dos entradas ya que luego se fuerza el RLO a uno y se iguala su valor a la A1.0

 Flancos en AWL

Finalmente vamos a ver los pulsos. Hay dos:

  • Positivo (FP)
  • Negativo (FN)

Los pulsos como bien sabes son instrucciones que ponen el RLO a uno cuando se cumple el escalon de subida de cero a uno (el positivo) o que el RLO previo pase de uno a cero (el negativo).

Necesitan una marca auxiliar que es la que almacena la información de cómo estaba el RLO en el ciclo anterior.

Mejor con un ejemplo:

U E0.0

FP M1.0

= A1.0

Lo que hará este mini ejemplo será: Mientras que la marca E0.0 esté a cero, la el RLO tras el pulso estará a cero. Cuando la entrada pase a uno, entonces en ese ciclo de scan el pulso pondrá el RLO a 1 haciendo que la salida A1.0 se active en ese ciclo de scan. En el ciclo siguiente aún estando la entrada a uno, la salida volverá a cero ya que el RLO a la salida del pulso estará a cero.

Si hicieramos un ejemplo similar con el flanco negativo:

U E0.0

FN M1.0

= A1.0

El comportamiento sería igual salvo que esta vez, el RLO después del FN se pondrá a uno cuando la señal de la E0.0 pase de estar a uno a estar a cero. Análogamente al caso anterior sólo estará a uno en ese ciclo de scan, volviendo a cero en los sucesivos con independencia de que la salida siga a cero en este caso.

Como siempre, te dejo con un vídeo donde vamos a ver una forma más gráfica lo que acabas de leer:

 

 

¿Qué te ha parecido?

Como siempre me gustaría saber tu opinión. Como siempre, si te ha gustado la entrada, te pido que la compartas a través de tus redes sociales para que llegue al máximo de gente posible.

Para finalizar invitarte a que te pases por la tienda online  y si ves algo que te interese hazlo a través del blog para colaborar con el mantenimiento de este.

 

Acerca de Iñigo Gútiez

Ingeniero industrial por la Escuela de Ingenieros Superiores de Bilbao. Trabajo como ingeniero de proyectos y automatización en Guardian Industries

Te puede interesar

curso en pdf de Step 7

El curso en pdf de Step 7 V5.x se vuelve una Rolling Release

Muchos de los lectores han comprado el curso en pdf de Step 7 “Cómo programar en …

8 Comentarios

  1. Como siempre fantastico, gracias por tu tiempo.

  2. excelente amigo.

    estoy enmpezando apenas con el awl
    si me sirve tus clases para emepzar a tener una idea.

    saludos

  3. Pues nada. Recién iniciado en AWL que estoy.

    Con lo feliz que vivía yo con mis funciones y contactos.

    😀

  4. Julian Valencia Hernandez

    muy buenos videos. gracias

  5. gracias Iñigo

  6. Muchas gracias por todo el esfuerzo que estás realizando con este curso que de manera altruista nos impartes….y me sirve de mucho pues recientemente finalice un cursillo de mantenimiento de instalaciones automatizadas controladas por autómatas programables.
    Y además de refrescarme la memoria aprendo truquillos nuevos.

    De nuevo agradecerte tu tiempo y esfuerzo…por cierto lo he recomendado a todos mis compañeros de cursillo!!!