Décaler des bits vers la gauche
SHL décale une valeur en bits d’un nombre de positions défini (N) vers la gauche et remplit les positions vacantes avec des zéros.
Entrée
1e entrée : valeur d’entrée
2e entrée : nombre de bits selon lequel la valeur d’entrée est décalée vers la gauche
Sortie
Sortie comme entrée : résultat
Si la 2e variable d’entrée N (nombre de bits à décaler) est du type de données DWORD, seuls les 16 bits de poids faible sont pris en compte.
Toutes les variables d’entrée et de sortie utilisées pour programmer cette fonction ont été déclarées dans l’en-tête du POU. Le même en-tête de POU est utilisé pour tous les langages de programmation.
VAR
source_register: WORD:=0;
target_register: WORD:=0;
END_VAR
Cet exemple utilise des variables. Vous pouvez également utiliser une constante pour la variable d’entrée.
Les premiers N bits (ici 4) de source_register sont décalés vers la gauche, les positions vacantes à droite sont complétées par des zéros Le résultat est écrit dans target_register.
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_F,SHL!,Instance,9,1,14,5,,?DIN?DN?C);
B(B_VARIN,,source_register,7,2,9,4,);
B(B_VARIN,,4,7,3,9,5,);
B(B_VAROUT,,target_register,14,2,16,4,);
L(1,0,1,5);
END_NETWORK_BODY
END_NET_WORK
END_BODY
LD |
source_register |
SHL |
4 |
ST |
target_register |