• 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 | Alarmas en TIA Portal

Alarmas en TIA Portal

Alarmas en TIA Portal

por Iñigo Gútiez · 1 comentario

Estamos en la fase final del Curso Express de TIA Portal, y pronto comenzaremos a trabajar en proyectos completos en los que veremos la parte de programación del PLC además de crear las pantallas del HMI.

Una de las cosas más importantes que tienes que hacer cuando desarrollas un programa es la gestión de las alarmas.

En función de cual sea la filosofía, se pueden aplicar diferentes formas de trabajo.

A algunos programadores les gusta crear las alarmas en cada FC, de tal forma que en el mismo bloque veas las alarmas que lleva asociada. Otros, en cambio, usamos en general bloques específicos para las alarmas de tal forma que están todas centralizadas en un único lugar.

Cada maestrillo, tiene su librillo, que dice la sabiduría popular.

Con cualquiera de los métodos que uses, lo suyo es que la máquina tenga también una baliza de alarma.

Esta baliza normalmente es luminosa y sonora, de tal forma que cuando hay una nueva alarma, suena y parpadea a la vez, y cuando reconoces la alarma, se apaga la bocina, y la luz se queda fija.

En alguna ocasión ya hemos hablado de este tipo de gestiones, tanto en step 7 clásico, como en TIA Portal.

En esos dos casos, lo que hacemos es contar el número de alarmas en un ciclo de scan del OB1. Con ello, por un lado sabemos cuántas alarmas tenemos activas, y por otro, si hay una nueva alarma.

Este método, tiene un pequeño problema técnico que es que podría darse el caso de que en un ciclo de scan del OB1 podría aparecer una nueva alarma y desaparecer otra, haciendo el balance de alarmas activas igual que en ciclo anterior.

Esto se solventa simplemente haciendo que las alarmas hagan un SET, y no una igualación, de tal forma que la alarma no desaparece si el operario no resetea las alarmas, y por tanto, está delante de la pantalla y no cabe la posibilidad de que desaparezca una alarma y aparezca otra sin que este operario se entere.

Pero ¿se puede hacer de otra forma?

Contenido

  • 1 Alarmas en TIA Portal usando XOR y AND
  • 2 Vídeo de alarmas en TIA Portal
    • 2.1 Actualización:
  • 3 ¿Qué te ha parecido las alarmas en TIA Portal?

Alarmas en TIA Portal usando XOR y AND

¡Pues claro! Se puede hacer de muchas formas. Entre otras, una que solucione el pequeño problemilla descrito de que aparezca una alarma y desparezca otra en el mismo ciclo de scan, que puede ser interesante si lo que queremos es usar la igualación en vez del Set con las alarmas.

Así que, esta vez, usaremos diferentes técnicas para lograrlo:

  • AND y XOR
  • AT

¿What….WHAT?

¡¡De qué hablas!!

Empecemos por el final.

Cómo usar AT en TIA portal lo comentamos en su día en este post. Básicamente lo que haces es sobre un área de memoria X, crear una especie de plantilla para acceder a estos datos de una forma más cómoda para ti.

De momento, quédate con la idea de que nos va a hacer falta, ya verás porqué.

Y con AND y XOR, ¿qué hacemos?

Bueno, la idea es la siguiente: imagina que tenemos un array de alarmas booleanas. Para simplificarlo de momento, imagina algo así como Array[1..8] of Boolean

Solo 8 booleanas, pero normalmente serán muchas más. Pero como digo, para el ejemplo, solo con 8.

Núm. Alarma 7 6 5 4 3 2 1 0
Ciclo Anterior 1 1 0 1 1 0 1 0
Ciclo Actual 0 1 1 1 1 0 1 0
XOR 1 0 1 0 0 0 0 0
AND 0 0 1 0 0 0 0 0

Así, los pasos a realizar, son los siguientes:

  • Hacemos un XOR entre el estado de las alarmas en el ciclo anterior, y el ciclo actual. Como vemos, han cambiado la alarma 5, pasando de 0 a 1, y la alarma 7, pasando de 1 a 0. El resto, permanecen invariables, y por tanto, el XOR da 0.
  • Luego, hacemos un AND del resultado obtenido en el paso anterior, con el estado actual, y por tanto, tendremos como resultado que todo está a cero salvo en el bit 5, que como ves estará a 1.

Y ya está, como ves, tenemos el resultado, que si lo comparamos con 0, vemos que efectivamente hay una alarma nueva.

Luego, hay que hacer un pequeño bucle para recorrer todas las alarmas, porque si en vez de 8 alarmas, tenemos 800, la cosa se puede poner interesante.

¿Lo vemos en un vídeo?

Vídeo de alarmas en TIA Portal

Actualización:

Me han comentado con buen criterio, que una vez encontrada una alarma nueva, se puede salir del bucle, marcando tanto la variable de nueva alarma como la de alarma activa.

Es totalmente cierto, y es más elegante hacerlo así.

Pero también es verdad, que el bucle lo tienes que recorrer siempre buscando nuevas alarmas, y solamente en el ciclo de scan que tenga una nueva alarma, podrás ahorrar unas pocas iteraciones debido a que te puedes salir antes del bucle. El resto del tiempo, que es prácticamente todo el tiempo, tienes que recorrer el bucle completo, ya que tienes que estar constantemente buscando nuevas alarmas hasta el último ciclo.

Lo de salirse del bucle es muy típico cuando buscas una información que sabes que siempre va a estar, y que una vez encontrada, sales fuera. Pero no es este caso. Piensa que en el trabajo normal de la máquina, hará millones y millones de ciclos completos, sin que aparezca una alarma, y solo cuando aparezca una, ahorrarás unas pocas iteraciones.

En cambio, si buscaras una información que sabes que siempre tiene que estar, sería lógico salir del bucle, porque en cada ciclo de scan, siempre ahorrarías unas pocas iteraciones salvo que el dato estuviera justo en la última iteración, pero no es el caso.

Por tanto, es una optimización más de planteamiento que realmente práctica, porque no ahorras apenas nada en cuanto a la carga de la CPU.

¿Qué te ha parecido las alarmas en TIA Portal?

Espero que te haya gustado esta forma de darle uso al XOR, AND y AT.

Recuerda que si eres integrante del curso de TIA Portal Express, tendrás el proyecto disponible para su descarga cuando lo integremos en los ejemplos finales.

Si no estás apuntado, y crees que aprender este tipo de cosas, ya sabes que puede que el curso pueda ayudarte.

También 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.

    1 Comentario

  1. Zeno Martorana dice

    14 septiembre, 2019 a las 15:21

    Lo voi a aplicar, inmediatamente.
    Gracias amigo.

    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