GET_SINT

Lettura di un valore intero con segno dai dati del byte con offset

Questa funzione ottiene il valore in byte a 8 bit di Data con iByteOffset che indica l'offset in byte. La numerazione dei byte parte da 0, che si riferisce al primo byte di Data.

Il risultato contiene il valore intero con segno nell'intervallo compreso tra -128 e 127. Il bit di segno, ovvero il bit numero 7 del valore del byte risultato, viene esteso ai bit superiori. Ciò significa che se il bit di segno è 0, allora tutti i bit superiori sono 0. Se il bit di segno è 1, tutti i bit superiori sono 1.

Ingresso

Data (ANY) tutti i tipi di dati semplici e derivati (ARRAY, DUT) che non contengono dati BOOL

Dati del byte da cui è stato ricavato il byte

iByteOffset (INT, DINT, UINT, UDINT)

Offset di byte rispetto al primo byte di Data a partire da 0, deve essere maggiore o uguale a 0

Uscita

Unnamed output INT, DINT (ANY_SIGNED_INT)

Valore intero con segno nell'intervallo compreso tra -128 e 127. Il bit di segno, ovvero il bit numero 7 del valore del byte risultato, viene esteso ai bit superiori.

Note

  • Si prega di verificare la validità dei dati di ingresso, poiché Control FPWIN Pro7 non controlla la validità dei dati a cui si accede.

NOTA

Per ottenere le migliori prestazioni, utilizzare il più possibile valori di ingresso costanti!

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
		bStart: BOOL:=FALSE;
		iResult: INT:=0;
		awByteData: ARRAY [0..4] OF WORD:=[100,200,300,400,501];
		iOffs: INT:=0;
	END_VAR

Corpo LD

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

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 7 ;
        NETWORK_BODY
B(B_CONTACT,,bStart,4,3,6,5,);
B(B_F,E_GET_SINT!,,11,2,19,7,,?DEN?DData?DiByteOffset?AENO?C);
B(B_VARIN,,awByteData,9,4,11,6,);
B(B_VAROUT,,iResult,19,4,21,6,);
B(B_VARIN,,iOffs,9,5,11,7,);
L(1,0,1,7);
L(1,4,4,4);
L(6,4,11,4);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Corpo ST

if (bSTart) then
	iResult:=GET_SINT(Data := awByteData, iByteOffset := iOffs);
end_if;

L'ultima revisione: 2025-03-12Feedback su questa paginaPanasonic hotline