Opérations Logiques sur Mots
Binaire & Sélection
Manipulez les données au cœur des registres. Du masquage binaire bit à bit au multiplexage complexe, optimisez le traitement de vos mots de données.
Que sont les opérations logiques sur mots dans TIA Portal ?
Les opérations logiques sur mots permettent d'effectuer des calculs booléens sur l'intégralité des bits d'un mot (Word, DWord, LWord). Elles sont indispensables pour le masquage de bits, la comparaison de motifs binaires ou la gestion simplifiée de signaux groupés.
Cette section inclut également des fonctions de sélection puissantes comme SEL et MUX, qui permettent de choisir dynamiquement une valeur parmi plusieurs selon une condition ou un index, ainsi que des outils d'encodage (ENCO) et de décodage (DECO) pour la gestion d'états.
Logique Bit à Bit
Traitement booléen sur Word et DWord
AND / OR / XOR — Opérations binaires
ANDCe qu'il fait
Effectue une opération logique (ET, OU, OU Exclusif) sur chaque bit correspondant entre deux ou plusieurs entrées. Le résultat est fourni dans un mot de même taille.
Quand l'utiliser
Masquer des bits spécifiques (AND avec un masque), combiner des alarmes ou détecter des changements d'état bit à bit.
Conseils Pro
AND est parfait pour 'éteindre' des bits, OR pour les 'allumer'.
XOR est idéal pour comparer deux mots et identifier les bits qui diffèrent.
Vous pouvez ajouter des entrées supplémentaires au bloc en cliquant sur l'icône jaune.
INVERT — Complément à un
INVCe qu'il fait
Inverse l'état de chaque bit du mot d'entrée (0 devient 1, 1 devient 0).
Quand l'utiliser
Inverser un groupe de signaux capteurs ou préparer des calculs binaires spécifiques.
Conseils Pro
Équivalent à l'opérateur NOT en programmation classique mais sur tout le mot.
Très utile pour les communications avec des équipements tiers ayant une logique inversée.
Attention à ne pas confondre avec le complément à deux (NEG).
Sélection & Multiplexage
Aiguillage dynamique de valeurs
SEL — Sélection binaire
SELCe qu'il fait
Sélectionne l'une des deux entrées (IN0 ou IN1) en fonction de l'état d'une entrée binaire G (G=0 -> IN0, G=1 -> IN1).
Quand l'utiliser
Choisir entre une consigne manuelle et une consigne automatique, ou alterner entre deux seuils de température.
Conseils Pro
Équivalent graphique de l'opérateur ternaire (condition ? a : b).
Plus compact qu'un bloc IF ou deux réseaux de transfert conditionnels.
Fonctionne avec presque tous les types de données (Int, Real, Time...).
MUX / DEMUX — Multiplexeurs
MUXCe qu'ils font
MUX sélectionne une entrée parmi N selon un index K. DEMUX route une entrée vers l'une des N sorties selon l'index K.
Quand l'utiliser
Gestion de recettes (sélection par index), affichage dynamique sur IHM ou routage de données vers différents postes de travail.
Conseils Pro
L'index K commence à 0. Si K=0, c'est IN0 qui est sélectionnée.
Utilisez l'entrée ELSE du MUX pour définir une valeur par défaut si l'index est hors limites.
DEMUX est très puissant pour distribuer une mesure vers différents journaux d'historique.
Encodage & Décodage
Conversion entre index et position de bit
DECO — Décodage
DECOCe qu'il fait
Active le bit dont le numéro correspond à la valeur d'entrée. Tous les autres bits du mot de sortie sont mis à 0.
Quand l'utiliser
Convertir un numéro d'étape en un signal binaire pour piloter une sortie spécifique.
Conseils Pro
Si l'entrée vaut 3, le bit 3 (le 4ème) du mot de sortie sera à 1.
Permet de passer facilement d'un entier à un masque de bit.
Idéal pour piloter des colonnes lumineuses ou des indicateurs d'état.
ENCO — Encodage
ENCOCe qu'il fait
Retourne le numéro du bit le moins significatif (LSB) qui est à l'état 1 dans le mot d'entrée.
Quand l'utiliser
Identifier quel défaut est apparu dans un mot d'alarmes pour afficher le message correspondant.
Conseils Pro
Si le mot d'entrée contient 2#0000_1000, ENCO retourne 3.
Opération inverse de DECO.
Très utile pour transformer des signaux de capteurs de position discrets en une valeur numérique.
Traitement de mot vs Bit individuel
Pourquoi travailler sur le mot complet ?
| Scénario | Approche Word Logic | Avantage |
|---|---|---|
| Forcer 8 sorties à 0 | MOVE 0 -> Word | 1 réseau vs 8 contacts |
| Masquer un octet | AND 16#00FF | Précision chirurgicale |
| Inverser 16 signaux | INVERT | Rapidité d'exécution |
| Choisir 1 valeur / 10 | MUX | Lisibilité maximale |
| Aiguiller une mesure | DEMUX | Logique flexible |
| Priorité d'alarme | ENCO | Diagnostic instantané |
Foire Aux Questions
Quelle est la différence entre MUX et un tableau (Array) ?
MUX est une instruction câblée dans le code pour quelques valeurs (souvent < 10). Pour des centaines de valeurs, utilisez un Array avec un indexage dynamique [i] en SCL.
Peut-on faire un AND sur des types REAL ?
Non, les opérations logiques bit à bit (AND, OR, XOR) ne sont autorisées que sur les types binaires (Byte, Word, DWord, LWord).
Comment fonctionne l'index du DEMUX ?
L'entrée K définit vers quelle sortie la valeur IN est copiée. Si K=2, IN est copié vers OUT2. Toutes les autres sorties restent à leur valeur précédente ou 0 selon la configuration.
Est-ce que INVERT change le signe d'un nombre ?
Non, INVERT inverse les bits. Pour changer le signe (complément à deux), utilisez l'instruction NEG (Wiskunde) ou multipliez par -1.