RE: 2 Rings in einer While
Konkreter: Du hast ein Datenflussproblem!
Deine 4 "Cluster" (die zwei Berechnungen für die Numerische Ausgabe, sowie die zwei Sachen die auf Waits gehen) werden alle parrallel abgearbeitet. Die Berechnungen sind schnell fertig, allerdings die Waits (da es Waits sind) nicht. Dein längeres Wait bestimmt dir dann also den Speed beider Förderbänder in der Anzeige (da das am längsten braucht zum abarbeiten).
Was du tun solltest:
- Datenflussprinzip verinnerlichen (alles was keine Datenabhängigkeit zueinander hat wird parrallel abgearbeitet!)
- wenn du schon den U16 verwendest, mach doch oben bei der Berechnung für die Anzeige alles auf U16 und nicht auf DBL (da bei double auch die Berechnung mittels Modulo eigentlich reichlich sinnfrei ist, vor allem da du anschließend eh wieder auf U16 konvertierst...
- Schleifen in zwei Schleifen auftrennen (in eine das eine Wait in die andere das andere Wait; dazu jeweils die Berechnung für die Förderbandposition des entsprechenden Bandes (Anzeige)
- ich vermute mal nach kurzer Ansicht des Ausschnitts, dass du relativ exzessiv mit lokalen Variablen arbeitest. Auch hier gilt in der Regel (als Tipp): Wo man mittels Datenfluss arbeiten kann (eine Leitung ziehen) sollte man das auch tun. Variablen wie in klassischen Programmiersprachen gibt es in Labview nicht; entsprechend gibt es auch meist nicht den Bedarf Werte explizit in Variablen zu schreiben (implizit stellt an sich fast jede Leitung quasi eine Variable dar, wenn man sich das so vorstellen will).
Gruß Kiesch
Zitat:Märchen und Geschichten werden erzählt am Lagerfeuer, technischen Fakten werden mitgeteilt (oder so). (Genauso wie Software nicht auf einem Server "herumliegt", die ist dort installiert.)
*Zitat: IchSelbst*
|