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 

Ringspeicher



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!

11.10.2009, 21:47
Beitrag #1

Maximilian Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 54
Registriert seit: Dec 2008

8.5
2008
de

78224
Deutschland
Ringspeicher
Achtung Anfänger!!!

hallo zusammen,

ich hab wieder einmal ein Problem. Ich habe versucht, dass Ringspeicher VI aus diesem Forum für meine Zwecke zu modifizieren. Und zwar benötige ich zwei Messkanäle (oder auch mehrere) die im Ringspeicher aufgezeichnet werden. Die Messwerte sind Temperatur- und ein Geschwindigkeitssignal (dies ist aber denke ich nicht relevant)

Ich denke das VI würde bis zum Array Split auch funktionieren, aber eben dieser genannte "Split" des Ringspechers funktioniert wohl nur für ein 1 dimensionales Array. Muss ich die einzelnen Messsignale jeweils in einem eigenen Ringspeicher abspeichern??

Mein geändertes VI (LabVIEW 8.5) als Info. Ich hoffe ihr könnt mir weiterhlfen wie ich einen mehrkanaligen Ringspeicher erstellen kann.

Gruß max


Angehängte Datei(en)
Sonstige .vi  ringspeicher.vi (Größe: 27,98 KB / Downloads: 701)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.10.2009, 22:08
Beitrag #2

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.697
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Ringspeicher
' schrieb:Und zwar benötige ich zwei Messkanäle (oder auch mehrere) die im Ringspeicher aufgezeichnet werden. Die Messwerte sind Temperatur- und ein Geschwindigkeitssignal (dies ist aber denke ich nicht relevant)
Wenn du zwei Kanäle im Ringpuffer speichern willst, dann brauchst du auch nur 2*1000 allozieren, nicht 1000*1000!

Zitat:Ich denke das VI würde bis zum Array Split auch funktionieren,
Im prinzip wohl ja.
Allerdings kann ich immer nicht sofort entscheiden, ob die Daten auch richtig, also gemäß der Applikation, im 2D-Array liegen. Beachte: Zwei Spalten und 1000 Reihen oder 2 Reihen und 1000 Spalten?

Zitat:aber eben dieser genannte "Split" des Ringspechers funktioniert wohl nur für ein 1 dimensionales Array.
Jawohl. Geht eigentlich nur mit 1DArr.

Zitat:Muss ich die einzelnen Messsignale jeweils in einem eigenen Ringspeicher abspeichern??
Nicht zwangsläufig.
Deine bisherige Methode hat den Vorteil, dass die Anzahl der Kanäle beliebig sein kann. Dafür muss du vor dem Splitten das 2D-Array in 1D-Arrays aufteilen (Array indizieren).
Wenn du zwei 1D-Ringspeicher macht, ist die Erweiterung auf mehrere Kanäle kompliziert. Dafür ist das mit dem Splitten einfach.

Ich würde die Sache bei dem 2DArr belassen und dieses Array in 1DArrs teilen.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.10.2009, 22:18
Beitrag #3

Maximilian Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 54
Registriert seit: Dec 2008

8.5
2008
de

78224
Deutschland
Ringspeicher
Und wie teil ich dieses 2DArr in ein 1DArrs??
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.10.2009, 22:57
Beitrag #4

Maximilian Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 54
Registriert seit: Dec 2008

8.5
2008
de

78224
Deutschland
Ringspeicher
Ich sollte schon genau lesen was du geschrieben hast; "Array indizieren" ist das Zauberwort.

Nun hab ich aber das problem mit den Spalten und den Zeilen. Ich hab nun 2 Spalten und 1000 Zeilen. Ich sollte aber 1000 Spalten und 2 Zeilen haben und die Datentypen für den Split stimmen nicht überein

Kann mir in der Geschichte nochmals jemand weiterhelfen??

- Wie kann ich die Spalten und zeilen tauschen
- Wie bekomm ich die gleichen Datentypen
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.10.2009, 23:09 (Dieser Beitrag wurde zuletzt bearbeitet: 12.10.2009 07:49 von jg.)
Beitrag #5

Maximilian Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 54
Registriert seit: Dec 2008

8.5
2008
de

78224
Deutschland
Ringspeicher
Mein geändertes VI dazu

