Kostet das reine Anfordern von Meldern viel Ressourcen?
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!
Kostet das reine Anfordern von Meldern viel Ressourcen?
Moin zusammen,
ich habe ein komplexes Projekt welches ettliche Melder und Queues verwendet. Meist werden in SubVIs diverse dieser Melder und Queues angefordert, selten benötige ich tatsächlich alle. Mein Plan wäre jetzt, der Übersicht halber, das Anfordern der Melder und Queues in ein SubVI zu packen, welches Cluster von ähnlichen Meldern und Queues ausgibt. Ich würde also in jedem SubVI ALLE Melder und Queues anfordern, obwohl ich nur einen Teil davon benötige. Mich würde jetzt interessieren, wie sehr ich mein System damit belaste, grob geschätzt 10 überflüssige Melder und Queues anzufordern.
Hat da jemand Ahnung oder kann mir jeamnd grob erklären, was passiert wenn ich eine Anforderung durchführe?
Vielen Dank und liebe Grüße,
Torsten
"Über Fragen, die ich nicht beantworten kann, zerbreche ich mir nicht den Kopf!" (Konrad Zuse)
Kostet das reine Anfordern von Meldern viel Ressourcen?
Das hört sich sehr interessant an. Ich habe vor einigen Tagen auch mit Meldern rumgespielt. Dort habe ich mit beim Programmstart ein Array aus Meldern erzeugt. Wenn man denn einen Melder benutzen will, dann benutzt man einfach die Arrayfunktionen und sucht sich aus diesen die richtige Referenz raus. Diese wird dann an das Melder senden.vi üergeben.
Jedoch habe ich momentan andere Probleme. Ich habe eine Datenerfassungskarte, die liefer immer ein großes Zweidimensionales Array. Wenn neue Daten zur Verfügung stehen, dann wird zuerst der Melder 1 aufgerufen und die Daten übergeben. Wenn jetzt das zweite große zweidimensionale Array kommt, dann wird der 2. Melder aufgerufen und die Daten übergeben. Insgesamt habe ich die Möglichkeiten 8 Threads zu verarbeiten. Der Melder selber ruft ein Sub-Vi auf in dem die Daten verarbeitet werden. Nachdem die Daten verarbeitet sind, wird der Melder x aufgerufen Dieser Melder übergibt die Ergebnisse an die Bildschirmausgabe. Dieser Melder wird somit von jedem Datenmelder ausgeführt.
Dadurch erzeuge ich eine Pipeline. Somit müsste die Datenverarbeitung 4 mal so schnell sein. Dies ist es aber leider nicht. Ich denke mal das Die Übergabe der Daten einfach zu viel Zeit in Anspruch nimmt. Kann man das verbessern?
Kostet das reine Anfordern von Meldern viel Ressourcen?
Ich habe 2048x1000xSingle(4Bytes) --> 8,192MB ist das Array groß. Wie kann ich denn die Zeit, die der Melder benötigt, um Daten zu übergeben, messen? Eigentlich muss ja nur die Adresse des Arrays übergeben werden. Er soll die Daten ja nicht noch einmal kopieren.
Ich kann mal ein Beispielcode posten dies ist jedoch mit Labveiw 8.6.1 ich weiß halt nicht ob Du es öffnen kannst.