<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to Verschachtelte Timer</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/4f536249a3/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/4f536249a3/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/Deutsch/thread/4f536249a3/</id><updated>2023-08-11T14:17:39.683000Z</updated><subtitle>Recent posts to Verschachtelte Timer</subtitle><entry><title>Verschachtelte Timer</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/4f536249a3/?limit=25#9e8b" rel="alternate"/><published>2023-08-11T14:17:39.683000Z</published><updated>2023-08-11T14:17:39.683000Z</updated><author><name>codesys-newbie</name><uri>https://forge.codesys.com/u/codesys-newbie/</uri></author><id>https://forge.codesys.comcc65c4711f573e2f6ff919edbda1a2e34c0d7997</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;ich möchte 2 Timer laufen lassen. Dabei soll der eine Timer alle X Sekunden und der zweite Timer alle Y Sekunden ablaufen. Dann möchte ich jedesmal, wenn der 2. Tmer abläuft einen Wert (Value) um 100 / (X/Y) erhöhen. Damit würde ich eine Art Ladebalken visualisieren. &lt;/p&gt;
&lt;p&gt;Beispiel: &lt;/p&gt;
&lt;p&gt;X = 5s&lt;br/&gt;
Y = 50 ms&lt;br/&gt;
Value_init = 0&lt;/p&gt;
&lt;p&gt;100 / (5000ms/50ms) = 1&lt;/p&gt;
&lt;p&gt;Dann würde man bei jedem Schritt + 1 rechnen. So sollte ich von 0 auf 100 kommen bis zum Ende der 5s, &lt;br/&gt;
wenn ich die Berechnung alle 50 ms durchführe. Ich lande aber bei 61. &lt;/p&gt;
&lt;p&gt;Kann sich das einer erklären?&lt;/p&gt;
&lt;p&gt;Der Code würde wie folgt aussehen:&lt;/p&gt;
&lt;p&gt;timerMotorSimulaton(IN := TRUE, PT := X); &lt;br/&gt;
timerMotorStep(IN := TRUE, PT := Y);&lt;/p&gt;
&lt;p&gt;IF timerMotorStep.Q THEN&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="err"&gt;Value := Value + 100.0 / (TIME_TO_REAL(X)/TIME_TO_REAL(Y));&lt;/span&gt;
&lt;span class="err"&gt;timerMotorStep(IN := FALSE);&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;END_IF&lt;/p&gt;
&lt;p&gt;IF timerMotorSimulaton.Q THEN&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="err"&gt;timerMotorSimulaton(IN := FALSE);&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;END_IF  &lt;/p&gt;&lt;/div&gt;</summary></entry></feed>