|
STDVT |
Instrucciones Índex |
Standard Deviation (Desviación Estándar)
En conjunto con la instrucción FIFO puede calcular el desvío estándar de los datos acumulados. Los argumentos para la instrucción son los mismos que se usan en la instrucción FIFO.
FIFO y STDVT se usan por separado. Cada vez que se ejecuta la instrucción FIFO un nuevo dato es añadido al registro (y eliminado el mas viejo). Una vez que se han acumulado los datos necesarios en el registro se ejecuta STDVT para obtener el desvío estándar a partir de los datos del registro. El resultado queda en el acumulador.
También produce una rotación de acumuladores.
Esta instrucción está a partir de el CP121 ROM 2.55 hasta 2.65, CP122 ROM 2.03 hasta 2.13, CP123 2.20 hasta 2.23, CP124 1.00, CP125 1.00, CP126 1.00, IP1300 1.00, IP1301 1.00
;Ejemplo de media y desvío estándar
;
; Bellplast 22/11/2013
;-------------------------------------------------------------------------------
LD Init ;Evento que ocurre solo una vez
jmpc Inicio
LD puls_c1seg ;Evento cada segundo
calc LeeADC
end
LeeADC LD Ent_Trans ;Lee valor actual del transmisor conectado a la entrada analógica de 12bit
SUB 800 ;Quito la cantidad de cuentas correspondientes a los 4mA
SCALE 10, 32 ;Convierte el rango del transmisor (16mA) a 0 - 100 con un decimal
;Resultado: 4mA -> 0.0, 20mA -> 100.0
FIFO Var0, Var9 ;Registro de desplazamiento con los últimas 10 muestras
(de var0 a Var9)
INC ContaM ;Cuenta las mediciones
LD ContaM
EQ 10 ;ContaM (en el acumulador) llegó a 10?
calc Calcula
RET
Calcula FAVG Var0, Var9 ;Calcula el promedio del las muestras
ST Media ;y lo guarda en la variable Media
STDVT Var0, Var9 ;Calcula el desvío estándar del las muestras
ST DesvioST ;y lo guarda en la variable DesvioST
MOVE 0, ContaM ;Re inicia contador
RET
; Inicialización (se ejecuta una sola vez)
Inicio LD 0
FILL Var0, Var9 ;Inicializo (borrado) del registro de variables
MOVE 0, ContaM ;Inicia contador
END
El ejemplo se puede descargar de aquí.
Con tres argumentos
A partir del CP121 2.70, CP122 2.20, CP123 2.30, CP125 1.10, CP127 1.00, CP128 1.00, CP220 1.00 varias instrucciones de dos argumentos son reemplazadas por tres argumentos. El comportamiento de cada uno resulta en la siguiente forma:
STDVT arg1, arg2, arg3 equivale a arg1 = desvío desde arg2 hasta arg3
El primer argumento (arg1) debe ser de 32bit mientras que el resto (arg2 y arg3) deben ser de 16bit (Ver tipo de dato). El arg3 puede indicar la última variable de las que se promedian o la cantidad (que se cuenta a partir de arg2). La ejecución es condicional y no hace rotación de acumuladores.
En Ladder, por causa de la representación gráfica, el arg1 al final en vez de al principio. Esto ocurre con ADD, DIV, FAVG, FIFO, FILL, MOD, MUL, SCALE, STDVT y SUB.