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!
ich bin bei Entwicklung meines Mess- und Analysetools wieder einmal auf ein Problem gestoßen und möchte gerne einen Expertenrat / Expertenhilfe einholen
Und zwar erstelle ich eine Datentabelle, in der mir L-Nr; Uhrzeit; Messwerte; Boolsche Werte usw. dargestellt werden. Von diesen Daten sollte bei einem Ereigniss (z.B. Anlagenstörung) eine Datei mit den entsprechenden Messdaten erstellt werden. Bei der nächsten Störung eine weitere und so weiter. Hintergrund dieser Anwendung ist, dass ich im Störungsfall eine Historie der Signalzustände erhalte um Rückschlüsse auf den Störungsursache zu erhalten.
Kann mir jemand einen Lösungsansatz oder ein Beispiel nennen wie ich meine Daten speichern und auch wieder in Form einer Datentabelle auslesen kann.
Danke für deinen Tipp, aber ich denke ich bin bei der Recherche nach den Spreadsheetfile auf eine besseres Lösung mit Write TDMS gestossen
Funktioniert zwar noch nicht so wie es sollte aber der Ansatz ist schon mal da.
Wie viele Daten willst du den aufzeichnen?
Wenn es nicht extrem viele sind würde ich den Weg über Spreadsheetfile nehmen.
Grund: TDMS ist mehr für riesige Datenmengen gedacht die man später in NI DIAdem auswerten will!
Außerdem ist das auslagern über spreadsheetfile wesentlich einfacher
06.11.2009, 09:52 (Dieser Beitrag wurde zuletzt bearbeitet: 06.11.2009 09:52 von gottfried.)
Ich mache das in der Fehlerbehandlung mit einem normalen Append an eine Text-Datei.
Datum, Uhrzeit, woher kommt der Fehler, Fehlernummer, Textbeschreibung
Alles mehr oder weniger in einer Zeiule - dann kann man später das Zeug mit EXCEL sortieren. Die Routinen stehen (glaube ich) hier unter Code Schnipsel
Zu deiner Frage wie viele Daten willst du aufzeichnen.
Dieses Tool soll ein universelles Werkzeug zur Messdatenaufzeichnung werden. d.h ich will ein VI stricken mit dem ich alle möglichen Kombinationen von Signalen aufzeichnen kann. Somit kann ich nicht sagen wie viele Daten ich speichern möchte. Ich nutze mehrere USB- Geräte von Advantech. Momentan kann ich 64 digital Eingänge, 24 Analogeingänge 8 Analogausgänge, Zähler usw. ansteuern. Die Anzahl der Datensätze kann der Bediener frei wählen und die Art der Aufzeichnung ist ebenfalls frei, d.h Ereignisabhängig oder kontinuierlich
Ich weiß nur eines. Die Aufzeichnung soll durch den Bediener ausgelöst werden können, bzw. wenn ein bestimmter Eingang (z.B. Störung) ansteht, soll der Ringspeicher in einer Datei abgelegt werden. Danach läuft die Aufzeichnung weiter und bei der nächsten Störung wir die nächste Datei abgelegt usw. Ebenso sollen die Daten wieder aus der Datei ausgelesen und angezeigt werden können und auch in Excel konvertiert werden können. Also eine Menge Möglichkeiten für die ich die praktikabelste Lösung suche
Kannst du mir ein Beispiel für einen solchen Append an eine Text-Datei nennen
Hier mal meine verbesserte Version. Ich kann schon mal mit einem Flankenmerker aufzeichnen. Dies ist nur ein ganz kleiner Teil meiner gesamten Anwendung. Ich denke wenn ich aufzeichnen kann dürfte das lesen auch einmal fuinktionieren, mit dem konvertieren in Excel... naja da schauen wir mal, aber jetzt bin ich soweit gekommen, da bekomm ich das mit der ein oder anderen Hilfe bzw. Tipp auch noch hin
Sollte jemand grobe Performance Fehler sehen oder ein Tipp haben für eine bessere Lösung wäre ich für jeden Tipp dankbar.
So ich habe nun mein auslesen der Datei ins Programm mit aufgenommen
Im VI sind drei Register:
1. Ein Diagramm
2. Die momentan aktuelle Datentabelle mit dem Anwahl Störung für das aufzeichnen der Daten in eine TDMS Datei
3. Das Registerblatt für die Datendarstellung meiner Tabelle. Die Daten auf diesem Blatt sollten gleich aussehen wie die auf dem Registerblatt 2
Und nun mein Problem. DIE DATEN SEHEN NICHT GLEICH AUS!!!!!
Irgend wo muss ich vermutlich noch eine Schleife setzten. Aber wie und wo. Gibt es jemanden in diesem Universum der mir weiterhelfen kann. Sollte jemand noch grobe Performance Fehler erkennen, würde ich mich auch hier über einen Tipp freuen
Ich würde mich über einen Tipp sehr, sehr, sehr freuen
ich hab mit TDMS speichern noch nicht gearbeitet. Ich benutz immer das Express-vi "Daten speichern". Ich kanns auch nicht ganz nachvollziehen, weil das vi bei mir unerklärliche Fehler hat. Aber was mir auffällt, Du speicherst einen transportierten 2D Array und willst ein 1D Array auslesen?
du schreibst die Daten nach der ersten For-Schleife in die TDMS Datei, beim Auslesen gehts genau rückwärts... du liest aber die Daten aus und schickst die nochmal durch die erste For-Schleife. Das ist Humbug.
-->
Ansonsten weiß ich nicht ob's bei dir überhaupt funktioniert hat, da deine Datei beim Lesen der TDMS Kanäle Fehler in der Verbindung zeigt... hab das für dich korrigiert, siehe 2. Bild.
--> TDMS Lesen arbeitet mit 1D Arrays aus WasAuchImmer, du hattest lediglich jeweils ein WasAuchImmer angeschlossen.
EDIT:
Vergessen zu erwähnen, dass du dir die Hilfe zu TDMS Lesen auch mal anschauen solltest... insbesondere den Part, bei dem ees um offengelassene Kanalnamen geht und was das VI dann ausgibt. (Bild 2. ... keine Lust ein Neues zu machen, nach dem Lesen der Hilfe weißt du was ich meine)
Ansonsten unschön sind die kleinen roten Punkte, wenn LV für dich eine Typumwandlung macht.
Außerdem ist die Erste Zeile immer deine Konstante mit Werten Null und dem Datum von 1904... das würd ich nicht so stehen lassen, im Zweifelsfall irritiert es den Nutzer weil die Messung dann ja schon ein paar Jahre lang läuft.
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!
Danke nochmals für eure Tipps. Ihr habt mir sehr weitergeholfen, aber ich bin noch nicht ganz am Ziel!!
Das transponieren hab ich eigentlich nur aus dem Grund gemacht, damit ich im TDMS -Dateimonitor überprüfen konnte ob die Daten auch aufgezeichnet wurden.
Zu deinem Vorschlag Express VI, von diesen VI halt ich eigentlich nicht sehr viel (obwohl es für meine Kenntnisse wahrscheinlich das beste wäre sie zu nutzen) da sie schlecht auf meine Anwendungen zu verwenden sind und ich in vielen Beiträgen immer wieder lese diese VI nicht zu benutzen
SeBa deine Tipps konnte ich sehr zum Vorteil meiner Anwendung umsetzen. Du hast mir in deinem Beitrag doch auch klar gemacht, dass meine Kenntnisse doch recht dürftig sind und ich ein "paar" Grundlegende Details noch nicht recht verstanden habe (höflich ausgedrückt). Aber ich werde daran arbeiten und hoffe vielleicht auch mal irgend jemanden in diesem Forum einen Tipp zu geben, der auch was taugt!!!
Ich habe in meinem VI das transponieren des 2D Arrays entfernt und deine weiteren Tipps mit den Kanalnamen befolgt. ich habe sicher auch schon hundertfach die LV Hilfe verwendet aber trotzdem immer noch etwas Hilflos was meine weitere Lösung betrifft.
Die Auswertung der Aufzeichnung funktioniert mit deiner Hilfe schon mal, aber es werden immer nur die ersten 3 Zeilen angezeigt... wieso nur die 3??
Dein Kommentar mit den Typumwandlungen und den rot Punkten ist mir auch noch nicht ganz klar
Wenn mir nochmals jemand weiterhelfen kann, wär ich happy (ich denke das wird nicht das letzte mal sein wo ihr von mir hört, bitte nicht als drohung auffassen)