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 

Schieberegister FiFo mit Inplace Stuktur realisieren



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!

21.02.2012, 15:27
Beitrag #1

GT123 Offline
LVF-Stammgast
***


Beiträge: 432
Registriert seit: Mar 2009

2018
2008
DE_EN


Schweiz
Schieberegister FiFo mit Inplace Stuktur realisieren
Hallo,

ich benötige mal professionelle Hilfe.
Ich lese Messdatenpaare von mehreren Geräten. Schicke diese Daten in ein SR und ein xy Graph liest die Daten aus dem SR. Da ich Speicherfehler bekam bin ich auf die Thematik mit Inplace gekommen. Nun möchte ich das SR mittels
Inplacestrukturen versehen damit keine Kopien durch die Arrayfunktionen angelegt werden. Also das SR muss ich beschränken auf z.B. 10 000 Werte .... das ganze soll nach dem Fifo Prinzip funktionieren. Ich kriege das nicht hin mit den Inplace Strukturen. Kann mir jemand mein Beispiel ergänzen?
Oder gibt es eine noch eine bessere Methoden die Daten zu halten fürs Diagramm?
Welche Arrayfunktionen legen eigentlich Kopien an, alle?
Kopien sind bei grossen Datenmengen tödlich.


Angehängte Datei(en)
10.0 .vi  SR FiFo.vi (Größe: 25,39 KB / Downloads: 266)

Grüsse
GT123
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
21.02.2012, 18:15
Beitrag #2

eb Offline
LVF-Lernwilliger
***


Beiträge: 292
Registriert seit: Mar 2008

2014
2008
EN

12xxx
Deutschland
RE: Schieberegister FiFo mit Inplace Stuktur realisieren
Hallo GT123,

Heute erst hab ich mich auch wieder mit diesem Thema beschäftigt. Dieser Post im Speziellen
http://www.labviewforum.de/Thread-Perfor...#pid111384
und der ganze Thread im Allgemeinen waren sehr aufschlussreich bzw. auffrischend.

Auch ich kann nur empfehlen solche Buffer mit den (named) Queues zu machen. Ist einfach zu bauen und das ganze Handling macht LV. Such mal nach einem Beispiel unter dem Stichwort "Lossy Enqueue".

Hoffe das hilft schonmal.


Gruß
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.02.2012, 18:26
Beitrag #3

GT123 Offline
LVF-Stammgast
***


Beiträge: 432
Registriert seit: Mar 2009

2018
2008
DE_EN


Schweiz
RE: Schieberegister FiFo mit Inplace Stuktur realisieren
Hi,
ja mit dem "Lossy Enqueue" hab ich was probiert. Frage mich nur wie ich auf geschriebene Daten reagieren mit Status Queue, denn ich möchte eigentlich nur aus der Queue lesen wenn sich ein Wert wieder ändert, dann aber nicht herausnehmen sondern eben nur alles in der Schlange lesen?


Angehängte Datei(en)
10.0 .vi  Kopie von ProducerConsumerData 1.vi (Größe: 16,44 KB / Downloads: 218)

Grüsse
GT123
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.02.2012, 18:34
Beitrag #4

eb Offline
LVF-Lernwilliger
***


Beiträge: 292
Registriert seit: Mar 2008

2014
2008
EN

12xxx
Deutschland
RE: Schieberegister FiFo mit Inplace Stuktur realisieren
Hallo,

dieser Beitrag hat noch Infos zum Thema Ringspeicher:
http://www.labviewforum.de/thread-4370.h...ngspeicher

Zu lossy Queue hier ein kleines Beispiel:
http://www.labviewforum.de/Thread-Ringpu...7#pid96797


Bis dann und schönen Feierabend
Gruß
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.02.2012, 14:50
Beitrag #5

Hook1986 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 149
Registriert seit: Jan 2012

2010
2011
DE_EN


Deutschland
RE: Schieberegister FiFo mit Inplace Stuktur realisieren
Hallo GT123,

Du möchtest also immer in einem Schleifendurchlauf dein "Messwertarray" um einen Eintrag vergrößern und in einem XY-Plotter anzeigen? Dann ist doch ein SR eigentlich genau das richtige. Geh einfach hin und füge ein leeres Array an den Eingang deiner While-Schleife (SR) und dann in jedem Durchlauf einfach die Messwerte hinten in das Array einfügen. Dabei helfen die Funktionen "Array Länge" und "In Array einfügen". Das kannst du, wenn gewünscht auch noch in eine Case-Struktur bauen und als Select für diese Struktur ein Vergleich der Werte mit den im Array vorhandenen Werten machen. Ist ein Wertpaar gleich, so führst du den Befehl eben nicht aus, da das Paar schon vorhanden ist. Ist keine Übereinstimmung da, dann hinein ins Array und ins SR.

MfG Carsten
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.03.2012, 10:41
Beitrag #6

GT123 Offline
LVF-Stammgast
***


Beiträge: 432
Registriert seit: Mar 2009

2018
2008
DE_EN


