LabVIEWForum.de
RS232 Ports lassen sich nicht mehr schliessen - 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: RS232 Ports lassen sich nicht mehr schliessen (/Thread-RS232-Ports-lassen-sich-nicht-mehr-schliessen)



RS232 Ports lassen sich nicht mehr schliessen - SPS-Fuzzi - 12.03.2009 13:37

Hallo zusammen !

Bin ganz neu hier und habe im VISA-Unterforum schon einige Tipps gefunden, um mein erstes Projekt auf die Beine zu stellen. Es müssen drei Messgeräte an den seriellen COM-Ports 5, 6 und 7 zyklisch ausgelesen werden. Mittlerweile bin ich soweit, dass ich die Schnittstellen zu allen drei Geräten parallel aufbauen kann (dank dem Hinweis dass die Lese-SubVIs reentrant definiert sein müssen).

Das Problem liegt aber im Schließen der 3 VISA-Ports. Ich verwende drei mal hintereinander die selbe Prozedur (write Command-String, dann Close, zwischendurch noch 1sec Wartezeit), wobei ich jedesmal einen anderen Com-Port übergebe. Ich bekomme keine Fehlermeldung, trotzdem wird nur einer der drei COM-Ports geschlossen, es ist immer COM-Port 7, der zuletzt geöffnet wurde.

Was macht es eigentlich, wenn ich einen COM-Port nicht schließe, sofern ich mit keiner anderen Applikation denselben COM-Port nutzen will? Oder gibt es Probleme wenn ich mit LV dann diesen zuvor nicht geschlossenen COM-Port wieder neu öffnen will?


Vielen Dank für Eure Unterstützung.

Gruß SPS-Fuzzi


RS232 Ports lassen sich nicht mehr schliessen - jg - 12.03.2009 16:12

Ohne Blick auf deinen Sourcecode lässt sich schwer sagen, was bei dir falsch läuft.

Gruß, Jens


RS232 Ports lassen sich nicht mehr schliessen - SPS-Fuzzi - 13.03.2009 08:28

Ja stimmt schon. Anbei nun zwei VI-Auszüge.

Bei COM_Open starte ich mit "Settings x starten" das Initialisieren und Öffnen der Ports. Dies passiert im Sub-VI 5015Init. Das funktioniert alles noch, deshalb habe ich der Übersichtlichkeit wegen die Sub-VIs Init und Sett. nicht mit angehängt.

Beim Schließen im Bild COM_Close wird erst der Port eingestellt, nach Drücken des Trennen-Schalters wird ein Command-String auf die Schnittstelle geschrieben, 1000ms gewartet und dann der COM-Port geschlossen und wieder 1000ms gewartet. Es gibt nie einen Close-Error, der Output ist immer Null. Die ganze Prozedur für die 3 Ports. War zuerst automatisch, habe ich dann auf manuell geändert, um zu sehen was wann passiert.

Fakt ist: nur der zuletzt geöffnete Port lässt sich schließen.

Die Sub-VIs sind bereits reentrant, eingestellt ist Ablaufinvariante Ausführung, Kopie für jede Instanz vorbelegen.

Vielen Dank für die Hilfe.


Gruß SPS-Fuzzi

[attachment=17194]
[attachment=17195]


RS232 Ports lassen sich nicht mehr schliessen - jg - 13.03.2009 09:45

Auch wenn's es eher nicht das Problem ist, eine saubere Sequenzierung mit Warten würde ich so aufbauen. (vgl. Screenshot)

Aber mal was anderes, wieso verwendest du noch diese "Uralt"-Seriell-VI's? Setzte doch mal auf die aktuellen VISA-VIs (vgl. Screenshot). Da hast du dann eine sauber Abfolge: Port öffnen->gibt dir eine VISA-Resource zurück! Und diese Resource verwendest du dann solange zum Lesen und Schreiben, bis du den Port wieder schließt. Vgl. dazu auch Beispiele im NI-Examplefinder oder hier im Forum.

Gruß, Jens

[attachment=17199]