12.08.2010, 09:24
Beitrag #1
|
heikoleinchen
LVF-Grünschnabel
Beiträge: 12
Registriert seit: Feb 2008
8.6.1
-
de
70563
Deutschland
|
serielle Schnittstelle freigeben nach "Ausführung abbrechen"?
LV 8.x, WinXP, Com1
Hallo,
auf Dauer ist es nervig: Wenn ich ein Programm mit normal arbeitender Kommunikation über die serielle Schnittstelle im Betrieb mit dem roten "Ausführung abbrechen"-Knopf in der Menüleiste abbreche, und dann neu starte, ist der Port gesperrt, bis ich das Programm schließe (und dann wieder öffne).
Warum ist das so?
Wie bekomme ich das Programm dazu das es merkt das das eigene Programm diesen Port blockiert? Oder, gibt es eine Möglichkeit den gewünschten Port bei "Start" freizumachen?
Grüßle
Heiko Uhlig
|
|
|
12.08.2010, 09:31
Beitrag #2
|
GerdW
______________
Beiträge: 17.480
Registriert seit: May 2009
LV2021
1995
DE_EN
10×××
Deutschland
|
serielle Schnittstelle freigeben nach "Ausführung abbrechen"?
Hallo Heiko,
"Warum ist das so?"
Ich würd mal so sagen: "To use the abort button is like using a tree to stop a car!" (Aus dem NI-Forum...)
Vielleicht überlegst du dir, wie man ein VI kontrolliert beendet - und dann auch den seriellen Port wieder freigibt (mit einem VISA-Close)?
|
|
|
12.08.2010, 09:36
Beitrag #3
|
TSC
LVF-Team
Beiträge: 1.882
Registriert seit: Sep 2008
LV 2018 SP1
2008
EN
52379
Deutschland
|
serielle Schnittstelle freigeben nach "Ausführung abbrechen"?
Oder du stellst in LabVIEW ein:
Werkzeuge -> Optionen -> Umgebung -> VISA-Sessions automatisch schließen
"Über Fragen, die ich nicht beantworten kann, zerbreche ich mir nicht den Kopf!" ( Konrad Zuse)
|
|
|
12.08.2010, 09:37
Beitrag #4
|
heikoleinchen
LVF-Grünschnabel
Beiträge: 12
Registriert seit: Feb 2008
8.6.1
-
de
70563
Deutschland
|
serielle Schnittstelle freigeben nach "Ausführung abbrechen"?
' schrieb:Hallo Heiko,
"Warum ist das so?"
Ich würd mal so sagen: "To use the abort button is like using a tree to stop a car!" (Aus dem NI-Forum...)
Vielleicht überlegst du dir, wie man ein VI kontrolliert beendet - und dann auch den seriellen Port wieder freigibt (mit einem VISA-Close)?
das beantwortet leier die Frage nicht. ;-)
Selbstverständlich habe ich Visa-Close usw drin. Trotzdem gibt's doch Zustände in denen man das Programm "irregulär" abbricht, z.B. weil es aus irgendeinem Grund hängt. Es scheint mir trotzdem nicht plausibel warum das VI nicht erkennen kann das es selbst den Port blockiert.
Grüßle
Heiko
|
|
|
12.08.2010, 09:38
(Dieser Beitrag wurde zuletzt bearbeitet: 12.08.2010 10:07 von Lucki.)
Beitrag #5
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
serielle Schnittstelle freigeben nach "Ausführung abbrechen"?
Ja, warum beendest Du das Programm auch nicht normal? Dies Art des Abbruch entspäche dem Beenden einer Autofahrt durch Fahren gegen einen Baum - las ich gerade gestern hier im Forum.
Aber in Deinem Fall solltest Du wenigsten beim Start des Programm die VISA-Schnittelle zuerst schließen, bevor Du neu konfigurierst.
Edit: Andere waren schneller. Aber zu Deine Frage:
Zitat:Es scheint mir trotzdem nicht plausibel warum das VI nicht erkennen kann das es selbst den Port blockiert.
Das habe ich mich auch lange Zeit gefragt, bis mir ein plausible Antwort einfiel:
Labview kann eben nur erkennne, daß der Port blockiert ist, aber nicht wer es ist. Es könnnte also auch ein ganz anderes parallel laufendes Windows-Programm sein. Es wäre ein Leichtes, bei der Konfiguration den Port erst mal zurückzusetzen. Aber damit würde man möglicherweise in ein anderes Windows-Progrogramm eingreifen, und das darf natürlich nicht sein.
Die Antwort von Tschac gefällt mir übrigens am besten, werde das bei mir so einstellen.
|
|
|
12.08.2010, 09:40
(Dieser Beitrag wurde zuletzt bearbeitet: 12.08.2010 09:41 von GerdW.)
Beitrag #6
|
GerdW
______________
Beiträge: 17.480
Registriert seit: May 2009
LV2021
1995
DE_EN
10×××
Deutschland
|
serielle Schnittstelle freigeben nach "Ausführung abbrechen"?
Hallo Heiko,
"z.B. weil es aus irgendeinem Grund hängt"
Wenn du den Grund kennst, kannst du das VI auch kontrolliert beenden...
TSchACs Vorschlag sollte funktionieren, lädt aber nicht zum sauberen Programmieren ein. Luckis Vorschlag funktioniert auch, lädt aber nicht zum...
|
|
|
12.08.2010, 09:43
Beitrag #7
|
heikoleinchen
LVF-Grünschnabel
Beiträge: 12
Registriert seit: Feb 2008
8.6.1
-
de
70563
Deutschland
|
serielle Schnittstelle freigeben nach "Ausführung abbrechen"?
' schrieb:Oder du stellst in LabVIEW ein:
Werkzeuge -> Optionen -> Umgebung -> VISA-Sessions automatisch schließen
funktioniert (bei mir (LV8.6)) leider nicht, Port ist trotzdem bis LV-Neustart blockiert.
|
|
|
12.08.2010, 09:44
Beitrag #8
|
TSC
LVF-Team
Beiträge: 1.882
Registriert seit: Sep 2008
LV 2018 SP1
2008
EN
52379
Deutschland
|
serielle Schnittstelle freigeben nach "Ausführung abbrechen"?
In meinen Test VIs kümmer ich mich eher selten um sauberes programmieren, da will ich nur mal schnell nen Wert auslesen und nicht gleich den ersten Preis für den schönsten Code bekommen.
In den richtigen Programmen ist das natürlich was anderes.
Grüße,
Torsten
"Über Fragen, die ich nicht beantworten kann, zerbreche ich mir nicht den Kopf!" ( Konrad Zuse)
|
|
|
12.08.2010, 09:58
Beitrag #9
|
heikoleinchen
LVF-Grünschnabel
Beiträge: 12
Registriert seit: Feb 2008
8.6.1
-
de
70563
Deutschland
|
serielle Schnittstelle freigeben nach "Ausführung abbrechen"?
' schrieb:In meinen Test VIs kümmer ich mich eher selten um sauberes programmieren, da will ich nur mal schnell nen Wert auslesen und nicht gleich den ersten Preis für den schönsten Code bekommen.
In den richtigen Programmen ist das natürlich was anderes.
Grüße,
Torsten
eben, so sehe ich das auch.
Das genannte "Auto gegen Baum" Argument finde ich merkwürdig. LV ist 'ne Entwicklungsumgebung. Wärend der Entwicklungsphase wird es doch wohl erlaubt sein das Programm "irregulär" zu beenden. Technisch ist für mich nicht nachvollziehbar warum der Port vom eigenen Programm blockiert bleibt, selbst mit "Visa Sessions automatisch schließen". Und dann auch keine Möglichkeit besteht diese Blockade aufzuheben.
Schade.
Grüßle
Heiko
|
|
|
12.08.2010, 10:20
|
heikoleinchen
LVF-Grünschnabel
Beiträge: 12
Registriert seit: Feb 2008
8.6.1
-
de
70563
Deutschland
|
serielle Schnittstelle freigeben nach "Ausführung abbrechen"?
' schrieb:Ja, warum beendest Du das Programm auch nicht normal? Dies Art des Abbruch entspäche dem Beenden einer Autofahrt durch Fahren gegen einen Baum - las ich gerade gestern hier im Forum.
Aber in Deinem Fall solltest Du wenigsten beim Start des Programm die VISA-Schnittelle zuerst schließen, bevor Du neu konfigurierst.
Edit: Andere waren schneller. Aber zu Deine Frage:
Das habe ich mich auch lange Zeit gefragt, bis mir ein plausible Antwort einfiel:
Labview kann eben nur erkennne, daß der Port blockiert ist, aber nicht wer es ist. Es könnnte also auch ein ganz anderes parallel laufendes Windows-Programm sein. Es wäre ein Leichtes, bei der Konfiguration den Port erst mal zurückzusetzen. Aber damit würde man möglicherweise in ein anderes Windows-Progrogramm eingreifen, und das darf natürlich nicht sein.
Die Antwort von Tschac gefällt mir übrigens am besten, werde das bei mir so einstellen.
"Visa schließen"am Anfang, auch schon probiert --> keine Änderung :-(
"Labview kann eben nur erkennne, daß der Port blockiert ist, aber nicht wer es ist." So vermute ich das auch, aber das ist doch 'ne komische Sache, wirkt irgendwie unreif. Und ich sollte zumindestens einstellen können das LV bei Nutzung genannter Abbruchvariante die genutzten Ports schließt. Zumindestens mit dem genannten "Visa Sessions schließen" funktioniert das bei mir nicht.
Ich bin allerdings verwundert das ich scheinbar der einzige bin den es nervt, sonst gäb's da doch bestimmt 'ne Lösung. ;-)
Grüßle
Heiko
|
|
|
| |