<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to Delay (Wait) in  Structure Text</title><link href="https://forge.codesys.com/forge/talk/CODESYS-V2/thread/9d72ee0891/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/CODESYS-V2/thread/9d72ee0891/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/CODESYS-V2/thread/9d72ee0891/</id><updated>2020-02-27T22:16:03.648000Z</updated><subtitle>Recent posts to Delay (Wait) in  Structure Text</subtitle><entry><title>Delay (Wait) in  Structure Text</title><link href="https://forge.codesys.com/forge/talk/Codesys%2520V2.3/thread/9d72ee0891/?limit=25#d21a" rel="alternate"/><published>2020-02-27T22:16:03.648000Z</published><updated>2020-02-27T22:16:03.648000Z</updated><author><name>Anonymous</name><uri>https://forge.codesys.com/u/*anonymous/</uri></author><id>https://forge.codesys.com3724cf65b0605ee6ce0bedd2dbcb6abe7c3cedd8</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;&lt;em&gt;Originally created by:&lt;/em&gt; scott_cunningham&lt;/p&gt;
&lt;p&gt;You need to call the timer function block to get it to work and update the output variables.  If you look at your code, you only call the function block inside of an IF/THEN block. &lt;/p&gt;
&lt;p&gt;The difference is that your code simply set the input variable to false, but did not execute the function block.  You need to do every scan if you want the timer to run:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;bypassTimer&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;/div&gt;</summary></entry><entry><title>Delay (Wait) in  Structure Text</title><link href="https://forge.codesys.com/forge/talk/Codesys%2520V2.3/thread/9d72ee0891/?limit=25#54d3" rel="alternate"/><published>2020-02-27T22:16:02.054000Z</published><updated>2020-02-27T22:16:02.054000Z</updated><author><name>tekisri</name><uri>https://forge.codesys.com/u/tekisri/</uri></author><id>https://forge.codesys.com23e56f2db6276195773d08fb5e7103f8b291db7d</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hello !&lt;br/&gt;
I have tried the similar logic and it's not working. I developed a Functional block called "Fan_VFD" and used in a Program "PRG" of CFC type. Everytime when Fan_enable is TRUE;VFD_enable and error_VFD are FALSE, the timer has to count 10sec and execute the following steps. But it isn't happening in this case. The output of the timer is not resetting to False when IN:=FALSE. Please help me resetting the timer. &lt;/p&gt;
&lt;p&gt;&lt;span&gt;[code]&lt;/span&gt;&lt;span&gt;[/code]&lt;/span&gt;&lt;br/&gt;
FUNCTION_BLOCK PUBLIC Fan_VFD&lt;br/&gt;
VAR_INPUT&lt;br/&gt;
    diff_pres:REAL;&lt;br/&gt;
    VFD_cal_setpoint:REAL;&lt;br/&gt;
    VFD_enable:BOOL;&lt;br/&gt;
    Fan_enable:BOOL;&lt;br/&gt;
    error_VFD:BOOL;&lt;br/&gt;
    bypassTimer:TON;&lt;br/&gt;
END_VAR&lt;br/&gt;
VAR_OUTPUT &lt;br/&gt;
    VFD_setValue:WORD;&lt;br/&gt;
    VFD_status: BOOL; &lt;br/&gt;
    Fan_status: BOOL;&lt;br/&gt;
END_VAR&lt;/p&gt;
&lt;p&gt;VAR_IN_OUT&lt;br/&gt;
    isolator_status:BOOL;&lt;br/&gt;
    byPass_status:BOOL;&lt;br/&gt;
END_VAR&lt;/p&gt;
&lt;hr/&gt;
&lt;p&gt;IF Fan_enable AND NOT VFD_enable AND NOT error_VFD THEN&lt;br/&gt;
            isolator_status:=FALSE;&lt;br/&gt;
            bypassTimer(IN:=TRUE, PT:=T#10s);&lt;br/&gt;
            IF bypassTimer.Q THEN&lt;br/&gt;
            bypassTimer.IN:=FALSE;&lt;br/&gt;
                        VFD_status:=FALSE;VFD_setValue:=0; bypass_status:=TRUE; Fan_status:=TRUE;&lt;br/&gt;
            END_IF&lt;br/&gt;
END_IF&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Delay (Wait) in  Structure Text</title><link href="https://forge.codesys.com/forge/talk/Codesys%2520V2.3/thread/9d72ee0891/?limit=25#6f2a" rel="alternate"/><published>2020-02-27T22:15:57.615000Z</published><updated>2020-02-27T22:15:57.615000Z</updated><author><name>manantrivedi77</name><uri>https://forge.codesys.com/u/manantrivedi77/</uri></author><id>https://forge.codesys.com7ebb186bdfbf2b8f74f5ee70cc122ba943d28e16</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;To scott_cunningham,&lt;/p&gt;
&lt;p&gt;It helped a lot, can't thank you enough.&lt;/p&gt;
&lt;p&gt;Thanks again.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Delay (Wait) in  Structure Text</title><link href="https://forge.codesys.com/forge/talk/Codesys%2520V2.3/thread/9d72ee0891/?limit=25#e76f" rel="alternate"/><published>2020-02-27T22:15:56.018000Z</published><updated>2020-02-27T22:15:56.018000Z</updated><author><name>Anonymous</name><uri>https://forge.codesys.com/u/*anonymous/</uri></author><id>https://forge.codesys.come19c3d68f3866c7933a4c23af596247fd8fd0e6d</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;&lt;em&gt;Originally created by:&lt;/em&gt; scott_cunningham&lt;/p&gt;
&lt;p&gt;In your program, wait6 timer is only reached when wait5 timer expires.  Look at the flow of your code - if wait5 timer is not finished, then return - so the rest of your code is skipped.  You only need multiple timers if you need to run timers simultaneously.&lt;/p&gt;
&lt;p&gt;Your code must run every PLC scan - it's not like a PC script - you don't go from the first line to the last line and then be "done".  Every PLC scan (xxx uS), your code is run.  If you need to do steps 1,2,3, then you need a state machine (CASE statement):&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nv"&gt;CASE&lt;/span&gt; &lt;span class="nv"&gt;Step&lt;/span&gt; &lt;span class="nv"&gt;OF&lt;/span&gt;
   &lt;span class="mi"&gt;0&lt;/span&gt;: &lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="nv"&gt;init&lt;/span&gt;
      &lt;span class="nv"&gt;Step&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;Step&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="mi"&gt;1&lt;/span&gt;: &lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="nv"&gt;first&lt;/span&gt; &lt;span class="nv"&gt;timer&lt;/span&gt; &lt;span class="nv"&gt;routine&lt;/span&gt;
      &lt;span class="nv"&gt;a&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
      &lt;span class="nv"&gt;b&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
      &lt;span class="nv"&gt;c&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
      &lt;span class="k"&gt;wait&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;IN&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;TRUE&lt;/span&gt;, &lt;span class="nv"&gt;PT&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;T&lt;/span&gt;&lt;span class="sc"&gt;#5&lt;/span&gt;&lt;span class="nv"&gt;s&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
      &lt;span class="k"&gt;IF&lt;/span&gt; &lt;span class="k"&gt;wait&lt;/span&gt;.&lt;span class="nv"&gt;Q&lt;/span&gt; &lt;span class="k"&gt;THEN&lt;/span&gt;
         &lt;span class="k"&gt;wait&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;IN&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;FALSE&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
         &lt;span class="nv"&gt;Step&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;Step&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
      &lt;span class="nv"&gt;END_IF&lt;/span&gt;
   &lt;span class="mi"&gt;2&lt;/span&gt;: &lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="nv"&gt;second&lt;/span&gt; &lt;span class="nv"&gt;timer&lt;/span&gt; &lt;span class="nv"&gt;routine&lt;/span&gt;
      &lt;span class="nv"&gt;a&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
      &lt;span class="nv"&gt;b&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
      &lt;span class="nv"&gt;c&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
      &lt;span class="k"&gt;wait&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;IN&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;TRUE&lt;/span&gt;, &lt;span class="nv"&gt;PT&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;T&lt;/span&gt;&lt;span class="sc"&gt;#15&lt;/span&gt;&lt;span class="nv"&gt;s&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
      &lt;span class="k"&gt;IF&lt;/span&gt; &lt;span class="k"&gt;wait&lt;/span&gt;.&lt;span class="nv"&gt;Q&lt;/span&gt; &lt;span class="k"&gt;THEN&lt;/span&gt;
         &lt;span class="k"&gt;wait&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;IN&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;FALSE&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
         &lt;span class="nv"&gt;Step&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;Step&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
      &lt;span class="nv"&gt;END_IF&lt;/span&gt;
   &lt;span class="mi"&gt;3&lt;/span&gt;: &lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="nv"&gt;done&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nv"&gt;don&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;t do anything more&lt;/span&gt;
      &lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="k"&gt;ELSE&lt;/span&gt; &lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="nv"&gt;code&lt;/span&gt; &lt;span class="nv"&gt;error&lt;/span&gt;&lt;span class="o"&gt;!!!&lt;/span&gt; &lt;span class="nv"&gt;restart&lt;/span&gt; &lt;span class="nv"&gt;state&lt;/span&gt; &lt;span class="nv"&gt;machine&lt;/span&gt;
      &lt;span class="nv"&gt;Step&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="nv"&gt;END_CASE&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Now your code executes this way:&lt;/p&gt;
&lt;p&gt;I hope that helps!&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Delay (Wait) in  Structure Text</title><link href="https://forge.codesys.com/forge/talk/Codesys%2520V2.3/thread/9d72ee0891/?limit=25#a9f6" rel="alternate"/><published>2020-02-27T22:15:54.479000Z</published><updated>2020-02-27T22:15:54.479000Z</updated><author><name>manantrivedi77</name><uri>https://forge.codesys.com/u/manantrivedi77/</uri></author><id>https://forge.codesys.com65d875ee2d16151ba3e137d9c776379543e2588e</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Thanks for the reply guys,&lt;br/&gt;
I tried to duplicate your code, please tell me why the code below is not working. Only the first timer is working not the second one.&lt;/p&gt;
&lt;p&gt;a:=1;&lt;br/&gt;
b:=2;&lt;br/&gt;
c:=3;&lt;/p&gt;
&lt;p&gt;wait5(IN:=TRUE, PT:=T#5S);&lt;br/&gt;
IF NOT (wait5.Q) THEN&lt;br/&gt;
    RETURN;&lt;br/&gt;
END_IF&lt;/p&gt;
&lt;p&gt;wait5(IN:=FALSE);&lt;/p&gt;
&lt;p&gt;a:=7;&lt;br/&gt;
b:=8;&lt;br/&gt;
c:=9;&lt;/p&gt;
&lt;p&gt;wait6(IN:=TRUE, PT:=T#5S);&lt;br/&gt;
IF NOT (wait6.Q) THEN&lt;br/&gt;
    RETURN;&lt;br/&gt;
END_IF&lt;/p&gt;
&lt;p&gt;wait6(IN:=FALSE);&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Delay (Wait) in  Structure Text</title><link href="https://forge.codesys.com/forge/talk/Codesys%2520V2.3/thread/9d72ee0891/?limit=25#77b0" rel="alternate"/><published>2020-02-27T22:15:50.182000Z</published><updated>2020-02-27T22:15:50.182000Z</updated><author><name>shooter</name><uri>https://forge.codesys.com/u/shooter/</uri></author><id>https://forge.codesys.com2280731ebf9fc2581c0cf7a12b5ade443e0aa643</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;in this function block you can use a input var for the time.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Delay (Wait) in  Structure Text</title><link href="https://forge.codesys.com/forge/talk/Codesys%2520V2.3/thread/9d72ee0891/?limit=25#f1d8" rel="alternate"/><published>2020-02-27T22:15:48.574000Z</published><updated>2020-02-27T22:15:48.574000Z</updated><author><name>Anonymous</name><uri>https://forge.codesys.com/u/*anonymous/</uri></author><id>https://forge.codesys.comd7ba627072066e3ebdbb6d4bfa4646bdd3dd28a8</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;&lt;em&gt;Originally created by:&lt;/em&gt; scott_cunningham&lt;/p&gt;
&lt;p&gt;You need to use a TON function block and either an IF statement or a CASE statement, depending on the need complexity. &lt;/p&gt;
&lt;p&gt;For a very basic solution:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nv"&gt;VAR&lt;/span&gt;
   &lt;span class="nv"&gt;Delay&lt;/span&gt; : &lt;span class="nv"&gt;TON&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;Count&lt;/span&gt; : &lt;span class="nv"&gt;INT&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="nv"&gt;END_VAR&lt;/span&gt;
&lt;span class="nv"&gt;Delay&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;IN&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;TRUE&lt;/span&gt;, &lt;span class="nv"&gt;PT&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;T&lt;/span&gt;&lt;span class="sc"&gt;#1&lt;/span&gt;&lt;span class="nv"&gt;S&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;IF&lt;/span&gt; &lt;span class="nv"&gt;NOT&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;Delay&lt;/span&gt;.&lt;span class="nv"&gt;Q&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt; &lt;span class="k"&gt;THEN&lt;/span&gt;
   &lt;span class="k"&gt;RETURN&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="nv"&gt;END_IF&lt;/span&gt;
&lt;span class="nv"&gt;Delay&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;IN&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;FALSE&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="nv"&gt;delay&lt;/span&gt; &lt;span class="nv"&gt;is&lt;/span&gt; &lt;span class="nv"&gt;over&lt;/span&gt;.... &lt;span class="nv"&gt;More&lt;/span&gt; &lt;span class="nv"&gt;code&lt;/span&gt; &lt;span class="nv"&gt;here&lt;/span&gt;
&lt;span class="nv"&gt;Count&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;Count&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;This is a simple example.  Be sure to call the TON FB with FALSE once to reset it so it is ready for the next time... This example should result in the variable Count incrementing roughly every second.&lt;/p&gt;
&lt;p&gt;In real life, you probably need something more advanced, but it hopefully helps you out. &lt;/p&gt;
&lt;p&gt;Note: code above was manually typed in - I may have a typo or two&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Delay (Wait) in  Structure Text</title><link href="https://forge.codesys.com/forge/talk/Codesys%2520V2.3/thread/9d72ee0891/?limit=25#e1b7" rel="alternate"/><published>2020-02-27T22:15:44.260000Z</published><updated>2020-02-27T22:15:44.260000Z</updated><author><name>manantrivedi77</name><uri>https://forge.codesys.com/u/manantrivedi77/</uri></author><id>https://forge.codesys.com7545d28cbf702eee09cbfd3a093f81be6ffaaf87</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;How can I achieve delay(wait_ time in Structure Text code?&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>