' schrieb:Da zu kommt noch das ich das Programm so schreiben will das der Benutzer ein bestimmten Sensor auswählen kann und in der Historie sich die Werte der Vergangenheit sich anschaut.
Jeder Sensor bekommt einfach einen Kanalnamen. Der Benutzer entscheidet sich für ein Sensor und das VI liest nur den einen Kanal.
Ich würde das aber nicht so verwurschteln.
Also dein Hauptprogramm erfasst und schreibt in eine TDMS-Datei. Da kommt ein Benutzer daher und will kucken was war. Dazu wird ein VI über den VI-Server gestartet, welches dann die Referenz der zu lesenden Datei mitbekommt. In diesem "Anschau"-VI kann sich der Benutzer dann austoben; sprich Kanal auswählen, Zeitfenstergröße bestimmen, usw.
Zitat:Frage: Den wenn der Speicherpfad sich um 0Uhr ändert, wird es nicht übernommen, da es ja außerhalb der Schleife ist. - Oder täusche ich mich da.
Keine Ahnung was du da gebaut hast. Bezieht sich dieser Code auf das VI aus diesem Thread hier? Glaub nicht ...
Guten Morgen,
Ich habe jetzt die Speicherung von TDMS in mein Programm eingebaut.
Funktioniert Super
Nun möchte ich das Sub VI ( View _TDMS_XXL_1_2) durch ein Button aktivieren.
Eigentlich so wie du es beschrieben hast Dimitri.
' schrieb:Also dein Hauptprogramm erfasst und schreibt in eine TDMS-Datei. Da kommt ein Benutzer daher und will kucken was war. Dazu wird ein VI über den VI-Server gestartet, welches dann die Referenz der zu lesenden Datei mitbekommt. In diesem "Anschau"-VI kann sich der Benutzer dann austoben; sprich Kanal auswählen, Zeitfenstergröße bestimmen, usw.
Habe noch nix mit VI-Server zu tun gehabt. Hast du da ein Beispiel oder kannst mir da Hilfestellung BITTE geben ?
[
attachment=24817]
[
attachment=24818]
Habe es in der Vision 8.5 Hochgeladen da die meisten noch kein LabVIEW 9 haben.
Gruß Selma
' schrieb:2) In der oberen Schleife: gehe ich Recht in der Annahme, dass du jedem Messwert einen Zeitstempel zuordnen willst? So funktioniert das leider nicht. "Signalverlauf" hat nur einen Zeitstempel und zwar den vom Messbeginn.
Hier muß ich Dir widersprechen, das was Selme gemacht hat ist korrekt. Natürlich hat der Datentyp "Signalverlauf" nur ein t0 und ein dt. Aber hier geht nicht darum, sondern wie es in einem Sigalverlaufsdiagramm machbar ist, daß Daten mit nicht äquidistantem dt dargestellt werden können. Und das geht genau so wie es Selma gemacht hat.
In der Hilfe liest sich das so:
Ein 1D-Array von Signalverläufen, bei dem jeder Signalverlauf t0 festlegt, und ein Y-Array mit nur einem Element sind geeignet, um Werte darzustellen, die nicht mit derselben Rate abgetastet wurden, da jeder Datenpunkt seinen eigenen Zeitstempel hat.
Habe mich aber ansonsten nicht mit dem Thread beschäftigt, ob es im Gesamt-Kontext richtig ist daß die Punkte nicht äquidsitant zu behandeln sind kann ich nicht beurteilen.
' schrieb:Hier muß ich Dir widersprechen, das was Selme gemacht hat ist korrekt. Natürlich hat der Datentyp "Signalverlauf" nur ein t0 und ein dt. Aber hier geht nicht darum, sondern wie es in einem Sigalverlaufsdiagramm machbar ist, daß Daten mit nicht äquidistantem dt dargestellt werden können. Und das geht genau so wie es Selma gemacht hat.
Wusst ich nicht. Aber ich glaub selma auch nicht.
Zitat:Habe mich aber ansonsten nicht mit dem Thread beschäftigt, ob es im Gesamt-Kontext richtig ist daß die Punkte nicht äquidsitant zu behandeln sind kann ich nicht beurteilen.
Das meiste sind glaub' ich Temperaturen die kontinuierlich erfasst werden. Konstantes dt.
@Selma
Zitat:Habe noch nix mit VI-Server zu tun gehabt. Hast du da ein Beispiel oder kannst mir da Hilfestellung BITTE geben ?
[
attachment=24830]
[
attachment=24826]
Du brauchst nur Pfad und Name des VIs und schon öffnen es sich. Im subVI dann auch über die Ref schließen.
Ansonsten hab' ich bis Dienstag keine Zeit mehr ... Seminar.
Gruß dimitri
' schrieb:Guten Morgen,
Ich habe jetzt die Speicherung von TDMS in mein Programm eingebaut.
Funktioniert Super
Nun möchte ich das Sub VI ( View _TDMS_XXL_1_2) durch ein Button aktivieren.
Eigentlich so wie du es beschrieben hast Dimitri.
Habe noch nix mit VI-Server zu tun gehabt. Hast du da ein Beispiel oder kannst mir da Hilfestellung BITTE geben ?
[attachment=53264:Sensor_TMDS.vi]
[attachment=53265:View_TDMS_XXL_1_2.vi]
Habe es in der Vision 8.5 Hochgeladen da die meisten noch kein LabVIEW 9 haben.
Gruß Selma
Hast du schön Dir die VI angeschaut ?
Ansonsten erst mal Herzlichen Dank.
Werde mich da mal durchwurschteln
' schrieb:Außerdem wäre es bestimmt von Vorteil die Anzahl der zu lesenden Samples als Control zu machen. So kann man sich aussuchen wie groß das Zeitfenster ist, das man sich anschauen möchte.
Wie und was meint Dimitrie damit.
Was ich verstehe ist das sich der Benutz die gr. der Messung aussuchen kann.
Aber wie setzt man dieses um. Da stehe ich im Wald.
' schrieb:[attachment=53264:Sensor_TMDS.vi]
[attachment=53265:View_TDMS_XXL_1_2.vi]
' schrieb:[attachment=53282:VI_Ref_open.vi]
[attachment=53283:VI_Ref_close.vi]
Mein jetziges Problem ist wie ich das VI_Ref_open und VI_Ref_close in meinen Programm einbaue. So das auf Knopfdruck der Aktuelle Grundpfad ( die aktuelle Datei) aufgerufen wird. da den ausgewählten Lager vonden ich neun habe. Also möchte ich neun Schalter haben die VI_Ref_open und VI_Ref_close mit den Aktuelle Grundpfad auslosen mit der richtigen Datei.
' schrieb:Wie und was meint Dimitrie damit.
Was ich verstehe ist das sich der Benutz die gr. der Messung aussuchen kann.
Aber wie setzt man dieses um. Da stehe ich im Wald.
Das TDMS Read VI hat oben einen Eingang namens 'Anzahl'. Da hast du einfach 'ne 1000-Konstante angeschlossen; d.h. das VI versucht immer 1000 Samples (vom Offset an) zu lesen. Anstatt einer Konstanten würde ich da ein Bedienelement verwenden, damit der Benutzer aussuchen kann, wie groß das Fenster bsw. der Ausschnitt ist (nicht wie groß die Messung ist), den man angezeigt bekommt.
Zitat:Mein jetziges Problem ist wie ich das VI_Ref_open und VI_Ref_close in meinen Programm einbaue. So das auf Knopfdruck der Aktuelle Grundpfad ( die aktuelle Datei) aufgerufen wird. da den ausgewählten Lager vonden ich neun habe. Also möchte ich neun Schalter haben die VI_Ref_open und VI_Ref_close mit den Aktuelle Grundpfad auslosen mit der richtigen Datei.
Hinweis: Wenn du Daten (z.B. die Referenz deiner TDMS-Datei) an das VI übergeben möchtest, dann geht das über einen Methodenknoten. Dieser heißt 'Bedienelement.Wert.setzen' (oder so...). Damit kannst du Daten an ein Bedienelement des VIs (welches via VI Server gestartet wurde) übergeben.
Mahlzeit,
ich komme einfach nicht weiter.
Ich möchte die TMDS Datei auslesen. Dazu soll auf einen Schalter gedrückt werden und den macht sich ein neues Fenster auf: View_TDMS_XXL_1_2(2).vi
Ich weiß leider immer noch nicht wie ich das Sub.VI im VI-Server einbinde?
Hinzu kommt das dieses Sub.VI (View_TDMS_XXL_1_2(2).vi) die Daten nicht läd wenn ich mir z.B. ältere Daten anschauen möchte.
Habe die VI auf
runter gespielt.
Herzlichen Dank
Gruß Selma
[
attachment=24966]
Guten Morgen erst mal
finde keine Lösung!!!
Wenn ich das Menü Vi einbinde und Starte schließst sich mein Programm.
Es ist auch immmer noch so das neue Daten nicht geladen werden.
Im Grunde möchte ich die drei VI zusammen führen:
Das Sensor_ TDMS_01.VI mit den Menue.VI. Wenn ich den das menue.Vi Starte soll sich das Serevr.Vi (View_TDMS_XXL_1_2(2).vi) öffnen und die Daten von der ersten Registerkarte oder von der zweiten Registerkarte sollen geladen werden.
Im hintergrund Arbeitet immer noch das Hauptprogramm (Sensor_ TDMS_01.VI)
Wenn ich den das (View_TDMS_XXL_1_2(2)vi) schlisse soll wieder im Fensterbereich das Hauptprogramm (Sensor_ TDMS_01.VI) zusehen sein.
Wer Weiß rat?
Gruß Selma
[
attachment=24975]
[
attachment=24976]
[
attachment=24977]
[
attachment=24978]
[
attachment=24979]
Hat leider nicht mit ZIP geglappt aber so