<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to Klimaanlagen-Steuerung (Simulation)</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/c3f499cefb/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/c3f499cefb/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/Deutsch/thread/c3f499cefb/</id><updated>2020-02-28T11:58:05.898000Z</updated><subtitle>Recent posts to Klimaanlagen-Steuerung (Simulation)</subtitle><entry><title>Klimaanlagen-Steuerung (Simulation)</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/c3f499cefb/?limit=25#0361" rel="alternate"/><published>2020-02-28T11:58:05.898000Z</published><updated>2020-02-28T11:58:05.898000Z</updated><author><name>Erik Böhm</name><uri>https://forge.codesys.com/u/erik-boehm/</uri></author><id>https://forge.codesys.com6e10782af43db36c4633ebdc3ce6d70f3e7ef746</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Dann musst du als Startbedingung (IN) für den Timer das Wechselereignis eintragen (also z.B. Status1 &amp;lt;&amp;gt; Status1Old) oder so.&lt;br/&gt;
Der Timer startet immer bei steigender Flanke von IN.&lt;/p&gt;
&lt;p&gt;Wo du den dann positionierst wird wohl egal sein.&lt;br/&gt;
Denn wie sagt Sepp Herberger:&lt;/p&gt;
&lt;p&gt;Nach dem Ablauf ist vor dem Ablauf .&lt;/p&gt;
&lt;p&gt;Ich hab dann aber demnächst Feierabend.&lt;br/&gt;
Ich kuck heut abend dann noch mal rein ob du schon verzweifelt bist.&lt;/p&gt;
&lt;p&gt;Gruß&lt;br/&gt;
Erik&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Klimaanlagen-Steuerung (Simulation)</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/c3f499cefb/?limit=25#56cc" rel="alternate"/><published>2020-02-28T11:58:03.171000Z</published><updated>2020-02-28T11:58:03.171000Z</updated><author><name>Newbert</name><uri>https://forge.codesys.com/u/newbert/</uri></author><id>https://forge.codesys.com79b9aaf2091c42a1695e53031b7cfd4faf3fbe48</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hallo Erik,&lt;/p&gt;
&lt;p&gt;der Timer funktioniert soweit.&lt;br/&gt;
Allerdings weiss ich leider nicht wo ich den Timer positionieren soll...&lt;br/&gt;
Denn die anderen Funktionen dürfen dadurch nicht beeinträchtigt werden und der Timer soll immer wieder Starten wenn der Status gewechselt hat. ...Aaaarrrrrrr, es tut mir leid, ich bin leider ein blutiger Anfänger :-/&lt;/p&gt;
&lt;p&gt;Liebe Grüße,&lt;br/&gt;
David&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Klimaanlagen-Steuerung (Simulation)</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/c3f499cefb/?limit=25#a307" rel="alternate"/><published>2020-02-28T11:57:55.798000Z</published><updated>2020-02-28T11:57:55.798000Z</updated><author><name>Erik Böhm</name><uri>https://forge.codesys.com/u/erik-boehm/</uri></author><id>https://forge.codesys.combaf37882cf3da4a56424fa139e54e9c7a5bb7373</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Na dann mach doch einfach am Schluss des Ablaufs einen Schalter:&lt;/p&gt;
&lt;p&gt;if bAllOff then&lt;br/&gt;
 Status1 := FALSE;&lt;br/&gt;
 Status2 := FALSE;&lt;br/&gt;
