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 

Fehler Zeitüberschreitung beim Auslesen



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!

27.08.2009, 06:52
Beitrag #10

rolfk Offline
LVF-Guru
*****


Beiträge: 2.306
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
Fehler Zeitüberschreitung beim Auslesen
' schrieb:Wegen all dieser Probleme und Diskussionen konnte ich mich bisher noch nie richtig für VISA für serielle Geräte erwärmen. Bei diesen Teilen bin ich immer irgendwie wieder zurück zu den super-einfachen seriellen VI's gegangen und habe immer in etwa so programmiert:
1. Frage den Seriellen Eingangspuffer wieviele Zeichen angekommen sind. Dafür gabs und gibts evtl. immer noch eine spezielle Funktion, "Number of characters on serial port" oder so ähnlich.
2. Wenn nichts angekommen ist warte irgendwelche 100ms.
3. Sobald mehr als null Zeichen da sind lies genausoviele ein und hänge sie an einen Stringbuffer an.
4. Nun könnte man z.B. den Endekennzeichen-Check einbauen und den vorhandenen Sting an das rufende Programm übergeben und danach den Buffer löschen um bei 1. wieder von vorne anzufangen oder das Sub VI zu beenden.

Das ganze in einer separaten While loop, die über eine occurence sofort beendet werden kann und selbst mit einem Wait von 10...100ms ausgebremst wird.

Im vorliegenden Fall müsste man immer nach dem Einlesen einer gewissen Datenmenge kontrollieren, ob ein Zeilenendekennzeichen vorhanden ist. Falls ja, kann man diesen Teil der Daten als Zeile z.B. in einem String-Array ablegen und den Rest dem folgenden Datenpaket voranstellen.

Diese Vorgehensweise ist übrigens aus dem Example VI LabVIEW<-->seriell direkt geklaut. Aber eben ohne VISA overhead, ca. 3 functions in einem while loop und ein paar cases. sehr übersichtlich...
Ich weiss momentan nicht ob es dieses Example noch gibt im aktuellen LV8.6.

Tja unter der Kappe ist halt immer noch VISA. Die alten seriellen VIs werden nur als Kompatibilitätslayer geliefert der darunter dann wieder alles mit VISA implementiert.

Deine Idee ist ja nicht so schlecht, nur machst Du Dir jeweils sehr viel Arbeit die von VISA ohne extra Mühe (ok Du musst nach der Initialisation der Resource einmal die entsprechenden Properties richtig setzen) einfach übernommen wird. Das einzige was Du hast was VISA (zumindest auf LabVIEW Ebene) (noch?) nicht automatisch hat ist die extra Occurrence. Dazu habe ich aber vor einer Weile hier im Forum ein VI gepostet, dass anstelle von VISA Close eingesetzt werden kann und dass alle noch wartenden IO Operationen abbricht, befor die Resource abgeschlossen wird. Damit brechen alle noch wartenden Readoperationen (bei Write solltest Du normalerweise nicht in ein Wait kommen bei Serial) mit einer Fehlermeldung ab. Es würde mich nicht verwundern wenn VISA Close in 2009 dies inzwischen auch macht, oder eventuel auch einen extra Boolean Eingang besitzt um das zu erzwingen.

Deine Verwendung von den "nicht" VISA Serialfunktionen ist für den grössten Teil einfach alles nochmal selber implementieren was in der darunterliegenden VISA Library doch schon vorhanden ist aber durch die Kompatibilitäts-VIs wieder wegabstrahiert wird.

Rolf Kalbermatter

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Nachrichten in diesem Thema
Fehler Zeitüberschreitung beim Auslesen - rolfk - 27.08.2009 06:52

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  VISA: I/O Fehler beim Auslesen einer seriellen Schnittstelle konne 5 7.677 19.07.2017 13:04
Letzter Beitrag: konne
  Fehler beim Erstellen einer Datei, durch VISA ausgelöst? Klausenwirt 5 6.817 14.03.2014 10:39
Letzter Beitrag: Klausenwirt
  Datenverlust beim RS232 auslesen Dominator 3 5.857 20.04.2012 14:43
Letzter Beitrag: Dominator
  RS232 undokumentierter Fehler beim senden von zu großen Datein mikschi 14 12.756 22.03.2010 18:02
Letzter Beitrag: mikschi
  Probleme beim Auslesen RS232 Guest 13 13.917 08.03.2010 13:44
Letzter Beitrag: GerdW
  Fehler beim Aufnehmen von Messwerten! SledgeDL 13 10.499 04.02.2010 15:21
Letzter Beitrag: Y-P

Gehe zu: