F352_FMEAN

Calcolo di somma e media nella tabella dati a virgola mobile

Questa funzione calcola la somma e la media aritmetica (con segno +/-) dei valori a virgola mobile nella tabella dati a 32 bit specificata.

Parametri

Ingresso

s1_Start (REAL)

area iniziale della tabella dati

s2_End (REAL)

area finale della tabella dati

Uscita

Sum (REAL)

somma di tutti gli elementi nell'area della tabella dati specificata

Mean (REAL)

media di tutti gli elementi nell'area della tabella dati specificata

Note

L'ingresso s1_Start specifica l'area iniziale della tabella dati, mentre s2_End specifica la fine. La somma di tutti gli elementi nella tabella dati viene restituita all'uscita Sum, mentre la media aritmetica di tutti gli elementi nella tabella dati viene restituita all'uscita Mean.

Anziché utilizzare questa istruzione F, si consiglia di utilizzare l'istruzione FP7 corrispondente:

Flag di errore

sys_bIsOperationErrorHold (passa a TRUE e resta TRUE)
  • se l'indirizzo della variabile all'ingresso s1_Start > s2_End.

  • se le aree indirizzi sono diverse.

  • se i valori a virgola mobile eccedono l'intervallo di elaborazione di programma.

sys_bIsOperationErrorNonHold (passa a TRUE per una scansione)
  • se l'indirizzo della variabile all'ingresso s1_Start > s2_End.

  • se le aree indirizzi sono diverse.

  • se i valori a virgola mobile eccedono l'intervallo di elaborazione di programma.

sys_bIsCarry (passa a TRUE per una scansione)
  • se l'intervallo del valore totale eccede l'intervallo (overflow o underflow).

Esempio

Intestazione del POU

Tutte le variabili di ingresso e uscita utilizzate per programmare questa funzione sono state dichiarate nell'intestazione del POU. La stessa intestazione del POU è utilizzata per tutti i linguaggi di programmazione.

	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

Corpo del POU

Quando la variabile start è impostata su TRUE, la funzione viene eseguita.

Calcola il valore sum = 2.0 + 3.45 + (-6.91) + 5.44 + 1.3 = 5.28 e il valore mean = somma/5 = 5.28/5 = 1.056 degli elementi di data_field.

Corpo LD

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

Corpo ST

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

Corpo IL

L'ultima revisione: 2021-06-22Feedback su questa paginaPanasonic hotline