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:
Nicht verwandte, aber interessante Themen
12
Antworten
Können durchgesickerte Nacktbilder die akademische Karriere schädigen?
gestartet 2016-11-11 08:24:18 UTC
9
Antworten
Angesichts von Nullen bei Aufträgen mit verdächtigem und entlassenem Betrug?
gestartet 2019-05-14 01:53:04 UTC
6
Antworten
Beeinträchtigt das Versenden einer Zeitschrift per E-Mail mit der Frage, ob mein Artikel in den Geltungsbereich fällt, die Wahrscheinlichkeit, veröffentlicht zu werden?
gestartet 2017-03-01 02:16:49 UTC
7
Antworten
Ist etwas falsch daran, mit Studenten in Kontakt zu treten?
gestartet 2013-08-15 23:19:00 UTC
9
Antworten
Sollte ich einen Artikel zitieren, den ich nicht finden kann?
gestartet 2020-02-03 09:42:59 UTC