F109_BITL

Sposta a sinistra bit multipli di un intervallo dati a 16 bit

La funzione sposta i bit di un intervallo dati specificato, il cui inizio e fine vengono specificati dalle uscite d1 e d2, a sinistra. Il numero di bit di cui l'intervallo dati deve essere spostato a sinistra è specificato dal valore allocato all'ingresso n. Il valore può attestarsi tra 0 e 16. I bit cancellati a seguito dello spostamento diventano 0.

  • Quando l'ingresso n = 0, non si verifica alcuno spostamento.

  • Quando l'ingresso n = 16, si verifica uno spostamento di una WORD, ossia avviene lo stesso processo che per la funzione F111_WSHL.

Parametri

Ingresso

n (INT)

Numero di bit su cui eseguire lo spostamento

Uscita

d1_Start (WORD, INT, UINT)

Area a 16 bit iniziale

d2_End (WORD, INT, UINT)

Area a 16 bit finale

Note

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

  • Gli indirizzi delle variabili agli ingressi d1 e d2 devono presentare la medesima tipologia di indirizzo.

  1.  (1) Intervallo dati specificato
  2.  (2) start: TRUE
  3.  (3) n bit finali vengono rimossi
  4.  (4) n bit

Flag di errore

sys_bIsOperationErrorHold (passa a TRUE e resta TRUE)

se l'indirizzo delle variabili alle uscite d1_Start > d2_End o il valore all'ingresso è n ³ 16.

sys_bIsOperationErrorNonHold (passa a TRUE per una scansione)

se l'indirizzo delle variabili alle uscite d1_Start > d2_End o il valore all'ingresso è n ³ 16.

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..2] OF WORD:=[16#1234,16#5678,16#9012];
			(*result after a 0->1 leading edge
from start:
[16#2340,16#6781,16#9012]*)
	END_VAR

Corpo del POU

Quando la variabile start passa da FALSE a TRUE, la funzione viene eseguita.

Rimuove 4 bit (corrisponde a una posizione in una rappresentazione esadecimale) verso sinistra. I 4 bit in data_field[0] risultanti dallo spostamento vengono riempiti con caratteri zero. All'ingresso n la costante 4 viene allocata direttamente alla funzione. Potete tuttavia dichiarare una variabile di ingresso nell'intestazione del POU.

Corpo LD

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 5 ;
        NETWORK_BODY
B(B_VARIN,,4,7,2,9,4,);
B(B_VAROUT,,data_field[0],16,2,18,4,);
B(B_VAROUT,,data_field[2],16,3,18,5,);
B(B_CONTACT,,start,3,1,5,3,R);
B(B_F,F109_BITL!,Instance,9,0,16,5,,?DEN?Dn?AENO?Cd1_Start?Cd2_End);
L(1,0,1,5);
L(1,2,3,2);
L(5,2,9,2);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Corpo ST

IF DF(start) then
    F109_BITL( n:=4,
         d1_Start=> data_field[0],
         d2_End=> data_field[2]);
END_IF;

Corpo IL

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