INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Serielle Komunikation mit Mikrocontroller



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

09.11.2006, 10:13 (Dieser Beitrag wurde zuletzt bearbeitet: 09.11.2006 10:16 von IchSelbst.)
Beitrag #21

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.687
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Serielle Komunikation mit Mikrocontroller
' schrieb:Ich habe bald die Aufgabe mit einer seriellen Schnittstelle Daten zu übertragen, die im Hex-Format vorliegen.
So ausgedrückt hast du aber gar keine Probleme. Wenn die Daten bereits vorliegen, kannst du sie ohne weiteres übertragen. Liegen sie aber (wie es sich eigenlich gehört) als Binär (z.B. ByteArray, Stream) vor, dann musst du eine Konvertierung machen.

Zitat:Reicht es da nicht, wenn ich in LabVIEW die Hex-Darstellung bei meinem "String Control" einstelle und das dann über "VISA Write" an den Controller rüberschicke?
Die Darstellung im String-Control macht nichts weiter als eine Konvertierung von Binär nach HEX. Du siehst also zwei Zeichen anstelle von nur einem. Die Frage ist nur, ob die Darstellung übertragen wird oder der Wert - ich Tippe auf Wert.

So schwierig ist die Wandlung von Binär nach Hex auch nicht: (Im schlimmsten Falle) Schleife über Byte-Array mit Befehl "Formatiere in String" mit Formatierung "%2.2x".

Nachtrag:
Zitat:Wenn ich da jede einzelne Hex-Ziffer in Ascii umwandeln muss,
Eine Hex-Ziffer selbst ist bereits ASCII, da musst du nichts mehr wandeln.

Wenn du die Daten als Bytesarray vorliegen hast, dann musst du quasi mittels %2.2x konvertieren. Das Ergebnis ist quasi ASCII. Hast du bereits "Hex-Darstellung" vorliegen, so ist das schon ASCII und du musst nur noch übertragen.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
09.11.2006, 11:23
Beitrag #22

Y-P Offline
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
LVF-Team

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
Serielle Komunikation mit Mikrocontroller
So, jetzt mal mit Zahlenwerten. Big Grin
Den Controller, den ich ansteuere erkennt z.B. 21 01 20 04 44 4C 34 38 00 (HEX).
Das will ich ihm jetzt mit LabVIEW über die RS 232 schicken. Es gibt das Beispiel aus dem Example-Finder für die serielle Übertragung. Was schreibe ich dann in dem Fall in VISA-Write?
Dann wird es noch klarer. Wink

Gruß Markus

' schrieb:So ausgedrückt hast du aber gar keine Probleme. Wenn die Daten bereits vorliegen, kannst du sie ohne weiteres übertragen. Liegen sie aber (wie es sich eigenlich gehört) als Binär (z.B. ByteArray, Stream) vor, dann musst du eine Konvertierung machen.

Die Darstellung im String-Control macht nichts weiter als eine Konvertierung von Binär nach HEX. Du siehst also zwei Zeichen anstelle von nur einem. Die Frage ist nur, ob die Darstellung übertragen wird oder der Wert - ich Tippe auf Wert.

So schwierig ist die Wandlung von Binär nach Hex auch nicht: (Im schlimmsten Falle) Schleife über Byte-Array mit Befehl "Formatiere in String" mit Formatierung "%2.2x".

Nachtrag:
Eine Hex-Ziffer selbst ist bereits ASCII, da musst du nichts mehr wandeln.

Wenn du die Daten als Bytesarray vorliegen hast, dann musst du quasi mittels %2.2x konvertieren. Das Ergebnis ist quasi ASCII. Hast du bereits "Hex-Darstellung" vorliegen, so ist das schon ASCII und du musst nur noch übertragen.

--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.11.2006, 11:40
Beitrag #23

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.687
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Serielle Komunikation mit Mikrocontroller
' schrieb:Den Controller, den ich ansteuere erkennt z.B. 21 01 20 04 44 4C 34 38 00 (HEX).
Das will ich ihm jetzt mit LabVIEW über die RS 232 schicken. Es gibt das Beispiel aus dem Example-Finder für die serielle Übertragung. Was schreibe ich dann in dem Fall in VISA-Write?
Wenn du genau dieses übertragen willst, so wie es da steht - also mit den Spaces zwischen den Zahlen - dann füllst du einen String mit dem Text "21 01 20 04 44 4C 34 38 00" und gibst diesen String auf das VI. Ohne Space sieht der String dann so aus: "21012004444C343800". (Übrigens: In ASCII sähe das möglicherweise so aus: !<SOE>SPACE<EOT>DL48<NUL>) Was im String steht, kommt dann auf der Gegenseite genauso lesbar wieder heraus - also "2", "1", " ", "0" usw.

Ein Beispiel in LV kann ich dir jetzt nicht machen, da ich hier kein LV auf dem Rechner habe.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.11.2006, 11:46
Beitrag #24

Y-P Offline
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
LVF-Team

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
Serielle Komunikation mit Mikrocontroller
Also dann klappt es einfach, einen String anzuschließen, ohne davor irgendwo einzustellen, dass es HEX ist?
Dann ist ja alles klar und doch nicht so kompliziert, wie es sich angehört hatte. Lol
Vielen Dank für Deine Hilfe.

Gruß Markus

' schrieb:Wenn du genau dieses übertragen willst, so wie es da steht - also mit den Spaces zwischen den Zahlen - dann füllst du einen String mit dem Text "21 01 20 04 44 4C 34 38 00" und gibst diesen String auf das VI. Ohne Space sieht der String dann so aus: "21012004444C343800". (Übrigens: In ASCII sähe das möglicherweise so aus: !<SOE>SPACE<EOT>DL48<NUL>) Was im String steht, kommt dann auf der Gegenseite genauso lesbar wieder heraus - also "2", "1", " ", "0" usw.

Ein Beispiel in LV kann ich dir jetzt nicht machen, da ich hier kein LV auf dem Rechner habe.

--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.11.2006, 12:04
Beitrag #25

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.687
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Serielle Komunikation mit Mikrocontroller
' schrieb:Also dann klappt es einfach, einen String anzuschließen, ohne davor irgendwo einzustellen, dass es HEX ist?
Dann ist ja alles klar und doch nicht so kompliziert, wie es sich angehört hatte. Lol
Langsam, langsam, langsam.

Wie kommen denn die Daten in den String rein? Es besteht ein Unterschied zwischen der Anzeige des Stringinhaltes im Control und dem Inhalt selbst. Übertragen wird der Stringinhalt, nicht die Darstellung. Nur wenn "normale Darstellung" gewählt ist und du dann die HEX-Darstellung siehst, dann ist es das, was du willst.

Ich mach' dir heute Abend mal ein Beispiel.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.11.2006, 13:01
Beitrag #26

Y-P Offline
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
LVF-Team

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
Serielle Komunikation mit Mikrocontroller
' schrieb:Langsam, langsam, langsam.

Nur wenn "normale Darstellung" gewählt ist und du dann die HEX-Darstellung siehst, dann ist es das, was du willst.

Ich mach' dir heute Abend mal ein Beispiel.

So habe ich es auch verstanden. Aber ein Beispiel wäre auch nicht schlecht, falls auch mal jemand anders vor dem "Problem" steht.

Gruß Markus

--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
09.11.2006, 23:29
Beitrag #27

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.687
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Serielle Komunikation mit Mikrocontroller
' schrieb:Ich mach' dir heute Abend mal ein Beispiel.
Es ist zwar nicht ganz so geworden wie ich es mir gedacht hab - geht aber auch.


Angehängte Datei(en)
Sonstige .vi  FrameGenerator.vi (Größe: 47,53 KB / Downloads: 204)

Sonstige .vi  Muster.vi (Größe: 31,32 KB / Downloads: 177)

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
10.11.2006, 07:54
Beitrag #28

Y-P Offline
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
LVF-Team

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
Serielle Komunikation mit Mikrocontroller
Danke. Ich habe sogar halbwegs durchgeblickt. Big Grin
Was ich nicht ganz verstehe, ist, ob das mit dem STX, Trenner,... immer benötigt wird. Weil unsere Microcontroller haben ein eigenes, nämlich folgendes Protokoll.
Funktionsfeld-Zählfeld-Sicherungsfeld-Längenfeld-Datenfeld-Sicherungsfeld (F Z S N D D D ..... D S)
Da müsste es doch reichen wenn ich die jeweiligen Hexwerte für die einzelnen Felder rüberschicke. Trenner wüsste ich jetzt nicht, ob es die auch gibt.

