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 

Messwerte speichern -> X Achse soll die Systemzeit sein



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!

11.12.2007, 22:58
Beitrag #1

Dr_Skolsson Offline
LVF-Neueinsteiger


Beiträge: 9
Registriert seit: Jul 2007

8.2.1
2007
kA

9020
Oesterreich
Messwerte speichern -> X Achse soll die Systemzeit sein
Hallöchen ..

Ich hab keine Ahnung wie ich folgendes lösen soll ...

Und zwar möchte ich Messwerte einlesen und zwar jede Sekunde einen. Diese möchte ich dann in eine Datei schreiben, welche als X Achsen"skalierung" allerdings die Systemzeit hat.

Soll so ausschauen:

Drück ich START für meine Messung:

y: | 4,56 | | 3,48 | |5,24 | usw
x: 10.12.2007 - 22:56:01 | 10.12.2007 - 22:56:02 | 10.12.2007 - 22:56:03 |


Bisher konnte ich nämlich nichtmal eine nur ansatzweise richtige Lösung finden ..

Vielleicht kann mir jemand weiterhelfen ?!

Vielen Dank !


Übrigens, ich verwende LabVIEW 8.2.1
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
12.12.2007, 08:44
Beitrag #2

monoceros84 Offline
LVF-Stammgast
***


Beiträge: 445
Registriert seit: Oct 2006

2011
2006
EN


Deutschland
Messwerte speichern -> X Achse soll die Systemzeit sein
' schrieb:Übrigens, ich verwende LabVIEW 8.2.1

Dann: Profil_ergaenzen

Wie nimmst du denn die Messwerte auf? Als Waveform? Wenn ja -> gut, wenn nicht -> empfehlenswert. Waveforms haben eine Startzeit und dann für jeden Messwerte ein Zeitinkrement. So kannst du die Startzeit nachträglich (oder vorher) auf die Systemenzeit setzen. Wenn du nun jede Sekunde misst, dann wird immer automatisch eine Sekunde addiert...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.12.2007, 10:40 (Dieser Beitrag wurde zuletzt bearbeitet: 12.12.2007 11:52 von jg.)
Beitrag #3

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Messwerte speichern -> X Achse soll die Systemzeit sein
Anbei erst mal der fehlende "Ansatz". Wenn Du weitere Fragen hast --> gib Laut.

   

Anbei noch ein VI für Konvertierung in beide Richtungen, das müßte auf jeden Fall helfen.

Lv82_img


Angehängte Datei(en)
Sonstige .vi  String2Zeit.vi (Größe: 12,52 KB / Downloads: 202)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.12.2007, 10:45 (Dieser Beitrag wurde zuletzt bearbeitet: 12.12.2007 11:52 von jg.)
Beitrag #4

Dr_Skolsson Offline
LVF-Neueinsteiger


Beiträge: 9
Registriert seit: Jul 2007

8.2.1
2007
kA

9020
Oesterreich
Messwerte speichern -> X Achse soll die Systemzeit sein
' schrieb:Dann: Profil_ergaenzen

Wie nimmst du denn die Messwerte auf? Als Waveform? Wenn ja -> gut, wenn nicht -> empfehlenswert. Waveforms haben eine Startzeit und dann für jeden Messwerte ein Zeitinkrement. So kannst du die Startzeit nachträglich (oder vorher) auf die Systemenzeit setzen. Wenn du nun jede Sekunde misst, dann wird immer automatisch eine Sekunde addiert...

Aha, vielen Dank ... ich vermute nun wirds passen ...

Allerdings hab ich ja schon wieder ganz andere Probleme. Ich hab mal mein VI angehängt.

Es soll eigentlich nur 5 Motoren EIN - AUS - EIN - AUS schalten. In den EIN Zeiten soll dazu der aufgenommene Strom gemessen und in eine Datei geschrieben werden ...

Kann mir vielleicht jemand beantworten warum die Messschleife allerdings nie startet ?! Ich hab ds über Variablen gelöst. Meine Theorie ist, sobald die 'EIN' Phasen laufen, sollte auch die "untere" Case Schleife True sein und somit arbeiten ...

