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 

Timingprobleme bei RS-232 Auslesung



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!

12.01.2011, 13:03
Beitrag #1

fk046 Offline
LVF-Grünschnabel
*


Beiträge: 28
Registriert seit: Jun 2009

2009
2007
de

18059
Deutschland
Timingprobleme bei RS-232 Auslesung
Hallo,

ich hab folgendes Problem.
Ich verarbeite Daten auf einem board (Spartan 3E) und gebe mir die verarbeiten Werte aus einem AD-Wandler über die RS-232-Schnittstelle wieder raus.
Ich wandle auf dem Board U16 in ASCII um und sende die dAten über RS232.Es werden 5 WErte und ein Steuerzeichen(&) gesendet pro Übertragung.
Die Bitweiseübertragung wird 6x durchgeführt.Die Wartefunktionen sind darauf ausgelegt,die Daten mit 115200 Baut auszugeben.
Um zu testen,ob die kontinuierliche Übergabe der Daten funktioniert, habe ich die Daten,die über den Rs232 rausgeschmissen werden mir auf dem Computer über Tera Term anzeigen lassen.Das funktioniert sehr gut und in sehr guter GEschwindigkeit.Jetzt wollte ich mir ein VI basteln,mit dem man die Daten von der Rs232 Schnittstele auslesen kann und graphosch darstellen.Habe das Programm aus der Labviewhilfe genommen und ein bißchen modifiziert.Leider kommt eine Fehlermeldung.Es sieht so aus,als ob die Timmings nicht stimmen würden.Denn anstatt das die Strings so "01234&" aussehen,sehen die Strings teilweise so 01&34 aus.Wie stellt man die Timmings am besten auf dem Host_Vi?Meine zweitefrage wäre,wie kann mand as Steuerzeichen wieder rausnehmen?Hääte jetzt einfach durch 10 gerechnet und den REst abegschnitten.Dann kommt ja eine Zahl heraus,die man sich durch einen Graphen anzeigen lassen kann.

http://www.labviewforum.de/index.php?showtopic=18556
LV Version 2009
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
12.01.2011, 13:20
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
Timingprobleme bei RS-232 Auslesung
Hallo Frank,

mit etwas besserer Rechtschreibung hätte man deinen Beitrag auch sehr viel leichter lesen können...

Zitat:Habe das Programm aus der Labviewhilfe genommen und ein bißchen modifiziert.
Ja, und was wurde modifiziert? Vielleicht liegt's ja daran - also: VI anhängen.

Zitat:Es sieht so aus,als ob die Timmings nicht stimmen würden.
Welche Timings? Baudrate, Stop-Bit, DataBits, etc korrekt gesetzt?

Zitat:wie kann mand as Steuerzeichen wieder rausnehmen?
Wenn du es als EndOfTransmission-Zeichen gesetzt hättest, bekämst du es erst gar nicht geliefert. So: StringSubset oder ScanFromString benutzen...

Zitat:Hääte jetzt einfach durch 10 gerechnet und den REst abegschnitten
???

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.01.2011, 13:36
Beitrag #3

fk046 Offline
LVF-Grünschnabel
*


Beiträge: 28
Registriert seit: Jun 2009

2009
2007
de

18059
Deutschland
Timingprobleme bei RS-232 Auslesung
Hier ist das Vi mit den eingestellten GRößen.


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.01.2011, 13:38 (Dieser Beitrag wurde zuletzt bearbeitet: 12.01.2011 13:39 von GerdW.)
Beitrag #4

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
Timingprobleme bei RS-232 Auslesung
Hallo Frank,

eine kurze Wartezeit wäre nicht schlecht, um den Port nicht im Microsekundentakt abzufragen...
Und üblicherweise sammelt man die Daten im String an, statt sie immer wieder zu überschreiben! (Das war im Example sicherlich mit drin gewesen...)

Wenn man ein EOT-Zeichen vorgibt, braucht man die Abfrage der BytesAtPort nicht, dann reicht ein genügend großes Timeout aus!

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.01.2011, 14:33 (Dieser Beitrag wurde zuletzt bearbeitet: 12.01.2011 14:33 von fk046.)
Beitrag #5

fk046 Offline
LVF-Grünschnabel
*


Beiträge: 28
Registriert seit: Jun 2009

2009
2007
de

18059
Deutschland
Timingprobleme bei RS-232 Auslesung
Okay,das mit der Wartefunktion klappt sehr gut.
Wie kann ich die Strings am besten in einen Buffer reinschreiben?Mit welcher Funktion?
Habe mir einen Anzeigefkt. gebastelt und eine Konvertierung von Strin to dez.
Leider gebe ich einen Sinus drauf,aber sehe leider keinen.
Bild ist angehängt.


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.01.2011, 14:37
Beitrag #6

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
Timingprobleme bei RS-232 Auslesung
Hallo Frank,

das Delay gehört in die Schleife, es sei denn, du verwendest ein CR als EOT (was anderes hast du ja beim SerialInit nicht vorgegeben!).

Hast du dir das Beispiel zum Lesen vom seriellen Port mal angeschaut? Da wird der String in einem Shiftregister gesammelt. Und das nicht ohne Grund: in deinem VI liest du so schnell wie möglich vom Port - und das bedeutet (Einzel-)Byte-weise! Da wirst du nie vernünftige Werte erhalten, solange du den String nicht korrekt einsammelst. Also: Example genau studieren!

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.01.2011, 10:32 (Dieser Beitrag wurde zuletzt bearbeitet: 13.01.2011 10:33 von fk046.)
Beitrag #7

fk046 Offline
LVF-Grünschnabel
*


Beiträge: 28
Registriert seit: Jun 2009

2009
2007
de

18059
Deutschland
Timingprobleme bei RS-232 Auslesung
Als Sonderzeichen oder Trennzeichen habe ich ein Linefeed genommen.(Bsp.: 01234 12897 00234)
Ich bekomme eine Fehlermeldung,die ich nicht deuten kann...Siehe Bild.
Hängt das damit zusammen,das ich die Strings überschreibe?
Die graphische Ausgabe ist gut,aber leider hat der Sinus in regelmäßigen Intervallen kurzfristige Zacken oder Einbrüche.


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.01.2011, 10:40 (Dieser Beitrag wurde zuletzt bearbeitet: 13.01.2011 10:41 von GerdW.)
Beitrag #8

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
Timingprobleme bei RS-232 Auslesung
Hallo Frank,

Zitat:Ich bekomme eine Fehlermeldung,die ich nicht deuten kann
Wenn ich mir diesen Fehler in einem ErrorCluster anzeigen lasse, bekomme ich eine sehr eindeutige Fehlerbeschreibung: Du solltest die Wartezeit etwas geringer setzen, da der Buffer übergelaufen ist...
Außerdem sitzt die Wartefunktion immer noch an der falschen Stelle! (s. Beitrag #6)

Zitat:Die graphische Ausgabe ist gut,aber leider hat der Sinus in regelmäßigen Intervallen kurzfristige Zacken oder Einbrüche.
Das war dann wohl ein Lesefehler, den du nicht ausgewertet hast. Du solltest dir angewöhnen, den ErrorCluster nicht nur zu verdrahten, sondern auch zu verwenden!

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


Gehe zu: