• Skip to primary navigation
  • Skip to main content

ProgramaciónSiemens

Cursos online de automatización industrial con PLC Siemens

  • Cursos
  • Mi cuenta
    • Mi cuenta
    • Blog
    • 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

3 formas de crear marcas cíclicas en Step 7

por Iñigo Gútiez · 18 Comments

En esta entrada vamos a ver formas fáciles para crear marcas cíclicas que luego podamos usar a lo largo y ancho de nuestro programa.

Así podremos usar:

  • Las marcas de ciclo
  • Temporizadores
  • Crear la marca en OB cíclicos

Como digo la idea es que podamos hacer llamadas o acciones a tiempos fijos.  Normalmente, y si necesitamos una precisión alta, tendremos que realizar la acción o llamadas desde OB cíclicos cuya frecuencia habremos fijado de antemano al configurar el HW. Pero no es la única forma de realizar acciones a tiempos fijos.

Claro que tiempos fijos, más o menos, porque lo que te voy a mostrar a continuación es para ser usado desde el OB1 o FC/FB que dependan del OB1 y por tanto el error que vamos a introducir es del orden del tiempo de ciclo total del PLC.  Esto implica que si queremos flancos cíclicos a tiempos de 100ms, no uses jamás el OB1 ya que el error que estás cometiendo el del orden de magnitud que la periodicidad deseada, es decir, si quieres tiempos fijos y la llamada es del OB1 cuyo tiempo de ciclo varía entre 10 y 30ms, pues hombre, menos preciso, es cualquier cosa.

Ahora bien, si tus marcas cíclicas van a ser del orden de segundos, la cosa cambia ya que el error que vas a cometer es pequeño. En cualquier caso, usaras este tiempo de marcas cíclicas en acciones en el que la precisión no sea crucial. Creo que está claro el concepto.[divider]

Contenido

  • 1 Marcas cíclicas del PLC
    • 1.1 ¿Cómo se activa?
    • 1.2 ¿Y ahora?
  • 2 Marcas cíclicas usando temporizadores
  • 3 Marcas cíclicas usando un OB cíclico
    • 3.1 Teniendo OB cíclicos, ¿no hay más formas?

Marcas cíclicas del PLC

Haciendo un corta&pega de la ayuda de Siemens, esta dice lo siguiente sobre las marcas de ciclo:

[quote]Las marcas de ciclo son marcas que cambian periódicamente su valor binario (relación impulso – pausa: 1:1)[/quote]

¿A que ahora te has quedado más tranquilo? Yo también.

Afortunadamente, tiene una segunda ayuda en la cual muestra una tabla con los periodos de estas marcas.

marcas cíclicas

Como veis va desde una frecuencia de 0,5Hz hasta los 10Hz pasando por valores intermedios. Visto desde el lado del periodo, va desde valores de 0,1 segundos hasta los 2 segundos.

¿Cómo se activa?

 Configurándolo desde el configurador de hardware. Tendrás que abrir el configurador de HW, abrir la CPU e ir a la pestaña de Ciclo /Marca de ciclo. Abajo tienes que seleccionar el checkbox de marca y seleccionar el número de marca que quieres usar. Ojo porque es un byte, no un word. Tenlo en cuenta. Hay 8 marcas de ciclo.

marcas cíclicas

¿Y ahora?

Pues tienes que guardarlo, compilar y cargarselo al PLC. Ojo porque el PLC va a pasar a STOP, así que:

[quote]Siempre que empieces un proyecto en Step 7, selecciona y configura un byte para tu marca de ciclo[/quote]

No cuesta nada, y así no tendrás el pequeño inconveniente de que cuando lo quieras usar, pues no podrás porque la máquina estará en marcha y no la puedes parar hasta dentro de no sé cuantos millones de horas… y todo por no haber elegido una put.. marca cuando configuraste el hardware. ¿Adivinas a quién le ha podido pasar algo así alguna vez? Pues eso.[divider]

Marcas cíclicas usando temporizadores

marcas cíclicas

Otra forma común de realizar ondas cuadradas es con dos temporizadores. La forma de construirlo es muy sencillo como muestra en la imagen. Ambos temporizadores se irán alternando en el contaje del segundo.

