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 

Kontinuierliche Datenspeicherung, Zyklenzähler und Versuchszeitermittlung



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!

13.04.2011, 18:29 (Dieser Beitrag wurde zuletzt bearbeitet: 13.04.2011 18:36 von MPA005.)
Beitrag #1

MPA005 Offline
LVF-Neueinsteiger


Beiträge: 7
Registriert seit: Mar 2011

LabVIEW 2010 Professional Development System Version
2011
DE


Deutschland
Kontinuierliche Datenspeicherung, Zyklenzähler und Versuchszeitermittlung
Hallo liebe LV- Gemeinde,

seit einigen Wochen beschäftige ich mich mit LabVIEW und dies ist mein erster Beitrag im Forum.
Nach diversen Tutorials, viel Ausprobieren und mehrmaligem Störbern im Forum bin ich allerdings am Ende meines Lateins...

Nun zu meinem Problem: Mit einem Messaufbau (cDAQ-9174) sollen kontinuierlich Daten gemessen und gespeichert werden.
Die prinzipielle Struktur ist im angehängten VI "AnzeigenUndSpeichern" realisiert (Bitte stört euch nicht an den Express-VIs).
   

Nach dem Programmstart werden kontinuierlich die aktuelle Zeit und das aktuelle Datum sowie sämtliche Messwerte "live" dargestellt.
Durch Klicken auf den Button "Messung starten" werden die Daten gespeichert und die Zyklen (entsprechend der Bedingung) kontinuierlich gezählt. Die Messung kann unterbrochen und auch wieder fortgesetzt werden.

Bis hierher funktioniert alles auch wie gewünscht, nun kommt das Problem:

Zusätzlich soll die seit Beginn der Datenspeicherung ("Messung starten") verstrichene Versuchsdauer angezeigt werden. Bei einer Unterbrechung der Messung soll die Versuchszeit gestoppt, bei einer Fortsetzung der Messung soll die Versuchszeit wieder fortgesetzt werden. Zudem sollte die Versuchszeit manuell zurückgesetzt werden können.
Eine funktionierende "Stoppuhr" habe ich im angehängten VI "VersuchszeitErmitteln" bereits realisiert (Das Prinzip entspricht einem früheren Vorschlag aus diesem Forum).
   

Jetzt weiß ich nicht mehr weiter, denn die "Verknüpfung" dieser beiden VIs mag mir einfach nicht gelingen...
Alles zusammen in eine große While-Schleife funktioniert genausowenig wie die Variante mit beiden While-Schleifen in einem VI.

Gibt es vielleicht noch eine etwas elegantere Lösung, die Versuchszeit nach den gewünschten Vorgaben zu realisieren?
Ich bin für jede hilfreiche Antwort dankbar!

Viele Grüße und besten Dank im Voraus
Stefan

Lv10


Angehängte Datei(en)
2010 .vi  AnzeigenUndSpeichern.vi (Größe: 148,66 KB / Downloads: 207)

2010 .vi  VersuchszeitErmitteln.vi (Größe: 20,07 KB / Downloads: 178)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.04.2011, 18:54 (Dieser Beitrag wurde zuletzt bearbeitet: 13.04.2011 19:02 von GerdW.)
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.425
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Kontinuierliche Datenspeicherung, Zyklenzähler und Versuchszeitermittlung
Hallo MPA,

wow, man kann die Zeit auch "sehr" kompliziert messen... (Es geht möglichweise noch einfacher als in meiner Bearbeitung, aber ist ja auch nur proof-of-concept.)

Siehe Anhang:
Du darfst noch einen Stop-Button einfügen, wie willst du dein VI sonst jemals stoppen können?
Und die Umrechnung von ms nach "dd:hh:mm: ss" bekommst du sicher auch hin Smile

   
Welchen Zweck soll dieses RubeGoldberg-Konstrukt erfüllen? Wenn TRUE dann TRUE sonst FALSE Smile
Im zweiten VI finden sich auch wieder ungebremste Schleifen, die dafür aber ewiglich laufen dürfen...Flop
(Anders ausgedrückt: wie oft pro Sekunde soll die Zeitanzeige refresht werden, damit du ihr vertraust?)


Angehängte Datei(en)
2010 .vi  VersuchszeitErmitteln.vi (Größe: 13,31 KB / Downloads: 219)

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.04.2011, 07:47
Beitrag #3

