Task Out wird nicht weiter gegeben Actor Framework
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!
RE: Task Out wird nicht weiter gegeben Actor Framework
(20.01.2020 16:02 )lol schrieb: Das überrascht mich jetzt ein wenig...
Das glaube ich gern.
(20.01.2020 16:02 )lol schrieb: Ich habe das Projekt an das Tutorial von Tom McQuillan (Tom' LabView Adventure) bei Youtube angelehnt.
Er überträgt dort bei gleichem Aufbau einfache Zahlen an den NXG Graph im Actor Core.
Ich kenn das Tutorial nicht. Aber so wie Du es zu versuchst, wird es nicht funktionieren.
(20.01.2020 16:02 )lol schrieb: Weshalb ist es nicht möglich die "Task" zu übertragen und dann im Actor Core vom DAQmx Messwerte zu bekommen
welche anschließend dargestellt werden?
Deine angehängten Bilder zeigen Dein Projekt nur fragmentarisch, lassen aber eindeutig den Schluss zu, dass Du über den Datenfluss nicht nachgedacht hast.
RE: Task Out wird nicht weiter gegeben Actor Framework
(20.01.2020 22:42 )BNT schrieb: Noch ein Hinweis: Was passiert bei der ersten Drahtverzweigung von DMS in Deinem Actor Core.vi?
Gruß Holger
An dieser Stelle wird das Objekt DMM in geklont.
- Und ist an dieser Stelle der DAQmx-Task schon initialisiert?
- Und wie könnte der DAQmxTask an die obere While-Schleife gemeldet werden?
- Da gibt es wieder mehrere Möglichkeiten mit Vor- und Nachteilen.
- Welche die geeignete ist, ist von der Applikation abhängig.
RE: Task Out wird nicht weiter gegeben Actor Framework
(22.01.2020 09:55 )lol schrieb: Nein .. der Task ist ja erst initialisiert wenn über den Launcher die Message zur initialisierung gesendet wird ..
Stimmt genau! Du benutzt aber den Wert von einem Zeitpunkt bevor der Actor seine Message Loop erreicht.
(22.01.2020 09:55 )lol schrieb: Ich gehe mal davon aus, daß die von mir vorgesehene "verkabelung" zur Übergabe dann nicht korrekt ist.
Du musst den DAQmx-Task also über eine der bekannten Mechanismen, Queue, User Defined Event usw. an die DAQ-Schleife im Actor Core übertragen bevor Du die Auslese beginnst.
(22.01.2020 09:55 )lol schrieb: Welche eignet sich für den Einstieg am besten?
Oder ist es hier sinnvoller nach Kriterien des Programms zu entscheiden?
Wie schon zuvor geschrieben, wird das durch die Anwendung bestimmt. Was willst Du erreichen? Was soll der Actor tun?
RE: Task Out wird nicht weiter gegeben Actor Framework
Vielen Dank!
Das hilft meinem Verständnis schon weiter.
So wie ich es richtig begriffen habe, läuft der Actor Core also immer und ohne Aufruf unabhängig von den anderen VI's?
Wäre es dann nicht unter diesen Umständen sinnvoller den Messvorgang nicht im Actor Core stattfinden zu lassen,
sondern diesem nur die Messsignale zur Verfügung zu stellen, die in einem anderen VI aufgenommen werden?
RE: Task Out wird nicht weiter gegeben Actor Framework
(23.01.2020 16:44 )lol schrieb: So wie ich es richtig begriffen habe, läuft der Actor Core also immer und ohne Aufruf unabhängig von den anderen VI's?
Nein, der Aktor wartet auf eingehende Nachrichten und tut was darin verlangt wird. Er wird nicht von sich aus tätig. Von Natur aus ist er passiv.
(23.01.2020 16:44 )lol schrieb: Wäre es dann nicht unter diesen Umständen sinnvoller den Messvorgang nicht im Actor Core stattfinden zu lassen,
sondern diesem nur die Messsignale zur Verfügung zu stellen, die in einem anderen VI aufgenommen werden?
Wo denn sonst? Das Actor Core.vi der Kindklasse ist genau zu diesem oder ähnlichen Zwecken nűtzlich. Hier kann die Nachrichtenschleife des Aktors mit zusätzlichen Threads dekoriert werden.
Angenommen, die Daten werden in einem anderen VI gemessen, wie willst Du sie dem Aktor senden ohne seinen Enqueuer zu kennen? Und wohin soll er die Ergebnisse einer Datenanalyse senden?
Fragen űber Fragen! Ohne Dir zu nahe treten zu wollen: Vielleicht ist ja doch mal ein Lehrgang angebracht, um ein grundlegendes Verständnis zu den Themen Datenfluss und Entwurf von asynchronen Systemen zu erlangen. Dieses Forum ist dafür vermutlich kein adäquater Ersatz.
RE: Task Out wird nicht weiter gegeben Actor Framework
Hallo Holger,
ich glaube, daß ich mich falsch ausgedrückt habe, und du meinen Vorschlag zurecht falsch Verstanden hast.
Mit VI meine ich eine Methode die zum Messen genutzt wird. Die Daten werden an den Actor Core übergeben
und in diesem visualisiert.
Ist es nicht theoretisch auch möglich die initialisierung im "Pre Launch Init" Override durchzuführen?
Diese wird meines Wissens ja eben vor dem Start des Aktors ausgeführt.
Gruß
27.01.2020, 17:24 (Dieser Beitrag wurde zuletzt bearbeitet: 27.01.2020 17:27 von BNT.)
RE: Task Out wird nicht weiter gegeben Actor Framework
(27.01.2020 13:47 )lol schrieb: Mit VI meine ich eine Methode die zum Messen genutzt wird. Die Daten werden an den Actor Core übergeben
und in diesem visualisiert.
Ja, aber hoffentlich nicht wie in dem Bild von oben, sondern mit geeigneten Mitteln. Niemal vergessen: der Aktor lebt in der Message Loop, also dem Actor Core.vi der Actor.lvclass.
(27.01.2020 13:47 )lol schrieb: Ist es nicht theoretisch auch möglich die initialisierung im "Pre Launch Init" Override durchzuführen?
Diese wird meines Wissens ja eben vor dem Start des Aktors ausgeführt.
Ja, das stimmt. Das Pre Launch Init.vi muss im Fehlerfall aber alle allozierten Resourcen selbst wieder freigeben, da das Stop Core.vi in diesen Fall nicht ausgeführt wird. Im Fehlerfall wird der Aktor, also sein Actor Core.vi, ja gar nicht erst gestartet. Das hat zur Folge, dass das Aufräumen zweifach implementiert werden muss, oder ein entsprechendes SubVI zweimal aufgerufen werden muss.