Utiliser les intervalles de temps pour une autre utilisation que de stocker des données : décisions et contrôle

par Janet Albers | Mis à jour le : 12/30/2015 | Commentaires : 2

Les thèmes principaux du Blog


Recherche sur le Blog


Langages du blog

English
Français (French)


Abonnez-vous au Blog

Recevez un courriel lorsqu'un nouvel article est posté. Choisissez les sujets qui vous intéressent le plus.


Entrez votre adresse courriel :



Suggérer un article

Y a-t-il un sujet que vous souhaiteriez nous voir aborder ? Laissez-nous un message.

Leave this field empty

Clock with modem on/off indicators

Nous savons tous que les centrales de mesure de Campbell Scientific sont vraiment tout à fait adaptées pour prendre des mesures et stocker des données. Mais saviez-vous qu'elles peuvent aussi prendre des décisions et contrôler d'autres appareils ? Souvent, le contrôle de périphérique est effectué en fonction d'un intervalle de temps. Cet article illustre brièvement comment vous pouvez définir des intervalles de temps à l'aide des instructions TimeIsBetween() et TimeIntoInterval().

Comme un programmeur en CRBasic, vous pouvez déjà utiliser l'instruction DataInterval() pour stocker des données sur un intervalle spécifique, comme à chaque heure en haut de l'heure, comme ceci :

DataInterval() instruction

D'autres choses, en plus de stocker des données, peuvent-être faites sur un intervalle. Par exemple, vous pouvez utiliser l'instruction TimeIsBetween() ou l'instruction TimeIntoInterval() dans une instruction logique pour activer ou désactiver un périphérique, effectuer une mesure ou effectuer un calcul.

Les deux instructions renvoient les valeurs TRUE ou FALSE en fonction de l'horloge temps réel de la centrale de mesure.

  • Utilisez l'instruction TimeIsBetween() pour déterminer si l'horloge en temps réel de la centrale d'acquisition de données se situe dans un intervalle de temps. Si c'est le cas, l'instruction retourne TRUE. L'instruction retourne TRUE pour l'intervalle entier spécifié.
  • Utilisez l'instruction TimeIntoInterval() pour déterminer si l'horloge temps réel de la centrale de mesure correspond à l'heure spécifiée dans le programme au début d'un scan. Si c'est le cas, l'instruction retourne TRUE. L'instruction renvoie uniquement TRUE pour l'analyse qui correspond à l'intervalle spécifié.

TimeIsBetween() instruction TimeIntoInterval() instruction

Dans cet exemple, un modem va fonctionner entre 9:00 du matin et 16:00.

Dans cet exemple, un modem va fonctionner à partir de 9:00 du matin et va être éteint à partir de 16:00.

Program code examples for TimeIsBetween() and TimeIntoInterval() instructions

Astuce : Notez que dans les deux programmes, lorsque vous allumez un périphérique, vous devez également éteindre l'appareil. Si vous essayez de vous fier à une condition FALSE pour désactiver un périphérique, l'état FALSE ne changera pas l'état du port et votre appareil restera allumé.

Les nuances entre les deux programmes ci-dessus importent le plus si votre programme rate une heure exacte. Dans ce premier cas, parce que le programme est envoyé à 8h20 (avant l'heure de début de 9h00), les deux instructions renvoient TRUE à 9 heures et restent TRUE (VRAI) jusqu'à 16 heures.

TimeIsBetween() Modem TimeIntoInterval() Modem

8:00

  Off

  Off

8:20 programme envoyé

  Off

  Off

9:00

  On

  On

...

  On

  On

16:00

  Off

  Off

Dans ce deuxième cas, comme le programme est envoyé à 9h20 (après l'heure de début de 9h00), la première analyse renvoie FALSE pour l'instruction TimeIntoInterval() et l'instruction reste FALSE jusqu'à 9h00 la journée suivante.

TimeIsBetween() Modem TimeIntoInterval() Modem

8:00

  Off

  Off

9:00

  On

  On

9:20 programme envoyé

  On

  Off

10:00 

  On

  Off

...

  On

  Off

16:00

  Off

  Off

Note : L'instruction TimeIsBetween() a été introduite à partir de l'OS 28 pour les centrales de mesure CR3000, CR1000, et la série CR800, et à partir de l'OS 01 pour la CR6.

Recommandé pour vous : pour de plus amples informations sur l'instruction TimeIsBetween(), lire “l'article de la Newsletter ''Trucs et astuces : Plus de décisions…”.

Comment avez-vous utilisé les instructions TimeIsBetween() et TimeIntoInterval() dans vos programmes CRBasic ? Partager vos commentaires ci-dessous.


Partagez cet article


A propos de l'auteur

janet albers Janet Albers est rédactrice technique senior. Elle vous fera part de ses conseils, simplifiera les concepts et vous guidera vers un projet réussi. Elle est à Campbell Scientific, Inc depuis plus longtemps que la CR1000, mais pas depuis aussi longtemps que la CR10X. Après les heures de travail, Janet aime le plein air avec ses garçons et ses chiens.

Voir tous les articles de cet auteur.


Commentaires

dpatino | 09/05/2017 at 03:14 PM

Hi

it is possible to set hour and minute for SW12 control

jra | 09/06/2017 at 09:35 AM

dpatino - Sure! Use units of Min(utes) instead of Hours. There are 1440 minutes/day.

For example, to do something between 9:30AM and 4:30PM your instruction would look like: TimeIsBetween (570,990,1440,Min). 

Please log in or register to comment.