Moyenne de mouvement (Moving Average, MAVE)
Ces informations s’appliquent aux automates CompactLogix 5370, ControlLogix 5570, CompactGuardLogix 5370, GuardLogix 5570, CompactGuardLogix 5380, CompactLogix 5380, ControlLogix 5580, GuardLogix 5580 et ControlLogix 5590.
L'instruction Moyenne de mouvement (Moving Average, MAVE) calcule une valeur temporelle moyenne pour le signal In. Cette instruction peut éventuellement supporter les poids des utilisateurs spécifiés.
Langues disponibles
Diagramme à relais
Cette instruction n'est pas disponible dans la logique à relais.
Bloc fonctionnel

Texte structuré
MAVE(MAVE_tag,storage,weight);
Opérandes
Bloc fonctionnel
Opérande | Type | Format | Description |
Balise MAVE | MOVING_AVERAGE | structure | Structure MAVE |
storage | REAL | tableau | Détient les échantillons de moyenne mobile. Ce tableau doit être au moins aussi grand que NumberOfSamples. |
weight | REAL | tableau | (facultatif) Utilisé pour les moyennes pondérées. Ce tableau doit être au moins aussi grand que NumberOfSamples. L’élément [0] est utilisé pour l’échantillon le plus récent ; l’élément [n] est utilisé pour l’échantillon le plus ancien. |
Structure MOVING_AVERAGE
Paramètre d’entrée | Type de données | Description |
EnableIn | BOOL | Activez l'entrée. Si mis à zéro, l'instruction n'est pas exécutée et les sorties ne sont pas mises à jour. La valeur par défaut est définie. |
In | REAL | Entrée du signal analogique dans l’instruction. Valide = tout flottant Par défaut = 0,0 |
InFault | BOOL | Indicateur de mauvaise santé pour l'entrée. Si In est reconnu par une entrée analogique, alors InFault est contrôlé normalement par l’état de défaut sur l’entrée analogique. Une fois défini, InFault indique que le signal d’entrée comporte une erreur, l’instruction définit le bit approprié dans Status et l’instruction maintient la valeur actuelle pour Out. Quand InFault passe de défini à mis à zéro, l'instruction initialise l'algorithme de moyenne et poursuit l'exécution. La valeur par défaut est mise à zéro. |
Initialize | BOOL | L'entrée d’initialisation dans l'instruction. Une fois définie, l’instruction retient Out = In, sauf lorsque InFault est défini, auquel cas, l’instruction maintient la valeur actuelle pour Out. Quand Initialize passe de défini à mis à zéro, l’instruction initialise l’algorithme de moyenne et poursuit l’exécution. La valeur par défaut est mise à zéro. |
SampleEnable | BOOL | Prise d’échantillon pour In activée. Une fois définie, l’instruction insère la valeur d’In dans le tableau de stockage et calcule une nouvelle valeur pour Out. Lorsque SampleEnable est mis à zéro et que Initialize est mis à zéro, l’instruction maintient la valeur actuelle pour Out. La valeur par défaut est définie. |
NumberOfSamples | DINT | Nombre d’échantillons à être utilisés dans le calcul. Si cette valeur n’est pas valide, l’instruction définit le bit approprié dans Status et maintient Out sur sa valeur actuelle. Lorsque NumberOfSamples redevient valide, l’instruction initialise l’algorithme de moyenne et poursuit l’exécution. Valide = de 1 à (dimension minimale de StorageArray ou de WeightArray, si utilisés) Par défaut = 1 |
UseWeights | BOOL | L’entrée du schéma moyennable dans l’instruction. Une fois définie, l’instruction utilise la méthode pondérée dans le calcul pour Out. Une fois mise à zéro, l’instruction utilise la méthode uniforme dans le calcul pour Out. La valeur par défaut est mise à zéro. |
Paramètre de sortie | Type de données | Description |
EnableOut | BOOL | Indique si l'instruction est activée. Mis à zéro (faux) en cas de débordement d'Out. |
Out | REAL | Sortie calculée de l’algorithme. |
État | DINT | État du bloc fonctionnel. |
InstructFault (Status.0) | BOOL | L'instruction a détecté l'une des erreurs d'exécution suivantes. Il ne s'agit pas d'une erreur d'automate mineure ou majeure. Contrôlez les bits d'état restants pour déterminer la cause du problème. |
InFaulted (Status.1) | BOOL | La santé de In est mauvaise (InFault est défini). |
NumberOfSampInv (Status.2) | BOOL | NumberOfSamples n’est pas valide ou n’est pas compatible avec la taille du tableau. |
Texte structuré
Opérande | Type | Format | Description |
Balise MAVE | MOVING_AVERAGE | structure | Structure MAVE |
storage | REAL | tableau | Détient les échantillons de moyenne mobile. Ce tableau doit être au moins aussi grand que NumberOfSamples. |
weight | REAL | tableau | (facultatif) Utilisé pour les moyennes pondérées. Ce tableau doit être au moins aussi grand que NumberOfSamples. L’élément [0] est utilisé pour l’échantillon le plus récent ; l’élément [n] est utilisé pour l’échantillon le plus ancien. |
Structure MOVING_AVERAGE
Paramètre d’entrée | Type de données | Description |
EnableIn | BOOL | Activez l'entrée. Si mis à zéro, l'instruction n'est pas exécutée et les sorties ne sont pas mises à jour. La valeur par défaut est définie. |
In | REAL | Entrée du signal analogique dans l’instruction. Valide = tout flottant Par défaut = 0,0 |
InFault | BOOL | Indicateur de mauvaise santé pour l'entrée. Si In est reconnu par une entrée analogique, alors InFault est contrôlé normalement par l’état de défaut sur l’entrée analogique. Une fois défini, InFault indique que le signal d’entrée comporte une erreur, l’instruction définit le bit approprié dans Status et l’instruction maintient la valeur actuelle pour Out. Quand InFault passe de défini à mis à zéro, l'instruction initialise l'algorithme de moyenne et poursuit l'exécution. La valeur par défaut est mise à zéro. |
Initialize | BOOL | L'entrée d’initialisation dans l'instruction. Une fois définie, l’instruction retient Out = In, sauf lorsque InFault est défini, auquel cas, l’instruction maintient la valeur actuelle pour Out. Quand Initialize passe de défini à mis à zéro, l’instruction initialise l’algorithme de moyenne et poursuit l’exécution. La valeur par défaut est mise à zéro. |
SampleEnable | BOOL | Prise d’échantillon pour In activée. Une fois définie, l’instruction insère la valeur d’In dans le tableau de stockage et calcule une nouvelle valeur pour Out. Lorsque SampleEnable est mis à zéro et que Initialize est mis à zéro, l’instruction maintient la valeur actuelle pour Out. La valeur par défaut est définie. |
NumberOfSamples | DINT | Nombre d’échantillons à être utilisés dans le calcul. Si cette valeur n’est pas valide, l’instruction définit le bit approprié dans Status et maintient Out sur sa valeur actuelle. Lorsque NumberOfSamples redevient valide, l’instruction initialise l’algorithme de moyenne et poursuit l’exécution. Valide = de 1 à (dimension minimale de StorageArray ou de WeightArray, si utilisés) Par défaut = 1 |
UseWeights | BOOL | L’entrée du schéma moyennable dans l’instruction. Une fois définie, l’instruction utilise la méthode pondérée dans le calcul pour Out. Une fois mise à zéro, l’instruction utilise la méthode uniforme dans le calcul pour Out. La valeur par défaut est mise à zéro. |
Paramètre de sortie | Type de données | Description |
EnableOut | BOOL | Indique si l'instruction est activée. Mis à zéro (faux) en cas de débordement d'Out. |
Out | REAL | Sortie calculée de l’algorithme. |
État | DINT | État du bloc fonctionnel. |
InstructFault (Status.0) | BOOL | L'instruction a détecté l'une des erreurs d'exécution suivantes. Il ne s'agit pas d'une erreur d'automate mineure ou majeure. Contrôlez les bits d'état restants pour déterminer la cause du problème. |
InFaulted (Status.1) | BOOL | La santé de In est mauvaise (InFault est défini). |
NumberOfSampInv (Status.2) | BOOL | NumberOfSamples n’est pas valide ou n’est pas compatible avec la taille du tableau. |
Reportez-vous à Syntaxe du texte structuré pour plus d'informations concernant la syntaxe des expressions dans le texte structuré.
Description
L’instruction MAVE calcule une moyenne mobile pondérée ou non-pondérée du signal d’entrée. NumberOfSamples détermine la longueur de la plage moyennable mobile. À chaque scrutation du bloc lorsque SampleEnable est défini, l'instruction déplace la valeur d'In dans le tableau de stockage et élimine les anciennes valeurs. Chaque valeur d'In
n
possède un Weightn
défini par l'utilisateur qui est utilisé lorsque UseWeights est défini.Condition | Action |
Méthode de la moyenne pondérée UseWeights est défini. | ![]() |
Méthode de la moyenne uniforme UseWeights est mis à zéro. | ![]() |
L'instruction ne va pas placer une valeur In non valide (NAN ou ± INF) dans le tableau de stockage. Lorsque ln est non valide, l'instruction définit Out = In et enregistre un défaut mineur de débordement si le rapport est activé. Lorsque In devient valide, l’instruction initialise l’algorithme moyennable et poursuit l’exécution.
Vous pouvez faire des modifications d’exécution dans les paramètres NumberOfSamples. Si vous augmentez le chiffre, l’instruction fera progressivement la moyenne des nouvelles données de la taille de l’échantillon actuel à la nouvelle taille de l’échantillon. Si vous diminuez le chiffre, l’instruction recalculera la moyenne depuis le début du tableau d’échantillon jusqu’à la nouvelle valeur NumberOfSamples.
Initialiser l’algorithme de calcul de la moyenne
Pour certaines situations, comme celles de la première scrutation de l’instruction et de la première exécution de l’instruction, il faut que l’instruction initialise l’algorithme de calcul de la moyenne mobile. Quand cela se produit, l'instruction considère que l'échantillon StorageArray est vide et fait progressivement la moyenne des échantillons de 1 jusqu'à la valeur NumberOfSamples. Par exemple :

