Bonjour,
J'ai un controleur M241 sur lequel est raccordé un compteur d'eau sur une DI, 1 pulse tous les 100 litres. J'ai programmé un totalisateur qui me permet de comptabiliser le volume total en mètres cubes et stocké la valeur dans une variable.
Je cherche comment enregistrer dans un tableau le volume journalier, je voudrais un tableau qui me permette d'enregistrer les 30 dernières valeurs sous forme d'un buffer tournant (la valeur la plus ancienne est écrasée par la nouvelle).
L'enregistrement se ferait à la même heure chaque jour (23:59), ainsi le tableau contiendrait la date et le volume journalier des 30 derniers jours que je pourrais afficher sur une page du HMI.
Pouvez-vous me donner des pistes svp ?
Faut-il utiliser la bibliotheque sysTimeRtc et comparer l'heure actuelle pour déclencher l'enregistrement de la valeur dans le tableau ou y a t'il plus simple ?
Enregistrer un volume journalier
- itasoft
- Mi homme - Mi automate

- Messages : 7807
- Enregistré le : 20 oct. 2015, 10:15
- Localisation : Lyon
- Contact :
Re: Enregistrer un volume journalier
slts,
en principe on utilise un registre FIFO,
ceci dit, pour l'afficher sur un IHM il faut avoir accès au contenu du registre, c'est pas obligé que c'est possible sur le bloc FIFO du M241, à voir
auquel cas il faut se palucher un registre FIFO glissant à la mano.
J'utilise pas l'usine à gaz nommé SoMachine V4.5, ci dessous en exemple en PL7-PRO à traduire en SoMachine,
chercher dans l'aide de SoMachine "décalages sur tableaux de mots"
--------clic dessus pour zoom---- En fait le bloc registre FIFO ne permet pas l’accès au contenu du registre pour l’afficher sur un IHM
Il faut programmer un registre à glissement, ça revient à décaler d’une case vers le bas tous les mots du tableau et ranger la nouvelle valeur en haut du tableau, ce qui fait que le tableau contient toujours les 16 dernières valeurs (pour un tableau de 16 mots)
en principe on utilise un registre FIFO,
ceci dit, pour l'afficher sur un IHM il faut avoir accès au contenu du registre, c'est pas obligé que c'est possible sur le bloc FIFO du M241, à voir
auquel cas il faut se palucher un registre FIFO glissant à la mano.
J'utilise pas l'usine à gaz nommé SoMachine V4.5, ci dessous en exemple en PL7-PRO à traduire en SoMachine,
chercher dans l'aide de SoMachine "décalages sur tableaux de mots"
--------clic dessus pour zoom---- En fait le bloc registre FIFO ne permet pas l’accès au contenu du registre pour l’afficher sur un IHM
Il faut programmer un registre à glissement, ça revient à décaler d’une case vers le bas tous les mots du tableau et ranger la nouvelle valeur en haut du tableau, ce qui fait que le tableau contient toujours les 16 dernières valeurs (pour un tableau de 16 mots)
Modifié en dernier par itasoft le 04 mai 2020, 02:18, modifié 1 fois.
Automaticien privé (de tout)
itasoft@free.fr
itasoft@free.fr
-
Squale
- Générateur de blocs fonctions

- Messages : 105
- Enregistré le : 05 sept. 2018, 06:17
- Localisation : TAHITI
Re: Enregistrer un volume journalier
Merci itasoft, je n'ai jamais utilisé de registre FIFO je vais creuser pour voir comment ca marche.
Je confirme pour somachine, c'est bien une usine à gaz...
Je confirme pour somachine, c'est bien une usine à gaz...
-
Squale
- Générateur de blocs fonctions

- Messages : 105
- Enregistré le : 05 sept. 2018, 06:17
- Localisation : TAHITI
Re: Enregistrer un volume journalier
Slts,
je n'ai rien trouvé dans l'aide de somachine sur les registres glissants et pas de bloc FIFO dans la bibliotheque (sauf dans somachine basic...)
Est ce que quelqu'un aurait un bout de programme à me partager pour que je comprenne le fonctionnement ?
Merci.
je n'ai rien trouvé dans l'aide de somachine sur les registres glissants et pas de bloc FIFO dans la bibliotheque (sauf dans somachine basic...)
Est ce que quelqu'un aurait un bout de programme à me partager pour que je comprenne le fonctionnement ?
Merci.
Re: Enregistrer un volume journalier
Bonjour,
Et pourquoi pas un enregistrement de courbes sur ton afficheur ? le volume remis a zéro tous les jours a heure fixe ?
Et pourquoi pas un enregistrement de courbes sur ton afficheur ? le volume remis a zéro tous les jours a heure fixe ?
Créateur de pannes ...
-
Pierro
- Première mise en service

- Messages : 61
- Enregistré le : 17 mars 2020, 16:58
- Localisation : 127.0.0.1
Re: Enregistrer un volume journalier
Salut,
Si somachine permet de programmer en ST, tu peux faire un truc du genre:
"#i" := 0;
IF "Front montant d’exécution a minuit" THEN
FOR #i := "Début de ton Array" TO"Fin de ton Array" by 1 DO
Archive [("Fin de ton Array -#i)] := Archive [(("Fin de ton Array -#i)-1)];
END_FOR;
" Archive ["Debut de ton Array] := "Variable a archiver"
END_IF
A+
Si somachine permet de programmer en ST, tu peux faire un truc du genre:
"#i" := 0;
IF "Front montant d’exécution a minuit" THEN
FOR #i := "Début de ton Array" TO"Fin de ton Array" by 1 DO
Archive [("Fin de ton Array -#i)] := Archive [(("Fin de ton Array -#i)-1)];
END_FOR;
" Archive ["Debut de ton Array] := "Variable a archiver"
END_IF
A+
-
philou77
- Mi homme - Mi automate

- Messages : 2142
- Enregistré le : 21 oct. 2015, 10:00
- Localisation : Ile de France
Re: Enregistrer un volume journalier
Salut
L’écriture d’itasoft marche sous somachine basic..
L’écriture d’itasoft marche sous somachine basic..
Si vous avez compris tout ce que je viens d'écrire, c'est que j'ai dû faire une erreur quelque part ! 
