![]() |
Zeitgesteuerte Messung - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +--- Thema: Zeitgesteuerte Messung (/Thread-Zeitgesteuerte-Messung) |
RE: Zeitgesteuerte Messung - DennisSA - 22.08.2011 10:02 Hallo GerdW, dann muss ich wohl ein unvernuenftiges VI haben ![]() Leider habe ich keinen ErrorCluster an dem Pin Connector links/rechts unten. Wie bekomme ich denn da jetzt einen Error Cluster hin? Und wie teil ich dem mit das ich nen Error brauch wenn mein VI abgearbeitet ist? ![]() ![]() RE: Zeitgesteuerte Messung - GerdW - 22.08.2011 10:10 Hallo Dennis, ErrorCluster finde ich dort, wo ich dich schon drauf hingewiesen habe: [attachment=35391] Zitat:an dem Pin Connector links/rechts unten. Wie bekomme ich denn da jetzt einen Error Cluster hin?LabVIEW-Hilfe lesen! Es geht nicht darum, einen Fehler zu signalisieren - es geht darum, den Datenfluß zu steuern! Ein subVI stellt erst dann Daten bereit, wenn es abgearbeitet ist. Es kommt also erst dann ein Wert (z.B.) über den ErrorCluster, wenn das subVI fertig ist. Du wolltest doch wissen, wann das subVI fertig ist, oder? RE: Zeitgesteuerte Messung - DennisSA - 22.08.2011 12:05 (22.08.2011 10:10 )GerdW schrieb: Es geht nicht darum, einen Fehler zu signalisieren - es geht darum, den Datenfluß zu steuern! Ein subVI stellt erst dann Daten bereit, wenn es abgearbeitet ist. Es kommt also erst dann ein Wert (z.B.) über den ErrorCluster, wenn das subVI fertig ist. Du wolltest doch wissen, wann das subVI fertig ist, oder?Hallo Gerd, Ja genau ich wollte wissen wann das subVI fertig ist. Nur weiss ich leider trotz der LabVIEW-Hilfe nicht, wie ich das Error Cluster benutzen bzw einbauen soll. Ich hab jetzt mal nen ganz einfaches VI gemacht (ist im Anhang), kannst du mir vielleicht daran zeigen wie das mit dem Error Cluster geht? In diesem Beispiel habe ich eine Event Struktur genommen (die vom Lucki) und habe eine Zeit eingestellt. Wenn ich jetzt auf Start druecke, laeuft die Zeit ab. Ist die Zeit abgelaufen wird das subVI (test1) ausgefuehrt, in dem SubVI wird nur 5s gewartet und dann eine LED angesteuert. Dieses LED Signal will ich dann im eigentlichen VI nutzen um ihm zu sagen: Hey das subVI ist abgearbeitet, du kannst von vorne anfangen zu zaehlen und das ganze wiederholen! Und in diesem fett geschriebenen Teil komm ich nicht weiter. Ich weiss nicht wie ich das boolsche Signal von dem subVI nutzen kann um dem Haupt-VI zu sagen er hat seine arbeit erfolgreich erledigt --> mach es von vorne! RE: Zeitgesteuerte Messung - GerdW - 22.08.2011 12:24 Hallo Dennis, Zitat:Dieses LED Signal will ich dann im eigentlichen VI nutzen um ihm zu sagen: Hey das subVI ist abgearbeitet, du kannst von vorne anfangen zu zaehlen und das ganze wiederholen!In dem Moment, wo du den boolschen Wert vom subVI erhälst, ist es auch abgearbeitet! Wenn die LED angeht, heißt das auch "das subVI ist fertig"! (Datenfluss-Prinzip!) Zu deinem subVI: Wozu die Schleife? Wozu die Casestruktur? RE: Zeitgesteuerte Messung - DennisSA - 22.08.2011 12:28 Wartet mein "Timeout" Case bis die LED True bekommt und geht erst dann weiter? Wenn das so ist, dann hab ich die Loesung fuer mein Programm! Die LED geht halt nicht mehr aus wenn sie ein mal an war, aber ich denke da liegt der Hund wieder wo anders begraben... RE: Zeitgesteuerte Messung - GerdW - 22.08.2011 12:31 Hallo Dennis, ich wiederhole mich ja ungern, aber: DATAFLOW! Dein Eventcase kann erst beendet werden, wenn alle enthaltenen subVIs abgearbeitet sind! Und das die LED nicht wieder ausgeht, hängt damit zusammen, dass du nur ein TRUE hineinschreibst und nirgends ein FALSE... RE: Zeitgesteuerte Messung - DennisSA - 24.08.2011 08:41 Ich bins nochmal ![]() Also ich hab jetzt mehrere Sachen probiert.....ich schaut euch bitte mal die zip Datei an, diese funktioniert so, wie ich es eigentlich haben will. Wenn ich das jetzt aber genau so aufbaue, nur mit meinem Messprogramm als subVI, dann sendet das nie einen ErrorCase oder ein True an der LED, warum weiss ich nicht, zum besseren Verstaendnis ist unten eine kleine Skizze angehaengt. So sieht im groben mein Mess-VI aus, wenn es im Idle ist, also gestartet wurde aber noch nichts gedrueckt wurde, dann ist es die ganze Zeit in einem Case (Idle) druecke ich Start, dann setzt es alle Dinge in Gang die programmiert wurden, gibt auch im Case "Speichern" dann an die LED ein TRUE (sollte vereinfacht in der Skizze dargestellt werden) Diese LED hab ich im Connector Pane auf einen Pin gelegt, doch leider kommt da dann kein True raus und ich verstehe einfach nicht warum, denn im Programm wie in der zip Datei funktioniert das ja.... Was mach ich nur falsch ![]() RE: Zeitgesteuerte Messung - Y-P - 24.08.2011 08:53 Dein "Start" muss auch in die Whileschleife. Momentan kriegt die Case-Struktur die Wertänderung von "Start" gar nicht mit. Gruß Markus RE: Zeitgesteuerte Messung - GerdW - 24.08.2011 08:57 Hallo Dennis, dein T3.vi lässt sich hierzu vereinfachen: [attachment=35436] Alles andere drumherum ist RubeGoldberg-Nonsens! Die Case-Struktur erhält immer ein TRUE als Vorgabe, die lokalen Variablen sind unnötig, das FALSE-Setzen des Ausgangs in der Sequenz kommt im Haupt-VI nicht an (DATAFLOW!), die WhileSchleife ist unnötig (da nur einmal durchlaufen), ... Edit: Den ErrorOut bitte immer (!) rechts unten im 4-2-2-4-ConnectorPane anschließen - das gibt der StyleGuide so vor und hat seine (praktischen) Gründe. Auch wenn du ihn nicht in deinem HauptVI benutzt (da du schon Dataflow per Boolean vorgibst)... Edit2: Zu deinem Bildchen in Beitrag #37: Wieso hier die lokale Variable? Entweder gibst du in beiden Cases einen Wert aus (dann nutze einen Tunnel und Draht zum Terminal) oder du gibst nur im TRUE-Case einen Wert aus (dann schiebe das Terminal dort hinein und nutze Draht)! RE: Zeitgesteuerte Messung - DennisSA - 24.08.2011 09:21 Danke fuer eure Verbesserungsvorschlaege, ich weiss jedoch nur immer noch nicht, warum das in der Zip Datei funktioniert, aber in der Mess-VI nicht. Mein Mess-VI gibt einfach kein True Signal raus, damit meine Timout Bedinung erfuellt ist und die Schleife dann weiter zaehlen kann... |