Introducción
En Operations Hub, el objeto "Trend Card" es la principal solución para representar líneas de tendencia, ya vengan de Historian, de uno de los SCADAs o de múltiples otras fuentes.
De hecho la "Analysis App" que trae Operations Hub por defecto, implementa este objeto a pantalla completa, a modo de visor de históricos.
Sin embargo, en aplicaciones más complejas, puede interesar que desde una pantalla concreta, se quiera llamar a este "Trend Card" pasándole como parámetros unos tags por defecto. Así se ahorra el trabajo al usuario de buscar los tags y se da mayor coherencia a la experiencia de usuario.
En este artículo vamos a ver cómo se puede hacer esta llamada, pasándole al Trend Card estos tags a representar.
Esto es algo que ya se cubre desde este enlace "Use Trend Tags Input for Flexible Trending", pero de una forma muy genérica. El siguiente artículo proporcionará instrucciones más precisas, así como algunos factores clave a tener en cuenta.
Detalle
- Select Favorite
Con esta propiedad, puede configurar el gráfico de tendencias para cargar un favorito existente en tiempo de ejecución - Trend Tags Input
Seleccione su tipo de cadena global que contiene una lista de etiquetas separadas por comas que desea que se muestren como tendencia con la carga de una página
Example:dd-historian://${Ryder-HIST}/Ryder_Simulation.Simulation00001,
Historian tag:
dd-historian://${Ryder-HIST}/Ryder_Simulation.Simulation00002,
dd-historian://${Ryder-HIST}/FIX.COMP_001_AVERAGE_VIBRATION.F_CV,
dd-opcua://${WEBHMI}/ns%3D3%3bs%3DANIMATIONTAG.Value,
dd-opcua://${Ryder-FIX}/ns%3D2%3bs%3D13%24COMP_001_DISCHARGE_PRESSURE.CV
- Trend Config Input/Output
La entrada o salida de esta propiedad es una representación en cadena de la configuración del gráfico de tendencia actual. Esta contiene todos los datos guardados como parte de un favorito, como el modo de tendencia (tiempo real/histórico), la configuración de tiempo, las etiquetas seleccionadas, etc.
Para enviar valores al Trend Card en el momento de llamarlo, es necesario vincular estas propiedades a un "global" de la Aplicación. De forma que el invocar a la pantalla con el Trend, primero se escribiese en el global y luego se abriese la pantalla.
De las 3 posibilidades, en este artículo nos vamos a centrar en la de "Trend Tags Input", que es la que ofrece mayor flexibilidad en tanto en cuanto permite describir todos los parámetros con los que se quiere representar un tag. En el caso de un tag de Historian, podríamos indicar además del peridoo temporal, si es retrieval mode, y cualquier otro parámetro de detalle.
La dificultad aquí radica en comprender la sintaxis a la hora de declarar todos estos parámetros. En el ejemplo anterior se puede ver que es en general compleja
Cómo validar la sintaxis de los tags a los que se va a hacer referencia:
Para averiguar la nomenclatura para referenciar los tags hay que acudir al entorno de desarrollo HMI del Operations Hub moderno (ubicado en Configuration Hub) y añadir el tag a una pantalla utilizando las queries de tipo EXTENSION
El tag lo añadiremos a un objeto de pantalla sencillo (como sería un texto), arrastrando y soltando.
Posteriormente, marcamos ese texto (que está vinculado al tag que hemos seleccinoado) y observamos cómo ha hecho la referencia. Esa misma sintaxis que veamos es la que tendremos que utilizar.
En este caso, se está solicitando un tag procedente del interfaz OPC-UA, obteniendo la siguiente nomenclatura para referenciarlo:
Con esta sintaxis clara, ya podemos traspasar la información al global.
El resultado se puede ver en la siguiente imagen, en la que en la parte superior tenemos la representación del contenido de "Trend Config Input/Output" que es en realidad el detalle de toda la configuración activa en ese momento en el Trend Card
Comentarios:
En este ejemplo se pasa al Trend Card únicamente el identificador del tag a mostrar. Otros parámetros como la duración por defecto del trend y demás, se han dejado ya pre-guardados en el Tren Card, ya que no se ha considerado que deban ser ajustados dinámicamente.
Para modificar directamente estos parámetros, ya sería necesario mapear los global de la aplicación contra "Trend Config Input/Output" y no contra "Trend Tags Input", como se ha hecho en este ejemplo