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!
Und nicht vergessen, beschäftige dich mit dem Programmier-Konzept "State-Machine". Im Prinzip machst du schon so was in der Art, aber durch deine verschachtelten Case-Strukturen wird es unübersichtlich.
Gruß, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
' schrieb:Dann pack in den Init-Case auch das Initialisieren des Shift-Register! .....Case 0 wird auf jeden Fall als erstes durchgeführt, somit ist ab diesem Zeitpunkt das Shift-Register korrekt initialisiert.
Eine "korrekte" Initialisierung im Sinne von Speicherallokierung ist das dann aber nicht, right? Das müsste auf jeden Fall dadurch passieren, der SR vor Schleifenbeginn mit Werten zu füttern!
Ich vermute aber mal, dass das hier nicht relevant ist...
A.
"Is there some mightier sage, of whom we have yet to learn?"
"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
18.11.2009, 07:15 (Dieser Beitrag wurde zuletzt bearbeitet: 18.11.2009 07:17 von Achim.)
' schrieb:Das würde mir nicht so gut passen, weil die spätere Exe auch auf Rechner ohne DAQmx laufen soll, da das Programm nicht nur zum Erfassen des Signals dient. Ich möchte da keine unnötigen Fehlermeldungen provozieren.
Ich verstehe den Einwand nicht...solange du dieses VI (inkl. seiner SubVIs) auf einem Rechner ohne DAQmx verwenden willst - und dabei ist es egal, ob du die DAQ-Init unmittelbar vor (=links von) der Schleife oder in einem Case in der Schleife selbst machst - wirst du IMMER eine Fehlermeldung kriegen!
A.
"Is there some mightier sage, of whom we have yet to learn?"
"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
Auf nem Rechner ohne DAQ wird die Init überhaupt nicht gestartet. Alles passiert dann in einer parallelen Schleife, während "diese" schleife im Leerlauf ihre Runden dreht. Klar ist das nicht besonders zuverlässig, weil der Benutzer die Init starten könnte. Aber mir ist keine andere Lösung eingefallen.
Gruß dimitri
„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
Wenn du diese VI's in deiner Exe bzw. in deinem VI drin hast und das Programm geladen wird, kriegst du ne Fehlermeldung...unabhängig davon, ob du das VI wirklich aufrufst! Es ist im Code hinterlegt und deswegen sucht die Exe bzw. das VI nach den entsprechenden Komponenten!
"Is there some mightier sage, of whom we have yet to learn?"
"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
Ein weiterer guter Tip:
Beschäftige dich mal mit der "Conditional Disable Structure". Damit kannst du eine Version mit und ohne Recorder erstellen. Wenn du dann eine Exe erstellst, ist einmal der DAQmx-Code dazugelinkt, einmal nicht.
Gruß, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
In der normalen Hilfe steht da schonmal sehr wenig drüber. Muss mal rausfinden wie man da die Bedingung definiert.
Ich hab jetzt viele neue Erkenntnisse (parallel) gewonnen und muss die erstmal verarbeiten. Vielen Dank für euer Engagement! Ich versuch's jetzt ne Weile alleine. Der thread muss ja nicht noch weiter vom Ursprungsthema abdriften.
Beste Grüße dimitri
„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)