Real Zahl auf Nachkommastelle runden

Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo das das so geht ist mir klar, aber ich möchte einstellen können ob ich den Wert auf ein oder zwei oder drei kommerstellen gerundet bekomme. Mit Real ist das kein Problem, aber mit LReal schon.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo, wir müssen die Daten über OPC UA übertragen und als Trigger muss "Wertänderung" verwendet werden und die Daten müssen nicht bei einer Änderung an der 6ten Kommerstelle übertragen werden.
 
Ich habe mir für solche Zwecke einen FB gebaut, bei dem man den gewünschten Betrag der Wertänderung und die entsprechende Verzögerungszeit mehrstufig eingeben kann, bevor der Ausgangswert verändert wird. Dient der Datenmengenbegrenzung im HMI-Archiv und remote.
Wenn man nur eine Stellenkürzung macht, dann kannst Du immer noch schöne, kleine Sägezähnchen bekommen, wenn ein Wert an der richtigen Stelle kippt.
 
(L)REAL-Zahlen runden zur Reduzierung von Nachkommastellen macht nicht viel Sinn. Für 3 Nachkommastellen könnte man z.B. mit 1000 multiplizieren, dann die Nachkommastellen abschneiden, und dann wieder durch 1000 dividieren. Problem: das Ergebnis wird wieder auf die nächstgelegene als (L)REAL darstellbar Zahl gerundet und wahrscheinlich sind dann wieder mehr als 3 Nachkommastellen da.

Das wäre die Notlösung sage ich mal, aber elliganter wäre schon eine Kommerstellenrundung;)
Ach, sollen Wertänderungen nach "Eleganz" beurteilt werden?
0,000 zu 0,009 (+0,009) ist keine Änderung
0,009 zu 0,010 (+0,001) ist eine Änderung?

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das wäre die Notlösung sage ich mal, aber elliganter wäre schon eine Kommerstellenrundung;)
Innerhalb welchen Wertebereichs bewegen sich denn deine REAL's / LREAL's ?
Wenn es nicht zu hoch wird dann mach doch nach der Multiplikation einfach einen DINT daraus und vergleich den mit dem DINT-Vorgängerwert ...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Für mich lautet es also ob der Programmierer von die OPC UA Client sein Job nicht machen kann, und das Problem an dir weitergegeben hat.
Hallo, wir müssen die Daten über OPC UA übertragen und als Trigger muss "Wertänderung" verwendet werden und die Daten müssen nicht bei einer Änderung an der 6ten Kommerstelle übertragen werden.

Warum nicht einfach den REAL Wert ohne Rundung übertragen, und die Wertänderung in die OPC UA Client erkennen ? Die OPC UA Client muss die 'feinheit' von die Erkennung von die Wertänderung einstellen können.

Wenn dass nicht geht, dann die Ganzzahlwert mit Rundung und Verschiebung von die Nachkommastelle übertragen und lass die OPC UA Client problemlos die Wertänderung auf diesen Ganzzahl erkennen.

Das mit den Real wert auf Ganzzahl umwandeln und zurück nach Real wandeln erzeugt ein 'Bastard-Real'. Nur weil der OPC UA Client Programmierer nicht weis was er macht.
 
Zurück
Oben