INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

COM-Port: error-cluster



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

28.02.2017, 15:15
Beitrag #1

Beam1 Offline
LVF-Grünschnabel
*


Beiträge: 21
Registriert seit: Jan 2017

2015
2017
DE


Deutschland
COM-Port: error-cluster
Hallo,

Ich versuche gerade, eine Fehlerbehandlung in mein Programm im Teil "Programm-Initialisierung" einzufügen, komme damit aber noch nicht klar.
Grundsätzlich funktioniert die Ansteuerung eines Gerätes am COM-Port (wenn das Gerät angeschlossen ist und der richtige COM-Port vom Anwender ausgewählt wurde). Mir geht es jetzt darum, beim Programmstart (also bevor die eigentliche Mess-Schleife beginnt), abzufangen, wenn der Anwender einen falschen COM-Port auswählt oder wenn er vergesssen hat, das Gerät am COM-Port anzuschließen.

Ich habe das mal getestet und zugrunde gelegt habe ich hier mal das LabView-eigene Beispiel "Simple Serial.vi":
wenn ich den falschen COM-Port auswähle und auch auch wenn das Gerät nicht am COM-Port angeschlossen ist, passiert folgendes (Anzeige was auf dem Draht übertragen wird mit Kontextmenü "Probe" im "Probe Watch Window"):
niemals wird im Fehler-Cluster der Status "TRUE" (= Fehler) ausgegeben (was zu erwarten wäre wenn ein falscher COM-port gewählt wurde oder das Gerät gar nicht angeschlossen ist), er bleibt immer auf "FALSE".
Nach dem VI "VISA Configure Serial Port" und auch noch nach dem VI "VISA Write" wird Fehlercode 0 und als Fehlertext "no error" ausgegeben.
Wie kann das sein?
Erst nach dem VI "VISA Read" wird eine Fehlercode-Nummer ausgegeben, im Fehlertext steht aber nur "Warning" und dann eine Erklärung. Das ist mir unverständlich, denn schließlich kann bei falscher Angabe des COM-Ports bzw. wenn das Gerät gar nicht angeschlossen ist, doch gar nicht kommuniziert werden, was also eindeutig einen Fehler zurückgeben müßte.


Und noch was zur "Optik" (was aber für die Fehlerauswertung im Programm nicht so relevant ist): warum wird beim Fehlercluster im Fehlerfall ein grünes Häkchen ("grün" steht normalerweise ja für "alles ok") angezeigt statt eines Roten Kreuzes (rot = Warnfarbe, also "Achtung: Fehler")?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
28.02.2017, 15:44
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.467
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: COM-Port: error-cluster
Hallo Beam,

wenn du ein Problem mit DEINEM VI hast, dann solltest du DEIN VI hier anhängen…

Zitat:Und noch was zur "Optik" (was aber für die Fehlerauswertung im Programm nicht so relevant ist): warum wird beim Fehlercluster im Fehlerfall ein grünes Häkchen ("grün" steht normalerweise ja für "alles ok") angezeigt statt eines Roten Kreuzes (rot = Warnfarbe, also "Achtung: Fehler")?
Weil das Standard-FP-Elemente sind. Wenn du andere Farben haben willst, kannst du ja editieren…
(Außerdem sollte ein User diesen Errorcluster nie direkt zu Gesicht bekommen!)

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.02.2017, 16:17
Beitrag #3

Beam1 Offline
LVF-Grünschnabel
*


Beiträge: 21
Registriert seit: Jan 2017

2015
2017
DE


Deutschland
RE: COM-Port: error-cluster
(28.02.2017 15:44 )GerdW schrieb:  wenn du ein Problem mit DEINEM VI hast, dann solltest du DEIN VI hier anhängen…


Beam1 schrieb:zugrunde gelegt habe ich hier mal das LabView-eigene Beispiel "Simple Serial.vi"

War das nicht deutlich genug?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.02.2017, 17:05
Beitrag #4

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: COM-Port: error-cluster
Hast du dir einmal die Mühe gemacht, in das VI "VISA Configure Serial Port (Instr).vi" hineinzuschauen? Dort wird nur der Port konfiguriert und noch nicht geöffnet. Bei VISA geschieht das, wenn du es nicht explizit machst, implizit bei der ersten Read oder Write Operation. Deshalb gibt es bei "keiner Auswahl" wohl noch keinen Fehler sondern nur eine Warnung.

Übrigens, wenn gar kein Gerät angeschlossen ist, der COM-Port aber existiert, dann wirst du auf jeden Fall erst einen Fehler erhalten, wenn du auf eine Antwort auf irgendeine Anfrage wartest. Der Port exisitert ja, VISA-Open und VISA-Write werden keinen Fehler melden.

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.02.2017, 20:52
Beitrag #5

GerdW Offline
______________
LVF-Team

Beiträge: 17.467
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: COM-Port: error-cluster
Hallo Beam,

Zitat:zugrunde gelegt habe ich hier mal das LabView-eigene Beispiel "Simple Serial.vi"
War das nicht deutlich genug?
Wenn du etwas "zugrunde legst", gehe ich von "Anpassungen" durch dich aus. Und schon weiß ich nicht mehr, was du genau benutzt hast…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.03.2017, 08:07 (Dieser Beitrag wurde zuletzt bearbeitet: 01.03.2017 08:09 von GerdW.)
Beitrag #6

GerdW Offline
______________
LVF-Team

Beiträge: 17.467
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: COM-Port: error-cluster
Hallo Beam,

Zitat:Und noch was zur "Optik" (was aber für die Fehlerauswertung im Programm nicht so relevant ist): warum wird beim Fehlercluster im Fehlerfall ein grünes Häkchen ("grün" steht normalerweise ja für "alles ok") angezeigt statt eines Roten Kreuzes (rot = Warnfarbe, also "Achtung: Fehler")?
Nachtrag dazu:
Ich habe gerade mal ein neues VI erstellt und einen Errorcluster ins FP (aus der "Modern"-Palette) gepackt: grünes Häkchen bei "kein Fehler" und "rotes Kreuz" bei "Fehler!".
Was genau gefällt dir daran nicht?

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
01.03.2017, 10:06
Beitrag #7

Freddy Offline
Oldtimer
****


Beiträge: 729
Registriert seit: Aug 2008

2019, 2020, 2021
1996
DE

76275
Deutschland
RE: COM-Port: error-cluster
Hallo BEAM,

Noch ein paar Anmerkungen.

Der Fehler Cluster Zeigt bei einem Fehler wie GerdW schon schrieb immer rot für Fehler und grün für kein Fehler. Aber true im Fehler Cluster bedeutet ein Fehler gefunden. Das hat mich am Anfang auch immer etwas irritiert. Schließlich ist true immer "Gut" und false immer "Schlecht" aber es kommt dabei auf die Fragestellung an und der Fehler Cluster ist eben aktive (true) wenn ein Fehler auftritt.

Wenn Du eine COM Schnittstelle auswählst, die auf Deinem Rechner nicht vorhanden ist, wird immer ein Fehler schon bei der Initialisierung ausgegeben.

Wenn Du eine COM Schnittstelle verwendest, die auf dem Rechner vorhanden ist aber nicht angeschlossen. Kann man diese initialisieren(sie ist ja da). Man kann was schreiben, denn es werden bei dem Beispiel in der Initialisierung die Handshake - Steuerung abgeschaltet. Also schreibt das System in eine offene Leitung daher kein Fehler.

Die Bytes Abfrage ist bei "keinem Byt vorhanden" auch ok. Daher auch hier kein Fehler.

Beim lesen kommt eine Warnung weil nichts zu lesen ansteht.

Die Auswertung der "*IDN?" machen die VI für die serielle Schnittstelle nicht, dass musst Du selber machen.


Gruß
Freddy

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.03.2017, 10:31
Beitrag #8

GerdW Offline
______________
LVF-Team

Beiträge: 17.467
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: COM-Port: error-cluster
Hallo Freddy,

Zitat:Schließlich ist true immer "Gut" und false immer "Schlecht"
Das ist eine ziemlich problematische Aussage!
Wieso soll ein TRUE etwas "Gutes" bedeuten, wenn man damit Fehler signalisiert?

Anderes Beispiel: an Logik-ICs findest du gerne mal Pins, die mit /CS (ChipSelect) oder /EN (Enable) bezeichnet sind. Und der Slash davor markiert die invertierte Logik: das IC wird also bei einem FALSE selektiert oder enabled…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.03.2017, 11:01
Beitrag #9

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: COM-Port: error-cluster
Um die Verwirrung vollständig zu machen: Es gibt auch noch das Level "Warnung": Errorcode <> 0 & Error = FALSE.

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.03.2017, 10:29
Beitrag #10

Beam1 Offline
LVF-Grünschnabel
*


Beiträge: 21
Registriert seit: Jan 2017

2015
2017
DE


Deutschland
RE: COM-Port: error-cluster
Hallo, Freddy,

Endlich mal einer, der eine gut hilfreiche Antwort gibt. Danke.

(01.03.2017 10:06 )Freddy schrieb:  Der Fehler Cluster Zeigt bei einem Fehler wie GerdW schon schrieb immer rot für Fehler und grün für kein Fehler. Aber true im Fehler Cluster bedeutet ein Fehler gefunden. Das hat mich am Anfang auch immer etwas irritiert. Schließlich ist true immer "Gut" und false immer "Schlecht" aber es kommt dabei auf die Fragestellung an und der Fehler Cluster ist eben aktive (true) wenn ein Fehler auftritt.

Ja, sehr verwirrend. Bei einem Gerät, was ich am USB-Port hängen habe, ist es nämlich genau anders herum. Da zeigt der Fehler-Cluster beim Fehler ein rotes Kreuz und bei "no error" ein grünes Häkchen. Ich weiß aber nicht, ob das eine Eigenart der mitgeliefeten LabView-Treiber ist oder ob es bei USB-Geräten generell anders ist.

Zitat:Wenn Du eine COM Schnittstelle verwendest, die auf dem Rechner vorhanden ist aber nicht angeschlossen. Kann man diese initialisieren(sie ist ja da). Man kann was schreiben, denn es werden bei dem Beispiel in der Initialisierung die Handshake - Steuerung abgeschaltet. Also schreibt das System in eine offene Leitung daher kein Fehler.

Die Bytes Abfrage ist bei "keinem Byt vorhanden" auch ok. Daher auch hier kein Fehler.

Aha. Das war mir nicht bekannt.

Zitat:Beim lesen kommt eine Warnung weil nichts zu lesen ansteht.

Und warum nur eine Warnung und nicht ein Fehler? Ich finde das ziemlich unlogisch.

Diese Warnung läßt sich ja auch nicht auswerten (z.B. mit "Error-Code ungleich 0"), weil beim "VISA Read" immer eine Warnung ausgegen wird (mit zwei verschiedenen Geräten und unterschiedlichen Befehlen getestet), und zwar immer wegen "VISA: (Hex 0x3FFF0006) The number of bytes transferred is equal to the requested input count. More data might be available." Das stimmt aber nicht. Es werden alle Daten korrekt gelesen und im Response-Feld angezeigt. Ich habe testweise mal versucht, "bytes cout" per Konstante an das VI "VISA Read" zu übergeben und den Wert schrittweise zu erhöhen. Es werden aber keine weiteren Zeichen gelesen, im Gegenteil, es kommt dann ein Timeout. Also ist der Wert, den dieses "Bytes at Port" liefert, korrekt. Woher dieser Wert allerdings stammt, ist mir unklar. Ich kann nur erkennen, daß dieser je nach zuvor gesendeten Befehl dynamisch angepaßt wird.

Zitat:Die Auswertung der "*IDN?" machen die VI für die serielle Schnittstelle nicht, dass musst Du selber machen.

Ok, also ist die Fehlerleitung hier völlig witzlos und ich muß mir was anderes ausdenken. Es geht ja um den Anschluß eines ganz bestimmten Gerätes. Also könnte ich nach "*IDN?" fragen und wenn dann nicht der für das Gerät korrekte Antwortstring kommt, lasse ich eine individuelle Fehlermeldung ausgeben ohne die Fehlerleitung und einen Fehler-Cluster zu nutzen?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  in port.vi /out port.vi nicht unterstützt? Fischi84 5 9.358 24.01.2011 14:58
Letzter Beitrag: Kiesch

Gehe zu: