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 

Zeitverzögerte Aktion



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!

29.09.2008, 14:39 (Dieser Beitrag wurde zuletzt bearbeitet: 29.09.2008 20:56 von jg.)
Beitrag #1

Silverhawk Offline
LVF-Grünschnabel
*


Beiträge: 16
Registriert seit: Sep 2008

8,5
2008
de

38108
Deutschland
Zeitverzögerte Aktion
Also, ich habe folgendes Problem:
ich möchte ein Stream starten um Sensordaten aufzunehmen und 3sekunden später eine Spannungsänderung vornehmen.
Das Problem, ist dass wenn ich eine einfache verzögerung nehme, er den stream auch erst nach 3 sekunden startet. Wie kann ich es hinbekommen, dass die aufnahme startet, und nach 3sekunden erst, die 2te aktion folgt? dabei soll er natürlich nicht die aufnahme beenden. Daher habe ich es auch mit einer Flat Sequence nicht hinbekommen.
Anbei noch das Programm und ein screen, worum es geht, das prog. ist recht großWink
   
Lv85_img
Sonstige .vi  Kopie_von_Strem1.vi (Größe: 217,54 KB / Downloads: 260)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.09.2008, 16:40
Beitrag #2

TSC Offline
LVF-Team
LVF-Team

Beiträge: 1.882
Registriert seit: Sep 2008

LV 2018 SP1
2008
EN

52379
Deutschland
Zeitverzögerte Aktion
Da sich von den echten Profis keiner rantraut, versuch ich mal mein Glück:

Eine echte parallelität zu erzeugen gelingt dir ja nur wenn du tatsächlich zwei Processoren hast. In dem Fall müsste man sich mit Parallelprogrammierung unter LabVIEW auseinandersetzen.

Ansonsten könntest du mal versuchen mit Hilfe einer Queue eine Pseudoparalellität zu erzeugen.

Wie es genau funktioniert kann ich dir leider auch nicht sagen, bin ein absoluter LV-Anfänger, aber ich kann ja mal versuchen mein Gedankenkonstrukt zu beschreiben:

Bei Programmstart startest du einen Timer und den Datenstream

Du legst eine Queue an in der du zwei Tasks hast.
1. Daten vom Stream bekommen
2. Spannung erhöhen (aber nur wenn der Timer größer als 3 Sekunden ist)

Dann arbeitest du die Queue ab. In der Bearbeitung schiebst du wieder neue Aufgaben in die Queue (wieder Daten erfassen und Spannung erhöhen). Wenn die gesamte Sache beendet werden soll, schreibst du einfach nichts mehr in die Queue rein.

Für die Umsetzung in LabVIEW bin ich wie gesagt zu blöde, aber evtl hilft dir das ja auch so schon weiter.

"Über Fragen, die ich nicht beantworten kann, zerbreche ich mir nicht den Kopf!" (Konrad Zuse)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.09.2008, 17:31
Beitrag #3

Silverhawk Offline
LVF-Grünschnabel
*


Beiträge: 16
Registriert seit: Sep 2008

8,5
2008
de

38108
Deutschland
Zeitverzögerte Aktion
ich brauch keine exakte verzögerung... es reicht also, wenn die spannung sich etwa bei 3 sek. ändert.
muss halt nur die aufzeichnung beginnen, bevor sich die spannung ändert.
aber ich werd es mal versuchen mit dem queue.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.09.2008, 20:25
Beitrag #4

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.700
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Zeitverzögerte Aktion
' schrieb:Du legst eine Queue an in der du zwei Tasks hast.
Wenn gleich ich weiten Teilen des TSchAC'schen Postings zustimmen kann, so will ich doch folgendes anmerken.

Queues haben keine Tasks. Queues können zwei Tasks verbinden.

Wenn ich so überlege, würden ich hier möglicherweise eine Task verwenden: Die Task samplt Daten und zählt Zeit hoch. Wenn die Zeit um ist, wird die Spannung ausgegeben. Diese eine Task wird vom MainVI mittels einer Queue gesteuert.

Beachte folgendes: Das Auslesen eines DaqMX-Read und die Verarbeitung dieser Daten erfolgt z.B. im 50ms-Raster. Das dauert ca. 2ms (Hehe). In der restlichen Zeit kann also ebendiese überprüft und ggf. die Spannung angepasst werden.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.09.2008, 21:24
Beitrag #5

TSC Offline
LVF-Team
LVF-Team

Beiträge: 1.882
Registriert seit: Sep 2008

LV 2018 SP1
2008
EN

52379
Deutschland
Zeitverzögerte Aktion
@IchSelbst:

Vielen Dank für die Richtigstellung, ich kenne Queues nur aus der theoretischen Informatik. Da ist es einfach eine Liste von Aufgaben (von mir fälschlicherweise als TASK bezeichnet) die abgearbeitet werden müssen. Dabei wird nach dem FIFO (First In, First Out) verfahren gearbeitet, sprich die Aufgabe die als erstes in die Queue geschrieben wurde, wird als erstes abgearbeitet.

Dass es unter LabVIEW ein eigenes Element TASK gibt war mir nicht bekannt (wen wunderts, bei meinen umfangreichen Kenntnissen ;-)). Aber habe ja auch gesagt, dass mein Post nur mein Gedankenkonstruk beschreibt und freu mich natürlich, dass es doch eigermaßen anwendbar ist.

Ich werde morgen mal versuchen soetwas in LabVIEW umzusetzen, wenn ichs schaff werd ich dann auch mal ein VI posten. Lernen an konkreten Aufgaben is doch immer noch das Beste und mit der Foren-Unterstützung mach ich sogar Fortschritte.

"Über Fragen, die ich nicht beantworten kann, zerbreche ich mir nicht den Kopf!" (Konrad Zuse)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.09.2008, 21:33
Beitrag #6

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.700
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Zeitverzögerte Aktion
' schrieb:Da ist es einfach eine Liste von Aufgaben ...
Genau.

Zitat:Dass es unter LabVIEW ein eigenes Element TASK gibt war mir nicht bekannt
Mit Task habe ich hier weniger ein spezielles Element als vielmehr ein "informationstechnisches Konstrukt" gemeint. Wie eine Task realisiert wird (oft durch eine While-Schleife) ist für das allgemeine Verständnis nicht notwendig.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.09.2008, 21:43
Beitrag #7

TSC Offline
LVF-Team
LVF-Team

Beiträge: 1.882
Registriert seit: Sep 2008

LV 2018 SP1
2008
EN

52379
Deutschland
Zeitverzögerte Aktion
Dann sind wir uns ja einig und hoffen, dass Silverhawk geholfen wurde,..

"Über Fragen, die ich nicht beantworten kann, zerbreche ich mir nicht den Kopf!" (Konrad Zuse)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30.09.2008, 12:25
Beitrag #8

TSC Offline
LVF-Team
LVF-Team

Beiträge: 1.882
Registriert seit: Sep 2008

LV 2018 SP1
2008
EN

52379
Deutschland
Zeitverzögerte Aktion
Hum, neuer Tag neue Überlegungen!

Was spricht gegen einen Ansatz ohne Queue?
Habe mal ein kleines Beispiel erstellt. Als Datenquelle habe ich hier einen Sinus-Simulanten genommen, der könnte dann durch den gewünschten Datenstream ersetzt werden.

Programmablauf:

- aktuelle Zeit festhalten
- Signaldarstellung beginnen
wenn zuvor festgehaltene Zeit länger als 3000 ms her ist, Amplitude um 110 erhöhen, ansonsten um 0

Hier das dazugehörige VI:

Lv82_img
Sonstige .vi  AmplitudeErh_hen.vi (Größe: 52,17 KB / Downloads: 236)

"Über Fragen, die ich nicht beantworten kann, zerbreche ich mir nicht den Kopf!" (Konrad Zuse)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30.09.2008, 16:49
Beitrag #9

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.700
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Zeitverzögerte Aktion
' schrieb:Was spricht gegen einen Ansatz ohne Queue?
Das VI - ich bezeichne es mal als Klasse - , welches sampled, wartet und Spannungen ausgibt, kommt selbstverständlich für sich gesehen ohne Queue aus. Im Prinzip kann man das so machen, wie du gepostet hast. Diese Klasse aber soll ja von außerhalb gesteuert werden. Außerdem läuft diese Klasse als eigenständige Task außerhalb jedweden Datenflusses. Und dafür brauchst du eben Queues und/oder Melder.

Das nächste wäre dann, dass eine solche Klasse intern eine Statemachine hat. Ohne Statemachine keine anständige Steuerung. Wenn es dich oder gar Silverhawk interessiert, kannst du mal hier reinschauen. Da hab ich eine solche Klasse gepostet. Mit einer solchen Klasse wäre das Sampled, Warten, Ausgeben etc. möglich.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30.09.2008, 18:53 (Dieser Beitrag wurde zuletzt bearbeitet: 01.10.2008 12:52 von Lucki.)
Beitrag #10

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

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Zeitverzögerte Aktion
' schrieb:Was spricht gegen einen Ansatz ohne Queue?
Überhaupt nichts.
Es ist übrigens so, daß, wenn die Datenaufnahme einmal angestoßen ist, die Messkarte autark arbeitet und ihre Daten über DMA in einen Puffer schiebt. CPU-Belastungen entstehen nur durch das gelegentliche Abholen der Daten und deren Verarbeitung.
Hier mal ein VI, das verzögert einen Gong anstößt, und ich erklär mal wies funktioniert:
Datenaufnahme Einstellung: Rate 1kHz kontinuierlich, 100Samples: Der DAQ Assistent blockiert immer so lange, bis wieder 100 Daten im Puffer sind, dann werden sie ausgegeben. Er wirkt wie Timer von 100ms.
Verstrichene Zeit: Es wurden 3s eingestellt. Das VI wird also alle 100 ms abgefragt, ob die Zeit verstrichen ist. Wenn ja, setzt sich das VI von selbt außer Gefecht, der Case ist dann immer true, und es sitzt im false Case. Die einmalige LH-Flanke des Siganals verstrichene Zeit löst den Gong aus - oder in Deinem Fall eben etwas anderes.

   
Lv80_img
Sonstige .vi  Verzoegert.vi (Größe: 118,48 KB / Downloads: 238)
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
  Unterpanel, keine Aktion labtoni 6 5.664 12.01.2012 15:34
Letzter Beitrag: eb
  Zeitverzögerte Ausgabe von Arraydaten (for Schleife) 206racer 3 3.629 31.05.2011 08:20
Letzter Beitrag: 206racer
  Hebel soll die jeweilige Aktion nur einmal druchführen syntec 15 11.828 26.07.2010 10:00
Letzter Beitrag: macmarvin
  Shortkeys für beliebige Aktion Maxwell 2 3.321 26.01.2009 19:39
Letzter Beitrag: Maxwell
  Jede Stunde 10 Minuten Aktion Christiann 4 4.892 10.12.2008 16:25
Letzter Beitrag: Christiann
  Aktion nach Zeit ausführen olmethn 4 5.952 28.06.2008 21:10
Letzter Beitrag: olmethn

Gehe zu: