Hi roman,
klar gibt es da ein nettes VI für:
FunctionsInstrument I/OVISAVISA AdvancedInterface SpecificVISA Flush I/O Buffer
Zu deiner Frage im anderen Post "
serielle schnittstelle" kann ich dir nur nochmal folgendes deutlicher erklären, was ich oben schon geschrieben habe:
Oliver Frank schrieb: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.
Du hast oben bei der Funktion
VISA Configure Serial Port drei wichtige Anschlüsse, die dir die Möglichkeit bieten auf ein Rahmenendezeichen zu reagieren.
Rahmenendezeichen: Viele Geräte schicken nicht nur die bloße Antwort zurück, sondern Signalisieren auch noch zusätzlich das Ende der Antwort. Dieses zusätzliche Zeichen ist Teil des Protokolls über die Schnittstelle und wird immer mitgesendet. Da man die gesamten Zeichen, die gesendet wurden als Rahmen bezeichnet, heißt dieses Zeichen Rahmenendezeichen (zu engl. termination char)
Per Default ist das Termination Char bei LV auf 0xA bzw n oder LF eingestellt. Damit LV nun aber nicht immer dieses Zeichen erwartet kann man es zusätzlich mit Enable Termination Char aktivieren.
Der read-Funktion wird nun am Eingang
byte count eine hohe nicht zu erwartende Zahl angelegt (z.B. 1000). Die Funktion wartet jetzt entweder bis:
a) 1000 Zeichen am Eingangsbuffer angekommen sind
B) das Termination Char empfangen wurde oder
c) die eingestellte Timeout Zeit verstrichen ist.
Da die Byte Count-Zahl bewust zu groß gewählt wurde, bricht die Funktion also mit empfangen des Termination Char ab und übergibt somit einen kompletten Rahmen. Dieser kann dann noch überprüft werden (Länge, ev. Checksumme, usw.) und für gültig erklärt und zur Weiterverarbeitung gegeben werden.
Also kurz gesagt, genau das, was du brauchst...
Gruß
Oliver
P.s. darf ich nun deine beiden Posts zusammenfügen - sie behandeln doch offentsichtlich nur ein Problem, oder?
Edit: Es ist vollbracht - ich hoffe nun können wir die Hilfe etwas bündeln, dann erklären nicht zwie Leute in zwei Posts das gleiche...