LabVIEWForum.de
Probleme mit Datenaufzeichnung OPC - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Probleme mit Datenaufzeichnung OPC (/Thread-Probleme-mit-Datenaufzeichnung-OPC)



Probleme mit Datenaufzeichnung OPC - msalcher - 09.07.2008 12:46

Hallo,
ja ich weis OPC ist schlecht, aber ich hab keine andere Vorgabe weil ich mit WINCC auch noch arbeiten muss ( Ich liebe den Satz: Wollen Sie Siemens oder gleich was ordentliches? )

Ich stehe vor dem Problem das die Abholung der Daten aus dem OPC funktioniert, aber sobald ich mir diese Werte in einem Array aufzeichnen möchte, wächst dieses Array in der Dimension und nicht in der Größe wie es sollte.

Dieses Verhalten war vorwiegend im XY-Graph ersichtlich, da sich hier die Farben vermehrtenSmile
Es geht hier darum die Werte welche vom OPC kommen sind Arrays von 100 Elementen, sobald vom OPC ein "ok" kommt hol ich mir diese 3 Arrays ab.
Nun möchte ich diese Werte in einem Array ablegen und wenn die nächsten Werte zum holen sind diese Werte an das vorherige anhängen.

Tja denkste irgendwas zerlegt ihn hier wunderschön.
Denn der XY-Graph wird irgendwie nur bunter und ausreiser hab ich auch immer wieder dabei.

Das Ziel soll es schlussendlich sein bis zu 20 Arrays aus dem OPC zu ziehen ( jedoch mit unterschiedlichen Abtastzeiten ).

Hier zeichne ich nur die 2 Arrays welche ich hereinbekomme momentan
[attachment=13377]

Hier der Aufzeichnungsversuch der 2 Arrays
[attachment=13378]

VI Version: 8.5
[attachment=13379]


Probleme mit Datenaufzeichnung OPC - IchSelbst - 09.07.2008 14:00

Das VI hab ich mir noch nicht angekuckt, so viel schon mal vorab:

' schrieb:Ich stehe vor dem Problem das die Abholung der Daten aus dem OPC funktioniert, aber sobald ich mir diese Werte in einem Array aufzeichnen möchte, wächst dieses Array in der Dimension und nicht in der Größe wie es sollte.
Bestimmst "addierst" du deine Daten mit dem Element "Array erstellen". Hier musst du (im Eigenschaftsmenu) möglicherweise angeben "Eingänge verknüpfen". Beachten musst du auch, ob du das Array vor der Addition bzw. danach etc. transponieren musst. Das Ziel sollte immer ein 2D-Array sein.

Zitat:Dieses Verhalten war vorwiegend im XY-Graph ersichtlich, da sich hier die Farben vermehrtenSmile
Typisches Verhalten, wenn das Transponieren fehlt - oder doppelt gemacht wurde.

Zitat:Denn der XY-Graph wird irgendwie nur bunter und ausreiser hab ich auch immer wieder dabei.
Kenn ich in folge der OPC-Verwendung nicht anders.


Probleme mit Datenaufzeichnung OPC - msalcher - 09.07.2008 14:14

Zitat:Das VI hab ich mir noch nicht angekuckt, so viel schon mal vorab:

Bestimmst "addierst" du deine Daten mit dem Element "Array erstellen". Hier musst du (im Eigenschaftsmenu) möglicherweise angeben "Eingänge verknüpfen". Beachten musst du auch, ob du das Array vor der Addition bzw. danach etc. transponieren musst. Das Ziel sollte immer ein 2D-Array sein.

Ich hole mir das Datenarray 1 und das Datenarray2 und das Datenarray Zeit.

Verknüpfe Datenarray1 mit Datenarray Zeit mit Bündeln zu einem Cluster
Verknüpfe Datenarray2 mit Dattenarray Zeit mit Bündeln zu einem Cluster

Hänge diese Beiden über ein Array Erstellen zu einem Array zusammen ( 1-D Array of Cluster [ Zeit 1-D Array of Numeric, MW 1-D Array of Numeric ] )
Und diese Hänge ich dann an mein 1D - Array mit In Array einfügen hinzu.

