Registre à décalage vers la gauche
Décale 1 bit de la zone de donnée spécifiée d_WR vers la gauche (décalage en direction du bit de poids fort). Pour utiliser l’instruction LSR, les entrées suivantes doivent être programmées : l’entrée des données DataInput, la condition d’exécution du décalage ShiftLeftTrigger et l’entrée de réinitialisation du déclencheur Reset.
La zone de drapeaux internes en mots (WR) est la seule zone disponible pour cette instruction.
La plage des drapeaux internes en mots (WR) dépend de la zone disponible sous .
Entrée
Indique l’état du signal pour le décalage :
État du signal 1 : lorsque l’entrée est TRUE
État du signal 0 : lorsque l’entrée est FALSE
Décale un bit vers la gauche lorsque le front montant est détecté
Met tous les bits de la zone de données à zéro lorsque le déclencheur est TRUE.
Sortie
Zone de données spécifiée dans laquelle le décalage est exécuté.
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
Output: INT:=0;
DataInput: BOOL:=FALSE;
ShiftTrigger: BOOL:=FALSE;
ResetTrigger: BOOL:=FALSE;
END_VAR
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,LSR!,Instance,10,0,20,5,,?DDataInput?DShiftLeftTrigger?DReset?Cd_WR);
B(B_VARIN,,DataInput,8,1,10,3,);
B(B_VARIN,,ShiftTrigger,8,2,10,4,);
B(B_VARIN,,ResetTrigger,8,3,10,5,);
B(B_VAROUT,,Output,20,1,22,3,);
L(1,0,1,5);
END_NETWORK_BODY
END_NET_WORK
END_BODY
Output:=LSR(DataInput, ShiftTrigger, ResetTrigger);