Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 3 von 3

Thema: Parameter übergabe nicht Korrekt

  1. #1
    Registriert seit
    19.02.2010
    Beiträge
    33
    Danke
    6
    Erhielt 3 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    ich hoffe mir kann da jemand helfen

    Code:
    FUNCTION Summe : REAL
    // N
    // ∑  (X1[i]-X2)^2
    //i=1
    VAR_INPUT
    N   :INT ; //N-WERTE 
    X1   :ARRAY [1..50] OF REAL; 
    X2   :REAL;
    END_VAR
    VAR_TEMP
    I           :INT;    // temporäre Variablen
    LSumme :REAL;  //Letze Summe
    END_VAR
    FOR I:= 1 TO N BY 1 DO
        LSumme:=LSumme+SQRT(X1[I]-X2);
    END_FOR;
    Summe:=LSumme; 
    END_FUNCTION
     
    FUNCTION Standardabw : REAL
    //Funktion zur Berechnung der Standardabweichung
    VAR_INPUT
    Xmittel      :REAL ;                        //Mittelwert Xmittel
    Xi             :ARRAY [1..50] OF REAL ; //Element der Stichprobe
    Anzahl      :INT  ;                          //Anzahl der Messwerte
    END_VAR
    VAR_TEMP
    ;
    END_VAR
    Standardabw:=SQRT( (1/(Anzahl-1))*Summe(N:=Anzahl,X1:=Xil,X2:=Xmittel));
    END_FUNCTION
    Der Curser ( l ) bleibt an der stelle stehn wenn ich den Fehler anklicke.
    Ich arbeite erst seid ein paar tagen mit SCL.Steht der Curser vor oder hinter dem Fehler? Also ist die Parameterübergabe bei X1 oder X2 falsch?
    Kann ich kein array als Parameter übergeben in einer Funktion ?
    Geändert von Björn (04.03.2010 um 10:01 Uhr)
    Zitieren Zitieren Parameter übergabe nicht Korrekt  

  2. #2
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.716
    Danke
    398
    Erhielt 2.399 Danke für 1.999 Beiträge

    Standard

    Hallo,
    di kannst nicht den Eingangsparameter Xi direkt durchleiten sondern muß ihn erst lokal abbilden. Also so :
    Code:
    FUNCTION Standardabw : REAL
    //Funktion zur Berechnung der Standardabweichung
    VAR_INPUT
    Xmittel      :REAL ;                        //Mittelwert Xmittel
    Xi             :ARRAY [1..50] OF REAL ; //Element der Stichprobe
    Anzahl      :INT  ;                          //Anzahl der Messwerte
    END_VAR
    VAR_TEMP
    hXi             :ARRAY [1..50] OF REAL ; //Element der Stichprobe
    END_VAR
    hXi := Xi ;
    Standardabw:=SQRT( (1/int_to_real((Anzahl-1))*Summe(N:=Anzahl,X1:=hXi,X2:=Xmittel));
    END_FUNCTION
    ... die zu ändernden Passagen habe ich Rot markiert ...

    des weiteren:
    In der Function Summe solltest du überprüfen, on Anzahl innerhalb der Array-Grenzen bleibt ...

    Gruß
    LL

  3. Folgender Benutzer sagt Danke zu Larry Laffer für den nützlichen Beitrag:

    Björn (04.03.2010)

  4. #3
    Björn ist offline Benutzer
    Themenstarter
    Registriert seit
    19.02.2010
    Beiträge
    33
    Danke
    6
    Erhielt 3 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Super danke

    Werde ich Sofort testen

Ähnliche Themen

  1. Parameterzuweisung in SCL nicht korrekt
    Von Bensen83 im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 04.10.2011, 17:02
  2. Parameter Übergabe in ST
    Von RobiHerb im Forum Programmierstrategien
    Antworten: 10
    Letzter Beitrag: 11.05.2010, 07:20
  3. SCL: Datentypspezifikation nicht korrekt
    Von lindnerlars im Forum Simatic
    Antworten: 15
    Letzter Beitrag: 03.09.2008, 18:19
  4. Parameter-Übergabe an FC
    Von Larry Laffer im Forum Simatic
    Antworten: 21
    Letzter Beitrag: 09.07.2007, 18:41
  5. S5Timer wird nicht korrekt bearbeitet
    Von raffi67 im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 13.12.2006, 19:27

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •