Desviación estándar de movimiento (MSTD)
Esta información corresponde a los controladores CompactLogix 5370, ControlLogix 5570, CompactGuardLogix 5370, GuardLogix 5570, CompactGuardLogix 5380, CompactLogix 5380, ControlLogix 5580, GuardLogix 5580 y ControlLogix 5590.
La instrucción Desviación estándar de movimiento (Moving Standard Deviation, MSTD) calcula un promedio y un desplazamiento de desviación estándar de la señal de Entrada.
Idiomas disponibles
Diagrama de lógica de escalera
Esta instrucción no está disponible en la lógica de diagrama de escalera.
Bloque de funciones

Texto estructurado
MSTD(MSTD_tag, StorageArray);
Operandos
Bloque de funciones
Operando | Tipo | Formato | Descripción |
block tag | MOVING_STD_DEV | estructura | Estructura MSTD |
StorageArray | REAL | matriz | Retiene las muestras de Entrada. Esta matriz debe ser, al menos, tan grande como NumberOfSamples. |
Estructura de MOVING_STD_DEV
Parámetro de entrada | Tipo de datos | Descripción |
EnableIn | BOOL | Habilita la entrada. Si no está activada, la instrucción no se ejecuta y las salidas no se actualizan. Está establecido de forma predeterminada. |
In | REAL | La entrada de la señal analógica a la instrucción. Válido = cualquier punto flotante Valor predeterminado = 0,0 |
InFault | BOOL | Indicador de estado incorrecto para la entrada. Si In se lee desde una entrada analógica, InFault normalmente se controla mediante el estado de fallo de la entrada analógica. Cuando está establecido, InFault indica que la señal de entrada tiene un error, la instrucción establece el bit apropiado en Status y la instrucción retiene Out y Average en sus valores actuales. Cuando InFault realiza la transición de establecido a borrado, la instrucción inicializa el algoritmo de promedio y la ejecución continúa. Está borrado de forma predeterminada. |
Initialize | BOOL | Entrada de Initialize a la instrucción. Cuando está establecido, la instrucción establece Out = 0,0 y Average = In, excepto cuando InFault está establecido; en tal caso, la instrucción retiene Out y Average en sus valores actuales. Cuando Initialize pasa de establecido a borrado, la instrucción inicializa el algoritmo de desviación estándar y continúa ejecutándose. Está borrado de forma predeterminada. |
SampleEnable | BOOL | Habilitar para tomar una muestra de In. Cuando está establecido, la instrucción introduce el valor de In en la matriz de almacenamiento y calcula un nuevo valor de Out y Average. Cuando SampleEnable está borrado e Initialize también está borrado, la instrucción mantiene Out y Average en sus valores actuales. Está borrado de forma predeterminada. |
NumberOfSamples | DINT | El número de muestras que se debe utilizar en el cálculo. Si este valor no es válido, la instrucción establece el bit apropiado en Status y la instrucción retiene Out y Average en sus valores actuales. Cuando NumberOfSamples vuelve a ser válido, la instrucción inicializa el algoritmo de desviación estándar y continúa ejecutándose. Válido = de 1 al tamaño de la matriz de almacenamiento Valor predeterminado = 1 |
Parámetro de salida | Tipo de datos | Descripción |
EnableOut | BOOL | Indica si la instrucción está habilitada. Se establece en falso si produce un desbordamiento |
Salida | REAL | La salida calculada del algoritmo. |
Promedio | REAL | El promedio calculado del algoritmo. |
Estado | DINT | Estado del bloque de funciones. |
InstructFault (Status.0) | BOOL | La instrucción detectó uno de los siguientes errores de ejecución. No se trata de un error mayor o menor del controlador. Se comprueban los bits de estado restantes para determinar lo que ha ocurrido. |
InFaulted (Status.1) | BOOL | El estado de In es incorrecto. InFault está establecido. |
NumberOfSampInv (Status.2) | BOOL | NumberOfSamples no válido o no compatible con el tamaño de matriz. |
Texto estructurado
Operando | Tipo | Formato | Descripción |
block tag | MOVING_STD_DEV | estructura | Estructura MSTD |
StorageArray | REAL | matriz | Retiene las muestras de Entrada. Esta matriz debe ser, al menos, tan grande como NumberOfSamples. |
Consulte Sintaxis de texto estructurado para obtener más información sobre la sintaxis de las expresiones dentro de texto estructurado.
Descripción
La instrucción MSTD admite cualquier longitud de cola de entrada. En cada escaneado, si SampleEnable está establecido, la instrucción introduce el valor de In en una matriz de almacenamiento. Cuando la matriz de almacenamiento está llena, cada valor nuevo de In hace que se elimine la entrada más antigua.
La instrucción MSTD utiliza estas ecuaciones para las salidas:
Condición | Action |
|---|---|
Promedio | ![]() |
Salida | ![]() |
La instrucción no colocará un valor In no válido (NAN o
INF) en la matriz de almacenamiento. Cuando In no es válido, la instrucción establece Out = In, Average = In y registra un fallo menor de desbordamiento si esta notificación está habilitada. Cuando In es válido, la instrucción inicializa el algoritmo de desviación estándar y la ejecución continúa.
INF) en la matriz de almacenamiento. Cuando In no es válido, la instrucción establece Out = In, Average = In y registra un fallo menor de desbordamiento si esta notificación está habilitada. Cuando In es válido, la instrucción inicializa el algoritmo de desviación estándar y la ejecución continúa.Puede realizar cambios en tiempo de ejecución al parámetro NumberOfSamples. Si aumenta el número, la instrucción procesa los nuevos datos de forma incremental, desde el tamaño actual de la muestra hasta el tamaño nuevo de la muestra. Si disminuye el número, la instrucción recalcula la desviación estándar desde el principio de la matriz de muestra hasta el nuevo valor de NumberOfSamples.
Inicialización del algoritmo de desviación estándar
Algunas condiciones, como el primer escaneado de instrucción y la primera ejecución de instrucción, requieren que la instrucción inicialice el algoritmo de desviación estándar. Cuando esto ocurre, la instrucción considera StorageArray vacío y procesa de forma incremental las muestras, desde 1 hasta el valor de NumberOfSamples. Por ejemplo:

Afecta a las marcas de estado matemáticas
No
Fallos mayores/menores
No es específico para esta instrucción. Consulte Atributos comunes para obtener información sobre fallos relacionados con los operandos.
Ejecución
Bloque de funciones
Condición/estado | Acción realizada |
Pre-escaneado | Los bits EnableIn y EnableOut se establecen en falsos. |
Tag.EnableIn es falso | Los bits EnableIn y EnableOut se establecen en falsos. |
Tag.EnableIn es verdadero | Los bits EnableIn y EnableOut se establecen en verdaderos. La instrucción se ejecuta. |
Primera ejecución de instrucción | Inicializar Output y Average anteriores. |
Primer escaneado de instrucción | Inicializar Out a cero. Inicializar Average a Input Inicializar el algoritmo de instrucción. |
Post-escaneado | Los bits EnableIn y EnableOut se establecen en falsos. |
Texto estructurado
En Texto estructurado, EnableIn siempre es Verdadero durante un escaneado normal. Si la instrucción se encuentra en la ruta de control activada por la lógica, se ejecutará.
Condición/estado | Acción realizada |
Pre-escaneado | Consulte Pre-escaneado en la tabla Bloque de funciones. |
Ejecución normal | Consultar Tag.EnableIn es verdadero en la tabla Bloque de funciones. |
Post-escaneado | Consulte Post-escaneado en la tabla Bloque de funciones. |
Ejemplo
En cada escaneado en el que SampleEnable está establecido, la instrucción coloca el valor de In en el almacenamiento de matrices, calcula la desviación estándar de los valores del almacenamiento de matrices y coloca el resultado en Out. Out convierte un parámetro de entrada para function_block_C.
Bloque de funciones

Texto estructurado
MSTD_01.In := input_value;
MSTD_01.SampleEnable := enable_sample;
MSTD(MSTD_01,storage);
deviation := MSTD_01.Out;
Entregue su opinión

