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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 16

Thema: Sprünge nach Zeit (in AWL)

  1. #1
    Registriert seit
    30.08.2007
    Beiträge
    207
    Danke
    16
    Erhielt 22 Danke für 17 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Eins vorweg: Es handelt sich hierbei um eine Übungsanlage und es geht mir nicht um eine sauber geregelte Steuerung, sondern eher um den Aha-Effekt bei einer Regelung!

    Hallo,

    in Sachen Sprungmarken bin ich nicht wirklich fit und es funktioniert auch nicht richtig.
    Ich habe mir einen einfachen Regelbaustein für eine Zweipunktregelung erstellt.
    Die Hysterese ist anfangs auf 10°C festgelegt.
    Wenn ich nun den Sollwert auf 53°C setze, so heizt das Modell eine Lampe bis auf 60°C auf, um danach den Abkühlvorgang einzuleiten.
    Dummerweise wird meine Lampe nicht heißer als 57°C, also komme ich nie in die Abkühlphase.
    Da es sich um eine Übungsanlage handelt, möchte ich nach 120 Sekunden die Hysterese um 1°C verringern.
    Übungsweise habe ich erstmal nach 120 Sekunden die Hysterese auf 4°C gesetzt:
    Code:
    // Hystere 10°C bis 120 Sekunden
          U(    
          L     "Regelbaustein_DB".Zeitzaehler
          L     0
          >=I   
          )     
          U(    
          L     "Regelbaustein_DB".Zeitzaehler
          L     120
          <=I   
          )     
          L     10
          T     "Regelbaustein_DB".Temp_Hysterese
          SPB   neu
    
    // Hystere 4°C ab 121 Sekunden
          U(    
          L     "Regelbaustein_DB".Zeitzaehler
          L     120
          >I    
          )     
          U(    
          L     "Regelbaustein_DB".Zeitzaehler
          L     120
          >I    
          )     
          L     4
          T     "Regelbaustein_DB".Temp_Hysterese
          SPB   neu
    
    neu:  L     "Daten an Visu".SOLL_Temperatur
          L     "Regelbaustein_DB".Temp_Hysterese
          -I    
          T     "Regelbaustein_DB".Temp_Regel_MIN
          L     "Daten an Visu".SOLL_Temperatur
          L     "Regelbaustein_DB".Temp_Hysterese
          +I    
          T     "Regelbaustein_DB".Temp_Regel_MAX
    Aber es gibt ein Problem. Ich kann beobachten, dass nach ca. 68 Sekunden die 4°C gesetzt werden. Finde einfach den Fehler nicht.

    Im Anhang befindet sich der komplette FC.
    M10.6 und M10.7 starten den Zähler.
    M0.2 gibt jede Sekunde einen Impuls raus.

    Vielleicht geht das aber effizienter?
    Sorry für die blöde Anfängerfrage, aber ich beschäftige mich erst seit ein paar Tagen intensiver mit AWL.

    Gruß,
    poppycock
    Angehängte Dateien Angehängte Dateien
    Geändert von poppycock (11.10.2009 um 22:13 Uhr) Grund: Anhang vergessen...
    Mit einem Computer löst man die Probleme, die man ohne einen Computer nicht hätte.
    Zitieren Zitieren Sprünge nach Zeit (in AWL)  

  2. #2
    Registriert seit
    29.03.2004
    Beiträge
    5.731
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    Zitat Zitat von poppycock Beitrag anzeigen
    Code:
    // Hystere 10°C bis 120 Sekunden
          U(    
          L     "Regelbaustein_DB".Zeitzaehler
          L     0
          >=I   
          )     
          U(    
          L     "Regelbaustein_DB".Zeitzaehler
          L     120
          <=I   
          )     
          L     10
          T     "Regelbaustein_DB".Temp_Hysterese
          SPB   neu
    Die Zeilen
    L 10
    T "Regelbaustein_DB".Temp_Hysterese
    werden immer ausgeführt. Du musst vorher aufgrund des VKE an die Stelle springen, die ausgeführt werden soll wenn das VKE false ist.

  3. #3
    Registriert seit
    29.03.2004
    Beiträge
    5.731
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    Also wenn im einfachsten Falle wenn der zeitzähler nicht unter 0 gehen kann:

    Code:
    L "Regelbaustein_DB".Zeitzaehler
    L 120
    >I
    spb h2
    // Hysterese 1
    L 10
    spa out
    // Hysterese 2
    h2: L 4
    out: T "Regelbaustein_DB".Temp_Hysterese

  4. #4
    Avatar von poppycock
    poppycock ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    30.08.2007
    Beiträge
    207
    Danke
    16
    Erhielt 22 Danke für 17 Beiträge

    Standard

    Zitat Zitat von Thomas_v2.1 Beitrag anzeigen
    Du musst vorher aufgrund des VKE an die Stelle springen, die ausgeführt werden soll wenn das VKE false ist.
    Danke!
    [...]Habe gerade bei der Vorschau dein neues Posting gelesen.
    Das werde ich gleich mal ausprobiern und melde mich dann wieder...
    [...]
    Mit einem Computer löst man die Probleme, die man ohne einen Computer nicht hätte.

  5. #5
    Avatar von poppycock
    poppycock ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    30.08.2007
    Beiträge
    207
    Danke
    16
    Erhielt 22 Danke für 17 Beiträge

    Standard

    Hallo Thomas,

    ich habe bemerkt, dass mein Zähler sporadisch um ca. 7 Zähler nach vorne springt. Bei 120 Sekunden wird der Wert 4 zwar gesetzt, aber weil der Zähler springt, erreiche ich nach ca. 78 Sekunden den Zählerstand 120!
    Ich werde wohl mal einen Timer nehmen anstatt eines Zählers.
    Dann werde ich mich um die weiteren Sprünge kümmern, also, ich melde mich dann wieder hier...

    Gruß,
    poppycock
    Mit einem Computer löst man die Probleme, die man ohne einen Computer nicht hätte.

  6. #6
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    kannst auch erstmal zeigen, wie du den zähler programmiert hast ... einen sprung sollte er eigentlich nicht machen!
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  7. #7
    Avatar von poppycock
    poppycock ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    30.08.2007
    Beiträge
    207
    Danke
    16
    Erhielt 22 Danke für 17 Beiträge

    Standard

    Zitat Zitat von vierlagig Beitrag anzeigen
    kannst auch erstmal zeigen, wie du den zähler programmiert hast ... einen sprung sollte er eigentlich nicht machen!
    Code:
     U(    
          O     M     10.6
          O     M     10.7
          )     
          U     M      0.2
          ZV    Z      0
          BLD   101
          NOP   0
          NOP   0
          UN    M     10.5
          R     Z      0
          NOP   0
          LC    Z      0
          T     "Regelbaustein_DB".Zeitzaehler
          NOP   0
    M10.6 oder M10.7 starten den Zähler.
    M10.5 setzt den Zähler zurück (Anlage aus).



    ----------------NACHTRAG------------------

    Zählersprünge:
    9 auf 16
    25 auf 32
    41 auf 48
    57 auf 64
    73 auf 80
    89 auf 96
    106 auf 113
    121 auf 128
    usw...
    Geändert von poppycock (11.10.2009 um 23:18 Uhr) Grund: Nachtrag...
    Mit einem Computer löst man die Probleme, die man ohne einen Computer nicht hätte.

  8. #8
    Registriert seit
    29.03.2004
    Beiträge
    5.731
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    Mit LC lädst du den Zählerwert im BCD Format.
    Mit
    L Z 0
    T "Regelbaustein_DB".Zeitzaehler
    sollte es gehen.

    (Oder schmeißt das Zählergelumpe raus und machst dir einen eigenen)

  9. #9
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    hihi ...

    nimm mal das C bei LC Z 0 weg ...
    bzw. in KOP/FUP den ausgang dual, nicht dez verwenden

    [edit] menno, thomas .... [/edit]
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  10. #10
    Avatar von poppycock
    poppycock ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    30.08.2007
    Beiträge
    207
    Danke
    16
    Erhielt 22 Danke für 17 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Verdammt, blöder Anfängerfehler! Aber man lernt nie aus! *froi*
    Danke euch beiden! Es geht!

    Jetzt muss ich nur noch die anderen Hysterese-Werte programmieren.
    Mal sehen, vielleicht bekomme ich es jetzt ohne Hilfe hin!
    Mit einem Computer löst man die Probleme, die man ohne einen Computer nicht hätte.

Ähnliche Themen

  1. normaler Zähler nach Zeit rücksetzen und weitzählen
    Von sebastianr1980 im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 06.05.2009, 09:32
  2. Antworten: 11
    Letzter Beitrag: 23.02.2009, 22:37
  3. Wert nach Zeit X auf Veränderung prüfen
    Von DarkLykan im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 14.07.2008, 14:24
  4. Bit von Visu nach Zeit zurücksetzen
    Von ottopaul im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 27.09.2007, 07:27
  5. ET200U an 3152DP - nach Zeit Busfehler
    Von s7chic im Forum Feldbusse
    Antworten: 2
    Letzter Beitrag: 04.05.2006, 23:23

Stichworte

Lesezeichen

Berechtigungen

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