Thread Content
Les pido consejo sobre el problema de cálculo del caudal promedio en los sistemas Yokogawa. Los requisitos del proceso permiten especificar cualquier período de tiempo para calcular el caudal promedio. Por ejemplo, se desea calcular el flujo promedio en el período que comienza a las 14:29 de hace tres días y termina a las 15:07; se puede especificar cualquier momento dentro de este rango. Por lo que recuerdo, no existe una interfaz de programa para leer las tendencias históricas; por favor, cuente con mi ayuda.
La función de leer las tendencias aún no ha sido desarrollada por los fabricantes, pero se puede implementar lógicamente: basta con dividir el consumo total entre el tiempo total
La función de leer las tendencias aún no ha sido desarrollada por los fabricantes, pero se puede implementar lógicamente: basta con dividir el consumo total entre el tiempo total
El requisito más importante es que el tiempo sea arbitrario, así que no puedo recopilar datos
Te ofrezco una idea: puedes utilizar bloques de cálculo o secuenciadores para ello, y dentro de ellos referenciar funciones de tiempo a fin de sumar los valores de muestreo
Gracias por su idea. Mi duda es cómo obtener el valor de la variable que representa un momento en el tiempo, especialmente cuando ese momento es aleatorio. En ese caso, es necesario leer el valor de la variable que representa ese tiempo aleatorio. ¿Se pueden leer las funciones de tiempo?
Parece que la tendencia histórica tiene una opción de valor promedio, pero el tiempo es en horas completas
Se puede trazar un gráfico de la tendencia acumulada, estableciendo intervalos de tiempo más pequeños. Al leer los valores acumulados en esos intervalos y restarlos entre sí, luego dividiendo el resultado por el intervalo de tiempo, se obtiene el caudal promedio; esto debería ser bastante preciso.
El punto clave de la pregunta que planteo es cómo leer las tendencias.
Puedes hacerlo con el lenguaje SEBOL; existe una función llamada gettime que permite obtener la hora actual (horas, minutos, segundos)
Gracias. Una vez que se tiene la hora actual, ¿cómo se puede obtener el valor PV de esa hora?
Se crea un array para almacenar los valores obtenidos en cada momento. Se puede comparar este tiempo con el tiempo de inicio establecido. Cuando llega ese momento, los valores recolectados se guardan en el array. Después de haber recolectado varios valores, se suman y luego se divide esa suma entre la cantidad de veces que se han realizado las mediciones. ¿No es eso el promedio?
Al principio, consideré esa opción. Pero como el tiempo es arbitrario y el operador puede establecer cualquier valor de tiempo, si se necesita precisión hasta el segundo, este array necesitará tener muchos elementos. Por ejemplo, para leer los datos de hace una hora, una variable de proceso necesita almacenarse 3600 veces. De esta manera, la cantidad de datos es demasiado grande. Le agradecería su consejo. Gracias.
Con bloques de cálculo: F = valor del flujo; DELAY TIME = valor del tiempo de retardo. F1 = F + valor de DELAY TIME; F2 = F1 + valor de DELAY TIME; F3 = F2 + valor de DELAY TIME. Finalmente, F4 = (F1 + F2 + F3) / 3. Al final, se debe exportar el valor de F4 a un PVI. Más o menos así. Inténtalo