GET_BYTE

Leggere un valore di byte dai dati di 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 byte inferiore del risultato contiene il valore del byte nell'intervallo da 16#00 a 16#FF, mentre i byte superiori del risultato sono riempiti con caratteri zero.

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 (WORD, DWORD)

Valore del byte di risultato nell'intervallo da 16#00 a 16#FF, i byte superiori sono riempiti con caratteri zero.

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;
		awByteData: ARRAY [0..4] OF WORD:=[100,101,111,2(0)];
		iOffset: INT:=2;
		wByteValue: WORD:=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 := 6 ;
        NETWORK_BODY
B(B_CONTACT,,bStart,5,1,7,3,);
B(B_F,E_GET_BYTE!,,8,0,16,5,,?DEN?DData?DiByteOffset?AENO?C);
B(B_VARIN,,awByteData,6,2,8,4,);
B(B_VAROUT,,wByteValue,16,2,18,4,);
B(B_VARIN,,iOffset,6,3,8,5,);
L(1,0,1,6);
L(1,2,5,2);
L(7,2,8,2);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Corpo ST

if (bStart) then
	wByteValue:=GET_BYTE(Data := awByteData, iByteOffset := iOffset);
end_if;

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