Ejemplos de cálculo
El nodo de atributo Initiate en IoT Logic admite una amplia gama de cálculos mediante Navixy IoT Logic Expression Language. Esta guía proporciona ejemplos prácticos de cálculos comunes para ayudarle a extraer el máximo valor de sus datos IoT.
Consideraciones importantes
Al crear cálculos, tenga en cuenta estos puntos:
Validez de los nombres de atributos: Asegúrese de usar nombres de atributos correctos en los cálculos. Puede consultar los nombres de atributos existentes usando Data Stream Analyzer, o insertarlos con gGestión de atributos usando autocompletar.
Validez de los datos: Asegúrese de que sus expresiones manejen de forma elegante posibles valores nulos o lecturas no válidas
Impacto en el rendimiento: Los cálculos complejos con muchas funciones anidadas pueden afectar la velocidad de procesamiento para datos de alta frecuencia
Restricciones matemáticas: Funciones como el logaritmo y la raíz cuadrada requieren valores de entrada positivos
Referencias históricas: Al usar valores indexados (por ejemplo,
value('param', 1, 'valid')), asegúrese de disponer de datos históricos suficientes y utilice la sintaxis completa de la expresión
Cálculos básicos
Conversiones de unidades
Convertir mediciones entre diferentes unidades es una de las operaciones más comunes en el procesamiento de datos IoT.
Conversión de velocidad (km/h a mph)
can_speed/1.609Aplicación práctica: Esta conversión estandariza los datos de velocidad del vehículo para regiones que usan medidas imperiales. Al realizar este cálculo en IoT Logic en lugar de en aplicaciones posteriores, se garantiza consistencia en todos los sistemas que consumen los datos.
Conversión de temperatura (Celsius a Fahrenheit)
temperature * 1.8 + 32Aplicación práctica: Esta conversión hace que las lecturas de temperatura sean comprensibles para usuarios más familiarizados con Fahrenheit. Es especialmente valiosa para organizaciones multinacionales que operan en regiones con diferentes estándares de medición.
Cálculo de diferencias
Comparar las lecturas actuales con valores anteriores ayuda a identificar cambios y tendencias en sus datos.
Detección de cambio de temperatura
temperature - value('temperature', 1, 'valid')Aplicación práctica: Este cálculo ayuda a detectar fluctuaciones rápidas de temperatura que podrían indicar problemas en el equipo o cambios ambientales. Al crear un atributo dedicado para esta diferencia, puede configurar alertas por cambios bruscos sin procesamiento complejo posterior.
Cálculos basados en el tiempo
Los cálculos temporales le ayudan a entender el comportamiento del dispositivo a lo largo del tiempo y a medir patrones operativos.
Encontrar el tiempo transcurrido entre las últimas lecturas válidas
srvTime('avl_25', 0, 'valid') - srvTime('avl_25', 1, 'valid')Aplicación práctica: Este cálculo mide el intervalo entre transmisiones de datos consecutivas, lo que puede ayudar a identificar problemas de comunicación o validar que los dispositivos informan con las frecuencias esperadas. Este ejemplo muestra el cálculo entre las dos últimas lecturas válidas, pero se puede ajustar para manejar cualquier dos valores históricos.
Convertir marcas de tiempo a un formato legible
dtFormat(genTime('can_fuel_1', 0, 'all'))Aplicación práctica: Convertir marcas de tiempo Unix al formato ISO 8601 hace que los datos sean más legibles en registros y reportes. Este formato es ampliamente compatible con herramientas de análisis y bases de datos, lo que simplifica la integración con otros sistemas.
Funciones matemáticas avanzadas
IoT Logic admite operaciones matemáticas sofisticadas a través de sus funciones matemáticas integradas.
Redondeo de valores
Redondear la temperatura al entero más cercano
math:round(value('temperature_2', 0, 'valid'))Aplicación práctica: El redondeo es valioso cuando no se necesita una precisión exacta o cuando desea reducir el ruido en las lecturas de sensores. Por ejemplo, redondear datos de sensores ambientales puede ser suficiente para el monitoreo climático general mientras se reducen los requisitos de almacenamiento. Esta función también es útil al crear categorías o bandas de valores (por ejemplo, agrupar lecturas de temperatura en incrementos de 5 grados).
Cálculos logarítmicos
Logaritmo natural de un valor
math:log(value('temperature_2', 0, 'valid'))Aplicación práctica: Las transformaciones logarítmicas son particularmente útiles para:
Comprimir datos que abarcan múltiples órdenes de magnitud en un rango más manejable
Convertir relaciones exponenciales en lineales para un análisis más sencillo
Trabajar con ciertos tipos de sensores que tienen características de respuesta logarítmica
Cálculos de nivel de sonido, donde los decibelios son unidades logarítmicas
Mediciones de pH en monitoreo ambiental
Operaciones de raíz cuadrada
Calcular la raíz cuadrada de una lectura
math:sqrt(value('temperature_2', 0, 'valid'))Aplicación práctica: Las funciones de raíz cuadrada son valiosas para:
Convertir entre potencia y amplitud en mediciones eléctricas
Calcular desviaciones estándar en el análisis estadístico de datos de sensores
Determinar valores de raíz media cuadrática (RMS) para parámetros eléctricos
Cálculos de distancia en espacio multidimensional (p. ej., trilateración para posicionamiento)
Normalizar ciertos tipos de datos de sensores
Operaciones combinadas
Puede crear cálculos aún más complejos combinando múltiples funciones y operaciones.
Media geométrica con redondeo
math:round(math:sqrt(value('temperature_1', 0, 'valid') * value('temperature_2', 0, 'valid')))Aplicación práctica: Este cálculo computa la media geométrica de lecturas de dos sensores de temperatura y redondea el resultado para proporcionar un valor más limpio. La media geométrica suele ser más apropiada que un promedio aritmético cuando se trata de tasas, razones o mediciones donde la multiplicación es la forma natural de combinar valores.
Cálculo de valor estandarizado
(value('sensor_reading', 0, 'valid') - value('sensor_min', 0, 'valid')) / (value('sensor_max', 0, 'valid') - value('sensor_min', 0, 'valid')) * 100Aplicación práctica: Esto normaliza una lectura de sensor a una escala porcentual de 0-100%, permitiendo comparaciones estandarizadas entre diferentes sensores con rangos variados. Esto es particularmente útil para crear paneles uniformes o activar alertas basadas en valores relativos en lugar de mediciones absolutas.
Última actualización
¿Te fue útil?