F275_MEAN

Calcolo di somma e media nella tabella dati a 16 bit

Questa funzione calcola la somma e la media aritmetica dei numeri (con segno +/-) nella tabella dati a 16 bit specificata.

Parametri

Ingresso

s1_Start (WORD, INT, UINT)

area iniziale della tabella dati

s2_End (WORD, INT, UINT)

area finale della tabella dati

Uscita

Sum (DINT)

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

Mean (INT)

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. Se non è un numero intero, la media aritmetica viene arrotondata.

Flag di errore

sys_bIsOperationErrorHold (passa a TRUE e resta TRUE)
  • se l'area specificata utilizzando il registro indice eccede il limite.

  • se l'indirizzo della variabile all'ingresso s1_Start > s2_End.

  • se s1_Start e s2_End appartengono ad aree dati diverse

sys_bIsOperationErrorNonHold (passa a TRUE per una scansione)
  • se l'area specificata utilizzando il registro indice eccede il limite.

  • se l'indirizzo della variabile all'ingresso s1_Start > s2_End.

  • se s1_Start e s2_End appartengono ad aree dati diverse

sys_bIsCarry (passa a TRUE per una scansione)
  • se l'intervallo del valore totale eccede l'intervallo a 16 bit (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 INT:=[4,7,-32,13,5];
		sum: DINT:=0;
			(*the sum of all elements of 
data_array; here: -3*)
		mean: INT:=0;
			(*the arithmetic mean of all
elements of data_array;
here: 0*)
	END_VAR

Corpo del POU

Quando la variabile start è impostata su TRUE, la funzione viene eseguita. La funzione calcola la somma di tutti gli elementi della tabella dati (somma = 4 + 3 + 8 + (-2) + 1 + (-6) = 8) e scrive il risultato (in questo caso 8) nella variabile sum. Inoltre, la funzione calcola la media aritmetica di tutti gli elementi della tabella dati (media = somma/6 = (4 + 3 + 8 + (-2) + 1 + (-6)) / 6 = 1.333) e scrive il numero arrotondato (in questo caso 1) nella variabile mean.

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_F,F275_MEAN,,10,0,19,5,,?DEN?D@'s1'?Ds2?AENO?Csum?Cmean);
B(B_VAROUT,,sum,19,2,21,4,);
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
    F275_MEAN( s1_Start:= data_field[0],
         s2_End:= data_field[4],
         Sum=> sum,
         Mean=> mean);
END_IF;

Corpo IL

L'ultima revisione: 2022-11-14Feedback su questa paginaPanasonic hotline