Affecte les indicateurs d'état mathématique
Non
Défauts majeurs/mineurs
Aucun spécifique à cette instruction. Reportez-vous à la section Attributs courants pour plus d’informations sur les défauts liés aux opérandes.
Exécution
Bloc fonctionnel
Condition/état | Action entreprise |
Préscrutation | Les bits EnableIn et EnableOut sont définis sur faux. |
Tag.EnableIn est faux | Les bits EnableIn et EnableOut sont définis sur faux. Demander la réinitialisation du tableau de stockage à la prochaine exécution de l'instruction. |
Tag.EnableIn est vrai | Les bits EnableIn et EnableOut sont définis sur vrai. L'instruction s'exécute. |
Première exécution de l'instruction | N/A |
Première scrutation de l'instruction | Initialiser Out à zéro. |
Post-scrutation | Les bits EnableIn et EnableOut sont définis sur faux. |
Texte structuré
Dans Texte structuré, EnableIn est toujours Vrai lors d’une scrutation normale. Si l’instruction se trouve dans le chemin d’accès de commande activé par la logique, elle est exécutée.
Condition/état | Action entreprise |
Préscrutation | Reportez-vous à Pré-scrutation dans le tableau Bloc fonctionnel. |
Exécution normale | Reportez-vous à Tag.EnableIn est vrai dans le tableau Bloc fonctionnel. |
Post-scrutation | Reportez-vous à Post-scrutation dans le tableau Bloc fonctionnel. |
Exemple
L’instruction place input_value dans le tableau de stockage à chaque scrutation. L'instruction calcule la moyenne des valeurs qui se trouvent dans le tableau de stockage en utilisant éventuellement les valeurs pondérées du tableau de pondération et place le résultat dans Out.
Bloc fonctionnel

Texte structuré
MAVE_01.In := input_value;
MAVE(MAVE_01,storage,weight);
output_value := MAVE_01.Out;
Fournir une réponse

