• 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 de TIA Portal para CPU 1200
    • Curso Express de TIA Portal
    • Curso de AWL
    • HMI con OPC UA en Python y QT-Designer
    • Curso HMI con Python y Qt-Designer
    • Curso de iniciación a la Industria 4.0
    • Curso de comunicaciones IE y Profinet
    • Curso de WinCC Flexible 2008
    • Crear HMI con OPC y VB.NET
    • Crear HMI con Snap7 y VB.NET
    • Curso ViSnap7
    • Curso de Step 7 V5.x
  • Contacto & Faq
Home | TIA Portal | Solución al caso del registro rapidito

Solución al caso del registro rapidito

Solución al caso del registro rapidito

por Iñigo Gútiez · 17 comentarios

Esta semana resolvemos el caso del registro rapidito que veíamos la semana pasada.

Quedaba en el aire si la fórmula teórica que te presentaba iba a funcionar… o no.

Vamos a ver que la solución tiene dos partes: la adquisición de los datos en el PLC y luego volcar estos datos en un PC.

En la parte del PLC, la solución está más o menos clara: tener un hardware (tarjetas) de adquisición más rápidas que lo que queremos registrar y luego una CPU que sea lo suficientemente rápida para hacerlo en un OB cíclico.

En mi caso, y para hacer las pruebas, lo he hecho con un S7-1200. Los datos que queremos registrar los he simulado y se presuponen adquiridos.

Luego, simplemente hay que hacer el proceso de captura en un OB cíclico al tiempo deseado. En el ejemplo vamos a ir desde los 3ms hasta 1ms viendo que funciona sin problemas esta parte.

Por otro lado queda la adquisición en el lado del PC. Para ello he desarrollado un pequeño programa en Python en modo consola.

Lo que hace este programa es ir leyendo las veces que le digamos los bloques de datos de forma alternativa y finalmente generarte un archivo de texto plano con la información adquirida.

Para ver que funciona correctamente he procesado 3 variables:

  • Una variable que representa un contador de ciclos del OB30 para ver que efectivamente no perdemos información.
  • Una variable entera con el segundo del reloj del sistema
  • Una variable donde almacenar los ms del reloj del sistema. Con ello vamos a ver que la captura efectivamente se realiza a los tiempos marcados.

Por tanto con esto vemos que por un lado somos capaces de registrar varias variables (3) y además en estas variables tomamos los valores que nos certifica el buen funcionamiento: por un lado tenemos que ver que cada línea del registro contiene todos los ciclos del contador (1,2,3,4…) sin que haya saltos, y por otro lado, con los ms del reloj tenemos que ver que entre registros, el salto en estos ms es el tiempo deseado de muestreo.

La razón de usar Python es que es un lenguaje muy liviano y rápido en la ejecución.

Para la lectura del PLC he usado la librería de snap7 que nos permite una comunicación rápida y sencilla de implementar.

¿Lo vemos funcionar?

Registro de valores en TIA Portal con Python

¿Qué te ha parecido?

Espero que te haya parecido interesante.

Como ves, se puede implementar este tipo de soluciones a tiempos de registro bastante bajos. Quedaría ver qué pasa con una CPU más potente (S7-1500) si queremos bajar por ejemplo a los 0,5ms por registro. Para ello, sería cuestión de aumentar el buffer a 2000 registros y ver si al tratar 2000 registros se pueden almacenar en menos de 1 segundo.

Claro que esto empieza a no tener sentido si las tarjetas analógicas no son HS. En el caso de los 1500 tienes la posibilidad de bajar hasta los 62.5µs con las analógicas HS. Puedes verlo en uno de sus manuales aquí.

En todo esto hay que pensar además que el ordenador de sobremesa con el que he hecho las pruebas es un equipo del 2015 (cómo pasa el tiempo). Quiero decir con ello que hoy en día hay equipos mucho más potentes que mi PC por lo que seguramente sea posible bajar bastante más los tiempos de registro. Además, se está registrando en un SSD, de menores prestaciones que un NVME moderno.

Por tanto, creo que aún queda margen de mejora incluyendo un hardware más acorde  a los tiempos y necesidades actuales.

El ejemplo lo voy a dejar colgado en el Anexo del bloque de Ladder del curso completo de TIA Portal y en los ejercicios resueltos de Guorker.com

Finalmente en el vídeo te preguntaba si estarías interesado en un nuevo curso orientado a crear HMI usando Python con entorno gráfico Qt.

No sería un curso propiamente de Python, sino de cómo usarlo para crear una plantilla que te permita hacer tus entornos gráficos más rápidamente. Es decir, crear una especie de WinCC Flexible usando Python, Qt Designer y comunicar con el PLC usando Snap7.

Lo dicho ¿estarías interesado en este mundillo?

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: TIA Portal, 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. Rubén dice

    19 octubre, 2022 a las 13:18

    Muy buen video!!
    La creación de HMIs con python, la harías usando dash+plotly?

    Responder
    • Iñigo Gútiez dice

      19 octubre, 2022 a las 14:15

      No, como comento al final del post sería Python + Qt Designer + Snap7.
      La semana que viene seguramente haga una pequeña presentación de lo que propongo.

      Responder
      • Juan Manuel Nuñez dice

        19 octubre, 2022 a las 15:56

        Excelente Video!!

        Responder
        • Iñigo Gútiez dice

          19 octubre, 2022 a las 17:49

          Gracias Juan Manuel!

          Responder
  2. Oscar Chávez dice

    19 octubre, 2022 a las 16:06

    Excelente Iñigo:

    Gracias por tu gran aporte…es invalorable !!!!

    Abrazos desde Paraguay.

    Responder
    • Iñigo Gútiez dice

      19 octubre, 2022 a las 17:49

      Gracias Oscar!

      Responder
  3. Hector Martin dice

    19 octubre, 2022 a las 21:46

    Excelente solución Ingeniero.
    Me ha gustado mucho la solución que has publicado, eres un genio.
    HMI con Python? Sería estupendo!
    Un abrazo!

    Responder
    • Iñigo Gútiez dice

      19 octubre, 2022 a las 21:48

      jaja, ya quisiera serlo.
      La semana que viene preparo un video para presentar lo del curso.
      Saludos!

      Responder
  4. Fran dice

    20 octubre, 2022 a las 2:04

    Buenas noches Iñigo; interesante el proceso de logear los registros. Como siempre sorprendiendo . Me veo atraído por la nueva oferta que propones del programación con Python.
    En fase de de proyecto un pupítre con mando ya sea remoto y mediante cableado Ethernet manipular varios sistemas ya sean hidráulicos, neumáticos y mecánicos seuenciales con sensores de posicionamiento entre los que son inductivos, laser de posición y celdas, cortinas en las que se deben de mantener una medidas en concreto para la evacuación de una piezas a una temperatura y aplicación de elementos para su tueste, recuperación estructural y/o limpieza de superficie. La estructura en el programa a formar se debe de calcular de alguna manera en concreto o con las funciones básicas se puede realizar. Además dispone de una grúa automatizada secuencial que realiza la puesdta y retirada de dichos materiales. Si cuento con unas recetas para que en el pupitre se puedan seleccionar o que se detecten automáticamente. Un saludo!

    Responder
    • Iñigo Gútiez dice

      20 octubre, 2022 a las 8:18

      Hola Fran. Me alegra que te haya gustado.
      Suerte con el proyecto.

      Responder
  5. Ricardo dice

    20 octubre, 2022 a las 3:34

    Muy buen vídeo, seria excelente hacer hmi con python.
    te comento que me gustaría hacer un curso completo de wincc explorer mas puntual la parte de script para comunicar con bases de datos

    Responder
    • Iñigo Gútiez dice

      20 octubre, 2022 a las 8:19

      Genial 🙂
      Yo WinCC Explorer no uso, por lo que es complicado.

      Responder
  6. Antonio dice

    22 octubre, 2022 a las 11:10

    Hola, ¿qué ventajas presenta Snap7 frente a un OPC?, ¿es más rápido para este tipo de aplicaciones?.

    No tiene nada que ver con la aplicación, pero también se podrían escribir los datos en la memoria de carga. Pero de nuevo no sé cómo evaluar la rapidez de esta escritura. Y la memoria de carga también es bastante finita. La idea sería pasar todos los datos de la memoria de carga al PC una vez acabada la recepción de datos.

    Responder
    • Iñigo Gútiez dice

      23 octubre, 2022 a las 22:59

      Comunicar con Snap7 es muy rápido, gratuito y fácil de implementar.
      Yo la SD la descartaría directamente: ni tienes tanta capacidad, ni tienes la rapidez, ni tienes la versatilidad, ni tienes la robustez que te puede dar un PC bien configurado.
      No se puede pretender hacer una tortilla sin romper huevos. Pues no se puede pretender tener una aplicación de registro super rápida con cualquier hardware y sin romper algún que otro huevo.

      Responder
  7. Noeli dice

    25 octubre, 2022 a las 3:10

    Genial Iñigo

    Responder
  8. Angel dice

    27 octubre, 2022 a las 20:52

    Buenas Iñigo:

    Esperando con impaciencia tu nueva propuesta de Python.
    Siempre nos sorprendes. Muchisimas gracias por tu tiempo.

    Saludos

    Responder
    • Iñigo Gútiez dice

      30 octubre, 2022 a las 14:41

      Gracias Ángel por la confianza.
      Esta semana hago la presentación preliminar.

      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