<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to Hilfe für Wartefunktion benötigt</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/9c21c715f1/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/9c21c715f1/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/Deutsch/thread/9c21c715f1/</id><updated>2020-02-28T07:28:39.865000Z</updated><subtitle>Recent posts to Hilfe für Wartefunktion benötigt</subtitle><entry><title>Hilfe für Wartefunktion benötigt</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/9c21c715f1/?limit=25#91d4" rel="alternate"/><published>2020-02-28T07:28:39.865000Z</published><updated>2020-02-28T07:28:39.865000Z</updated><author><name>Hubert-De</name><uri>https://forge.codesys.com/u/hubert-de/</uri></author><id>https://forge.codesys.com4206ce8cd7230b72f5b5ba5ed06d9cbc3da43cb7</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hallo,&lt;br/&gt;
ja da war das Brett vorm Kopf. Blinker macht ja genau ein zyklisches Ein/Aus mit einstellbarer Zeitgrenze. Hab den Blinker zur Zeit diverese Male verwendet, aber eben nur für ein zyklisches Einschalten einer LED,  da hätt mir das auch auffallen können &lt;br/&gt;
aber mit der Wartefunktion mit 2 Signalen hats auch ganz gut funktioniert und lass es jetzt so drin &lt;br/&gt;
Vg &lt;br/&gt;
Hubert&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Hilfe für Wartefunktion benötigt</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/9c21c715f1/?limit=25#526a" rel="alternate"/><published>2020-02-28T07:28:33.605000Z</published><updated>2020-02-28T07:28:33.605000Z</updated><author><name>Erik Böhm</name><uri>https://forge.codesys.com/u/erik-boehm/</uri></author><id>https://forge.codesys.comcf291fef5f858a0a39769749c57d94012836a728</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Moin&lt;/p&gt;
&lt;p&gt;Ich denke es geht auch einfacher:&lt;/p&gt;
&lt;p&gt;FUNCTION_BLOCK OSZILLATOR_FB&lt;br/&gt;
VAR_INPUT&lt;br/&gt;
   T1   : TIME := t#500ms;   (&lt;em&gt; Pausendauer &lt;/em&gt;)&lt;br/&gt;
   T2   : TIME := t#500ms;   (&lt;em&gt; Pulsdauer &lt;/em&gt;)&lt;br/&gt;
END_VAR&lt;br/&gt;
VAR_OUTPUT&lt;br/&gt;
  Q : BOOL;&lt;br/&gt;
END_VAR&lt;br/&gt;
VAR&lt;br/&gt;
  blinker:BLINK;&lt;br/&gt;
END_VAR&lt;/p&gt;
&lt;p&gt;blinker(enable:=TRUE,TIMELOW:=T1,TIMEHIGH:=T2);&lt;br/&gt;
Q   := blinker.out;&lt;/p&gt;
&lt;p&gt;Jedesmal wenn von Q eine steigende Flanke kommt hochzählen.&lt;/p&gt;
&lt;p&gt;Gruß Erik&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Hilfe für Wartefunktion benötigt</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/9c21c715f1/?limit=25#f7cd" rel="alternate"/><published>2020-02-28T07:28:31.301000Z</published><updated>2020-02-28T07:28:31.301000Z</updated><author><name>Hubert-De</name><uri>https://forge.codesys.com/u/hubert-de/</uri></author><id>https://forge.codesys.comfe94d2ca9150015aa3c0496074d28a751e3e7e92</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Vielen Dank für die ausführliche Antwort. &lt;br/&gt;
Werds morgen gleich mal implementieren, sollte dann ohne Probleme laufen.&lt;/p&gt;
&lt;p&gt;VG &lt;br/&gt;
Hubert&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Hilfe für Wartefunktion benötigt</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/9c21c715f1/?limit=25#2359" rel="alternate"/><published>2020-02-28T07:28:24.924000Z</published><updated>2020-02-28T07:28:24.924000Z</updated><author><name>Rolf-Geisler</name><uri>https://forge.codesys.com/u/rolf-geisler/</uri></author><id>https://forge.codesys.com42b18b531829afbc0e9ca9e2a6b22c6356ad3fb5</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hallo,&lt;br/&gt;
Du brauchst zwei Timer, die sich gegenseitig anstossen. Die Flanke eines Timersignals verwendest Du zum Hochzählen.&lt;br/&gt;
Hier ein Beispiel, was ich in allen Projekten als 1s-Taktgenerator benutze :&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nv"&gt;FUNCTION_BLOCK&lt;/span&gt; &lt;span class="nv"&gt;FB_Blinker&lt;/span&gt;
&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;
&lt;span class="nv"&gt;Blinker&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;s&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nv"&gt;Takt&lt;/span&gt;
&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;
&lt;span class="nv"&gt;VAR_INPUT&lt;/span&gt;
  &lt;span class="nv"&gt;Enable&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;END_VAR&lt;/span&gt;
