Quiero escribir un programa utilizando Siemens S7-300. Quiero promediar las señales de corriente o de voltaje recopiladas en tiempo real, es decir, promediar tres valores consecutivos.
El póster ofrece un programa típico de filtro mediano (puede modificarse adecuadamente según el software de programación utilizado. Recuerde que el STEP7 estándar no es compatible con c, por lo que debe agregar SCL):
int a[11]; define una matriz para guardar cada valor de medición
dint suma; define la variable media
a[0]=se guarda el último valor de medición; en el primer elemento de la matriz en
sum=0; a la media se le asigna cero primero
for (i=0; ilt; 10; i)
{
sum = a[10-i-1]; Acumulación de cada valor de medición
a[10-i]=a[10-i-1];
}
suma /=10; promedio final
La idea básica de este programa es que cada vez que se toma una medición se calcula el promedio junto con los 9 valores de medición anteriores.
"Si a veces tomas 5 números, encuentra el promedio en cualquier momento"——
Simplemente cambia el valor 10 en el programa a una variable y asígnale el valor requerido.