Hallo Leute.
Ich schlage mich immer noch als blutiger Anfänger mit meiner Diplomarbeit rum. Ich habe es aber schon geschafft verschiedene Signale zu erzeugen und mit dem CompactRIO die Daten wieder zu erfassen. Jetzt liegen mir die Daten paketweise pro Schleifendurchlauf vor. Ich habe die jeweilige Information über Delta-X usw.. Mit dem Signalverlaufsgraph läßt sich das Signal also einwandfrei darstellen.
Der Professor, von dem ich die Aufgabe bekam, meinte ich sollte gleichzeitig die Daten in Form einer Tabelle vorliegen haben. Jetzt taste ich meine Signal mit 100 kHz ab und soll die Messungen ca. 3 - 5 min laufen lassen.
Geht das überhaupt das ich so ne lange Tabelle mit einfüge? Gibt es eine Art wie ich alle meine Signaldaten (es sind ja 3 so weit ich weiß) in diese Tabellendarstellung einfließen lasse?
[attachment=31551:Signalda...ichern_2.JPG]
Wie in meinem Screenshot zu sehen ist ist es mir nicht gelungen. Selbst wenn es ginge war die Zeilenbegrenzung bei 999.
Gunni
Hallo Gunni,
ich hab mir mal den Screenshot angesehen.
Wenn Du aus Deinen Messwerten ein 2D-Array erzeugst, dann kannst Du dieses Array an einen Signalverlaufsgraphen anschließen und bekommst die Anzeige die Du haben möchtest.
Eine Tabelle so wie Du sie auf dem Screenshot verwendest, muß mit Strings beschrieben werden. Ändere das und die Messwerte stehen in der Tabelle.
Hab eben ein kleines Programm erstellt und kann z.B. 1500 Werte problemlos in einer Tabelle anzeigen.
Ich fühe diese Programm zur Info an.
Grüßle
Andreas
[
attachment=5176][
attachment=5177]
Guten Morgen.
Andreas danke erstmal für deine Antwort. Aber in meinem Beispiel weiß ich noch nicht so genau wie ich dann ein 2D-Array erzeugen soll.
Das man Messwerte in Excel-Tabellen schreiben kann habe ich schon gehört, auch das diese in der Größe begrenzt sind. Gibt es nicht auch die Möglichkeit Messdaten in eine Datenbank (wie Access) zu protokollieren. Diese sind doch meines Wissens nicht begrenzt.
Aus meinen C#-Kursen weiß ich noch dass wir Tabellen in der Anzeige hatten. Da die LabVIEW-Tabellen auf gewisse Längen begrenzt zu sind, kann man diese doch dann benutzen (ca. 20 Zeilen) um Ausschnitte aus der Datenbank an zu sehen.
Hat jemand schon mal Messwerte in eine Access-Datenbanken abgespeichert und ausgelesen? Ich könnte mal ein paar Anregungen gebrauchen, da ich nichts in der Beispielbibliothek gefunden habe.
Gunni
Gibt es denn keine Möglichkeit meine Messdaten, die auf jeden Fall den Rahmen einer einfachen Tabelle sprengen, trotzdem in einer solchen sichtbar zu machen? Bei einer Abtastung von 100 kS/s habe ich nach 5 Minuten Messung 30 Mio Messwerte. Das diese nicht in eine Tabelle passen weiß ich nun. Aber es muss doch so ne Art tabellarische Abfrage wie bei einer datenbank geben. Diese sollte einem dann nur eine bestimmte Anzahl von Werten anzeigen.
[attachment=31572:Tabelle_einbinden2.JPG]
Einfach so bekomme ich weder in meinem VI beim Datenprotokollieren parallele eine Tabelle eingebaut, noch bei diesem obigen Beispiel-VI zum auslesen der Werte.
Muss ich etwas zusätzliches dazwischen schieben?
Kann mir bitte jemand helfen?
Gunni
Hallo Gunni,
ich kenne Dein Programm nicht. So wie ich aus dem Screenshot heraus vermute bekommst Du Werte erfaßt oder berechnet, und die kannst Du in ein Array einfügen. Da eignet sich ein Schieberegister, welches als Array initialisiert ist und in welches Du mit jedem Programmdurchlauf neue Werte einfügen kannst.
Auf Deinem Screenshot versuchst Du die Daten zu einem Cluster zu bündeln. Das klappt leider nicht, da ein 2D-Array vom Graphen und der Tabelle erwartet wird. Ich hab mein Beispiel für Dich etwas abgewandelt.
Bei der Datenflut die bei Dir auftritt, sollten aber nicht alle Werte in einem Schieberegister gehalten werden.
Ich aus meiner Sicht würde die Werte in Blöcken in ein Datenfile wegspeichern und vielleicht den letzten Block in einer Tabelle anzeigen.
Ich hab noch nicht begriffen was Du mit den Messwerten in einer Tabelle anfangen möchtest. Reine Anzeige zur Information oder weitere Verarbeitung?
Hinsichtlich Daba weiß i2dx bescheid vielleicht kann er Dir noch nützliche Infos geben.
Grüße
Andreas
' schrieb:Hallo Gunni,
ich kenne Dein Programm nicht. So wie ich aus dem Screenshot heraus vermute bekommst Du Werte erfaßt oder berechnet, und die kannst Du in ein Array einfügen. Da eignet sich ein Schieberegister, welches als Array initialisiert ist und in welches Du mit jedem Programmdurchlauf neue Werte einfügen kannst.
Auf Deinem Screenshot versuchst Du die Daten zu einem Cluster zu bündeln. Das klappt leider nicht, da ein 2D-Array vom Graphen und der Tabelle erwartet wird. Ich hab mein Beispiel für Dich etwas abgewandelt.
Bei der Datenflut die bei Dir auftritt, sollten aber nicht alle Werte in einem Schieberegister gehalten werden.
Ich aus meiner Sicht würde die Werte in Blöcken in ein Datenfile wegspeichern und vielleicht den letzten Block in einer Tabelle anzeigen.
Ich hab noch nicht begriffen was Du mit den Messwerten in einer Tabelle anfangen möchtest. Reine Anzeige zur Information oder weitere Verarbeitung?
Hinsichtlich Daba weiß i2dx bescheid vielleicht kann er Dir noch nützliche Infos geben.
Grüße
Andreas
Hi.
Also in erster Linie brauche ich die Tabelle nur zur reinen Information über die Messwerte. Ein Graph bietet mir zwar nette Bilder, aber in so einer Tabelle kann ich genaue werte ablesen usw.. Die tabelle dachte ich könnte man dann benutzen um einfach gezielt an Stelle 2 min und 44 Sekunden zu springen und ab da mal die nächsten 100 Werte anschaulich zu machen.
Das Problem ist ja weiterhin das ich nicht Werte wie bei nem Array bekomme sondern die Daten im Protokoll in Form eines Clusters festgehalten werden, wo ja mehr Informationen drin sind. Einfach wieder aufschlüsseln so dass ich nur das Array benutzen kann habe ich nicht hin bekommen.
Gunni
Mahlzeit.
Gut ich habe i2dx kontaktiert und der hat mich auf das ADO-Toolkit aufmerksam gemacht. :rolleyes:Hiermit sei wohl der Datenbankzugriff möglich.
Ich hatte mal nen Kurs für Access besucht und erinnere mich an Anweisungen wie select, insert, update und delete um Datensätze anzuzeigen, zu ändern, einzufügen oder zu löschen.
Ich habe mir eine Access-Datenbank namens messdaten.mdb angelegt mit ner Tabelle messungen.
[attachment=31613:messdaten.zip]
Nach Start meines VIs läuft dieses eine Weile und zeigt mir dann folgenden Fehler "Exception occured in Microsoft OLE DB Provider for ODBC" (Code:-2147217900).
In der Datenbank ist auch noch kein Eintrag zu finden.
[attachment=31612:datenbank.JPG]
Kann mir jemand sagen ob es ein Kompatibilitätsproblem mit meiner Access 2003 Version ist, oder doch nur ein Programmierfehler?
Gunni
' schrieb:...
Kann mir jemand sagen ob es ein Kompatibilitätsproblem mit meiner Access 2003 Version ist, oder doch nur ein Programmierfehler?
Gunni
Nun ging es zwischendurch einmal. Ich hatte eine kleine Änderung gemacht. Und zwar hatte ich noch diesen Ausdruck
%.; vor das INSERT gesetzt. was es macht weiß ich aber trotzdem noch nicht. Die Datenbank besitzt nun 5000 Werte und jetzt funzt es wieder nicht mehr.
Hallo Gunni,
ich glaube ich kann Deine Frage beantworten.
Das "%.;" veranlaßt LV dazu, als Dezimalzeichen den Punkt zu verwenden. Im System wird bei Dir sicher auch das Komma eingestellt sein.
Das Ado-Toolkit erwartet als Dezimalzeichen bestimmt einen Punkt.
Hast Du Dir mal die Fehlermeldung angesehen, die Du am Error Out bekommst?
Wenn die Datenbank einmal beschrieben ist, kann man beim zweiten beschreiben nicht die gleichen Werte als Index oder Primärschlüssel verwenden.
Einfach die Datenbank entsprechend abändern. Ich habe ein neues Feld hinzugefügt und lasse dieses mit einem AutoWert beschreiben. Dieses wird als Primärschlüssel definiert und Du kannst an die Daba weitere Werte hinzufügen.
Gruß
Andreas
' schrieb:Hallo Gunni,
ich glaube ich kann Deine Frage beantworten.
Das "%.;" veranlaßt LV dazu, als Dezimalzeichen den Punkt zu verwenden. Im System wird bei Dir sicher auch das Komma eingestellt sein.
Das Ado-Toolkit erwartet als Dezimalzeichen bestimmt einen Punkt.
Hast Du Dir mal die Fehlermeldung angesehen, die Du am Error Out bekommst?
Wenn die Datenbank einmal beschrieben ist, kann man beim zweiten beschreiben nicht die gleichen Werte als Index oder Primärschlüssel verwenden.
Einfach die Datenbank entsprechend abändern. Ich habe ein neues Feld hinzugefügt und lasse dieses mit einem AutoWert beschreiben. Dieses wird als Primärschlüssel definiert und Du kannst an die Daba weitere Werte hinzufügen.
Gruß
Andreas
Danke, stimmt. Wenn ich die Einträge in der Datenbank-Tabelle gelöscht habe, funzt mein VI wieder. Ich Dummerchen - fürs Überschreiben gibt es ja natürlich andere Anweisungen wie INSERT.
Das mit dem Komma zu Punkt konvertieren hätte ich wahrscheinlich nirgends gefunden.
Das mit in die Datenbank abzuspeichern scheint zu klappen und wahrscheinlich werde ichs auch bald ausgelesen bekommen. Falls das mal der Fall ist stelle ich die Frage nochmal in dem Zusammenhang: Kann ich dann die Datenbankeinträge in Form einer Tabelle auslesen? Denn die Tabellen die ich da an gewisse VIs anhängen kann sind ja in der Zeilengröße begrenzt.
Gunni