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 

First Call? Funktion vs wann gibt mein Case false aus?



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!

23.01.2014, 20:46 (Dieser Beitrag wurde zuletzt bearbeitet: 23.01.2014 20:50 von anne.)
Beitrag #11

anne Offline
LVF-Grünschnabel
*


Beiträge: 10
Registriert seit: Jan 2014

10.0.1
2013
DE


Deutschland
RE: First Call? Funktion vs wann gibt mein Case false aus?
Ehrlich gesagt war das noch ein ganz anderes VI. Wenn ich etwas im angehängten geändert hätte, hätte ich das hier geteilt.

Ich versuche das Problem und dessen Lösung aber noch kurz zu beschreiben:

Es gibt ein VI mit dem man manuell das Schreiben einer Messdatei im Hauptprogramm triggert. Dieses VI existiert allerdings auch in dem parallel laufenden Programm, in dem der Fehler auftrat. Es ging aber nicht um eine Schreibberechtigung, die war die ganze Zeit true, da der Ausgang vom Monit Switch VI (gelb markiert oben) nach dem ersten Durchlauf immer true ist. Es ging um ein anderes Sub-VI.
Das Problem war einfach nur, dass durch den Aufruf des Schreibens einer neuen Datei im Hauptprogramm die Referenz (?) geändert wurde, in meinem Programm wird das Schreiben abgebrochen und in dem anderen Programm werden Messwerte aus meinem teilweise eingeschoben.
Ich weiß nicht, ob das einem von euch Experten irgendwie weiter hilft. Ich kann auch nur die Lösung wiedergeben, wie ich es verstanden habe. Ob das so korrekt wiedergegeben ist, könnt ihr wohl besser interpretieren, als ich. Ich hatte nämlich Glück und habe denjenigen heute noch einmal antreffen können, der das VI vor ein paar Monaten abgeändert hat und der hat den Fehler Ruckzuck finden können.

In den VI-Einstellungen jenes VI in ablaufinvariante Ausführung geändert - und schon läuft's wie geschnitten Brot!

Ist das dann eigentlich oft der Fehler, wenn man mehrer Sub-Vis verwendet, aber die fehlerhaft laufen - obwohl sie richtig programmiert sind? Ich habe zB noch ein VI, das mir Daten über Zeit plottet und ich gebe über einen Sub-VI-Eingang an, wie lange es die darstellen soll. Das funktioniert aber auch nicht so super. Es zeigt mir immer nur 10s Plots an. Und wenn man dann mal an den Eingang eine Sonde legt, sieht man auch, dass der Eingang - obwohl 30s hardgecoded sind an diesem Sub-VI - 10s, 30s und 120s durchswitcht, obwohl es für alle drei Intervalle einen eigenen Plot gibt.
Meint ihr, das ist etwas ähnliches?
Auch hier würde ich jetzt das VI anhängen, ich habe da aber keinen Zugang mehr zu von zu Hause aus.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
24.01.2014, 08:34 (Dieser Beitrag wurde zuletzt bearbeitet: 24.01.2014 08:38 von GerdW.)
Beitrag #12

GerdW Offline
______________
LVF-Team

Beiträge: 17.480
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: First Call? Funktion vs wann gibt mein Case false aus?
Hallo Anne,

Zitat:In den VI-Einstellungen jenes VI in ablaufinvariante Ausführung geändert … Meint ihr, das ist etwas ähnliches?
Ablaufinvariant ("reentrant") bedeutet:
Dein VI besitzt einen internen Datenspeicher. Wenn ein solches VI nun mehrfach mit verschiedenen Datenquellen aufgerufen wird, dann vermischen sich die intern gespeicherten Daten mit den Daten der aufrufenden Instanz. Das ist fast immer hinderlich, wie du selbst festgestellt hast. Wenn man nun ein solches VI "reentrant" setzt, erzeugt LabVIEW intern für jeden Aufruf dieses VIs eine eigene Instanz (aka Kopie) mit ihrem eigenen Datenspeicher - so stören sich die verschiedenen VI-Aufrufe nicht mehr gegenseitig.
Was man auch wissen sollte: ein "Standard"-VI befindet sich nur einmal im Speicher, parallele Aufrufe dieses VIs werden nacheineinder ausgeführt (und können sich so im Extremfall gegenseitig blockieren)…

Zitat:Ist das dann eigentlich oft der Fehler, wenn man mehrer Sub-Vis verwendet, aber die fehlerhaft laufen
Das passiert nur, wenn man den Text oben nicht verinnerlicht hat - und das VI intern Daten speichert…
Ein VI auf "reentrant" zu setzen ist aber kein Allheilmittel, man muss schon wissen, was man da (und warum) tut!

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Case-Struktur: Angegebener Case nicht vorhanden braendy 10 6.925 02.02.2021 15:05
Letzter Beitrag: Lucki
  Case Struktur 2 Schleifendurchläufe verzögert True setzen aber sofort auf False bachatero18 4 5.779 07.11.2020 14:08
Letzter Beitrag: Martin.Henz
  Wann schließe ich (ActiveX, Excel) Referenzen? + wie Cluster to Array? TpunktN 9 9.982 28.01.2020 14:14
Letzter Beitrag: TpunktN
  Event Case Ignoriert Tastendruck wenn in Gegenwart eines anderen "Leeren" Event Case Ksanto 8 8.321 23.10.2017 09:08
Letzter Beitrag: Ksanto
  Case-Struktur führt True und False aus (Ereignisschleife) HIMI 11 9.183 24.08.2017 13:04
Letzter Beitrag: HIMI
  Wann setze ich Reference, Local Variable und Property Node ein galilio 6 9.692 18.03.2016 01:08
Letzter Beitrag: Trinitatis

Gehe zu: