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 

lesen von der seriellen schnittstelle



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!

14.09.2005, 08:25
Beitrag #11

Oliver Listing Offline
LVF-Freak
****


Beiträge: 721
Registriert seit: Sep 2004

2012 und 2014 (Windows und Linux)
1998
EN

22844
Deutschland
lesen von der seriellen schnittstelle
Hi roman,

ich verstehe dein Problem so:
Du sendest einen Befehl an dein Gerät. Dieses antwortet immer mit 19 Zeichen. Nie mit 18 oder mit 20 - richtig?
Um einer Fehlerhaften Übertragung vorzubeugen, hast du nun versucht eine Abbruchbedingung einzubauen, die auslöst, wenn dreimal kein Zeichen kam. Richtig?

Davon ausgegangen habe ich folgendes zu ergänzen:
Was Buhrz meint (das Zeitliche Problem) kommt schon hin, bedenkt man, das jedes Gerät selbst eine gewisse Zeitbenötigt, um die Antwort zu schicken - von der Übertragungsrate mit 1200 Baud mal ganz abgesehen.
Ich würde aber zum erkennen eines Fehlers die VISA Optionen nutzen, die dir geboten werden:
- sendet dein Gerät (ganz zufällig) ein Endezeichen mit (z.B. n, rn oder ähnliches)??? Dann solltest du dies in der Initialisierungs Funktion auch einstellen.
Folglich brauchtest du nur noch sagen "ließ 100 Zeichen" und LabVIEW stoppt die read Funktion automatisch bei erkanntem Endezeichen.
- existiert kein Endezeichen, so sollte diene Anweisung lauten "lese 19 Zeichen" sind 19 Zeichen angekommen, so werden sie dir ausgegeben - ohne Fehlermeldung. Fehlen aber noch Zeichen, so wird dir nach der eingestellten Timeout Zeit eine Fehlermeldung ausgegeben.
- Sind wir also beim einzustellenden Timeout: Teste aus, wie lange deine Verarbeitung und darstellung braucht. Nehme einen Sicherheitszuschlag dazu und den Rest zu einer Sekunde kannst du als Timeoutwert setzen.
Deine 19 Zeichen benötigen mind. 16ms bei 1200 Baud zusätzlich der Reaktionszeit des Gerätes. Dies muß natürlich (wird es schon) innerhalb deiner eingestellten Timeout Zeit liegen.
- Um fehlerhaften oder verstümmelten Übertragungen vorzubeugen, solltest du vor jedem senden deines Befehles einmal den Eingangsbuffer der Schnittstelle leeren. Sonst konntest du (ohne genutztem Endezeichen) ev. aus deinem Rahmen laufen und deine Auswertung wäre schlicht falsch.

So genug geschrieben - nun kannst du ans umsetzen gehen.
Solltest du dazu noch Fragen haben wende dich einfach wieder an uns.

Gruß
Oliver
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
Antwort schreiben 


Nachrichten in diesem Thema
lesen von der seriellen schnittstelle - Oliver Listing - 14.09.2005 08:25

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  VISA: I/O Fehler beim Auslesen einer seriellen Schnittstelle konne 5 7.613 19.07.2017 13:04
Letzter Beitrag: konne
  Alle seriellen Schnittstellen auslesen Exl 1 5.062 01.04.2017 16:41
Letzter Beitrag: GerdW
  Modul am seriellen Port ansprechen Charly82 2 5.920 22.05.2016 07:34
Letzter Beitrag: Charly82
  Daten von Seriellen Port in While-Schleife auswerten Bensch 4 6.263 26.10.2015 11:28
Letzter Beitrag: Bensch
  Problem bei seriellen Schnittstellen gammel 7 7.366 27.10.2014 13:01
Letzter Beitrag: gammel
  Lesen der seriellen Schnittstelle EIA-232 (RS232) AnhTeo 4 7.285 06.09.2011 03:15
Letzter Beitrag: AnhTeo

Gehe zu: