LabVIEWForum.de
VISA: (Hex 0xBFFF003E) I/O-Fehler - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Instrument IO & VISA (/Forum-Instrument-IO-VISA)
+---- Thema: VISA: (Hex 0xBFFF003E) I/O-Fehler (/Thread-VISA-Hex-0xBFFF003E-I-O-Fehler)



VISA: (Hex 0xBFFF003E) I/O-Fehler - Jurely16 - 01.02.2021 18:49

Hallo LabView- Experten!

Für eine Projektarbeit muss ich den Emissionsgrad eines Temperatur-Messgerätes (Pyrometer) neu setzten und anschließend anzeigen können. Dafür verwende ich zur seriellen Datenkommunikation die VISA-Funktionen "schreiben" und "lesen". Ich habe jetzt das Problem, dass ich immer nur den Fehlercode "VISA: (Hex 0xBFFF003E) Operation konnte aufgrund eines I/O-Fehlers nicht ausgeführt werden" angezeigt bekomme. Was mache ich falsch? Kann mir jemand bei diesem Problem helfen?

Im Anhang befinden sich die Kommunikationsparameter und die Kommandoliste für die Datenübertragung sowie mein Versuchs-VI.


Mit freundlichen Grüßen
Elias


RE: VISA: (Hex 0xBFFF003E) I/O-Fehler - GerdW - 01.02.2021 19:46

Hallo Jurely,

herzlich willkommen im Forum!

Zitat:Was mache ich falsch?
Eine ganze Menge!

Schau mal hier:
[attachment=61602]
- Standardwerte muss man nicht extra angeben (beim SerialPortInit)…
- IMMER auf den korrekten Anzeigemodus deiner Konstanten und FP-Elemente achten, insbesondere wenn dieses Manual von "binär"- oder "hex"-Werten redet!
- IMMER den Anzeigemodus auch anzeigen lassen, wie im Bild. Das geht für numerische und String-Konstanten, und ebenso für deren FP-Elemente!
- Den Emissionsgrad korrekt umwandeln: dein Gerät erwartet dafür zwei Bytes und nicht etwa 4! Nimm dafür eine sinnvolle Funktion wie TypeCast oder SerializeData (wie im Snippet)!
- Den zurückgemeldeten Wert dann sinnvoll wandeln, hier mit StringDeserialize…
- Evtl. noch eine Fehlererkennung/-behandlung in der Schleife programmieren…
- NIE, wirklich NIE, UNTER KEINEN UMSTÄNDEN das Label eines FP-Elementes weglöschen. Oder im Blockdiagramm verstecken. WIRKLICH NIE UND NIMMER! (War das jetzt genug Betonung?)
- Blockdiagramm aufräumen: gerade Drähte lassen sich viel einfacher lesen!
- Sinnvolle Labels für alle FP-Elemente verwenden! (Dies gilt für alle Programmiersprachen!)
- Warum sind die Fenster für Frontpanel und Blockdiagramm so riesig? Deutlich größer als mein FullHD-Bildschirm erlaubt? Obwohl beide nur <=20% der Bildschirmfläche wirklich benötigen???

Zitat:Fehlercode "VISA: (Hex 0xBFFF003E) Operation konnte aufgrund eines I/O-Fehlers nicht ausgeführt werden"
Welchen COM-Port verwendest du?
Welchen Schnittstellentyp? Irgendein USB-zu-RS232-Wandler? Evtl. ein ganz billiger???


RE: VISA: (Hex 0xBFFF003E) I/O-Fehler - Jurely16 - 02.02.2021 10:16

Vielen Dank für die schnelle Rückmeldung.

Ich bin noch ziemlich am Anfang meiner LabView-Karriere und habe mir das Meiste bis jetzt selbst beigebracht. Deine Antwort hat mir wirklich sehr geholfen. Der ausschlaggebende Fehler war schlussendlich, dass ich die Bytes, welche ich vom Messgerät bekomme nicht richtig umgewandelt habe. Mit deiner Variante hat es dann geklappt. Ich musste zusätzlich nur noch eine Wartezeit nach dem Write einbauen, da das Senden und Empfangen eine gewisse Zeit benötigte.
Smile


RE: VISA: (Hex 0xBFFF003E) I/O-Fehler - GerdW - 02.02.2021 11:08

Hallo Jurely,

Zitat:Ich musste zusätzlich nur noch eine Wartezeit nach dem Write einbauen, da das Senden und Empfangen eine gewisse Zeit benötigte.
Nein, das musst du nicht.
Wenn dein Gerät innerhalb von 10s antwortet, dann reicht es vollkommen aus, (wie in meinem Snippet) einfach 2 Bytes per VISARead abzufragen!