LabVIEWForum.de
Shared Variable wird Null - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenkommunikation (/Forum-Datenkommunikation)
+---- Thema: Shared Variable wird Null (/Thread-Shared-Variable-wird-Null)

Seiten: 1 2


Shared Variable wird Null - jacko91 - 30.04.2015 09:29

Servus,

ich benutze ein Myrio mit LV2014. Ich habe das Problem, das zwei Shared Variable auf Null springen sobald das System gestartet wird. Ich habe ein VI auf dem Rechner laufen und VIs auf dem RT Target. Nachdem beide VIs gestartet sind, werden die Shared Variables für gefühlt 1 Sekunde mit den richtigen Werten gesendet. Danach springen sie auf Null was zum Abbruch des Systems führt. Hat jemand ähnliche Erfahrungen gemacht?

Vielen Dank

Gruß
Jacko91


RE: Shared Variable wird Null - jg - 30.04.2015 09:38

Ich bezweifle, dass das einfach so passiert, ich nehme eher an, dass das entweder an deinem Programm oder deiner Konfiguration der Shared Variablen liegt. Aber leider ist meine Glaskugel kaputt Glas2.
Du solltest uns weitere Einblicke liefern, z.B. Sourcecode...

Gruß, Jens


RE: Shared Variable wird Null - AndiLVT - 18.01.2016 11:54

Bin grade neu hier im Forum, weil ich ein ähnliches Problem habe.

Auch bei mir wird der Wert einer Shared Variable (genauer Network Shared Variable) null - genauer, nicht der Wert der Variablen wird null, sondern der zurückgegebene Wert durch die Shared Variable Node. Nach ellenlanger Fehlersuche fiel mir auf, dass das immer dann passiert, wenn ein Fehler an der "Error In" Connection anliegt. Konkret handelte es sich um eine nicht zustande gekommene COM-Verbindung, bzw. eine Datei die nicht zum schreiben geöffnet werden konnte. Alles Dinge die mit der Variable eigentlich nichts zu tun haben. Ein kappen der Error-Verbindung behebt das Problem sofort.

Ich nutze die Error-Verbindung aber um den Datenfluss zu steuern - zumindest hab ich gelesen, dass man das bei der SVE machen sollte um parallele Zugriffe zu vermeiden. Ist das ein gewolltes Verhalten der SVE oder ein Bug? Ich kann mir nicht vorstellen warum dieses Verhalten sinn machen sollte, da ja nachgeschaltete Prozesse so ja nicht mehr funktionieren können ohne nach jedem Error-Out evt. Fehler abzufangen....


RE: Shared Variable wird Null - wladimir s - 18.01.2016 12:18

Es ist das normale Verhalten. Wenn ein Fehler anliegt, dann wird der Knoten nicht ausgeführt und liefert nur Standardwerte zurück.

Wenn du weißt wo dein Fehler auftreten kann, dann kannst du ihn behandeln, bevor die Fehlerschnur in Shared Variable Node geht.


RE: Shared Variable wird Null - IchSelbst - 18.01.2016 12:28

(18.01.2016 11:54 )AndiLVT schrieb:  Ich nutze die Error-Verbindung aber um den Datenfluss zu steuern
Solche Sachen mach ich auch (Error-Cluster als Sequenzierhilfe verwenden) ...

Zitat:zumindest hab ich gelesen, dass man das bei der SVE machen sollte um parallele Zugriffe zu vermeiden.
Sequenzieren als solches soll man, das bedeutet aber nicht zwangsläufig, den Error-Cluser verwenden zu sollen.

Zitat:Ist das ein gewolltes Verhalten (...) oder ein Bug? Ich kann mir nicht vorstellen warum dieses Verhalten sinn machen sollte,
Das ist kein Bug: Der Knoten geht davon aus, dass er sich möglicherweise nicht richtig ausführen kann, wenn ein Fehler anliegt. Demzufolge wird er sich selbst im Standardfall nicht ausführen. Bei manchen Knoten kann am einstellen "Eingangsfehler ignorieren".

Zitat:da ja nachgeschaltete Prozesse so ja nicht mehr funktionieren können ohne nach jedem Error-Out evt. Fehler abzufangen
Genau das musst du aber machen! Dafür ist der Fehlercluster ja da: Nach jeder Operation müsste normalerweise gefragt werden, ob die Operation OK war ...


RE: Shared Variable wird Null - AndiLVT - 18.01.2016 17:18

Danke für die schnellen Antworten und die Erklärung.

hmm, dann wird ein Programm mit SVE ja schnell sehr umfangreich, wenn ich nach jeder einzelnen Operation eventuelle Fehler abfangen muss...
Naja, werd ich halt nach den Operationen mit evt. Fehlermöglichkeit ein Error-Handling einbauen - sind eigentlich nur zwei, wo das auftreten könnte - das geht noch Wink . Finde es jedenfalls deutlich problematischer einfach einen Standardwert zurückzuliefern, das macht imo unter Umständen mehr kaputt, als der eigentliche Fehler... zumindest bei einfachen Variablenzugriffen muss ich doch davon ausgehen können, dass mir der Wert auch geliefert wird Blink

Wie würde man denn die Datenflusssteuerung bei Shared Variables machen, ohne auf die Error-Verbindung zurück zu greifen?
Hab jetzt mein ganzes Program auf diese Weise sequenziert, weil ich annahm, dass ein Fehler einfach bis zur Fehlerbehandlung durchgeschleift wird. Das ist aber offenbar ja nicht der Fall.


RE: Shared Variable wird Null - jg - 18.01.2016 17:34

Workaround:
[attachment=55093]
Gruß, Jens


RE: Shared Variable wird Null - macmarvin - 19.01.2016 12:46

(18.01.2016 12:28 )IchSelbst schrieb:  ...Der Knoten geht davon aus, dass er sich möglicherweise nicht richtig ausführen kann, wenn ein Fehler anliegt. Demzufolge wird er sich selbst im Standardfall nicht ausführen. Bei manchen Knoten kann am einstellen "Eingangsfehler ignorieren".

Bei welchen Knoten gibt es denn diese Option?


RE: Shared Variable wird Null - IchSelbst - 19.01.2016 19:13

(19.01.2016 12:46 )macmarvin schrieb:  Bei welchen Knoten gibt es denn diese Option?
Siehe Kontextmenü von Eigenschaftsknoten von FP-Elementen "Fehler im Knoten ignorieren".


RE: Shared Variable wird Null - macmarvin - 19.01.2016 20:01

(19.01.2016 19:13 )IchSelbst schrieb:  Siehe Kontextmenü von Eigenschaftsknoten von FP-Elementen "Fehler im Knoten ignorieren".

Vorsicht, diese Option bezieht sich auf auftretende Fehler innerhalb des Eigenschaftsknotens! Bei einem anliegenden Fehler wird keine Funktion des Knotens ausgeführt.
[attachment=55106][attachment=55107]