• Saltar a la navegación principal
  • Saltar al contenido principal
  • Saltar al pie de página

Programación Siemens

Cursos online de TIA Portal y PLC Siemens.

  • Cursos
  • Blog
  • Mi cuenta
    • Mi cuenta
    • Foros
    • Curso HMI con Python y Qt-Designer
    • Curso de AWL
    • Curso de iniciación a la Industria 4.0
    • Curso Express de TIA Portal
    • Curso de WinCC Flexible 2008
    • Crear HMI con OPC y VB.NET
    • Crear HMI con Snap7 y VB.NET
    • Curso ViSnap7
    • Curso de TIA Portal para CPU 1200
    • Curso de Step 7 V5.x
    • Curso de comunicaciones IE y Profinet
  • Contacto & Faq
Home | blog | O exclusiva en Step 7 – Crear un telerruptor

O exclusiva en Step 7 – Crear un telerruptor

O exclusiva en Step 7 – Crear un telerruptor

por Iñigo Gútiez · 17 comentarios

En esta entrada te voy a enseñar cómo puedes crear un telerruptor usando la O exclusiva en Step 7.

Como recordarás (sino te lo recuedo yo) la O exclusiva lo que hace es una combinatoria binaria de tal forma que el resultado es TRUE cuando los bits intervinientes tienen valor diferente entre sí y un FALSE si son iguales.

Contenido

  • 1 O exclusiva en Step 7: ejemplo de un telerruptor
    • 1.1 ¿Cómo vamos a usar la O exclusiva en Step 7?
    • 1.2 Explicación del código
    • 1.3 ¿Pero no se puede hacer más fácil aún?
  • 2 Telerruptor sin usar AWL
  • 3 Espero tus comentarios

O exclusiva en Step 7: ejemplo de un telerruptor

Normalmente en los programas que he visto por ahí para realizar un telerruptor o balanza se suelen usar Set y Reset.

Recordemos que una balanza o telerruptor lo que hace es que alterna el valor de una salida digital cada vez que una entrada se pone a TRUE.

De esta forma, cuando por primera vez pones la entrada a 1, la salida se pone a 1 también.

La entrada vuelve a cero, y la salida sigue estando a 1.

Ahora, si vuelves a poner la entrada a 1, la salida que estaba a uno, cambia poniéndose a cero.

Volviendo a poner la entrada a 1, la salida se pondría a 1, y así sucesivamente.

¿Cómo vamos a usar la O exclusiva en Step 7?

La gracia de este ejemplo, es dar un uso a la O exclusiva ya que como digo, se puede hacer con Set y Reset.

Ya vimos en otro ejemplo cómo crear un telerruptor con Set y Reset cuando hablábamos de la lógica boolena.

Pero así aprendemos otra forma de hacerlo, y ya de paso, practicamos algo de AWL.

La idea es que podamos reutilizar el código de este telerruptor, por lo que vamos a usar, esta vez, un FC al que le suministraremos 3 señales:

  • Señal de entrada del telerruptor (M100.0)
  • Salida de la balanza o telerruptor (M200.0)
  • Marca auxiliar (M50.0)

El FC tendría una pinta como esta:

O exclusiva en Step 7 - Crear un telerruptor

Y el interior del FC que le he llamado «Balanza» sería este:

O exclusiva en Step 7 - Crear un telerruptor

Explicación del código

Te cuento lo que he hecho.

La idea es leer la señal de entrada y con ella, alternar el valor de la balanza.

Como solo queremos que se ejecute una vez, nos vamos a apoyar en una marca usando un pulso y un salto.

De tal forma, que cuando la señal de entrada pase de 0 a 1, se ejecutará el código que queremos, y cuando bien siga pulsado a 1, o se ponga a cero, no se ejecute:

 U     #Sennal        // Leemos la señal de entrad del telerruptor
 FP    #Auxiliar      // Generamos un pulso para que solo se ejecute una vez
 SPBN  EXIT     

Dentro de la parte que si queremos que se ejecute, tenemos lo siguiente:

 SET                 // Ponemos una variable temporal a 1
=     #temporal
X     #temporal      // Realizamos la O exclusiva entre esta variable temporal
X     #Balanza       // Y nuestra señal de balanza o telerruptor
=     #Balanza        

Lo que hacemos en este caso, es apoyarnos en una variable temporal para realizar la O exclusiva con la señal de la balanza, de tal forma, que como siempre realizamos una O exclusiva con una señal que está a uno, lo que hará es cambiar de valor de forma alterna en función de lo que ella misma tenga de valor.

Recuerda que la tabla de la verdad de la O exclusiva es la siguiente:

O exclusiva en Step 7

Al final del programa tenemos:

SET   
SAVE                 // Ponemos el ENO a 1 para que se propague si fuera necesario

Para lo que lo pongo es para que el ENO siempre este a a uno.

¿Pero no se puede hacer más fácil aún?

Espero que te hayas dado cuenta, que lo de realizar la O exclusiva en Step 7 para realizar una balanza se puede simplificar aún más.

Si tenemos en cuenta que hacemos una O exclusiva con un valor que siempre está a uno… ¿no es lo mismo que dar la vuelta a la propia señal?

Bingo.

Es que realmente es lo que queremos ¿no?

Pues sí, se puede simplificar aún mucho más, simplemente negando la señal de balanza e igualando:

O exclusiva en Step 7 - Crear un telerruptor - 3

¿Ves lo que te digo?

Realmente con hacer lo siguiente sería suficiente:

UN    #Balanza         // Negamos nuestra señal de balanza o telerruptor
=     #Balanza         // Obteniendo el nuevo valor de la salida

Vale.
Te he troleado un poco con lo de la O exclusiva en Step 7 jeje.
Pero ahora, ya sabes cómo usarla, y dos formas de hacer lo mismo… ¿o no?

Telerruptor sin usar AWL

Como decía Súper Ratón: ¡no se vayan todavía! , ¡aún hay más!

Para los que no están muy duchos en AWL, te propongo otra alternativa muy muy sencilla basada en negar la entrada, haciendo un FC muy sencillo que tenga simplemente este código:

O exclusiva en Step 7

Tela de complicado ¿eh?

Vale. Pues este código irá asociado con la llamada:

O exclusiva en Step 7

Funciona exactamente igual que el que he realizado en AWL.

La diferencia es que el pulso lo he realizado en el exterior (por variar) y no usar ni siquiera los saltos.

Lógicamente podrías colocar todo este código en el interior del FC2 haciendo algo parecido al realizado en AWL pero en ladder.

Pero la idea de este ejemplo, era realizarlo lo más sencillo posible usando las instrucciones más básicas posibles.

Espero tus comentarios

Como siempre, espero que te haya gustado y que te sea útil.

Si se te ocurre otra forma de realizarlo,  ¡ya sabes!

Por supuesto, este ejemplo irá incluido en la próxima edición de Cómo programar Step 7 y no morir en el intento que espero actualizarlo a lo largo de este año.

Recuerda que puedes apuntarte en Guorker.com donde por una cuota mensual, tendrás tarifa plana en todos los cursos disponibles en la plataforma.

Iñigo Gútiez
Iñigo Gútiez

Enseño a programar PLC de Siemens a través de mis cursos.
Más información sobre mi aquí

Puedes seguirme en cualquiera de las siguientes redes sociales.

Publicado en: blog

