• 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 | Cómo registrar valores de un PLC desde un PC en 5 min

Cómo registrar valores de un PLC desde un PC en 5 min

Cómo registrar valores de un PLC desde un PC en 5 min

por Iñigo Gútiez · 15 comentarios

Hoy te voy a demostrar que registrar valores de un PLC se puede hacer en un tiempo record si tienes las herramientas adecuadas.

Contenido

  • 1 ¿Se puede registrar valores de un PLC en 5 minutos?
    • 1.1 ¿Empezar desde cero?
  • 2 ¿Y cómo hacemos para registrar valores de un PLC?
  • 3 El video.
  • 4 El código.
  • 5 ¿Qué te ha parecido?

¿Se puede registrar valores de un PLC en 5 minutos?

Bueno, para empezar, dependerá un poco lo que se quiera registrar.

Lógicamente si se quiere hacer una cosa bestialmente grande y complicada, seguramente no.

Pero si tienes las herramientas adecuadas, y estamos hablando de registrar digamos media docena de valores, a tiempo fijo, se puede sin problemas.

¿Empezar desde cero?

No, lógicamente si cada vez que tienes que hacer un registro, tienes que empezar de cero, no lo vas a poder en 5 minutos.

En general, yo lo suelo hacer de esta manera cuando me toca hacerlo.

Pero no es la forma más eficiente de trabajar.

Por eso he desarrollado una forma de realizar el registro que sea sencillo de implementar cada vez que lo necesite.

Lo que quiero que veas es que se puede darle un poco al rosco y hacer tus propios programas que te cuesten un poco (o mucho) el primer día, pero que para el futuro, sea una gran inversión.

Este método que te presento, lo he incluido dentro de la plantilla del curso de Snap7 y VB.Net.

Lógicamente, tu puedes crear tus propias creaciones.

O comprar software de Siemens, u otros fabricantes que te ayuden. Aunque sus licencias cuestan varios miles de euros.

¿Y cómo hacemos para registrar valores de un PLC?

En mi caso, como la plantilla tienen controles que leen/escriben en el PLC, puedo usar esta característica para crear una colección de controles y pasárselo a la función para que los trate.

Es decir, configuro «la lista de la compra» de los controles que quiero registrar y luego solamente hago la llamada.

Tú, tendrás que realizar algo parecido con tus creaciones.

El video.

Ahora, quiero enseñarte a lo que me refiero, porque vas a ver que es realmente sencillo si lo piensas, y creas tu forma de trabajar.

La que te muestro, es la que yo he creado para el curso de Snap 7, pero lógicamente no es la única, ni tiene por qué ser la mejor.

Solamente es una forma de trabajar, que funciona razonablemente bien.

El código.

Te adjunto el código del bloque de escritura que te he presentado.

Por si lo puedes reutilizar para tus creaciones, o adaptar la idea de alguna forma.

#Region "EScribir archivos "
    ''' <summary>
    ''' Escritura en un log de valores de controles
    ''' </summary>
    ''' <param name="ColeccionControles">Colección que contendrá los controles cuyos valores se quieren registrar</param>
    ''' <param name="Archivo">Path completo del archivo de registro</param>
    ''' <param name="Separador">Caracter separador entre valores (por ejemplo ";" o ",")</param>
    ''' <param name="Hora">True: Registrar la hora, False: No registrar hora</param>
    ''' <param name="Fecha">True: Registrar la fecha, False: No registrar la fecha</param>
    Public Sub Escribir_Log(ByVal ColeccionControles As Collection, ByVal Archivo As String, ByVal Separador As String, ByVal Hora As Boolean, Fecha As Boolean)
        Dim Linea As String = ""
        Dim Contador As Integer = 0
        Dim file As System.IO.StreamWriter

        If Not IO.File.Exists(Archivo) Then
            If Fecha Then
                Linea = "Fecha"
                Contador = Contador + 1
            End If
            If Hora Then
                If Contador > 0 Then
                    Linea = Linea & " " & Separador & " " & "Hora"
                    Contador = Contador + 1
                Else
                    Linea = "Hora"
                    Contador = Contador + 1
                End If
            End If

            For i = 1 To ColeccionControles.Count
                If Contador > 0 Then
                    Linea = Linea & " " & Separador & " "
                End If
                Linea = Linea & ColeccionControles(i).Name
                Contador = Contador + 1
            Next
            Linea = Linea & vbCrLf
        End If


        Contador = 0
        If Fecha Then
            Linea = Linea & Now.ToShortDateString
            Contador = Contador + 1
        End If
        If Hora Then
            If Contador > 0 Then
                Linea = Linea & " " & Separador & " " & Now.TimeOfDay.ToString
                Contador = Contador + 1
            Else
                Linea = Linea & Now.TimeOfDay.ToString
                Contador = Contador + 1
            End If
        End If

        For i = 1 To ColeccionControles.Count
            If Contador > 0 Then
                Linea = Linea & " " & Separador & " "
            End If
            Linea = Linea & ColeccionControles(i).PLC_Valor
            Contador = Contador + 1
        Next
        Try
            file = My.Computer.FileSystem.OpenTextFileWriter(Archivo, True)
            file.WriteLine(Linea)
            file.Close()
        Catch ex As Exception

        End Try

    End Sub

#End Region

¿Qué te ha parecido?

Espero que te haya abierto la mente y dado ideas para tus proyectos.

Como ves, se puede hacer en un tiempo mas que razonable si tienes una herramienta ya creada.

Evidentemente me ha llevado muchas horas desarrollar el motor sobre lo que se asienta todo.

Y a ti también te va a costar hacer algo así, o parecido.

Pero créeme que merece a pena una vez lo tienes hecho.

Ni que decir tiene, que si no quieres complicarte la vida, siempre tienes el curso de Snap7 con VB.Net donde tendrás a tu disposición la plantilla actualizada con el motor de lectura/escritura que he creado apoyándome en Snap7.

Poco a poco voy metiendo nuevos controles, y además junto con un alumno del curso que me está haciendo de beta tester, estamos de forma continua realizando pruebas y mejorando la plantilla para que sea más eficiente y robusta.

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.

    15 Comentarios

  1. Daniel Quinteros dice

    10 mayo, 2018 a las 20:51

    Muy bueno el video Iñigo. Muchas gracias.
    Te quería pedir si es posible, un ejemplo de envío de correos (alarmas), con s7-1200 a una cuenta Hotmail, Gmail, etc. La información de Siemens es confusa y no me a funcionado. Te lo agradecerá mucho si nos puedes ayudar con esto.

    Responder
    • Iñigo Gútiez dice

      10 mayo, 2018 a las 21:59

      Con un S7-1200, directamente es complicado porque funciona sobre el puerto 25, y ese puerto no lo usa ningun servicio.
      Tienes un ejemplo aquí: https://programacionsiemens.com/enviar-email-tm_mail-tia-portal/
      Saludos

      Responder
  2. David dice

    11 mayo, 2018 a las 10:44

    Perdona Iñigo pero una duda que no viene al caso ¿de donde sacas esas imágenes o fotos que acompañas a la entrada al blog? Lo digo por son super concisas; describen y resumen fielmente el contenido del la entrada al blog ¿has sido publicista alguna vez? Saludos !!!

    Responder
    • Iñigo Gútiez dice

      11 mayo, 2018 a las 15:07

      Jaja, no no.
      Sólo intento buscar en un banco de imágenes que compre el poder usarlo en su día e intento buscar una imagen que pegue más o menos bien.
      Que siempre no es fácil.
      Pero vamos, quedan más o menos.
      Saludos

      Responder
  3. Chema dice

    11 mayo, 2018 a las 16:16

    Buen aporte Iñigo precisamente tengo el objetivo de aprender en VB.Net y pensaba comprarte el curso y aprender porque despue lo voy a poder aplicar en varios sitios.
    Pero primero tengo unas modificaciones en un plc de Rockwell y me tendrá un tiempo entretenido a ver si me lo saco de encima y empiezo el curso de VB.Net que no quiero que se me demore. Ya tendrás noticias mias.
    Un Saludo ?

    Responder
  4. Antonio Gil dice

    12 mayo, 2018 a las 11:12

    Eres un máquina Iñigo! Muy útil cada post qué subes!
    Gracias

    Responder
    • Antonio Gil dice

      12 mayo, 2018 a las 11:14

      Por cierto, tienes algún curso/ manual de VB disponible?
      Saludos

      Responder
      • Iñigo Gútiez dice

        12 mayo, 2018 a las 12:05

        Hola Antonio,
        No, no tengo ninguno.
        Pero hay en la red muchos sitios donde sí tienen.
        Saludos

        Responder
  5. José Carlos dice

    14 mayo, 2018 a las 22:29

    Buenas noches Iñigo,
    Comienzo dándote las gracias por lo increíblemente fácil que consigues hacer cosas que llevarían horas de desarrollo. Hoy un compi del trabajo que no tenía ni idea VB, pero si que sabe arrastrar y soltar jajaja… se ha puesto a poner controles LED y botones ON/OFF salidas booleanas y le ha quedado una aplicación funcional :).
    PD: por el momento he ejecutado aplicaciones realizadas con tu plantilla del curso de snap7 en 7 autómatas S7-1200 y la estabilidad es genial, reconexión en caso de problemas de red, visualiación de gráficas con datos cruzados de varios autómatas, ….. y ahora la posibilidad de hacer LOG…me quito el sombrero, de categoría lo tuyo…

    Responder
    • Iñigo Gútiez dice

      14 mayo, 2018 a las 23:36

      Muchas gracias José Carlos!
      Esa es un poco la idea: que gente sin conocimientos previos en VB.NET pueda crear un HMI funcional de una forma sencilla.
      La idea es que vaya creciendo con el tiempo y que cada vez vaya mas fino y con más funcionalidades.
      Un saludo!

      Responder
  6. NOEL dice

    5 junio, 2018 a las 23:50

    Muy bueno y lo haces facil. Un saludo

    Responder
    • Iñigo Gútiez dice

      7 junio, 2018 a las 19:20

      Muchas gracias Noel!

      Responder
  7. Luis Parra dice

    20 junio, 2018 a las 20:47

    Mil gracias.
    Es posible descargar una versión temporal STEP-7 para realizar prácticas?. Si no se realizan prácticas se olvidan los instructivos.

    Responder
    • Iñigo Gútiez dice

      20 junio, 2018 a las 20:50

      Desde la web de Siemens se pueden bajar los trial de 21 días.

      Responder
  8. gustavo dice

    8 octubre, 2021 a las 3:16

    Hola estimado muy bueno tu video.. por casualidad sabes como hacer para registrar esos datos del PLC a una base de datos?

    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