• 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 | El caso del armario encantado

El caso del armario encantado

El caso del armario encantado

por Iñigo Gútiez · 18 comentarios

Vale.

Igual el título es un poco alarmante, y Alfonso no tiene problemas de fantasmas en sus armarios eléctricos y solo quiere realizar un registro de eventos en Step 7.

Pero si que suelen pasar cosas raras en las máquinas. A veces aparecen golpeadas, cosas rotas… y nunca nadie ha hecho nada.

¿Deberíamos pensar que hay fantasmas?

En fin, que eso se lo dejamos a Iker Jiménez.

Vayamos al email que recibí hace unos días que ha dado pie a esta entrada:

Buenas Iñigo,

Dispongo de diez armarios que tienen dos puertas (trasera y delanera). Cada una de las puertas tienen un switch de un contacto Normalmente Abierto (NA). Cada contacto está cableado a una entrada digital del PLC.
Me gustaría poder controlar la apertura de cada puerta y que se grabe el día y hora de cada vez que se produzca un evento de cambio de estado.
No sé cómo estructurar el programa y me gustaría si me pudieras ayudar.
Un saludo y muchas gracias de antemano,
Alfonso

Bien.

No se si Alfonso tiene problemas de eventos sobrenaturales de apertura y cierre de puertas, pero vamos a echar una mano, por si acaso en el registro de eventos en step 7.

Hemos intecambiado más información en el que se quiere tener el histórico en el PLC, con una longitud de unos 50 eventos, y todos juntos en el mismo DB, de tal forma que todo esté en un único sitio.

Cómo registrar eventos en step 7

Vayamos al grano

Tenemos 10 puertas que pueden abrirse y cerrarse del que sabemos su estado debido a un final de carrera.

Al ser NA, estará a 1 cuando esté cerrada, y a 0 cuando esté abierta.

De cara a saber que está cerrada, es lo ideal, ya que en caso de rotura de hilo, se considerará que la puerta está abierta, pudiendo alertar de este estado.

Lo que vamos a hacer es lo siguiente:

  • Crearemos un UDT que contendrá la hora, el número de puerta, y el evento (apertura o cierre).
  • También un DB global donde meter un array de 50 posiciones de este UDT con los datos de cada evento
  • Necesitaremos un FC que registre el evento en el histórico
  • Finalmente, un FC que englobe las diferentes puertas y el tratamiento de los eventos de cada una de ellas.

Se puede hacer de más formas, incluyendo uso de FB.

Lo he querido hacer así, ya que si Alfonso me pregunta cómo hacer esto, es porque creo que necesita un nivel sencillo de operar.

Creo que hacerlo con un FB y un FC, complicaría un poco la sencillez propuesta.

La forma de funcionar, será simple:

  • Detectamos el flanco positivo o negativo de la puerta
  • Movemos el histórico una posición del DB, para dejar espacio al nuevo registro
  • Registramos en la posición 1, el nuevo registro de evento en step 7

Adicionalmente, puedes filtrar las señales, para que no se registren aperturas y cierres muy rápidos. Es decir, que si abres la puerta y la cierras de la misma, se considere que no se ha abierto.

Eso ya lo dejo a gusto de cada cual.

¿Lo vemos?

Vídeo de cómo realizar un registro de eventos en Step 7

Ni que decir tiene, que la idea de este ejemplo lo hemos visto en otras ocasiones, y que es aplicable a otras utilidades.

Te invito  a que eches un vistazo al vídeo donde se muestra el ejemplo trabajando

 

¿Qué te ha parecido el  registro de eventos en Step 7?

Espero que te haya parecido útil.

Este ejemplo, con el proyecto, lo dejo en el anexo del curso de Step 7.

¿Lo ves útil para aplicar algo similar en tus automatizaciones?

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.

    18 Comentarios

  1. alejandro GARCIA dice

    27 septiembre, 2018 a las 12:29

    Buenisimo.
    hola quiero aprovechar el momento para que por favor me aclares unas dudas.
    tengo un HMI SMART LINE MODELO 6AV6 648-0BC11-3AX0.
    como hago para programarla ya que en WINCC FLEXIBLE 2008 SP2, no aparece en el listado de pantallas?.
    te agradezco.
    Saludos.

    Responder
    • Iñigo Gútiez dice

      27 septiembre, 2018 a las 13:02

      Si miras en las especificaciones, verás que dice que necesitas wincc2008 sp4 por lo menos :

      6AV6648-0BC11-3AX0
      SIMATIC HMI SMART 700 IE
      SIMATIC HMI SMART 700 IE, SMART Panel, Touch operation, 7″ widescreen TFT display, 65536 colors, RS422/485 interface, Ethernet (RJ45) interface, with CE certificate, configurable from WinCC flexible 2008 SP4 China; contains open-source software, which is provided free of charge see enclosed CD

      Responder
  2. David dice

    27 septiembre, 2018 a las 14:04

    Una duda Iñigo. No se como ejecuta la copia de datos la instrución BLKMOVE pero si copias desde el DB100DBX0.0 al mismo DB100 pero a partir de DBX12.0 ¿no se solapan o machacan los datos?. Por ejemplo el DB100.DBB0 se copia al DB100.DBB12 pero cuando toque copiar de origen el DB100.DBB12 al DB100.DBB24 ya estaría modificado el valor de la copia anterior. ¿No se debería copiar por ejemplo del DB100 al DB101 y volver a copiar al DB100 pero a partir de la posición 12?
    Saludos!

    Responder
    • Iñigo Gútiez dice

      27 septiembre, 2018 a las 15:18

      Yo también suelo hacerlo con un paso intermedio, pero como ves, puedes hacerlo directamente también.
      En caso de que el ancho de memoria fuera muy grande, desconozco si podría dar problemas.
      Saludos

      Responder
  3. Noeli dice

    27 septiembre, 2018 a las 16:34

    Buenos días Iñigo, muy buenas tus aclaraciones

    Responder
  4. Ruben dice

    29 septiembre, 2018 a las 18:59

    Hola Iñigo.

    Gracias a ti y a Alfonso por el video explicativo. Has resuelto una duda que tenia yo personalmente desde hacia tiempo con el movimiento de datos dentro de un bloque.

    Gran explicacion

    Un saludo

    Responder
  5. gerardo dice

    29 septiembre, 2018 a las 19:08

    buenisimo!!!!!!!!!!

    Responder
  6. Alejandro Hernandez Jimenez dice

    18 octubre, 2018 a las 14:40

    Buen dia Iñigo

    Espero te encuentres bien. No se puede ver el video.

    saludos

    Responder
    • Iñigo Gútiez dice

      18 octubre, 2018 a las 18:36

      Revisa la conexión, porque a mi me funciona sin problemas.

      Responder
  7. Rob dice

    20 marzo, 2019 a las 15:42

    Excelente vídeo

    Estimado Iñigo si quisiera crear una pantalla en WinCC Flexible 2008 donde publicar la constante actualización del DB100 que mencionas, podrias realizar un ejemplo? Tengo entendido que tendria que realizarlo mediante un script, pero no estoy seguro.

    Responder
    • Iñigo Gútiez dice

      20 marzo, 2019 a las 20:30

      No sé muy bien qué es lo que quieres hacer, pero para formarte en WinCC Flexible 2008, está el curso completo sobre ello.

      Responder
  8. juan manuel dice

    7 agosto, 2019 a las 19:36

    Buenas tardes Iñigo, creo que hay algún error porque no se actualiza la hora del reloj y entiendo que en la CPU lo tendrías sincronizado con la del ordenador.

    Responder
    • Iñigo Gútiez dice

      7 agosto, 2019 a las 20:02

      ¿Te refieres en el propio ejemplo? En los DB, no puedes ver la fecha y hora de forma directa cuando estás online.

      Responder
      • Juan Carlos dice

        4 marzo, 2020 a las 20:27

        Buenas noches Iñigo.
        Entonces, de qué forma puedo exportar estos valores registrados para poder ver la hora en que se produjo cada evento?
        Muchas gracias

        Responder
        • Iñigo Gútiez dice

          5 marzo, 2020 a las 7:50

          A qué te refieres con exportar? Si te refieres a sacarlos del plc, hay muchas formas de comunicación con el, pero entonces no se habría hecho de esta forma sino que lo tendrías hecho directamente en el PC donde registres mediante un opc o similar

          Responder
  9. Sergi dice

    22 marzo, 2021 a las 18:22

    Hola Iñigo. Primero darte la gracias por estos videos tan ilustrativos. Por necesidad de una aplicacion he realizado este ejemplo para realizar un registro de roturas de una maquina de trefilar. La aplicacion funciona correctemente ( lee los registros de roturas de cada paso al finalizar cada turno y los va almacenando correlativamente en la estructura del db asisgnado). Lo curioso es que con el simulador funciona correctamente pero cuando cargo en PLC cuando se ejecuta el evento carga en el primera estructura las roturas correctamente pero lo que habia en la primera estructura se carga en el resto de estructuras. Estas variables las visualizo en un basic panel ktp600. Es curioso que en el simular no tenga ningun problema y en PLC si…..

    Responder
    • Iñigo Gútiez dice

      22 marzo, 2021 a las 19:55

      Prueba a copiar a una estructura intermedia. Es decir, del DB a un DB de paso, y del DB de paso de nuevo al primer DB. No hagas la copia directamente sobre el propio DB, porque eso puede que te esté fallando.

      Responder
      • Sergi dice

        23 marzo, 2021 a las 21:42

        Hola. Gracias por la respuesta. Finalmente lo que hice fue como hago tan solo 5 registros, es copiar el registo 4 al 5 despues del 3 al 4 y asi sucesivamente hasta correr los 5 registros, de esta manera me lo hace correctamente.

        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