Temporizador para un ciclo

  • 1 Respuestas
  • 333 Vistas

Esteban E

  • Aprendiz
  • **
  • Mensajes: 69
Temporizador para un ciclo
« : septiembre 24, 2017, 12:14:14 pm »
Hola, no puedo interpretar porque esto no funciona.

Envio la imagen.

Yo hago el siguiente pensamiento. La marca inc_espera no esta en 0 cuando arranca, por ende llega al componente que hace una suma, cuando pasa la suma realiza un set a inc_espera, por ende no va a volver a sumar porque va a tener un 1 y no va a pasar al otro componente.
Luego el temporizador es activado, cuando llega al tiempo, activa el reset y el temporizador cae porque no tiene un 1 en la entrada.

Bueno el problema es que no hace lo que pienso, hace el primer ciclo y luego suma suma suma. Lo resolví poniendo una marca que hace un reset pero no puedo entender porque, he estado 5 horas con este problema. Es por ende que quiero entender como lo resuelve asi puedo avanzar mas rapido.


Gracias.


Esteban

Soporte

  • Global Moderator
  • Experto
  • *****
  • Mensajes: 1922
  • Soporte Técnico
Re:Temporizador para un ciclo
« Respuesta #1 : septiembre 25, 2017, 12:11:18 pm »
Buenos dias Esteban,

No funciona como lo planteas porque ese tipo de temporizador TOFF, necesita que su entrada SET pase de 0 a 1 para reiniciar su temporización.



Entonces, si observas tu código ladder, luego de la suma inc_espera se hace 1 en la N001. Por lo tanto en la N002, el contacto leé 1, y la entrada SET del timer T0 pasa de 0 a 1. Mientras temporiza, Q=0 e inc_espera se mantiene en "1".

Luego de varios SCAN CYCLE's, el timer T0 llegará a su tiempo final, en este punto se ejecuta la N002, la entrada SET se mantiene en 1 (porque inc_espera = 1) y el timer produce Q=1, haciendo inc_espera = 0.

En el siguiente SCAN CYCLE, se realiza nuevamente la suma ADD, y se pone inc_espera = 1 en la N001. A continuación se ejecuta la N002, con inc_espera = 1, lo cual hace que desde el punto de vista del timer T0, nunca haya cambiado la entrada (porque en el ciclo anterior era "1" cuando se ejecutó el timer), por lo tanto el timer no se reinicia porque nunca pasa de 0 a 1 la entrada SET. El timer T0 se mantiene "expirado" y Q=1, haciendo inc_espera = 1....y así hasta el infinito.

En este caso debes reiniciar el timer explicitamente como decís, que puede ser de la siguiente forma:



Otra opción es utilizar un timer tipo "TDELAY", el cual tiene un comportamiento idéntico al timer tipo "TON", solo que mantiene Q=1 por solo el SCAN CYCLE actual, luego se reinicia automaticamente, simplificando el código, como te muestro a continuación:



Te adjunto el proyecto ladder con ambos timers.

Saludos.

« Última Modificación: septiembre 25, 2017, 12:15:31 pm por Soporte »
SOPORTE TÉCNICO

Slicetex Electronics
www.slicetex.com

Atención: Desde el 1 de enero al 25 de enero de 2019, cerramos por vacaciones.
Tenga en cuenta para sus pedidos y/o consultas.