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 

Zeitabhängige Start/Stop Routine von Pumpen



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!

23.02.2014, 18:34 (Dieser Beitrag wurde zuletzt bearbeitet: 23.02.2014 18:36 von GerdW.)
Beitrag #11

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Zeitabhängige Start/Stop Routine von Pumpen
Hallo Marko,

das willst du nicht wirklich sehen! Smile

Hallo Paul,

- Warum nutzt du nicht das AutoCleanup-Tool?
- Warum diese ganzen lokalen Variablen? In jedem Case deiner Statemachine sehe ich auf Anhieb eine RaceCondition!
- Warum werden in jedem State die Bedienelemente für diesen State (Start und Reset-Button) die ganze Zeit über lokale Variablen beschrieben? Wie willst du dann das VI bedienen?

Sonst ist noch viel RubeGoldberg im VI:
- zur Umwandlung eines boolschen Werts nach 0/1 gibt es eine fertige Funktion in der Boolean-Palette!
- In den Casestruktur innerhalb der Whileschleife in jedem State wird in jedem Case die gleiche lokale Variable mit dem gleichen Wert gesetzt! Wenn etwas in jedem Case getan wird, muss es nicht in die Case-Struktur!
- Wozu States, wenn deren Bedienelemente verborgen sind?

Ich habe das VI mal geringfügig editiert und insbesondere den State "Start Filtration" geändert: zumindest die lokalen Variablen sind weg. Deine ganze Logik war mir aber unklar. Und warum man quasi die identische Logik in 6 verschiedenen States ausbreiten muss, erschließt sich mir auch nicht…


Angehängte Datei(en)
13.0 .vi  bwshroutine_4.vi (Größe: 41,61 KB / Downloads: 213)

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.02.2014, 22:01
Beitrag #12

paul.rei Offline
LVF-Grünschnabel
*


Beiträge: 16
Registriert seit: Feb 2014

2013
2013
DE_EN



RE: Zeitabhängige Start/Stop Routine von Pumpen
Hallo,

Danke für die Hilfe. Ich hatte das noch nicht ganz drauf mit dem Aufräum-tool nun weiß ich wie das gemeint ist. Das mit dem race conditions war mir auch noch nicht klar gewesen.
Die lokalen Variablen habe ich verwendet mit der Annahme, dass ich somit die Routine entlaste. Im Prinzip möchte ich ja nur, dass die Routine ohne stopp immer wieder wiederholt wird sobald sie gestartet wird bis sie manuell gestoppt wird.

Es sind 6 quasi identische States, da ich in jedes State eine Aktion packen will um möglichst fehlerfrei die Routine durchlaufen zu lassen. Ich dachte das ist sinnvoller als würde ich mit Timeouts oder ähnlichen anfangen. Zum Verständnis also so:
State 1: Start der Filtrationspumpe mit bestimmter Drehzahl
State 2: Der Timer (2 Stunden) läuft ab bis auf 0 in diesem Fall wird der Folgecase abgerufen. 2te Bedingung wäre ein zu hoher Druck.
State 3: Abstellen der Filtrationspumpe, öffne ein Ventil.
State 4: Start Spülung mit Pumpe für 2 Minuten (Timer bis auf 0)
State 5: Stopp der spül Pumpe und Schließe Ventil,
alles Reset
State 1: ....(das gleiche von vorne)
Bin ich den damit total auf dem Holzweg?

RubeGoldberg habe ich schon oft im Forum gesehen, ich hoffe das legt sich mit zunehmender Erfahrung Wink

Paul
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.02.2014, 08:41
Beitrag #13

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Zeitabhängige Start/Stop Routine von Pumpen
Hallo Paul,

Zitat:Es sind 6 quasi identische States, da ich in jedes State eine Aktion packen will um möglichst fehlerfrei die Routine durchlaufen zu lassen. Ich dachte das ist sinnvoller als würde ich mit Timeouts oder ähnlichen anfangen. Zum Verständnis also so:
State 1: Start der Filtrationspumpe mit bestimmter Drehzahl
State 2: Der Timer (2 Stunden) läuft ab bis auf 0 in diesem Fall wird der Folgecase abgerufen. 2te Bedingung wäre ein zu hoher Druck.
State 3: Abstellen der Filtrationspumpe, öffne ein Ventil.
State 4: Start Spülung mit Pumpe für 2 Minuten (Timer bis auf 0)
State 5: Stopp der spül Pumpe und Schließe Ventil,
STATE 6: alles Reset
State 1: ....(das gleiche von vorne)
Bin ich den damit total auf dem Holzweg?
- Wieso sollten die 6 States, deren Aufgaben du so detailliert auflistest, "quasi identisch" sein? Lt. deiner Beschreibung hast du doch 6 unterschiedliche Aufgaben in den States zu erledigen?
- Wieso benötigst du in jedem State identischen Code (durch Copy&Paste produziert), wenn du unterschiedliche Dinge erledigen willst?

Die Idee mit der Statemachine ist perfekt für deine Aufgabenstellung. Leider passt nur das, was du bisher programmiert hast, überhaupt nicht zu dieser Aufgabenstellung! Bisher werden nur irgendwelche Timer im Sekundentakt hochgezählt, unter Verwendung von lokalen Variablen und damit verbundenen RaceConditions.
Warum programmierst du nicht einfach das, was du oben aufgezählt hast?

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.06.2014, 08:24
Beitrag #14

paul.rei Offline
LVF-Grünschnabel
*


Beiträge: 16
Registriert seit: Feb 2014

2013
2013
DE_EN



RE: Zeitabhängige Start/Stop Routine von Pumpen
Hallo Zusammen,
lange Zeit habe ich mich nicht diesem Projekt gewidmet und nun habe ich wieder etwas Zeit gefunden.
Ich habe nun die Routine auf meine Anwendung hin vervollständigt. Die Routine läuft so ab wie ich möchte. Es gibt nur ein Problem bei dem Neustart der Routine, wenn alle States durchlaufen sind.

Hat einer eine Idee ob es möglich ist, dass solange die Backwash Routine aktiviert ist diese quasi immer wiederholt wird? Bis der Benutzer sagt Routine deaktiviert.

Meine eingestellten Werte für TMP und Filtration/Backwash time sind zurzeit variable, diese werden dann durch die entsprechenden Messstellen ersetzt.
Ich würde mich sehr über eine Antwort freuen,

Viele Grüße Paul


Angehängte Datei(en)
13.0 .vi  bwshroutine_03.06.2014.vi (Größe: 39,85 KB / Downloads: 186)

12.0 .vi  bwshroutine_03.06.2014 v12.vi (Größe: 29,82 KB / Downloads: 180)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.06.2014, 09:04
Beitrag #15

RadioactiveMan Offline
LVF-Grünschnabel
*


Beiträge: 48
Registriert seit: Apr 2013

2012
2012
DE



RE: Zeitabhängige Start/Stop Routine von Pumpen
Nach einem kurzen Blick auf dein BD:
Die Konstante (?Blink?) der Abbruchbedingung der Whileschleife durch ein Bedienelement Bool "Stopping Backwash" ersetzen. Bedienelement>Rechtsklick>Schaltverhalten>Latch bei Loslassen.

Vllt. habe ich das aber auch falsch verstanden. Auf jeden Fall läuft deine While-Schleife momentan nur einmal durch (Wofür soll die gut sein?).

Ich habe lv12_img.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.06.2014, 09:43
Beitrag #16

paul.rei Offline
LVF-Grünschnabel
*


Beiträge: 16
Registriert seit: Feb 2014

2013
2013
DE_EN



RE: Zeitabhängige Start/Stop Routine von Pumpen
Hey RadioactiveMan,

was meinst du mit:

Zitat:Die Konstante (?Blink?) der Abbruchbedingung der Whileschleife durch ein Bedienelement Bool "Stopping Backwash" ersetzen.

Grade das verstehe ich nicht. Ich möchte ja das die Schleife immer wieder durchläuft. Bis ich Stop klicke.

Grüße Paul
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
03.06.2014, 10:03
Beitrag #17

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Zeitabhängige Start/Stop Routine von Pumpen
- Wozu 2 parallele Waits? 1x in der äußeren Loop 1 Sekunde, beim Hochzählen der Wartezeiten 10 ms. Somit kommst du beim Hochzählen auf keine 10 ms Auflösung?
- Falsche Verwendung von "First Call?": Deine State-Machine wird nur ein einziges Mal sinnvoll durchlaufen. Jede Instanz von First Call gibt nur beim allerersten Aufruf nach Start des "Programms" 1x True aus. Du willst doch aber sicher bei jedem Start des entsprechenden Schritts 1x True haben.
- THINK Dataflow: Der Stopp-Button wird parallel zur State-Machine abgefragt. Zwecks deiner 1 Sekunde Wartezeit wird das somit sehr wahrscheinlich immer am Anfang der Schleifendurchführung gemacht. Folge: Erst beim zweiten Schleifendurchlauf nach Betätigung den Stopp-Button stoppst du wirklich dein VI.

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.06.2014, 10:56
Beitrag #18

paul.rei Offline
LVF-Grünschnabel
*


Beiträge: 16
Registriert seit: Feb 2014

2013
2013
DE_EN



RE: Zeitabhängige Start/Stop Routine von Pumpen
Hallo Jens,

zunächst vielen Dank an euch beide für die Antworten.

@ Jens

Den ersten Punkt habe ich behoben.

Zu Punkt 2:
Ich habe bisher keine Möglichkeit gefunden dann den Counter zu triggern. Wie kann ich die Stop-Uhr ohne den First Call triggern?

Zu Punkt 3:
Dieser Fehler lies sich denke ich durch Punkt 1 beheben. Prima!

Grüße Paul
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.06.2014, 11:00
Beitrag #19

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Zeitabhängige Start/Stop Routine von Pumpen
(03.06.2014 10:56 )paul.rei schrieb:  Zu Punkt 2:
Ich habe bisher keine Möglichkeit gefunden dann den Counter zu triggern. Wie kann ich die Stop-Uhr ohne den First Call triggern?
- "Value Change" deines State-Machine Enum überwachen?!
- 1x ein True aus dem State vorher weitergeben?!
etc. pp.

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.06.2014, 11:35
Beitrag #20

paul.rei Offline
LVF-Grünschnabel
*


Beiträge: 16
Registriert seit: Feb 2014

2013
2013
DE_EN



RE: Zeitabhängige Start/Stop Routine von Pumpen
Hallo Jens,

ich habe versucht einen Boolschen-Vergleich der States zu nutzen um die Stop-Uhr zu triggern. Leider ohne Erfolg. Kann ich irgendwie nachvollziehen warum er den Vergleich nicht akzeptiert. Wenn ich die Highlight Funktion einschalte, dann ist der Vergleich True. Es passiert jedoch nichts.

Paul


Angehängte Datei(en)
13.0 .vi  bwshroutine_03.06.2014.vi (Größe: 39,25 KB / Downloads: 192)

12.0 .vi  bwshroutine_03.06.2014 v12.vi (Größe: 30,04 KB / Downloads: 174)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Gehe zu: