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
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
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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
Codeschnipsel von meinem Dimmer:
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.
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.