Zitat:Typisches Verhalten, wenn das Transponieren fehlt - oder doppelt gemacht wurde.

Kenn ich in folge der OPC-Verwendung nicht anders.

Bezüglich des Transponieren kann ich dir nicht folgen, da ich ja kein 2-D Array besitze.


Probleme mit Datenaufzeichnung OPC - IchSelbst - 09.07.2008 16:36

' schrieb:Nun möchte ich diese Werte in einem Array ablegen und wenn die nächsten Werte zum holen sind diese Werte an das vorherige anhängen.
Bei "Anhängen" hab ich impliziert, dass du die entsprechenden Daten in einem Schieberegister hältst.

Ich empfehle, die Daten in einem Schieberegister zu halten - und entsprechend auch dort die zusammengehörenden Daten anzuhängen. Das Zusammenführen auf einen Cluster/Anzeigearray geschieht dann mit den Daten im Schieberegister.


Probleme mit Datenaufzeichnung OPC - msalcher - 10.07.2008 07:19

Ich kann dir hier nicht ganz folgen.

Ich soll meine ganzen Messwerte in Schieberegister unterbringen und dann nach der while auswerten?
oder soll ich ein Array of clusters ( 2 elements ( 2 arrays ) ) als schieberegister pflegen?

hättest du da ein Beispiel wie sich das mit dem XY-Graph dann realisieren lässt,
ohne das der aussieht als wäre er auf DrogeSmile

gruß und Dank


Probleme mit Datenaufzeichnung OPC - msalcher - 10.07.2008 08:25

Ich hab mir jetzt mal was gebastelt, nur das Problem das ich nun habe ist das dieses Ding sehr viel Speicher wegfrisst.
Was ich unter viel verstehe:

Innerhalb von gut 20 Sec. ~2GB Ram

LV: 8.5
[attachment=13396]


Probleme mit Datenaufzeichnung OPC - IchSelbst - 10.07.2008 08:26

' schrieb:Ich soll meine ganzen Messwerte in Schieberegister unterbringen
Jawohl.
Und zwar nur die Messwerte, also die drei Stück 1D-Arrays mit den Doubledaten.

Im Prinzip kannst du alles so lassen wie du es im geposteten VI hast. Außer: Die drei Bedienelemente für die 1D-Dbl-Array ersetzt du durch ein SubVI. Dieses SubVI enthält eine While-Schleife, die immer nur genau einen Durchlauf macht. Die While-Schleife hat drei Schieberegister (SR), die am Eingang der While-Schleife nicht initialisiert sind. Diese 3 SR gehen auf Ausgänge des SubVIs, mit denen du dann genau so verfährst wie jetzt schon programmiert. In der While-Schleife befindet sich eine Case-Sequenz. Im True-Case werden die SR resettet, im False-Case werden Eingangsdaten (oder die Daten aus dem OPC) mit den entsprechenden Array addiert.

Mit einem Beispiel kann ich nicht dienen, ich hab hier kein LV. Suche mal hier oder in der LV-Hilfe nach "funktionale(s) SubVI".


Probleme mit Datenaufzeichnung OPC - IchSelbst - 10.07.2008 16:39

Im allgemeinen hab ich mir das genau so vorgestellt.

' schrieb:Innerhalb von gut 20 Sec. ~2GB Ram
So ist das mit Daten sammeln.

Das "in Array einfügen" in der Sequenz 1 ist überflüssig. Die gewünschten Daten stehen immer bereits im Graph.

Zuerst musst du mal ermitteln, wieviel Speicher du überhaupt bräuchtest: Samplerate mal Anzahl Kanäle mal Wertbreite => Anzahl benötige Bytes. Danach musst du entscheiden, ob es überhaupt funktionieren kann.

Dann solltest du nicht die Elemente "Array erstellen" verwenden, sondern "In Array ersetzen". Das spart erheblich an Speichermanagerzeit. Die Arrays sollten also zu Beginn der While-Schleife bereits die richtige Größe haben.