LabVIEWForum.de
VISA: Timeout Error (1073807339) - 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: Timeout Error (1073807339) (/Thread-VISA-Timeout-Error-1073807339)



VISA: Timeout Error (1073807339) - TobSTAR - 02.07.2014 11:18

lv13_img

So ich hab dann mal ein erstes Problem!

Ziel: Steuerung und Abfrage eines DC-Schrittmotor über LabVIEW
Komponenten: Fa. Orientalmotor --> DC-Schrittmotor: AR98AK-PS50; Driver: ARD-K; Controller: CM10-1

Status:
- Befehle werden von LabVIEW an den Motor gesendet
- Motor (Controller) führt Befehle aus und Antwortet
- Antwort wird in LabVIEW dargestellt
- Timeout-Error

Beispiel:
send: run test
received:
run test
>

[attachment=50144]

Problem: Nach der letzten Antwort des Motors (Controllers) bleibt das VISAread.vi für eine Zeit xyz stehen und meldet einen Timeout-Error.

Ich habe weites gehend alle Anregungen aus dem Forum und von der Seite http://digital.ni.com/public.nsf/allkb/874B379E24C0A0D686256FCF007A6EA0 schon versucht umzusetzen, allerdings leider ohne Erfolg.
Das VI basiert größten Teils auf dem Exampel "Continuous Serial Write and Read.vi"

Ich hoffe jemand hat eine Idee oder sieht etwas was ich nicht sehe.


RE: VISA: Timeout Error (1073807339) - jg - 02.07.2014 11:33

THINK Dataflow!

Du sendest einmal eine Anfrage an den Motor-Controller, und startest dann in einer While-Loop einen Lese-Vorgang. Zwecks aktiviertem Termination-Char wird (wahrscheinlich) beim ersten Schleifendurchlauf die Antwort des Controller gelesen, dann wird ein zweiter Lese-Versuch gestartet, der aber logischerweise mit Time-Out abbrechen muss, denn was soll der Controller denn noch mitteilen?!

Gruß, Jens


RE: VISA: Timeout Error (1073807339) - TobSTAR - 03.07.2014 07:43

Aber heißt das nicht im Umkehrschluss, dass ich dem Controller irgendwie mitteilen muss wann meine Anfrage beendet ist? Mir ist gerade nicht ganz klar wie ich dem Controller mitteile, wann ich mit seiner Antwort zufrieden bin?

Bsp. LabVIEW:
dis //Incrementel distance in user unit

Frage:
dis

Antwort:
dis
DIS=5 deg
>



Bsp. Terminal Hersteller:
dis //Incrementeldistance in user unit

Frage:
dis

Antwort:
DIS=5 deg
>


Über das Terminal des Herstellers wird mir nur die Antwort und eine neue Zeile für weitere Eingaben geliefert. LabView hingegen liefert mir die Frage, Antwort und eine neue Zeile für weitere Eingaben.

Entferne ich jetzt die While-Schleife, dann bekomme ich nur dis als Antwort und nicht wie gewünscht DIS=5deg.

Mayday, mayday, ....


RE: VISA: Timeout Error (1073807339) - GerdW - 03.07.2014 08:15

Hallo Tob,

Zitat:Aber heißt das nicht im Umkehrschluss, dass ich dem Controller irgendwie mitteilen muss wann meine Anfrage beendet ist?
Nein.
Du sendest ein Kommando und bekommst eine Antwort. Wenn du eine weitere Antwort haben willst, musst du sie mit einem weiteren Kommando anfordern.

Zitat:Über das Terminal des Herstellers wird mir nur die Antwort und eine neue Zeile für weitere Eingaben geliefert. LabView hingegen liefert mir die Frage, Antwort und eine neue Zeile für weitere Eingaben.
Dann lies dir doch einfach mal das Manual durch. Es gibt da einen "ECHO"-Befehl…
Das "Terminal des Herstellers" wird diesen Befehl, im Gegensatz zu dir", wohl benutzen.

Zitat:Entferne ich jetzt die While-Schleife, dann bekomme ich nur dis als Antwort und nicht wie gewünscht DIS=5deg.
Du musst schon die komplette Antwort lesen! Wenn du ohne Schleife arbeitest, bekommst du eben nur die erste Hälfte der Antwort. Dies hängt mit dem von Jens schon erwähnten aktivierten TermChar zusammen. Wie sich das TermChar auswirkt, wurde schon oft hier im Forum beschrieben - zum Glück auch in der LabVIEW-Hilfe…


RE: VISA: Timeout Error (1073807339) - TobSTAR - 03.07.2014 09:22

arrrrrrrhhhhh manchmal ist die Lösung so einfach!
Ich hab viel zu kompliziert gedacht Blink

Vielen danke Jens und vielen Dank Gerd

Problem gelöst