bloc fonction "integrator" ecotruxure control expert

Forum traitant des automates industriels de marque Schneider - Telemecanique
parfeu63
Code son premier grafcet
Code son premier grafcet
Messages : 36
Enregistré le : 22 janv. 2023, 21:26

bloc fonction "integrator" ecotruxure control expert

Message par parfeu63 »

Bonjour a tous,
je suis en train de programmer sur Unity des blocs "integrator1",
en appliquant une variable (ex: Puissance apparente) Real sur l'entrée "X" du bloc, avec un gain de 1/3600 j'intègre bien ma Puissance Apparente et j'obtiens bien l'énergie consommée en sortie "Y" du bloc, j'ai conditionnée par l'entrée "HALT" l'intégration par le retour de marche du moteur (c'est un exemple).
donc j'ai un compteur d'énergie !! jusque là ça va ! (comme dirai le gars qui chute du 15-ème étage, quand il est au 14-ème !!!!).
mon soucis est que la valeur que je récupère sur la sortie "Y" est un REAL et il se bloque a 16384 ???? :o
ma limite haute "YMAX" est a 1500000000.0 donc ce n'est pas elle qui bloque!
je ne comprends pas pourquoi car la valeur maximal d'un REAL est bien plus haute!!
Auriez vous une idée sur ce que je fais mal :?:
voici une capture d'écran c'est plus parlant :roll:
ex integrator1.JPG
Avatar du membre
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7806
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: bloc fonction "integrator" ecotruxure control expert

Message par itasoft »

c'est quoi les valeurs physiques de X et Y ?
c'est des Kg des litres des M3 ou autres ?
Automaticien privé (de tout)
itasoft@free.fr
Avatar du membre
Bruce33
Dieu du process
Dieu du process
Messages : 931
Enregistré le : 28 oct. 2015, 06:54
Localisation : Pas-de-Calais

Re: bloc fonction "integrator" ecotruxure control expert

Message par Bruce33 »

Bonjour,

Je pense à un problème de précision du calcul avec les nombres à virgule flottante (REAL).
Une variable REAL peut prendre des valeurs très grandes ou très petites mais elle a une précision d'environ 8 chiffres significatifs. Si vous additionnez une toute petite valeur à un grande valeur alors la petite valeur risque d'être insignifiante. Par exemple, dans l'automate avec des variables REAL, faites le calcul 16384.0 + 0.001... vous obtiendrez 16384.0 !
C'est pourquoi il faut éviter de calculer un cumul avec une variable REAL mais plutôt avec une ou plusieurs variables DINT (ou UDINT). Ce qui n'empêche pas d'afficher ensuite la valeur avec une variable REAL s'il y a besoin d'une mise à l'échelle.

Je pense que pour un simple compteur vous pouvez éviter d'utiliser un bloc INTEGRATOR1 qui fait d'ailleurs partie de la bibliothèque obsolète.
Modifié en dernier par Bruce33 le 06 nov. 2024, 07:09, modifié 1 fois.
Avatar du membre
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7806
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: bloc fonction "integrator" ecotruxure control expert

Message par itasoft »

moi, j'ai encore pas trouvé pour quelles raisons je devrais utiliser des REAL
Automaticien privé (de tout)
itasoft@free.fr
parfeu63
Code son premier grafcet
Code son premier grafcet
Messages : 36
Enregistré le : 22 janv. 2023, 21:26

Re: bloc fonction "integrator" ecotruxure control expert

Message par parfeu63 »

Bonjour,
tout d'abord merci de m'avoir lu et je vais répondre a vos interrogations:
itasoft a écrit : 05 nov. 2024, 20:42 c'est quoi les valeurs physiques de X et Y ?
c'est des Kg des litres des M3 ou autres ?

en X on a des VA (Puissance apparente) et en Y on a une énergie des VAh

de plus
itasoft a écrit : 06 nov. 2024, 02:31 moi, j'ai encore pas trouvé pour quelles raisons je devrais utiliser des REAL
en fait j'utilise le bloc "Integrator" ou "integrator1" et c'est sa configuration initiale qui m'oblige a prendre des variables de type REAL,
il faut savoir que l'intégration dans le temps d'une valeur est justement ce qu'il faut pour obtenir un compteur de type énergie, ces blocs sont parfait pour exécuter ceci.
Bruce33 a écrit : 06 nov. 2024, 00:42 Bonjour,

Je pense à un problème de précision du calcul avec les nombres à virgule flottante (REAL).
Une variable REAL peut prendre des valeurs très grandes ou très petites mais elle a une précision d'environ 8 chiffres significatifs. Si vous additionnez une toute petite valeur à un grande valeur alors la petite valeur risque d'être insignifiante. Par exemple, dans l'automate avec des variables REAL, faites le calcul 16384.0 + 0.001... vous obtiendrez 16384.0 !
C'est pourquoi il faut éviter de calculer un cumul avec une variable REAL mais plutôt avec une ou plusieurs variables DINT (ou UDINT). Ce qui n'empêche pas d'afficher ensuite la valeur avec une variable REAL s'il y a besoin d'une mise à l'échelle.

Je pense que pour un simple compteur vous pouvez éviter d'utiliser un bloc INTEGRATOR1 qui fait d'ailleurs partie de la bibliothèque obsolète.
c'est justement la partie intégration qui est très intéressante, c'est pour ceci que je l'utilise
je suis partant si vous avez une solution pour eviter d'utiliser ce bloc :roll:
Avatar du membre
Bruce33
Dieu du process
Dieu du process
Messages : 931
Enregistré le : 28 oct. 2015, 06:54
Localisation : Pas-de-Calais

Re: bloc fonction "integrator" ecotruxure control expert

Message par Bruce33 »

Le calcul d'une intégrale par le temps avec un automate est assez simple.
Si vous regardez l'aide concernant le bloc fonction INTEGRATOR1 vous y verrez la formule :
Y = Yold + GAIN * dt * (X + Xold)/2
Vous avez peut-être eu un cours de mathématiques au lycée qui vous a expliqué la calcul d'intégrale avec la méthode de Riemann...

Comme l'énergie est une intégrale de la puissance par le temps,
vous pouvez par exemple ajouter la mesure en VA à l'intégrale toutes les secondes ce qui donne une valeur en VAs.
En divisant ce résultat par 3600 vous aurez la valeur en VAh.
parfeu63
Code son premier grafcet
Code son premier grafcet
Messages : 36
Enregistré le : 22 janv. 2023, 21:26

Re: bloc fonction "integrator" ecotruxure control expert

Message par parfeu63 »

Bruce33 a écrit : 06 nov. 2024, 10:15 Le calcul d'une intégrale par le temps avec un automate est assez simple.
Si vous regardez l'aide concernant le bloc fonction INTEGRATOR1 vous y verrez la formule :
Y = Yold + GAIN * dt * (X + Xold)/2
Vous avez peut-être eu un cours de mathématiques au lycée qui vous a expliqué la calcul d'intégrale avec la méthode de Riemann...

Comme l'énergie est une intégrale de la puissance par le temps,
vous pouvez par exemple ajouter la mesure en VA à l'intégrale toutes les secondes ce qui donne une valeur en VAs.
En divisant ce résultat par 3600 vous aurez la valeur en VAh.
Merci, je comprends le principe mais je dispose de la version Small de Control Expert et je ne trouve pas le bloc "Analysis" qui me permettrai de faire des calculs d'intégrale, de toute façon cela reviendrai au même que d'utiliser le bloc "Integrator1"
j'ai trouvé une solution pas trop élégante,(je l'avoue) :(
En gardant le bloc "Integrator1", j'ai fixé une limite haute a 10000.0 (10KVa), arrivé a cette limite je remet a zéro mon bloc "Integrator1" et j'incrémente mon compteur d'énergie par pas de 10000.0 en plus de la valeur courante de la sortie du bloc.
de ce fait je ne vais jamais au dessus de 10000.0

je me demande si dans cette formule on a des valeurs trop élevées en X on ne dépasse pas les limites de calcul du bloc ? :roll:
parfeu63
Code son premier grafcet
Code son premier grafcet
Messages : 36
Enregistré le : 22 janv. 2023, 21:26

Re: bloc fonction "integrator" ecotruxure control expert

Message par parfeu63 »

non en fait ce n'est pas la solution
car j'ai des blocs qui bloque a 4096, en dessous de mes 10000.0 KVa , d'autre à 16384,
je ne comprends pas vraiment pourquoi :oops:
l'utilisation des blocs "Integrator1" ou "Integ" me laisse perplexe :evil:
parfeu63
Code son premier grafcet
Code son premier grafcet
Messages : 36
Enregistré le : 22 janv. 2023, 21:26

Re: bloc fonction "integrator" ecotruxure control expert

Message par parfeu63 »

Illumination :P
mes blocs sont toujours en "Calcul" en effet l'entrée "EN" est raccrochée en permanence,
de ce fait je fais un calcul à chaque cycle :o
mon cycle est de 13ms en mode cyclique.
ceci me semble pas trop bien car je n'ai pas besoin de faire autant de calcul, du coup j'ai conditionné l'activation du bloc toute les secondes et pendant un cycle seulement !
Apparemment je ne bloque plus
vous en pensez quoi de cette idée !
merci :?:
tuscaonline
Forcené des structures
Forcené des structures
Messages : 178
Enregistré le : 04 nov. 2015, 04:25

Re: bloc fonction "integrator" ecotruxure control expert

Message par tuscaonline »

Je demanderais des vrais compteurs électrique en amont de la pompe.
Au moins tu pourras dire regardé j'ai la meme chose que sur le compteur et personne n'y trouvera rien à redire.
La tu vas devoir montrer que ta méthode marche et avec toute les erreurs (mesure intégration etc..) qu'ils doit y avoir
Répondre