LabVIEWForum.de - würfelsimulation - Frage zu Start Stop von Schleifen

LabVIEWForum.de

Normale Version: würfelsimulation - Frage zu Start Stop von Schleifen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo,

ich bin neu im grossen und noch fremden LabVIEW Land und wollte zwecks Einarbeitung mal eine kleine simulation erstellen.

Grobidee:
--
- Reiterlayout
---Reiter 1 - Konfiguration - Anzahl der Würfe definieren per Eingabefeld, Simulation starten Knopf
---Reiter 2 - Auswertung - aufbereitung der Zahlen in Tabelle, bisher wird dies nur in ein Textfile geschrieben

Soweit so gut.

Bevor ich mich weiter verzettel,, mal die Frage wie ich diese Grund-Schleifen Struktur am besten machen.
Wenn ich es richtig verstehe muss ich bei einer for-schleife immer Konstanten verwenden ?

meine ablauflogik wäre:
--
Wenn Benutzer Start-Knopf gedrückt hat, durchlaufe meine Schleife mit der Würfelsimulation so oft wie der Benutzer im Eingabefeld ausgewählt hat.
d.h. müsste mit einer reinen For-schleife machtbar sein.

Leider tue ich mich sehr schwer dies in LabVIEW umzusetzten. Die reine würfelsimulation funktioniert soweit, nur die Schleifen und Start/Ende geschichte ist mir bis dato nicht klar.

eventuell über ein Case (True/False) um zu überprüfen ob der button GO gedrückt wurde und dann darin die For-Schleife die hoffentlich nicht nur über eine Konstante gefüttert werden kann.


gruss
fidel
Hallo Fidel,

lade doch Dein VI mal hoch, dann können wir an Deiner Lösung weiter arbeiten.
Ist sicher für andere Anwender auch ganz interessant.
Dein Grundidee ist ok.

Grüße
Andreas
Hallo,

ok im anhang mal der aktuelle Stand.

Info:
- Man definiert die Runden-anzahl
- Klickt auf den GO button und die Simulation läuft, sowie die Datei wird geschrieben.

Was als nächster Schritt fehlt und für mich unklar ist, wie ich:
- nach erfolgreicher simulation dem User dieses auch klarmache.
d.h. Abändern des Knopf-Status, und herausspringen aus dem Case.
- gesamt EXIT Button dazu


als Randinfo:
ich will hier kein 100% Hilfe, eher Tips und Ideen, sonst wird das mit dme lernen nixTongue


' schrieb:Hallo Fidel,

lade doch Dein VI mal hoch, dann können wir an Deiner Lösung weiter arbeiten.
Ist sicher für andere Anwender auch ganz interessant.
Dein Grundidee ist ok.

Grüße
Andreas
ok, bin schon weitergekommen:

anbei die Version


Was ich dabei nicht verstehe:

a) warum wird die Anzahl an Simulationen korret in die Datei geschrieben,
aber in dem Feld: aktueller wurf bis ins unendliche weiter-pseudo-simuliert ?

b) wie kann ich eine Routine machen die überprüft ob überhaupt ein ausführen ( GO) sinnvoll ist ?
d.h. if rundenanzahl < 1 then output: please insert a value > 0;


c) die routine die es dem Benutzer überhaupt ersichtlich macht ,dass die Simulation beendet ist und er sofern Bedarf da ist, eine neue startet ?


gruss
fidel
Hallo fidel,

Du könntest alle Würfelergebnisse leicht in einem Array darstellen.
Siehe Anhang.

Gruß,
Marko
Vorab ein Dank an euch beide.

Ich habe meine Test-Applikation nun ein wenig aufgeräumt und mehr oder weniger erweitert.
Dabei kamen natürlich weitere Fragen auf, wie zu erwarten warTongue

a) Arrays:
---------------
Nachdem nun alle Wurf-Simu- Ergenisse in einem Array geladent sind, würde es ja Sinn machen eine Häufigkeitsverteilung einzubauen.
Von der Logik Seite würde ich dies als Folge des vorhanden Arrays einbinden.
D.h. ein 2tes array, welches für die 6 möglichen Zahlen einen Zähler speichert, der anfangs auf Null gesetzt wurde.

Oder existiert dort evlt wieder ein praktisches Sub-VI welches ich ähnlich wie das der Datenverdichtung einsetzten kann ?



b) Timing:
--------------
Um während der Simulation des wurfes dem Benutzer die Möglichkeit zu geben, die einzelnen Ergebnisse quais live zu sehen, würde ich gerne nach jedem Ergeniss ein WAIT einbauen. Leider endet dies bei mir immer in ge-brochenen Kabelsträngen, weshalb ich vermute ich verwende die falschen Einheiten.

Ich hatte versucht (siehe Anhang) vor dem TEXTfeld "aktueller Wurf" ein WAIT einzubinden.
Das Ergebniss kann ich nicht wirklich nachvollziehen, auch weil ich keine eingabemöglichkeit meines ms Wertes gefunden habe.

Was ist dort falsch, oder worin liegt mein Gedankenfehler ?

NOTE: Wenn die WAIT Einheit herausgenommen wird, läuft die Applikation wieder OHNE Probleme.




c) Reset vor applikationsstart:
-----------------------------------
Im Moment sind die Werte des letzten Ausführend ja noch jeweils in der Testapplikation enthalten.
wie ist die Herangehensweise wenn ich vor jedem Start automatisch alle Felder und Werte resetten will ?


d) Reset innnerhalb der laufenden Applikation
-----------------------------------------------------
, siehe vorgesehenen Button, werde ich wohl aus C) ableiten können, nehme ich an.



Gruss
fidel
Hier eine kleine Erweiterung.

Gruß,
Marko
Hallo Fidel!

Wie mein Vorgänger habe ich das VI auch ein kleines bisschen erweitert.

Marker hatte bereits das mit dem Warten gelöst. Meine Erweiterung besteht nun daran, dass ich einen Eigenschaftsknoten eingebaut habe, mit dem du deine Eingabe und ausgabefelder wieder auf die Standardwert zurücksetzen kannst. Während des Würfelns wird der Reset-Knopf zusätzlich deaktiviert, so dass während dessen kein Reset möglich ist.
Allerdings ist diese Lösung nicht sehr schön. Ich würde Dir nun empfehlen auf eine Ereignis-Schleife zurückzugreifen.

Schöne Grüße
Falk
Hallo,

mal wieder ein grosses Dank an Endanwender und marker.


Fragen die sich darauf bei mir ergeben:

a) Was ist an deiner (@endanwender) Lösung nicht schön ? Was sind die Nachteile etc.. ?

b) Ich habe mal versuchsweise dein Konstrukt nachgebildet,geht soweit auch,
nur das Deaktivieren des Knopfes während der Simulation, welches über eine Konstante (warum auch immer) und einen Eigenschaftsknoten realisiert wird, ist mir unklar. Das reine Resetten via Methodenkoten kriege ich hin.



' schrieb:...
Allerdings ist diese Lösung nicht sehr schön. Ich würde Dir nun empfehlen auf eine Ereignis-Schleife zurückzugreifen.
mh, kein edit-button:



Was mir gerade erneut aufgefallen ist:
-----------------------------------------------
Wenn ich Bedienelemente via Forntpanel einfüge wie z.b. Modern - Boolesch - Druckschalter,

werden diese im Blockdiagramm anderst dargestellt wie die von euch erstellten.
(Unterschied: meine werden als Quadrate dargestellt inkl. einem optisch sichtbaren Knopf,
eure eher als schmale Vierecke, ohne viel Grafik und nur mit dem "TF" - true false text)

Ist das eine Versionsbedingte Geschichte, oder liegt der Grund wo anderst ?


gruss
fidel
Seiten: 1 2
Referenz-URLs