Arithmétique et logique des fichiers (File Arithmetic and Logic, FAL)
Cette instruction s’applique aux
Compact GuardLogix
automates 5370 et Compact GuardLogix
5380, CompactLogix
5370, CompactLogix
5380, et ControlLogix
5570, ControlLogix
5580, ControlLogix 5590, et GuardLogix
5570 et GuardLogix
5580.Cette instruction FAL effectue des opérations de copie, arithmétiques, logiques et fonctionnelles sur les données mémorisées dans un tableau. Lorsque la condition d'entrée d'échelon de l'instruction FAL passe de faux à vrai, l'expression donnée est exécutée dans le mode spécifié d'itération.
Il existe des règles pour les opérateurs admissibles dans les opérations de sécurité. Référez-vous aux Opérateurs valides.
Langues disponibles
Diagramme à relais

Bloc fonctionnel
Cette instruction n'est pas disponible dans le bloc fonctionnel.
Texte structuré
Cette instruction n'est pas disponible dans le texte structuré.
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.
Diagramme à relais
Opérande | Type de données Automates CompactLogix 5370, ControlLogix 5570, Compact GuardLogix 5370 et GuardLogix 5570 | Type de données Automates CompactLogix 5380, ControlLogix 5580, Compact GuardLogix 5380 GuardLogix 5580 et ControlLogix 5590 | Format | Description |
|---|---|---|---|---|
Control | CONTROL | CONTROL | Balise | Structure de contrôle de l’opération |
Length | DINT | DINT | Immédiat | Ceci représente la structure CONTROL .LEN. |
Position | DINT | DINT | Immédiat | Ceci représente la structure CONTROL .POS. |
Mode | DINT | DINT | Immédiat | Montre comment distribuer cette opération. Sélectionner INC ou ALL, ou saisir un nombre compris entre 1 et 2 147 483 647 |
Expression | SINT INT DINT REAL | SINT INT DINT LINT USINT UINT UDINT ULINT REAL LREAL | Immédiat Balise | Une expression comportant des étiquettes et/ou des valeurs immédiates séparées par des opérateurs. |
Destination | SINT INT DINT REAL | SINT INT DINT LINT USINT UINT UDINT ULINT REAL LREAL | Balise | La valeur de cette expression va être mémorisée dans destination. |
Longueur et Position (correspondant à .LEN et .POS dans la balise de contrôle) sont des pseudo-opérandes. Pour plus de détails, reportez-vous à Initialisation de pseudo-opérande.
Structure CONTROL
Mnémonique | Type de données | Description |
|---|---|---|
.EN | BOOL | Le bit d’activation indique que l’instruction FAL est activée. |
.DN | BOOL | Le bit de fin est défini lorsque l'instruction s'est exécutée sur le dernier élément (.POS = .LEN). |
.ER | BOOL | Lorsqu’un débordement se produit, les deux plates-formes définissent .ER et arrêtent l’exécution de l’instruction. Les automates suivants vont générer un débordement :
|
.LEN | DINT | La longueur spécifie le nombre d’éléments du tableau sur lesquels opère l’instruction FAL. |
.POS | DINT | La position est initialisée à 0 lorsque l’instruction démarre et est incrémentée chaque fois que la boucle fonctionne. |
La valeur de cette expression est mémorisée dans l’étiquette de destination spécifiée. Lorsqu'un dépassement se produit, cela définit le bit ER et arrête l'exécution. Dès que FAL a terminé toutes les itérations configurées, le bit .DN est défini.
Sélectionner le mode de fonctionnement
En ce qui concerne les instructions FAL, le mode indique à l’automate comment distribuer l’opération sur le tableau.
Si : | Sélectionnez ce mode : |
|---|---|
Opérant sur tous les éléments spécifiés dans un tableau avant de passer à l’instruction suivante. | Toutes |
Répartition de l’opération de tableau sur un certain nombre de scrutations. Saisir le nombre d'éléments par scrutation sur lesquels procéder à l'exécution (1-2 147 483 647) | Numérique |
Manipuler un élément du tableau à chaque fois que EnableIn passe de faux à vrai. | Incrémentiel |
Mode Tous
En mode Tous, cette instruction agit sur tous les éléments spécifiés du tableau avant de passer à l’instruction suivante. Cette opération commence lorsque l’option EnableIn d’activation de l’instruction passe de faux à vrai. La valeur de la position (.POS) de la structure de contrôle indique l'élément du tableau qu'utilise en ce moment cette instruction. Cette opération s'arrête lorsque la valeur .POS est égale à la valeur .LEN ou la dépasse et lorsqu'un dépassement se produit dans l'expression et lorsque le bit .ER est défini sur vrai.

Le diagramme temporel suivant montre les rapports entre les bits d'état et l'exécution de l'instruction. Lorsque l'exécution de l'instruction est terminée, le bit .DN est égal à vrai. Le bit .DN, le bit .EN et la valeur .POS sont mis à zéro lorsque EnableIn est faux. Ce n'est qu'à ce moment-là qu'une autre exécution de cette instruction peut être déclenchée par une transition d'EnableIn de faux à vrai.

Mode Numérique
Le mode Numérique répartit l’opération de tableau sur un certain nombre de scrutations. Ce mode s'utilise lorsqu'on travaille avec des données qui ne sont pas critiques sur le plan temporel ou avec des volumes importants de données. Entrer le nombre d'éléments sur lesquels va agir chaque scrutation, ce qui permet de réduire la durée des scrutations.
Cette exécution se déclenche lorsque l'option EnableIn passe de faux à vrai. Dès que cette instruction se déclenche, elle est exécutée chaque fois qu'elle fait l'objet d'une scrutation et pendant le nombre de scrutations qui s'avèrent nécessaires pour exploiter la totalité du tableau. Dès que l'option EnableIn se déclenche, elle peut changer de manière répétée, sans interrompre l'exécution de cette instruction.

Éviter l'utilisation des résultats d'une instruction de fichier opérant en mode Numérique tant que le bit .DN n'est pas défini.
Le diagramme temporel suivant montre les rapports entre les bits d'état et l'exécution de l'instruction. Lorsque l'exécution de l'instruction est terminée, le bit .DN est défini.

Si l'option EnableIn est définie sur vrai lors de l'exécution, les bits .EN et .DN sont définis sur vrai jusqu'à ce que l'option EnableIn passe à faux. Lorsque l’option EnableIn devient fausse, ces bits sont mis à zéro, de même que la valeur de .POS.
Si, à la fin de cette exécution, l’option EnableIn d'activation de l’entrée est fausse, le bit .EN est immédiatement mis à zéro. Une scrutation après mise à zéro du bit .EN entraîne la mise à zéro du bit .DN et celle de la valeur .POS.
Mode Incrémentiel
Le mode Incrémentiel manipule un élément du tableau chaque fois que l’option EnableIn de l’instruction passe de faux à vrai.

Le diagramme temporel suivant montre les rapports entre les bits d'état et l'exécution de l'instruction. L'exécution n’a lieu que lors d’une scrutation durant laquelle l’option EnableIn passe de faux à vrai. Chaque fois que cela se produit, un seul élément du tableau est manipulé. Si l'option EnableIn reste définie sur vrai pendant plusieurs scrutations, l'exécution de cette instruction n'a lieu que lors de la première scrutation.

Le bit .EN est défini lorsque EnableIn est vrai. Le bit .DN est défini lorsque le dernier élément du tableau a été manipulé. Après la manipulation du dernier élément et après que EnableIn soit passé à faux, le bit .EN, le bit .DN et la valeur de .POS sont mis à zéro.
La différence entre le mode Incrémentiel et le mode Numérique, au rythme d’un élément par scrutation, est la suivante :
Dans le mode Numérique, quel que soit le nombre d'éléments par scrutation, il faut une seule transition de faux à vrai de l'option EnableIn pour lancer l'exécution. L'exécution de cette instruction se poursuit afin de réaliser le nombre spécifié d'éléments lors de chaque scrutation jusqu'à leur achèvement final, quel que soit l'état de l'option EnableIn.
Lors du mode Incrémentiel, l'option EnableIn doit au préalable passer de faux à vrai afin de manipuler un élément du tableau.
Expressions de formats
Pour chaque opérateur que vous utilisez dans le cadre d'une expression, vous devez fournir un ou deux opérandes (points ou valeurs immédiates). Utiliser le tableau suivant pour formater les opérateurs et opérandes au sein d'une expression.
Pour les opérateurs qui opèrent sur : | Utiliser ce format : | Exemple |
|---|---|---|
Un opérande | operator(operand) | ABS(tag) |
Deux opérandes | operand_a operator operand_b | tag_b + 5 tag_c AND tag_d (tag_e**2) MOD (tag_f / tag_g) |
Définir l'ordre des opérations
Les opérations de l'expression sont exécutées par l'instruction dans un ordre prédéfini qui n'est pas nécessairement leur ordre d'apparition dans l'expression. L’ordre des opérations peut être spécifié en regroupant certains termes dans des parenthèses, obligeant ainsi l’instruction à exécuter les opérations entre parenthèses avant les autres.
Les opérations de rang égal sont exécutées de gauche à droite.
Ordre | Fonctionnement |
|---|---|
1 | ( ) |
2 | ABS, ACOS, ASIN, ATAN, COS, DEG, BCD_TO, LN, LOG, RAD, SIN, SQRT, TAN, TO_BCD, TRUNC |
3 | ** |
4 | - (négation), NOT |
*, /, MOD | |
6 | - (soustraction), + |
7 | AND |
8 | XOR |
9 | OR |
Affecte les indicateurs d'état mathématique
Automates | Affecte les indicateurs d'état mathématique |
|---|---|
Automates CompactLogix 5380, ControlLogix 5580, Compact GuardLogix 5380 GuardLogix 5580 et ControlLogix 5590 | Non |
Automates CompactLogix 5370, ControlLogix 5570, Compact GuardLogix 5370 et GuardLogix 5570 | Oui |
Défauts majeurs/mineurs
Un défaut majeur se produira si : | Type de défaut | Code de défaut |
|---|---|---|
.POS < 0 ou .LEN < 0 | 4 | 21 |
Reportez-vous à Indexer via des tableaux pour consulter les défauts d'indexation par tableau.
Exécution
Diagramme à relais
Condition/État | Action entreprise |
|---|---|
Préscrutation | N/A |
La condition d'entrée d'échelon est égale à faux | Définir la condition de sortie d’échelon sur la condition d’entrée d’échelon. Reportez-vous à l'organigramme FAL (condition de sortie d'échelon égale à faux) |
La condition d'entrée d'échelon est égale à vrai | Définir la condition de sortie d’échelon sur la condition d’entrée d’échelon. Reportez-vous à l'organigramme FAL (condition de sortie d'échelon égale à vrai) |
Post-scrutation | N/A |
Organigramme FAL (condition de sortie d'échelon est fausse)

Organigramme FAL (condition de sortie d'échelon est vraie)

Organigramme FAL (Mode Tous)

Organigramme FAL (Mode Numérique)

Organigramme FAL (Mode Incrémentiel)

Exemples
Exemple 1
Tableau à tableau.
Diagramme à relais
(54)_v31.png/_jcr_content/renditions/original)
En cas d'activation, l’instruction FAL copie chaque élément de array_2 à la même position dans array_1.

Exemple 2
Copie élément à tableau.
Diagramme à relais
(56)_v31.png/_jcr_content/renditions/original)
En cas d’activation, l’instruction FAL copie value_1 aux 10 premières positions de la deuxième dimension de array_2.

Exemple 3 :
Copie tableau à élément.
(58)_v31.png/_jcr_content/renditions/original)
Chaque activation de l'instruction FAL entraîne la copie par cette dernière de la valeur actuelle de array_1 sur value_1. L'instruction FAL utilise le mode Incrémentiel et, de ce fait, une seule valeur de tableau est copiée lors de chaque activation de cette instruction. Lors de l'activation suivante de cette instruction, cette dernière remplace value_1 par la valeur suivante du array_1.

Exemple 4 :
Opération arithmétique : tableau/tableau à tableau
(60)_31.png/_jcr_content/renditions/original)
Lorsqu'elle est activée, l'instruction FAL divise la valeur dans la position actuelle du array_2 par la valeur dans la position actuelle du array_3 et mémorise le résultat dans la position actuelle du array_1.

Exemple 5 :
Opération arithmétique : tableau/tableau à tableau
(62)_v31.png/_jcr_content/renditions/original)
Lorsqu’elle est activée, l’instruction FAL additionne value_1 et value_2 et mémorise le résultat dans la position actuelle d’array_1.

Exemple 6 :
Opération arithmétique : tableau + élément à tableau
(64)_v31.png/_jcr_content/renditions/original)
Lorsqu'elle est activée, l'instruction FAL ajoute la valeur dans la position actuelle du array_1 à value_1 et mémorise le résultat dans la position actuelle du array_3. Cette instruction doit être exécutée à 10 reprises avant d'obtenir la manipulation de la totalité du array_1 et du array_3.

Exemple 7 :
Opération arithmétique : (élément + tableau) à élément
(66)_v31.png/_jcr_content/renditions/original)
Chaque activation de l'instruction FAL, ajoute value_1 à la valeur actuelle du array_1 et mémorise le résultat dans value_2. L'instruction FAL utilise le mode Incrémentiel et, de ce fait, une seule valeur de tableau vient s'ajouter à value_1 lors de chaque activation de cette instruction. Lors de l'activation suivante de cette instruction, cette dernière remplace value_2.

Exemple 8 :
Opération arithmétique : (tableau * tableau) à élément
(68)_v31.png/_jcr_content/renditions/original)
Lorsqu'elle est activée, l'instruction FAL multiplie la valeur actuelle du array_1 par la valeur actuelle du array_3 et mémorise le résultat dans value_1. L'instruction FAL utilise le mode Incrémentiel et, de ce fait, une seule paire de valeurs de tableau est multipliée lors de chaque activation de cette instruction. Lors de l'activation suivante de cette instruction, cette dernière remplace value_1.

Fournir une réponse