LabVIEWForum.de - Probelme mit Dezimalstellen

LabVIEWForum.de

Normale Version: Probelme mit Dezimalstellen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo,

ich schreibe mit einem OPC-Server Daten in einen Umrichter. Zur Kontrolle kann ich die Daten mit einem Externen Programm wieder auslesen. Wenn ich nun Werte schreibe, die in dem Umrichter mit einer bestimmten Anzahl Dezimalstellen angeben kann, werden meine Werte nicht richtig übertragen. Also wenn ich z.B. im LabVIEW 50,0 Hz vorgebe kommt nur 5,0 Hz an. Bei dem Strom, der mit 2 Nachkommastellen angegeben werden kann, kommt nur ein Hundertstel an. Also z.B. 0,09A anstatt 9,00A. Mein ersten Gedanke war, dass es Probleme mit „ , “ und „ . “ gibt. Habe aber meine Systemdarstellung auf Ami Style umgeändert, hat aber nichts gebracht.

Hat jemand eine Idee woran das liegen könnte?

Pascal
Hi,

machst du noch ne Wandlung? Poste doch mal dein VI, oder nen screenshot...dieser Bug kann so schwer nicht zu finden sein, oder?

A.
Hallo,

das VI sieht so aus. Hab einfach ein Beispiel ein wenig umgeschrieben. Was ich auch noch komisch finde, beim lesen der Daten ließt er zwar z.B. die 50 wieder, die vorgegeben wurden, aber im Umrichter steht eigentlich nur 5. Wenn ich ein VI schreibe in dem nur der Wert gelesen wird, dann ließt er den richtigen Wert. (Mit dem schreiben funktioniert das leider nichtSad). Ach so noch was anderes. Der Wert der geschrieben werden soll ist vom Typ 16 Bit bipolig. Da bin ich doch richtig mit dem I32?

Pascal

[attachment=3920]

hab mal noch nen Screenshot
[attachment=3921]
Hi,

nee....wenn du ne Kommazahl schreiben willst, dann darfst du kein Integerformat verwenden! Erstmal muss das Bedienelement auch als Single oder Double formatiert sein. Und das "Schreib-" und das "Lese-" VI müssen auch in dem Format sein. Schau dir im Hilfefenster mal den Pfad an, wo die VI's liegen...in dem File findest du auch ein VI "Data Socket Write Double", probiers damit mal. Laden kannst du das VI mit "Select a VI" auf der Functions-Palette!

Gruss
Achim
Hmm,

machmal wäre es nicht schlecht gewesen im Studium etwas aufzupassen Wacko. Aber es funktioniert trotzdem nicht. Du hast es doch so gemeint, oder?

[attachment=3925]
Hi,

geht nicht? Seltsam...versuchs mal mit Single...und schau mal in der Doku vom Umrichter, was denn für ein Datenformat erwartet wird!

Ansonsten weiss ich auch nicht weiter...

A.
Das Endgerät erwartet immer eine Integerzahl. In diese Intergerzahl werden z.B. zwei Nachkommastellen hineininterpretiert. Wenn du also 9,00 A übergeben willst, musst du 900 übertragen - dieses Verfahren ist allgemein üblich.
Aha,

das habe ich mir schon fast gedacht. Dann gibt es sozusagen auch keine Möglichkeit das automatisch umzuformatieren, da die Werte eine unterschiedliche Anzahl von Kommastellen haben? Muss dann wohl bei jedem Wert schauen wieviele der hat und dann mit 10,100... multiplizieren.

Pascal
Mir ist gerade noch was aufgefallen. Wenn ich z.b. 50,3 schreibe ( mit double schreiben), dann packt er es. Wenn ich 50,0 vorgebe, dann schreibt er nur 5. Ich habe schon "Abschließende Nullstelen unterdrücken" deaktiviert in Format und Genauigkeit und den Wert auf eine Kommastelle definiert. Kann ja eigentlich nur daran liegen, dass er das ",0" nicht überträgt. Hat jemand ne Lösung?

Pascal
' schrieb:Kann ja eigentlich nur daran liegen, dass er das ",0" nicht überträgt.
Widerspricht sich das nicht mit deinem vorhergehenden Posting? Sad
Seiten: 1 2
Referenz-URLs