Startseite > Forum > IEC 61131-Programmierung (LogicLab) > Hysteresemanagement bei Heizungsregelung
- Dieses Thema hat 5 Antworten, 2 Teilnehmer und wurde zuletzt aktualisiert 8 Jahre, 2 Monate da Sergio Bertana.
-
AutorPost
-
November 18, 2015 bei 2: 19 pm #35879AnonymLeerlauf
Ich habe ein einfaches Kontaktplanprogramm erstellt, das die Steuerung einer Heizung basierend auf der Pt100-Temperaturerfassung verwaltet. Um Schwankungen beim Heizungsbefehl zu vermeiden, habe ich eine Hysterese für den Temperaturwert eingerichtet.
Nicht sehr praktisch in der ST-Sprache, wenn man befolgt, was in berichtet wird dieses Thema Ich habe alles in Leiterform erstellt, hier ist es Screenshot des Programms. Ich habe mich gefragt, ob es möglich wäre, ein Beispiel in ST zu haben, sodass es auch für mich nützlich sein kann, näher an die Verwendung der Sprache heranzukommen.
November 18, 2015 bei 2: 30 pm #39195Sergio BertanaAdministrator des ForumsUnter der Annahme, dass das von Ihnen durchgeführte Hysteresemanagement korrekt ist, enthält das von Ihnen erstellte Diagramm nichts von der Leiter und ist besser für die FBD-Sprache geeignet (Bildschirmfoto). So sehr, dass in der neuen Version von LogicLab 4 der Leitereditor überarbeitet wurde für „costringere„Der Entwickler muss sich an die Regeln der Norm IEC 61131 halten. Aber keine Sorge, es ist jederzeit möglich, die Abwärtskompatibilität mit dem aktuellen Editor weiterhin zu nutzen. Sehen wir uns nun an, wie man das Programm in ST schreibt.
AnInp.Address:=0; (* Module address *)
AnInp.Channel:=0; (* Module channel *)
AnInp.Mode:=AD_VOLT_0_10_COMMON; (* Acquisition mode *)
AnInp(); (* Execute the analog acquisistion *)IF (AnInp.Value < Minimum) THEN Heating:=TRUE; END_IF; (* If the value drops below minimum set the command *)
IF (AnInp.Value >= Maximum) THEN Heating:=FALSE; END_IF; (* If the value reach the maximum reset the command *)
IF (AnInp.Fault) THEN Heating:=FALSE; END_IF; (* On FB fault reset the command *)Selbst für diejenigen, die keine Programmiererfahrung in der ST-Sprache haben, halte ich das Programm für lesbar, die Aneignung ist im ersten Teil gelungen. Anschließend wird der erfasste Wert mit der IF-Anweisung mit den Minimal- und Maximalwerten verglichen und wenn die Bedingung wahr ist, werden die nach THEN geschriebenen Operationen ausgeführt.
November 18, 2015 bei 3: 40 pm #39196Sergio BertanaAdministrator des ForumsNatürlich ist es praktisch, eine Funktion zur Handhabung der Hysterese zu erstellen. In diesem Programm (Drucken ) Ich habe zwei Funktionen für die Verwaltung der Hysterese erstellt, eine in ST geschrieben und die andere in FBD (Programm herunterladen).
November 20, 2015 bei 2: 00 pm #39198AnonymLeerlaufIch sollte Folgendes überprüfen:
Temperatur < des Sollwerts -> Ventil A öffnen (Heizen)
Temperatur > des SetPoints -> Ventil B öffnen (kühlen)
-2° vom SetPoint > Temperatur < +2° vom SetPoint -> beide Ventile A und B schließenWenn der Warm- oder Kaltzufluss (bei überdimensionierten Pumpen oder Ventilen) zu groß ist, führt das Anhalten vor Erreichen des Sollwerts nicht dazu, dass dieser überschritten wird.
November 20, 2015 bei 2: 15 pm #39199Sergio BertanaAdministrator des ForumsNehmen wir an, dass es bei einer Ein/Aus-Regelung schwierig ist, Überschwinger zu vermeiden, da das System immer dazu neigt, die Sollwerte zu überschreiten. Nur eine PID-Regelung ermöglicht es, dieses Problem zu vermeiden. Um jedoch eine PID-Regelung zu implementieren, benötigen Sie Pumpen und/oder Ventile, die analog gesteuert werden können (variable Geschwindigkeit/Durchfluss).
Die Lösung, eine Totzone um den SetPoint-Wert zu erzeugen, ist jedoch gut (Sie haben ±2 Grad eingestellt), aber Sie können einen variablen Wert experimentell festlegen, der auf realen Tests am System basiert. Durch Erhöhen der Totzone können Sie den Vorgang stoppen, bevor der SetPoint erreicht wird, sodass die Aufgabe, die Temperatur auf den SetPoint-Wert zu bringen, der thermischen Trägheit überlassen bleibt, ohne dass es zu einem Überschwingen kommt.
Hier ist es Screenshot in SimuLab Simulation einer einfachen Doppeleffektheizung mit Totzone (Programm herunterladen).
Februar 3, 2016 bei 8: 15 #39330Sergio BertanaAdministrator des ForumsIch hänge die FB an OnOffRegulation das habe ich gemacht, um die Einstellung von Lufterhitzern in der Firma zu verwalten. Der FB verwaltet die Temperaturschwelle mit einem Totband, um die Pendel auf dem Befehl zu vermeiden (Drucken , Bibliothek).
-
AutorPost
- Sie müssen angemeldet sein, um auf dieses Thema antworten zu können.