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 

Zeitgesteuert eine Queue triggern?



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!

18.10.2010, 09:02
Beitrag #4

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.696
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Zeitgesteuert eine Queue triggern?
' schrieb:Wofuer steht bitte BD?
Blockdiagramm.

Zitat:Moment, das ist jetzt verwirrend. Das Haupt.vi besteht aus einem Producer-Consumer-Pattern.
Ein Pattern ist eine Vorlage - die man nicht unbedingt exakt so einhalten muss. Man kann "Producer-Consumer-Pattern" auch als Konzept sehen. Ein VI ist der Producer, ein anderes der Consumer. Producer und Consumer müssen nicht zwangsweise in einem VI liegen. Lediglich die Queue-Referenz (allgemein: Datenreferenz) haben sie gemeinsam.

Zitat:Im Producer sind bei Dir die Eventbuttons?
In dem VI, das den "Producer" enthält, befindet sich auch die GUI-Schnittstelle. Die GUI-Schnittstelle enthält die Buttons, deren Werte der "Producer" dem "Consumer" senden soll.

Zitat:Consumer-Schleife kann als Sub.Vi ausgelagert werden, wenn man moechte?
Ja natürlich.
Du muss das Gesamtprogramm betrachten. In welchem VI eine Operation ausgeführt wird, ist völlig egal. Zwei VIs (das, das den Producer enthält, und das, das den Consumer enthält) sind ja durch die Queue verbunden. Eine Queue ist eine imaginäre Verbindung zwischen Producer und Consumer. Die Queue-Verbindung zwischen den beiden ist nicht sichtbar - was im BD sichtbar ist, ist nur die Referenz. Da Producer und Consumer keine explizite Verbindung haben, kann man sie auch in unterschiedliche VIs legen. Eine explizite Verbindung wäre ein Draht zwischen beiden.

Zitat:Was genau ist jetzt fuer dich ein Modul
Ein Treiber z.B. ist ein Modul. Ein Modul ist eine Klasse, die das Endgerät komplett steuern kann. Eben je nach Vorgabe durch den Producer.

Zitat:und was bedeutet bitte"liegt am Eingang auf dem BD des Main.vi"?
Du weist ja noch: Producer und Consumer sind durch die Queue verbunden. Liegen beiden z.B. in unterschiedlichen SubVIs muss man den SubVIs die Queuereferenz mitteilen. Dies kann man machen, über einen Eingangsparameter am SubVI.

Zitat:Generell ist mir nicht klar, wie ich die dauerhafte Ueberwachung meines Geraetes programmieren soll, ohne das Gerät für die Eventstruktur ("Buttonklicks" zu blockieren") Im Beispiel unten habe ich testweise eine weitere Schleife gebaut, in der ein wait sitzt. Es scheint zu klappen, aber ich weiss nicht, ob die Umsetzung richtig ist.
Kuck ich mir später an.

Zitat:Der Consumer-Loop entspricht also in diesem Beispiel dem Endgeraet-Modul?
Genau.

Zitat:Haettest Du vielleicht ein Beispiel fuer ein FGVs, dass in einem "komplexeren" Programm eingebettet ist? Es heisst zwar immer, in FGVs kann man Daten speichern, nur weiss ich nicht, wie man an einem im Diagramm weiteren Ort, z.b. in einer anderen parallelen Schleife darauf zugreift.
Für ein Beispielprogramm muss ich mal kucken. Zum darauf zugreifen: Einfach das FGV-SubVI auf das BD setzen und aufrufen ...

Zitat:1. Warum hast Du Dich fuer eine Sequenz entschieden?
Müsste ich jetzt erst kucken. Eine Sequenz (Statemachine?) ist das, was das Modul mit dem Endgerät macht: Nämlich "der Reihe nach" diverse Operationen ausführen: Überwachen dies; Überwachen da; Kucken, ob der Producer was geschickt hat und entsprechens ausführen.

[_quote]2. Warum hast Du darauf verzichtet, ein Event dynamisch zu registrieren? Das war ja mein ursprünglicher Ansatz.[_/quote]Warum soll ich ein dynamisches Event verwenden, wenn es auch ohne und einfacher geht.

[_quote]3. Warum sind in der zweiten while-Schleife im Producer-Loop waits eingebaut?[_/quote]Damit diese While-Schleife nicht unendlich schnell läuft. While-Schleifen dürfen nicht unendlich schnell laufen, sonst blockieren sie die CPU.

[_quote_]Die naechste Herausforderung war nun, dem Geraet mitzuteilen, WANN die Richtungsumkehr erfolgen soll.[_/quote_]Das kuck ich mir später mal an.

Ich muss mal was arbeiten - und mal endlich einen Kaffee holen. Außerdem ist die ANnahl der Quotes schon wieder überschritten.

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
Antwort schreiben 


Nachrichten in diesem Thema
Zeitgesteuert eine Queue triggern? - IchSelbst - 18.10.2010 09:02

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Event Triggern über boolean Anzeige simcum 6 3.569 25.02.2023 14:57
Letzter Beitrag: simcum
  Phasen zeitgesteuert wechseln -cosmo- 7 6.379 08.06.2018 12:18
Letzter Beitrag: jg
  Wie auf abgearbeitete Queue warten mez15 11 8.075 28.09.2017 13:02
Letzter Beitrag: TR61
  Datum Uhrzeit Queue DeleteAll 8 5.678 24.03.2017 15:47
Letzter Beitrag: GerdW
  Grab-Botton Zeitgesteuert BeutelSeb 11 8.359 01.06.2016 16:56
Letzter Beitrag: jg
  TDMS in Queue laden gifo 8 5.464 07.01.2016 16:41
Letzter Beitrag: GerdW

Gehe zu: