Hallo Prama,
Zitat:Beispiel: der Sensor sendet ein ASCII Telegramm, welches in Hex umgewandelt wie folgt aussieht: 0D343534353031303233303146DED29540A3A3EE400C464133450A
diesen String unterteile Ich in ein kleineren String DED29540A3A3EE40. Den kleineren String unterteile Ic in zwei kleinere Strings DED29540 und A3A3EE40. Diese kehre ich jeweils um: 4095D2DE und 40EEA3A3. Diese Strings sollen in float umgewandelt werden, also 4.681991 (4095D2DE) und
7.457475 (40EEA3A3).
Mann oh mann...
Erst erklärst du mir, dass der String unbedingt umgewandelt werden soll, um ihn in "Normalanzeige" lesen zu können. Nun willst du plötzlich wieder daraus SGL-Zahlen typecasten: das kann NICHT funktionieren, da die Byte-Darstellung ein komplett andere ist.
Wie sagte ich schon einmal: Du musst dir klar darüber sein, was du vom Gerät gesendet bekommst und was du als Ergebnis haben willst!!!
Warum überhaupt diese komplette Umwandlung der Strings hin und her mit diversen Typecasts, wenn der vom Gerät gesendete String schon die nötigen Daten Byte-codiert enthält? (Wenn ich deine Ausführungen nun richtig verstanden habe!) Warum nicht gleich die Daten an der richtigen Stelle ausschneiden, evtl. umkehren und nur einmal direkt typecasten???
Aufgabe für dich:
- VI erstellen mit einem vom Gerät gesendeten String (ohne irgendwelche Umwandlungen) in einer String-Anzeige, diesen Wert per Rechtsklick als "Datenoperation->Als Default" einstellen!!! Danach das VI speichern...
- Genaue Angabe, welcher Teilstring in SGL umgewandelt werden soll!!!
- VI anhängen!!!
Zitat:Ich erhalte im Frontpanel die Fliesskommazahlen, die Ich erhalten möchte, aber diese werden in der .lvm-Datei nicht abgespeichert?
Deine lvm-Datei enthält die Daten von zwei Signalen und jeweils eine zugehörige X-Spalte: genau so hast du es auch konfiguriert im ExpressVI...