LabVIEWForum.de
Case wird wiederholt --> weiß nicht warum - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Case wird wiederholt --> weiß nicht warum (/Thread-Case-wird-wiederholt-weiss-nicht-warum)



Case wird wiederholt --> weiß nicht warum - mexas450 - 01.12.2014 20:11

Hallo Leute,

hier im Forum wurde mir schon echt super geholfen! Nun habe ich ein neues Problem!
In meinem Programm wiederholt sich CASE11 (2x) und ich weiß nicht warum!!!!AngryAngry

Ich möchte aber das es nur 1x abläuft und danach CASE12 bearbeitet wird.

Ich entschuldige mich schon einmal für den event. schlechten Aufbau des Programmes. Ich bin kompletter Neuling auf dem
Gebiet labview.

Falls jemand Vorschläge hat zur Verbesserung meines Programmes, nehme ich diese gerne dankend an!Big GrinBig GrinBig Grin


RE: Case wird wiederholt --> weiß nicht warum - GerdW - 01.12.2014 21:05

Hallo mexas,

bitte erst einmal dein VI aufräumen und all diese RubeGoldbergs entfernen!
- es gibt Funktionen wie "+1" und "=0"…
- THINK DATAFLOW! Heavy overuse of local variables…
- CoercionDots…
- ordentliches Enum für die States…


Nun zu deiner Frage:
Neben den offensichtlichen Problemen solltest du einfach mal debuggen! Wenn der Case 11 wiederholt wird, muss die Bedingung dafür irgendwo herkommen… Und sowas findet man sicherlich schnell mit einfachem Debugging (Sonden, Highlighting)!


RE: Case wird wiederholt --> weiß nicht warum - Lucki - 02.12.2014 09:56

Die Erklärung ist ganz einfach. Theoretisch ist es zwar so, dass sich bei nicht voneinander datenabhängigen Progammteilen die Reihenfolge nicht voraussagen läßt. Praktisch ist es aber so, dass erst die einfachen Sachen gemacht werden, und erst dann kommt das dran, was in Strukturen reingeschachtelt ist.
In Deinem Fall heißt das: Es wird zuerst der Code in der rechten unteren Ecke abgearbeit, die lokalen Variablen Batteriechchek und Systemcheck gelesen und die Vorentscheidung über den Schleifenstop gefällt. Erst später werden diesen beiden Variablen in den beiden Schleifen neue aktuelle Werte zugewiesen, die aber dann für die Entscheidung über den Schleifenstop nicht mehr relevant sind.
Also, lange Rede kurzer Sinn, den Case so ändern:
[attachment=51509]

@Gerd
Zitat:bitte erst einmal dein VI aufräumen und all diese RubeGoldbergs entfernen!
- es gibt Funktionen wie "+1" und "=0"…
- THINK DATAFLOW! Heavy overuse of local variables…
- CoercionDots…
- ordentliches Enum für die States…
Gottseidank, dass es so ist. Wegen dieser und anderer Unzulänglichkeiten müssen wir uns wenigstens keine Gedanken machen, dass mit diesem Raketenprogamm jemals Menschen getötet werden könnten und wir uns hier mit unseren Tips mitschuldig machen. Big Grin


RE: Case wird wiederholt --> weiß nicht warum - Y-P - 02.12.2014 10:55

Tip:
[attachment=51510]

Gruß Markus


RE: Case wird wiederholt --> weiß nicht warum - mexas450 - 11.12.2014 15:04

Hallo Leute,

sorry das ich jetzt erst antworte! Vielen Dank für eure Mühe.
Bin dann selber noch auf die Lösung gestoßen.

Gruß Mexas450


Verbesserungs-Vorschläge - mexas450 - 11.12.2014 15:08

Hallo Leute,

ich habe mich mit meinem Programm schon öfters hier vorgestellt! Habe bis zum heutigen Tage auch sehr gute Hilfen bekommen.
Vielen Dank nochmal dafür an euch.

Nun bin ich eigentlich meiner Meinung nach fertig.
Ich würde aber gerne wissen in wie weit ich das Programm noch einen Tick "professioneller" gestalten kann?


Gruß mexas450


RE: Verbesserungs-Vorschläge - Trinitatis - 11.12.2014 17:22

(11.12.2014 15:08 )mexas450 schrieb:  Nun bin ich eigentlich meiner Meinung nach fertig.

... gewagte These Smile


(11.12.2014 15:08 )mexas450 schrieb:  Ich würde aber gerne wissen in wie weit ich das Programm noch einen Tick "professioneller" gestalten kann?

..dann solltest du dein VI nicht in der neusten LV-Version speichern.
Dein VI können viele (inkl. mir) nicht öffnen!



Gruß, Marko


RE: Case wird wiederholt --> weiß nicht warum - GerdW - 11.12.2014 22:22

Hallo mexas,

Zitat:Ich würde aber gerne wissen in wie weit ich das Programm noch einen Tick "professioneller" gestalten kann?
- viel zu viele lokale Variablen (mMn sehr unprofessionell)
- ungebremste Schleifen…


RE: Case wird wiederholt --> weiß nicht warum - mexas450 - 12.12.2014 10:24

Hallo zusammen,

vielen Dank für die schnellen Antworten. Neuste Version kann ich nachher mal hochladen. Habe mein Stick jetzt nicht bei.
Wie meinst du das mit einer "ungebremsten Schleife" bzw. wieso sind lokale Variablen schlecht?


Gruß Mexas


RE: Case wird wiederholt --> weiß nicht warum - Lucki - 12.12.2014 13:35

Die inneren (ungebremsten!) Schleifen sind alle überflüssig. Man kann die Wiederholungen über die äußere Schleife abwickeln lassen, wobei es in ein und demselben Case immer rein und raus geht, bis der Bediener etwas anderes entscheidet. Es wird dann einiges einfacher, z.B der Programmabbruch.

Und wenn Du mich fragst: das Programm schreit nach Bedienelemente-Behandlung mit Ereignsnisstruktur. Wenn das nicht gemacht wird, ist für mich das Programm eher nicht professionell. Das erfordert allerdings eine Neustrukturierug des gesamten Programms, mit einer kleinen Einfügung von irgendwas ist das nicht getan.

"Ungebremste Schleife": Ohne irgendwelche Waits in der Schleife. Die Durchlauffrequenz geht gegen unendlich, die CPU-Belastung ebenfalls, es kommt zur Überhitzung des Pcs mit anschließender Explosion, Zimmer- und Hausbrand, eine ganze Stadt kann abfackeln. Willst Du das? Big GrinBig GrinBig Grin