le 02-15-2017 08:26 AM
Bonjour à tous
J'ai réalisé un code me permettant d'enclencher et d'éteindre un relais à une certaine heure. Je voudrais que ces actions s'effectuent journalièrement indépendamment de la date du jour (c'est à dire tous les jours). Cependant malgré avoir sélectionné "date unused" dans les propriétés de mes time stamps, cela fonctionne que pour une date précise et pas tous les jours. Je vous joins mon code.
Merci d'avance de vos réponses et de votre aide.
PS : Une autre de mes questions concernant mon code est la fermeture de mes entrés/sorties analogiques et digitales. Je ne sais pas ce qu'il y à de mieux à faire lorsqu'il faut en fermer plusieurs.
Steven Viollet
Résolu ! Accéder à la solution.
le 02-15-2017 10:10 AM
Le "date unused" signifie seulement que la date n'est pas affiché.
Le controle/indicateur timestamp te donne une visualisation d'une référence temporelle mais sous le tapis il y a en fait un DBL.
Ce DBL exprime le temps écoulé en seconde depuis le 1 janvier 1904 0h0m0s.000
Le 0 DBL donne un timestamp au 1 janvier 1904 0h0m0s.000 et ensuite tu incrémentes en seconde
Le 1 en DBL > 1 janvier 1904 0h0m1s.000
Le 3600 en DBL > 1 janvier 1904 1h0m0s.000
Dans ton code, tu "n'utilise pas la date" mais les valeurs DBL de tes timestamps (H_on et H_off) sont des valeurs fixes, c'est pour ça que ça ne fonctionne que le jour où tu lances ton code.
Pour faire fonctionner ton code comme tu souhaites, il faut que décomposes tes timestamps pour en extraire juste heure:minute:seconde avant de faire ta comparaison (le "in range").
Regardes le VI ci-joint
We have two ears and one mouth so that we can listen twice as much as we speak.
Epictetus
le 02-15-2017 04:32 PM
Merci beaucoup pour ta réponse super détailée et pour le code !
J'avais commencé avec cette méthode mais comment procéder pour enclencher le relais de 22h00 à 8h00 par exemple ?
le 02-16-2017 12:30 AM
plusieurs méthodes :
- ne faire un changement d'état de ta commande que au passage de 22h et au passage de 8h
- avec la méthode dans le VI que j'ai envoyé, mettre 22h00 et pour 8h00, ajouter 86400 (c'est le nombre de seconde par jour)
We have two ears and one mouth so that we can listen twice as much as we speak.
Epictetus
le 02-16-2017 12:31 AM
oups... je viens de me rendre compte que la deuxième proposition n'est pas bonne, ça va pas marcher.
We have two ears and one mouth so that we can listen twice as much as we speak.
Epictetus
le 02-16-2017 12:50 AM
voilà un VI qui illustre la méthode 1, les commentaires sont dans le VI
n'hésite pas si tu as des questions
We have two ears and one mouth so that we can listen twice as much as we speak.
Epictetus
le 02-20-2017 02:09 AM
Super ! Merci beaucoup pour ta réponse détailler et le Vi. Je vais regarder et tester ca.
Steven