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 

Dieses Thema hat akzeptierte Lösungen:

sporadisches Fehlverhalten von Variant-Elementen



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!

31.01.2017, 08:56
Beitrag #1

Odie Offline
LVF-Grünschnabel
*


Beiträge: 29
Registriert seit: Jul 2008

2015
2007
DE

86391
Deutschland
sporadisches Fehlverhalten von Variant-Elementen
Hallo zusammen,

ich hänge seit einiger Zeit an einem Problem mit dem Variant-Datentyp und mir gehen langsam die Ideen aus.
Eigentlich ist es eine simple Aufgabe: Ich habe ein Sub-VI in das ich ca. 10 verschiedene Datentypen (Strings, Cluster, Arrays) übergeben muss.
Dazu habe ich einen Eingang als Variant erzeugt, an den ich die verschiedenen Datentypen anschließen kann. Ich habe mir die verschiedenen Datentypen durchnummeriert, damit ich diese dann im Sub-VI in den entsprechenden Datentyp zurückwandeln kann. Das funktioniert auch soweit richtig.

Jetzt das Problem:
Von Zeit zu Zeit kommt es vor, dass das Variant-Eingangselement im SubVI nicht die Daten übernimmt, mit denen es gerade gestartet wurde. Es werden dann die Daten vom vorherigen Aufruf (ca. 5 Sekunden vorher) an das SubVI übergeben. Ca. 1 von 500 Aufrufen des SubVIs schlägt fehl mit diesem Verhalten und mein Programm bricht ab, da logischerweise die Datentypen nicht zusammenpassen. Soweit ich es überblicken konnte, sind die anderen Eingangselemente nicht betroffen, nur das Variant-Element. Das SubVI wird niemals parallel aufgerufen sondern immer hintereinander. Der Fehler hat sich verschlimmert, seit wir von Labview 8.2 auf Labview2015 umgestiegen sind. Mit 8.2 kam der Fehler vielleicht zweimal pro Woche vor, was noch akzeptabel war. Mit Labview2015 kommt der Fehler aber mehrmals täglich.

Hat irgendjemand eine Idee an was das liegen könnte?
Anbei noch ein Screenshoot von den Aufrufen des SubVIs und der internen Umwandlung.
   

Viele Grüße

Dieter
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
31.01.2017, 09:21
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.427
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: sporadisches Fehlverhalten von Variant-Elementen
Hallo Dieter,

Zitat:Ich habe mir die verschiedenen Datentypen durchnummeriert, damit ich diese dann im Sub-VI in den entsprechenden Datentyp zurückwandeln kann. Das funktioniert auch soweit richtig.
Wo/Wie erfährt dein subVI, welchen Datentyp es da gerade bekommt?

Zitat:mein Programm bricht ab, da logischerweise die Datentypen nicht zusammenpassen.
Das hört sich nach einem nicht besonders gut programmierten Errorhandling an… Big Grin

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
31.01.2017, 09:40
Beitrag #3

Odie Offline
LVF-Grünschnabel
*


Beiträge: 29
Registriert seit: Jul 2008

2015
2007
DE

86391
Deutschland
RE: sporadisches Fehlverhalten von Variant-Elementen
Hallo Gerd,

das SubVI verwende ich in einem Sequenzer, bei dem ich über eine INI-Datei die Sequenzen zum Programmstart lade. Durch die INI ist damit definiert, in welcher Reihenfolge welcher Datentyp der Reihe nach kommt. Das wird dem SubVI unter anderem über den oberen linken Anschluß (Cluster) übergeben.
D.h. es gibt während des Programmlaufs keine Änderungen am Sequenzablauf. Es funktioniert ja auch 10, 20, 50, 100 Mal und dann kommt auf einmal der Fehler.

Das Errorhandling ist nicht das Problem. Die übergebenen Daten sind einfach verloren, d.h. der User muss zwingend das Programm neu starten, damit die Daten korrekt übergeben werden. Das ist halt ärgerlich. Den Fehler hab ich schon abgefangen, jedoch kann man nicht den Neustart vermeiden, um den Fehler zu korrigieren.

Viele Grüße

Dieter
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
31.01.2017, 09:50
Beitrag #4

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: sporadisches Fehlverhalten von Variant-Elementen
Was sagt denn der NI-Support dazu?

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
31.01.2017, 09:57
Beitrag #5

GerdW Offline
______________
LVF-Team

Beiträge: 17.427
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: sporadisches Fehlverhalten von Variant-Elementen
Hallo Dieter,

bei manchen "komischen" Datenproblemen hat sich das Einstreuen der AlwaysCopy-Funktion als hilfreich gezeigt.
Kannst du das mal ausprobieren?

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
31.01.2017, 10:01 (Dieser Beitrag wurde zuletzt bearbeitet: 31.01.2017 10:08 von Odie.)
Beitrag #6

Odie Offline
LVF-Grünschnabel
*


Beiträge: 29
Registriert seit: Jul 2008

2015
2007
DE

86391
Deutschland
RE: sporadisches Fehlverhalten von Variant-Elementen
Hallo Jens,

den NI Support werde ich dann wohl bemühen müssen.
Ich dachte ich versuch es zuerst mal hier. Mit euch hab ich bessere Erfahrungen gemacht Top1, als mit dem NI Support.

Gruß

Dieter
Hallo Gerd,

danke für deine Idee. Werde ich gleich in das Programm mit aufnehmen.
Ich werde das Element mal vor jeden Aufruf des SubVIs setzen und den Variant da durchführen.

Erste Ergebnisse erwarte ich in 2 - 3 Tagen.

Bis dahin

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

GerdW Offline
______________
LVF-Team

Beiträge: 17.427
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: sporadisches Fehlverhalten von Variant-Elementen
Hallo Dieter,

Zitat:Ich werde das Element mal vor jeden Aufruf des SubVIs setzen und den Variant da durchführen.
Ich würde das AlwaysCopy eher vor dem ToVariant und evtl. auch nochmal nach dem ToVariant platzieren…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
31.01.2017, 11:16
Beitrag #8

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: sporadisches Fehlverhalten von Variant-Elementen
(31.01.2017 10:01 )Odie schrieb:  Hallo Jens,

den NI Support werde ich dann wohl bemühen müssen.
Ich dachte ich versuch es zuerst mal hier. Mit euch hab ich bessere Erfahrungen gemacht Top1, als mit dem NI Support.

Gruß

Dieter

Danke für die Blumen. Aber so wie du es beschreibst liegt da eher ein Problem bei LabVIEW vor, und das muss an den NI Support!

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.03.2017, 07:07
Beitrag #9

Odie Offline
LVF-Grünschnabel
*


Beiträge: 29
Registriert seit: Jul 2008

2015
2007
DE

86391
Deutschland
RE: sporadisches Fehlverhalten von Variant-Elementen

Akzeptierte Lösung

Hallo zusammen,

nach langer Suche zusammen mit NI haben wir die Ursache für das merkwürdige Verhalten gefunden.
Das alles hat nichts mit den Variant-Elementen zu tun.

Das Main-VI starte ich dynamisch und verwende die "Elementwert festlegen" Methode, um während des Programmablaufs das Verhalten zu beeinflussen.
Dazu setze ich zwei Elementwerte hintereinander mit einem neuen Wert. Mein Programm ist so ausgelegt, dass bei der Wertänderung des zweiten Elements der Ablauf gestartet wird.

Laut NI kann es aber möglich sein, dass das zweite Element seinen Wert vor dem ersten Element ändert, obwohl zuerst das erste und dann dann das zweite Element gesetzt wird.
Die Lösung ist denkbar einfach: Nach dem Setzen des ersten Elements lese ich das Element solange aus, bis der Wert mit dem gesetzten übereinstimmt und erst dann setze ich das zweite Element.

   

Viele Grüße

Dieter
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.03.2017, 07:17
Beitrag #10

GerdW Offline
______________
LVF-Team

Beiträge: 17.427
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: sporadisches Fehlverhalten von Variant-Elementen
Hallo Odie,

danke für die Rückmeldung!

Zitat:Das Main-VI starte ich dynamisch und verwende die "Elementwert festlegen" Methode, um während des Programmablaufs das Verhalten zu beeinflussen.
Dazu setze ich zwei Elementwerte hintereinander mit einem neuen Wert. Mein Programm ist so ausgelegt, dass bei der Wertänderung des zweiten Elements der Ablauf gestartet wird.
Und warum nimmst du dann keine UserEvents oder eine Queue, mit der du Kommandos an dein VI schickst?

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
  Variant Datentyp automatisch erkennen GT123 2 5.249 08.12.2011 11:32
Letzter Beitrag: GT123
  Task in Variant und zurück M@rRy 4 4.088 13.10.2011 10:27
Letzter Beitrag: rolfk

Gehe zu: