LabVIEWForum.de
16Bit Ganzzahlen für die RS232 weiterverarbeiten? - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: 16Bit Ganzzahlen für die RS232 weiterverarbeiten? (/Thread-16Bit-Ganzzahlen-fuer-die-RS232-weiterverarbeiten)



16Bit Ganzzahlen für die RS232 weiterverarbeiten? - FrankH - 19.07.2009 14:56

Hallo liebes Forum,
ich habe ein kleines Programm mit LabVIEW 6.1 geschrieben.
Ziel ist es, Daten zu berechnen und diese dann mittel RS232 an einem Mikrocontroller zu senden.
Bei den Daten handelt es sich um 16Bit unsigned Integer Werte, die ich in einem Array gesammelt habe.
Wenn ich ein Character sende, also "a" o. "b" usw. dann funktioniert das gut und der µC verarbeitet es wunderbar.
Als nächstes habe ich also versucht die Array-Werte in einen String zu wandeln, irgendwo habe ich in "Beispiele" von LabVIEW ein TypeCast (Typenwandlung) gefunden, funktioniert aber nicht wirklich. Verstanden habe ich das auch noch nicht richtig...
Meine Frage:
Was sollte ich als nächstes machen um die 16Bit Ganzzahlen aus meinem Array über die serielle Schnittstelle versenden zu können?
Ich stehe gerade ziemlich auf dem Schlauch.
MfG
Frank


16Bit Ganzzahlen für die RS232 weiterverarbeiten? - schrotti - 19.07.2009 22:43

Ein Character hat 8 Bit. Damit du also 16 Bit senden kannst, musst du zuerst die 16 Bit Zahl in zwei 8 Bit Zahlen zerlegen. Erst danach kannst du das Array als String interpretieren. Anbei zwei Möglichkeiten.

[attachment=19784]

Edit: Funktioniert auch mit dem Typecast alleine. Wenn man aber nur kurz darüber nachdenkt, wie Typecast arbeitet, wird einem auch sofort klar, dass dem dem Typecast gar nichts anderes übrig bleibtSmile

[attachment=19785]


16Bit Ganzzahlen für die RS232 weiterverarbeiten? - Lucki - 20.07.2009 07:05

Es gibt da verschiedene Methoden:
  • So wie Schrotti es gezeigt hat. Das Zahlenarray wird direkt in eine Folge von Bytes konvertiert.
    Vorteil: Die Anzahl der Bytes, die gesendet werden, ist minimal.
    Nachteil: Es läßt sich nicht zwischen Daten und Steuerzeichen (Bytes 0..31) unterscheiden. Das macht die Datensteuerung über RS232 schwierig.<>
  • Übertragung der Bytes im ASCII-Format (Hex).
    Vorteil: Es kann zwischen Steuerzeichen und Daten unterschieden werden
    Nachteil: Pro Datenbyte werden zwei Zeichen gesendet. Also z.B für 255 = 0xFF wird der zweistellige String "FF" gesendet.<>
  • Spezielle Protokolle, mit denen versucht wird, die Vorteile von 1. und 2. zu kombinieren und die Nachteile zu vermeiden. Darauf soll hier aber nicht näher eingegangen werden.
Die "normale" Methode der Datenübertragung über die serielle Schnittstelle ist am ehesten die Methode 2. Wenn Du daran interessiert bist, dann melde Dich noch mal.


16Bit Ganzzahlen für die RS232 weiterverarbeiten? - FrankH - 20.07.2009 09:16

Hallo Schrotti,
danke für deine Erklärung. Ich weiß nicht ob es an meiner LV Version liegt (6.1), jedoch kann ich die Elemente in deiner FOR-Schleife nicht finden.
Ich muss schon in dem Beispiele-Ordner nach dem TypeCast (Typenwandlung) suchen, weil der in meiner Funtkionspalette nicht vorhanden ist. Dein Beispiel habe ich mit dem Typenwandlungselement versucht nachzustellen.... siehe das Ergebnis ;-(
[attachment=19793]

Lucki,
ich würde gerne mehr dazu erfahren.
Gruss
Frank


16Bit Ganzzahlen für die RS232 weiterverarbeiten? - Lucki - 20.07.2009 13:58

' schrieb:ich würde gerne mehr dazu erfahren.
Gur, dann nehme ich mal einfach die Zahlen von Schrotti:
[attachment=19814]
Die Funktion "Zahl nach Hexadezimal" steht glaube ich in dieser Eleganz in LV6 noch nicht zur Verfügung, aber es gibt etwas Entsprechendes.
Das Steuerzeichen 0xA (n) habe ich angefügt, damit Dein µC das Ende der Zeichenkette erkennt. Es kann auch ein anderes Steuerzeichen sein.


16Bit Ganzzahlen für die RS232 weiterverarbeiten? - RoLe - 20.07.2009 15:57

' schrieb:Ich weiß nicht ob es an meiner LV Version liegt (6.1), jedoch kann ich die Elemente in deiner FOR-Schleife nicht finden.
Ich muss schon in dem Beispiele-Ordner nach dem TypeCast (Typenwandlung) suchen, weil der in meiner Funtkionspalette nicht vorhanden ist.
Als Ergänzung:
Die Funktionen gibt es schon in LV 6.1, aber ev. nur in den Prof. Version. Anbei ein Bild von meinem 6.1, auch die Funktion von Lucki gibt es bereits.


16Bit Ganzzahlen für die RS232 weiterverarbeiten? - FrankH - 22.07.2009 12:57

Super,
habe alles hinbekommen und die Elemente konnte ich Dank RoLe auch finden.
Mein Hauptfehler lag im µC-Programm. Ich habe dort das High- u. Lowbyte vertauscht
und konnte deswegen nie den Wert richtig abfragen.
Also Danke nochmals an alle für ihre Hilfen
Frank