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] |