FUNCTION FC 152 : VOID
TITLE =Skalierung von 10 Abschnitten
VERSION : 0.1
VAR_INPUT
IN : REAL ; //Eingangsvariable
X1 : REAL ; //Grenze 1 der Eingangsvariablen
Y1 : REAL ; //Grenze 1 der Ausgangsvariablen
X2 : REAL ; //Grenze 2 der Eingangsvariablen
Y2 : REAL ; //Grenze 2 der Ausgangsvariablen
X3 : REAL ; //Grenze 3 der Eingangsvariablen
Y3 : REAL ; //Grenze 3 der Ausgangsvariablen
X4 : REAL ; //Grenze 4 der Eingangsvariablen
Y4 : REAL ; //Grenze 4 der Ausgangsvariablen
X5 : REAL ; //Grenze 5 der Eingangsvariablen
Y5 : REAL ; //Grenze 5 der Ausgangsvariablen
X6 : REAL ; //Grenze 6 der Eingangsvariablen
Y6 : REAL ; //Grenze 6 der Ausgangsvariablen
X7 : REAL ; //Grenze 7 der Eingangsvariablen
Y7 : REAL ; //Grenze 7 der Ausgangsvariablen
X8 : REAL ; //Grenze 8 der Eingangsvariablen
Y8 : REAL ; //Grenze 8 der Ausgangsvariablen
X9 : REAL ; //Grenze 9 der Eingangsvariablen
Y9 : REAL ; //Grenze 9 der Ausgangsvariablen
X10 : REAL ; //Grenze 10 der Eingangsvariablen
Y10 : REAL ; //Grenze 10 der Ausgangsvariablen
X11 : REAL ; //Grenze 11 der Eingangsvariablen
Y11 : REAL ; //Grenze 11 der Ausgangsvariablen
END_VAR
VAR_OUTPUT
OUT : REAL ; //Ausgangsvariable
END_VAR
VAR_TEMP
X1_FC153 : REAL ; //untere Grenze der Eingangsvariablen
X2_FC153 : REAL ; //obere Grenze der Eingangsvariablen
Y1_FC153 : REAL ; //untere Grenze der Ausgangsvariablen
Y2_FC153 : REAL ; //obere Grenze der Ausgangsvariablen
PAFE_FC153 : BOOL ; //Parametrierfehler X1=X2
IN_X1 : BOOL ; //Eingangsvariable < X1
IN_X11 : BOOL ; //Eingangsvariable >= X11
END_VAR
BEGIN
NETWORK
TITLE =Eingangsvariable < X1 ?
L #IN;
L #X1;
<R ;
= L 17.0;
U L 17.0;
SPBNB _001;
L #Y1;
T #OUT;
_001: NOP 0;
U L 17.0;
BLD 102;
= #IN_X1;
NETWORK
TITLE =Eingangsvariable zwischen X1 und X2 ?
U( ;
L #IN;
L #X1;
>=R ;
) ;
U( ;
L #IN;
L #X2;
<R ;
) ;
= L 17.0;
U L 17.0;
SPBNB _002;
L #X1;
T #X1_FC153;
_002: NOP 0;
U L 17.0;
SPBNB _003;
L #X2;
T #X2_FC153;
_003: NOP 0;
U L 17.0;
SPBNB _004;
L #Y1;
T #Y1_FC153;
_004: NOP 0;
U L 17.0;
SPBNB _005;
L #Y2;
T #Y2_FC153;
_005: NOP 0;
NETWORK
TITLE =Eingangsvariable zwischen X2 und X3 ?
U( ;
L #IN;
L #X2;
>=R ;
) ;
U( ;
L #IN;
L #X3;
<R ;
) ;
= L 17.0;
U L 17.0;
SPBNB _006;
L #X2;
T #X1_FC153;
_006: NOP 0;
U L 17.0;
SPBNB _007;
L #X3;
T #X2_FC153;
_007: NOP 0;
U L 17.0;
SPBNB _008;
L #Y2;
T #Y1_FC153;
_008: NOP 0;
U L 17.0;
SPBNB _009;
L #Y3;
T #Y2_FC153;
_009: NOP 0;
NETWORK
TITLE =Eingangsvariable zwischen X3 und X4 ?
U( ;
L #IN;
L #X3;
>=R ;
) ;
U( ;
L #IN;
L #X4;
<R ;
) ;
= L 17.0;
U L 17.0;
SPBNB _00a;
L #X3;
T #X1_FC153;
_00a: NOP 0;
U L 17.0;
SPBNB _00b;
L #X4;
T #X2_FC153;
_00b: NOP 0;
U L 17.0;
SPBNB _00c;
L #Y3;
T #Y1_FC153;
_00c: NOP 0;
U L 17.0;
SPBNB _00d;
L #Y4;
T #Y2_FC153;
_00d: NOP 0;
NETWORK
TITLE =Eingangsvariable zwischen X4 und X5 ?
U( ;
L #IN;
L #X4;
>=R ;
) ;
U( ;
L #IN;
L #X5;
<R ;
) ;
= L 17.0;
U L 17.0;
SPBNB _00e;
L #X4;
T #X1_FC153;
_00e: NOP 0;
U L 17.0;
SPBNB _00f;
L #X5;
T #X2_FC153;
_00f: NOP 0;
U L 17.0;
SPBNB _010;
L #Y4;
T #Y1_FC153;
_010: NOP 0;
U L 17.0;
SPBNB _011;
L #Y5;
T #Y2_FC153;
_011: NOP 0;
NETWORK
TITLE =Eingangsvariable zwischen X5 und X6 ?
U( ;
L #IN;
L #X5;
>=R ;
) ;
U( ;
L #IN;
L #X6;
<R ;
) ;
= L 17.0;
U L 17.0;
SPBNB _012;
L #X5;
T #X1_FC153;
_012: NOP 0;
U L 17.0;
SPBNB _013;
L #X6;
T #X2_FC153;
_013: NOP 0;
U L 17.0;
SPBNB _014;
L #Y5;
T #Y1_FC153;
_014: NOP 0;
U L 17.0;
SPBNB _015;
L #Y6;
T #Y2_FC153;
_015: NOP 0;
NETWORK
TITLE =Eingangsvariable zwischen X6 und X7 ?
U( ;
L #IN;
L #X6;
>=R ;
) ;
U( ;
L #IN;
L #X7;
<R ;
) ;
= L 17.0;
U L 17.0;
SPBNB _016;
L #X6;
T #X1_FC153;
_016: NOP 0;
U L 17.0;
SPBNB _017;
L #X7;
T #X2_FC153;
_017: NOP 0;
U L 17.0;
SPBNB _018;
L #Y6;
T #Y1_FC153;
_018: NOP 0;
U L 17.0;
SPBNB _019;
L #Y7;
T #Y2_FC153;
_019: NOP 0;
NETWORK
TITLE =Eingangsvariable zwischen X7 und X8 ?
U( ;
L #IN;
L #X7;
>=R ;
) ;
U( ;
L #IN;
L #X8;
<R ;
) ;
= L 17.0;
U L 17.0;
SPBNB _01a;
L #X7;
T #X1_FC153;
_01a: NOP 0;
U L 17.0;
SPBNB _01b;
L #X8;
T #X2_FC153;
_01b: NOP 0;
U L 17.0;
SPBNB _01c;
L #Y7;
T #Y1_FC153;
_01c: NOP 0;
U L 17.0;
SPBNB _01d;
L #Y8;
T #Y2_FC153;
_01d: NOP 0;
NETWORK
TITLE =Eingangsvariable zwischen X8 und X9 ?
U( ;
L #IN;
L #X8;
>=R ;
) ;
U( ;
L #IN;
L #X9;
<R ;
) ;
= L 17.0;
U L 17.0;
SPBNB _01e;
L #X8;
T #X1_FC153;
_01e: NOP 0;
U L 17.0;
SPBNB _01f;
L #X9;
T #X2_FC153;
_01f: NOP 0;
U L 17.0;
SPBNB _020;
L #Y8;
T #Y1_FC153;
_020: NOP 0;
U L 17.0;
SPBNB _021;
L #Y9;
T #Y2_FC153;
_021: NOP 0;
NETWORK
TITLE =Eingangsvariable zwischen X9 und X10 ?
U( ;
L #IN;
L #X9;
>=R ;
) ;
U( ;
L #IN;
L #X10;
<R ;
) ;
= L 17.0;
U L 17.0;
SPBNB _022;
L #X9;
T #X1_FC153;
_022: NOP 0;
U L 17.0;
SPBNB _023;
L #X10;
T #X2_FC153;
_023: NOP 0;
U L 17.0;
SPBNB _024;
L #Y9;
T #Y1_FC153;
_024: NOP 0;
U L 17.0;
SPBNB _025;
L #Y10;
T #Y2_FC153;
_025: NOP 0;
NETWORK
TITLE =Eingangsvariable zwischen X10 und X11 ?
U( ;
L #IN;
L #X10;
>=R ;
) ;
U( ;
L #IN;
L #X11;
<R ;
) ;
= L 17.0;
U L 17.0;
SPBNB _026;
L #X10;
T #X1_FC153;
_026: NOP 0;
U L 17.0;
SPBNB _027;
L #X11;
T #X2_FC153;
_027: NOP 0;
U L 17.0;
SPBNB _028;
L #Y10;
T #Y1_FC153;
_028: NOP 0;
U L 17.0;
SPBNB _029;
L #Y11;
T #Y2_FC153;
_029: NOP 0;
NETWORK
TITLE =Eingangsvariable >= X11 ?
L #IN;
L #X11;
>=R ;
= L 17.0;
U L 17.0;
SPBNB _02a;
L #Y11;
T #OUT;
_02a: NOP 0;
U L 17.0;
BLD 102;
= #IN_X11;
NETWORK
TITLE =Skalierung
//Abarbeitung nur, wenn Eingangsvariable zwischen X1 und X11 liegt
UN #IN_X1;
UN #IN_X11;
SPBNB _02b;
CALL FC 153 (
IN := #IN,
X1 := #X1_FC153,
X2 := #X2_FC153,
Y1 := #Y1_FC153,
Y2 := #Y2_FC153,
OUT := #OUT,
PAFE := #PAFE_FC153);
_02b: NOP 0;
END_FUNCTION