JoBlau Offline
LVF-Grünschnabel
*


Beiträge: 25
Registriert seit: Sep 2008

8.6, 2009 SP3
2008
DE_EN

66...
Deutschland
RE: Kontinuierliche Datenspeicherung, Zyklenzähler und Versuchszeitermittlung
Hallo Stefan!

Leider kann ich deine Anhänge nicht öffnen wg. Version.
Du kennst ja bestimmt die Möglichkeiten von Notifier/Melder und Queue?

Ich nutze aber auch gerne die globalen Variablen.
Liebe Superprogrammierer, bitte nicht steinigen!! Es ist manchmal auch Geschmacksache.

Man kann sich mit den globalen Variablen recht üble Bugs einbauen. Doch wenn man sich immer bewusst ist welches VI drauf schreibt, kann wenig passieren.

Ein wesentlicher Vorteil der Global ist, dass man sich den Inhalt in der Laufzeit ständig betrachten kann.

Wenn Du nicht genau weißt wie man mit Globals arbeitet, melde Dich noch mal.

Gruß

Joachim
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.04.2011, 08:07
Beitrag #4

MPA005 Offline
LVF-Neueinsteiger


Beiträge: 7
Registriert seit: Mar 2011

LabVIEW 2010 Professional Development System Version
2011
DE


Deutschland
RE: Kontinuierliche Datenspeicherung, Zyklenzähler und Versuchszeitermittlung
Guten Morgen Gerd,

vielen Dank erst einmal für deinen hilfreichen Tipp!
Die "Stoppuhr"-Funktion habe ich entsprechend angepasst und in mein "Haupt-VI" eingefügt:
   

Zitat:Welchen Zweck soll dieses RubeGoldberg-Konstrukt erfüllen? Wenn TRUE dann TRUE sonst FALSE

Deine Anmerkung zu meiner "etwas komplizierten" Bedingungsabfrage habe ich auch eingearbeitet Smile

In die While-Schleife habe ich bewusst keinen Stopp-Button eingefügt. Das VI soll anschließend als ".exe" gespeichert und verwendet werden. Wie kann ich es sonst realisieren, dass kontinuierlich Daten in den Schaubildern angezeigt werden, auch ohne dass das VI läuft?

Jetzt habe ich eigentlich nur noch ein Problem mit dem Zyklenzähler (in der CASE-Struktur):
Er zählt zwar, allerdings stimmt die "Taktung" nicht.
Sobald die Bedingung erfüllt ist, legt der Zähler los (soweit so gut).
Allerdings soll ja eigentlich nur der "Schaltzustand" gezählt werden...
Gibt es eine Möglichkeit, dies zu realisieren?

Viele Grüße
Stefan


Angehängte Datei(en)
2010 .vi  Zyklenzaehler.vi (Größe: 156,99 KB / Downloads: 157)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.04.2011, 08:20 (Dieser Beitrag wurde zuletzt bearbeitet: 14.04.2011 08:21 von GerdW.)
Beitrag #5

GerdW Offline
______________
LVF-Team

Beiträge: 17.425
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Kontinuierliche Datenspeicherung, Zyklenzähler und Versuchszeitermittlung

Akzeptierte Lösung

Hallo Stefan,

Zitat:soll ja eigentlich nur der "Schaltzustand" gezählt werden
Dann musst du das auch so programmieren - also auf Änderung des Schaltzustands testen (siehe Anhang)...

Zitat:Wie kann ich es sonst realisieren, dass kontinuierlich Daten in den Schaubildern angezeigt werden, auch ohne dass das VI läuft?
Gar nicht: wenn ein VI nicht läuft, kann es auch keine Daten produzieren. Das war aber nicht der Punkt meiner Frage...
Gegenfrage: Willst du die Exe immer über den TaskManager beenden? Bisher müsstest du das, da ja die WhileLoops unendlich laufen und du keine Abbruchbedingung vorgesehen hast. Dabei hast du doch schon eine Eventstruktur in deinem VI - und da kann man sehr einfach abfragen, ob der Benutzer rechts oben auf's "X" klickt...


Angehängte Datei(en)
2010 .vi  Zyklenzaehler.vi (Größe: 156,49 KB / Downloads: 159)

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.04.2011, 17:13
Beitrag #6

MPA005 Offline
LVF-Neueinsteiger


