Rotation des données à gauche avec drapeau de retenue
Cette instruction FP effectue une rotation à gauche des données spécifiées par d (vers le bit de poids fort) et selon le nombre de bits spécifié par n_Bits, incluant les données du drapeau de retenue lorsque le déclencheur EN est TRUE.
Entrée
Nombre de bits
Valeurs : 0–255
Entrée/sortie
Données soumises à rotation
Si la zone spécifiée à l’aide du modificateur d’adresse est en dehors des limites autorisées.
Si la zone spécifiée à l’aide du modificateur d’adresse est en dehors des limites autorisées.
Si d= données de 16 bits et n_Bits est soit 0 soit un multiple de 17, aucune rotation n’est exécutée et le drapeau de retenue reste inchangé.
Si d= données de 32 bits et n_Bits est soit 0 soit un multiple de 33, aucune rotation n’est exécutée et le drapeau de retenue reste inchangé.
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
bStart: BOOL:=FALSE;
(*activates the function*)
wRotate_value: WORD:=16#1234;
END_VAR
La fonction est exécutée lorsque la variable bStart est définie sur TRUE.
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_F,FP_ROL_CARRY!,,11,1,20,6,,?DEN?Dn_Bits?Dd?Ad?AENO);
B(B_CONTACT,,bStart,3,2,5,4,);
B(B_VARIN,,4,9,3,11,5,);
B(B_VARIN,,wRotate_value,9,4,11,6,);
L(1,3,3,3);
L(5,3,11,3);
L(1,0,1,6);
END_NETWORK_BODY
END_NET_WORK
END_BODY
IF DF(start) then
FP_ROL_CARRY(n_Bits := 4, d := wRotate_value);
END_IF;