Funktioniert aber genau garnicht ... Ich hab da sowieso noch ein paar Probleme was diese Schleifen angeht ... Dry

Weiss jemand was ich hier so falsch mach ?!


Vielen DankSmile

Lv82_img


Angehängte Datei(en)
Sonstige .vi  Motor_DL.vi (Größe: 922,92 KB / Downloads: 183)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.12.2007, 11:25
Beitrag #5

monoceros84 Offline
LVF-Stammgast
***


Beiträge: 445
Registriert seit: Oct 2006

2011
2006
EN


Deutschland
Messwerte speichern -> X Achse soll die Systemzeit sein
Dein Problem scheint folgendes zu sein: Die große While-Schleife außen läuft nicht ständig durch, weil du in den kleineren Schleifen zur Motorstäuerung hängen bleibst. Damit wird die Bedingung für den unteren Case (und dieser selber auch) nur genau 1x ausgeführt. Abhilfe schaffen statt einer großen While-Schleife zwei kleinere parallele - eine um die Motorsteuerung, eine um die Datenerfassung.

Übrigens scheinst du den Hinweis noch nicht zu kennen, dass man einen Rechtsklick auf Eingänge von VIs machen kann und dann Create -> Constant. Damit hat man immer den richtigen Datentyp für Konstanten, Controls und Indicators. Bei dir wird fast überall erst eine Datentyp-Konvertierung durchgeführt. Du nimmst sicherlich die Standard-Konstante aus der Funktions-Palette...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.12.2007, 12:55
Beitrag #6

Dr_Skolsson Offline
LVF-Neueinsteiger


Beiträge: 9
Registriert seit: Jul 2007

8.2.1
2007
kA

9020
Oesterreich
Messwerte speichern -> X Achse soll die Systemzeit sein
' schrieb:Dein Problem scheint folgendes zu sein: Die große While-Schleife außen läuft nicht ständig durch, weil du in den kleineren Schleifen zur Motorstäuerung hängen bleibst. Damit wird die Bedingung für den unteren Case (und dieser selber auch) nur genau 1x ausgeführt. Abhilfe schaffen statt einer großen While-Schleife zwei kleinere parallele - eine um die Motorsteuerung, eine um die Datenerfassung.

Übrigens scheinst du den Hinweis noch nicht zu kennen, dass man einen Rechtsklick auf Eingänge von VIs machen kann und dann Create -> Constant. Damit hat man immer den richtigen Datentyp für Konstanten, Controls und Indicators. Bei dir wird fast überall erst eine Datentyp-Konvertierung durchgeführt. Du nimmst sicherlich die Standard-Konstante aus der Funktions-Palette...


Ha, vielen Dank ! Mit 2 seperaten While Schleifen funktionierts schon mal recht nett. Auch das Speichern der Daten funktioniert und soweit bin ich nun recht glücklich ...

Allerdings, gibts sowas wie einen Ultimativen STOP Knopf ?! ... Um mein Programm beenden zu können muss 1. die SollSchleifen Anzahl erreicht sein und 2. muss ich bei 2 While Schleifen nun 2 Stop Knöpfe drücken .. Mellow

Und wegen der Typenkonvertierung, danke erstmals. Aber ist es ein Problem wenn mans lässt ?! .. Also gibts Performance Verluste oder sowas ?!

Danke und viele Grüße
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
12.12.2007, 14:21
Beitrag #7

monoceros84 Offline
LVF-Stammgast
***


Beiträge: 445
Registriert seit: Oct 2006

2011
2006
EN


Deutschland
Messwerte speichern -> X Achse soll die Systemzeit sein
Nein, die Konvertierung ist in diesen einfachen Fällen kein Problem. Du wirst auch den Rechenzeit-Verlust nicht bemerken. Du solltest es dir nur für die Zukunft angewöhnen, weil es bei komplizierteren Datentypen zu Fehlern kommen kann, bei denen du dich dann tot suchst...

Zum Schleifenabbruch. Es gibt viele Möglichkeiten, zwei paralelle Schleifen abzubrechen (durch Suche im Forum solltest du auch was finden). Einfachste, aber sehr unbeliebte, Methode ist, in einer der beiden Schleifen eine lokale Variable des Stop-Buttons abzufragen, in der anderen den Button selber. Unbeliebt, weil erstens langsam und zweitens gibt sie den Geist auf, sobald du eine Schleife in ein SubVI verlagerst.
Besser ist schon alles, was du in der Synchronization-Palette findest. Tipp: Notifier oder Rendezvous.
Auch sehr beliebt: Functional Global Variable.

Damit solltest du eigentlich genug Möglichkeiten zusammen haben, um den zweiten Stop-Button zu vermeiden.

Zum Thema Soll-Zyklen: Wieso verwendest du eine Schleife in der Schleife in der Schleife. Dann hast du unnötig viele Abbruch-Bedingungen zu checken. Die For-Schleife brauchst du z.B. nicht. Ein Case in der äußeren While-Schleife reicht. Dort fragst du ab, ob dein Schleifenzähler i noch kleiner als die Soll-Laufzeit ist, wenn ja, dann Schleifeninhalt ausführen. Wenn nicht, dann Schleife beenden.
Richtig interessant, professionell und flexibel wird es, wenn du deine Struktur zu einer State-Machine umbaust (viel fehlt nicht dazu)... Dann hast du alles in der Hand und musst auf nix warten. Du kannst dir sogar die parallele Mess-Schleife sparen. Suche einfach mal im Forum oder bei Google nach State-Machine, wenn du Lust dazu hast...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.12.2007, 16:49
Beitrag #8

Dr_Skolsson Offline
LVF-Neueinsteiger


Beiträge: 9
Registriert seit: Jul 2007

8.2.1
2007
kA

9020
Oesterreich
Messwerte speichern -> X Achse soll die Systemzeit sein
Zitat:Zum Thema Soll-Zyklen: Wieso verwendest du eine Schleife in der Schleife in der Schleife. Dann hast du unnötig viele Abbruch-Bedingungen zu checken. Die For-Schleife brauchst du z.B. nicht. Ein Case in der äußeren While-Schleife reicht. Dort fragst du ab, ob dein Schleifenzähler i noch kleiner als die Soll-Laufzeit ist, wenn ja, dann Schleifeninhalt ausführen. Wenn nicht, dann Schleife beenden.
Richtig interessant, professionell und flexibel wird es, wenn du deine Struktur zu einer State-Machine umbaust (viel fehlt nicht dazu)... Dann hast du alles in der Hand und musst auf nix warten. Du kannst dir sogar die parallele Mess-Schleife sparen. Suche einfach mal im Forum oder bei Google nach State-Machine, wenn du Lust dazu hast...

Nunja, die Überlegung war den Ablauf durch die Case Schleife ganz innen zu machen. Sobald im letzten Case angekommen wird dann die While Schleife gestoppt und das ganze eben durch eine For Schleife öfters ausgeführt ..

Aber gut, dieser Ansatz war die erste Idee und funktioniert auch, zumindest irgendwieBig Grin. Ich werds nun mal mit ne State Machine versuchen ... Ich hab damit eh bereits mal zu tun gehabt, allerdings nur beim µC. Vielen Dank für die Unterstützung bisher, ich werd die Tipps und Hinweise gleich mal einbauen und meld mich dann wieder !


Ja und Grüße noch an die gesamten Helfer !! Winke
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  DAQmx Messwerte Chart X-Achse samuel 26 21.201 26.11.2013 10:23
Letzter Beitrag: samuel
  Messwerte definierte Zeit speichern nach Triggerstart dejay 6 4.928 28.04.2012 08:35
Letzter Beitrag: GerdW
  Jede 100ms Neuer Wert soll aber jede ms sein Bobo 30 20.646 23.01.2012 14:20
Letzter Beitrag: Bobo
  Einstellung der Systemzeit einer CompactRIO ?? Benjamin84 4 6.149 17.12.2009 10:24
Letzter Beitrag: Jansen83
  Datenerfassung mit Wiimote über Systemzeit Oeric 0 2.885 29.11.2008 23:39
Letzter Beitrag: Oeric

Gehe zu: