Lineare Skalierung mit WinCC flexible

Earny

Level-1
Beiträge
422
Reaktionspunkte
38
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
ich habe wieder eine Frage zu WinCC flex 2007.
Wie skaliert man einen Analogwert in Flex? (nicht in STEP7 !)

Ich wollte den Analogwert 0 bis 27648 an Flex übergeben und dann mit der Linearen Skalierung in Variableneigenschaft auf 0 bis 9 umrechnen. Das funktioniert nicht richtig, weil Flex wohl mit Ganzzahlen rechnet.

Gruß
Earny
 
Welchen Typ hat den deine Eingangs-Variable ? INT oder DINT ?
Wenn sie vom Typ REAL ist, dann sollte das auch funktionieren. Falls du ein entsprechendes Bediengerät hast, dann gibt es ggf. auch noch die Funktionen "Linear Umrechnen 1" und "..2", die du auch an deine Eingangs-Variable hängen kannst (bei Wert-Änderung).

Gruß
LL
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Larry L.,
ich will einen Word bzw. INT-Wert der S7, genaugenommen das PEW754 (0 bis 27648) in den neuen Wert 0 bis 9,0 l/min (für ein Zeigerinstrument) umrechnen. Ich hatte gehofft, dass Flex die exakte Umrechnung auch so irgendwie schafft.

Die Wandlung in STEP7 mit:
L PEW754
ITD
DTR
T MD50

und dann MD50 in Flex einlesen war mir bekannt. Ich wollte das aber eigentlich vermeiden. Aber wenn es nicht anders geht, muss es wohl sein.

Gruß
Earny
 
Ich gehe jetzt hier mal nicht von einem Fehler in Flex aus,
der Link von Maxl bezog sich imho ausschließlich auf "Timer",
aber warum rechnest du die 0-27648 auf z.B. 0-900 um,
überall wo die Variable angezeigt wird, wird diese dann mit 2 Kommastellen angezeigt.

Mfg
Manuel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo MSB,
hallo Maxl,
hallo Larry L.,
ich habe die Sache noch eine zeitlang untersucht und bin zu einem ähnlichen Ergebnis wie MSB gekommen.
Die lineare Skalierung scheint in Flex2007 zu funktionieren.
Ich rechne jetzt die
0 bis 27648 nicht mehr um in 0 bis 9 l/min sondern in 0 bis 9000 ml/min. Dadurch entstehen 1000fach größere Werte und die lass ich auf einem Zeigerinstrument anzeigen. Das sieht jetzt auf dem Zeigerinstrument ganz gut aus, ist aber wirklich nur eine Notlösung.
Die Anzeige 0 bis 9 l/min wäre mir lieber. In diesem Fall springt der Zeiger sofort erkennbar, immer nur auf ganze Zahlen, nicht auf Zwischenwerte. Das macht er vermutlich auch, wenn die mit 1000 multiplizierten Wert im Bereich 0 bis 9000 angezeigt werden, nur es fällt nicht mehr auf. Es sieht so aus, als könnte ein Zeigerinstrument grundsätzlich nur ganze Zahlen anzeigen!?

Gruß
Earny
 
Einen wunderschönen Morgääääääääääääääään Forumer,
die Skalrierung muss klappen:
IN=Eingang (Word)
Out=Ausgang(Real)
Delta=Geradensteigung

Aus der Formel (FC105)

Code:
 Out=Delta*IN=(9000/27648)*IN

In WCF rufst du bei Wertänderung von IN die Skalierungsformel auf:

Y=Out
X=IN
a=Delta=ca 0,3255209
b=0

und das war es.


Gruß johnij
 
Zuletzt bearbeitet:
Hallo johnij,
diese Variante hatte ich auch schon mal durchprobiert.
Ich habe diesen Weg dann aber aufgegeben. Es mag sein, dass man auf diese Weise einen sauberen Real-Wert erhält (Float oder auch Single). In meinem Fall nutzt das nichts, weil ein Zeigerinstrument keine Real-Werte anzeigen kann. Zumindest schaffe ich es nicht, einen Real-Wert auf das Instrument zu geben. Oder mache ich was falsch?

Gruß
Earny
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo johnij,
diese Variante hatte ich auch schon mal durchprobiert.
Ich habe diesen Weg dann aber aufgegeben. Es mag sein, dass man auf diese Weise einen sauberen Real-Wert erhält (Float oder auch Single). In meinem Fall nutzt das nichts, weil ein Zeigerinstrument keine Real-Werte anzeigen kann. Zumindest schaffe ich es nicht, einen Real-Wert auf das Instrument zu geben. Oder mache ich was falsch?

Gruß
Earny

Tja Earny, ein Zeigerinstrument ist eine schlechte Darstellung fuer einen
realen Wert

johnij
 
Zurück
Oben