par Janet Albers | Mis à jour le : 12/30/2015 | Commentaires : 2
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 :
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.
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. |
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.
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.