Kollektor im Sub-VI soll nur die übergebenen Werte an das Sub-VI speichern. - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +--- Thema: Kollektor im Sub-VI soll nur die übergebenen Werte an das Sub-VI speichern. (/Thread-Kollektor-im-Sub-VI-soll-nur-die-uebergebenen-Werte-an-das-Sub-VI-speichern) |
Kollektor im Sub-VI soll nur die übergebenen Werte an das Sub-VI speichern. - ahlers01 - 19.08.2006 10:41 ' schrieb:So wie ich Dein Problem verstehe, müßtest Du doch lediglich an den Eingang "rücksetzen" dieses Express-VI die Kontante "true" anschließen, dann wäre die jeweilige Vorgeschichte vergessen und es zählen nur die momentanen Eingangswerte. Aber auf diese naheliegendste Möglichkeit wärest doch Du, oder zumindest einer von denen die Dir hier antworten, längst gekommen, also habe ich das Problem nicht verstanden. Oder doch?Klar kann man das machen. Aber wieso dann überhaupt den Kollektor einsetzen? Ich gahe mal davon aus, dass das Sammeln der Daten überhaupt erwünscht war... Kollektor im Sub-VI soll nur die übergebenen Werte an das Sub-VI speichern. - Lucki - 19.08.2006 11:05 ' schrieb:Klar kann man das machen. Aber wieso dann überhaupt den Kollektor einsetzen? Ich gahe mal davon aus, dass das Sammeln der Daten überhaupt erwünscht war...Das habe ich nicht "hinterfragt" (eigentlich hasse ich dieses in Literatenkreisen durchweg anstelle des einfachen Fragens verwendete Wort, welches mehr Tiefsinn suggerieren soll). Ich selbst verwendete ExpressVI auch nicht, aber nicht weil ich sie ablehne, sondern eher nach dem Motto "Was der Bauer nicht kennt das friß er nicht". Ich versuche aber nicht, wenn andere Express-VI verwenden, ihnen Alternativlösungen aufzudrängen Aber hier hast Du wirklich recht: Wenn mein Vorschlag das ständigen Rücksetzens die Lösung ist, dann käme hinten aus dem ExpressVI immer genau das raus, was vorn reingeht, was soll das dann überhaupt? Kollektor im Sub-VI soll nur die übergebenen Werte an das Sub-VI speichern. - ahlers01 - 19.08.2006 11:20 ' schrieb:ch versuche aber nicht, wenn andere Express-VI verwenden, ihnen Alternativlösungen aufzudrängen Ich bin mir nicht bewusst, irgendwo ne Alternativlösung aufgedrängt zu haben. Ich habe nur gesagt, dass ich keine ExpressVIs benutze, und auch warum ich das nicht tu. Da soll dann jeder eben seine Schlüsse raus ziehen. Eine ExpressVI-freie Alternative habe ich zumindest nicht vorgeschlagen, die stammt von 'SchindelInside'. Kollektor im Sub-VI soll nur die übergebenen Werte an das Sub-VI speichern. - Lucki - 19.08.2006 12:09 ' schrieb:Ich bin mir nicht bewusst, irgendwo ne Alternativlösung aufgedrängt zu haben. Ich habe nur gesagt, dass ich keine ExpressVIs benutze, und auch warum ich das nicht tu. Da soll dann jeder eben seine Schlüsse raus ziehen. Eine ExpressVI-freie Alternative habe ich zumindest nicht vorgeschlagen, die stammt von 'SchindelInside'.Entschuldige, das war nicht in Bezug auf Dich gemeint. Allerdings liest es sich im Kontext so, das war sehr ungeschickt von mir. Es war nicht einmal nur in Bezug auf diesen Threat gemeint, ich habe nur allgemein beobachtet, daß, wenn jemand hier im Board ein Problem mit ExpressVI präsentiert, sich immer welche melden, die ihre Geringschätzung gegenüber ExpressVI ausdrücken und Alternativen vorschlagen. Hier die neuesten Vorschläge. Eigenlob stinkt zwar, aber ich muß schon sagen: auf die Erfindungshöhe dieser neuen Vorschläge bin ich echt stolz, oder findet ihr nicht? <blockquote>1.)Ein Sub-VI nur mit durchgezogenen Verbindungsdrähten zwischen Ein- und Ausgängen. Damit wird der Aufgabenstellung: 123 (IN)--> SUBVI ---> 123 (OUT) auf vollkommene Weise entsprochen. 2.)Dieses SubVI weglassen und die Drähte gleich im HauptVI durchziehen.</blockquote> Kollektor im Sub-VI soll nur die übergebenen Werte an das Sub-VI speichern. - SchwindelInside - 19.08.2006 22:39 <div align="left"> ' schrieb:Ich selbst verwendete ExpressVI auch nicht, aber nicht weil ich sie ablehne, sondern eher nach dem Motto "Was der Bauer nicht kennt das friß er nicht". Ich versuche aber nicht, wenn andere Express-VI verwenden, ihnen Alternativlösungen aufzudrängen Entschuldigung. Dass es sich bei dem Kollektor um ein Express-VI handelt hat Bierber erst in dem Moment hier rein geschrieben als ich mein VI-Vorschlag gerade fertig gebastelt hatte. Ich muss zugeben ich hab immer noch nicht so richtig verstanden was Du eigentlich erreichen möchtest Felix. Aber wenn ich das richtig gesehen habe dann macht der Kollektor in Deinem SubVi nichts anderes als standartmäßig die letzten 1000 aller eingegangenen Messwerte weiterzugeben und den Rest wegzuschmeißen. Da aber bei jedem SubVI-Aufruf << (viel weniger als) 1000 Messwerte ankommen, werden bei den folgenden SubVI-Aufrufen einfach die neuen Messwerte an die bereits gesammelten drangehängt. Erst wenn mehr als 1000 Messwerte im Kollektor sind, werden soviel der als erste eingegangenen Messwerte wie es mehr als 1000 sind weggeschmissen. Hab ich das richtig verstanden? Du kannst auch eine andere Anzahl der zu sammelnden Werte einstellen. Von daher bin ich auch der Ansicht, dass Dein Problem, soweit ich es verstanden habe, besser gelöst ist, wenn Du den Kollektor weglässt und die Messwerte so wie ich es Dir vorgeschlagen hab einfach in der Reihenfolge in der sie kommen in ein Array einsortierst. Den kannst Du dann in dynmaische Daten umwandeln. Diese können dann wenn Du es für nötig hälst mit einem Kollektor auf eine eingestellte Zahl der zuletzt eingegangenen Werte beschränkt werden. Ob die Werte sortiert sind, fand ich bei meinem Vorschlag eigentlich unerheblich. Du hast nichts davon gesagt, dass Du sie sortiert brauchst und wenn ja nach welchen Kriterien willst Du sie eigentlich sortiert haben. Mit dem entsprechendem Algoritmus kannst Du das immer noch mit dem Array machen. Durch das nacheinander Einlesen in den Array werden sie auf jeden Fall automatisch nach zeitlicher Reihenfolge sortiert sein. Du hast geschrieben, dass Die Werte gleichzeitig kommen aber nicht woher sie kommen. Wenn Du sie mit VISA ausließt und weißt wie groß eine Messwertpaket jeweils ist, dann kannst die entsprechende Anzahl der zu lesenden Bytes bei VISA-Read einstellen. Einen schönen Abend noch SchwindelInside</div> Kollektor im Sub-VI soll nur die übergebenen Werte an das Sub-VI speichern. - bierber - 21.08.2006 07:45 OK ihr habt das Problem immernoch nicht ganz verstanden. Natürlich ist es blödsinn das mit einem Kollektor zu machen wenn man nur sowas will 123 (IN)--> SUBVI ---> 123 (OUT) ich will aber das es so aussieht. Schleife 1 Schleife 2 123 (IN)--> SUBVI ---> 123 (OUT) 321 (IN)--> SUBVI ---> 123321 (OUT) 456 (IN)--> SUBVI ---> 456 (OUT) 654 (IN)--> SUBVI ---> 456654 (OUT) 789 (IN)--> SUBVI ---> 789 (OUT) 987 (IN)--> SUBVI ---> 789987 (OUT) und immerso weiter. Ich hoffe mal das es jetzt klarer ist. Grüße Felix Kollektor im Sub-VI soll nur die übergebenen Werte an das Sub-VI speichern. - SchwindelInside - 21.08.2006 09:22 ' schrieb:OK ihr habt das Problem immernoch nicht ganz verstanden. ich hab mir Dein Bsp. nochmal angeschaut. Ich glaube, dass der Grund für das Mischen der Messwerte eine ganz einfache Ursache hat. Bei der Konvertierung in dynamische Daten hast Du nur ein 1-D Array mit einem Kanal eingestellt. Wenn Die Messwerte getrennt gefiltert werden sollen, musst Du mittels Doppelklick auf das Konvertesymbol vor dem Kollektoreingang 1D-Array mit mehreren Kanälen auswählen. Falls Du die gefilterten Messwerte je Kanal noch nach zeitlicher Reihenfolge getrennt haben möchtest, musst Du die Daten hinter dem Ausgang in ein 2D-Array einordnen. Du kannst dann selbst entscheiden, ob darin die Spalten oder die Zeilen die Kanäle darstellen sollen. ich hoffe Dir jetzt etwas geholfen zu haben. Grüße SchwindelInside Kollektor im Sub-VI soll nur die übergebenen Werte an das Sub-VI speichern. - SchwindelInside - 21.08.2006 10:19 <div align="left"> mir fällt da gerade noch was ein. Ich glaube Du möchstes je Schleifendurchlauf ein ganzes 1D-Array mit je 3 Elementen in je einen anderen Kanal einsortieren. Weder der Kollektor noch der dynamische Daten -Konverter wissen das Du bei jedem Schleifendurchlauf in einem anderen Kanal schreiben willst. Du wirst dann also nicht umhinkommen die Daten vor her zu einem 2D-Array zusammenzufassen. Ich hab hier noch ein Vorschlag für Dich.: [attachment=2983] Die Schleife musst Du dann nur im "Über-VI" um das SubVI drumherumsetzen. Je nachdem ob du den 1D-Array in eine Zeile oder Spalte einsortiert hast, soll das dann auch dei Kanäle darstellen. Probier einfach ein bisschen mit der Konvertiereinstellung herum, dann wirst Du es schon herausfinden. Grüße </div> Kollektor im Sub-VI soll nur die übergebenen Werte an das Sub-VI speichern. - Lucki - 21.08.2006 13:06 Zitat:Ich will aber das es so aussieht.Wie gesagt, ich bin keinen Express-VI-Experte, aber von meinem laienhaften Verständnis über die Arbeitsweise des Kollektor-VI würde ich meinen: rechte Maustaste --> Eigenschaften --> maximale Abtastzahl=2 einstellen, dann müßte es doch genau das obige tun, oder nicht? Übrigens: Wenn es Dir z.B. darum geht, von diesen zwei Werten immer den Mittelwert zu bilden, um die Daten zu reduzieren, dann kommst Du natürlich besser, gleich das VI "Datenreduktion" zu verwenden. Kollektor im Sub-VI soll nur die übergebenen Werte an das Sub-VI speichern. - Lucki - 21.08.2006 13:24 Nachtrag: Für mehrere Kanäle müßte man dann die VIs "Signale kombinieren" "Signale trennen" vor-bzw. nachschalten. Wie das funktionieren könnte, wenn Du z.B nur für Kanal 1 einen neuen Wert hast, für Kanäle 2 und 3 aber nicht, weiß ich allerdings nicht. |