end_if&lt;/p&gt;
&lt;p&gt;Timer etwa so:&lt;br/&gt;
Timer: TON;&lt;/p&gt;
&lt;p&gt;Timer(IN:= Status1 or Status2,PT := t#60s);&lt;br/&gt;
if Timer.Q then&lt;br/&gt;
 Status1 := not Status1;&lt;br/&gt;
 Status2 := not Status2;&lt;br/&gt;
end_if&lt;/p&gt;
&lt;p&gt;Gruß Erik&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Klimaanlagen-Steuerung (Simulation)</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/c3f499cefb/?limit=25#7d56" rel="alternate"/><published>2020-02-28T11:57:53.131000Z</published><updated>2020-02-28T11:57:53.131000Z</updated><author><name>Newbert</name><uri>https://forge.codesys.com/u/newbert/</uri></author><id>https://forge.codesys.com92fddf1170943380bd0c5201fd709a80b160f611</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Achso, also das Problem einfach umgehen...&lt;br/&gt;
Hmm, joa... ich bastel damit gleich noch mal rum.&lt;/p&gt;
&lt;p&gt;Allerdings läuft mir die Zeit davon, das ist ein Projekt das heute Nachmittag fertig sein soll &lt;/p&gt;
&lt;p&gt;Mir fehlen nur noch zwei Feinheiten, ein TIMER der automatisch nach 60 Sekunden von einer auf die anderen Anlage schaltet und dann eben ein Schalter der jeweils die Anlagen komplett ausschaltet. Und da verzweifel ich leider Gottes dran. &lt;/p&gt;
&lt;p&gt;Danke dir für deine Anregung mit dem "CASE"!! &lt;/p&gt;
&lt;p&gt;Liebe Grüße aus Dortmund,&lt;br/&gt;
David&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Klimaanlagen-Steuerung (Simulation)</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/c3f499cefb/?limit=25#e42e" rel="alternate"/><published>2020-02-28T11:57:45.470000Z</published><updated>2020-02-28T11:57:45.470000Z</updated><author><name>Erik Böhm</name><uri>https://forge.codesys.com/u/erik-boehm/</uri></author><id>https://forge.codesys.comdd1ff3e9019d0ef0664576086440c3f5f2956b00</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Servus&lt;/p&gt;
&lt;p&gt;Das ist mir auch schon bekannt &lt;/p&gt;
&lt;p&gt;Ich dachte an eine StateMachine wie:&lt;/p&gt;
&lt;p&gt;case iState of&lt;br/&gt;
 1:&lt;br/&gt;
   Prüfen ob min eine von beiden bereit, wenn ja, dann einschalten und Taster abfragen, wenn nein, dann iState = 10 usw...&lt;br/&gt;
 10:&lt;br/&gt;
    ;&lt;br/&gt;
 20:&lt;br/&gt;
    ;&lt;br/&gt;
end_case&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Klimaanlagen-Steuerung (Simulation)</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/c3f499cefb/?limit=25#0099" rel="alternate"/><published>2020-02-28T11:57:42.644000Z</published><updated>2020-02-28T11:57:42.644000Z</updated><author><name>Newbert</name><uri>https://forge.codesys.com/u/newbert/</uri></author><id>https://forge.codesys.com5b06db46ae11e709d8dbb6df9b9e4d9c81b58d99</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Ja, da die Schalter (Taster + Störer) BOOL sind, geht's nicht. Denn CASE benötigt INT... &lt;/p&gt;
&lt;p&gt;Liebe Grüße,&lt;br/&gt;
David&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Klimaanlagen-Steuerung (Simulation)</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/c3f499cefb/?limit=25#3e3a" rel="alternate"/><published>2020-02-28T11:57:35.103000Z</published><updated>2020-02-28T11:57:35.103000Z</updated><author><name>Erik Böhm</name><uri>https://forge.codesys.com/u/erik-boehm/</uri></author><id>https://forge.codesys.comac4e9b3aeb90e889ab8038a45e7be2c19a7f62d3</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Moin&lt;/p&gt;
&lt;p&gt;Ich hab das jetzt 3 mal durchgelesen und immer noch nicht verstanden was eigentlich passieren soll...&lt;/p&gt;
&lt;p&gt;Aber generell, hast du schon mal an eine 'case' Anweisung gedacht ?&lt;/p&gt;
&lt;p&gt;Gruß&lt;br/&gt;
Erik&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Klimaanlagen-Steuerung (Simulation)</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/c3f499cefb/?limit=25#f4b0" rel="alternate"/><published>2020-02-28T11:57:32.395000Z</published><updated>2020-02-28T11:57:32.395000Z</updated><author><name>Newbert</name><uri>https://forge.codesys.com/u/newbert/</uri></author><id>https://forge.codesys.com2fc78532f6cfed7e0839696bd02557d86c407b0d</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hallo CoDeSys-Gemeinde,&lt;/p&gt;
&lt;p&gt;kurz vor weg, ich bin absoluter Beginner in dem Bereich...&lt;/p&gt;
&lt;p&gt;Ich habe ein kleines Programm geschrieben, das 2 Klimaanlagen (simuliert) prüfen und im Fall "x" von einer auf die andere Klimaanlage schalten soll.&lt;/p&gt;
&lt;p&gt;PROGRAM PLC_PRG&lt;br/&gt;
VAR&lt;br/&gt;
    Taster1 AT %IX0.0 : BOOL; (&lt;em&gt; Channel 1 of first 750-400 &lt;/em&gt;) &lt;br/&gt;
    Stoerer1 AT %IX0.1 : BOOL; (&lt;em&gt; Channel 2 of first 750-400 &lt;/em&gt;)&lt;br/&gt;
    Taster2 AT %IX0.2 : BOOL; (&lt;em&gt; Channel 1 of second 750-400 &lt;/em&gt;)&lt;br/&gt;
    Stoerer2 AT %IX0.3 : BOOL; (&lt;em&gt; Channel 2 of second 750-400 &lt;/em&gt;)&lt;br/&gt;
    Status1 AT %QX0.0 : BOOL; (&lt;em&gt; Channel 1 of third 750-501 &lt;/em&gt;)&lt;br/&gt;
    Status2 AT %QX0.1 : BOOL; (&lt;em&gt; Channel 2 of third 750-501 &lt;/em&gt;)&lt;/p&gt;
&lt;p&gt;END_VAR&lt;/p&gt;
&lt;p&gt;IF Stoerer1 = FALSE AND Stoerer2 = FALSE THEN&lt;br/&gt;
    IF Taster1 = TRUE THEN&lt;br/&gt;
        Status1 := TRUE;&lt;br/&gt;
        Status2 := FALSE;&lt;br/&gt;
    END_IF&lt;br/&gt;
    IF Taster2 = TRUE THEN&lt;br/&gt;
        Status1 := FALSE;&lt;br/&gt;
        Status2 := TRUE;&lt;br/&gt;
    END_IF&lt;br/&gt;
END_IF&lt;/p&gt;
&lt;p&gt;IF Stoerer1 =TRUE AND Stoerer2 = FALSE THEN&lt;br/&gt;
    Status1 := FALSE;&lt;br/&gt;
    Status2 := TRUE;&lt;br/&gt;
END_IF&lt;/p&gt;
&lt;p&gt;IF Stoerer1 = FALSE AND Stoerer2 = TRUE THEN&lt;br/&gt;
    Status1 := TRUE;&lt;br/&gt;
    Status2 := FALSE;&lt;br/&gt;
END_IF&lt;/p&gt;
&lt;p&gt;IF Stoerer1 = TRUE AND Stoerer2 = TRUE THEN&lt;br/&gt;
    Status1 := FALSE;&lt;br/&gt;
    Status2 := FALSE;&lt;br/&gt;
END_IF&lt;/p&gt;
&lt;p&gt;IF Stoerer1 = FALSE AND Stoerer2 = FALSE  AND Status1 = FALSE AND Status2 = FALSE THEN&lt;br/&gt;
    Status1 := TRUE;&lt;br/&gt;
END_IF&lt;/p&gt;
&lt;p&gt;Bei dem Störer handelt es sich um einen RASTER, bei dem Taster um einen TASTER.&lt;/p&gt;
&lt;p&gt;Ich habe nun das Problem, das ich es nicht realisiert bekomme, die Systeme auszuschalten sondern immer ein Gerät läuft oder eben beide gestört sind.&lt;br/&gt;
Hat jemand von euch einen Tipp oder eine Idee wie ich das am besten realisieren kann?&lt;br/&gt;
Die Klimaanlagen müssen auch auszuschalten sein...&lt;/p&gt;
&lt;p&gt;Vielen lieben Dank schon mal vorab für's lesen.&lt;br/&gt;
-Bei Antworten und Tipps ein noch viel grösseres DANKE! &lt;/p&gt;
&lt;p&gt;Liebe Grüße,&lt;br/&gt;
David&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>