Gruß Markus


' schrieb:Es ist zwar nicht ganz so geworden wie ich es mir gedacht hab - geht aber auch.

--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
10.11.2006, 08:48
Beitrag #29

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.687
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Serielle Komunikation mit Mikrocontroller
' schrieb:Was ich nicht ganz verstehe, ist, ob das mit dem STX, Trenner,... immer benötigt wird. Weil unsere Microcontroller haben ein eigenes, nämlich folgendes Protokoll.
Funktionsfeld-Zählfeld-Sicherungsfeld-Längenfeld-Datenfeld-Sicherungsfeld (F Z S N D D D ..... D S)
Da müsste es doch reichen wenn ich die jeweiligen Hexwerte für die einzelnen Felder rüberschicke. Trenner wüsste ich jetzt nicht, ob es die auch gibt.
Wichtig ist nicht, wie das Protokoll im speziellen aussieht (ob das Trenner drinnen sind oder nicht), sondern dass es eine "konstante Struktur" hat - eben z.B. so wie du beschrieben hast. Ohne "Konstante Struktur" müsstest du ggf. viele kleine Unterprogramme machen, eben für jede Struktur eines. Und bei vielem ist eines dabei, was du vergessen hast. Bei "Konstanter Struktur" kannst du ein Unterprogramm machen, das alle möglichen Datensätze generieren kann. Im übrigen kann auch ein in der Länge variables Datenfeld unter "konstant" fallen: Man übergibt als Parameter ein Array mit variabler Länge. Das eine Unterprogramm muss dann nur eben die Anzahl der Arrayfelder in den DÜ-Frame aufnehmen.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
10.11.2006, 10:04
Beitrag #30

Y-P Offline
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
LVF-Team

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
Serielle Komunikation mit Mikrocontroller
Vielen Dank für Deine Hilfe und Geduld! Das habe ich jetzt soweit verstanden. Lol
Wenn ich dann Fragen habe, wenn ich am Umsetzen bin, dann komme ich wieder auf Dich zu, wenn Du nichts dagegen hast. Wink

Gruß Markus

' schrieb:Wichtig ist nicht, wie das Protokoll im speziellen aussieht (ob das Trenner drinnen sind oder nicht), sondern dass es eine "konstante Struktur" hat - eben z.B. so wie du beschrieben hast. Ohne "Konstante Struktur" müsstest du ggf. viele kleine Unterprogramme machen, eben für jede Struktur eines. Und bei vielem ist eines dabei, was du vergessen hast. Bei "Konstanter Struktur" kannst du ein Unterprogramm machen, das alle möglichen Datensätze generieren kann. Im übrigen kann auch ein in der Länge variables Datenfeld unter "konstant" fallen: Man übergibt als Parameter ein Array mit variabler Länge. Das eine Unterprogramm muss dann nur eben die Anzahl der Arrayfelder in den DÜ-Frame aufnehmen.

--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Testbuchstabe erzeugen für Mikrocontroller floH857 5 3.280 13.02.2017 13:36
Letzter Beitrag: GerdW
  Problem bei Komunikation zwischen vi's FreddyK88 7 4.302 08.03.2016 08:30
Letzter Beitrag: Freddy
  Kommunikation zwischen LabView und Mikrocontroller Joe23 4 5.750 14.06.2013 18:31
Letzter Beitrag: Holy
  Messdaten von Mikrocontroller in Array schreiben max_sambs 13 9.895 25.02.2013 14:28
Letzter Beitrag: max_sambs
  Labview und Mikrocontroller Cuban Pete 2 6.134 17.11.2010 20:48
Letzter Beitrag: Cuban Pete
  Kommuniktion mit Mikrocontroller von Atmel Honeygirl24 24 16.769 12.10.2010 09:20
Letzter Beitrag: Honeygirl24

Gehe zu: