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 

Daten zwischenspeichern???



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!

01.04.2014, 07:33
Beitrag #11

JoeCain Offline
LVF-Grünschnabel
*


Beiträge: 10
Registriert seit: Apr 2005

LV5 - LV2014
1999
EN

47441
Deutschland
RE: Daten zwischenspeichern???
Die sauberste Lösung ist mit Sicherheit an dieser Stelle ein Ringspeicher der mindestens 5 Sekunden Daten vorhält.
Bei Abschaltung wird dieser dann ausgelesen und ausgewertet.

Den Ringspeicher baut man im besten in Form einer Functional Global Variable (vielleicht auch als Old Style Global bekannt)
Beispiel und Erklärung: https://decibel.ni.com/content/docs/DOC-2143

Auch wenn das jetzt evtl. für die Anforderung zu weit geht ist das eine Grundtechnik der LabVIEW Programmierung die man sich aneignen sollte.

It's OK to have fun

Certified LabVIEW Architect
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
01.04.2014, 07:52
Beitrag #12

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Daten zwischenspeichern???
Hallo Jontef,

Zitat:Wenn du alles durch lokale Variablen übersichtlicher gestalten willst, solltest du dein Blockdiagramm in Sequenzen aufteilen.
Du willst also ein Design, welches dem DATAFLOW widerspricht, dadurch verschlimmbessern, dass du die parallele Datenverarbeitung auch noch durch massiven Einsatz von Sequenzen praktisch unterbindest?
Hmm

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.04.2014, 11:04
Beitrag #13

Jontef Offline
LVF-Grünschnabel
*


Beiträge: 26
Registriert seit: Jan 2011

2010
-
de


Deutschland
RE: Daten zwischenspeichern???
(01.04.2014 07:52 )GerdW schrieb:  Hallo Jontef,

Zitat:Wenn du alles durch lokale Variablen übersichtlicher gestalten willst, solltest du dein Blockdiagramm in Sequenzen aufteilen.
Du willst also ein Design, welches dem DATAFLOW widerspricht, dadurch verschlimmbessern, dass du die parallele Datenverarbeitung auch noch durch massiven Einsatz von Sequenzen praktisch unterbindest?
Hmm


Ist erstmal die einfachste Lösung aber nicht unbedingt die sauberste Lösung um Race Conditions zu vermeiden. Über Sequenzen wird aber klar ersichtlich, welcher Rechenschritt als erstes erfolgt und welche danach usw.
Über FGV's kann dies natürlich auch bewerkstelligt werden, aber hier hast du dann auch keine parallel Datenverarbeitung mehr.

(http://zone.ni.com/reference/en-XX/help/...nd_global/
Using one functional global variable instead of multiple local or global variables ensures that only one operation executes at a time, so you never perform conflicting operations or assign conflicting values to stored data.)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.04.2014, 08:10
Beitrag #14

JoeCain Offline
LVF-Grünschnabel
*


Beiträge: 10
Registriert seit: Apr 2005

LV5 - LV2014
1999
EN

47441
Deutschland
RE: Daten zwischenspeichern???
(01.04.2014 11:04 )Jontef schrieb:  Über FGV's kann dies natürlich auch bewerkstelligt werden, aber hier hast du dann auch keine parallel Datenverarbeitung mehr.

(http://zone.ni.com/reference/en-XX/help/...nd_global/
Using one functional global variable instead of multiple local or global variables ensures that only one operation executes at a time, so you never perform conflicting operations or assign conflicting values to stored data.)

Die parallele Datenverarbeitung ist glaube ich eine Ansichtssache.
Bei einer FGV's kann ich mir zumindest sicher sein das die Daten die ich lese im Moment auch die aktuellen Daten sind, bei einer lokalen Variable kann ich z.B. eine Speicherkopie lesen die nicht mehr aktuell ist weil beim Lesevorgang der Ursprung meiner Kopie überschrieben wird.
Und wenn ich eine zeitlich aufwendige Auswertung habe, dann hat die nichts in einer FGV zu suchen und ich darf die FGV nur als Datencontainer (Old Style Global) benutzen. Nach dem auslesen oder schreiben ist die FGV dann ja wieder frei für den anderen Prozess.

It's OK to have fun

Certified LabVIEW Architect
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.04.2014, 08:13
Beitrag #15

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Daten zwischenspeichern???
Hallo Joe,

