Calcul cumul information capteur sur une plage de temps

Forum traitant des automates industriels de marque Siemens.
Avatar de l’utilisateur
geronimo
Forcené des structures
Forcené des structures
Messages : 169
Inscription : 20 oct. 2015, 08:46

Calcul cumul information capteur sur une plage de temps

Message par geronimo »

Bonjour,
Je souhaiterais faire un calcul avec un capteur analogique sur une plage de temps donnée.
En gros mon capteur me donne une valeur entre 0 et 10, le rafraichissement de la donnée est aléatoire (entre 100 et 500ms).
Je voudrais additionner la valeur dans une variable et au bout de 60min il faudrait soustraire la toute premiere mesure et additionner la plus récente et enchainer de même avec les mesures suivantes.

Dans le style d'une pile fifo, sauf que là j'ai peur d'avoir un tableau à beaucoup de variables.

Avez vous une idée si une fonction siemens fait déjà ce travail? je suis en Tia portal V16 et avec une CPU S7-1500

Merci
AC23
Forcené des structures
Forcené des structures
Messages : 174
Inscription : 29 mars 2021, 10:59

Re: Calcul cumul information capteur sur une plage de temps

Message par AC23 »

Bonjour,

Pour ma part, je n'ai pas souvenir d'avoir vu une FIFO qui somme automatiquement son contenue (mais je ne connais pas très bien TIA portal).

Pour le coup, je pense que tu sera obliger de crée ta propre FB, avec un tableau interne de 36 000 valeurs (car dans le pire cas tu as 10 valeur pas seconde).

Si j'ai bien compris, tu veux faire une somme en continue des valeurs enregistrées sur les 60 derniers minutes? ou c'est une somme toute les 60 minutes ?

Bien cordialement;
<< La vie d'un homme passe par trois phases : apprentissage, apprentissage et apprentissage. >>
Et j'ai même pas fini la première phase
Avatar de l’utilisateur
geronimo
Forcené des structures
Forcené des structures
Messages : 169
Inscription : 20 oct. 2015, 08:46

Re: Calcul cumul information capteur sur une plage de temps

Message par geronimo »

Merci de votre retour,
J'étais aussi parti dans l'optique de développer mon propre FB, mais bon au cas où un bloc similaire existerait en Siemens.
Oui c'est bien ça, ma variable doit contenir la somme des données sur les dernières 60min.
Avatar de l’utilisateur
sinced
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 1230
Inscription : 13 oct. 2015, 16:56

Re: Calcul cumul information capteur sur une plage de temps

Message par sinced »

AC23 a écrit : 01 déc. 2021, 17:26 Bonjour,

Pour ma part, je n'ai pas souvenir d'avoir vu une FIFO qui somme automatiquement son contenue (mais je ne connais pas très bien TIA portal).

Pour le coup, je pense que tu sera obliger de crée ta propre FB, avec un tableau interne de 36 000 valeurs (car dans le pire cas tu as 10 valeur pas seconde).

Si j'ai bien compris, tu veux faire une somme en continue des valeurs enregistrées sur les 60 derniers minutes? ou c'est une somme toute les 60 minutes ?

Bien cordialement;
36000 valeurs ca va pomper la memoire :D
steph68
Codeur fou
Codeur fou
Messages : 268
Inscription : 21 oct. 2015, 08:23

Re: Calcul cumul information capteur sur une plage de temps

Message par steph68 »

Salut,

C'est fait en 3 lignes de code ...
Voici un exemple pour une moyenne glissante :
moyenne_glissante.jpg
Au lieu d'avoir "Moyenne" en sortie, tu mets "Somme" à la place (que tu supprimes de "Static")
Tu supprimes aussi la ligne où est faite la division

Plus qu'à adapter la constante "TAILLE" a ton besoin...

@+
steph68
Codeur fou
Codeur fou
Messages : 268
Inscription : 21 oct. 2015, 08:23

Re: Calcul cumul information capteur sur une plage de temps

Message par steph68 »

Combien de fois as-tu besoin d'utiliser cette somme par heure ? Peut-être pas 36000 fois ...
Fais un premier cumul chaque 10 secondes par exemple, tu n'auras que 360 valeurs à stocker ; au prix d'une actualisation plus lente de ta somme

Quoique 36000 valeurs de nos jours ...

@+
Avatar de l’utilisateur
skip74
Créateur de langage
Créateur de langage
Messages : 640
Inscription : 13 oct. 2015, 06:34

Re: Calcul cumul information capteur sur une plage de temps

Message par skip74 »

Salut

En complément,. La problématique étant les 36000 points de mesures.... Pour moi ça n'a aucun intérêt de faire une moyenne sur une période d'une heure avec un échantillonnage de 100ms....
Perso je ferais une moyenne par ex sur 100points (10 secondes) puis je pousserais ça dans le calcul de moyenne glissante....


On perdra un tout petit peu de précision mais surtout on divisera par 100 la taille mémoire consommée (un peu du genre format JPEG/bitmap)

A+


Édit: Steph est passé avant lol
AC23
Forcené des structures
Forcené des structures
Messages : 174
Inscription : 29 mars 2021, 10:59

Re: Calcul cumul information capteur sur une plage de temps

Message par AC23 »

steph68 a écrit : 01 déc. 2021, 23:16 Salut,

C'est fait en 3 lignes de code ...
Voici un exemple pour une moyenne glissante :

moyenne_glissante.jpg

Au lieu d'avoir "Moyenne" en sortie, tu mets "Somme" à la place (que tu supprimes de "Static")
Tu supprimes aussi la ligne où est faite la division

Plus qu'à adapter la constante "TAILLE" a ton besoin...

@+
Je pense que cette solution est viable dans le cas où le nombre d'échantillons par 60 min est fix et connue par avance. En effet, le coter aléatoire de l'échantillonnage :
geronimo a écrit : 01 déc. 2021, 16:44 ...
En gros mon capteur me donne une valeur entre 0 et 10, le rafraichissement de la donnée est aléatoire (entre 100 et 500ms).
...
Ne permet pas de fixer par avance la fenêtre d'addition (la somme voulue n'est pas forcément la somme totale du tableau).

Donc en complément à la solution donnée j'aurais mis deux pointeurs, le premier pour indiquer le point de départ d'addition (ce dernier s'incrémente tous les 60 min) et le deuxième pointeur pour indiquer la position du dernier échantillon. Et avec le modulo la dernière valeur en entrée finira par écraser les toutes premiers valeurs reçu et obsolètes.

Mais malheureusement, même avec cette solution tu ne peux pas échapper aux 36 000 valeurs.

Bien cordialement;
<< La vie d'un homme passe par trois phases : apprentissage, apprentissage et apprentissage. >>
Et j'ai même pas fini la première phase
NicoLasB
Asservi son premier moteur
Asservi son premier moteur
Messages : 27
Inscription : 28 janv. 2020, 14:42

Re: Calcul cumul information capteur sur une plage de temps

Message par NicoLasB »

steph68 a écrit : 01 déc. 2021, 23:16 Salut,

C'est fait en 3 lignes de code ...
Voici un exemple pour une moyenne glissante :

moyenne_glissante.jpg

Au lieu d'avoir "Moyenne" en sortie, tu mets "Somme" à la place (que tu supprimes de "Static")
Tu supprimes aussi la ligne où est faite la division

Plus qu'à adapter la constante "TAILLE" a ton besoin...

@+
Bonjour
Merci du code, je cherchais un fonction de moyenne glissante.
J'ai juste du adapter la dernière ligne pour que le calcul soit bon
#Moyenne := #Somme /( #TAILLE + 1 );
steph68
Codeur fou
Codeur fou
Messages : 268
Inscription : 21 oct. 2015, 08:23

Re: Calcul cumul information capteur sur une plage de temps

Message par steph68 »

NicoLasB a écrit : 30 mars 2022, 16:05 J'ai juste du adapter la dernière ligne pour que le calcul soit bon
#Moyenne := #Somme /( #TAILLE + 1 );
Le code que j'ai fourni est juste.
Je ne vois pas pourquoi tu fais le +1 ... :roll:

@+
Répondre