El temporizador T2 tendrá un periodo de 1s su salida a cero y un periodo de su salida a 1. El T1 por su parte estárá siempre a cero salvo un instante (un ciclo de scan) que será el desencadenante de tirar el T2 y que vuelva a empezar.

Así, haciendo la lectura del T2, tendremos una marca cíclica de periodo 1segundo en este caso. La ventaja de este, es que se puede variar la relación de tiempo ON/OFF jugando con los tiempos del T1 y del T2.[divider]

Marcas cíclicas usando un OB cíclico

Una forma de crear una marca cíclica es usar un OB  cíclico. Imaginemos que queremos cada 0,5 segundos. Cargaremos un OB cíclico que fijaremos a 500ms. Luego haremos un super código. Imaginemos que queremos hacerlo con la M50.0:

UN M50.0

= M50.0

Escalofriante ¿eh? Es tan simple que da miedo. Cada 500 ms irá cambiando de estado. Brillante.

Hombre, usaremos los OB cíclicos aprovechando que ya exista, pero si te quieres pegar un lujo, es una forma de hacerlo.

Teniendo OB cíclicos, ¿no hay más formas?

Pues hombre, sí. Por ejemplo, creando contadores de 1 a 10 en el OB35 y si está fijado a 100ms por ejemplo, poniendo a uno una marca cuando el contador sea superior o igual a 5 y reseteando cuando sea igual o superior a 10.

Bueno, como ves hay muchas formas de crear marcas cíclicas. Espero que te haya sido de utilidad y que lo uses mucho en tus proyectos. [divider]

Referencias:

  • Generación de impulsos en Step 7 V11
  • Configuración de hardware con Step 7

 

[divider]

 

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.

Filed Under: ejemplos, Hardware, Teoría, Trucos, Tutoriales Tagged With: hardware, temporizadores, trucos, Tutoriales

Reader Interactions

    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. JMM says

    11 febrero, 2013 at 23:05

    A esto se llama ser didáctico, gracias Íñigo, si no empezamos por abajo, va a ser difícil subir. Un fuerte saludo.

    Responder
  2. Iñigo Gútiez says

    12 febrero, 2013 at 18:00

    De nada 😉
    A mi juicio está bien saber este tipo de cosillas. Cómo hacer cosas básicas, pero que muchas veces si no las has visto ni te las han contado, pues no se te pasan por la cabeza.
    Estaría bien que los que leeis el blog me mandarais trucos y poderlo compartir con el resto. Pero bueno, igual ya eso es demasiado pedir.
    Esta semana nueva entrada…. va de displays.
    Un saludo,

    Responder
  3. david pineda says

    31 julio, 2013 at 1:56

    hola esta muy bien tu blog quisiera hacer saber si me puedes orientar en algunos temas este es uno hay alguna funcion el que pueda multiplicar un pulso y el resuldo se guarde

    Responder
    • Iñigo Gútiez says

      4 agosto, 2013 at 0:41

      Hola David,

      ¿Podrías explicarte mejor? Porque no entiendo lo que quieres hacer.

      Un saludo

      Responder
  4. cristian says

    31 agosto, 2013 at 23:10

    hola como estas?
    quisiera saber si hay algun programa ciclico de segundo a minuto por ej: que haga un sonido en 5 minutos y luego en 30, luego 5 minutos y otra vez 30 seg. desde ya gracias

    Responder
  5. Iñigo Gútiez says

    31 agosto, 2013 at 23:28

    Hola Cristian,

    Es tan sencillo como programar el OB35 en segundos y hacer un pequeño programa que haga lo que quieras.

    También lo puedes hacer con un FB llamado desde el OB1 y pasando como entrada el tiempo de scan del OB1 en ms e ir haciendo la cuenta. Si la resolución son segundos no debería haber problemas.

    Un saludo

    Responder
  6. juan manuel says

    23 noviembre, 2013 at 1:40

    Estimado, el heho de saber y compartir el conocimiento habla muy bien de la persona, desde argentina, mis mas sinceras felicitaciones por ser profesional!!

    Responder
  7. JUAN says

    17 febrero, 2015 at 16:43

    Hola Iñigo!
    Soy principiante en lo que se refiere a programación de PLCs. Actualmente estoy realizando un pequeño proyecto para la universidad. Quiero contar los strokes por minutos (SPM) de una bomba. El sistema cuenta con un sensor inductivo que envía un pulso cada vez que se ha producido un stroke en la bomba. Yo hice lo siguiente: en un FC coloque un contador que permite leer cada stroke, ese valor acumulado lo divido por el tiempo de un temporizador el cual inicia su conteo con el primer stroke. El resultado de la división lo multiplico por 60. SPM=(CONTADOR/TEMPORIZADOR)*60. El problema es que los SPM no es el correcto. Por favor si puedes ayudarme te agradecería un mundo.

    Responder
    • admin says

      17 febrero, 2015 at 16:50

      Hola.
      Sin ver el código es difícil de saber donde te estás equivocando.
      Lo que yo haría sería contar con el inductivo en el ob35 puesto a lo que te permita la CPU. Ojo. Tienes que contar usando un pulso por delante y sumarlo a una variable entera. Un contador no te valdrá.
      Por otro lado, en cada ciclo del ob35 suma el tiempo de scan del ob35 para obtener el tiempo en ms.
      Luego haces las divisiones y multiplicaciones pertinentes y listo

      Saludos

      Responder
  8. JAVIER MAMANI says

    28 febrero, 2015 at 2:59

    BUE DÍA, QUIERO ACTIVAR Y DESACTIVAR CON EL MISMO PULSADOR, COMO PUEDO HACER, TENGO UN PLC S7 1200 DE CON EL PROGRAMA TIA PORTAL V13

    Responder
    • admin says

      28 febrero, 2015 at 9:40

      Puedes fabricarte un telerruptor.
      Es en step 7 aunque en tía portal https://programacionsiemens.com/algebra-booleana-en-step-7/
      Échale un vistazo por si te sirve.
      Saludos

      Responder
  9. Fernando says

    11 junio, 2020 at 11:45

    Buenas Íñigo,

    Muchas gracias por tus publicaciones, son de gran ayuda.
    Tenemos una pregunta. Necesitamos un bit con una frecuencias de 10 hz (o 5 hz , la frecuencias no es importante), pero que sea muy precisa, que nos de 0.1s 0 0.2s de forma exacta.

    ¿Sabes si existe alguna manera de hacerlo?

    Muchas gracias de antemano,
    Un saludo

    Responder
    • Iñigo Gútiez says

      12 junio, 2020 at 0:05

      Lo mejor si necesitas mucha precisión es que uses los OB cíclicos y ejecutes a tiempo fijo lo que desees.

      Responder
  10. Noe Vidal says

    5 marzo, 2021 at 18:33

    excelente informacion,gracias. Deveria de compartir informacion de como se lee la secuencia de un proceso en linea de produccion, cuando el programa no ha sido realizado por nosotros . detectar fallas de señales. nuevamente gracias.

    Responder
    • Iñigo Gútiez says

      6 marzo, 2021 at 0:25

      Para eso hay que conocer el proceso. Entenderás que si teniendo delante el programa, es complicado saber qué pasa, imagina que no hay una varita mágica genérica que haga qué debes hacer en cada caso, sin saber ni remotamente qué puede estar pasando.

      Responder

Trackbacks

  1. Balance del mes de febrero de 2013 | Programación SIEMENSProgramación SIEMENS dice:
    2 marzo, 2013 a las 1:14

    […] 3 formas de crear marcas cíclicas en Step 7 […]

    Responder
  2. Buenas prácticas de programación en S7Programación SIEMENS dice:
    6 marzo, 2013 a las 23:14

    […] ya te conté anteriormente, es bastante práctico seleccionar la marca de ciclo al principio del proyecto de cara a que si en […]

    Responder
  3. FC en Step 7: Qué son y cómo se utilizan. Ejemplo de semáforo en Step7Programación SIEMENS dice:
    6 octubre, 2013 a las 2:10

    […] Finalmente, sobre la marca de ciclo puedes encontrar más información además de en el vídeo en 3 formas de crear marcas cíclicas en Step 7 […]

    Responder
  • Aviso Legal y Política de Privacidad
  • Condiciones de Venta
  • Política de cookies
  • Contacto & Faq
  • Blog

Copyright © 2023 · Programación Siemens · Todos los derechos reservados

· ¿Quién soy? · Misión, Visión y valores