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 

Wert einlesen und mit Verzögerung vergleichen



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!

08.12.2011, 15:57
Beitrag #1

Andy_B Offline
LVF-Grünschnabel
*


Beiträge: 20
Registriert seit: Sep 2011

LabVIEW2010
2010
DE


Deutschland
Wert einlesen und mit Verzögerung vergleichen
Hallo zusammen,
da ich nichts passendes zu meinem Problem gefunden habe hier meine Frage.

Ich erfasse mit DAQ kontinuierlich einen Druck, ich möchten sobald dieser Druck unter einen bestimmten Wert fällt das Programm beenden (Abschaltbedingung).

Das Problem ist, das ich nicht direkt mit dem Start der Messung einen Vergleich machen kann. Da sich der Druck erst aufbauen muss, was zwar recht schnell geht aber ich brauche bestimmt eine Verzögerung von 2 Sekunden.

Vom Prinzip habe ich das hinbekommen (Test Abschaltbedingung.vi )
Hier würde ich in der selben Schleife in der auch die Daten erfasst werden die Abschaltbedingung einbauen. Das Problem dabei ist dann jedoch das ich die Schleife ausbremse, da ich im ersten Durchlauf 2 Sekunden warte.

In einem zweiten VI (Test Abschaltbedingung2.vi) habe ich versucht das ganze über Queue´s und Notifier zu realisieren. Da ich damit noch nicht viel gearbeitet habe, habe ich versucht ein Programm was ich gefunden habe umzubauen.
Ich glaube das dies aber nicht wirklich gelungen ist.

Kann ich das Problem irgendwie anders lösen.
Bzw. was mache ich mit den Queue´s falsch??


Mein Ziel ist:

Ich lese kontinuierlich Werte ein, möchte aber nicht das das einlesen ausgebremst wird (da ich in der selben Schleife auch noch andere Dinge mache die durchlaufen müssen). Einen der Werte muss ich nach 2 Sekunden (nach dem einschalten) mit einem fest vorgegeben Wert vergleichen. Sobald ich den Wert unterschreite muss ich ein "True" ausgeben, mit dem ich dann die Schleife beende.


Lg


Angehängte Datei(en)
10.0 .vi  Test Abschaltbedingung2.vi (Größe: 15,76 KB / Downloads: 194)

10.0 .vi  Test Abschaltbedingung.vi (Größe: 9,86 KB / Downloads: 168)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.12.2011, 17:43
Beitrag #2

schrotti Offline
LVF-Freak
****


Beiträge: 842
Registriert seit: Feb 2008

2009 - 2011
2006
kA

70180
Deutschland
RE: Wert einlesen und mit Verzögerung vergleichen
Die Verzögerung ist hier nicht angebracht. Ich würde die Überwachung erst scharf schalten, wenn der Druck einen Schwellwert überschritten hat. Zweitens muss eine maximale Zeit definiert sein, in der der Druck den Schwellwert überschreiten muss.

Deine Lösung mit der Queue funktioniert so auch nicht, da der Datenfluss nicht festgelegt wurde. In diesem Fall bedeutet das, dass im günstigsten Fall ein oder zwei Samples eliminiert werden. Schließlich stellt die Queue einen Puffer da. Wahrscheinlich kommst du auch ohne die Melder aus, schau dir das Beispiel an.


Angehängte Datei(en)
10.0 .vi  Test Abschaltbedingung 3.vi (Größe: 43,45 KB / Downloads: 269)

Gruß Julius
Empfehlungen: expressionflow, LavaG , mooregoodideas, OpenG, JKI Blog
Tipp
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.12.2011, 07:42
Beitrag #3

Andy_B Offline
LVF-Grünschnabel
*


Beiträge: 20
Registriert seit: Sep 2011

LabVIEW2010
2010
DE


Deutschland
RE: Wert einlesen und mit Verzögerung vergleichen
Danke,
das gefällt mir sehr gut!!

Eine Frage hätte ich aber noch bezüglich des abschalten.
In meinem richtigen Programm verwende ich zum Starten und Stoppen des Versuchs und damit auch zum Starten und Stoppen der Messung und Überwachung jeweils einen Button (Start/Stopp). Das ganze mache ich in einer State Machine
d.h. mit Start beginnt ein Motor zu drehen und kann gesteuert werden und Gleichzeitig beginnt die Datenerfassung (welche ich am Ende auch abspeichern muss).
Diesen Teil der Case Struktur durchlaufe ich solange bis ich den Button Stopp drücke.
Wie realisiere ich nun am besten das ich mit dem drücken von Stopp meinen Slave (der ja meine Werte überwacht) auch stoppe.
Du stoppst die Slave-Schleife ja mit dem Button Stopp.

Funktioniert es auch wenn ich eine Lokale Variable nutze??
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
  Wert an naheliegensten Wert aus Array anpassen TSC 17 11.530 26.07.2016 06:59
Letzter Beitrag: TSC
  Aktueller Wert von vorherigem Wert abziehen Semicon 6 7.450 18.06.2014 16:34
Letzter Beitrag: jg
  Datei einlesen und alle 100ms den nächsten Wert ausgeben FuelCell 4 5.559 10.03.2014 20:04
Letzter Beitrag: FuelCell
  Bool mit Verzögerung Tobi.KT 39 25.522 29.01.2014 10:38
Letzter Beitrag: jg
  Neuer Wert - Alter Wert im Array sanjo 5 6.876 05.02.2013 10:43
Letzter Beitrag: sanjo
  Wert einlesen und auswerten skywalker 9 5.629 20.11.2009 11:04
Letzter Beitrag: skywalker

Gehe zu: