F356_PID_PWM

PID-Regelung mit optionaler PWM-Ausgabe

Die PID-Regelung dient dazu, einen Istwert (PV = process value) dem festgelegten Sollwert (SP = set point) anzunähern und zu halten. Im Gegensatz zu F355_PID_DUT aktiviert dieser Befehl einen PWM-Ausgang. Hierbei handelt es sich um einen pulsweitenmodulierten schaltenden Ausgang. Die PID-Regelungsparameter Kp, Ti und Td können automatisch mit der Auto-Tuning-Funktion ermittelt werden.

Parameter

Eingang

Run (BOOL)

Startbedingung

Control (F356_Control_DUT)

Betriebsart

ParametersHold (F356_Parameters_Hold_DUT)

PID-Parameter

ParametersNonHold (F356_Parameters_NonHold_DUT)

Stellgröße (MV), zusätzliche Regelungsparameter, Auto-Tuning- und Arbeitsbereich

Anmerkung

Wenn Sie die Anweisung das erste Mal ausführen, d. h. wenn die in Run spezifizierte Bedingung auf TRUE, gesetzt wird, werden die Standardwerte in DUT-Elemente 1 bis 9 von DUT geschrieben .

ProcessValue (INT)

Istwert (-30000–30000)

Ausgang

PWM_Output (BOOL) (siehe Anmerkung)

Pulsweitenmoduliertes Ausgangssignal (optional anstelle von Stellgröße MV)

Anmerkungen

  • Wir empfehlen, anstelle von diesem F-Befehl den entsprechenden FP7-Befehl zu verwenden: FP_PID

  • Zur Beschreibung des PID-Regelungsprozesses verwendete Abkürzungen

    Abkürzung

    Bedeutung

    Deutsche Bezeichnungen

    PV

    Istwert

    Istwert, Messwert

    SP

    Sollwert

    Sollwert, Einstellwert

    MV

    Stellgröße MV

    Ausgangswert, Stellgröße MV

    Ts

    Regelzykluszeit

    Zykluszeit

    Ti

    Integralzeit

    -

    Td

    Differenzialzeit

    -

    Kp

    Proportionalbeiwert

    -

    AT

    Auto-Tuning

    -

  • Vor der zweiten Ausführung von FP_PID müssen Sie die SDT-Elemente 1 bis 9 des SDTs auf die gewünschten Werte ändern.

Allgemeine Programmierhinweise

  1. Wenn die Ausführungsbedingung am Eingang Run gesetzt ist, werden die Daten im Argument ParametersNonHold initialisiert. Wenn Sie möchten, dass ein Wert im SDT andere als die Standardwerte verwendet, schreiben Sie die Werte in den SDT, beispielsweise unter Verwendung eines Befehls MOVE, der kontinuierlich durch eine TRUE-Bedingung ausgelöst werden muss.

  2. F356_PID_PWM darf nur einmal pro SPS-Zyklus ausgeführt werden. Verwenden Sie den Befehl F356_PID_PWM daher nicht in Interrupt-Programmen oder Schleifen.

  3. Setzen Sie die Ausführungsbedingung am Eingang Run während der PID-Regelung nicht auf FALSE. Sonst wird die PID-Regelung abgebrochen.

  4. Wenn Sie z.B. zur Regelung mehrerer Regelkreise ein paralleles Takten des PWM-Ausgangs verhindern möchten, setzen Sie z.B. Zeitgeber ein, um den Regelungsbeginn entsprechend zu verzögern.

Beispiel

Anmerkung

Die Frequenzperiode des PWM-Ausgangs entspricht der Regelzykluszeit Ts (Frequenz des PWM-Ausgangs = 1/Ts). Das Puls-Pausenverhältnis entspricht der Stellgröße MV x 0,01%, z.B.: MV = 10000 entspricht einem Puls-Pausenverhältnis von 100%.

Fehleralarmmerker

sys_bIsOperationErrorHold (wird auf TRUE gesetzt und bleibt TRUE)

wenn ein Parameter von F356_Parameters_NonHold_DUT ungültig ist

sys_bIsOperationErrorNonHold (wird für einen Zyklus auf TRUE gesetzt)

wenn ein Parameter von F356_Parameters_NonHold_DUT ungültig ist

sys_bIsEqual (wird auf TRUE gesetzt und bleibt TRUE)

wenn der mit UpperLimit oder LowerLimit definierte Bereich ungültig ist

Weitere Informationen:

  • Steuerungseinstellungen: F356_Parameters_Hold_DUT

  • Sollwert SP und Regelungsparameter: F356_Parameters_Hold_DUT

Hinweise zum Auto-Tuning:

  • Die Elemente AT_Progress in F356_Parameters_Hold_DUT und b1_AT_Complete in F356_Control_DUT werden an der steigenden Flanke des Auto-Tuning-Signals gelöscht.

  • Wenn das Auto-Tuning erfolgreich beendet ist, wird das Element b1_AT_Complete von F356_Control_DUT gesetzt und der Status im Element AT_Progress von F356_Parameters_NonHold_DUT gespeichert.

  • Wird das Auto-Tuning abgebrochen, bleiben die Parameter Kp, Ti und Td unverändert.

Beispiel

Globale Variablen

In der globalen Variablenliste können Sie Variablen festlegen, die von allen POEs des Projekts verwendet werden können.

POE-Kopf

Im POE-Kopf werden alle Ein- und Ausgangsvariablen deklariert, die für die Programmierung dieser Funktion verwendet werden. Für alle Programmiersprachen wird der gleiche POE-Kopf verwendet.

_VAR
	VAR 
		bStartAutoTuning: BOOL:=FALSE;
		bRunPidControl: BOOL:=FALSE;
		ControlData: F356_Control_DUT;
		ParametersHold: F356_Parameters_Hold_DUT;
		ParametersNonHold: F356_Parameters_NonHold_DUT;
	END_VAR

KOP-Rumpf

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 5 ;
        NETWORK_BODY
B(B_CONTACT,,bStartAutoTuning,5,1,7,3,R);
B(B_COIL,,ControlData.b0_AT_Request,22,1,24,3,);
L(1,2,5,2);
L(7,2,22,2);
L(1,0,1,5);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 7 ;
        NETWORK_BODY
B(B_F,F356_PID_PWM!,Instance,11,0,22,7,,?DRun?DControl?DParametersHold?DParametersNonHold?DProcessValue?APWM_Output);
B(B_VARIN,,ControlData,9,2,11,4,);
B(B_VARIN,,ParametersHold,9,3,11,5,);
B(B_VARIN,,ParametersNonHold,9,4,11,6,);
B(B_VARIN,,x_iTemperatureInput,9,5,11,7,);
B(B_VAROUT,,y_bPwmOutput,22,1,24,3,);
B(B_CONTACT,,bRunPidControl,4,1,6,3,);
L(1,2,4,2);
L(6,2,11,2);
L(1,0,1,7);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST-Rumpf

(* Auto Tuning: *)
if DF(bStartAutoTuning) then
    ControlData.b0_AT_Request:=TRUE;
end_if;
y_bPwmOutput:=F356_PID_PWM(    Run := bRunPidControl, 
        Control := ControlData, 
        ParametersHold := ParametersHold, 
        ParametersNonHold := ParametersNonHold, 
        ProcessValue := x_iTemperatureInput);

AWL-Rumpf

Letzte Änderung am: 2022-05-12Feedback zu dieser SeitePanasonic Hotline