Hallo zusammen,
ich hab ein Verständnisproblem mit dem Protokoll der RS 232 Schnittstelle.
Kann mir folgenden Satz nicht erklären:
Beispiel: ASC ‘1’ =DEZ 49 ODER DEZ 128 = DEZ 177
resp. HEX 0x31 ODER HEX 0x80 = HEX 0xB1.
Hier die Adresse zum Protokoll:
http://www.cts-umweltsimulation.de/downl...eriell.pdf
Wäre super wenn mir das jemand erklären könnte.
Danke und Gruß
Hallo E-Techniker,
du musst den Satz davor beachten:
Zitat:Das höchste Bit (Bit 7 resp. MSB) der Daten und der CHK ist immer 1.
Um also eine "1" korrekt zu versenden, muss man zum ASCII-Wert 49d noch das höchste Bit setzen, welches durch eine ODER-Verknüpfung mit 128d erfolgt: 49d OR 128d = 177d. Und in HEX eben 31h OR 80h = B1h…
Vielen Dank für die Antwort.
Ist dann mein VI im Anhang so korrekt?
Gruß
Hallo E-Techniker,
wenn im PDF steht, dass du ein ODER verwenden sollst, warum nimmst du dann ein ADD?
Außerdem arbeitet dein VI nur mit dem ersten Zeichen im String…
[
attachment=49462]
Ok, jetzt macht das alles Sinn.
Vielen Dank für die schnelle Antwort.
Gruß
Das Erstellen des Strings funktioniert zwar jetzt, aber leider reagiert der Klimaschrank nicht.
Kann jemand einen Fehler finden?
Hallo Techniker,
Zitat:Das Erstellen des Strings funktioniert zwar jetzt
Nein, tut es nicht! Dein Gerät erwartet Bytearrays und keine "human-readable" Strings!
Wenn du also aus "Sollwert = 0.0" einen String wie "0x02 0x81 0xE1 0xB0 0xA0 0xB0 0xAE 0xB0 0xC3 0x03" machst, dann ist das nett, aber nicht zielführend…
Dein Gerät erwartet stattdessen "0281E1B0A0B0AEB0C303" - und der String-Indicator muss dazu auf "Hex-Display" eingestellt sein!
Probiere mal das hier mal aus:
[
attachment=49477]
Beachte die ganzen angezeigten Radix und Display-Einstellungen der Strings etc. (diese Anzeige für Strings gibt es erst ab LV2011, vorher musst du selbst darauf achten!)
Ich kann die Temperatur von -14,5°C ansteuern, aber leider nur diese Temperatur.
Sobald ich einen anderen Sollwert vorgebe funktioniert es nicht mehr.
Auch wenn ich die Software stoppe und mit eine anderen Temperatur starte geht's nicht.
Hallo E-Techniker,
dir ist schon bewußt, dass du die Checksumme jedesmal neu berechnen musst?
Ein konstanter Wert für die Checksumme ist wenig hilfreich…
Zitat:CHK = XOR-Verknüpfung aller Daten (ohne STX, ETX und CHK)
Ok macht Sinn, aber wo ist die Checksumme bei -14,5 versteckt?
Ich muss in das Array ja vor dem Stoppbit die Checksumme eingeben (so hab ichs zumindest verstanden).
Ist in diesem einen Fall die Checksumme das C in der Stringdefinition der Konvertierung? Wenn ja, wie soll ich dann eine XOR Verknüpfung von Daten erzeugen, bevor ich diese Konvertieren kann.
Sorry wegen den ganzen dummen Fragen, ist meine erste RS232 Ansteuerung.