26.12.2007, 17:49
Hallo Leute,
erstmal nachtraeglich Frohe Weihnachten u guten Rutsch Euch allen!!!
Ich habe folgende Frage an Euch, (LV 8.2)
ich moechte drei While Schleifen parallel, voneinander abhaengig laufen lassen.
1. Loop bekommt Daten vom Bus (kann keine delays einbauen, da ich sonst frames verpasse), loop period ist ca. 700-800ms
2. Loop soll die Daten von 1. Loop erhalten und zusaetzlich kriegt sie noch Daten aus einer GPIB und USB Schnittstelle. Manche der Daten werden im einem Chart dargestellt. Die grosse Bedingung fuer diese Loop ist, dass sie im Sekundentakt laufen muss, damit timing auf dem Chart stimmt!!!
3. Loop dient zur Erstellung einer Log file (Excel); muss auch im Sekundentakt laufen muessen!
(Erstellung der Log file in Loop 2 dauert zu lang, u irgendwann stimmt das Timing von Loop 2 (bzw Chart) nicht mehr!)
---------
-mit lokale Variablen vom 1. zum 2. Loop ist es nicht moeglich; zumindest bekomme ich noch mehr Probleme, die ich umstaendlich behenben muss
-Producer/Consumer, Producer/Consumer (also die Loop 2 ist Consumer und gleichzeitig Producer fuer Loop 3): kann ich auch vergessen, Timing ist sehr schnell ausser Kontrolle (und laut Theorie soll es auch nicht funktionieren)
-Master/Slave, Master/Slave (Loop 2 ist Slave von Loop1 und gleichzeitig Master fuer Loop 3)
Loop 2 zwinge auch auf eine Loopdauer von 1000ms, was auch von Loop 3 angenommen wird.
Loop 1 laeuft vor sich hin und beeinflusst Loop 2 nicht, was super ist. U sendet die Notification wie erwartet in Loop 2.
Auch wenn ich andere Loopdauer fuer Loop 2 setze ist alles in Ordnung. So erhalte ich auch keine unerklaerlichen Erscheinungen u ich habe eine Abhaengigkeiten zwischen allen Loops. Start/Stop problemlos!
ABER lauter Theorie sollte das auch nicht gehen, weil: Both loops are synchronized to the master loop. The slave loop only executes when the master loop sends a notification. [LV Basics II s. 2-35]
Kann mir jemand sagen, warum dass funktioniert? Wie das begruenden kann??
Warum Loop 1 nichts beeiflusst, obwohl sie Master-Funktion hat?
Kann ich mir da sicher sein, dass es immer funktionieren wird - werde nachher .exe file erstellen??\
Vielen Dank u schoene Feiertage noch!!
Ugur
erstmal nachtraeglich Frohe Weihnachten u guten Rutsch Euch allen!!!
Ich habe folgende Frage an Euch, (LV 8.2)
ich moechte drei While Schleifen parallel, voneinander abhaengig laufen lassen.
1. Loop bekommt Daten vom Bus (kann keine delays einbauen, da ich sonst frames verpasse), loop period ist ca. 700-800ms
2. Loop soll die Daten von 1. Loop erhalten und zusaetzlich kriegt sie noch Daten aus einer GPIB und USB Schnittstelle. Manche der Daten werden im einem Chart dargestellt. Die grosse Bedingung fuer diese Loop ist, dass sie im Sekundentakt laufen muss, damit timing auf dem Chart stimmt!!!
3. Loop dient zur Erstellung einer Log file (Excel); muss auch im Sekundentakt laufen muessen!
(Erstellung der Log file in Loop 2 dauert zu lang, u irgendwann stimmt das Timing von Loop 2 (bzw Chart) nicht mehr!)
---------
-mit lokale Variablen vom 1. zum 2. Loop ist es nicht moeglich; zumindest bekomme ich noch mehr Probleme, die ich umstaendlich behenben muss
-Producer/Consumer, Producer/Consumer (also die Loop 2 ist Consumer und gleichzeitig Producer fuer Loop 3): kann ich auch vergessen, Timing ist sehr schnell ausser Kontrolle (und laut Theorie soll es auch nicht funktionieren)
-Master/Slave, Master/Slave (Loop 2 ist Slave von Loop1 und gleichzeitig Master fuer Loop 3)
Loop 2 zwinge auch auf eine Loopdauer von 1000ms, was auch von Loop 3 angenommen wird.
Loop 1 laeuft vor sich hin und beeinflusst Loop 2 nicht, was super ist. U sendet die Notification wie erwartet in Loop 2.
Auch wenn ich andere Loopdauer fuer Loop 2 setze ist alles in Ordnung. So erhalte ich auch keine unerklaerlichen Erscheinungen u ich habe eine Abhaengigkeiten zwischen allen Loops. Start/Stop problemlos!
ABER lauter Theorie sollte das auch nicht gehen, weil: Both loops are synchronized to the master loop. The slave loop only executes when the master loop sends a notification. [LV Basics II s. 2-35]
Kann mir jemand sagen, warum dass funktioniert? Wie das begruenden kann??
Warum Loop 1 nichts beeiflusst, obwohl sie Master-Funktion hat?
Kann ich mir da sicher sein, dass es immer funktionieren wird - werde nachher .exe file erstellen??\
Vielen Dank u schoene Feiertage noch!!
Ugur