INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Listenbetrieb



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

04.04.2016, 08:44
Beitrag #1

chrissy Offline
LVF-Grünschnabel
*


Beiträge: 21
Registriert seit: Apr 2016

2015
2015
DE



Listenbetrieb
Hallo,

ich beschäftige mich erst seit einigen Wochen mit LabView, bin also noch absoluter Anfänger. Ich habe mir zuerst Tutorials angeguckt, aber dafür bin ich zu ungeduldig und probiere einfach rum bis was klappt.
Jetzt versuche ich mich gerade an einer Art Listenbetrieb, also dass Befehle nacheinander abgearbeitet werden. Dafür könnte ich wohl eine eine flache bzw. gestapelte Sequenz nehmen, die alles nacheinander abarbeitet. Dabei würde ich dann ja schon beim Programmieren durch die Anzahl der Sequenzen festlegen, wie lang die Liste wird. Was mache ich aber, wenn ich jetzt 3 Sachen abarbeiten möchte und im nächsten Durchgang 5, ohne dass ich etwas umprogrammieren müsste. Kann man das so dynamisch programmieren, dass nur so viele Sequenzen angesprochen werden, wie ich tatsächlich brauche?

Auch wenn es inhaltlich nicht viel Sinn macht (es geht ja ums Lernen), nehme ich als Beispiel einfach einen Wasserhahn und einen Wassertank.
Ich lasse 5l in den Tank laufen, dann 2l und dann 3l.
Und im nächsten Durchgang 1l, dann 2l, dann 5l, dann 2l und dann wieder 5l.

Und wie würde ich diese Liste gestalten? Sie soll quasi in der ersten Spalte die Anzahl der Durchgänge von 1 bis n haben und in der zweiten Spalte, wie viel Liter aus dem Wasserhahn kommen soll. Dann klicke ich auf "Los" und der Tank wird Stück für Stück gefüllt.

Ist diese Dynamik möglich? Wenn ja, wie gehe ich das an? Ich denke da an eine For-Schleife, deren Anzahl der Durchgänge von der Länge der Liste abhängig ist. Aber dann weiß ich schon nicht weiter. Sad

Da es ja ums Lernen geht, bitte keine Komplettlösung. Nur ein paar Ideen, in welche Richtung ich gehen sollte (sofern meine Idee überhaupt realisierbar ist Wink)

LG Christina
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.04.2016, 08:55
Beitrag #2

Freddy Offline
Oldtimer
****


Beiträge: 729
Registriert seit: Aug 2008

2019, 2020, 2021
1996
DE

76275
Deutschland
RE: Listenbetrieb
Die einfachste Methode wäre:
Ein String Array mit den Befehlen direkt an die For Schleife angebunden. Da entscheidet die Größe des Array die Anzahl der Schleifendurchgänge.
In der For Schleife ein IF Anweisung mit den jeweiligen Aufgaben.


Angehängte Datei(en) Thumbnail(s)
   

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.04.2016, 09:31 (Dieser Beitrag wurde zuletzt bearbeitet: 04.04.2016 09:34 von chrissy.)
Beitrag #3

chrissy Offline
LVF-Grünschnabel
*


Beiträge: 21
Registriert seit: Apr 2016

2015
2015
DE



RE: Listenbetrieb
Hallo Freddy, vielen Dank für deine Antwort.

Richtig durchgestiegen bin ich nicht, aber ich habe das jetzt so gemacht:

Ist das im Grunde richtig? Ich muss ja noch irgendwie die Werte aus dem String Array "in den Tank führen". Wie mach ich das?

Wie gesagt, ich bin noch blutige Anfängerin Smile

LG Christina
Also so wie das jetzt ist, wird dadurch dass das Array 3 Werte lang ist, die For-Schleife nur 3 Mal durchlaufen?


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.04.2016, 09:43 (Dieser Beitrag wurde zuletzt bearbeitet: 04.04.2016 09:45 von Freddy.)
Beitrag #4

Freddy Offline
Oldtimer
****


Beiträge: 729
Registriert seit: Aug 2008

2019, 2020, 2021
1996
DE

76275
Deutschland
RE: Listenbetrieb
Hab mal ein Beispiel angehängt.
Zitat:Also so wie das jetzt ist, wird dadurch dass das Array 3 Werte lang ist, die For-Schleife nur 3 Mal durchlaufen?
Ja genau.


Angehängte Datei(en)
15.0 .vi  beispiel1.vi (Größe: 9,84 KB / Downloads: 160)

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.04.2016, 09:54
Beitrag #5

chrissy Offline
LVF-Grünschnabel
*


Beiträge: 21
Registriert seit: Apr 2016

2015
2015
DE



RE: Listenbetrieb
Ja, super, so habe ich mir das im Grunde vorgestellt.

Das Schieberegister speichert quasi rechts den Wert und packt es beim nächsten Durchgang einfach auf die linke Seite, so dass mit diesem Wert weitergearbeitet wird?

Was mache ich aber, wenn ich 2,345 l einfüllen will? Ich kann ja nicht für jeden Wert einen eigenen Case machen?!

Und wie kann ich sehen, dass sich der Tank füllt? Wenn ich starte, ist er sofort voll. Deshalb habe ich in der For-Schleife noch 1 sek warten eingebaut, aber jetzt dauert es halt 3 Sekunden bis der Tank auf einen Schlag voll ist. Also ich möchte quasi nach jeder Befüllung den aktuellen Stand sehen.

LG Christina
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.04.2016, 10:01
Beitrag #6

Freddy Offline
Oldtimer
****


Beiträge: 729
Registriert seit: Aug 2008

2019, 2020, 2021
1996
DE

76275
Deutschland
RE: Listenbetrieb
Hallo Christina,
Wenn Du sehen willst wie der Kessel steigt. Sie Dir das Bild an.

Wenn Du flexible Werte willst gibt es natürlich viele Möglichkeiten.

Ist der Ursprung ein Zahl oder String Array?
So etwas muss man im Vorfeld wissen.

Gruß
Freddy


Angehängte Datei(en) Thumbnail(s)
   

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
04.04.2016, 10:17
Beitrag #7

Freddy Offline
Oldtimer
****


Beiträge: 729
Registriert seit: Aug 2008

2019, 2020, 2021
1996
DE

76275
Deutschland
RE: Listenbetrieb
Zitat:Was mache ich aber, wenn ich 2,345 l einfüllen will? Ich kann ja nicht für jeden Wert einen eigenen Case machen?!
Siehe Bild.


Angehängte Datei(en) Thumbnail(s)
   

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.04.2016, 10:19 (Dieser Beitrag wurde zuletzt bearbeitet: 04.04.2016 10:24 von chrissy.)
Beitrag #8

chrissy Offline
LVF-Grünschnabel
*


Beiträge: 21
Registriert seit: Apr 2016

2015
2015
DE



RE: Listenbetrieb
Also ich glaube Zahlen würden schon ausreichen...

Ich habe ja jetzt jedes Mal 1 sek warten zwischen den Befüllungen. Wie kann ich denn quasi darauf warten, dass der Tank diesen Wert auch erreicht hat und erst dann weitergemacht wird?

Also wenn ich 1l einfülle, beim Erreichen von 1l eine Meldung ausgelöst wird und erst dann der nächste Durchgang startet?

Wenn ich jetzt 1000l einfüllen will und nur 1 sek warte, denn würde die nächste Befüllung ja schon losgehen, bevor die 1000l voll sind.
Ach ich kann das String-Array ja einfach durch ein Numerisches-Array ersetzen. Meine Leitung ist manchmal sehr lang Wink
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.04.2016, 10:32
Beitrag #9

Freddy Offline
Oldtimer
****


Beiträge: 729
Registriert seit: Aug 2008

2019, 2020, 2021
1996
DE

76275
Deutschland
RE: Listenbetrieb
Zitat:Ach ich kann das String-Array ja einfach durch ein Numerisches-Array ersetzen.
Ja

Du kannst auch die Wartezeit variabel gestallten.


Angehängte Datei(en) Thumbnail(s)
   

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.04.2016, 10:37 (Dieser Beitrag wurde zuletzt bearbeitet: 04.04.2016 10:42 von chrissy.)
Beitrag #10

chrissy Offline
LVF-Grünschnabel
*


Beiträge: 21
Registriert seit: Apr 2016

2015
2015
DE



RE: Listenbetrieb
Kann ich das auch Warten ohne zeitliche Komponente?

Wenn die Füllung abgeschlossen ist, quasi ein True, welches signalisiert "jetzt kann es weitergehen".

Das wäre auch das letzte für heute, man soll ja auch nicht übertreiben als Anfänger Wink
Wäre ich da mit "Occurence" richtig?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Gehe zu: