FB_CTRL_nPOINT
Der Funktionsbaustein stellt ein nPunkt-Übertragungsglied im Wirkungsplan dar.
Verhalten des Ausgangs:
Daten-Array des Beispiels:
Der Wert des Arrays mit dem Index (1,1), also der linke Wert in der 1. Zeile kann frei gewählt werden, da er nicht ausgewertet wird.
VAR_INPUT
VAR_INPUT
fSetpointValue : FLOAT;
fActualValue : FLOAT;
fManValue : BOOL;
eMode : E_CTRL_MODE;
END_VAR
fSetpointValue : Sollwert der Regelgröße.
fActualValue : Istwert der Regelgröße.
fManValue : Eingang, der im Manual-Mode ausgegeben wird.
eMode : Eingang, der die Betriebsart des Bausteins festlegt.
VAR_OUTPUT
VAR_OUTPUT
fOut : nPOINT_CTRL_TABLE_ELEMENT;
eState : E_CTRL_STATE;
eErrorId : E_CTRL_ERRORCODES;
bError : BOOL;
END_VAR
fOut : Ausgang des nPunkt-Glieds.
eState : State des Funktionsbausteins.
eErrorId : Liefert bei einem gesetzten bError-Ausgang die Fehlernummer.
bError : Wird TRUE, sobald ein Fehler eintritt.
VAR_IN_OUT
VAR_IN_OUT
stParams : ST_CTRL_nPOINT_PARAMS;
END_VAR
stParams : Parameterstruktur des nPunkt-Glieds. Diese besteht aus den folgenden Elementen:
TYPE
ST_CTRL_nPOINT_PARAMS :
STRUCT
tCtrlCycleTime : TIME := T#0ms; (*
controller cycle time [TIME] *)
tTaskCycleTime : TIME := T#0ms; (* task
cycle time [TIME] *)
pDataTable_ADR : POINTER TO
nPOINT_CTRL_TABLE_ELEMENT := 0;
nDataTable_SIZEOF : UINT := 0;
nDataTable_NumberOfRows : UINT := 0;
fHysteresisRange : FLOAT; (* range of
the hysteresis loop *)
END_STRUCT
END_TYPE
tCtrlCycleTime : Zykluszeit, mit der der Regelkreis bearbeitet wird. Diese muss größer oder gleich der TaskCycleTime sein. Der Funktionsbaustein berechnet mit dieser Eingangsgröße intern, ob die Zustands- und Ausgangsgrößen im aktuellen Zyklus aktualisiert werden müssen.
tTaskCycleTime : Zykluszeit, mit der der Funktionsbaustein aufgerufen wird. Diese entspricht der Task-Zykluszeit der aufrufenden Task, wenn der Baustein in jedem Zyklus aufgerufen wird.
pDataTable_ADR :Adresse der Daten-Tabelle.
nDataTable_SIZEOF :Größe der Daten-Tabelle in Bytes.
nDataTable_NumberOfRows :Zeilenanzahl der Daten-Tabelle.
fHysteresisRange :Hysterese-Bereich, siehe Bild oben. Der Hysterese-Bereich wirkt wie bei dem FB_CTRL_2POINT beschrieben.