19.07.2009, 14:56
(Dieser Beitrag wurde zuletzt bearbeitet: 19.07.2009 15:04 von FrankH.)
Beitrag #1
|
FrankH
LVF-Neueinsteiger
Beiträge: 7
Registriert seit: Jul 2009
6.1
2008
de
24113
Deutschland
|
16Bit Ganzzahlen für die RS232 weiterverarbeiten?
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
|
|
|
19.07.2009, 22:43
(Dieser Beitrag wurde zuletzt bearbeitet: 19.07.2009 22:48 von schrotti.)
Beitrag #2
|
|
|
20.07.2009, 07:05
(Dieser Beitrag wurde zuletzt bearbeitet: 11.02.2015 17:31 von Lucki.)
Beitrag #3
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
16Bit Ganzzahlen für die RS232 weiterverarbeiten?
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.
|
|
|
20.07.2009, 09:16
Beitrag #4
|
FrankH
LVF-Neueinsteiger
Beiträge: 7
Registriert seit: Jul 2009
6.1
2008
de
24113
Deutschland
|
16Bit Ganzzahlen für die RS232 weiterverarbeiten?
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 ;-(
Lucki,
ich würde gerne mehr dazu erfahren.
Gruss
Frank
|
|
|
20.07.2009, 13:58
Beitrag #5
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
16Bit Ganzzahlen für die RS232 weiterverarbeiten?
' schrieb:ich würde gerne mehr dazu erfahren.
Gur, dann nehme ich mal einfach die Zahlen von Schrotti:
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.
|
|
|
20.07.2009, 15:57
Beitrag #6
|
|
|
22.07.2009, 12:57
Beitrag #7
|
FrankH
LVF-Neueinsteiger
Beiträge: 7
Registriert seit: Jul 2009
6.1
2008
de
24113
Deutschland
|
16Bit Ganzzahlen für die RS232 weiterverarbeiten?
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
|
|
|
| |