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 

Ende der seriellen Übertragung (RS232)



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.12.2006, 10:44
Beitrag #2

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.697
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Ende der seriellen Übertragung (RS232)
' schrieb:woher weiß LabVIEW eigentlich, dass ein Befehl/eine Antwort über die serielle Schnittstelle vollständig gesendet wurde (bei VISA Read und Write), um dann die Anzahl der anliegenden Bytes anzuzeigen. Es gibt doch nur ein Startbit und ein Stopbit und dazwischen ein Byte. Nach dem Stopbit könnte doch ein weiteres Byte (mit Start- und Stopbit kommen) kommen. Muss ich da was beachten, oder ist es so, dass LabVIEW automatisch erkennt, wenn ein Befehl/eine Antwort vollständig gesendet wurde?
Du fragst hier nach zwei sachen: SIO senden und SIO empfangen.

SIO senden:
LabVIEW weis automatisch, wann alle Zeichen gesendet wurden. Nämlich wenn der Puffer (das ist der String, der dem Write-VI übergeben wurde) quasi leer ist und wenn gleichzeitig das Schieberegister im SIO-Controller (vorausgesetzt echte SIO statt USB-SIO, da wird es aber analoge Mechanismen geben) leer ist. Sobald das Schieberegister leer ist (das ist dann der Fall, wenn auch das Stoppbit gesendet wurde) ist das Zeichen im Empfänger angekommen (im fehlerfreien Fall).

SIO empfangen:
Auch hier geht im Prinzip alles automatisch. LV empfängt jedes Zeichen wie es kommt, da kannst du nix gegen macht (naja, fast nix). Die Anzhal der Zeichen im Empfamgspuffer kann man sich sagen lassen, ohne die Zeichen abzuholen.

Zitat:Klappt das hier genauso problemlos?
Zumindest hat das bisher immer problemlos geklappt.
Im Prinzip kommt es auf das Protokoll und den Dateninhalt an. Wenn du 10 Zeichen sendest und 380 erwartest, können die bei 9600 Baud natürlich nicht nach 150ms da sein. Wenn du's ganz genau nimmst, brauchst du hier wie überall bei DÜ ein "Sieben-Schichten-Modell" - was z.B. ein Treiber machen könnten sollte, der vom Hersteller der Gegenseite geliefert werden sollte. Ohne Treiber und selbermachen: Die einfachste Möglichkeit ist, zu warten, bis die erwartete Anzahl Zeichen angekommen ist. Gravierender Nachteil: Was tun, wenn eine Zeichen kaputt geht - und daher fehlt. Besser: Jedes Zeichen gepollt auslesen, sobald es da ist und einen Quasi-Parser drüberlegen. Das klinkt schwieriger als es in den meisten Fällen ist. Gravierender Vorteil: Man kann fehlende Zeichen praktisch festellen - und darauf reagieren.

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
Antwort schreiben 


Nachrichten in diesem Thema
Ende der seriellen Übertragung (RS232) - IchSelbst - 14.12.2006 10:44

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Übertragung Messwerte Oszilloskop → LabView pv-student 2 6.755 19.02.2018 08:32
Letzter Beitrag: xxokiehxx
  VISA: I/O Fehler beim Auslesen einer seriellen Schnittstelle konne 5 7.616 19.07.2017 13:04
Letzter Beitrag: konne
  Alle seriellen Schnittstellen auslesen Exl 1 5.068 01.04.2017 16:41
Letzter Beitrag: GerdW
  Modul am seriellen Port ansprechen Charly82 2 5.921 22.05.2016 07:34
Letzter Beitrag: Charly82
  Daten von Seriellen Port in While-Schleife auswerten Bensch 4 6.267 26.10.2015 11:28
Letzter Beitrag: Bensch
  Problem bei seriellen Schnittstellen gammel 7 7.369 27.10.2014 13:01
Letzter Beitrag: gammel

Gehe zu: