Page 1 sur 3

ajouter X jours à une date

Posté : 05 mars 2021, 16:05
par JeremAuto07
Bonjour !

Je vous expose le process:
Pour des besoins de maintenances d'un système de filtration d'eau il faut que tout les X temps j'affiche un message pour que les opérateurs changes les filtre du système.

IHM: Image

La première date correspond à la dernière maintenance effectué (3INT)
La seconde date correspond à la date que l'opérateur va rentrer il s'agit du jour mois et année de la maintenance effectuée (3INT)
La dernière date correspond à la fréquence de la maintenance "touts les x jour = maintenance) (1INT)

La programme consiste a récupérer la date de la dernière maintenance puis à y ajouter le nombre de jour souhaité et comparer cette nouvelle date à la date local. Si les deux dates sont égales alors je signalise qu'il faut faire la maintenance.
Et malheureusement je ne trouve pas de moyen d'additionner une date comportant Jour / Mois / années a un jour.

Si quelqu'un peut m'aider ....

Re: ajouter X jours à une date

Posté : 05 mars 2021, 16:37
par Bruce33
JeremAuto07 a écrit : 05 mars 2021, 16:05 Et malheureusement je ne trouve pas de moyen d'additionner une date comportant Jour / Mois / années a un jour.
Où comptez-vous faire ce calcul ? Dans l'afficheur ou dans un automate ?
Pouvez-vous préciser le matériel / le logiciel ?

Re: ajouter X jours à une date

Posté : 05 mars 2021, 16:46
par JeremAuto07
Ha lala je suis bête.....

Je compte réaliser le programme sous TIA V16 avec une CPU 1214C (S7-1200)

Voici ce que j'avais imaginer mais cela ne fonctionne pas..

Image

Image

Re: ajouter X jours à une date

Posté : 05 mars 2021, 18:07
par philou77
Salut !

1 - quoi qui fonctionne pas ?
2 - le format DATETIME est en BCD.. (as-tu converti tes années mois et jours de int vers BCD ?)
3 - est tu sûr que la comparaison ne compare QUE la DATE (et pas les heures avec ) ?
4 - Le format Time est en ms.... donc 12 jours = (12 j * 86400 Secondes * 1000 ms)
alors pas besoin de TIMEofDAY.... (qui te converti un INT en heure/min/sec d'ailleurs)
autre chose, le max est de 24 jours et des brouettes pour le Time

Re: ajouter X jours à une date

Posté : 05 mars 2021, 18:30
par JeremAuto07
Le problème c'est que j'ai parfois des nombre ne jours allants jusqu'à 180 et le système ne fonctionne pas.

Admettons que la dernière maintenance est été effectuée le 02/02/2021 que la prochaine maintenance doit être réalisée dans 180J soit le 01/08/2021.
Cette nouvelle date est comparée en permanence à la date actuelle et quand elles sont égales il faut faire la maintenance.

Le gros souci c'est que je n'arrive pas a rajouter +180J sur une date au format DTL

Re: ajouter X jours à une date

Posté : 05 mars 2021, 19:40
par philou77
Le max étant 24 jours.... 180 c'est pas possible....
sauf si tu décomposes... par bouts de 24jours puis le reste (pour 180 jour, ça fait 8 boucles au total)
ou bien tu décomptes 1 jour, chaque jour à minuit..mais tu contournes le pb

Re: ajouter X jours à une date

Posté : 06 mars 2021, 06:51
par Peio
Bonjour,

Regardes dans les LGF (Library Global Function) de Siemens

Peut être le FB LGF_TimerSwitch te conviendrait !!!

Cordialement

Re: ajouter X jours à une date

Posté : 06 mars 2021, 09:01
par JC87
Bonjour,

Dans la librairie OSCAT qu'on trouve facilement sur le Net il y a une fonction qui s'appelle "DAY_OF_YEAR" qui te donne le numéro du jour qu'on appelle aussi quantième et ce à partir d'une date. C'est pour STEP7 mais comme ces blocs sont écrit en SCL ça doit pouvoir s'adapter sans trop de problème en TIA et à partir de là tu pourra calculer facilement un intervalle de jours.

Autre solution que j'ai déjà utilisé avec un afficheur MP277 et Wincc Flexible c'est d'utiliser un script vbs car dans ce langage il y a aussi une fonction toute faite qui calcule le quantième mais là c'est depuis le 1er janvier 1900 comme le fait Excel ou autres outils Microsoft. Il y a donc aussi une adaptation à faire mais là on peut faire le job directement dans l'afficheur. A voir si sur les afficheurs plus récents cette fonction existe encore.

JC

Re: ajouter X jours à une date

Posté : 06 mars 2021, 11:48
par itasoft
@JC
Si ya le VB c'est la fonction DateAdd( IntervalType, Number, FirstDate) plus simple tu meurs, lol
ps:
pour une fois les "teutons" sont plus inspirés avec le VB plutôt que le Vijeo-designer avec le JAVA que personne ne connait

Re: ajouter X jours à une date

Posté : 06 mars 2021, 14:00
par JeremAuto07
Merci pour vos réponses !

Mon IHM est un proface LT3300s (pas tout jeune).
Je suis désolé mais je n'ai pas le logiciel step 7 et étant novice dans le domaine je suis un peux submergé par tout ça