• 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 | Grafcet en TIA Portal: 5 formas de crearlo

Grafcet en TIA Portal: 5 formas de crearlo

Grafcet en TIA Portal: 5 formas de crearlo

por Iñigo Gútiez · 8 comentarios

Vamos a ver las diferentes formas de hacer un Grafcet en TIA Portal, desde usando el propio lenguaje Grafcet de Siemens, pasando por los que más se suelen utilizar.

Contenido

  • 1 ¿Que es Grafcet?
  • 2 5 formas de hacer un Grafcet en TIA Portal
    • 2.1 Usando el lenguaje Grafcet
    • 2.2 Usando Set y Reset
    • 2.3 Mediante un índice (número) de etapa
    • 2.4 Moviendo un bit  a lo largo de un word
    • 2.5 Usando Case en AWL o SCL
  • 3 ¿Qué forma elijo para hacer un Grafet en TIA Portal?

¿Que es Grafcet?

Grafcet es un acrónimo de «GRAphe Fonctionnel de Commande Etapes/Transitions»  o Diagrama funcional de etapas/transiciones de control, en la lengua de Cervantes.

Seguramente si no lo conoces, te has quedado igual.

Grafcet es una herramienta gráfica que permite modelar el comportamiento de un sistema de control secuencial mediante una serie de etapas, transiciones y acciones. Cada etapa representa un estado del sistema, cada transición indica la condición para pasar de una etapa a otra y cada acción indica la tarea que se debe realizar cuando se llega a una determinada etapa.

Aqui el punto: es una herramienta gráfica de modelado.

Por tanto, Grafcet no es un lenguaje de programación, sino una forma de modelar la forma en la que quieres que trabaje tu máquina.

Si miramos lo que dice Wikipedia sobre Grafcet, nos encontramos con que tiene esta pinta:

Grafcet en TIA Portal - secuencia

Básicamente en lo que se basa Grafcet es en dos cosas:

  • Etapas: donde se ejecutan acciones  (poner en marcha motores, EV, lo que sea)
  • Transiciones: condiciones que se tienen que cumplir de la etapa corriente para avanzar a la etapa siguiente.

Así tenemos el Grafcet de la parte superior en la que se arranca en la etapa 1 en la cual seguramente no haya que hacer nada, ya que una etapa puede estar vacía de acciones.

Una vez se cumpla la condición 1, se pasará a la etapa 2 anulando la etapa 1. En esta etapa 2 se realizarán las acciones que se hayan programado para esa etapa.

Una vez se cumpla la condición 2, se pasará a la etapa 3, y así sucesivamente.

Al final, cuando se cumpla la condición 4 se retornará a la etapa 1 haciendo un bucle cerrado de acciones-transiciones.

5 formas de hacer un Grafcet en TIA Portal

La cuestión ahora es ¿cómo se puede llevar la programación de un Grafcet en TIA Portal en la práctica?

Recuerda que Grafcet no es mas que un modelado, no un lenguaje en sí mismo aunque también lo haya en TIA Portal para la serie S7-1500.

Por tanto, tendrás que usar las herramientas disponibles para poder llevar ese modelado a un lenguaje KOP o en AWL, o como lo quieras programar.

Así que yo haya visto, el concepto de etapa-transición se puede hacer de las siguientes 5 formas:

  • Usando el lenguaje Grafcet en TIA Portal (no disponible para los S7-1200)
  • Usando Set y Reset
  • Mediante un índice (número) de etapa
  • Moviendo un bit  a lo largo de un word
  • Usando Case en AWL o SCL

Puede que haya más formas, pero al menos estas son las que yo he visto a lo largo de estos años.

Usando el lenguaje Grafcet

La primera forma es la más obvia: usar el propio lenguaje Grafcet que ofrece Siemens.

Curiosamente no es la forma más habitual (ni mucho menos) de ver desplegado un Grafcet porque la forma en la que ha estado y está implementado no es muy amigable.

Anteriormente con Step 7 si querías programar en Grafcet necesitabas una licencia aparte ya que no venía con el Simatic Step 7. Esto ya de por sí, es algo que no anima a su uso.

Pero además trae otros problemas como:

  • Todos los bloques en Grafcet tienen que estar realizados en FB, con lo que las modificaciones en línea se hacen más complejas al tener que recargar el DB de instancia y por tanto poniendo a valores iniciales cada variable de este DB.
  • La visualización del Grafcet en portátiles de aquella época se hacía complicado cuando el programa es complejo y hay muchas ramas en paralelo.
  • Las referencias cruzadas de los saltos entre etapas complejos de seguir.

Tras lo que yo he vivido, no me gusta la implementación de Grafcet en TIA Portal ni en Step7. Tal vez sea una manía personal.

Porque sobre el papel está muy bien cuando la secuencia es sencilla y limpia. Cuando empiezas con bifurcaciones, saltos de una rama a otra etc, se hace ingobernable ante una avería. Puede que no sea tanto culpa del lenguaje en sí, con la mala implementación de este, pero lo cierto es que no debo ser el único ya que para realizar secuencias pocas veces he visto que se use este lenguaje.

Usando Set y Reset

Junto con la siguiente forma de generar un Grafcet el TIA Portal mediante un contador o índice de paso, es de los más utilizados.

