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!
dann muss ich wohl ein unvernuenftiges VI haben Der, der mir das quasi vorgesetzt hat, kann ja dann auch noch nicht soviel von LabVIEW gekannt/gewusst 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? Langsam werden meine Fragen glaube ich peinlich...ich hoff ihr habt Verstaendnis. Mir wird halt gesagt das Ding muss in xyz Tagen laufen, wie ist denen egal. Naja...ich tu mein bestes, muss das Ding bald zum automatischen messen bringen, damit ich mal weiter komme, gibt noch viel zu tun..
22.08.2011, 10:10 (Dieser Beitrag wurde zuletzt bearbeitet: 22.08.2011 10:13 von GerdW.)
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?
(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!
22.08.2011, 12:24 (Dieser Beitrag wurde zuletzt bearbeitet: 22.08.2011 12:26 von GerdW.)
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?
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...
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....
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
RE: Zeitgesteuerte Messung
Dein "Start" muss auch in die Whileschleife. Momentan kriegt die Case-Struktur die Wertänderung von "Start" gar nicht mit.
Gruß Markus
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
24.08.2011, 08:57 (Dieser Beitrag wurde zuletzt bearbeitet: 24.08.2011 09:06 von GerdW.)
dein T3.vi lässt sich hierzu vereinfachen:
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)!
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...