TIA Analoge Werte begrenzen und übergeben.

Zuviel Werbung?
-> Hier kostenlos registrieren
Nur mal eine theoretische Frage. Mal angenommen man würde so viele Tags übertragen, dass der OPC Server (extern) überlastet wird. Würde er dann wieder schneller werden, wenn man die Werte "normalisiert"?
 
Der OPC-Server wird nicht "überlastet" - er schafft es nur ggf. nicht die angefragten Variablen in dem gewünschten Intervall zu aktualisieren.
Da eine Variable (z.B. REAL) ihre Größe durch das Normalisieren nicht ändert wird sich daran also nichts ändern.
Vielleicht sagst du mal, was das Ziel hier eigentlich sein soll ...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Egal, ob man von einem REAL-Wert Nachkommastellen abschneidet, wenn man den Wert wieder in eine REAL-Variable speichert, dann belegt die wieder genau so viel Speicherplatz wie vorher. Der Speicherplatzbedarf ist nicht davon abhängig, wieviele Ziffern der Wert hat. Es bringt also nichts. Außerdem werden die Nachkommastellen nur scheinbar entfernt, weil das Ergebnis immer auf den nächstliegenden als REAL-Wert darstellbaren Wert gerundet wird, was eher/meistens ein Wert wie 1.099999 oder 1.100001 anstatt dem beabsichtigten Wert 1.1 sein wird. Das liegt an der Codierung von REAL-Werten.
Also einfach den Wert nehmen wie er ist (und nicht hinschauen) ;)
 
Soweit waren wir ja schon mal.

Deswegen nochmal meine Frage, in welche Datentyp übergibst du deine Zahlen? Real, Int, array of char, String?

Eventuell macht es mehr Sinn wenn sich der TE mal mit seinen Daten und dem Mapping auseinander setzt.

https://techdocs.wago.com/Software/OPC_UA/de-DE/1529075723.html


Ist zwar für Codesys aber ja fast allgemein gültig.

Habe das Gefühl, hier wird nach einer Optimierung gesucht, ohne über den Sinn und Zweck nach zu denken. Getreu dem Motto sind ja weniger Daten, wenn ich mein Realwert beschneide...
 
Soweit waren wir ja schon mal.

Deswegen nochmal meine Frage, in welche Datentyp übergibst du deine Zahlen? Real, Int, array of char, String?

Eventuell macht es mehr Sinn wenn sich der TE mal mit seinen Daten und dem Mapping auseinander setzt.

https://techdocs.wago.com/Software/OPC_UA/de-DE/1529075723.html


Ist zwar für Codesys aber ja fast allgemein gültig.

Habe das Gefühl, hier wird nach einer Optimierung gesucht, ohne über den Sinn und Zweck nach zu denken. Getreu dem Motto sind ja weniger Daten, wenn ich mein Realwert beschneide...
Ich bin noch nicht so im Thema und kann da relativ wenig zu sagen. Die Antworten waren aber schon mal hilfreich.

Egal, ob man von einem REAL-Wert Nachkommastellen abschneidet, wenn man den Wert wieder in eine REAL-Variable speichert, dann belegt die wieder genau so viel Speicherplatz wie vorher. Der Speicherplatzbedarf ist nicht davon abhängig, wieviele Ziffern der Wert hat. Es bringt also nichts. Außerdem werden die Nachkommastellen nur scheinbar entfernt, weil das Ergebnis immer auf den nächstliegenden als REAL-Wert darstellbaren Wert gerundet wird, was eher/meistens ein Wert wie 1.099999 oder 1.100001 anstatt dem beabsichtigten Wert 1.1 sein wird. Das liegt an der Codierung von REAL-Werten.
Also einfach den Wert nehmen wie er ist (und nicht hinschauen) ;)
Die Info war wichtig. Wenn der Speicherplatz nicht verringert wird und damit die die Datenmenge, welche übertragen wird, bringt eine "Normalisierung" auch keine Verbesserung. Danke
 
Werte mit denen gemessen und verglichen wird, sollten wenn dann nur in der Anzeige auf die notwendigen Nachkommastellen begrenzt werden. In der Steuerung wird immer mit dem korrekt normierten und skalierten Wert gearbeitet um die Ergebnisse nicht zu verfälschen.
 
Vielleicht nochmal an @Tmbiz wegen der Begrifflichkeiten :
Ganz oft ist es so, dass man von einer Analogkarte oder Zählerkarte einfach nur einen Zahlenwert übermittelt bekommt - z.B. 4567 - dies entspricht dann 25,4 mm (z.B.). Also normiert und skaliert man den Eingangswert dann so, dass man in der Steuerung (und natürlich auch in der HMI) dann nur noch diesen umgerechneten Wert hat (unter dem man sich dann ja auch wieder etwas vorstellen kann).
Wie schon mehrfach geschrieben lassen sich REAL-Zahlenwerte gar nicht begrenzen und INT-/DINT-Werte nur runden. Etwas Anderes ist es wenn man den Zahlenwert zu einem String macht (was jede Anzeige ja auch tut) - dort läßt sich dann natürlich etwas formatieren.
 
Zurück
Oben