LabVIEWForum.de - Timeout-Config der Schnittstelle

LabVIEWForum.de

Normale Version: Timeout-Config der Schnittstelle
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo miteinander,

Ich habe ein Problem mit der Kommunikation an der seriellen Schnittstelle. Ich möchte ein Infrarot-Spektrometer ansteuern und auslesen. Zu dem Gerät besitze ich eine Software, die ist aber wenig komfortabel. Jedenfalls kann ich mir mittels Portmon angucken, welche Einstellungen an der Schnittstelle und welchen Command die Software an das Gerät sendet um Daten zu empfangen.
Ich habe die Einstellungen soweit wie ich sie gefunden habe übernommen, das sind dann alle, außer die Timeout-Settings.

IOCTL_SERIAL_SET_TIMEOUTS Serial2 SUCCESS RI:50 RM:1 RC:300 WM:0 WC:500

Ich habe alle anderen Setting als Eigenschaftsknoten im VI "VISA: Seriellen Port Konfigurieren" finden und hinzufügen können.
Leider weiß ich nicht, wie man die Timeout-Settings über LabVIEW vornimmt.

Ich vermute, dass die Timeout-Settings mein Problem sind. Wenn ich den Command an das Gerät schicke, dann reagiert es nicht. Ich bekomme kein einziges Byte am Port.

Über Hilfen wäre ich echt dankbar!

Grüße,
Mona
Also ich bin hier mehr Enthusiasmus gewohnt, daher beschreibe ich mein Problem nochmal in aller Länge:-)

Ich möchte ganz einfach eigentlich, per RS232 ein FT-IR ansteuern. Die Herstellerfirma hat mir zur Kommunikation mit dem Gerät leider keine Vernünftige Parameterliste geben können, daher nutze ich die mitgelieferte Software, um mir mit Portmon die Aktivitäten am Port anzugucken und mit LabVIEW nachzuahmen.

Mein Vi füge ich bei.

Außerdem noch was Portmon mitschreibt, wenn ich einmal den Command mit der Software des Herstellers (CALCMET) sende und wenn ich den Command mit meinem LabVIEW-Programm sende.
Calcmet bekommt Daten vom Gerät, ich nicht.



Ich weiß leider auch nicht woran es definitiv liegt. Wenn jemand eine Idee hat, oder mir sagen kann, wie ich die Timeouts mit LabVIEW einstellen kann, bin ich um Antwort sehr dankbar- langsam fällt mir nämlich nichts mehr ein.

Grüße,
Mona
Hi Mona

Wenn ich aber deine logs kurz verlgeiche, dann fällt auf, dass du im LV-Programm eine Baud-Rate von 9600 setzt und in Calmet eine Rate von 57600 definiert ist. Pass doch diese mal an. Als nächstes verstehe ich die Frage bezüglich des Timeouts nicht. Du hast dir doch ein Timeout-Control rausgeführt. Da lässt es sich doch einstellen....

Gruss,
Christian
Hi,

Das mit den Baud-Raten hab ich schon angepasst, es klappt leider immernoch nicht.

Ich vermute einfach mal, dass es was mit dem Timeout zu tun hat, da ich alle anderen Einstellungen mit denen Calcmet die Schnittstelle konfiguriert übernommen habe.

2 0.00000587 Calcmet.exe IOCTL_SERIAL_SET_TIMEOUTS Serial2 SUCCESS RI:50 RM:1 RC:300 WM:0 WC:500
57 0.00000279 LabVIEW.exe IOCTL_SERIAL_SET_TIMEOUTS Serial2 SUCCESS RI:-1 RM:0 RC:0 WM:0 WC:500

Hab entsprechende Zeilen eben mal rauskopiert.

Darin unterscheidet sich meine Schnittstellenkonfig nun noch von der von Calcmet.
Kann es sein, dass im timeout-Control eine "-1" steht (die "-1" sieht für mich ein bisschen wie eine default-Einstellung in LabVIEW aus). Oder verwendest du den Code so, wie er in deinem Screenshot dargestellt ist (dann wäre der Wert im Timeout wohl 10000, wenn du die default-Einstellung nicht verändert hast, so wie es bei der Baud-Rate passiert ist). Vielleicht ist ein zulässiger Wert für ein Timeout <10000 und wird als "-1" interpretiert..
Wer weiss....
Das erste Serial-Write der Calcmet-Software ist HEX 52 0A, nicht 4D 20 31 0A.

Könnte es daran liegen?

Gruß, Jens
Das ist wohl ein Command zur Statusabfrage. Den hab ich auch schon versucht, leider tut sich dabei auch nichts.
Referenz-URLs