'Laufzeitfehler 8002: Ungültige Anschlussnummer' bei COM-Schnittstelle (2024)

Discussion:

'Laufzeitfehler 8002: Ungültige Anschlussnummer' bei COM-Schnittstelle

(zu alt für eine Antwort)

Rüdiger Lehmann

2009-07-07 12:41:55 UTC

Permalink

Hallo,

bei einer Anwendung, welche über eine COM-Schnittstelle mit Geräten
kommuniziert, kommt, wenn man die Anwendung nach einem Stromausfall
erneut startet, die Fehlermeldung:

Laufzeitfehler 8002: Ungültige Anschlussnummer

In der Hilfe steht, dass das ein auffangbarer Fehler ist. Was heißt das?

Der Debugger bleibt mit o.g. Fehlermeldung genau da stehen, wo versucht
wird, den COM-Port erneut zu öffnen. Also bei der Zeile

.MSCommDosim.PortOpen = True

Was soll mir die o.g. Fehlermeldung sagen?

MfG
R.L.

Thomas Ehlert

2009-07-07 19:36:09 UTC

Permalink

Hi!

Klingt danach, als würde die Anwendung den genutzten COM-Port
(COM1,2,3,etc.) nicht mehr finden.

Post by Rüdiger Lehmann
bei einer Anwendung, welche über eine COM-Schnittstelle mit Geräten
kommuniziert, kommt, wenn man die Anwendung nach einem Stromausfall

Ist der Com-Port auf dem Main-Board oder ist das so ein USB-Teil?
Die haben die unangenehme Eigenschaft zeitweilig Ihren Port zu ändern.

Post by Rüdiger Lehmann
In der Hilfe steht, dass das ein auffangbarer Fehler ist. Was heißt das?

Das Du Ihn mit "On Error" abfangen und darauf reagieren kannst.

Post by Rüdiger Lehmann
Der Debugger bleibt mit o.g. Fehlermeldung genau da stehen, wo versucht
wird, den COM-Port erneut zu öffnen. Also bei der Zeile
.MSCommDosim.PortOpen = True

Rüdiger Lehmann

2009-07-07 20:26:58 UTC

Permalink

Hallo,

Post by Thomas Ehlert
Klingt danach, als würde die Anwendung den genutzten COM-Port
(COM1,2,3,etc.) nicht mehr finden.
Ist der Com-Port auf dem Main-Board oder ist das so ein USB-Teil?

Es ist ein fest auf dem Mainbord installierter COM-Port.

Das merkwürdige daran ist, wenn ich die Anwendung dann in der IDE stoppe
und erneut starte, habe ich keine Probleme mehr beim Öffnen der
COM-Schnittstelle.

Post by Thomas Ehlert
Das Du Ihn mit "On Error" abfangen und darauf reagieren kannst.

Ich dachte, dass es eine spezielle empfohlene Abfangprozedur für diesen
Fehler gibt, die dann dennoch diesen Port öffnet.

Thomas Ehlert

2009-07-08 13:14:01 UTC

Permalink

Hi,

Post by Rüdiger Lehmann
Das merkwürdige daran ist, wenn ich die Anwendung dann in der IDE stoppe
und erneut starte, habe ich keine Probleme mehr beim Öffnen der
COM-Schnittstelle.

Heisst, der Strom fällt an Deinem Gerät aus und nicht am Rechner?
Du hast im ersten Posting geschrieben, dass die Anwendung nach Neustart
den COM-Fehler ausgibt.
Was genau meinst Du mit "Neustart"? Ist das eine Aktion im laufenden Programm,
oder ist das ein Neustart Deiner Applikation?

Gruß
Thomas

Rüdiger Lehmann

2009-07-08 14:06:19 UTC

Permalink

Hallo,

Post by Thomas Ehlert
Heisst, der Strom fällt an Deinem Gerät aus und nicht am Rechner?

Am gesamten System. Es sind sowohl alle Geräte, als auch alle PCs
betroffen. Wenn Du schon einmal in der Türkei im Urlaub warst, weißt Du
was ich meine. ;-) Es nicht überall auf der Welt eine solch zuverlässige
Stromversorgung wie in DE.

Post by Thomas Ehlert
Du hast im ersten Posting geschrieben, dass die Anwendung nach
Neustart den COM-Fehler ausgibt. Was genau meinst Du mit "Neustart"?

Die Anwendung läuft ganz normal. Dann fällt im gesamten ländlichen
Gebiet plötzlich der Strom aus (für so ca. 1 min). Nach einiger Zeit ist
der Strom wieder da, was man daran merkt, dass das Licht wieder an geht.
Dann schalte ich zuerst die Geräte wieder ein, und danach den PC und
starte die Anwendung. Jetzt kommt eben genau diese Fehlermeldung. Wenn
ich die Fehlerbehandlung herausnehme, beendet sich nach der
Fehlermeldung die Anwendung selbsttätig.
Starte ich die Anwendung, ohne jedoch das OS neu zu starten, erneut.
bekomme ich die Fehlermeldung nicht mehr erneut und die Anwendung
startet ganz normal wieder.

Ich kann das Problem (also dieses Verhalten) auch nicht immer zu 100%
reproduzieren, aber sehr oft. Ich würde wagen zu behaupten zu 80%.

Post by Thomas Ehlert
Ist das eine Aktion im laufenden Programm, oder ist das ein Neustart
Deiner Applikation?

Nein. Ein Neustart der Applikation.

Thorsten Albers

2009-07-08 16:30:33 UTC

Permalink

Am gesamten System. Es sind sowohl alle GerÀte, als auch alle PCs
betroffen. Wenn Du schon einmal in der TÃŒrkei im Urlaub warst, weißt Du
was ich meine. ;-) Es nicht ÃŒberall auf der Welt eine solch

zuverlÀssige

Stromversorgung wie in DE.

Ein Stromausfall ist ja ein Sonderfall, den man mit einer normalen
VB-Fehlerbehandlung überhaupt nicht abfangen kann. Man kann lediglich
anhand bestimmter Symptome das Problem analysieren. In Deinem Fall würde
ich vielleicht deswegen folgendermaßen vorgehen:

Const VBERR_INVALIDPORTNUMBER As Long = 8002
Const ERRCOUNT_NOERROR As Long = 0
Const ERRCOUNT_RESTART As Long = 50
Const ERRCOUNT_OTHERERROR As Long = -1
Dim lErrCount As Long

lErrCount = ERRCOUNT_NOERROR
Do
On Error Goto CatchError
.MSCommDosim.PortOpen = True
On Error Goto 0

If (lErrCount = ERRCOUNT_NOERROR) _
Or (lErrCount = ERRCOUNT_OTHERERROR) _
Or (lErrCount = ERRCOUNT_RESTART) Then Exit Do

' Hier vielleicht 'Sleep ...' und/oder 'DoEvents'
Loop

Select Case lErrCount

Case ERRCOUNT_NOERROR
' Kein Fehler, normal fortfahren

Case ERRCOUNT_OTHERERROR
' Anderen Fehler abhandeln

Case ERRCOUNT_RESTART
' Fehler 8002 behandeln
' Der Port konnte trotz wiederholter Versuche
' nicht geöffnet werden
' Ggfs. Daten sichern
' -> Neustart dieses Programmes

End Select

Exit Sub

CatchError:
If Err.Number = VBERR_INVALIDPORTNUMBER Then
lErrCount = lErrCount + 1
Else
lErrCount = ERRCOUNT_OTHERERROR
End If
Resume Next

Den Neustart des Programmes führst Du mit Hilfe eines zweiten kleinen
Programmes durch. Dieses startest Du zunächst asynchron, dann beendest Du
das eigentliche Programm. Das kleine zweite Programm wartet entweder eine
gewisse Zeit (Timer), bis es das eigentliche Programm startet, oder es
prüft auf geeignete Weise, ob das eigentliche Programm beendet wurde.

