(06.03.2017 11:28 )Beam1 schrieb: (06.03.2017 10:42 )GerdW schrieb: Es gibt/gab Gründe, warum ich nach einem konkreten VI von dir gefragt habe.
Jetzt lieferst du genau diesen Grund in deiner Frage - aber immer noch keine Antwort…
Falsch. Es geht immer noch um genau das LabView-Beispiel-VI und zwar unverändert so wie es bei LabView mitgeliefert wurde.
Anstatt obiger überflüssiger Bemerkung (um es mal vorsichtig auszudrücken), sag doch einfach, daß dir nicht bekannt ist, ob es generell bei USB-Geräten anders herum ist oder ob es ev. eine Eigenart der dem Gerät mitgelieferten VI-Treiber ist.
Haben wir diese Frage nicht inzwischen hinreichend beantwortet? Bei USB-Geräten exitiert der abzufragende Port (mglw.) gar nicht. Wählst du eine schon existierende RS-232 Hardware Schnittstelle deines PC aus, dann funktioniert natürlich Open/Read/Write ohne Fehler.
(06.03.2017 11:28 )Beam1 schrieb: Zitat:Schau dir doch mal an, was die Fehlerbehandler intern so alles mit dem Errorcluster anstellen…
Zitat:BytesAtPort gibt an, wieviele Bytes im Empfangsbuffer der seriellen Schnittstelle angekommen sind.
Soviel hatte ich auch schon heraus bekommen. Aber woher kommt der Wert? Wird der vom Gerät gesendet je nach geschicktem Befehl? Der Wert wird ja offenbar über die Leitung "VISA resource name" mit übertragen, und zwar spätestens nach dem VI "VISA Write"? Oder wie funktioniert das?
Das habe ich dir schon beantwortet, das kommt aus der Treiber-API!
(06.03.2017 11:28 )Beam1 schrieb: Zitat:Meist benötigt man BytesAtPort aber überhaupt nicht,
Hm, und wozu ist er dann in dem LabView-Beispiel-VI drin? Muß doch einen Grund haben?
Frag das NI, nicht jedes Bsp ist 100% sinnvoll. Benötigt wird diese Abfrage bei z.B. Protokollen, bei denen die Nachricht kein festes Abschlusszeichen hat. Es könnte z.B. sein, dass man möglichst schnell Daten aus dem Read-Puffer holen will (ohne Time-Out und Fehlermeldung). Also wird erst ermittelt, wieviele Bytes (mind.) im Puffer sind, um dann genau diese Menge abzuholen.
(06.03.2017 11:28 )Beam1 schrieb: Zitat: da man i.A. zwischen zwei Übertragungsarten unterscheiden kann:
1. Die Messages verwenden TermChars, die man dann beim SerialPortInit angeben und aktivieren sollte.
Laut der Online-Hilfe ist das per Default aktiviert und auf den Wert "\n" eingestellt?
Habe damit mal etwas herumgespielt. Brachte aber nix. Nur bei den unveränderten Einstellungen kam keine Antwort vom Gerät (und auch keine Fehlermeldung).
Zitat:Nein! Sie garantiert den DATAFLOW!
Das tut doch die Leitung "VISA resource name" schon?
Dann halt noch, weil es guter LabVIEW-Programmierstil ist... (hatte ich das schon geschrieben? JA).
Gruß, Jens