Hallo JK,
Zitat:Das Problem ist nun, das es immer eine unterschiedliche Anzahl von Floatwerten sind, obwohl es laut Programmierer immer 1001 sein müssen. Frage ist ob ich einen Fehler mache.
Ja, du machst einen Fehler!
Du hast das TermChar aktiviert, welches bei "binärer" Datenübertragung deaktiviert sein muss!
(Tipp: Schau dir mal das letzte empfangene Byte an und vergleiche das mit deinem TermChar. Dann überlege, warum das wohl identisch ist…)
Zitat:Ich sende Hex: 02 01 00 00 00 00 00 00 und kriege Hex: 02 01 00 00 0F A4 + 4004 Byte als0 1001 Floatwert + 2 Byte checksumme zurück.
Algorithmus:
- Anfrage senden
- 6 Byte der Antwort lesen. Davon die letzten 4 Byte in ein I32 umwandeln: so bekommst du die Anzahl der noch zu lesenden Bytes (00000FA4h = 4004d)
- dann die so ermittelte Anzahl Bytes lesen, das ist dann anscheinend die Payload
- dann noch 2 Byte Checksumme lesen und alles prüfen…
Noch weitere Fehler:
Ein Bild statt eines VIs/Snippet hier anzuhängen.
Nicht AutoCleanup zu benutzen.
Die VISA-Referenz nicht korrekt zu verdrahten (zwischen allen VISA-Funktionen).
4200 Bytes lesen zu wollen, obwohl man nur 6+4004+2=4012 Bytes erwartet…