FUNCTION "POW" : VOID
TITLE =Raises 'x' to the power of 'b'
//y = x ^ b
AUTHOR : AS_CS_21
FAMILY : MATH
NAME : POW
VERSION : 10
VAR_INPUT
x : REAL ;
b : REAL ;
END_VAR
VAR_OUTPUT
y : REAL ;
END_VAR
VAR_TEMP
tBase : REAL ;
tExp : REAL ;
Exponent : DINT ;
inverted : BOOL ;
END_VAR
BEGIN
NETWORK
TITLE =Entscheide Sonderf鋖le -> direkt Ausgeben
//y = a^b
L #b;
T #tExp;
L 0000000e+000;
==R ;
L 1000000e+000;
JC Fast;
TAK ;
L #tExp;
>R ;
= #inverted;
JCN cOne;
NEGR ;
T #tExp;
cOne: L 1000000e+000;
==R ;
L #x;
JC Fast;
T #tBase;
TRUNC ;
DTR ;
L #tBase;
==R ;
ON #inverted;
JC vBas;
R #inverted;
L 0000000e+000;
JC EXIT;
NETWORK
TITLE =Entscheide ganzzahliger Exponent -> Schleife
vBas: L #tExp;
TRUNC ;
DTR ;
L #tExp;
<>R ;
JC cExp;
TRUNC ;
+ L#-1;
PWR: T #Exponent;
L #x;
L #tBase;
R ;
T #tBase;
L #Exponent;
LOOP PWR;
L #tBase;
JU Fast;
NETWORK
TITLE =Entscheide gebrochenrationaler Exponent -> Exp (#tExp Ln #tBase)
cExp: L #tBase;
LN ;
L #tExp;
R ;
EXP ;
NETWORK
TITLE =
Fast: AN #inverted;
JC EXIT;
L 1000000e+000;
TAK ;
/R ;
EXIT: T #y;
BE ;
END_FUNCTION
这个是源文件代码,如果你有STEP7的话,编译一下就生成相应的FC了。如果没有的话,希望你能读懂。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)