--
Thorsten Albers

albers (a) uni-freiburg.de

Thomas Ehlert

2009-07-11 15:00:58 UTC

Permalink

Und eine USV nicht zu vergessen!
Ich habe Anwendungen in Bangalore/Indien laufen, kenne daher das Problem ;-)

Post by Thorsten Albers
Ein Stromausfall ist ja ein Sonderfall, den man mit einer normalen
VB-Fehlerbehandlung überhaupt nicht abfangen kann. Man kann lediglich
anhand bestimmter Symptome das Problem analysieren. In Deinem Fall würde

Rüdiger Lehmann

2009-07-13 07:15:49 UTC

Permalink

Hallo,

Und eine USV nicht zu vergessen! Ich habe Anwendungen in
Bangalore/Indien laufen, kenne daher das Problem ;-)

An eine solche USV habe ich auch schon gedacht. Wie sieht da eigentlich
die konkrete Umsetzung aus? Bekomme ich (bzw. mein Programm) über das OS
eine Meldung von der USV, dass der Strom ausgefallen ist, damit ich
reagieren kann? Habe mich damit noch nicht weiter beschäftigen können.
Was könntet ihr da an Produkten/Herstellern empfehlen? Wie lange hat man
i.d.R. noch Zeit durch eine solche USV? Wie wartungsintensiv sind diese
Lösungen?

MfG
R.L.

Dieter Strassner

2009-07-13 14:18:07 UTC

Permalink

Hallo Rüdiger,

Post by Rüdiger Lehmann
An eine solche USV habe ich auch schon gedacht. Wie sieht da
eigentlich die konkrete Umsetzung aus? Bekomme ich (bzw. mein
Programm) über das OS eine Meldung von der USV, dass der Strom
ausgefallen ist, damit ich reagieren kann?

Schau Dir bitte mal die Zeile

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)

an. Speziell den Parameter "UnloadMode". Hierüber wird dein Programm
informiert.
Bei Diensten läuft es so ähnlich, auch dort wird ein Event gemeldet.

Post by Rüdiger Lehmann
Habe mich damit noch nicht
weiter beschäftigen können. Was könntet ihr da an
Produkten/Herstellern empfehlen? Wie lange hat man i.d.R. noch Zeit
durch eine solche USV? Wie wartungsintensiv sind diese Lösungen?

... vor allem ausreichende BattterieKapazität. Beachte den Unterschied
zwischen VA und W
Habe einieg Experimente mit Billigheimern hintermir, bin jetzt bei APC
gelandet.
Alle 6 Monate einen BatterieCheck durchfürhen, 2-3 Jahre sollten sie meist
auch ausgetauscht werden.
Ansonsten läuft so eine USV klaglos vor sich hin.
--
Viele Grüße

Dieter

Rückfragen bitte nur in die Newsgroup!

EDV-Kommunikation Strassner e.K.
68623 Lampertheim
Internet: www.strassner.biz

Lesen Sie weiter auf narkive:

'Laufzeitfehler 8002: Ungültige Anschlussnummer' bei COM-Schnittstelle (2024)

References

Top Articles
Latest Posts
Article information

Author: Allyn Kozey

Last Updated:

Views: 5715

Rating: 4.2 / 5 (43 voted)

Reviews: 82% of readers found this page helpful

Author information

Name: Allyn Kozey

Birthday: 1993-12-21

Address: Suite 454 40343 Larson Union, Port Melia, TX 16164

Phone: +2456904400762

Job: Investor Administrator

Hobby: Sketching, Puzzles, Pet, Mountaineering, Skydiving, Dowsing, Sports

Introduction: My name is Allyn Kozey, I am a outstanding, colorful, adventurous, encouraging, zealous, tender, helpful person who loves writing and wants to share my knowledge and understanding with you.