&lt;span class="nv"&gt;VAR_OUTPUT&lt;/span&gt;
  &lt;span class="nv"&gt;Q&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;END_VAR&lt;/span&gt;
&lt;span class="nv"&gt;VAR&lt;/span&gt;
  &lt;span class="nv"&gt;Puls&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;tPuls&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;TPause&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;END_VAR&lt;/span&gt;
&lt;span class="k"&gt;IF&lt;/span&gt; &lt;span class="nv"&gt;Enable&lt;/span&gt;
&lt;span class="k"&gt;THEN&lt;/span&gt; &lt;span class="nv"&gt;tPuls&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;NOT&lt;/span&gt; &lt;span class="nv"&gt;Puls&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;TIME&lt;/span&gt;&lt;span class="sc"&gt;#500&lt;/span&gt;&lt;span class="nv"&gt;ms&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
     &lt;span class="nv"&gt;tPause&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;Puls&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;TIME&lt;/span&gt;&lt;span class="sc"&gt;#500&lt;/span&gt;&lt;span class="nv"&gt;ms&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;tPuls&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;Puls&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;TRUE&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="k"&gt;IF&lt;/span&gt; &lt;span class="nv"&gt;tPause&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;Puls&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;FALSE&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="nv"&gt;Q&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;Puls&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;ELSE&lt;/span&gt; &lt;span class="nv"&gt;Q&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;FALSE&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;Q ist das besagte Signal, dessen Flanke zum Zählen verwendet werden kann.&lt;br/&gt;
Gruss&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Hilfe für Wartefunktion benötigt</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/9c21c715f1/?limit=25#dbed" rel="alternate"/><published>2020-02-28T07:28:22.608000Z</published><updated>2020-02-28T07:28:22.608000Z</updated><author><name>Hubert-De</name><uri>https://forge.codesys.com/u/hubert-de/</uri></author><id>https://forge.codesys.com16b3dc51d019782c8684e52042bd34f683d8b2ad</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hallo, ich häng seit 1,5 Tagen und weiß nicht wie ich eine Wartefunktion in einer Schleife implementieren soll, die bei jedem Schleifendurchlauf aber benutzt wird. &lt;br/&gt;
Hintergrund ist: Ich will einen Wert hochzaehlen, wenn eine Taste gedrückt ist. Dies soll aber nicht schnellstmöglich gehen, sondern dass sich der Wert (für eine Widerstandsdekade) alle 500ms um 1 erhöht. Das hochzaehlen funktioniert und einen Timer hätt ich mit einem TP Glied realisiert. Nur die Wartefunktion wird nur einmal ausgeführt, da ja im nächsten Ablauf ET= PT ist und somit die Wartefunktion einfach durchgeschleift wird. Den Wert ET kann ich aber nicht zurücksetzen. &lt;br/&gt;
Gibts einen fertigen Baustein Timer oder wo hab ich grad das Brett vor dem Kopf?&lt;/p&gt;
&lt;p&gt;Vielen Dank schonmal!&lt;/p&gt;
&lt;p&gt;PS: hier noch mein Code&lt;br/&gt;
//&lt;br/&gt;
IF Ergebnis_PP &amp;lt;255 AND PP_Plus_kurz = TRUE THEN&lt;/p&gt;
&lt;p&gt;warte:=TRUE;&lt;br/&gt;
Warten(IN:= warte, PT:= T#200ms);&lt;br/&gt;
setzen_moeglich:= NOT Warten.Q;&lt;br/&gt;
(&lt;em&gt; schleife wird bisher nur einmal abgearbeitet&lt;/em&gt;)&lt;br/&gt;
    IF setzen_moeglich = TRUE THEN&lt;br/&gt;
        Ergebnis_PP:=  Ergebnis_PP +1;&lt;br/&gt;
        in_bits_wandeln(In:=Ergebnis_PP);&lt;br/&gt;
        OUT_Pp_Bit0 := in_bits_wandeln.B0;&lt;br/&gt;
        OUT_Pp_Bit1 := in_bits_wandeln.B1;&lt;br/&gt;
        OUT_Pp_Bit2 := in_bits_wandeln.B2;&lt;br/&gt;
        OUT_Pp_Bit3 := in_bits_wandeln.B3;&lt;br/&gt;
        OUT_Pp_Bit4 := in_bits_wandeln.B4;&lt;br/&gt;
        OUT_Pp_Bit5 := in_bits_wandeln.B5;&lt;br/&gt;
        OUT_Pp_Bit6 := in_bits_wandeln.B6;&lt;br/&gt;
        OUT_Pp_Bit7 := in_bits_wandeln.B7;&lt;br/&gt;
        setzen_moeglich := FALSE;&lt;br/&gt;
warte:= False;&lt;br/&gt;
    END_IF&lt;br/&gt;
END_IF&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>