Para programar de esta manera básicamente lo que vas a usar son Set de una señal booleana (marca o de un DB) para fijar la etapa activa y Reset para desactivar la anterior etapa.

De esta forma, tendrás dos partes del programa:

  • La secuencia de pasos con las transiciones
  • Una parte de activación de las salidas en función de la etapa activa.

En el siguiente  post hablamos de Cómo programar las etapas en TIA Portal usando Set y Reset.

Mediante un índice (número) de etapa

La idea de usar un índice es usar básicamente un entero que contenga el paso.

Vas a programar todo en lenguaje KOP salvo que en vez de hacerlo con Set y Reset como en el caso anterior lo que irás cambiando es el valor del índice de paso.

Este caso lo vemos aplicado en el ejemplo de estructuración de un programa en TIA Portal

Moviendo un bit  a lo largo de un word

Dentro de las operaciones que se pueden hacer sobre un word o doble word está el mover los bits hacia la izquierda. Por tanto, se puede usar estas instrucciones para ir moviendo un bit cada vez que queramos cambiar de etapa.

Este ejemplo lo puedes ver en Step 7 en el desplazamiento de bits para crear secuencias, pero verás que es completamente aplicable a TIA Portal.

Usando Case en AWL o SCL

La forma de programar un Grafcet en TIA Portal con AWL o SCL es bastante similar.

La idea es tener un índice de etapa numérico. Luego hacer un salto en función de este valor al punto del programa que aplica. En esa zona, se evalúa la transición y en caso de que se cumpla la condición se le asigna el nuevo valor al índice de tal forma que en la siguiente ejecución del programa el salto se hará a la nueva zona donde esté asignado el valor del índice.

Personalmente no lo he usado nunca si bien sí lo he visto usar. No me parece que tenga ninguna ventaja respecto a otras formas y me parece bastante engorroso.

¿Qué forma elijo para hacer un Grafet en TIA Portal?

Decididamente las que más me gustan a mi son hacerlo con Set/Reset o bien  con un índice, pero siempre en lenguaje ladder para realizar los grafcet en TIA Portal.

En los últimos proyectos he estado trabajando más con el índice, y es una buena forma de trabajar siempre y cuando lo hagas en TIA Portal ya que te permite declarar constantes que faciliten la referencia cruzada para ver dónde se está aplicando o dando valor a un paso en concreto.

Te animo a que comentes cuál es el método que más te gusta o usas, y si quieres que haga alguna entrada más en concreto con alguno de los métodos.

 

 

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.

    8 Comentarios

  1. Robert dice

    19 abril, 2023 a las 8:54

    Tb…actualmente uso indices pero tb he usado desplazamiento de un bit aunque solo lo he usado en grafcets lineales y simples. Tb he usado awl con saltos, particularmente en proyectos donde había tanto código que hacía saltar el wachdog y la manera en que solucionábamos el asunto eran saltos condicionales. Set y reset creo que es la mejor manera visual que hay, pero cuando no son grafcets lineales, se puede complicar.

    Responder
    • Iñigo Gútiez dice

      19 abril, 2023 a las 12:46

      Sí, cada forma tiene sus pros y contras. Yo personalmente me quedo Set/Reset y con el índice en ladder.

      Responder
  2. J.C.M.Castillo dice

    19 abril, 2023 a las 8:55

    Si estáis interesados en la programación del GRAFCET en TIA Portal, os aconsejo mi libro «Sistemas Secuenciales Programables» de la editorial Editex, en el que profundizo en como implmentar en KOP cualquier tipo de GRAFCET, desde los más básicos, a los de tipo estructurado con macroetapas, etapas incluyentes y subrogramas como acciones, respetando el estándar normalizado según la norma IEC.
    https://youtu.be/EXaU7dHMHj8

    Responder
    • Magdiel Carías dice

      19 abril, 2023 a las 17:28

      Excelente información
      Gracias
      De repente algun día podrías realizar un ejemplo de programación de Grafcer con indice, desde cero. Talvez con Factory IO

      Responder
  3. Raymundo Mariy dice

    20 abril, 2023 a las 1:48

    Hola Iñigo, muchas gracias por esta informacion y te cuento, en mi trabajo en las maquinas que yo manejo estan en Grafcet las secuencias y ahi me toco aprender sobre este lenguaje, se me hace muy facil de entender aunque considerando lo que mencionas tal vez no sea algo tan complejo por eso se me ha hecho facil, en otras maquinas que no son mias en ocasiones doy soporte y esas si estan solo con set-reset las secuencias, las he manejado muy poco y la verdad no logro entenderlas aun, creo que me enfocare mas en entender estas. Saludos…

    Responder
    • Iñigo Gútiez dice

      20 abril, 2023 a las 10:53

      Si las secuencias son simples, es sencillo de seguir. El problema reside cuando hay muchos saltos y hay que hacer modificaciones con la máquina en producción.

      Responder
  4. Afonso dice

    20 abril, 2023 a las 23:04

    Excelente abordagem.

    Responder
  5. David dice

    27 abril, 2023 a las 13:09

    Pues tiene razón Iñigo!
    A pesar que se dispone de una leguaje específico ya de siemens poco se ve. Yo personalmente me gusta para aplicaciones muy sencillas por que es muy intuitivo y fácil de entender pero para proceso ya más complejos quizá no sea la mejor opción.

    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