Hallo houss,
Zitat:ich habe soweit alle schleifen programmiert und jede einzelne funktioniert alleine richtig ,nur wenn ich sie alle im Mainprogramm zusammen auffrufe werden sie nicht parallel ausgeführt.
In deinem Main sind diese 4 Testroutinen als 4 Cases einer Casestruktur ausgeführt. Da eine Case-Struktur immer nur einen Case abarbeiten kann, werden deine 4 Routinen NIE parallel laufen.
Wenn etwas parallel laufen soll, dann muss es auch in parallelen Strukturen programmiert sein.
Aber: Willst du wirklich sowas parallel laufen lassen, wenn 4 Routinen gleichzeitig versuchen, irgendwelche Ausgaben zu beschreiben???
Außerdem:
- Dein Enum zum Auswählen des Cases ist außerhalb der While-Loop. So wirst du nie einen anderen Case als den beim Programmstart aufrufen können. THINK DATAFLOW!
- Die Art und Weise, wie du Einzelwerte aus dem DDT des DAQ-Assi holst (per WaveformGetXY) ist schon sehr kreativ. Wenn schon DDT, dann doch bitte auch "From DDT" aus der Express-Palette!
- "Speichertakt" ist bei dir ein DBL, die Wartefunktion will aber nur Integerwerte haben. Ich würde hier den Datentyp anpassen...
- Du überschreibst andauernd deine Messdatei aufs Neue. Auch nicht der Weisheit letzter Schluß...
- Wozu die (ungebremste!) Schleife, um die Laufzeit zu bestimmen?
- Wozu die (ungebremste!) Schleife, um den DigitalOut (PC Totmann) immer wieder erneut auf TRUE zu setzen? Reicht es nicht aus, den einmal auf TRUE zu setzen? Der merkt sich das doch!? Außerdem solltest du dort einen DAQmxTask anschließen, auf Datentypen achten, etc...
Bitte alles nochmal überdenken...