-> Hier kostenlos registrieren
Ich hab ein FB mit dieser Code
Wenh ich siese FB direct aufruf funtioniert er richtich ,abel in ein multiinstanz ruf er bij die indirekte bearbeidung auf die false Dataworden su wehn die instans nicht in ab DW 0 in die Multiinstanz steht.
Wass must ich andere in das programm um das in ein Multiinstanz auch gut arbeiten su lassen?
Ich konte mit SFC20 das Array in die Lokaalvar setzen, Das programm auf de L data zugreiffewn zu lassen un darnach Die L var wieder zuruck kopieren nach die Stat var, aber das kosste ganz viel cycluszeit.
Code:
FUNCTION_BLOCK FB 501
TITLE =
//Filter om gemiddelde van een Real waarde te bepalen (filterfactor 1..255)
VERSION : 0.1
VAR
Inputwaarde : REAL ;
PlaatsNieuweWaarde : INT ;
Filterfactor : INT := 1; //Getal tussen 1 en 255
FilterfactorOud : INT ;
Som : REAL ;
GemiddeldeWaarde : REAL ;
Waarden : ARRAY [1 .. 256 ] OF REAL ;
END_VAR
VAR_TEMP
NulPuntNul : REAL ;
fout : INT ;
END_VAR
BEGIN
NETWORK
TITLE =
L #FilterfactorOud;
L #Filterfactor;
==I ;
SPB x3;
T #FilterfactorOud;
L 0.000000e+000;
T #NulPuntNul;
T #Som;
CALL SFC 21 (
BVAL := #NulPuntNul,
RET_VAL := #fout,
BLK := #Waarden);
L 0;
L #Filterfactor;
<I ;
SPB x1;
L 1;
SPA x2;
x1: L 255;
>I ;
SPB x2;
SPA x3;
x2: T #Filterfactor;
x3: L #Filterfactor;
+ -1;
L #PlaatsNieuweWaarde;
>I ;
SPB m1;
L 0;
SPA m2;
m1: + 1;
m2: T #PlaatsNieuweWaarde;
SLW 5;
LAR1 P##Waarden;
+AR1 ;
L #Som;
L DID [AR1,P#0.0];
-R ;
L #Inputwaarde;
T DID [AR1,P#0.0];
+R ;
T #Som;
L #Filterfactor;
ITD ;
DTR ;
/R ;
T #GemiddeldeWaarde;
SET ;
SAVE ;
END_FUNCTION_BLOCK
Wenh ich siese FB direct aufruf funtioniert er richtich ,abel in ein multiinstanz ruf er bij die indirekte bearbeidung auf die false Dataworden su wehn die instans nicht in ab DW 0 in die Multiinstanz steht.
Wass must ich andere in das programm um das in ein Multiinstanz auch gut arbeiten su lassen?
Ich konte mit SFC20 das Array in die Lokaalvar setzen, Das programm auf de L data zugreiffewn zu lassen un darnach Die L var wieder zuruck kopieren nach die Stat var, aber das kosste ganz viel cycluszeit.