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:

Ringpuffer mit Zeiger



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!

13.09.2016, 19:34
Beitrag #11

GerdW Offline
______________
LVF-Team

Beiträge: 17.467
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Ringpuffer mit Zeiger
Hallo Max,

Zitat:sagen wir ich hebe ein Datenfeld A B C D und es findet bei x(WertA) statt. Es werden neue Samples eingetragen B C D und jedes mal wird das Array um -1 rotiert, der Ringbuffer-Index wird weitergezählt: x-1, x-2, x-3 Dann steht mein Index doch immer noch auf A so wie es sein sollte
Wird denn der Index A auch außerhalb deiner FGV immer mit angepasst?
Du schreibst zum Zeitpunkt A das Sample in die FGV, willst aber zum Zeitpunkt D das Event wieder auslesen. Wird dann beim Auslesen auf Wert A oder Wert D zugegriffen? Immerhin wurde das Array in der FGV ja mittlerweile um 3 Positionen weitergedreht…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
14.09.2016, 09:53
Beitrag #12

maxxillian Offline
LVF-Grünschnabel
*


Beiträge: 46
Registriert seit: Jul 2016

2015 Vision
2015
DE_EN



RE: Ringpuffer mit Zeiger
Hallo Geld

hab noch mal alles verändert sodass sich das Datenfeld nicht mehr bewegt und das Problem mit dem Index wegfällt!

Anbei auch mal ein Test.Vi damit ihr seht wie ich die Funktion Global verwende.
Beim Test wird mir immer nur der erste Wert (hochlaufend) angezeigt der Restpuffer ist NaN (Initialwert).
Benutze ich FG falsch?
Wenn ich den Puffer einzeln programmiere funktioniert alles gut. Das Datenfeld steht und wird beim erreichen der Puffergröße wieder von vorne mit Werten aufgefüllt.
Wenn ich allerdings versuche alles in die FG zu packen habe ich schwierigkeien (erste FG die ich programmiere)


Angehängte Datei(en)
14.0 .vi  FG.Puffer Dicke V1.1.vi (Größe: 20,71 KB / Downloads: 346)

14.0 .vi  Test.vi (Größe: 7,64 KB / Downloads: 362)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.09.2016, 10:18
Beitrag #13

GerdW Offline
______________
LVF-Team

Beiträge: 17.467
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Ringpuffer mit Zeiger

Akzeptierte Lösung

Hallo Max,

du hast beim "WriteIN" vergessen, eine Puffergröße anzugeben…
Ich persönlich würde diesen Punkt anders lösen: deine FGV kennt doch die aktuelle Puffergröße - wieso also hier auf einen Input zurückgreifen!?
Warum heißt der "Init"-State deiner FGV nicht genau so, sondern "Default"???

Schau dir mal das Attachment an…


Angehängte Datei(en)
14.0 .vi  FG.Puffer Dicke.vi (Größe: 23,68 KB / Downloads: 386)

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.09.2016, 12:54 (Dieser Beitrag wurde zuletzt bearbeitet: 14.09.2016 13:13 von maxxillian.)
Beitrag #14

maxxillian Offline
LVF-Grünschnabel
*


Beiträge: 46
Registriert seit: Jul 2016

2015 Vision
2015
DE_EN



RE: Ringpuffer mit Zeiger
Hallo Gerd,

deine Funktion ist super aber funktioniert das Speichern der Daten auch andersrum?

Ich habe das mit einem Vi. mal gemacht damit du weisst was ich mit "andersrum" meine.
Der Zweck ist dass ich mir direkt bei einem Ereigniss den Index merke und nur noch die zu lesende Feldlänge angeben muss.

Zitat:Warum heißt der "Init"-State deiner FGV nicht genau so, sondern "Default"???
Hast du völlig Recht wird geändert Big Grin




Edit:
Es ist überhaupt nicht nötig die Daten umzukehren.
Mein Gedankengang dazu war recht bescheuert, es scheint mein Kopf ist dank den Temperaturen von 30° langsam gar Big Grin

Vielen Dank für eure, (speziell deine) Hilfe (Gerd)!! Thanx


Angehängte Datei(en)
14.0 .vi  Ringpuffer reverse.vi (Größe: 9,06 KB / Downloads: 342)

