Problem mit Pointer Var auf der Stat in ein Instans FB

JoopB

Level-2
Beiträge
887
Reaktionspunkte
198
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich hab ein FB mit dieser Code
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.
 
Zurück
Oben