Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 8 von 8

Thema: Twincat Vorlauftemperatur

  1. #1
    Registriert seit
    22.09.2008
    Beiträge
    24
    Danke
    7
    Erhielt 2 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    ich bin ganz neu in der SPS-Welt und brauche daher ein bisschen Unterstützung. Ich versuche gerade eine Vorlauftemperaturregelung für unsere Heizung zu basteln. Ich benutze einen Beckhoff CX_1000 und Twincat v2.10 .

    Ich habe bisher mit der Funktion "HEAT_TEMP" aus der Oscat.lib rumgespielt. Der funktioniert auch ganz gut soweit. Den Ausgangswert dieser Funktionon muss ich jetzt weiter verarbeiten und genau da komm ich nicht weiter.

    Ich versuch mal zu beschreiben was ich vor habe:

    Die Vorlauftemperatur soll nach der Aussentemperatur geregelt werden. ( das machst ja schon der "HEAT_TEMP")
    Ich bekomme also die Vorlauftemperatur als Ausgabewert (nennen wir ihn mal "TEMP_VORLAUF_SOLL").

    Ich habe einen Temperaturfühler, der die aktuelle Vorlauftemperatur misst. (Diesen Wert nenne ich mal "TEMP_VORLAUF_IST).

    Jetzt komme ich zu meinem eigentlichen Problem:

    Ich habe eine analoge Ausgangsklemme ( 0 - 10 V) mit der ich ein Ventil steuere, dass den Vorlauf regelt. Ich möchte jetzt einfach die "TEMP_VORLAUF_IST" auf die "TEMP_VORLAUF_SOLL" bringen, indem ich das Ventil weiter öffne bzw. weiter schließe. Das ganze soll dann automatisch regeln wenn sich z.B. die Werte für "TEMP_VORLAUF_IST" verändern.

    Wenn jemand eine Idee hat wie ich das umsetzen kann, wäre ich sehr dankbar.

    Grüße

    Pepper
    Zitieren Zitieren Twincat Vorlauftemperatur  

  2. #2
    Registriert seit
    14.08.2004
    Beiträge
    824
    Danke
    45
    Erhielt 73 Danke für 66 Beiträge

    Standard

    Du brauchts einen PID-Regler in deinem Code. Findest du in OSCAT



    Temp_Ist -> PID-Regler -> Stellgrösse_Ventil

    Für die Ermittlung des P, des I und des D-Anteils ermittelst du eine Sprungantwort und leitest daraus, deine Grössen ab.

  3. Folgender Benutzer sagt Danke zu drfunfrock für den nützlichen Beitrag:

    Pepper (24.09.2008)

  4. #3
    Pepper ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    22.09.2008
    Beiträge
    24
    Danke
    7
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Erst mal vielen Danke für die schnelle Antwort. Mit dem PID hab ich das leider nicht so hinbekommen, wie ich mir das vorgestellt habe. Eine Lösung habe ich trotzdem gefunden. Ich versuche meine Lösung eben mal zu erläutern. Erfahrene SPS-Programmierer werden warscheinlich den Kopf schütteln, aber als SPS-Anfänger bin ich ja noch am lernen.


    Mein Ausgangsbaustein ist wie gesagt der "HEAT_TEMP" aus der Oscat.lib .



    HEAT_TEMP --> CTRL_IN (OSCAT.lib) --> "Vergleich <, >" ......

    CTRL gibt mir die Differenz zwischen "Vorlauftemp_ist" und "Vorlauftemp_soll" aus. Der Vergleicher hat zwei Ausgänge, zähler_rauf( < 0) & zähler_runter( > 0). Bei 0 sind beide Ausgänge FALSE.

    Jetzt kommt die eigentliche Schweinerei...

    Ich habe ein "CTUD" genommen und jeweils ein "CLK_N" (Oscat.lib).


    -CLK_N1 -
    -- AND =========== CU (Eingang CTUD)
    -zähler_rauf-

    ---------------------------

    -CLK_N2 -
    -- AND ============== CD (Eingang CTUD)
    -zähler_runter-



    Den CTUD habe ich auf Max-wert "32767" gestellt, damit ich die analoge Ausgangsklemme ( 0 - 10V ) steuern kann.

    Das ganze funktioniert wunderbar auf den 10tel Grad genau. Wenn jemand noch Verbesserungsvorschläge hat, immer her damit.

    Gruß Pepper

  5. #4
    Registriert seit
    14.08.2004
    Beiträge
    824
    Danke
    45
    Erhielt 73 Danke für 66 Beiträge

    Standard

    Du hast noch Glück, dass das funkt. Ob die Sache auch stabil geregelt wird, wird sich noch herausstellen. Das ist die eigentliche Kunst der Regelungstechnik.

    Im übrigen, deinen Vergleicher-FBs aus OSCAT braucht es nicht, das geht auch mit IF-THEN-ELSE

    Den PID-Regler instanzierst du global und startest den in JEDEM Zyklus. Anfangs kann man den D und den I-Anteil auf 0 stehen lassen.

  6. #5
    Pepper ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    22.09.2008
    Beiträge
    24
    Danke
    7
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Den Vergleicher hatte ich schon mit IF-THEN_ELSE gebaut.

    Nochmal zum PID-Regler.

    Ich hab im Internet ein paar beschreibungen gefunden, aber wenn ich mir die durchlese verstehe ich nciht wirklich viel. Ich beschäftige mich zum ersten mal mit Regelungstechnik, deshalb fehlen mir die ganzen Grundlagen. Gibt es vielleicht eine Internetseite, wo die standard Regelbausteine einfach beschrieben sind?

    Gruß Pepper

  7. #6
    Registriert seit
    14.08.2004
    Beiträge
    824
    Danke
    45
    Erhielt 73 Danke für 66 Beiträge

    Standard

    Wie immer: Wikipedia über Google gefunden ist dein Freund

    http://de.wikipedia.org/wiki/Regler#PID-Regler

    Die Herausforderung ist schnell zu regeln und das System nicht instabil werden zu lassen. Dh. in deinem Fall dass die Temperatur nicht um das Soll schwankt oder gar heftig oszilliert.

    Dafür gibt es auch Faustregeln, die mir aber nicht bekannt sind.

  8. #7
    Registriert seit
    08.02.2007
    Beiträge
    14
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Hallo pepper

    im anhang auf die schnelle.
    wie drfunrock schon schreibt scheinst du glück zu haben das es funzt.
    Angehängte Grafiken Angehängte Grafiken

  9. Folgender Benutzer sagt Danke zu swmggs für den nützlichen Beitrag:

    Pepper (25.09.2008)

  10. #8
    Pepper ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    22.09.2008
    Beiträge
    24
    Danke
    7
    Erhielt 2 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Vielen Dank für die Mühe, die du dir mit dem Bild gemacht hast. Ich werde gleich mal versuchen das auf meine Steuerung zu übertragen. Ich werde euch dann berichten ob alles funktioniert, oder nicht .

Ähnliche Themen

  1. Heizung-Vorlauftemperatur per S7 regeln
    Von spacedriver im Forum Simatic
    Antworten: 14
    Letzter Beitrag: 21.10.2011, 09:17
  2. TwinCAT 3 und C++
    Von mimuel im Forum CODESYS und IEC61131
    Antworten: 31
    Letzter Beitrag: 21.04.2011, 20:43
  3. TwinCAT stürzt ab sobald TwinCAT System gestartet wird
    Von HK09 im Forum CODESYS und IEC61131
    Antworten: 2
    Letzter Beitrag: 23.09.2010, 10:02
  4. Antworten: 4
    Letzter Beitrag: 03.11.2009, 14:05
  5. TwinCAT/C++/COM
    Von hans47 im Forum Programmierstrategien
    Antworten: 0
    Letzter Beitrag: 22.12.2008, 16:12

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •