Permutation d'octets (Swap Byte, SWPB)
Ces informations s’appliquent aux automates
CompactLogix
5370, ControlLogix
5570, Compact GuardLogix
5370, GuardLogix
5570, Compact GuardLogix
5380, CompactLogix
5380, ControlLogix
5580, GuardLogix
5580 et ControlLogix 5590.L'instruction SWPB réorganise l'ordre des octets de Source. Elle place le résultat dans Destination.
Langues disponibles
Diagramme à relais

Bloc fonctionnel
Cette instruction n'est pas disponible dans le bloc fonctionnel.
Texte structuré
SWPB(Source, Order Mode, Dest);
Opérandes
IMPORTANT:
Une opération inattendue peut se produire dans les cas suivants :
- Les opérandes de balise de sortie sont remplacés.
- Les membres d'un opérande de structure sont remplacés.
- Sauf lorsque cela est spécifié, les opérandes de structure sont partagés par plusieurs instructions.
Il existe des règles de conversion de données pour combiner des types de données numériques dans une instruction. Reportez-vous à la section
Conversion des données
.Un diagramme à relais et texte structuré
Opérande | Type de données | Format | Description |
|---|---|---|---|
Source | INT DINT | balise | Étiquette qui contient les octets à réorganiser. |
Order Mode | élément de liste | Cet opérande précise les principes de la réorganisation. Reportez-vous au tableau Mode d'ordonnancement. | |
Dest | INT DINT | balise | Étiquette de mémorisation des octets dans un ordre différent. Reportez-vous au tableau Dest. |
En cas de sélection du mode d'ordonnancement HIGH/LOW, entrez cette option au format HIGHLOW (sans tiret). Reportez-vous à Syntaxe du texte structuré pour plus d'informations concernant la syntaxe des expressions dans le texte structuré.
Order Mode
Si Source est : | Si vous souhaitez changer l'ordre des octets en fonction de ce modèle (chaque lettre représente un octet différent) | Vous devez choisir |
|---|---|---|
INT | AB => BA | N’importe quelle option |
DINT | ABCD => DCBA | REVERSE |
ABCD =>CDAB | WORD | |
ABCD => BADC | HIGH/LOW |
Dest
Si Source est : | Par conséquent, Destination doit être un |
|---|---|
INT | INT, DINT Si la destination est un DINT, le résultat s'accompagne d'un signe après la permutation des octets. |
DINT | DINT |
Affecte les indicateurs d'état mathématique
Non
Défauts majeurs/mineurs
Aucun spécifique à cette instruction. Reportez-vous à la section Indexer via les tableaux pour consulter les défauts d'index par tableau.
Exécution
Diagramme à relais
Condition/état | Action entreprise |
|---|---|
Préscrutation | N/A |
La condition d'entrée d'échelon est égale à faux | N/A |
La condition d'entrée d'échelon est égale à vrai | Cette instruction réorganise les octets spécifiés. |
Post-scrutation | N/A |
Texte structuré
Condition/état | Action entreprise |
|---|---|
Préscrutation | Reportez-vous à Pré-scrutation dans le tableau Diagramme à relais. |
Exécution normale | Reportez-vous à la condition d’entrée d’échelon est vraie dans le tableau Diagramme à relais. |
Post-scrutation | Reportez-vous à Post-scrutation dans le tableau Diagramme à relais. |
Exemples
Exemple 1 - Permutation des octets d’une étiquette DINT
Les trois instructions SWPB réorganisent les octets de DINT_1 en fonction d’un autre mode d’ordonnancement. Le style d'affichage est ASCII et chaque caractère représente un octet. Chaque instruction place les octets dans un nouvel ordre et à une Destination différente.
Diagramme à relais

Exemple 2 - Permutation des octets dans tous les éléments d’un tableau
Diagramme à relais

![SWPB_LD_ex2_#2_[index]_v31](/content/dam/dita/fr/studio-5000-logix-designer/38-00/help/clinset/move-logical/graphics/l5k_swpb_ld_ex2_2_v31.png/_jcr_content/renditions/original)

Exemple 3 : SWPB sur texte structuré
Texte structuré
index := 0;
SIZE (array[0],0,array_length);
REPEAT
SWPB(array[index],REVERSE,array_bytes_reverse[index]);
index := index + 1;
UNTIL(index >= array_length)END_REPEAT;
Fournir une réponse