PID_FB

PID-Regler ohne Auto-Tuning

Diese Implementierung erlaubt eine direkte Parametrierung des F355_PID über Argumente:

Parameter

Eingang

Automatic

FALSE: Ermöglicht manuelle Einstellung der Stellgröße

TRUE: Stellgröße wird automatisch vorgegeben

Forward (BOOL)

FALSE: Gegensinnige Regelung (Heizen)

TRUE: Gleichsinnige Regelung (Kühlen)

I_PD (BOOL)

FALSE: PI-D-Regelung

TRUE: I-PD-Regelung

SP (INT)

Sollwert, Bereich 0-10000

PV (INT)

Istwert, Bereich 0-10000

Kp (INT)

Proportionalbeiwert, Bereich: 1-9999, Einheit: 0,1

Ti (INT)

Integralzeit, Bereich: 1-30000, Einheit: 0,1s

Td (INT)

Differenzialzeit, Bereich: 1-10000, Einheit: 0,1s

Ts (INT)

Regelzykluszeit, Bereich: 1-6000, Einheit: 0,01s

LowerLimit (INT)

Untergrenze der Stellgröße, Bereich: 0-10000

UpperLimit (INT)

Obergrenze der Stellgröße, Bereich: 1-10000

Ein-/Ausgang

MV (INT)

Stellgröße MV

Anmerkungen

  • Das Auto-Tuning ist mit PID_FB nicht möglich. Verwenden Sie in diesem Fall PID_FB_DUT.

  • Der Wert von MV kann von extern entweder gleich beim Programmstart bei der Initialisierung vorgegeben werden oder wenn der Wert von Automatic FALSE ist.

  • Um maximale Auflösung und minimale Totzeiten jenseits von LowerLimit und UpperLimit zu erzielen, sollten diese Werte möglichst den gesamten Bereich von 0–10000 abdecken.

sys_bIsOperationErrorHold (wird auf TRUE gesetzt und bleibt TRUE)

wenn die Parameterwerte außerhalb ihres erlaubten Bereichs sind.

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

wenn die Parameterwerte außerhalb ihres erlaubten Bereichs sind.

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_EXTERNAL
		Set_Value_SP: INT:=0;
			(*A/D CH0*)
		Process_Value_PV: INT:=0;
			(*A/D CH1*)
		Output_Value_MV: INT:=0;
			(*D/A*)
	END_VAR
	VAR 
		PID_Control: PID_FB;
			(*PID Parameters*)
	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 := 15 ;
        NETWORK_BODY
B(B_FB,PID_FB!,PID_Control,11,1,19,15,,?BAutomatic?BForward?BI_PD?BSP?BPV?BKp?BTi?BTd?BTs?BLowerLimit?BUpperLimit?BMV?AMV);
B(B_VARIN,,TRUE,9,2,11,4,);
B(B_VARIN,,FALSE,9,3,11,5,);
B(B_VARIN,,FALSE,9,4,11,6,);
B(B_VARIN,,Set_Value_SP,9,5,11,7,);
B(B_VARIN,,Process_Value_PV,9,6,11,8,);
B(B_VARIN,,15,9,7,11,9,);
B(B_VARIN,,200,9,8,11,10,);
B(B_VARIN,,1,9,9,11,11,);
B(B_VARIN,,10,9,10,11,12,);
B(B_VARIN,,0,9,11,11,13,);
B(B_VARIN,,1000,9,12,11,14,);
B(B_VARIN,,Output_Value_MV,9,13,11,15,);
L(1,0,1,15);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST-Rumpf

PID_Control( Automatic:= TRUE,
        Forward:= FALSE,
        I_PD:= FALSE,
        SP:= Set_Value_SP,
        PV:= Process_Value_PV,
        Kp:= 15,
        Ti:= 200,
        Td:= 1,
        Ts:= 10,
        LowerLimit:= 0,
        UpperLimit:= 1000,
        MV:= Output_Value_MV);

AWL-Rumpf

Letzte Änderung am: 2023-07-06Feedback zu dieser SeitePanasonic Hotline