Bonjour,
A tout hazard avez vous déjà au niveau superviseur implémenté en CiciCode des fonctions pour le calcul des valeurs minimum, maximale et moyennes d'une varaible de type REAL ?
Si oui je suis prenneur du code.
Cdlt,
[AVEVA PLANT SCADA] Calcul des valeurs min, max, moyenne d'un tag
- itasoft
- Mi homme - Mi automate
- Messages : 7089
- Enregistré le : 20 oct. 2015, 10:15
- Localisation : Lyon
- Contact :
Re: [AVEVA PLANT SCADA] Calcul des valeurs min, max, moyenne d'un tag
Slts,
Connais pas CiciCode mais en standard ça donnerait :
if Initialisation then myRealMin :=myReal;myRealMax :=myReal
If myReal>mRealMax then myRealMax :=myReal
If myReal<mRealMin then myRealMin :=myReal
Connais pas CiciCode mais en standard ça donnerait :
if Initialisation then myRealMin :=myReal;myRealMax :=myReal
If myReal>mRealMax then myRealMax :=myReal
If myReal<mRealMin then myRealMin :=myReal
Automaticien privé (de tout)
itasoft@free.fr
itasoft@free.fr
Re: [AVEVA PLANT SCADA] Calcul des valeurs min, max, moyenne d'un tag
Merci Itasoft, la seule chose qui manque c'est la moyenne.
- itasoft
- Mi homme - Mi automate
- Messages : 7089
- Enregistré le : 20 oct. 2015, 10:15
- Localisation : Lyon
- Contact :
Re: [AVEVA PLANT SCADA] Calcul des valeurs min, max, moyenne d'un tag
Pour la moyenne ya plusieurs méthodes, En fonction de si on veut une moyenne instantanée ou échantillonnée
moi j'utilise celle instantanée sur un tableau glissant, voir mon Tuto
viewtopic.php?p=48447&hilit=moyenne#p48447
moi j'utilise celle instantanée sur un tableau glissant, voir mon Tuto
viewtopic.php?p=48447&hilit=moyenne#p48447
Automaticien privé (de tout)
itasoft@free.fr
itasoft@free.fr
Re: [AVEVA PLANT SCADA] Calcul des valeurs min, max, moyenne d'un tag
Bon je viens de trouver une solution plus courte avec les fonctions internes du superviseur. Voici les étapes :
1. Définir une TREND qui va récupérer les valeurs de la grandeur analogique
2. Transférer le contenu de la TREND dans une variable de type ARRAY
3. Utiliser la fonction TableMath pour lire le max, min et la moyenne
Bien entendu les variables Minimum, Maximum et Average doivent être déclarées comme variables locales dans l'application.
Ici j'ai fait avec une table de 9 rien ne vous empêche d'avoir une table de 100 items.
La période de la TREND doit être représentative.
1. Définir une TREND qui va récupérer les valeurs de la grandeur analogique
2. Transférer le contenu de la TREND dans une variable de type ARRAY
3. Utiliser la fonction TableMath pour lire le max, min et la moyenne
Bien entendu les variables Minimum, Maximum et Average doivent être déclarées comme variables locales dans l'application.
Ici j'ai fait avec une table de 9 rien ne vous empêche d'avoir une table de 100 items.
La période de la TREND doit être représentative.
Code : Tout sélectionner
REAL TrendTable1[9];
FUNCTION getValue()
TrnGetTable("Tag1Test",0,0,9, TrendTable1[0],0,0,"Cluster1");
Minimum = TableMath(TrendTable1, 9, 0, 1);
Maximum = TableMath(TrendTable1, 9, 1, 1);
Average = TableMath(TrendTable1, 9, 2, 1);
END
Re: [AVEVA PLANT SCADA] Calcul des valeurs min, max, moyenne d'un tag
Je le fais tourner sur un Event ma fonction ce qui me permet d'avoir des valeurs live.
- itasoft
- Mi homme - Mi automate
- Messages : 7089
- Enregistré le : 20 oct. 2015, 10:15
- Localisation : Lyon
- Contact :
Re: [AVEVA PLANT SCADA] Calcul des valeurs min, max, moyenne d'un tag
1. Définir une TREND qui va récupérer les valeurs de la grandeur analogique
--------------
bravo, c'est l'idée de génie
--------------
bravo, c'est l'idée de génie
Automaticien privé (de tout)
itasoft@free.fr
itasoft@free.fr