Schweiz
RE: Schieberegister FiFo mit Inplace Stuktur realisieren
Hallo Carsten,
Zitat:Du möchtest also immer in einem Schleifendurchlauf dein "Messwertarray" um einen Eintrag vergrößern und in einem XY-Plotter anzeigen? Dann ist doch ein SR eigentlich genau das richtige. Geh einfach hin und füge ein leeres Array an den Eingang deiner While-Schleife (SR) und dann in jedem Durchlauf einfach die Messwerte hinten in das Array einfügen. Dabei helfen die Funktionen "Array Länge" und "In Array einfügen".
Solch eine Lösung hatte ich schon programmiert. Ich dachte jedoch das die Arrayfunktion "insert" und "replace" Kopien anlegen (bin mir aber nicht sicher) u. wollte dies mit Inplace-Schleifen lösen. Ein leeres Array an den Eingang des SR, beim ersten schreiben in das leere Array mit "insert" u. wenn ein Wert schon im Array ist mit "replace" die Werte einfügen.

Zitat:Das kannst du, wenn gewünscht auch noch in eine Case-Struktur bauen und als Select für diese Struktur ein Vergleich der Werte mit den im Array vorhandenen Werten machen. Ist ein Wertpaar gleich, so führst du den Befehl eben nicht aus, da das Paar schon vorhanden ist. Ist keine Übereinstimmung da, dann hinein ins Array und ins SR.
Das ist für mich nicht passend da jedes Messpaar erfasst werden muss ob gleich o. ungleich spielt da keine Rolle.
Trotzdem danke für den Hinweis.

Welche Arrayfunktionen Kopien anlegen weiss ich immer noch nicht genau. Ausser das "Array Build" das legt laut Recherche
Kopien an.

Grüsse
GT123
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
05.03.2012, 09:09
Beitrag #7

eb Offline
LVF-Lernwilliger
***


Beiträge: 292
Registriert seit: Mar 2008

2014
2008
EN

12xxx
Deutschland
RE: Schieberegister FiFo mit Inplace Stuktur realisieren
Hallo,

zu dem Thema "Kopien von Arrays": vielleicht hilft dir die Visualisierung mittels Tools->Profile->ShowBufferAllocations.
Da sieht man wo "Kopien" angelegt werden.


Gruß
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.03.2012, 17:09
Beitrag #8

GT123 Offline
LVF-Stammgast
***


Beiträge: 432
Registriert seit: Mar 2009

2018
2008
DE_EN


Schweiz
RE: Schieberegister FiFo mit Inplace Stuktur realisieren
Hallo Erik,

danke für den Tipp mit Tools->Profile->ShowBufferAllocations
Aber da gibt es ja extrem viele Kopien, an fast jedem Eck zeigt es dies an (Error Cluster, Default Werte....)
Jetzt sollte man noch wissen welche Kopien kritisch sind u. welchen nicht.

Grüsse
GT123
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.03.2012, 09:14
Beitrag #9

eb Offline
LVF-Lernwilliger
***


Beiträge: 292
Registriert seit: Mar 2008

2014
2008
EN

12xxx
Deutschland
RE: Schieberegister FiFo mit Inplace Stuktur realisieren
HalloGT123,

pauschal (denke ich) kann man sagen: die Größe des allokierten Bereiches hat einen Einfluss und die Häufigkeit dieser Allokierungen.
D.h. also je größer die Array-Kopien sind und je mehr davon in Schleifen gemacht werden, um so kritischer sind dieser "Punkte" bei der Übersicht.

Grüße

ps.: Zeig doch nochmal dein Vi her.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.03.2012, 14:07
Beitrag #10

GT123 Offline
LVF-Stammgast
***


Beiträge: 432
Registriert seit: Mar 2009

2018
2008
DE_EN


Schweiz
RE: Schieberegister FiFo mit Inplace Stuktur realisieren
Hallo Erik,

anbei das Vi, nach meiner bisherigen Methode, einfach Daten von Queue ab ins SR.

Ganz oben in meiner ursprünglichen Frage habe ich auch ein Vi.
Bei dieser neueren Version versuchte ich die Daten eben mit Inplace zu handeln, sowie ein FiFo Prinzip einzubauen.
Aber auch bei den Inplace Strukturen gibt es Buffer Allocations?

Was hälst du von den VIs bezüglich Buffer Allocation?


Angehängte Datei(en)
10.0 .vi  Buffer Allocate Graph Dequeue p.vi (Größe: 30,4 KB / Downloads: 255)

Grüsse
GT123
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
  Schieberegister Eren44 7 8.568 29.06.2016 07:50
Letzter Beitrag: Freddy
  Schieberegister adressieren ekiam 4 5.308 04.04.2012 21:53
Letzter Beitrag: ekiam
  Wert aus Schieberegister löschen DOM88 14 16.342 21.12.2011 08:42
Letzter Beitrag: Y-P
  Signal-Offset realisieren Milb3 5 7.518 20.10.2011 12:36
Letzter Beitrag: Milb3
  Problem mit Schieberegister Cater 4 4.683 22.01.2009 11:24
Letzter Beitrag: Cater
  Balkenanzeige realisieren KonZ 1 3.710 27.04.2008 16:14
Letzter Beitrag: Achim

Gehe zu: