PID_FB_DUT

PID-Regler mit Auto-Tuning

Diese Implementierung erlaubt den Zugriff auf den Befehl F355_PID über die Struktur PID_DUT_31.

Parameter

Eingang

Automatic (BOOL)

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

TRUE: Stellgröße wird automatisch vorgegeben

Ausgang

PidDut (PID_DUT_31)

Detaillierte Erläuterungen zu den Parametern finden Sie unter PID_DUT_31.

Anmerkungen

  • 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.

Fehleralarmmerker

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_Parameter: PID_DUT;
			(*PID Parameters*)
		PID_Control: PID_FB_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 := 4 ;
        NETWORK_BODY
B(B_VARIN,,Set_Value_SP,9,2,11,4,);
B(B_VAROUT,,PID_Parameter.SP,11,2,13,4,);
L(1,0,1,4);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 2 ;
        NETWORK_BODY
B(B_VARIN,,Process_Value_PV,9,0,11,2,);
B(B_VAROUT,,PID_Parameter.PV,11,0,13,2,);
L(1,0,1,2);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 5 ;
        NETWORK_BODY
B(B_FB,PID_FB_DUT!,PID_Control,10,1,18,5,,?BAutomatic?BPidDut?APidDut);
B(B_VARIN,,TRUE,8,2,10,4,);
B(B_VARIN,,PID_Parameter,8,3,10,5,);
L(1,0,1,5);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 4 ;
        NETWORK_BODY
B(B_VARIN,,PID_Parameter.MV,10,2,12,4,);
B(B_VAROUT,,Output_Value_MV,12,2,14,4,);
B(B_COMMENT,,Write manipulated value to the output,3,1,22,2,);
L(1,0,1,4);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST-Rumpf

PID_Parameter.SP := Set_Value_SP;
PID_Parameter.PV := Process_Value_PV;
PID_Control( Automatic:= TRUE,
        PidDut:= PID_Parameter);
Output_Value_MV := PID_Parameter.MV;

AWL-Rumpf

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