TIA Skalierung über Stützpunkte

moeins

Level-1
Beiträge
165
Reaktionspunkte
16
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich möchte einen Eingangswert über eine Stützpunktkurve auf einen Ausgangswert skalieren.
Im konkreten Fall habe ich ein 0-10V Poti am Analogeingang und ich möchte z.B. bei 0V=0.0, 1V=1000.0, 2V=1200.0, 3V=1300.0, 4V=1350.0, 5V=1360.0 6V=1365.0 etc. skalieren.
Hintergrund ist der, das es nur ein 1-Gang-Poti ist und ich den vorhandenen Drehbereich auf den (Haupt)-Arbeitsbereich der Maschine skalieren will. D.h. von 0-1000 eine grobe Einstellung und danach immer feiner auflösen.
Hat jemand für TIA einen fertigen Baustein auf Lager?

Gruß
Markus
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das ist keine lineare Kurve.
Am Besten suchst Du Dir eine mathematische Funktion, deren Kurve in der grafischen Darstellung Deinen Wünschen entspricht und schreibst die Formel in SCL direkt hin.
(z. B. Log, Exp. oder ein Polynom)
Die Funktion kann man sehr gut mit Excel anschauen, bevor man sie in die Steuerung einbaut.
Gruß
Erich
 
Zuletzt bearbeitet:
Es gibt dafür ganz sicher nichts Fertiges - das ist ja schon ziemlich speziell ... aber aus meiner Sicht läßt sich das doch recht einfach umsetzen ...
Ich würde es in SCL programmieren.
In der Umsetzung sähe es dann wie folgt aus :
- du checkst zunächst zwischen welchen Stützpunkten du dich befindest.
- nun berechnest du die Steigung des Dreiecks zwischen den Stützpunkten.
- nun berechnest du mit der Entfernung zum vorangegangenen Stützpunkt (Ankathete) und der Steigung (Winkel) den Wert der Gegenkathete. Zum dem Wert addierst du den Y-Wert des vorangegangenen Stützpunktes auf.

Das müßte es dann sein ...

Gruß
Larry
 
Für die Berechnung braucht man keine Winkel, der Strahlensatz reicht. So macht es die bereits fertige Funktion LINEAR_INT von OSCAT. siehe meinen Link in #2
LINEAR_INT schrieb:
(* calculate the output value on the corresponding segment coordinates *)
LINEAR_INT := ((XY[i,1] - XY[i-1,1]) * X - XY[i,1] * XY[i-1,0] + XY[i-1,1] * XY[i,0]) / (XY[i,0] - XY[i-1,0]);

Harald
 
Bei dem stark unlinearen Verhalten, das Du in Deinem ersten Post forderst, führt eine lineare Interpolaion zwischen den Stützstellen zu "unkomfortablem" Verhalten des Poti, besonders in der Nähe der Stützstelle 1.0V, weil sich da die Steigung schlagartig um den Faktor fünf ändert. Das wird für die Bediener sehr gewöhnungsbedürftig sein.
Wenn's unbedingt über Stützstellen laufen soll, würde ich mindestens eine Spline- statt einer linearen Interpolation wählen.
Aber wie heißt es so schön: Versuch macht kluch.:)
Gruß
Erich
 
Naja ... wenn man sich die Kurve, die daraus resultiert anschaut, dann sieht das wie eine umgedrehte Hyperbel oder eine Kondensator-Ladekurve aus. Ich denke mal, dass es dafür auch eine Formel-behaftete Lösung gäbe.

Auf alle Fälle würde aber diese Stützstellen-Geschichte auch keine unkontrollierbaren Sprünge generieren. Sie sieht halt nur ein bißchen eckiger aus - ob davon die Anlage (welche auch immer) etwas davon merkt möchte ich bezweifeln.

@Harald:
wo ist jetzt aus deiner Sicht der Unterschied zwischen deinem Beitrag #5 und dem, was ich in Beitrag #4 geschrieben habe ...? (außer das du da schon eine Formel drin stehen hast)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@Harald:
wo ist jetzt aus deiner Sicht der Unterschied zwischen deinem Beitrag #5 und dem, was ich in Beitrag #4 geschrieben habe ...? (außer das du da schon eine Formel drin stehen hast)
Der Anstoß für mich, den Beitrag #5 zu schreiben, war
Es gibt dafür ganz sicher nichts Fertiges
[...]
- nun berechnest du mit der Entfernung zum vorangegangenen Stützpunkt (Ankathete) und der Steigung (Winkel)
Ich hatte das so verstanden, daß Du einen Rechenweg mit einer Winkelfunktion vorgeschlagen hast, und wollte betonen, daß es bereits etwas Fertiges gibt, was mit den Grundrechenarten auskommt.

Harald
 
Wenn's unbedingt über Stützstellen laufen soll, würde ich mindestens eine Spline- statt einer linearen Interpolation wählen.
Aber wie heißt es so schön: Versuch macht kluch.:)
Der LINEAR_INT kann mit bis zu 20 Stützpunkten arbeiten, deren X-Abstände nicht gleich sein müssen. Man könnte in den Bereich des 1V-Knicks sehr viele Stützpunkte legen, um da eine "Rundung" aus vielen feineren Knicks hinzubiegen. Besser ist natürlich, eine mathematische Funktion zu finden, die den gewünschten Kurvenverlauf liefert. Zum ersten Testen und Finden der am besten geeigneten Kurve ist der LINEAR_INT sicher gut nutzbar, aus den spielerisch gefundenen Stützpunkten kann man dann ja eine final-Formel ermitteln.

Harald
 
Ich habe mich jetzt für das LINEAR_INT entschieden, es gebe ja noch die POLYNOM_INT was es etwas verrunden würde. Letztendlich möchte ich nur die Arbeitsbereiche mit einem größeren Potidrehbereich versehen, so das die Einstellung des Sollwertes nicht so eine Fummelei für die Bediener wird.
 
Zurück
Oben