Instructions TIA Portal

Décalage et Rotation
Manipulation de Bits

Optimisez le traitement de vos registres. Du calcul mathématique ultra-rapide à la gestion de protocoles de communication complexes, maîtrisez le mouvement des bits.

Pourquoi décaler ou faire pivoter des bits ?

Les opérations de décalage (Shift) et de rotation (Rotate) permettent de déplacer les bits d'un mot vers la gauche ou vers la droite. Dans l'industrie, elles sont utilisées pour extraire des informations précises d'un télégramme de communication, créer des registres à décalage pour le suivi de pièces sur convoyeur, ou effectuer des multiplications/divisions par des puissances de 2 de manière extrêmement performante.

La différence majeure réside dans le traitement des bits 'sortants' : alors que le décalage (Shift) les élimine et les remplace par des zéros, la rotation (Rotate) les réinjecte de l'autre côté du mot, créant une boucle circulaire continue.

Décalage (Shift)

Mouvement linéaire avec perte de bits

SHL / SHR — Décalage Gauche/Droite

SHL

Ce qu'il fait

Déplace les bits vers la gauche (SHL) ou la droite (SHR) d'un nombre de positions défini par l'entrée N. Les bits qui sortent du registre sont perdus, et les nouveaux bits entrants sont mis à 0.

Quand l'utiliser

Multiplication rapide par 2 (SHL), division par 2 (SHR), ou isolation d'un octet spécifique dans un mot de 32 bits.

Conseils Pro

Décaler un entier de 1 bit vers la gauche revient à le multiplier par 2 sans utiliser l'unité de calcul mathématique.

Pour les types signés (Int, DInt), SHR conserve souvent le bit de signe (décalage arithmétique).

Si N est supérieur à la taille du mot (ex: N=20 pour un WORD), le résultat sera 0.

Rotation (Rotate)

Mouvement circulaire sans perte

ROL / ROR — Rotation Gauche/Droite

ROL

Ce qu'il fait

Fait pivoter les bits de manière circulaire. Le bit qui sort d'un côté (ex: à gauche pour ROL) rentre immédiatement par l'autre côté (à droite). Aucune donnée n'est perdue.

Quand l'utiliser

Création de motifs lumineux tournants, cryptage simple de données ou gestion de mémoires tampons circulaires (FIFO).

Conseils Pro

Idéal pour alterner des priorités dans un groupe de pompes ou de moteurs.

Contrairement au décalage, une rotation complète (ex: 16 bits pour un WORD) redonne la valeur initiale.

Utilisez ROL/ROR pour réorganiser l'ordre des octets (Endianness) dans les échanges de données.

Shift vs Rotate : Le match

Comprendre l'impact sur vos données

PropriétéDécalage (SHL/SHR)Rotation (ROL/ROR)
StructureLinéaireCirculaire
Bits sortantsÉliminés (Perdus)Réinjectés à l'opposé
Bits entrantsToujours 0Bits sortants recyclés
Usage MathMultiplication / DivisionPermutation de bits
Exemple concretSuivi de pièce (Convoyeur)Chenillard / Séquenceur
RisqueVidage du registreAucun (données préservées)

Foire Aux Questions

Pourquoi utiliser SHL au lieu d'une multiplication par 2 ?

L'instruction SHL est exécutée beaucoup plus rapidement par le processeur du PLC qu'une opération MUL, car elle travaille directement sur le registre sans passer par l'ALU complexe.

Comment créer un registre à décalage pour un convoyeur ?

Utilisez SHR à chaque impulsion d'un codeur. Si une pièce est détectée en entrée, forcez le bit 0 à 1. En décalant le mot, vous suivez la position de la pièce bit par bit.

Quel est l'impact du type de données (Byte, Word, DWord) ?

L'instruction s'adapte à la taille. Un ROR sur un Byte fera réapparaître le bit 7 en position 0 après 1 décalage. Sur un Word, c'est le bit 15 qui reviendra en 0.

Peut-on décaler des variables en SCL ?

Oui, via les fonctions SHL(IN:=var, N:=n) ou en utilisant les opérateurs bit à bit standard si votre version de TIA Portal le permet.

Automatisez vos manipulations binaires

Besoin d'isoler des bits ou de créer un séquenceur complexe ? T-IA Connect génère vos réseaux de décalage et de rotation en un clic.