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.