14.0 .vi  Merker V1.0.vi (Größe: 12,26 KB / Downloads: 305)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.09.2016, 13:20
Beitrag #15

GerdW Offline
______________
LVF-Team

Beiträge: 17.467
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Ringpuffer mit Zeiger
Hallo max,

Zitat:Der Zweck ist dass ich mir direkt bei einem Ereigniss den Index merke und nur noch die zu lesende Feldlänge angeben muss.
Nur das dann beim Auslesen die Samples in der verkehrten Reihenfolge ausgegeben werden…

Deine VIs waren sehr kompliziert, ich habe sie mal vereinfacht…


Angehängte Datei(en)
14.0 .vi  Ringpuffer reverse.vi (Größe: 12,22 KB / Downloads: 343)

14.0 .vi  Merker V1.0.vi (Größe: 13,47 KB / Downloads: 366)

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.09.2016, 10:03 (Dieser Beitrag wurde zuletzt bearbeitet: 15.09.2016 10:48 von maxxillian.)
Beitrag #16

maxxillian Offline
LVF-Grünschnabel
*


Beiträge: 46
Registriert seit: Jul 2016

2015 Vision
2015
DE_EN



RE: Ringpuffer mit Zeiger
Hallo Gerd danke für die Verbesserung!

Ich habe Probleme den Default Case in "Init" umzubenennen.
Egal was ich schreibe es wird mit rot angezeigt und immer meckert er das ein case nicht verbunden ist oder ähnliches.


Ps. habe das Vi nochmal verbessert sodass es im Case "Read" nicht mehr zu einen Fehler kommt wenn
startindex+länge > Puffergröße ist


Edit: Sorry die Verbesserung ist noch eine alte Version die noch nicht funktioniert.
Lade gleich die funktionierende hoch 2hands


Angehängte Datei(en)
14.0 .vi  FG.Puffer Dicke V1.3.vi (Größe: 21,96 KB / Downloads: 317)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.09.2016, 10:41
Beitrag #17

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Ringpuffer mit Zeiger
(15.09.2016 10:03 )maxxillian schrieb:  Ich habe Probleme den Default Case in "Init" umzubenennen.
Egal was ich schreibe es wird mit rot angezeigt und immer meckert er das ein case nicht verbunden ist oder ähnliches.
Dann ändere mal dein (hoffentlich als Typdefinition angelegtes) Enum ab!!!

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
15.09.2016, 11:01
Beitrag #18

maxxillian Offline
LVF-Grünschnabel
*


Beiträge: 46
Registriert seit: Jul 2016

2015 Vision
2015
DE_EN



RE: Ringpuffer mit Zeiger
Hey Jens,

habe ich schon versucht,
gleiche Namen, 3 Fälle, alles 10 mal kontrolliert ob ich mich nicht verschieben hab Big Grin

ps. Im Anhang die Korrektur von
Zitat: habe das Vi nochmal verbessert sodass es im Case "Read" nicht mehr zu einen Fehler kommt wenn
startindex+länge > Puffergröße ist


Angehängte Datei(en)
14.0 .vi  FG.Puffer Dicke V1.4.vi (Größe: 21,75 KB / Downloads: 325)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.09.2016, 11:14
Beitrag #19

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Ringpuffer mit Zeiger
Du musst das Enum in der ctl-Datei (die du nie mit hochlädst) abändern:
   
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
15.09.2016, 11:30 (Dieser Beitrag wurde zuletzt bearbeitet: 15.09.2016 11:33 von maxxillian.)
Beitrag #20

maxxillian Offline
LVF-Grünschnabel
*


Beiträge: 46
Registriert seit: Jul 2016

2015 Vision
2015
DE_EN



RE: Ringpuffer mit Zeiger
Hallo Jens,

ich weiß aber es funktionier nicht oder muss ich auf was besonderes achten? Big Grin

Ich öffne immer die TypeDef und kann dann ja einfach Fälle hinzufügen, umbenennen oder löschen...


sry vergessen zu konvertieren
hier nochmal für 2014


Angehängte Datei(en)
15.0 .ctl  FKTglobal.ctl (Größe: 4,14 KB / Downloads: 314)

14.0 .ctl  FKTglobal.ctl (Größe: 3,67 KB / Downloads: 321)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Gehe zu: