30.04.2015, 09:29
Beitrag #1
|
jacko91
LVF-Neueinsteiger
Beiträge: 2
Registriert seit: Apr 2015
2014
-
DE_EN
|
Shared Variable wird Null
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
|
|
|
30.04.2015, 09:38
Beitrag #2
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
RE: Shared Variable wird Null
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 .
Du solltest uns weitere Einblicke liefern, z.B. Sourcecode...
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.
|
|
|
18.01.2016, 11:54
Beitrag #3
|
AndiLVT
LVF-Neueinsteiger
Beiträge: 4
Registriert seit: Jan 2016
2014
2011
EN
|
RE: Shared Variable wird Null
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....
|
|
|
18.01.2016, 12:18
Beitrag #4
|
wladimir s
LVF-Gelegenheitsschreiber
Beiträge: 79
Registriert seit: Mar 2015
2011, 2015
2010
DE
Deutschland
|
RE: Shared Variable wird Null
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.
|
|
|
18.01.2016, 12:28
Beitrag #5
|
IchSelbst
LVF-Guru
Beiträge: 3.700
Registriert seit: Feb 2005
11, 14, 15, 17, 18
-
DE
97437
Deutschland
|
RE: Shared Variable wird Null
(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 ...
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
|
|
|
18.01.2016, 17:18
Beitrag #6
|
AndiLVT
LVF-Neueinsteiger
Beiträge: 4
Registriert seit: Jan 2016
2014
2011
EN
|
RE: Shared Variable wird Null
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 . 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
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.
|
|
|
18.01.2016, 17:34
Beitrag #7
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
RE: Shared Variable wird Null
Workaround:
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.
|
|
|
19.01.2016, 12:46
Beitrag #8
|
|
|
19.01.2016, 19:13
Beitrag #9
|
|
|
| |