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 

cRIO langsame Zykluszeit bei größeren Arrays



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!

15.07.2008, 18:55 (Dieser Beitrag wurde zuletzt bearbeitet: 15.07.2008 18:56 von demo66.)
Beitrag #1

demo66 Offline
LVF-Grünschnabel
*


Beiträge: 18
Registriert seit: Sep 2007

8.5
2006
kA

8020
Oesterreich
cRIO langsame Zykluszeit bei größeren Arrays
Hallo!
Ich arbeite mit einem CompactRIO System, in dieses ich Datensätze einlese.
Mein Datensatz besteht aus einem Cluster mit verschiedenen Subcluster und Arrays. Diese Daten werden in einer While-Schleife eingelesen und über Schieberegister erhalten.
Mein Problem ist, dass bei größeren Arraywerten (über 10.000 Einträge), egal ob diese Einträge in einem oder mehreren Arrays gespeichert sind, die geforderte Schleifenzykluszeit nicht mehr eingehalten werden kann. Es ist egal ob ich mit den Werten arbeite oder nicht.

Könnt Ihr mir bitte weiterhelfen?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
15.07.2008, 21:09
Beitrag #2

cb Offline
LVF-SeniorMod


Beiträge: 1.731
Registriert seit: Feb 2006

2018SP1
2001
EN

40xxx
Deutschland
cRIO langsame Zykluszeit bei größeren Arrays
' schrieb:Hallo!
Ich arbeite mit einem CompactRIO System, in dieses ich Datensätze einlese.
Mein Datensatz besteht aus einem Cluster mit verschiedenen Subcluster und Arrays. Diese Daten werden in einer While-Schleife eingelesen und über Schieberegister erhalten.
Mein Problem ist, dass bei größeren Arraywerten (über 10.000 Einträge), egal ob diese Einträge in einem oder mehreren Arrays gespeichert sind, die geforderte Schleifenzykluszeit nicht mehr eingehalten werden kann. Es ist egal ob ich mit den Werten arbeite oder nicht.

Könnt Ihr mir bitte weiterhelfen?

kannst du mal ein VI oder einen Screenshot vom Block-Diagramm posten? Momentan kann ich mir noch nichts drunter vorstellen bzw. habe keine Vermutung was die Ursache sein könnte ...

http://www.rotabench.com - rotierende Prüfstände nach dem Baukasten-Prinzip
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.07.2008, 23:54
Beitrag #3

demo66 Offline
LVF-Grünschnabel
*


Beiträge: 18
Registriert seit: Sep 2007

8.5
2006
kA

8020
Oesterreich
cRIO langsame Zykluszeit bei größeren Arrays
' schrieb:kannst du mal ein VI oder einen Screenshot vom Block-Diagramm posten? Momentan kann ich mir noch nichts drunter vorstellen bzw. habe keine Vermutung was die Ursache sein könnte ...

Danke für Deine Hilfe.
Ich bündle sämtliche Cluster in einen Hauptcluster, dieser kann in der Schleife modifiziert werden. Der Hauptcluster durchläuft einige VIs, wie im Screenshot ersichtlich. In den einzelnen Cluster des Hauptclusters sind wieder Cluster, Arrays, und Werte.

Wird bei jedem Eintritt in ein SubVI ein neuer Speicherbereich angelegt und die Dateien vom Hauptcluster in diesen kopiert?
Wenn ja, dann ist das wahrscheinlich die Bremse. Ich möchte nämlich Daten von einem Array an die Ausgänge übergeben. In meinem Fall übergebe ich das Hauptcluster über mehrere hierarchisch angeordnete VIs.


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.07.2008, 07:30 (Dieser Beitrag wurde zuletzt bearbeitet: 16.07.2008 07:35 von cb.)
Beitrag #4

cb Offline
LVF-SeniorMod


Beiträge: 1.731
Registriert seit: Feb 2006

2018SP1
2001
EN

40xxx
Deutschland
cRIO langsame Zykluszeit bei größeren Arrays
' schrieb:Wird bei jedem Eintritt in ein SubVI ein neuer Speicherbereich angelegt und die Dateien vom Hauptcluster in diesen kopiert?
Wenn ja, dann ist das wahrscheinlich die Bremse. Ich möchte nämlich Daten von einem Array an die Ausgänge übergeben. In meinem Fall übergebe ich das Hauptcluster über mehrere hierarchisch angeordnete VIs.

naja ... in dem Screenshot kann man nicht wirklich viel erkennen ... ich seh ein Schieberegister ein unnamed Bundle und 2 Sub-VIs ... das ist nicht wirklich aussagekräftig


' schrieb:Wird bei jedem Eintritt in ein SubVI ein neuer Speicherbereich angelegt und die Dateien vom Hauptcluster in diesen kopiert?
Wenn ja, dann ist das wahrscheinlich die Bremse. Ich möchte nämlich Daten von einem Array an die Ausgänge übergeben. In meinem Fall übergebe ich das Hauptcluster über mehrere hierarchisch angeordnete VIs.

Nein, es wird nicht zwangsläufig ein neuer Speicherbereich angelegt, wenn du Daten in ein SubVI leitest. Ob eine Kopie des Datensatzes erzeugt wird oder nicht kannst du dir anzeigen lassen, in dem du auf Tools --> Profile --> Show Buffer Allocations gehst. Überall da wo ein Punkt erscheint wird bei der Übergabe eine Kopie des Datensatzes erzeugt.

Ansonsten: vielleicht hilft dir die "In Place Node" etwas, die ist ja neu in 8.5 und verhindert, dass beim Bearbeiten von Daten in Strukturen Kopien angelegt werden ....

PS: genaue Infos zu diesem Thema gibt's noch mal in der LV Hilfe unter dem Titel "VI Memory Usage" ...

http://www.rotabench.com - rotierende Prüfstände nach dem Baukasten-Prinzip
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Gehe zu: