Welcome to our new forum
All users of the legacy CODESYS Forums, please create a new account at account.codesys.com. But make sure to use the same E-Mail address as in the old Forum. Then your posts will be matched. Close

Realisierung einer Rampe mit konstanter Steigung

Xine
2007-12-18
2007-12-20
  • Xine - 2007-12-18

    Hallo zusammen!

    Vielleicht hat ja einer von euch Lust sich meinem kleinen Problemchen anzunehmen.

    Folgendermaßen: Ich wollte 2 Werte (Integer; entweder von 0 bis 32767 oder von -32768 bis 32767) miteinander vergleichen. Für den Fall, dass sie ungleich sind, soll sich der neue Wert dem älteren über eine Rampenfunktion mit konstanter (!) Steigung angleichen. Der Rampenbaustein "B_RMS_Rampe" taugt hierfür nicht, da er bei immer unterschiedlichen Start- und Endwerten ebenfall immer unterschiedliche Steigungen berechnet (da Zeit konstant).

    Habt ihr eine Idee, wie man das noch anders lösen kann?!

    Vielen Dank und schonmal schöne Weihnachten.

    Xine

     
  • Oberchefe - 2007-12-18

    Codeschnipsel von meinem Dimmer:

    IF Dimmer_Soll > O_Dimm_01 + Schrittweite AND O_Dimm_01 < 30000 - Schrittweite THEN      (*   Sofern Istwert von Sollwert abweicht korrigieren   *)
       O_Dimm_01:= O_Dimm_01 + Schrittweite;
       ELSIF Dimmer_Soll < O_Dimm_01 AND O_Dimm_01 >  Schrittweite THEN
       O_Dimm_01:= O_Dimm_01 - Schrittweite;
    END_IF
    

    Dabei ist Dimmer_Soll der aktuelle Sollwert (der sich auch beim Ein- /Ausschalten des Lichts schlagartig ändern kann), O_Dimm_01 ist der Analogausgang zum Dimmer.

    Die Logik sitzt in einem zeitgesteuerten Task, andernfalls schwankt die Steilheit natürlich.

     
  • Xine - 2007-12-20

    Danke für die Antwort, Oberchefe.

    Habe meine Aufgabe nun doch mit dem Rampenbaustein "B_RMS_Rampe" realisiert, jedoch habe ich davor einen Baustein selbst gebastelt, der die aktuelle Wertdifferenz auf "Endwert" gibt (Startwert ist immer Null) und eine entsprechende, auf den Wert angepasste, Dauer der Rampenbildung auf den Eingang "Rampenzeit". Funzt.

     

Log in to post a comment.