Lv85_img


Angehängte Datei(en)
Sonstige .vi  ringspeicher_2.vi (Größe: 33,31 KB / Downloads: 437)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.10.2009, 07:02
Beitrag #6

SeBa Offline
LVF-Guru
*****


Beiträge: 2.025
Registriert seit: Oct 2008

09SP1 & 10 FDS
2008
DE

65xxx
Deutschland
Ringspeicher
Moin,

ich lese hier immer von 2D Arrays und dann schau ich in dein VI und sehe, dass du ein 1D Array der Länge 20 mit dem Wert 2 befüllst und das dann "allocate memory" nennst.

Ist das so gewollt?

   

Gruß SeBa

Dieser Beitrag soll weder nützlich, informativ noch lesbar sein.

Er erhebt lediglich den Anspruch dort wo er ungenau ist, wenigstens eindeutig ungenau zu sein.
In Fällen größerer Abweichungen ist es immer der Leser, der sich geirrt hat.

Rette einen Baum!
Diesen Beitrag nur ausdrucken, wenn unbedingt nötig!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.10.2009, 08:28 (Dieser Beitrag wurde zuletzt bearbeitet: 12.10.2009 08:32 von Lucki.)
Beitrag #7

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Ringspeicher
Hier mal, gewissermassen außerhalb die laufenden Diskussion, eine einfachere Alternative zum Ringpuffer.
Dazu Vorbemerkung: Bei der Konzeption des Rinpuffers geht man ja davon aus, daß es viel zu aufwändig wäre, die gespeicherten Datenelemente im Puffer bei jedem neu hinzugkommenen Element um eine Speicherstelle zu verschieben. Deshalb läßt man die Daten stehen und arbeitet nur mit umlaufenden Zeigern für das als nächste zu schreibende und zu lesende Element.
Nun habe ich aber festgestellt, daß die Befürchtung gegenstandslos ist. Die LabVIEW-Funktion "In Array rotieren" ist unvorstellbar schnell, auch bei großen und vielkanaligen Datenmengen. Weiß nicht, wie die das zaubern, im Endergebnis zählt aber nur die Tatsache. Und von daher bietet sich ein vereinfachtes, auch für Anfänger ganz leicht verständliches Bufferkonzept ohne Ringzeiger-Arithmetik an, wobei auch mehrere Kanäle überhaupt keine Hürde sind.
Hier das Beispiel, welches ich so ähnlich auch schon mal gepostet haben muß.
   
Lv86_img
Sonstige .vi  Ringpuffer.vi (Größe: 12,8 KB / Downloads: 461)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.10.2009, 08:43 (Dieser Beitrag wurde zuletzt bearbeitet: 12.10.2009 08:44 von Lucki.)
Beitrag #8

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Ringspeicher
' schrieb:Ich denke das VI würde bis zum Array Split auch funktionieren, aber eben dieser genannte "Split" des Ringspeichers funktioniert wohl nur für ein 1 dimensionales Array. Muss ich die einzelnen Messsignale jeweils in einem eigenen Ringspeicher abspeichern??
Falls Du aber diesen Ringspeicher beibehalten und für mehrere Kanäle modifizieren möchtest, hier der Tip:
Auch bei mehreren Kanälen sollte das 1 D-Array beibehalten werden.
Wie soll das bei mehreren Kanälen funktionieren?
Mit dieser Datenstruktur: 1D-Array of Clusters. Jedes Clusterelemet enthält einen Datenpunkt aller Kanäle. (Das kann in dem oben mir oben geposteten VI abgeschaut werden.)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.10.2009, 09:19
Beitrag #9

dimitri84 Offline
Astronaut
*****


Beiträge: 1.496
Registriert seit: Aug 2009

2020 Developer Suite
2009
DE_EN

53562
Deutschland
Ringspeicher
Hallo Ludwig,

kann ich das "Ringpuffer.vi" einmal fürlv82haben? Sei bedankt.

„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.10.2009, 09:54
Beitrag #10

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Ringspeicher
' schrieb:kann ich das "Ringpuffer.vi" einmal fürlv82haben? Sei bedankt.

Sonstige .vi  Ringpuffer.vi (Größe: 16,66 KB / Downloads: 375)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Gehe zu: