F352_FMEAN

Summe und arithmetischer Mittelwert einer Tabelle mit Fließkommawerten

Die Funktion berechnet die Summe und den arithmetischen Mittelwert (beides mit Vorzeichen) von Fließkommawerten, die in einer 32-Bit-Datentabelle stehen.

Parameter

Eingang

s1_Start (REAL)

Anfang der Datentabelle

s2_End (REAL)

Ende der Datentabelle

Ausgang

Sum (REAL)

Summe aller in der Datentabelle spezifizierten Elemente

Mean (REAL)

Mittelwert aller in der Datentabelle spezifizierten Elemente

Anmerkungen

Der Anfang der Datentabelle wird dem Eingang s1_Start und das Ende dem Eingang s2_End übergeben. Die Summe aller Elemente der Datentabelle wird am Ausgang Sum und der arithmetische Mittelwert über alle Elemente der Datentabelle am Ausgang Mean zurückgegeben.

Wir empfehlen, anstelle von diesem F-Befehl den entsprechenden FP7-Befehl zu verwenden:

Fehleralarmmerker

sys_bIsOperationErrorHold (wird auf TRUE gesetzt und bleibt TRUE)
  • wenn die Adresse der Variable an dem Eingang von s1_Start > s2_End ist.

  • wenn die Adressbereiche verschieden sind.

  • wenn die Fließkommawerte ihren möglichen Bereich überschreiten.

sys_bIsOperationErrorNonHold (wird für einen Zyklus auf TRUE gesetzt)
  • wenn die Adresse der Variable an dem Eingang von s1_Start > s2_End ist.

  • wenn die Adressbereiche verschieden sind.

  • wenn die Fließkommawerte ihren möglichen Bereich überschreiten.

sys_bIsCarry (wird für einen Zyklus auf TRUE gesetzt)
  • wenn es zu einem Überlauf bzw. Unterlauf während der Funktionsausführung kommt.

Beispiel

POE-Kopf

Im POE-Kopf werden alle Ein- und Ausgangsvariablen deklariert, die für die Programmierung dieser Funktion verwendet werden. Für alle Programmiersprachen wird der gleiche POE-Kopf verwendet.

	VAR
		start: BOOL:=FALSE;
			(*activates the function*)
		data_array: ARRAY [0..4] OF REAL:=[4.0,7.0,-32.0,13.0,5.0];
			(*result after a 0->1 leading
edge from start: 
[-32.0,4.0,5.0,7.0,13.0]*)
		asc_order: INT:=0;
			(*which way to sort:
0 means ascending order
1 means descending order*)
	END_VAR

POE-Rumpf

Wenn die Variable start auf TRUE gesetzt wird, wird die Funktion ausgeführt.

Sie berechnet sum = 2.0 + 3.45 + (-6.91) + 5.44 + 1.3 = 5.28 und mean = Sum/5 = 5.28/5 = 1.056 der Elemente von data_field.

KOP-Rumpf

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 6 ;
        NETWORK_BODY
B(B_VARIN,,output,8,1,10,3,);
B(B_VARIN,,data field[0],8,2,10,4,);
B(B_VARIN,,data field[4],8,3,10,5,);
B(B_VAROUT,,sum,19,2,21,4,);
B(B_F,F352_FMEAN,,10,0,19,5,,?DEN?D@'s1'?Ds2?AENO?Csum?Cmean);
B(B_VAROUT,,mean,19,3,21,5,);
L(1,0,1,6);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST-Rumpf

IF start then
    F352_FMEAN( s1_Start:= data_field[0] ,
         s2_End:= data_field[4] ,
         Sum=> sum ,
         Mean=> mean );
END_IF;

AWL-Rumpf

Letzte Änderung am: 2021-07-28Feedback zu dieser SeitePanasonic Hotline