MC_AxCtrlPressure_BkPlcMc (ab V3.0)

MC_AxCtrlPressure_BkPlcMc (ab V3.0) 1:

Der Funktionsbaustein regelt den an einer Achse wirksamen Druck so, dass in dem durch ReadingMode ausgewählten Istwert ein gewünschter Vorgabewert aufgebaut und eingehalten wird.

Die Erfassung des Istdruck kann in den meisten Fällen mit Bausteinen vom Typ MC_AxRtReadPressureSingle_BkPlcMc oder MC_AxRtReadPressureDiff_BkPlcMc erfolgen.

MC_AxCtrlPressure_BkPlcMc (ab V3.0) 2: Eingänge

VAR_INPUT
    Enable:     BOOL:=FALSE;
    Reset:      BOOL:=TRUE;
    FirstAuxParamIdx: INT:=0;
    kP:         LREAL:=0.0;
    Tn:         LREAL:=0.0;
    ReadingMode:E_TcMcPressureReadingMode:=iTcHydPressureReadingDefault;
    PreSet:     LREAL:=0.0;
    WindupLimit:LREAL:=0.0;
END_VAR

Name

Typ

Beschreibung

Enable

BOOL

Durch ein TRUE an diesem Eingang wird der Regler aktiviert.

Reset

BOOL

Durch ein TRUE an diesem Eingang wird der Regler zurückgesetzt. Der Speicher des I-Anteils wird abgelöscht.

FirstAuxParamIdx

INT

Hier kann ein Bereich in den Axis_Ref_BkPlcMc.ST_TcHydAxParam.fCustomerData als Parameter-Interface aktiviert werden.

kP

LREAL

Der Verstärkungsfaktor des P-Anteils.

Tn

LREAL

Die Nachstellzeit des I-Anteils.

ReadingMode

E_TcMcPressureReadingMode

Hier kann die zu regelnde Istgröße festgelegt werden. Als Defaultwert wird Axis_Ref_BkPlcMc.ST_TcHydAxRtData.fActPressure ausgewählt.

PreSet

LREAL

Hier kann ein Voreinstellwert festgelegt werden, mit dem ein Initialwert für den I-Anteil des Reglers berechnet wird. Auf diesen Wert wird der I-Anteil bei Aktivierung vorgeladen.

WindupLimit

LREAL

Hier kann ein Begrenzungswert für den I-Anteil festgelegt werden. Eine solche Begrenzung verhindert ein extremes Verhalten des I-Anteils in Situationen, in denen die Strecke nicht auf die Ausgaben des Reglers reagiert.

MC_AxCtrlPressure_BkPlcMc (ab V3.0) 3: Ein-/Ausgänge

VAR_INOUT
    Axis:       Axis_Ref_BkPlcMc;
END_VAR

Name

Typ

Beschreibung

Axis

Axis_Ref_BkPlcMc

Hier ist die Adresse einer Variablen vom Typ Axis_Ref_BkPlcMc zu übergeben.

 

MC_AxCtrlPressure_BkPlcMc (ab V3.0) 4: Ausgänge

VAR_OUTPUT
    Error:      BOOL;
    ErrorID:    UDINT;
    InWindup:   UDINT;
END_VAR

Name

Typ

Beschreibung

Error

BOOL

Hier wird das Auftreten eines Fehlers signalisiert.

ErrorID

UDINT

Hier wird eine codierte Fehlerursache bereitgestellt.

InWindup

UDINT

Dieser Ausgang wird TRUE wenn der I-Anteil durch WindupLimit begrenzt wird.

Verhalten des Bausteins

Bei jedem Aufruf untersucht der Baustein das übergebene Achsinterface. Durch ein TRUE an Reset wird der Baustein unabhängig von den anderen Steuersignalen in einen Ruhezustand versetzt. Dann ist sowohl der P- als auch der I-Anteil gelöscht. Durch Enable kann festgelegt werden, ob der Baustein den aktiven Zustand annimmt.

Der Eingang ReadingMode legt fest, welche Variable in der stAxRtData Struktur die zu regelnde Größe enthält.

MC_AxCtrlPressure_BkPlcMc (ab V3.0) 5:

Der Sollwert ist in fSetPressure in der stAxRtData Struktur der Achse vorzugeben.

Zunächst ermittelt der Baustein, ob er den aktiven Zustand annehmen oder beenden muss. Dazu wird das Signale Enable ausgewertet. Bei einer steigenden Flanke wird der I-Anteil mit PreSet initialisiert. Wenn der zu ST_TcHydAxRtData.fSetPressure passende Ausgabewert bekannt ist kann dies für ein schnelleres Erreichen des ausgeregelten Zustands genutzt werden. Anschließend wird mit kP ein P-Anteil und mit Tn ein I-Anteil berechnet. Die Summe dieser Regler-Anteile wird als Stellwert in ST_TcHydAxRtData.fSetSpeed ausgegeben. Da dieser Regler die Funktion eines Stellwertgenerators übernimmt löscht er ST_TcHydAxRtData.fLagCtrlOutput. Der nach dem Reglerbaustein zu platzierende MC_AxRtFinish_BkPlcMc Baustein berücksichtigt die Reaktion dann automatisch.

Der Übergang in den inaktiven Zustand führt zu einem Löschen der Regleranteile.

Integration des Bausteins in die Applikation

Ein Baustein dieses Typs muss nach der Istwert- und Istdruck-Erfassung aufgerufen werden. Er übernimmt die volle Kontrolle über die Achse und ersetzt einen eventuell vorhandenen Baustein für die Stellwert-Generierung.

Es steht ein Programm-Beispiel #15 zur Verfügung.

MC_AxCtrlPressure_BkPlcMc (ab V3.0) 6:

Ist sowohl ein Baustein für die Stellwert-Generierung als auch ein MC_AxCtrlPressure_BkPlcMc Baustein vorhanden sind diese Bausteine entweder alternativ aufzurufen oder der MC_AxCtrlPressure_BkPlcMc Baustein muss nach dem Stellwert-Baustein stehen, sodass er dessen Ausgaben überschreibt. Beides ist nicht mit jedem Generator-Typ zulässig.

MC_AxCtrlPressure_BkPlcMc (ab V3.0) 7:

Durch einen Wert größer als 0 in FirstAuxParamIdx kann der Baustein veranlasst werden drei aufeinander folgende Werte in den fCustomerData der Parameter-Struktur als Tn, kP und PreSet zu verwenden. Ist in Axis.pStAxAuxLabels die Adresse eines geeigneten ARRAY[..] OF STRING() eingetragen werden die Parameter automatisch mit einer Bezeichnung versehen.

Inbetriebnahme

Die vier Parameter kP, Tn, PreSet und WindupLimit lassen eine Anpassung des Reglers an eine Reihe unterschiedlicher Aufgaben zu.

Hinweis

Schwingungen in der Regelung

Während der Inbetriebnahme kann es dazu kommen, dass die Achse mit dem vollen Systemdruck beaufschlagt wird oder dass gedämpfte oder ungedämpfte Schwingungen in einem weiten Frequenzbereich auftreten. Sollte dies für die Achse oder ihre Umgebung gefährlich sein sind Vorkehrungen zu treffen. In jedem Fall sollten Maßnahmen vorgesehen werden, die Regelungen schnell zu deaktivieren.

Zunächst sollten für Tn und Preset der Wert 0.0 und für WindupLimit der Wert 1.0 eingetragen werden. Der Regler arbeitet jetzt als reiner P-Regler. Nachdem ein Block angefahren und der Regler aktiviert ist (Enable:=TRUE, Reset:=FALSE, SetPressure:=Sollwert) kann jetzt der maximal anwendbare Wert für kP festgestellt werden. Dazu ist der Wert schrittweise zu erhöhen, bis sich eine Schwingneigung zeigt. Durch wiederholtes Deaktivieren und Aktivieren sollte überprüft werden, ob der Regler tatsächlich stabil ist. In der Praxis wird der Wert zwischen etwa 0.1 und 0.5 liegen.

Als nächster Parameter ist Tn einzustellen. Dazu sollte zunächst ein relativ großer Wert wie 0.5 vorgegeben werden. Jetzt sollte der Istdruck mit großer Trägheit aber recht genau auf den Sollwert eingeregelt werden. Durch schrittweises Verkleinern wird jetzt die maximal mögliche Einstellung ermittelt. Auch dabei ist durch wiederholtes Deaktivieren und Aktivieren zu überprüfen, ob der Regler tatsächlich stabil ist. Zeigt sich eine Neigung zur gedämpften Schwingung beim Aktivieren ist Tn bereits zu niedrig eingestellt.

Die Einstellung von WindupLimit beeinflusst das Verhalten des Reglers nicht auf direktem Weg. Vielmehr dient dieser Parameter dazu, das Übergangsverhalten zu beeinflussen. Wenn der Regler den Druck unmittelbar aufbauen kann, weil die Achse keinen Weg zurücklegen muss sollte der Wert von WindupLimit so gewählt werden, dass der I-Anteil nicht größer als das drei- bis Vierfache des Wertes erreichen kann, der entsprechend der Ventilcharakteristik benötigt wird. Auf diese Weise kann das Einregeln des Drucks deutlich schneller erreicht werden. Hat die Achse noch einen Weg zurückzulegen wird ein zu niedriger Wert dieses Parameters die Bewegung der Achse zum Erreichen der Arbeitsposition bestimmen. Ist der Parameter zu niedrig gewählt wird die Achse sehr langsam oder kann sogar stehen bleiben. Andererseits wird ein zu hoher Wert dazu führen, dass die Achse die Arbeitsposition mit eher hoher Geschwindigkeit erreicht und der Druckanstieg steil ist. Der dabei auftretende Spitzendruck kann dann erhebliche Werte annehmen.

Hinweis

Es ist wenn irgend möglich zu vermeiden, einen Druckregler zu aktivieren, wenn sich die Achse nicht zumindest sehr nah an ihrer Arbeitsposition befindet.

Der Wert für PreSet kann für zwei Vorgehensweisen eingesetzt werden. Soll der Druckregler den Stellwert eines anderen Bausteins kontinuierlich fortsetzen kann dessen Stellwert für die Berechnung von PreSet vorgegeben werden. So können die Stellwertsprünge beim Aktivieren des Reglers verringert oder völlig vermieden werden.

Ist der vom Regler zu erzeugende Stellwert bekannt kann als PreSet ein Wert vorgegeben werden, der in der Nähe dieses Wertes liegt. So kann die Zeit verringert werden, die der I-Anteil zum Aufbauen des Stellwerts benötigt. Da auch der P-Anteil wirksam ist sollte jedoch ein Wert eingestellt werden, der höher als der exakte Wert ist.

MC_AxCtrlPressure_BkPlcMc (ab V3.0) 8:

Letztlich ist bei der Einstellung dieser Parameter durch kleine Veränderungen und Beurteilung des Reglerverhaltens ein der Aufgabe angemessener Satz von Werten zu finden.

MC_AxCtrlPressure_BkPlcMc (ab V3.0) 9:

Beispiel für das Verhalten des Reglers, wenn die Achse zunächst einen Weg zurücklegen muss, bevor sie den geforderten Druck aufzubauen vermag.

MC_AxCtrlPressure_BkPlcMc (ab V3.0) 10:

Beispiel für das Verhalten des Reglers, wenn die Achse unmittelbar den geforderten Druck aufzubauen vermag.