LabVIEWForum.de
2 Rings in einer While - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: 2 Rings in einer While (/Thread-2-Rings-in-einer-While)



2 Rings in einer While - schüler94 - 24.11.2012 20:04

[attachment=42351]

[attachment=42350]


Guten Abend.
Ich habe 2 Rings erstellt die eine Förderbandsimulation darstellen. ein Band läuft links , das andere rechts.
über 2 numerische Bedinelemente möchte ich die Geschwindigkeit der 2 Bänder über sollwertausgänge
DAC0 und DAC1 ansteuern. Die Hardware funktioniert auch. nur die Simulation im Frontpanel nicht.
wenn ich hier die Geschwindigkeiten ändere werden beide gleichzeitig Rings langsamer oder schneller. Obwohl sich
die Hardwareausgänge getrennt steuern lassen, funktioniert das im Frontpanel nicht.
Kann mir jemand helfen?

hoffe das meine 2 bilder angezeigt werden.


RE: 2 Rings in einer While - NWOmason - 24.11.2012 22:09

(24.11.2012 20:04 )schüler94 schrieb:  Obwohl sich
die Hardwareausgänge getrennt steuern lassen, funktioniert das im Frontpanel nicht.

Ein VI wäre evtl. auch hilfreich gewesen. Wahrscheinlich funktioniert die Steuerung der HW unabhängig von der GUI.

(24.11.2012 20:04 )schüler94 schrieb:  Kann mir jemand helfen?

Beide Anzeigen befinden sich in der gleichen Schleife. Wenn du unterschiedliche Aktualisierungsraten der 'Laufbalken' willst, kannst du die Anzeigen in jeweils einer eigenen Schleife platzieren. Diese kannst du dann mit unterschiedlichien Aktualisierungsraten laufen lassen Smile

Beste Grüße,
NWO


RE: 2 Rings in einer While - Kiesch - 26.11.2012 10:07

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


RE: 2 Rings in einer While - schüler94 - 30.11.2012 15:24

Hallo Leute.
Vielen Dank für Eure Antworten.
Ich habe die 2 Funktionen aus der Hauptschleife herausgenommen
und jeweils in eine eigene While Schleife gepackt, etwas umgebaut,
jetzt funktioniert alles prima.
Danke nochmal bis zum nächsten Problem.