Calculer le nombre d'impulsion sur entrée TOR

Forum traitant des automates industriels de marque Schneider - Telemecanique
Répondre
topaze67
Première mise en service
Première mise en service
Messages : 71
Enregistré le : 21 oct. 2015, 13:45
Localisation : Alsace

Calculer le nombre d'impulsion sur entrée TOR

Message par topaze67 »

Bonjour,

J'ai un petit souci, disons que je ne vois pas comment programmer la chose,

j'ai une entrée TOR et je dois contrôler le nombre d'impulsion par minute (environ 40 à 50). avant de déclencher une alarme, la première minute pas de souci, j'additionne le nombre d'impulsion durant 1 minute, par contre après, je ne sais pas comment faire, je ne vais pas remettre ma tempo à zéro est recommencer, je m'explique

de 0 à 1 minute j'ai 40 impulsion (les 40 premiers seconde j'ai eu par exemple 30 impulsion et le 20 secondes suivant j'ai eu 10 impulsion) donc je suis Ok sur une minute
par contre de la seconde 40 à la seconde 100, je voudrais être certain que j'ai bien le nombre d'impulsions sur 1 minutes, en clair je ne veux pas seulement contrôler de 0 à 59 secondes puis de 60 à 119 secondes.

si vous avez une idée merci d'avance
Avatar du membre
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7162
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: Calculer le nombre d'impulsion sur entrée TOR

Message par itasoft »

slts,
Slts,
Disons que pour avoir le nombre d’impulsion par minutes on peut faire toutes les minutes
Nombre_impulsions_minute = Compteur-Compteur_à_N-1
EX :

cliquer dessus pour agrandir
compteur.JPG
Automaticien privé (de tout)
itasoft@free.fr
topaze67
Première mise en service
Première mise en service
Messages : 71
Enregistré le : 21 oct. 2015, 13:45
Localisation : Alsace

Re: Calculer le nombre d'impulsion sur entrée TOR

Message par topaze67 »

Salut,


Merci pour ton aide, j'ai finalement opté pour une autre solution,

je compte deux impulsions, et je regarde le temps, le temps qui est en milliseconde. Je mémorise ce temps dans une variable.
Ensuite sur un front montant,
je le transforme en real, je divise ce temps par 2 qui me donne le résultat pour une impulsion,

ensuite 60 0000/par le real pour une impulsion, et la j'ai le nombre d'impulsion sur 60 secondes, cela me permet de calculer le temps en continuer quasiment

Merci de ton aide, si lors de la mise en service, cela ne convient pas, j’essayais ta méthode
Avatar du membre
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7162
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: Calculer le nombre d'impulsion sur entrée TOR

Message par itasoft »

slts,
pourquoi faire simple quand on peux faire compliqué,
LOL
Automaticien privé (de tout)
itasoft@free.fr
Avatar du membre
foley
Code sa première boucle
Code sa première boucle
Messages : 14
Enregistré le : 03 mai 2016, 19:12
Localisation : Lot

Re: Calculer le nombre d'impulsion sur entrée TOR

Message par foley »

Salut,
je penses avoir compris pourquoi il a fait si compliquer, il avait besoin d'une réactivité supérieure et de compter sur une minute mais en continu et non sur LA minute. Enfin, je penses pas être bien plus clair, j'aurais essayé :D
“Nos automatismes, nos grilles de normalisation sont tels que chaque matin qui se lève est une leçon de courage.”
Avatar du membre
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7162
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: Calculer le nombre d'impulsion sur entrée TOR

Message par itasoft »

slts,
j'ai pas compris exactement quand déclencher une alarme, sur trop d'impulsions ou pas assez ??
Automaticien privé (de tout)
itasoft@free.fr
philou77
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 2085
Enregistré le : 21 oct. 2015, 10:00
Localisation : Ile de France

Re: Calculer le nombre d'impulsion sur entrée TOR

Message par philou77 »

Salut,

Sans vouloir flooder, il y a pas une fonction fréquence sur entrée tor ?
c'est simple et ça répondrai à sa demande non ?
Si vous avez compris tout ce que je viens d'écrire, c'est que j'ai dû faire une erreur quelque part ! :D
polishglider
Première mise en service
Première mise en service
Messages : 68
Enregistré le : 19 mai 2016, 09:51
Localisation : 40

Re: Calculer le nombre d'impulsion sur entrée TOR

Message par polishglider »

Salut

Ou faire une pile FIFO d'une longueur 60, alimentée toutes les secondes avec le nombre d'impulsions ... et tu calcules le nombre d'impulsions total indiqué dans ta pile.

J'ai utilisé ce système pour avoir le nombre de démarrage de 2 pompes sur heure glissante et ca fonctionne nickel.
Rockwell Partner
eWon Certified Intégrator
Avatar du membre
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7162
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: Calculer le nombre d'impulsion sur entrée TOR

Message par itasoft »

slts,
oui le FIFO c'est pas mal,
ça donnerait un truc dans ce genre :

cliquer dessus pour agrandir l'image
sum.JPG
Modifié en dernier par itasoft le 30 juin 2016, 04:56, modifié 1 fois.
Automaticien privé (de tout)
itasoft@free.fr
kosbor
Aguerri de l'automation
Aguerri de l'automation
Messages : 83
Enregistré le : 23 oct. 2015, 18:29

Re: Calculer le nombre d'impulsion sur entrée TOR

Message par kosbor »

bsr,

J'ai testé avec un simple buffer de timestamp (heure des impuls tor)
ça fonctionne si j'ai bien compris ce que tu veux avec un delta t de 60s

-testé avec une frequence de 950ms et un nombre de 60 impuls le defaut viens bien!
-testé avec une frequence de 1050ms et un nombre de 60 impuls le defaut viens pas!
fait en boucle asynchrone

script

Code : Tout sélectionner

HeureActuelle:=ARINT_TO_DT (ArrayOfTimeStampINT);
ImplusionTOR :=TON_Trigger.Q;
 
TON_Trigger (IN:= Not TON_Trigger.Q, PT:=t#950ms) ;

IF ImplusionTOR THEN 
  i:=MOD (i, 60);
  ArrayOfTimeStamp[i]:=ARINT_TO_DT (ArrayOfTimeStampINT);
  INC(i);
END_IF;


j:=MOD (j, 60);
IF j=0 THEN
  ImplusionTORCounter:=0;
END_IF;

IF (ArrayOfTimeStamp[j])>(SUB_DT_TIME(HeureActuelle, t#60s)) THEN
  INC(ImplusionTORCounter);
  IF ImplusionTORCounter>=60 THEN
    defaut:=true  ;;(*Setter le défaut ici*)
  END_IF;
END_IF;

INC(j);
variable

Code : Tout sélectionner

ArrayOfTimeStamp	%Mw4500	ARRAY[0..60] OF DT		
i		INT		
ArrayOfTimeStampINT	%SW50	ARRAY[0..3] OF INT		
ImplusionTOR		BOOL		
j		INT		
ArrTimeFormat		TIME		
HeureActuelle		DT		
ImplusionTORCounter		INT		
defaut		BOOL		
TON_8		TON		
TON_9		TON		
TON_Trigger		TON	
Répondre