LabVIEWForum.de
Stopp-Schaltfläche - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Stopp-Schaltfläche (/Thread-Stopp-Schaltflaeche)

Seiten: 1 2


RE: Stopp-Schaltfläche - lola2014 - 04.09.2014 14:53

(04.09.2014 13:47 )jg schrieb:  Ja, ja und nein.
Beispiel unter File -> New... -> VI -> From Template...

Gruß, Jens

gibt es ein gutes Buch dass ihr mir empfehlen könnt. besondern für die Motorsteuerung. Das Buch Einführung in LabVIEW 3. Auflage habe ich schon aber der ist schon alt.


RE: Stopp-Schaltfläche - lola2014 - 04.09.2014 16:02

Hallo,
ich habe jetzt mein Programm auf Zustandsautomat umgestellt. Meine Frage ist, bei der Struktur-Case "Mitte fahren", das Programm verlässt den Struktur "Mitte fahren" nach einem Cyclus. Wie kann ich ihn sagen das er in dem Struktur-Case drin bleibt bis er die 25 mm fahren soll, dann kann er warten auf den nächsten Event. Wenn ich eine While -Schleife einfüge dann wie kann ich den Stopp-Schalter für die While-Schleife anschliessen, damit er nach dem fahren auf den nächsten Event wartet.
danke
[quote='lola2014' pid='169168' dateline='1409842928']


RE: Stopp-Schaltfläche - Nordvestlys - 04.09.2014 16:35

(04.09.2014 16:02 )lola2014 schrieb:  [...] Wie kann ich ihn sagen das er in dem Struktur-Case drin bleibt bis er die 25 mm fahren soll, dann kann er warten auf den nächsten Event.

Erstelle einen weiteren State "Check-Position" der nach "Mitte fahren" ausgeführt wird. In diesem State wird wie der Name schon sagt, überprüft ob die Zielposition erreicht ist. Falls ja, dann ist nächster State "warten auf Ereignis" falls nein, dann nächster State nochmal "Check-Position".


RE: Stopp-Schaltfläche - lola2014 - 05.09.2014 08:51

(04.09.2014 16:35 )Nordvestlys schrieb:  
(04.09.2014 16:02 )lola2014 schrieb:  [...] Wie kann ich ihn sagen das er in dem Struktur-Case drin bleibt bis er die 25 mm fahren soll, dann kann er warten auf den nächsten Event.

Erstelle einen weiteren State "Check-Position" der nach "Mitte fahren" ausgeführt wird. In diesem State wird wie der Name schon sagt, überprüft ob die Zielposition erreicht ist. Falls ja, dann ist nächster State "warten auf Ereignis" falls nein, dann nächster State nochmal "Check-Position".

guten Morgen,
danke für deine Antwort,
ich habe es geändert, aber irgendwie es funktioniert nicht einwandfrei.
Das 1. Problem:
ich kann den Schalter "Start M fahren"(sieh Vi) nicht als Konstant sondern als Bedienelement definieren, weil der Zustand von diesem Schalter immer von 0 auf 1 geändert muss. Damit der Motor laufen kann.
Das 2. Problem:
der Stopp Schalter hängt. Und lässt das Programm nicht enden.
LG
Lola


RE: Stopp-Schaltfläche - lola2014 - 05.09.2014 12:44

hallo,
wie findet ihr das Buch: Praxiseinstieg LabVIEW: Eine Einführung in die Praxis in 12 Experimenten


RE: Stopp-Schaltfläche - Nordvestlys - 08.09.2014 09:52

(05.09.2014 08:51 )lola2014 schrieb:  Das 1. Problem:
ich kann den Schalter "Start M fahren"(sieh Vi) nicht als Konstant sondern als Bedienelement definieren, weil der Zustand von diesem Schalter immer von 0 auf 1 geändert muss. Damit der Motor laufen kann.
Mir ist die Frage bzw. das Problem nicht klar.
Meinst Du, dass das angeschlossene VI erst einmal mit "0" am Eingang aufgerufen werden muss und danach nochmal mit "1", damit etwas passiert? Dann könntest Du es einfach zweimal hintereinander mit den entsprechenden Konstanten aufrufen.
Oder meinst Du etwas anderes? Dann müsstest Du das nochmal erklären.
(05.09.2014 08:51 )lola2014 schrieb:  Das 2. Problem:
der Stopp Schalter hängt. Und lässt das Programm nicht enden.
Ursache ist mir unklar, aber ich vermute dass der State "warten auf Ereignis" aus irgendeinem Grund nicht erreicht wird. Somit auch nicht die Ereignisstruktur und auch keine Stop-Tasten-Abfrage. Evtl. mal die Glühlampe benutzen? (Leiste oben auf Blockdiagramm) Die lässt sich auch nach dem Programmstart (z.B. erst kurz vor Druck auf Stopp) einschalten.

Fehler gerade entdeckt:
Bei " Check Position Mitte" kann sich "INIT WERT" ja gar nicht ändern. Daher wird dieser Case auch nie verlassen. Hier muss also Dein Gerät nochmal ausdrücklich abgefragt werden. (Oder den Wert in einer seperaten(!) Schleife aktualisieren.)
Ausserdem ist es besser (falls möglich) mit "größer-gleich" oder "kleiner-gleich" arbeiten, falls die 25 mal nicht "genau" getroffen wird.
Oder einen Schleifen-/Zeit-Zähler integrieren der z.B. nach der doppelten der üblichen Maximal-Zeit mit Fehlermeldung abbricht. (Oder eine zusätzliche Abbruch-Taste zumindest für Testzwecke.)

Weitere Ideen:
- Ist es Absicht, dass "AdsPortOpen" bei jedem Schleifendurchlauf aufgerufen wird? Üblicherweise finden solche "Open-Aktionen" einmalig vor Schleifenbeginn statt. (Ebenso könnte man die Cluster-Definition durch eine Konstante vor der Schleife ersetzen. Aber das hat eher was mit aufräumen als mit Funktionalität zu tun.)

- Wenn pro Ereignis genau ein Case aufgerufen wird, kann man dessen Inhalt auch direkt in die Case-Struktur platzieren. Ob die Sache dadurch übersichtlicher und/oder besser wartbar wird, ist aber Geschmackssache.


Zur Buchfrage:
Das genannte Buch kenne ich nicht. Aber unter den vielenvielen Labviewbüchern habe ich bisher nur zwei (für mich) brauchbare Sachen gefunden: Zum einen die Einführung in Labview (Georgi/Metin) und zum anderen die eingebaute Hilfefunktion (ggf. auch Online) von NI. Gerade letztere wird gerne unterschätzt weil die Erwartungshaltung durch viele schlechte Hilfen bei anderen Programmen recht niedrig ist....
Aber beides ist auch wieder Geschmackssache. Gerade in Spezialgebiten wird es noch andere gute Quellen geben.


RE: Stopp-Schaltfläche - Nordvestlys - 10.09.2014 07:51

(08.09.2014 09:52 )Nordvestlys schrieb:  [...]
- Wenn pro Ereignis genau ein Case aufgerufen wird, kann man dessen Inhalt auch direkt in die Case-Struktur platzieren.
Oooops, gerade erst entdeckt: Das mus latürnich ".....direkt in die Event-Struktur...." heißen!