Commit 3c325abe authored by ZIMMERMANN Olivier's avatar ZIMMERMANN Olivier
Browse files

Reprise et amélioration en profondeur des fonctions "Scaler".

- Intégration des anciennes fonctions "Trends".
- Suppression des fonctions trop spécifiques héritées de l'implémentation initiale pour Phoenix.
- Découplage des spécifications de nom et d'unité des voies (désormais définies dans l'appelant à l'initilisation).
- Réorganisation du découpage fonctionnel de façon à aboutir à un jeu simplifié de 3 VIs de haut niveau manipulant les objets de face avant utiles par référence).
- Un VI de TEST ou DEMO et une capture d'écran illustrative pour chaque jeu de fonctions.
- Enregistrement en LV 20.0.1 32bit.
parent 804d5a28
......@@ -2,30 +2,32 @@
Module de code réutilisable pour LabVIEW.
Lot 1 : "RTChart" (Real Time Chart) sert à **afficher des abscisses en temps réaliste sur un graphe déroulant (Chart)** dans LabVIEW.
Les fonctions "RTChart" et "Scaler" sont indépendantes mais manipulent toutes les deux des "single point waveforms".
Lot 2 : "Scaler" et "Trends" servent à **manipuler des courbes d'historiques avec gestion d'unités**.
"RTChart" (Real Time Chart) **affiche des abscisses en temps réaliste sur un graphe déroulant**.
Chaque lot peut être utilisé séparément.
"Scaler" **manipule les unités des courbes d'un graphe déroulant pour qu'elles cohabitent mieux sur une même échelle d'ordonnées**.
La **[liste des Releases](https://gitlab.in2p3.fr/oz-reuse/labview/ozr-RTChart/-/releases)** donne accès à tous les téléchargements utiles.
## Détails / RTChart
## Les fonctions "RTChart"
Le **graphe déroulant** de LabVIEW trace par défaut des valeurs à intervalle d'abscisses constant. Le temps écoulé entre deux points successifs, en particulier, est ignoré.
Le **graphe déroulant** de LabVIEW trace en général des points à intervalle d'abscisses fixe, indépendament du temps écoulé entre deux points successifs. Mais si les points sont de type "Waveform", la courbe présente des **abscisses en temps réaliste**.
Ce n'est toutefois pas le cas si les valeurs envoyées au graphe sont des "waveforms". Dans ce cas la courbe présentera des **abscisses en temps réaliste**.
RTChart sert donc à **transformer les points bruts en "waveforms" datées** afin de les afficher sur un graphe déroulant avec des abscisses temporelles réalistes.
RTChart offre dans ce but des fonctions pour **transformer les points ou tableaux de points en "waveforms" dûment datées** avant de les envoyer au graphe déroulant.
## Les fonctions "Scaler"
## Détails / Scaler, Trends
Les fonctions "Scaler" permettent à plusieurs courbes de partager efficacement un même graphe déroulant. Pour y arriver, il **permet à l'utilisateur de contrôler le préfixe multiplicateur des unités physiques** de chaque courbe, afin de les faire cohabiter sur une échelle unique même si leurs valeurs varient dans des gammes numériques très différentes.
Dans le cas de mesures lentes (monitorings), l'échantillon de base du graphe déroulant peut être une "**single-point waveform**" (ou un tableau de SPW) qui transporte la date et la valeur de la mesure.
*Exemple :* pour afficher à la fois une courbe variant entre 10E-5 et 10E-6 bar et une autre variant entre 20 et 70 mA, il vaut mieux afficher les valeurs de la première en microbars (E-6 bar) et celles de la seconde en centièmes d'Ampères (E-2 A). Ainsi la même échelle graduée de 0 à 10 reproduira bien la gamme des deux courbes, sans que les variations de l'une écrasent celles de l'autre.
Il peut aussi transporter dans ses métadonnées un **label** (qui s'affichera dans la légende du graphe) faisant apparaitre son **nom** et son **unité physique**.
En outre, "Scaler" **enregistre et rétablit au démarrage les paramètres de chaque courbe** (préfixe multiplicateur mais aussi styles de ligne, de point, etc) et inclut une fonction **auto-fit** pour déterminer rapidement les préfixes multiplicateurs adaptés à partir des derniers points fournis au graphe déroulant.
Ainsi "Scaler" et "Trends" s'appuient sur un label de la forme "\<voie\>\[ (\<unité\>)\]'.
"Scaler" travaille avec un graphe déroulant alimenté avec des points formatés en "**single-point waveform**" (avec "RTChart" par exemple) pour figurer correctement la date de chaque point.
Les fonctions manipulent le nom, l'unité et son **préfixe multiplicateur** de façon à permettre à l'utilisateur final de choisir lui-même le préfixe le mieux adapté à l'affichage.
En initialisation, le programmeur doit spécifier à "Scaler" le nom et l'unité physique (éventuellement convertie et préfixée) de chaque courbe. "Scaler" sépare et manipule le nom dépourvu d'unité (qui sera affichée par la légende), le préfixe multiplicateur et l'unité physique (affichés respectivement dans un tableau d'énumérés et un tableau de chaînes ajustés aux dimensions de la légende redimensionnable du graphe).
Cette approche permet d'afficher de nombreuses courbes sur un même graphe (1) sans conflits de dynamique, (2) avec un nom et une unité correctes en légende, (3) avec un préfixe d'unité paramétrable pour chaque voie.
**3 fonctions de haut niveau (Init.vi, Scale.vi et Close.vi)** suffisent pour mettre en oeuvre ce dispositif.
Le VI "Scaler_TEMPLATE.vi" fournit le code, les contrôles et les indicateurs à copier-coller pour tester et démarrer rapidement.
No preview for this file type
No preview for this file type
File added
File added
No preview for this file type
No preview for this file type
File added
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment