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 

PID Regler kontinuierlich betreiben trotz Case-Struktur



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!

26.03.2010, 16:33
Beitrag #1

philipp Offline
LVF-Grünschnabel
*


Beiträge: 49
Registriert seit: Sep 2007

8.6 : 2009 SE
2007
de

81539
Deutschland
PID Regler kontinuierlich betreiben trotz Case-Struktur
Einen wunderschönen Nachmittag werte LVF-Gemeinde.

Ich habe eine Frage zum Betrieb eines PID-Reglers.

Ich habe eine Case-Struktur erstellt um verschiedene Prüfungen nacheinander abzufahren.

Die Regelung klappt soweit auch. Allerdings startet mein Regler bei jedem neuen Case wieder mit der Stellgröße bei 0 und fährt dann hoch. Ich möchte aber gerne, dass er mit der Stellgröße beim Wert aus dem vorherigen Case beginnt.

Gibt es da eine Möglichkeit?

Kann man den Regler außerhalb der Case-Struktur betreiben, also in der while-Schleife und dann bei neuem Case einfach einen höheren Sollwert übergeben, so dass er einfach vom aktuellen Wert aus die Stellgröße erhöht?

Vielen Dank und ein schönes Wochenende!

Philipp
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
26.03.2010, 23:13
Beitrag #2

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.692
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
PID Regler kontinuierlich betreiben trotz Case-Struktur
' schrieb:Gibt es da eine Möglichkeit?
Klar. Wahrscheinlich gibt es sogar mehrere Möglichkeiten.
Ich weiß, dass es geht. Wie, weiß ich nicht. Dazu müsste ich den Sourcecode ankucken.

Zitat:Kann man den Regler außerhalb der Case-Struktur betreiben, also in der while-Schleife und dann bei neuem Case einfach einen höheren Sollwert übergeben, so dass er einfach vom aktuellen Wert aus die Stellgröße erhöht?
Ich sag wieder eiskalt: Ja. Nur wie?

Ich könnte jetzt einfach sagen: Zieh den Regler einfach raus, genau so wie du das beschrieben hast. Noch zwei, drei Drähte und fertig. Aber: Genaues kann man hier nur sagen, wenn man den Sourcecode sieht und noch nachfragen kann bei Unklarheiten.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.03.2010, 22:20
Beitrag #3

philipp Offline
LVF-Grünschnabel
*


Beiträge: 49
Registriert seit: Sep 2007

8.6 : 2009 SE
2007
de

81539
Deutschland
PID Regler kontinuierlich betreiben trotz Case-Struktur
Guten Abend!

Ich kann das VI leider erst morgen posten. Hab grad keinen Zugriff drauf!

Aber danke schon mal.

Gruß
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.03.2010, 07:19
Beitrag #4

philipp Offline
LVF-Grünschnabel
*


Beiträge: 49
Registriert seit: Sep 2007

8.6 : 2009 SE
2007
de

81539
Deutschland
PID Regler kontinuierlich betreiben trotz Case-Struktur
Guten Morgen!

Hier nun das VI.

Viele Grüße

Lv86_img


Angehängte Datei(en)
Sonstige .vi  Test_1.vi (Größe: 183,06 KB / Downloads: 326)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30.03.2010, 09:36
Beitrag #5

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.692
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
PID Regler kontinuierlich betreiben trotz Case-Struktur
' schrieb:Allerdings startet mein Regler bei jedem neuen Case wieder mit der Stellgröße bei 0 und fährt dann hoch. Ich möchte aber gerne, dass er mit der Stellgröße beim Wert aus dem vorherigen Case beginnt.
Tust du denn vor jedem "neuen Case" das Programm beenden? Da der Regler kontinuierlich aufgerufen wird, sollte das mit der Stellgröße aber schon so funktionieren. Unsure

Zitat:Hier nun das VI.
Ich empfehle, das Programm weiter zu modularisieren - d.h. noch mehr Unterprogramme. Vorteil: BD wird kleiner - und übersichtlicher. Man muss nicht sehen, wie eine Berechnung funktioniert (sehen würde man das "große BD"). Es reicht, wenn man weiß, dass hier diese eine Berechnung gemacht wird - das erkennt man aus dem Namen des SubVIs.
Außerdem solltest du den Regler mit der Messwertaufnahme sequenzieren (Istwert).

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30.03.2010, 19:23
Beitrag #6

philipp Offline
LVF-Grünschnabel
*


Beiträge: 49
Registriert seit: Sep 2007

8.6 : 2009 SE
2007
de

81539
Deutschland
PID Regler kontinuierlich betreiben trotz Case-Struktur
Hi!

Also ich beende nicht das komplette Programm bei jedem Case. Aber in dem Case Druckeinregelung wird nach Beendigung ja die while-Schleife beendet damit ich aus der kontinuierlichen Erfassung wieder rauskomme.Ich denke da liegt das Problem. Innerhalb eines Cases Druckeinregelung funktioniert die Regelung. Bei der nächsten Druckstufe wird wieder ein Case Druckeinregelung aufgerufen. Da ist dann wieder ein PID-VI drinne. Hier wird es erneut aufgerufen und startet dann bei 0. Dazu meine Frage, wie man das PID-VI am geschicktesten nach Außen ziehen kann, sodass eine kontinuielriche Regelung möglich ist.

Denke aber das wird schwierig, da die Stellgröße ja auch nur in einem Case erfasst wird. Müsste dann ja auch kontinuierlich geschehen. Ich denek ich muss alle Signale kontinuierlich in einem Case erfassen. Allerdings habe ich dann nach wie vor das Problem, dass bei einer anderen Druckstufe das PID-VI neu gestartet wird...

Ach ja: Was meinst du mit Sequenzieren m Zusammenhang mit dem Regler?

Grüße
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
30.03.2010, 20:03
Beitrag #7

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.692
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
PID Regler kontinuierlich betreiben trotz Case-Struktur
' schrieb:... Bei der nächsten Druckstufe ...
Jetzt hab' ich's verstanden: Erst Init, dann 3.5, dann 4.5 usw. Ist halt schlecht zu finden, wenn's BD größer ist als der Bildschirm (<= Wink mit Zaunpfahl).

Zitat:wird wieder ein Case Druckeinregelung aufgerufen. Da ist dann wieder ein PID-VI drinne. Hier wird es erneut aufgerufen und startet dann bei 0.
Regler hab ich nicht am Rechner. Aber gehe mal von folgendem aus: Das PID-Regler-SubVI ist invariant. D.h., so oft, wie das SubVI irgendwo im BD steht, so viele Regler gibt es. Das heißt natürlich, dass jeder Regler von allen anderen nichts weiß - also auch nicht den letzten Sollwert und nicht das bisheriege Verhalten. Ohne dieses invariante Verhalten wären parallele Regler nicht möglich.

Du kannst folgendes machen: Einfach den Regler in ein SubVI legen und das SubVI aufrufen. Dadurch ist das PID-Regler-VI nur noch ein einziges mal vorhanden.

Zitat:Ach ja: Was meinst du mit Sequenzieren m Zusammenhang mit dem Regler?
Guckst du Pfeil im Bild.
Welcher Wert wird an den Regler übergeben? Der "Systemdruck Istwert" vom Beginn der Schleife, also vor Starten der Abtastung, oder der "Systemdruck Istwert", der nach der Abtastung entstanden ist?


Angehängte Datei(en) Thumbnail(s)
   

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30.03.2010, 21:56
Beitrag #8

philipp Offline
LVF-Grünschnabel
*


Beiträge: 49
Registriert seit: Sep 2007

8.6 : 2009 SE
2007
de

81539
Deutschland
PID Regler kontinuierlich betreiben trotz Case-Struktur
Hi!

Danke für die schnelle Antwort!

Ich werde das Programm auf jeden Fall noch verkleinern. Nur solange ich evtl. noch was verändere wollte ich die einzelnen Teil nicht in SubVIs packen. Aber der Zaunpfahl hat mir auch schon öfters gewunken... Das viele Scrollen geht mir auf den ZEiger ... :-D

Das Sequenzieren hatte ich zwischenzeitlich schon erledigt:-). Habs jetzt direkt verdrahtet. Ist denke ich die bessere Lösung ;-)

Aber das eigentliche Problem ist doch noch ein anderes.Wenn ich eine höhere Druckstufe einregel, komme ich in ein neues dem eigentlich Mess- und Auswerteablauf übergeordnetes Case. Das ist nötig, da die Messwerte teilweise unterschiedlich ausgewertet werden. Das heißt ich habe in jedem Druck-Case einen kompletten Prüfablauf drin. Somit auch die Druckeinregelung.

Ich müsste glaube ich das VI so umgestalten, dass die Erfassung, Regelung und Auswertung komplett in einem Case abläuft, da sonst ja auch keine Messwerterfassung mehr geschieht und somit für die Regelung auch kein Istwert mehr vorhanden ist.

Das bedeutet dann wohl, dass meine ursprüngliche Idee nicht funktioniert, den Regler nach Außen zu ziehen und ihm nur die Werte zu übergeben...

Grüße

Philipp
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
31.03.2010, 09:22
Beitrag #9

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.692
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
PID Regler kontinuierlich betreiben trotz Case-Struktur
' schrieb:Das bedeutet dann wohl, dass meine ursprüngliche Idee nicht funktioniert, den Regler nach Außen zu ziehen und ihm nur die Werte zu übergeben...
Nur alleine die Sache mit dem Regler würde ja schon erledigt sein, wenn du das Regel-VI in ein SubVI auslagerst.

Andererseits stimme ich dir zu:
Mach ein SubVI (ich nenn solche Teile immer "Klasse"), das selbständig im Hintergrund läuft und alles macht. Analog-In-Task erstellen, starten, Messwerte sampeln etc. pp.. Gesteuert wird dieses SubVI durch eine Queue. Daten kann dieses SubVI nach außen liefern entweder per Queue oder per Melder. Je nach gusto kann diese Klasse auch das Analog-Out-Zeugs beinhalten - spricht also den Regler. Oder du machst auch für Analog-Out eine eigene Klasse, die den Regelwert dann per Melder von der Analog-In-Klasse bekommt.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
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
  Fehler bei AO - kontinuierlich - ohne Neugenerierung t.hipp 10 9.085 12.02.2018 22:08
Letzter Beitrag: t.hipp
  kontinuierlich anpassbare Ausgabe VS_03 1 4.221 09.06.2016 12:58
Letzter Beitrag: VS_03
  Analogausgang kontinuierlich schreiben, während der Moes 7 8.987 18.12.2015 09:09
Letzter Beitrag: Moes
  Programm zyklisch betreiben Chris88 11 9.126 11.01.2013 13:15
Letzter Beitrag: GerdW
  gleiches VI mit 4-20mA oder 0-10V Sensor betreiben mfader 2 5.229 04.01.2011 09:28
Letzter Beitrag: mfader
  Analog output kontinuierlich ändern aalemann 16 18.796 06.10.2010 09:47
Letzter Beitrag: Lucki

Gehe zu: