calcul de moyenne (de vitesse de vent) en CONT
calcul de moyenne (de vitesse de vent) en CONT
Bonjour,
Je dois calculer la vitesse moyenne du vent ainsi que la vitesse max sur les 10 dernières minutes
Dans mes recherches je suis tombé sur le bloc « Average » ( https://support.industry.siemens.com/cs ... 0&lc=fr-FR ) qui semblait répondre à mon besoin mais son utilisation ne semble pas aussi simple/logique que prévu : tel que j’ai compris la chose, la patte d’entrée « Value » est prévu pour la valeur dont on doit faire la moyenne (la vitesse du vent dans mon cas), la patte « change value » permet de n’effectuer le calcul de la moyenne que si la valeur d’entrée change, et la patte reset remet la moyenne à 0 !... Mais je ne vois pas comment donner de « top » pour qu’il enregistre une valeur, je ne vois pas non plus de limite de temps ni de fréquence d’échantillonnage ce qui me laisse à penser que le bloc enregistre une valeur à chaque cycle (ce qui va fatalement faire gonfler indéfiniment la mémoire si on ne reste jamais… Cela me parait plutôt dangereux et m'étonne fortement)
De plus, cela ne résous pas mon problème de la moyenne sur les 10 dernières minutes car lorsque je reste le bloc la moyenne revient à 0 alors que dans mon cas la moyenne ne dois jamais repasser à 0 car les valeurs les plus récentes doivent écraser les valeurs de plus de dix minutes.
Je sais qu’en SCL/LIST ce genre de calcul est très facile à faire avec des boucles (on charge chaque valeur sur un ligne dans un DB et on fait évoluer l'index à chaque nouvelle mesure), mais je n’y connais rien dans ces langages (c’est pourquoi je me tourne vers des trucs tout fait)!
Merci d'avance de votre aide.
Je dois calculer la vitesse moyenne du vent ainsi que la vitesse max sur les 10 dernières minutes
Dans mes recherches je suis tombé sur le bloc « Average » ( https://support.industry.siemens.com/cs ... 0&lc=fr-FR ) qui semblait répondre à mon besoin mais son utilisation ne semble pas aussi simple/logique que prévu : tel que j’ai compris la chose, la patte d’entrée « Value » est prévu pour la valeur dont on doit faire la moyenne (la vitesse du vent dans mon cas), la patte « change value » permet de n’effectuer le calcul de la moyenne que si la valeur d’entrée change, et la patte reset remet la moyenne à 0 !... Mais je ne vois pas comment donner de « top » pour qu’il enregistre une valeur, je ne vois pas non plus de limite de temps ni de fréquence d’échantillonnage ce qui me laisse à penser que le bloc enregistre une valeur à chaque cycle (ce qui va fatalement faire gonfler indéfiniment la mémoire si on ne reste jamais… Cela me parait plutôt dangereux et m'étonne fortement)
De plus, cela ne résous pas mon problème de la moyenne sur les 10 dernières minutes car lorsque je reste le bloc la moyenne revient à 0 alors que dans mon cas la moyenne ne dois jamais repasser à 0 car les valeurs les plus récentes doivent écraser les valeurs de plus de dix minutes.
Je sais qu’en SCL/LIST ce genre de calcul est très facile à faire avec des boucles (on charge chaque valeur sur un ligne dans un DB et on fait évoluer l'index à chaque nouvelle mesure), mais je n’y connais rien dans ces langages (c’est pourquoi je me tourne vers des trucs tout fait)!
Merci d'avance de votre aide.
- itasoft
- Mi homme - Mi automate
- Messages : 7037
- Inscription : 20 oct. 2015, 10:15
- Localisation : Lyon
- Contact :
Re: calcul de moyenne (de vitesse de vent) en CONT
slts,
un tableau glissant ne se sature jamais.
ceci dit, je sais pas comment on fait un tableau glissant en "teutons" en Unity ça se fait avec l'instruction EXTRACT sur le même tableau
un tableau glissant ne se sature jamais.
ceci dit, je sais pas comment on fait un tableau glissant en "teutons" en Unity ça se fait avec l'instruction EXTRACT sur le même tableau
Automaticien privé (de tout)
itasoft@free.fr
itasoft@free.fr
Re: calcul de moyenne (de vitesse de vent) en CONT
Tu peux prendre un tableau, mettons de 60 points. Toutes les 10 secondes (ce qui fait 10 minutes), tu incrémentes un index. Tu mets la valeur actuelle dans le tableau à l'index calculé puis tu calcules la moyenne des 60 points, ce qui te retourne la moyenne sur les 10 minutes précédentes.
En siemens, les tableaux c'est un peu sioux, je pense qu'il y a des tutos qui trainent dans le forum.
En siemens, les tableaux c'est un peu sioux, je pense qu'il y a des tutos qui trainent dans le forum.
- itasoft
- Mi homme - Mi automate
- Messages : 7037
- Inscription : 20 oct. 2015, 10:15
- Localisation : Lyon
- Contact :
Re: calcul de moyenne (de vitesse de vent) en CONT
@prof,
ta solution , c'est pas un tableau glissant
---------------
ta solution , c'est pas un tableau glissant
---------------
Automaticien privé (de tout)
itasoft@free.fr
itasoft@free.fr
-
- Mi homme - Mi automate
- Messages : 2076
- Inscription : 21 oct. 2015, 10:00
- Localisation : Ile de France
Re: calcul de moyenne (de vitesse de vent) en CONT
Salut !
une pile fifo donne le même résultat non ?
- Faut la remplir 1 fois complètement et ensuite dépiler avant d'empiler une nouvelle valeur !
- faire la moyenne de la pile en fonction du nombre d'éléments contenus dedans.
une pile fifo donne le même résultat non ?
- Faut la remplir 1 fois complètement et ensuite dépiler avant d'empiler une nouvelle valeur !
- faire la moyenne de la pile en fonction du nombre d'éléments contenus dedans.
Si vous avez compris tout ce que je viens d'écrire, c'est que j'ai dû faire une erreur quelque part !
- itasoft
- Mi homme - Mi automate
- Messages : 7037
- Inscription : 20 oct. 2015, 10:15
- Localisation : Lyon
- Contact :
Re: calcul de moyenne (de vitesse de vent) en CONT
@phil
sur le fifo tu n'as pas accès au contenu pour en faire la somme
sur le fifo tu n'as pas accès au contenu pour en faire la somme
Automaticien privé (de tout)
itasoft@free.fr
itasoft@free.fr
Re: calcul de moyenne (de vitesse de vent) en CONT
bonjour,
en SIEMENS tu ne peut pas faire un BLOCKMOV dans me même bloc avec un décalage d'une valeur.
tu fait un BLOCKMOV dans un bloc tampon et un second BLOCKMOV dans le DB d'origine avec un décalage d'une valeur.
en SIEMENS tu ne peut pas faire un BLOCKMOV dans me même bloc avec un décalage d'une valeur.
tu fait un BLOCKMOV dans un bloc tampon et un second BLOCKMOV dans le DB d'origine avec un décalage d'une valeur.
Créateur de pannes ...
Re: calcul de moyenne (de vitesse de vent) en CONT
Le résultat est le même sauf que j'incrémente mon index à la place de permuter tout le tableau. Ça ne fait qu'une seule opération.
Tu as aussi la librairie oscat qui est libre
http://www.oscat.de/component/jdownload ... 33-en.html
La fonction ft_avg doit faire ce que tu souhaites, jettes un oeil.
- itasoft
- Mi homme - Mi automate
- Messages : 7037
- Inscription : 20 oct. 2015, 10:15
- Localisation : Lyon
- Contact :
Re: calcul de moyenne (de vitesse de vent) en CONT
@prof,
ça n'as rien à voir avec le tableau glissant qui lui te donne (pour mon exemple) les 16 dernières valeurs enregistrées, mais bon , on va pas se prendre la tête avec ça.
disons que la solution à josé doit correspondre, à tester
ça n'as rien à voir avec le tableau glissant qui lui te donne (pour mon exemple) les 16 dernières valeurs enregistrées, mais bon , on va pas se prendre la tête avec ça.
disons que la solution à josé doit correspondre, à tester
Automaticien privé (de tout)
itasoft@free.fr
itasoft@free.fr
Re: calcul de moyenne (de vitesse de vent) en CONT
Bonjour à tous,
Merci pour toutes vos réponses, désolé de n'y répondre que maintenant mais il semble que je n'avais pas activé l'avertissement lorsque j'avais des réponses
Au final ma solution est celle de ProfnovA => j'ai fait un Array of INT et j'ai incrémenté l'index qui pointait dessus.
Encore désolé du retard de ma réponse.
Merci pour toutes vos réponses, désolé de n'y répondre que maintenant mais il semble que je n'avais pas activé l'avertissement lorsque j'avais des réponses
Au final ma solution est celle de ProfnovA => j'ai fait un Array of INT et j'ai incrémenté l'index qui pointait dessus.
Encore désolé du retard de ma réponse.