Beiträge: 7
Registriert seit: Mar 2011

LabVIEW 2010 Professional Development System Version
2011
DE


Deutschland
RE: Kontinuierliche Datenspeicherung, Zyklenzähler und Versuchszeitermittlung
Hallo Gerd,

danke für deinen Tipp: Eine Abbruchbedingung habe ich mit einer Eventstruktur leider nicht hinbekommen, aber dafür einen einfachen Stopp-Schalter erstellt Wink

Das VI (Datenerfassung /-speicherung, Versuchszeitermittlung) läuft soweit auch, allerdings bereitet mir der Zyklenzähler immer noch einiges Kopfzerbrechen.
Dein Tipp bzgl. der Änderung des Schaltzustands ist gut, allerdings zählt der Zähler zu oft.

Zum besseren Verständnis erklär ich kurz den Hintergedanken des Messprogramms:
In meinem Versuchsaufbau sollen zyklische Temperaturkurven gemessen werden, die Zustände sind "Heizen" bzw. "Kühlen".
Ein Zyklus besteht aus einer Heiz- und einer Kühlphase, der Übergang von einem Zyklus in den nächsten erfolgt nach der Kühlphase, also mit Beginn der nächsten Heizphase.

Als Bedingungen für den Zykluszähler sind folgende Varianten denkbar:
1. Wenn beide Magnetventile geschlossen sind => Heizen; wenn beide Magnetventile offen sind => Kühlen
2. Über ein Signal (TRUE/FALSE) wird der jeweilige Zustand (Heizen / Kühlen) angezeigt.
3. Weitere Varianten...?

Im angehängten VI habe ich die beiden erwähnten Varianten schon getestet, allerdings zählt der Zähler bei jedem Wechsel des Zustands und nicht nur beim gewünschten Wechsel von Kühlen zu Heizen...
Gibt es eine Möglichkeit, den Zähler entsprechend anzupassen?
   

Viele Grüße
Stefan

Lv10


Angehängte Datei(en)
2010 .vi  Zyklenzaehler_2.vi (Größe: 12,11 KB / Downloads: 144)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.04.2011, 19:28 (Dieser Beitrag wurde zuletzt bearbeitet: 14.04.2011 19:28 von GerdW.)
Beitrag #7

GerdW Offline
______________
LVF-Team

Beiträge: 17.425
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Kontinuierliche Datenspeicherung, Zyklenzähler und Versuchszeitermittlung
Hallo Stefan,

dann probier doch mal die Wunder boolscher Logik aus Smile

Z.B. statt einem XOR ein (X AND NOT Y) oder (Not X AND Y) zum Erkennen von steigenden oder fallenden Flanken, respektive...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.04.2011, 12:01 (Dieser Beitrag wurde zuletzt bearbeitet: 18.04.2011 12:26 von MPA005.)
Beitrag #8

MPA005 Offline
LVF-Neueinsteiger


Beiträge: 7
Registriert seit: Mar 2011

LabVIEW 2010 Professional Development System Version
2011
DE


Deutschland
RE: Kontinuierliche Datenspeicherung, Zyklenzähler und Versuchszeitermittlung
Hallo Gerd,

nach einigem Ausprobieren und längerer Recherche klappt nun auch der Zyklenzähler (siehe Snippet):
   

Viele Grüße und vielen Dank!
Stefan

*Problem gelöst*
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Kontinuierliche Temperaturerfassung mehrerer Kanäle mez15 5 3.982 29.09.2015 09:41
Letzter Beitrag: GerdW
  Kontinuierliche Statistikberechung Bernhart55 4 3.694 26.08.2013 21:35
Letzter Beitrag: Bernhart55
  kontinuierliche Spannungswerte ausgeben Löffje 14 7.966 03.04.2013 13:45
Letzter Beitrag: Löffje
  kontinuierliche Datenübergabe von mehreren SubVis in ein Array simbi 17 9.696 27.02.2013 14:20
Letzter Beitrag: Kiesch
  Beispielprojekt "Kontinuierliche messung und Protokollierung" füllt Arbeitsspeicher JulianS. 4 6.782 11.02.2013 19:25
Letzter Beitrag: jg
  kontinuierliche Messwertabfrage und gleichzeitige x-sekündliche Wertänderung Sick 7 5.468 04.05.2012 13:45
Letzter Beitrag: Sick

Gehe zu: