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 

Massflowcontroller steuern und bei Bedarf Rampenfahren



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!

16.10.2013, 14:55
Beitrag #31

rc Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 149
Registriert seit: Jul 2013

2011, 2012
-
DE_EN


Deutschland
RE: Massflowcontroller steuern und bei Bedarf Rampenfahren
Hallo,

schon wieder ich.

Also ich habe das programm in drei Sequenzen geteilt.

1.Sequenz ist initialisieren von FlowDDE treibern, open communucation, checkconversations usw... ( ich bin mir nicht sicher was ich da noch rein pachen soll und wie. Also ob ich einfach die benötigten SubVI`s von bronkhorst einfach in erste Sequenz kopieren soll oder doch nicht...).

2. Sequenz enthält eine Statemaschine wo die MFC`s für die allererste Mischung die gewünschte mengen in mln/min dosieren ( z.B. Der User will 100 mln/min KONSTANTE Brenngasvolumenstrom aus MFC_1 und 10 mln/min KONSTANTE Volumenstrom aus anderen zwei MFC`s ( N2+O2 ZUSAMMEN!) dosieren. Hier kommt das Volumenanteil von Sauerstoff ins Spiel. Wenn der User auf dem Panel Für Sauerstoffanteil 0 Vol.-% gibt dann wird automatisch nur aus dem MFC_N2 10 mln/min gas(N2) dosiert. Wenn der user z.B 5 Vol.% O2 gibt dann wird aus dem MFC_N2 9,5 mln/min gas und aus dem MFC_O2 0,5 mln/min gas ( O2) dosiert, da ja Vol.-% O2 +Vol.%N2 = 100 )). Also in dieser ersten Zustand wird mit dem Messen erst Mal angefangen wenn der User auf starte Messung drückt. Es wird eigentlich hier keine Rampe gefahren, denn die MFC`s die geförderte Mengen sofort dosieren. Allerdings habe ich um diese Zusatnd zu steuern eine event Struktur gebaut, die auf Zündung und Stop reagiert. Aber schaffe ich nicht da die erste Rampen fahrt von MFC_O2 nach dem ersten Zündung zu verwirklichen. Als zweites habe ich das problem, dass ich die sp`s nicht als mln/min sondern als prozent ( 0 bis 100 %) angeben kann. Wie könnte ich da vorgehen?

3.Sequenz ist das Beenden von FlowDDE, leeren von MFC und vielleicht speichern der Ergebnisse, wobei da noch nichts drin steht.


Angehängte Datei(en)
12.0 .vi  bronkhorst flowdde module sample.vi (Größe: 71,17 KB / Downloads: 136)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
16.10.2013, 16:13 (Dieser Beitrag wurde zuletzt bearbeitet: 16.10.2013 16:17 von rc.)
Beitrag #32

rc Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 149
Registriert seit: Jul 2013

2011, 2012
-
DE_EN


Deutschland
RE: Massflowcontroller steuern und bei Bedarf Rampenfahren
Hallo,

so siehts besser aus denke ich.
Version 2011


Angehängte Datei(en)
12.0 .vi  bronkhorst flowdde module sample.vi (Größe: 71,48 KB / Downloads: 132)

11.0 .vi  bronkhorst flowdde module sample.vi (Größe: 59,41 KB / Downloads: 123)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.10.2013, 09:52
Beitrag #33

rc Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 149
Registriert seit: Jul 2013

2011, 2012
-
DE_EN


Deutschland
RE: Massflowcontroller steuern und bei Bedarf Rampenfahren
Hallo,

ich wäre unendlich dankbar, wenn ihr mir wenigsten sagen könnt ob ich DIESES MAL auf dem richtigen Weg bin, vorallem mit dem State Maschine?

Vielen vielen Dank Guru1


Angehängte Datei(en)
11.0 .vi  bronkhorst flowdde module sample.vi (Größe: 72,38 KB / Downloads: 124)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.10.2013, 08:06
Beitrag #34

GerdW Offline
______________
LVF-Team

Beiträge: 17.419
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Massflowcontroller steuern und bei Bedarf Rampenfahren
Hallo rc,

Zitat:ob ich DIESES MAL auf dem richtigen Weg bin, vorallem mit dem State Maschine?
Fast...
Es ist wenig sinnvoll, in einer Statemachine nach der ersten Iteration immer den selben State ("Zündkontrolle") aufzurufen, ohne eine Möglichkeit vorzusehen, mal einen anderen State anzufahren!

Außerdem:
- Zuviele lokale Variablen.
- Zuviele (stacked) Sequenzen. Beispiel: Du hast in der großen Sequenz einen ersten Frame zur Initialisierung des GUI etc. Den könntest du als ersten State einer Statemachine verpacken...
- Einmal Ctrl-U drücken schadet auch nicht, wenn du dein VI anderen zur Begutachtung vorlegst...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.10.2013, 10:37
Beitrag #35

rc Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 149
Registriert seit: Jul 2013

2011, 2012
-
DE_EN


Deutschland
RE: Massflowcontroller steuern und bei Bedarf Rampenfahren
Hallo Gerd,

vielen Dank für die deine Antwort. Das programm sieht jetzt so aus. Jetzt muss ich nur noch die States irgendwie bearbeiten denke ich und irgendwie die Werte mit Zeitpunkten speichern so dass ich vernünftig auswerten kann. allerdings schon im ersten State kann ich nicht die initialisierung( übergabe der Werte auf dem Panel) nicht genau machen Sad . irgendwie kann ich nicht dafür sorgen, dass es zwischen den einzelnen states und mit FLOWDDE kommuniziert wird.


Angehängte Datei(en)
11.0 .vi  bronkhorst flowdde module sample.vi (Größe: 95,43 KB / Downloads: 106)

11.0 .ctl  Control 1.ctl (Größe: 3,81 KB / Downloads: 108)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.10.2013, 12:57
Beitrag #36

GerdW Offline
______________
LVF-Team

Beiträge: 17.419
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Massflowcontroller steuern und bei Bedarf Rampenfahren
Hallo rc,

jetzt hast du folgende Fehler gemacht:
- While-Loop innerhalb einer Event-Struktur: ein Event sollte immer so schnell wie möglich abgearbeitet werden. Eine endlos laufende While-Loop ist da sehr hinderlich...
- Deine Statemachine ist "mangelhaft": Es gibt Fälle, die keinen neuen State ausgeben ("4"). Es gibt Fälle, die immer den gleichen State ausgeben, obwohl du einen Vergleich anstellen willst ("2"). Es gibt Fälle, die bleiben auf ewig in ihrem State ("5"). Ist das alles wirklich so beabsichtigt?

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
21.10.2013, 14:00
Beitrag #37

rc Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 149
Registriert seit: Jul 2013

2011, 2012
-
DE_EN


Deutschland
RE: Massflowcontroller steuern und bei Bedarf Rampenfahren
Hallo Gerd,

- While-Loop innerhalb einer Event-Struktur: ein Event sollte immer so schnell wie möglich abgearbeitet werden. Eine endlos laufende While-Loop ist da sehr hinderlich...

ich versuche es so gestalten, dass der User, nach dem er auf dem FP das Vol.-% O2, Änderung der O2 Vol.% PRO minute, das SP von MFC_1 ( Brenngas[mln/min]), SP von (N2+O2 [mln/min]) was ja aus SP_MFC_2 (N2[mln/min]) +[ Vol.% (O2) * SP von (N2+O2 [mln/min]) ] /100 ] besteht und den Rückschrittwert von O2 als Vol.% vorgibt dann auf STARTE MESSUNG drückt. Also das wollte ich ich mit Event-St. machen. Wenn Start gedückt wird, wird State Maschine aktiviert.

Zu dem State Maschine:

In erstem State: Ich habe das Programm von Bronkhorst aus der ersten Seq. rausgenommen und in dieses State hinzugefügt. Ist das falsch? Denn genau da werden die sp`s immer aktualisiert und auch pv`s. Wie schaffe ich da, dass O2 und N2 immer einen konstanten Durchfluss geben, wobei das Vol.%-O2 immer als Rampe variert wird?

Zweite State: Wie kann ich da O2 Vol.% im Gemisch ( in der Kammer mit dem Brenngas) ins Datei speichern, genau in dem Moment der ersten Zündung ( oder eben Zündpeak) und dann ins dritte State übergehen? Oder wird der Wert im dritten State gespeichert?

Dritte state: Ich versuche da Vol.% O2 bisschen reduzieren ( dafür gibt ja der User am Anfang O2 Rückschrittwert als Vol.%). Also aktuelle O2 Vol.% was eben zum zünden reicht - O2 Rückschrittwert und ab diesem resultierenden Wert noch mal mit einem vorgegebem wert ( Änderung der O2 Vol.% PRO minute also die Geschwindigkeit) bis zur zweiten Zündung rampe fahren. Dann iwrd wieder in zweite Stete überspringen und die Zündung abgefragt. Wenn die Zündung stattfindet dann wieder rückschritt und dann wieder Rampenfahrt bis zur dritten zündung. Insgesamt 5 mal Zündung erreichen und mittel Wert von o2 ins Datei speichern. DAS ist mein grösstes Problem Sad

Vierte State: Also falls die Zündung nicht statfindet, dann wird von zweitem State ins vierte State übergangen dann soll O2 Vol.% mit dem vorgegebenem Geschwindigkleitswert bis zur zündung weiter erhöht Werden also rampe fahren. Dementsprechend geht N2 Vol.% zurück, so dass ( N2+O2) Mischung immer konstante Volumenstrom liefert. Laut Benutserhandbücher können die MFC`s Rampen fahren , was " weiche Regelung" genannt wird und auch eine Variation zwischen MFC_N2 und MFC_O2 möglich, so dass sie mit varierenden O2 Vol.% immer konstanten Volumenstrom an ( N2+O2) Mischung ergeben allerdings stehe ich hier total auf dem Schlauch Sad

Fünfte State: Hier versuche ich nach 5 maliger Zündung oder eben wie viel der User will, dass ins Sequenz 3 übergegangen wird und da wird die 'kommunikation mit FlowDDE geschlossen und die MFC`s werden gelehrt. Natürlich auch wenn der User auf STOP drück dass es beendet wird.

Der User ist eben ein Depp so wie ich glaube ich, so dass er nur Werte am Anfang übergibt und dann Startet und am Ende die O2 Vol.% `s zur jeweiligen zündzeitpunkten gespeichert bekommt. Es tut mir leid für die schlechte Ausdrucksweise!


Angehängte Datei(en)
11.0 .vi  bronkhorst flowdde module sample.vi (Größe: 105,61 KB / Downloads: 108)

0.0 .pdf  917070A--manual_2_Channel_Ratio_Controller.pdf (Größe: 570,27 KB / Downloads: 765)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.10.2013, 14:20 (Dieser Beitrag wurde zuletzt bearbeitet: 21.10.2013 14:21 von GerdW.)
Beitrag #38

GerdW Offline
______________
LVF-Team

Beiträge: 17.419
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Massflowcontroller steuern und bei Bedarf Rampenfahren
Hallo rc,

Zitat:ich versuche es so gestalten, dass der User, nach dem er auf dem FP das Vol.-% O2 ... vorgibt dann auf STARTE MESSUNG drückt. Also das wollte ich ich mit Event-St. machen. Wenn Start gedückt wird, wird State Maschine aktiviert.
Lass die Event-Struktur hier aus dem Spiel, die ist momentan eher hinderlich...
Mach einen State "0", der auf das Drücken von "Starte Messung" wartet. Wenn "Start" dann "Next state" (mit einer kleinen Wartezeit)...

Die StateMachine dient hauptsächlich als "Aufseher" in deinem VI: sie kontrolliert, wo (in welchem State) man sich befindet und wie es dann weitergeht. Dazu muss sie nicht direkt mit Hardware kommunizieren, dies kann in parallelen Schleifen passieren. Den Datenaustausch kannst du (für's Erste) mit lokalen Variablen machen, sollte aber später/schnellstmöglich auf Notifier/Queues/FGVs umgestellt werden. Um all dies zu erreichen, benötigt die Statemachine 2 Schieberegister: das erste enthält den State (dein Enum). Im zweiten Schieberegister kannst du interne Daten der Statemachine (in einem Cluster) speichern, z.B. den Zähler für die Anzahl der Zündversuche. So kann z.B. State 2 ("Zündung an?") kontrollieren, wie oft die Zündung schon an war...

Wozu hast du bei der Case-Struktur in der Statemachine immer zwei Ausgänge für den nächsten State? Du brauchst nur einen Ausgang, du willst doch genau einen nächsten State aufrufen...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.10.2013, 14:58
Beitrag #39

rc Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 149
Registriert seit: Jul 2013

2011, 2012
-
DE_EN


Deutschland
RE: Massflowcontroller steuern und bei Bedarf Rampenfahren
Hallo Gerd,

Mach einen State "0", der auf das Drücken von "Starte Messung" wartet. Wenn "Start" dann "Next state" (mit einer kleinen Wartezeit)...

Ok habe ich gemacht allerdings es wird automatisch ein Ausgang generiert. ich verstehe jetzt nicht wie ich ins nächste Stete übergehe wenn start gedrückt wird. Meinst du als " Next state" dann 1. State bei mir?

Früher konnte ich wenigsten die Sp`s ändern 8 mit dem Bronkhorst Sample Programm9 jetzt seit dem ich das Bronkhorst Programm in zweite Seq. genommen habe sehe bei pv nur " 0 " was mache ich da falsch?

Den Datenaustausch kannst du (für's Erste) mit lokalen Variablen machen, sollte aber später/schnellstmöglich auf Notifier/Queues/FGVs umgestellt werden.

Meinst du hier die erste Zündung?

Um all dies zu erreichen, benötigt die Statemachine 2 Schieberegister: das erste enthält den State (dein Enum). Im zweiten Schieberegister kannst du interne Daten der Statemachine (in einem Cluster) speichern, z.B. den Zähler für die Anzahl der Zündversuche. So kann z.B. State 2 ("Zündung an?") kontrollieren, wie oft die Zündung schon an war...

soll ich hier einfach eine kopierte Enum hinzufügen ? Was zweite Shift Register betrifft bin ich total überfragt. Wie soll ich zähler in einem cluster hierzu anwenden?


Angehängte Datei(en)
11.0 .vi  bronkhorst flowdde module sample.vi (Größe: 94,64 KB / Downloads: 112)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.10.2013, 09:48
Beitrag #40

rc Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 149
Registriert seit: Jul 2013

2011, 2012
-
DE_EN


Deutschland
RE: Massflowcontroller steuern und bei Bedarf Rampenfahren
Hallo Gerd,

jetzt besteht das Programm aus zwei Sequenzen. Initialisierung GUI habe ich in erste State hinzugefügt und "Starte Messung" ist State 0. Allergings kann ich da bolisches "Starte Messung" nicht anwenden, dass es startet. Also wie soll ich da verdrahten dass, das Programm startet, weil jetzt passiert irgendwie nichts.

Frage zum State Zündabfrage. : Wenn Bolische Wert Zündung True ist dann gehe ich ja zum vierten State: Reduziere O2 und wenn falsch dann zum fünften State: Erhöhe O2. Wie soll ich da den Ausgang von Select verdrahten ? Und auch in diesen vierten und fünften States wie soll ich da reduzierung und erhöhung durchführen und verdrahten? Und das mit dem Speichern und Zähler habe ich immer noch nicht kapiert Sad


Angehängte Datei(en)
11.0 .vi  bronkhorst flowdde module sample.vi (Größe: 94,99 KB / Downloads: 128)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Bedienelemente nach Bedarf ein / ausblenden 1johleh 14 19.749 31.05.2017 13:18
Letzter Beitrag: MaxP
  Bedienelemente bei Bedarf aktivieren/deaktivieren Schrammi 11 18.444 01.04.2015 10:33
Letzter Beitrag: tobi45f
  While schleife die bei bedarf sofort abbricht Crowdie 5 6.013 24.05.2011 21:54
Letzter Beitrag: gm-axion
  Arrays dynamisch nach Bedarf erzeugen betas 3 4.377 16.03.2011 14:42
Letzter Beitrag: betas
  Numeric Control nur nach Bedarf einblenden??? francois 2 3.416 26.06.2008 12:41
Letzter Beitrag: francois

Gehe zu: