<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to Stoppuhr</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/228756b43f/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/228756b43f/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/Deutsch/thread/228756b43f/</id><updated>2020-02-28T17:14:38.816000Z</updated><subtitle>Recent posts to Stoppuhr</subtitle><entry><title>Stoppuhr</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/228756b43f/?limit=25#1d19" rel="alternate"/><published>2020-02-28T17:14:38.816000Z</published><updated>2020-02-28T17:14:38.816000Z</updated><author><name>Anonymous</name><uri>https://forge.codesys.com/u/*anonymous/</uri></author><id>https://forge.codesys.come29f09def8c02f1064f6a821f0afdae02bb17284</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;&lt;em&gt;Originally created by:&lt;/em&gt; jl&lt;/p&gt;
&lt;p&gt;Hallo nochmal!&lt;/p&gt;
&lt;p&gt;Die Variante mit der Systemzeit hätte ich so gemacht:&lt;/p&gt;
&lt;p&gt;IF starteStoppUhr THEN&lt;br/&gt;
      IF NOT getStartzeit THEN&lt;br/&gt;
            getStartzeit := TRUE;&lt;br/&gt;
            startzeit := TIME();&lt;br/&gt;
      END_IF&lt;br/&gt;
      zeit := TIME() - t1;&lt;br/&gt;
END_IF&lt;/p&gt;
&lt;p&gt;IF reset THEN&lt;br/&gt;
    reset := FALSE;&lt;br/&gt;
    getStartzeit := FALSE&lt;br/&gt;
    zeit := t#0ms;&lt;br/&gt;
END_IF&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Stoppuhr</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/228756b43f/?limit=25#b287" rel="alternate"/><published>2020-02-28T17:14:35.824000Z</published><updated>2020-02-28T17:14:35.824000Z</updated><author><name>Anonymous</name><uri>https://forge.codesys.com/u/*anonymous/</uri></author><id>https://forge.codesys.com6e29360a2141dee363ab6f1d440461ef160564f1</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;&lt;em&gt;Originally created by:&lt;/em&gt; jl&lt;/p&gt;
&lt;p&gt;Hallo!&lt;/p&gt;
&lt;p&gt;Viele Wege führen zum Ziel.&lt;br/&gt;
Man kann z.B. auch mit jedem Durchlauf des Taks eine Variable mit der Zykluszeit hochzählen lassen:&lt;/p&gt;
&lt;p&gt;IF starteStoppuhr THEN&lt;br/&gt;
     zeit := zeit + t#10ms;&lt;br/&gt;
END_IF&lt;/p&gt;
&lt;p&gt;Ein Reset wird allerdings auch noch benötigt:&lt;/p&gt;
&lt;p&gt;IF reset THEN&lt;br/&gt;
     zeit := 0;&lt;br/&gt;
END_IF&lt;/p&gt;
&lt;p&gt;Oder mit einem sich selbst rückstellendem Timer auch eine Variable hochzählen lassen. PT vom Timer bestimmt dann die Genauigkeit der Stoppuhr (hier z.B. 100ms)&lt;/p&gt;
&lt;p&gt;TON_takt(IN:= NOT TON_takt.Q  AND starteStoppUhr, PT:= t#100ms , Q=&amp;gt; , ET=&amp;gt; );&lt;/p&gt;
&lt;p&gt;IF TON_takt.Q THEN&lt;br/&gt;
     zeit := zeit + TON_takt.PT;&lt;br/&gt;
END_IF&lt;/p&gt;
&lt;p&gt;Oder einen Timer mit genügend langer PT laufen lassen und ET des Timer als gestoppte Zeit verwenden. Beachte allerdings bei dieser Variante, daß  die Zeit beim erneuten starten wieder von 0 beginnt:&lt;/p&gt;
&lt;p&gt;TON_stoppuhr(IN:=  starteStoppUhr, PT:= t#24h , Q=&amp;gt; , ET=&amp;gt; );&lt;/p&gt;
&lt;p&gt;IF starteStoppUhr THEN&lt;br/&gt;
     zeit := TON_stoppuhr.ET;&lt;br/&gt;
END_IF&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Stoppuhr</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/228756b43f/?limit=25#621e" rel="alternate"/><published>2020-02-28T17:14:27.701000Z</published><updated>2020-02-28T17:14:27.701000Z</updated><author><name>FredlFesl</name><uri>https://forge.codesys.com/u/fredlfesl/</uri></author><id>https://forge.codesys.comdd16db1fc9e3a3b3514c60cb4c0fc0ee42ee5222</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Vielen Dank!  &lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Stoppuhr</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/228756b43f/?limit=25#16ab" rel="alternate"/><published>2020-02-28T17:14:24.613000Z</published><updated>2020-02-28T17:14:24.613000Z</updated><author><name>Rolf-Geisler</name><uri>https://forge.codesys.com/u/rolf-geisler/</uri></author><id>https://forge.codesys.com61c4bf552e7ded67e072eca57a4071abf3dd7030</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Ist wirklich nicht so schwer.&lt;/p&gt;
&lt;p&gt;Hallo erstmal,&lt;br/&gt;
es gibt die Funktion TIME(), die den CPU-Zeitstempel liefert. An der steigenden Flanke Deiner BOOL-Variablen holst Du Dir also die Zeit von der CPU ab und speicherst sie in eine TIME-Variable, und an der fallenden Flanke holst Du die Zeit noch mal von der CPU ab und bildest die Differenz zum gespeicherten Zeitstempel:&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;Trigger&lt;/span&gt; : &lt;span class="nv"&gt;BOOL&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
  &lt;span class="nv"&gt;StartVonTrigger&lt;/span&gt; : &lt;span class="nv"&gt;TIME&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
  &lt;span class="nv"&gt;LaengeVonTrigger&lt;/span&gt; : &lt;span class="nv"&gt;TIME&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
  &lt;span class="nv"&gt;lhTrigger&lt;/span&gt; : &lt;span class="nv"&gt;R_TRIG&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
  &lt;span class="nv"&gt;hlTrigger&lt;/span&gt; : &lt;span class="nv"&gt;F_TRIG&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="nv"&gt;END_VAR&lt;/span&gt;
&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="nv"&gt;Erst&lt;/span&gt; &lt;span class="nv"&gt;mal&lt;/span&gt; &lt;span class="nv"&gt;nach&lt;/span&gt; &lt;span class="nv"&gt;den&lt;/span&gt; &lt;span class="nv"&gt;Signalflanken&lt;/span&gt; &lt;span class="nv"&gt;suchen&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;
&lt;span class="nv"&gt;lhTrigger&lt;/span&gt; &lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;CLK&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;Trigger&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="nv"&gt;hlTrigger&lt;/span&gt; &lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;CLK&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;Trigger&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="nv"&gt;und&lt;/span&gt; &lt;span class="nv"&gt;jetzt&lt;/span&gt; &lt;span class="nv"&gt;die&lt;/span&gt; &lt;span class="nv"&gt;Signalflanken&lt;/span&gt; &lt;span class="nv"&gt;auswerten&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;
&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; ... &lt;span class="nv"&gt;Startflanke&lt;/span&gt; &lt;span class="nv"&gt;von&lt;/span&gt; &lt;span class="nv"&gt;Trigger&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;IF&lt;/span&gt; &lt;span class="nv"&gt;lhTrigger&lt;/span&gt;.&lt;span class="nv"&gt;Q&lt;/span&gt;
&lt;span class="k"&gt;THEN&lt;/span&gt; &lt;span class="nv"&gt;StartVonTrigger&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;TIME&lt;/span&gt;&lt;span class="ss"&gt;()&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="nv"&gt;END_IF&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; ... &lt;span class="nv"&gt;Stopflanke&lt;/span&gt; &lt;span class="nv"&gt;von&lt;/span&gt; &lt;span class="nv"&gt;Trigger&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;IF&lt;/span&gt; &lt;span class="nv"&gt;hlTrigger&lt;/span&gt;.&lt;span class="nv"&gt;Q&lt;/span&gt;
&lt;span class="k"&gt;THEN&lt;/span&gt; &lt;span class="nv"&gt;LaengeVonTrigger&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;TIME&lt;/span&gt;&lt;span class="ss"&gt;()&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nv"&gt;StartVonTrigger&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="nv"&gt;END_IF&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Gruss Rolf&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Stoppuhr</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/228756b43f/?limit=25#df0c" rel="alternate"/><published>2020-02-28T17:14:16.643000Z</published><updated>2020-02-28T17:14:16.643000Z</updated><author><name>FredlFesl</name><uri>https://forge.codesys.com/u/fredlfesl/</uri></author><id>https://forge.codesys.comfb862b5433f37f66b0812063a4d4c1618bd2fe8c</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hi!&lt;br/&gt;
Könnt ihr mir verraten wie ich eine Stoppuhr programmieren kann.&lt;br/&gt;
Die Zeit soll starten wenn eine bool variable auf true ist stoppen wenn sie auf false ist.&lt;br/&gt;
ist bestimmt nicht so schwer. Aber ich weiß es trotzdem nicht.&lt;/p&gt;
&lt;p&gt;Danke.&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>