Page 1 sur 1

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

Posté : 23 oct. 2015, 08:04
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.

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

Posté : 23 oct. 2015, 08:39
par ProfnovA
MERCI, ça coute rien

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

Posté : 23 oct. 2015, 08:42
par maxpeigne
C'est cadeau :D

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

Posté : 23 oct. 2015, 11:36
par chgui
Merci.

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

Posté : 23 oct. 2015, 22:10
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

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

Posté : 24 oct. 2015, 07:33
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: )