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 

Dieses Thema hat akzeptierte Lösungen:

Kommunikatin mit µC



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!

04.05.2011, 17:43 (Dieser Beitrag wurde zuletzt bearbeitet: 04.05.2011 18:09 von jg.)
Beitrag #1

domoosma Offline
LVF-Neueinsteiger


Beiträge: 2
Registriert seit: Feb 2011

9.0
2011
DE


Deutschland
Kommunikatin mit µC
Hallo,
ich bin ein absoluter Neuling mit LabView und muss im Rahmen meines Studiums eine Bedienoberfläche für einen Servomotor gestalten. Dabei Kommunizieren der µC der Servomotorsteuerung über eine RS232 Schnittstelle mit LabView.

Mein Problem ist die Kommunikatin mit dem µC während des Versuches. Dabei sollen von LabView je ms ein Messwert (4 Byte) empfangen werden. Während der Messung schleichen sich nicht gesendete Bytes (Wert 0) in die Messreihe mit ein und verhauen mir meine spätere Auswertung. Diese Werte werden nicht vom µC abgeschickt, wurde mit einem anderen Terminal bereits überprüft.

Im Anhang findet Ihr mein kleines Programm zur Messwertaufzeichnung. Ich hoffe Ihr könnt mir weiterhelfen.


Gruß Dominik


Angehängte Datei(en)
2009 .vi  empfangen.vi (Größe: 73,99 KB / Downloads: 171)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.05.2011, 18:19
Beitrag #2

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Kommunikatin mit µC

Akzeptierte Lösung

Schau dir einmal genau dein Programm an.
Was passiert, wenn dein VISA-Read in einen Timeout läuft und, obwohl du 1 Byte zum Lesen anforderst, einen leeren String zurückliefert?
String To Byte Array wandelt das zwar in ein leeres Array um, von dem fragst du dann aber per Index Array Element 0 ab.
Irgendwas muss LabVIEW jetzt zurückgeben, und somit wird eine Null ausgegeben.

Schau doch mal, ob es so nicht besser läuft:
   

Zusätzlich würde ich das Lesen umbauen, und ein Wait einfügen, um der CPU ein wenig Zeit zum Atmen zu geben:
   

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.05.2011, 19:09 (Dieser Beitrag wurde zuletzt bearbeitet: 04.05.2011 19:09 von Lucki.)
Beitrag #3

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: Kommunikatin mit µC
Ganz schlecht, so geht es überhaupt nicht. Du schreibst einerseits "1 Messwert = 4 Byte", behandelst aber dann jedes einzelne Byte so, als sei es der vollständige Messwert. Und wenn Du je 4 byte zu einem Messwert zusammenfassen würdest, dann gibt es Synchronisationsprobleme.
Mit Synchronisation meine ich, daß nicht Byte 3+4 des letzten Messwertes mit byte 1+2 das nachfolgenden Masswertes zu einem irregulären Messwert zusammengefasst werden.
Synchronisation errreicht man
a) Master- Slave-Betrieb (µC sendet Messwert nur nach Aufforderung)
b) Empfangene Messwerte haben Abschlußzeichen. (Falls Byte 4 des Messwertes ein solches ist, dann wäre alles gut)
Ansonsten gib es noch die Möglichkeit, die Pause zwischen den Messwerten zu detektieren. Das ist hier aber gar nicht möglich, wen alle 1ms ein neuer Messwerte erwartet wird, und die Uhren in LV nur weniger als 1ms Auflösung haben.
Also ich sehr hier nur eine Möglichkeit: Der µP muss ein Abschlußzeichen für jeden Messwert mitliefern. Ideal ist ein eigenes Byte, aber es kann notfalls auch ein einzelnes Bit sein, z.B. das Bit 8 in einem 7 Bit ASCII-Code.
Das war zwar nicht Deine Frage, aber es dürfte Dein nächstes Problem sein.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.05.2011, 15:38
Beitrag #4

domoosma Offline
LVF-Neueinsteiger


Beiträge: 2
Registriert seit: Feb 2011

9.0
2011
DE


Deutschland
RE: Kommunikatin mit µC
Hallo Jens,
vielen Dank für deine Hilfe. Die Messwerte aufnehmen funktioniert jetzt richtig gut. Zur Erkennung wann die Messreihe eindeutig beginnt mussten wir noch ein Erkennungsbyte einfügen.

Gruß Dominik
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Gehe zu: