LOGO Analogwert (0–1000 Digits) soll sich nur bei Änderung ≥ 20 Digits aktualisieren — entspricht 0–2000 U/min

Blizzard94

Level-2
Beiträge
24
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich arbeite aktuell mit einer Siemens LOGO! und habe folgendes Anliegen:

Ich habe einen analogen Eingang 0-10VDC , dessen Wertebereich von 0 bis 1000 LOGO-Einheiten (Digits) reicht.
Diese 0–1000 Digits entsprechen in der Praxis einer Drehzahl von 200 bis 2000 U/min.

Ich möchte, dass sich der verarbeitete bzw. ausgegebene Wert nur dann aktualisiert, wenn sich der analoge Eingang mindestens um 20 Digits (also um ca. 40 U/min) gegenüber dem zuletzt gespeicherten Wert geändert hat.

Kleinere Schwankungen durch Messrauschen oder Signalflattern sollen ignoriert werden.

Beispiel:

  • Letzter gespeicherter Wert = 500 Digits
  • Eingang steigt auf 518 → keine Änderung
  • Eingang steigt auf 521 → neuer Wert wird übernommen (Differenz ≥ 20 Digits )

Der Ausgang (bzw. der gespeicherte Analogwert) soll nur dann aktualisiert werden, wenn der Eingangswert die definierte Schwelle überschreitet.



Ich möchte quasi nur eine "grössere" Stufenweise Änderung



Hat jemand von euch so etwas schon umgesetzt oder eine elegante Lösung dafür?

Danke und viele Grüße
 
Ich schlage eine Kette von Analogverstärkern vor.
Der erste mit Gain 0,05, der zweite mit Gain 10 und der Dritte mit Gain 2.
In der Folge ändert sich der Ausgang am Analogverst.3 nur noch in Zwanzigerschritten. Verstärkungen für andere Schrittweiten selbst ausrechnen.

1000*0,05=50
50*10*2=1000
 
Ich möchte, dass sich der verarbeitete bzw. ausgegebene Wert nur dann aktualisiert, wenn sich der analoge Eingang mindestens um 20 Digits (also um ca. 40 U/min) gegenüber dem zuletzt gespeicherten Wert geändert hat.
Was meinst du mit "zuletzt gespeichert"? Meinst du wirklich "gespeichert"? :unsure: Wie und wo wird gespeichert?
Bitte Aufgabenstellung/Formulierung präzisieren.

Kleinere Schwankungen durch Messrauschen oder Signalflattern sollen ignoriert werden.
(...)
Ich möchte quasi nur eine "grössere" Stufenweise Änderung
Da braucht man im Grunde nur durch 20 Ganzzahl-dividieren (die Auflösung "vernichten") und dann wieder mit 20 multiplizieren, und schon ändert sich der Wert nur noch in 20er Schritten. Das Verfahren rundet immer ab. Wenn man auch noch etwas aufrunden will, dann kann man vor der Division noch 10 addieren (0.5 Einheiten).
 
Ich schlage eine Kette von Analogverstärkern vor.
Der erste mit Gain 0,05, der zweite mit Gain 10 und der Dritte mit Gain 2.
In der Folge ändert sich der Ausgang am Analogverst.3 nur noch in Zwanzigerschritten. Verstärkungen für andere Schrittweiten selbst ausrechnen.

1000*0,05=50
50*10*2=1000
Für andere Suchende:
Müssen (leider) 3 Verstärker (und nicht nur 2) sein, weil der höchstmögliche Gain-Faktor +10,00 ist.


Da braucht man im Grunde nur durch 20 Ganzzahl-dividieren (die Auflösung "vernichten") und dann wieder mit 20 multiplizieren, und schon ändert sich der Wert nur noch in 20er Schritten. Das Verfahren rundet immer ab.
Die LOGO! rundet im Gegensatz zu ausgewachsenen SPSen mathematisch!

1762500055058.png
 
Zuletzt bearbeitet:
Die Arithmetische Anweisung arbeitet intern auch mit einer höheren Genauigkeit als INT.
Erst das Endergebnis wird dann auf INT mathematisch gerundet.
Deswegen müssen es hier 2 "Arithmetische Anweisung" sein, damit das Ergebnis der Division zu Ganzzahl konvertiert wird (die Nachkommastellen abgeschnitten werden).
 
Zurück
Oben