TIA Analoge Wegmessung auf begrenzten Fahrweg anpassen?

D4K!ZZ4

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

folgendes Problem. Ich habe ein Linearpoti auf einem Zylnder. Das ganze kommt auf einen 0-10V Eingang der 1214C. Soweit so gut.

Das Linear Poti sitzt auf einem Hydraulikzylinder. Ist somit bei Zylinder zu nicht ganz eingefahren und bei Zylinder Auf auch nicht max ausgegahren.

Ich würde aber gerne die Öffnung des Zylinders in 0-100% darstellen.

Mein Gedanke war jetzt mit normx und scalex das ganze anzupassen. Nur wie erreiche ich den + - offset? Passe ich im norm_x den Eingangswert schon auf den begrenzten Bereich an?

Sensor -> norm -> 2000 .... 23000 -> scale -> 0-100

Hab hier grad einen Knoten im Kopf. Konnte es live noch nicht testen da mir noch der 10V Festspannungsregler für das Poti fehlt.

Danke schon mal. Grüße
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Richtig mit Norm_X könntest du das machen. Statt 0...27648 auf 0.0...1.0 zu normieren,
Nimmst du die beiden werte für Zylinder ist ganz eingefahren und Zylinder ist ganz ausgefahren und bildest diese auf 0.0...1.0 ab.
Mit Siale_X kannst du diese 0.0...1.0 auf die physikalische Strecke abbilden, indem du 0...$streckeDieDerZylinderAusfährt oder halt 0...100% wenn du das möchtest.
 
Sensor -> norm -> 2000 .... 23000 -> scale -> 0-100
Für sowas nehm ich keinen Scale sondern einen SCL-Einzeiler.
Z.B. diese Formel verwenden:
Code:
#K1     := 2000.0;
#K2     := 23000.0;
#LO_LIM := 0.0;
#HI_LIM := 100.0;

#Out := LIMIT(MN:=#LO_LIM, IN:=(INT_TO_REAL(#AIvalue)-#K1) / (#K2–#K1) * (#HI_LIM-#LO_LIM) + #LO_LIM, MX:=#HI_LIM);
(AIvalue ist der Wert vom Analogeingang)

Konnte es live noch nicht testen da mir noch der 10V Festspannungsregler für das Poti fehlt.
Du könntest die 10V mit einen Analogausgang 0-10V erzeugen.

Harald
 
Hallo zusammen,

habs jetzt so gelöst:

"DBMerk".Turbine.Turbine_Oeffnung_Prozent := SCALE_X(MIN := 0.0, VALUE := NORM_X(MIN := 2969, VALUE := "Wegmessung_Zylinder", MAX := 27645), MAX := 100.0);

Danke Grüße
 
Zuviel Werbung?
-> Hier kostenlos registrieren
"DBMerk".Turbine.Turbine_Oeffnung_Prozent := SCALE_X(MIN := 0.0, VALUE := NORM_X(MIN := 2969, VALUE := "Wegmessung_Zylinder", MAX := 27645), MAX := 100.0);
Bei den CPUs heutzutage braucht man zum Glück nicht mehr effizient programmieren, da kann jeder so aufwendig und umständlich wie er mag. ;) Hauptsache der Code ist gut nachvollziehbar.

(Ich vermute mal, Dein Code rechnet dreimal so lange wie die direkte Formel, und die Codegröße???)

Harald
 
Ja und? Dafür weiß jeder sofort was er da mit dem Scale und Norm macht, denn dafür sind die Bausteine da und so wird Analogwertskalierung auch im SIOS beschrieben.
Für die meisten Anwendungen ist die Zykluszeit bei TIA-CPUs doch Wurst.
 
Ja das schon, aber eine einfache Umrechnung in Prozent oder weg wäre nich minder übersichtlich gewesen.
Man hätte den Einzeiler ja auch in eine sinnvoll benannte Funktion packen können...
Letztendlich ist es aber sein Programm und seine Entscheidung.
 
Ja das schon, aber eine einfache Umrechnung in Prozent oder weg wäre nich minder übersichtlich gewesen.
Man hätte den Einzeiler ja auch in eine sinnvoll benannte Funktion packen können...
Letztendlich ist es aber sein Programm und seine Entscheidung.

Wenn Du die Formel in eine Funktion packst dann dauert die Ausführung länger als über Norm-Scale.

Vergleich Ausführungszeit: (vielleicht einfach selbst nochmal überprüfen, z.B. mittels Runtime)
Formel: 0,00004
Norm-Scale: 0,00005
Formel in Funktion: 0,00009

Letztendlich hat der TE die optimalste Lösung für Standardanwendungen bereits gewählt. Sie ist sehr übersichtlich und es ist auf einen Blick erkennbar was in der Zeile passiert. Bei einer Formal muss man erst für eine Sekunde nachdenken.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Zusätzlich zu der Skalierung würde ich bei der Anwendung eine „Einlern-Funktion“ nachrüsten.
Du fährst in Position ganz zu und hast eine Taste um den aktuellen Poti-Stand auf 0% zu stellen. Dann dasselbe mit ganz auf um 100% einzustellen.
Einmal programmiert und bei jedem Austausch vom Poti oder bei jeder neuen Inbetriebnahme Zeit gespart. ;)
 
Zurück
Oben