Interacciones con los lectores

    Deja un comentario Cancelar

    Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

    17 Comentarios

  1. David dice

    24 mayo, 2017 a las 18:42

    Iñigo y yo comiendonos un poco la cabeza en KOP con el teleruptor usando las marcas Set y Reset y resulta que en AWL es un juego de niños. Siempre nos sorprendes!!!
    Saludos!!

    Responder
    • Iñigo Gútiez dice

      26 mayo, 2017 a las 0:51

      jaja Gracias David!

      Responder
  2. José dice

    24 mayo, 2017 a las 21:46

    Que bueno…

    Responder
  3. RINO ISMAEL SIMANCAS dice

    24 mayo, 2017 a las 21:57

    Muchas Gracias por tus ejemplos , pero son tan sencillos que lo he Realizado tal cual como esta en ejemplo en ladder y no me Funciona .
    Gracias.
    saludos.

    Responder
    • Iñigo Gútiez dice

      24 mayo, 2017 a las 22:02

      Hola.
      La señal de la balanza la has puesto como in/out?
      Mira que no la hayas puesto como input.
      Saludos

      Responder
  4. Ildefonso Cequiel dice

    24 mayo, 2017 a las 22:55

    Muchas gracias por la aplicacion me servira de mucha utilidad.
    He visto en un post una aplicacion de puesta en marcha horaria para camaras frigorificas.Te pediria por favor si me puedes pasar la aplicacion.La colocaria en un programa que estoy programando y me serviria para poner en marcha diferentes aplicaciones

    Responder
    • Iñigo Gútiez dice

      24 mayo, 2017 a las 23:58

      Hola,
      Los ejemplos como ese, son exclusivamente accesibles con la adquisición del curso de como programar Step 7 y no morir en el intento.
      He visto que lo tienes, así que tiene que estar en el listado de proyectos.

      Saludos

      Responder
      • CKYEL dice

        25 mayo, 2017 a las 13:06

        Buenos dias ante todo gracias por el ejemplo pero tengo una duda al pasar la fc a awl no me sale la variable temporal podrias decirme como la cargo
        Gracias

        Responder
        • Iñigo Gútiez dice

          26 mayo, 2017 a las 0:48

          Tienes que declarar las variables en la parte de declaración de variables en la cabecera del FC.
          En cualquier caso, la idea no es que os de el código mascado, sino que veáis la idea y fabriquéis el FC por vuestra cuenta.
          Saludos

          Responder
  5. Daniel dice

    25 mayo, 2017 a las 3:29

    Que te parece si lo haces con un contador?

    Responder
    • Iñigo Gútiez dice

      26 mayo, 2017 a las 0:47

      Hombre, por poder, se puede. Pero los contadores son para otra cosa, no para hacer este tipo de cosas a mi juicio.
      Saludos

      Responder
  6. Roger dice

    25 mayo, 2017 a las 21:38

    Hola Iñigo, gracias una vez más por compartir tus conocimientos y soluciones. Gracias a ellas, programadores novatos como yo, vamos dominando pasito a pasito la programación de automátas.
    Creo que lo verdaderamente interesante sería calcular cuanto se demora en ejecutarse esta solución y las ya tradicionales (por ejemplo con flip flop), para ver que beneficios nos puede traer en la velocidad ejecución de nuestros programas (si le damos otro uso que no sea el de detectar el estado de un pulsador). De lograr medir este tiempo, te comento.

    Responder
    • Iñigo Gútiez dice

      26 mayo, 2017 a las 0:50

      Teniendo en cuenta la porción de codigo del que hablamos, creo que es irrelevante. Muchos flipflop tendías que usar para tener que preocuparte por el tiempo de ciclo que tarda uno u otro. Yo más bien te diría que uses aquel con el que te sientas más cómodo.
      Saludos

      Responder
  7. Ricardo dice

    7 junio, 2017 a las 11:32

    Muy Bueno!!!!

    Responder
    • Ricardo dice

      7 junio, 2017 a las 11:34

      ¿ Como se escala una señal no lineal ?

      Responder
  8. GREGORIO RIVAS dice

    11 octubre, 2020 a las 12:47

    Hola Iñigo:
    Quiero programar un PLC para que me realice este cálculo de una forma automática, dentro de las secuencias del programa.
    Me puedes ayudar?
    Partiendo de los datos de calibración de cada bomba dosificadora, básicamente % inverter bomba y la cantidad que dosifica con la bomba EN MARCHA durante 10 segundos exactos.(1)
    Quiero saber para una cantidad de producto X (ejemplo 125 gr) a que tanto por ciento del inverter de la bomba dosificadora tengo que poner para que me dosifique esa cantidad en 10 segundos.
    Eso lo realizaremos para varias bombas simultáneamente, ya que necesito que todas las bombas dosifiquen los diferentes productos de la receta de una manera simultánea y en el mismo tiempo exactamente para obtener una receta regular y uniforme.
    1. Función recta de las cantidades en gramos que dosifica la bomba en función del % del inverter de la bomba. Mínimo 10% y máximo 60%.

    Ejemplo: queremos saber para una cantidad determinada de 125 gramos, que % del inverter tiene que ponerse para que la bomba dosifique esa cantidad en un tiempo de 10 segundos. El resultado Y es del 31.878%
    2. (%) inverter cantidad buscada.
    3. Cantidad en gramos de producto a dosificar.( X) en gramos)
    4. Tiempo fijo de dosificación de la bomba en marcha 10 segundos

    ¿Como puedo programar esto en un PLC?
    ¿ Es posible?

    Muchas gracias
    Gregorio

    Responder
    • Iñigo Gútiez dice

      13 octubre, 2020 a las 21:10

      Es cuestión de que hagas los cálculos matemáticos sabiendo lo que quieres conseguir, los datos de la bomba etc.
      Si lo puedes hacer en un papel con las ecuaciones matemáticas adecuadas, el PLC también las puede hacer. Es cuestión de que las programes.

      Responder

Footer

· Acerca de
· Misión, Visión y valores
· Aviso Legal y Política de Privacidad
· Condiciones de Venta
· Política de cookies
Utilizamos cookies propios y de terceros para mejorar nuestros servicios y tu experiencia de usuario. Si continuas navegando, consideramos que aceptas su uso. Aceptar Política de cookies
Política de Cookies

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary
Siempre activado
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Non-necessary
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.
GUARDAR Y ACEPTAR