ich will nicht mit dir über die Vorzüge von FGVs diskutieren, die dürften uns beiden bekannt sein…

Mein Kritikpunkt war, dass im VI des OP lokale Variablen missbraucht wurden, weil man anscheinend von einer textbasierten Programmierung die Verwendung von Variablen gewohnt ist. Hier geht es schlicht um DATAFLOW-Programmierung mit Drähten, die im gezeigten VI ganz klar missachtet wurde…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.04.2014, 10:36
Beitrag #16

JoeCain Offline
LVF-Grünschnabel
*


Beiträge: 10
Registriert seit: Apr 2005

LV5 - LV2014
1999
EN

47441
Deutschland
RE: Daten zwischenspeichern???
(02.04.2014 08:13 )GerdW schrieb:  Hallo Joe,

ich will nicht mit dir über die Vorzüge von FGVs diskutieren, die dürften uns beiden bekannt sein…

Mein Kritikpunkt war, dass im VI des OP lokale Variablen missbraucht wurden, weil man anscheinend von einer textbasierten Programmierung die Verwendung von Variablen gewohnt ist. Hier geht es schlicht um DATAFLOW-Programmierung mit Drähten, die im gezeigten VI ganz klar missachtet wurde…

Hallo Gerd,
das ging auch nicht an dich sondern an den Vorposter Smile

Aber zum eigentlichen Problem:
Zitat:Ich habe einen Modellaufbau
und selbst bei unterbrochener Leitung erfasst meine Messkarte über die benutzten Messwandler noch minimal kleine Werte.
So habe ich keine NaN was ich auswerten könne.

Wenn ich das so richtig verstehe ist das doch dann kein Problem der Auswertung, sondern ein Problem das du noch Daten erfasst nach der Abschaltung und diese noch auswerten lässt. In diesem Fall musst du verhindern das deine erfassten Daten in die Auswertung übergeben werden bzw. die Aufwertung darf nach der Abschaltung nicht mehr ausgeführt werden und muss dir eigentlich das letzte gültige Ergebnis von vor der Abschaltung liefern.

Einfachster Weg zum testen ob dann das gewünschte Ergebnis herauskommt:
Den gesamten Inhalt der While Schleife im Distanzschutz.vi in eine Case Structur.
- Im True Fall ist die Messung aktiv, dort werden die Berechnungen durchgeführt und alle Ergebnisse werden in "nicht Initialisierte" Shift-Register geschrieben.
- Im False Fall (Abschaltung durchgeführt) werden die Shift-Register einfach durchverdrahtet. Somit werden die ungültigen Messwerte nicht ausgewertet und die Ergebnisse der letzten gültigen Messwerte werden beibehalten.

Man musst jetzt von außen vorgeben wann deine Abschaltung aktiv ist bzw. wann die Messung noch gültig ist.
Da die Shift Register nicht initialisiert sind, stehen da beim ersten Durchlauf noch die alten Ergebnisse drin, was aber nur ein Problem wär wenn bei einem Neustart der Messung die Abschaltung direkt aktiv wäre, sollte aber eigentlich nicht auftreten. Das könnte man dann noch verhindern indem man den Case über ein Enum steuert welches 3 States beinhaltet (init = Initialisierung der Shiftregister, Messung = Berechnung der Daten, Abschaltung = Mach nichts und gebe alte Daten aus)

It's OK to have fun

Certified LabVIEW Architect
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Wert Zwischenspeichern in Subvi Labview User 6 4.997 03.08.2016 15:03
Letzter Beitrag: Lucki
  String zwischenspeichern floeteee 7 6.366 03.03.2014 11:02
Letzter Beitrag: Kiesch
  Datensatz mit der Queue-Funktion zwischenspeichern? LV-Fred 4 5.573 17.08.2011 07:31
Letzter Beitrag: LV-Fred
  ?Globale Variable zwischenspeichern? Kirsc 6 7.056 07.07.2011 08:46
Letzter Beitrag: THL
  Wert in Array zwischenspeichern wenn größer/ungleich 0 udcno@AL 10 10.905 18.11.2010 09:20
Letzter Beitrag: M Nussbaumer
  Werte zwischenspeichern für Auswertung VisionaryS 2 4.473 23.01.2009 12:48
Letzter Beitrag: VisionaryS

Gehe zu: