LabVIEWForum.de
visa - rs-232 - voltcraft vc920 - error -1073807298 - 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 - rs-232 - voltcraft vc920 - error -1073807298 (/Thread-visa-rs-232-voltcraft-vc920-error-1073807298)



visa - rs-232 - voltcraft vc920 - error -1073807298 - scg - 24.01.2009 12:59

Hallo,

Folgendes Problem entzieht sich beharrlich der Lösung durch meine (bescheidenen) LabVIEW-Kenntnisse. Entschuldigt vorab die englischen Bezeichnungen - ich habe hier nur diese Sprachversion verfügbar.

Ich versuch das Voltcraft VC920 DMM mittels RS-232 und VISA auszulesen. Ein naiver Ansatz aufbauend auf dem "property node - bytes at port" und "VISA Read" funktionier auch nach meinen Vorstellungen, vorausgesetzt das VI wird nur einmal ausgeführt. Bei wiederholter Ausführung (nach Stopp, wobei VISA Close aufgerufen wird) liefert "VISA Read" aber den kryptischen Fehler -1073807298 (Hex 0xBFFF003E, Could not perform operation because of I/O error.). Dieser Fehler tritt erstaunlicherweise nur einmal auf und wird er ignoriert (verbundener error handler oder durch Betätigung von "Continue" im Fehlerdialog), so läuft das VI erwartungsgemäß weiter. Trotzdem finde ich die Option den Fehler permanent außer Acht zu lassen nicht erstrebenswert und hoffe ihr könnt damit mehr anfangen als ich. Jedenfalls habe ich die Ausgabe des NI Spy’s für einen erfolgreiche Aufruf im neu gestarteten LabVIEW (spy_1.txt) und einen erfolglosen Aufruf (2.) angehängt (spy_2.txt). Beide basieren auf dem simplen, ebenfalls beigefügten Prototype-VI (LV 8.5).

[attachment=16321] (LV 8.5)

Mein Google Reschärsche hat zwar zu dem beanstandeten Fehler viele Referenzen aufgeworfen - eine Lösung oder auch nur die Ursache konnte ich daraus aber nicht ableiten. Bin für alle Tipps und Ideen dankbar.

LV-Anfänger

[attachment=16322]
[attachment=16323]


visa - rs-232 - voltcraft vc920 - error -1073807298 - Y-P - 25.01.2009 12:22

Vielleicht hilft das.

Gruß Markus


visa - rs-232 - voltcraft vc920 - error -1073807298 - scg - 25.01.2009 16:25

Danke für den Tipp. Tatsächlich kannte ich das bereits. Ich benutze aber keinen USB-Adapter und "VISA Configure Serial Port.vi" verursacht auch gar keinen Fehler - sondern VISA Read - allerdings erst beim zweiten Run und nur beim ersten wirklichen Read ... sehr befremdlich.

Danke jedenfalls,
Daniel


visa - rs-232 - voltcraft vc920 - error -1073807298 - Y-P - 25.01.2009 21:24

Kannst Du das Gerät aus dem MAX heraus auch nicht abfragen?

Gruß Markus


visa - rs-232 - voltcraft vc920 - error -1073807298 - scg - 26.01.2009 11:17

' schrieb:Kannst Du das Gerät aus dem MAX heraus auch nicht abfragen?
Nicht wirklich.

Wenn ich in MAX die Einstellungen

VI_ATTR_ASRL_DTR_STATE = 1
VI_ATTR_ASRL_RTS_STATE = 0

vornehme und dann versuche mittels viRead 11 Zeichen zu lesen, so werden zwar 11 Zeichen übertragen, jedoch resultiert ein Framing-Error (BFFF006B) und die gelesenen Daten entsprechen auch nicht den Strings die ich mit meinem VI auslese (nur xf8 und x00). Ich habe versucht die Einstellungen von Data bits, Parity und Stop bits zu verändern, doch ist es mir nicht gelungen den erwarteten String auszulesen. Macht das für Dich Sinn? Ich bin ziemlich ratlos.

Daniel


visa - rs-232 - voltcraft vc920 - error -1073807298 - Y-P - 26.01.2009 18:41

So geht's mir leider auch... Unsure
Komisch ist, dass es mal geht und mal nicht. Blink

Gruß Markus

' schrieb:Ich bin ziemlich ratlos.



visa - rs-232 - voltcraft vc920 - error -1073807298 - jg - 26.01.2009 19:33

Ich würde mal zur Sicherheit bei Config-VI den "Termination Char" auf False setzen.

Gruß, Jens


visa - rs-232 - voltcraft vc920 - error -1073807298 - Cardinal1664 - 30.01.2009 09:08

Hallo zusammen

Ich habe das selbe Problem!
So bald ich das Gerät einschlte welches beim start eine Zeichenkette sendet und diese lesen will erhalte ich auch diesen Fehler! Ich erhalte einfach den Fehler -1073807298!

Ich habe mal mit Spy geschaut wie der Puffer inhalt aussieht:
[attachment=16496]

Hier wäre noch mein VI:
[attachment=16495]


visa - rs-232 - voltcraft vc920 - error -1073807298 - Cardinal1664 - 10.02.2009 08:41

Hat da niemand eine idee?


visa - rs-232 - voltcraft vc920 - error -1073807298 - rolfk - 11.02.2009 08:15

' schrieb:Hallo,

Folgendes Problem entzieht sich beharrlich der Lösung durch meine (bescheidenen) LabVIEW-Kenntnisse. Entschuldigt vorab die englischen Bezeichnungen - ich habe hier nur diese Sprachversion verfügbar.

Ich versuch das Voltcraft VC920 DMM mittels RS-232 und VISA auszulesen. Ein naiver Ansatz aufbauend auf dem "property node - bytes at port" und "VISA Read" funktionier auch nach meinen Vorstellungen, vorausgesetzt das VI wird nur einmal ausgeführt. Bei wiederholter Ausführung (nach Stopp, wobei VISA Close aufgerufen wird) liefert "VISA Read" aber den kryptischen Fehler -1073807298 (Hex 0xBFFF003E, Could not perform operation because of I/O error.). Dieser Fehler tritt erstaunlicherweise nur einmal auf und wird er ignoriert (verbundener error handler oder durch Betätigung von "Continue" im Fehlerdialog), so läuft das VI erwartungsgemäß weiter. Trotzdem finde ich die Option den Fehler permanent außer Acht zu lassen nicht erstrebenswert und hoffe ihr könnt damit mehr anfangen als ich. Jedenfalls habe ich die Ausgabe des NI Spy’s für einen erfolgreiche Aufruf im neu gestarteten LabVIEW (spy_1.txt) und einen erfolglosen Aufruf (2.) angehängt (spy_2.txt). Beide basieren auf dem simplen, ebenfalls beigefügten Prototype-VI (LV 8.5).

[attachment=43965:vc920_test_8_5.png] (LV 8.5)

Mein Google Reschärsche hat zwar zu dem beanstandeten Fehler viele Referenzen aufgeworfen - eine Lösung oder auch nur die Ursache konnte ich daraus aber nicht ableiten. Bin für alle Tipps und Ideen dankbar.

LV-Anfänger

[attachment=43966:spy_1.txt]
[attachment=43967:spy_2.txt]

Also ganz helfen kann ich dir wohl auch nicht aber Du hast da zwei Dinge die mich ziemlich stören. Das erste ist dass Du zwar Termination Character enablest (bewusst oder das wird default getan) aber danach trotzdem mit Avail_Bytes arbeitetest. Das Zweite ist bei einem Instrument das einen Termination Character hat (die zwei Punkte am Ende von zurückgelesenen Strings im viRead des Spylogs lassen mit fast 100% vermuten dass das wirklich so ist) eigentlich überflüssig da die VISA Read Funktion bei einem Read mit eingeschaltetem Termination Character ohnehin wartet bis entweder:

1) die verlangten Anzahl Character eingetroffen sind
2) der Termination Character gelesen wurde
3) das Timeout abgelaufen ist
4) ein Fehler aufgetreten ist

Avail Bytes hätte hier höchstens als Indikation, ob überhaupt Daten anliegen einen Sinn um bei einem Gerät dass sehr langsam Daten ausspuckt zu verhindern, dass VISA Read auf die nächsten Daten wartet während der Benützer die Applikation abschliessen möchte, und die Applikation erst abschliesst nach langer Wartezeit wenn das VISA Read endlich mit den Daten zurückkommt.

Also eventuel Avail_Bytes machen und wenn nicht 0, dann mit VISA Read mit einer viel grösseren Zahl die ganz sicher länger als der längstmöglich zurückgegebene String ist lesen.

Zweiter Nitpick, wenn Du schon Avail_Bytes verwendest solltest Du im Falle von 0 Bytes das VISA Read gleich in eine case Struktur legen. Es hat absolut keinen Sinn um diese Funktion aufzurufen um 0 Bytes zu lesen und das könnte eventuel die Schnittstelle durcheinander bringen.

Ohh und bitte solche Dinge nicht in eine Loop setzen die volle Pulle durchdreht. Da gehört schon ein Looptimer hinein der im Verhältniss der Berichthäufigkeit die Loop bremst. Das Metronom eignet sich dazu sehr gut. Es hat keinen Sinn 5000 mal pro Sekunde zu schauen ob da ein neuer String ist wenn das Gerät doch nur 2 pro Sekunde verschickt.

Noch ein Tipp, bei solchen Berichtschleudern, die ganz einfach immer Daten rauspusten ist es eine gute Idee um nach der Initialization erst die Buffer zu leeren.

Rolf Kalbermatter