DFB: Filtre passe bas - Lissage d'une mesure (PL7)

Forum traitant des automates industriels de marque Schneider - Telemecanique
Répondre
Avatar du membre
maxpeigne
Créateur de langage
Créateur de langage
Messages : 732
Enregistré le : 11 oct. 2015, 17:31
Localisation : Nord pas de calais

DFB: Filtre passe bas - Lissage d'une mesure (PL7)

Message par maxpeigne »

Bonjour à tous,

Je viens partager avec vous un DFB de filtre passe bas sous PL7 PRO V4.4.
L'utilité: Lorsque l'on reçoit une mesure parasitée, le DFB nous en ressort une valeur moyenne (cadencé à 100ms) sur les X dernières valeurs (X comprit entre 0 et 100). Et en plus àa fait mise à l'echelle ;)

https://mega.nz/#!245CTBjB!6IaquPUDszP9 ... omlzk527yo
dfb_filtre.png
Entrées:
Init: Réinitialise le DFB.
Entrée: Le capteur.
Long_tab: Longueur sur laquelle vous souhaitez calculer la valeur moyenne.
Alarme_h / Alarme_b: Active 2 bits d'alarme de niveau haut et bas en sortie.
Cpt_max / Cpt_min: Valeur physique du capteur (dans l'exemple un capteur de pression 0-100 bars).
Pts_max / Pts_min: Valeur du capteur recu par l'automate (dans l'exemple c'est un capteur 4-20mA, l'automate recoit un nombre de points comprit entre 6400 et 32000).

Sorties:
Sortie: La valeur filtrée.
Alarm_h / Alarm_b: S'active en fonction de Alarme_h / Alarme_b.
Erreur: Si l'entrée est en dehors de la plage Pts_min et Pts_max.
http://automacile.fr - Site et tutoriels sur l'arduino.
Avatar du membre
ProfnovA
Créateur de langage
Créateur de langage
Messages : 527
Enregistré le : 21 oct. 2015, 08:21

Re: DFB: Filtre passe bas - Lissage d'une mesure (PL7)

Message par ProfnovA »

MERCI, ça coute rien
Modifié en dernier par ProfnovA le 23 oct. 2015, 08:46, modifié 1 fois.
Avatar du membre
maxpeigne
Créateur de langage
Créateur de langage
Messages : 732
Enregistré le : 11 oct. 2015, 17:31
Localisation : Nord pas de calais

Re: DFB: Filtre passe bas - Lissage d'une mesure (PL7)

Message par maxpeigne »

C'est cadeau :D
http://automacile.fr - Site et tutoriels sur l'arduino.
Avatar du membre
chgui
Générateur de blocs fonctions
Générateur de blocs fonctions
Messages : 123
Enregistré le : 20 oct. 2015, 08:05
Localisation : Amiens

Re: DFB: Filtre passe bas - Lissage d'une mesure (PL7)

Message par chgui »

Merci.
Avatar du membre
Noukra
Code sa première boucle
Code sa première boucle
Messages : 17
Enregistré le : 23 oct. 2015, 21:15

Re: DFB: Filtre passe bas - Lissage d'une mesure (PL7)

Message par Noukra »

Bonjour,

Personnellement lorsque une mesure analogique fluctue beaucoup , j’intègre mon filtre dans le DFB de la mesure analogique sous forme d'une simple équation
PV_real := (0.99*PV_real) + (0.01*IN_ANALOG_real); est sa marche très bien.
A chaque cycle de l'automate vous ajouter 1% de votre mesure actuel à 99% de la valeur lus pendant le cycle précédent.

Salutations
Avatar du membre
maxpeigne
Créateur de langage
Créateur de langage
Messages : 732
Enregistré le : 11 oct. 2015, 17:31
Localisation : Nord pas de calais

Re: DFB: Filtre passe bas - Lissage d'une mesure (PL7)

Message par maxpeigne »

Noukra a écrit :PV_real := (0.99*PV_real) + (0.01*IN_ANALOG_real); est sa marche très bien.
C'est marrant que tu en parle, je ne la connaissais pas et je l'est découverte hier après midi en parcourrant l'aide de PL7 (pas toujours très intuitive d'ailleurs).

Ils expliquaient comment fonctionnent les filtres des cartes d'entrées ANA, et ils remplaçaient respectivement ton 0.99 et 0.01 par X et 1-X.
Puis le numéro du filtre correspond à une valeur de X, avec pour mémoire:
  • Filtre = 0 -> X = 0
  • Filtre = 1 -> X = 0.75
.....
  • Filtre = 6 -> X = 0.95
...etc

C'est vrai que c'est efficace, mais ma boite remonte aussi des alarmes et fait la mise à l'échelle (mise à l’échelle dont je ne suis pas très fier, je l'ai faite il y a longtemps... :oops: )
http://automacile.fr - Site et tutoriels sur l'arduino.
Répondre