Écart standard de mouvement (Moving Standard Deviation, MSTD)
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 Écart standard de mouvement (Moving Standard Deviation, MSTD) calcule l’écart type de mouvement et la moyenne pour le signal In.
Langues disponibles
Diagramme à relais
Cette instruction n'est pas disponible dans la logique à relais.
Bloc fonctionnel

Texte structuré
MSTD(MSTD_tag, StorageArray);
Opérandes
Bloc fonctionnel
Opérande | Type | Format | Description |
block tag | MOVING_STD_DEV | structure | Structure MSTD |
StorageArray | REAL | tableau | Il retient les échantillons Entrée. Ce tableau doit être au moins aussi grand que NumberOfSamples. |
Structure MOVING_STD_DEV
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 Out et Average à leurs valeurs actuelles. 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 = 0,0 et Average = In, excepté quand InFault est défini, auquel cas, l’instruction retiendra Out et Average à leurs valeurs actuelles. Quand Initialize passe de défini à mis à zéro, l'instruction initialise l'algorithme d'écart type 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 et Average. Lorsque SampleEnable est mis à zéro et que Initialize est mis à zéro, l’instruction maintient la valeur actuelle pour Out et Average à leurs valeurs actuelles. La valeur par défaut est mise à zéro. |
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 et Average à leur valeur actuelle. Lorsque NumberOfSamples redevient valide, l'instruction initialise l'algorithme d'écart type et poursuit l'exécution. Valide = 1 à la taille du tableau de stockage Par défaut = 1 |
Paramètre de sortie | Type de données | Description |
EnableOut | BOOL | Indique si l'instruction est activée. Défini sur faux si Out déborde |
Out | REAL | Sortie calculée de l’algorithme. |
Moyenne | REAL | Moyenne 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 |
block tag | MOVING_STD_DEV | structure | Structure MSTD |
StorageArray | REAL | tableau | Il retient les échantillons Entrée. Ce tableau doit être au moins aussi grand que NumberOfSamples. |
Reportez-vous à Syntaxe du texte structuré pour plus d'informations concernant la syntaxe des expressions dans le texte structuré.
Description
L’instruction MSTD prend en charge toute longueur de file d’attente d’entrée. Si SampleEnable est défini, l'instruction insère la valeur d'In dans le tableau de stockage à chaque scrutation. Lorsque le tableau de stockage est plein, la plus ancienne valeur sera remplacée par la nouvelle valeur d'In.
Pour les sorties, l'instruction MSTD utilise les équations suivantes :
Condition | Action |
|---|---|
Moyenne | ![]() |
Out | ![]() |
L'instruction ne va pas placer une valeur In non valide (NAN ou
INF) dans le tableau de stockage. Lorsque ln est non valide et si le rapport est activé, l’instruction définit Out = In, elle définit Average = In, et enregistre un défaut mineur de débordement. Lorsque In devient valide, l'instruction initialise l'algorithme d'écart type et poursuit l'exécution.
INF) dans le tableau de stockage. Lorsque ln est non valide et si le rapport est activé, l’instruction définit Out = In, elle définit Average = In, et enregistre un défaut mineur de débordement. Lorsque In devient valide, l'instruction initialise l'algorithme d'écart type 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 traitera progressivement les nouvelles données de la taille de l'échantillon actuel jusqu’à la nouvelle taille de l'échantillon. Si vous diminuez le chiffre, l'instruction recalculera l'écart type depuis le début du tableau d'échantillonnage jusqu'à la nouvelle valeur NumberOfSamples.
Initialiser l’algorithme de l’écart type
Pour certaines situations comme celles de la première scrutation de l'instruction et la première exécution de l'instruction, il faut que l'instruction initialise l'algorithme de l'écart type. Lorsque cela se produit, l’instruction considère que StorageArray est vide et traite progressivement les é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. |
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 | Initialiser Output et Average précédentes. |
Première scrutation de l'instruction | Initialiser Out à zéro. Initialiser Average à Input Initialiser l’algorithme d’instruction. |
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
À chaque scrutation où SampleEnable est définie, l’instruction place la valeur d'In dans le tableau de stockage, elle en calcule l'écart type et place le résultat dans Out. Out devient un paramètre d'entrée pour function_block_C.
Bloc fonctionnel

Texte structuré
MSTD_01.In := input_value;
MSTD_01.SampleEnable := enable_sample;
MSTD(MSTD_01,storage);
deviation := MSTD_01.Out;
Fournir une réponse

