Nous sommes fiers de savoir que les enregistreurs de données Campbell Scientific excellent à prendre des mesures et à stocker des données. Mais saviez-vous qu'ils peuvent aussi prendre des décisions et contrôler d'autres appareils? Bien qu'il existe de nombreuses instructions de prise de décisions qui fonctionneront avec votre enregistreur de données, voici une astuce à propos d'une nouvelle instruction, TimeIsBetween(). Il est mis en marché avec la sortie d'OS 28 pour les enregistreurs de données CR3000, CR1000, et la série CR800 avec OS 01 dans la nouvelle centrale de mesure CR6.
TimeIsBetween() donne une lecture TRUE si l'horloge en temps réel de l'enregistreur de données s'inscrit dans la gamme spécifiée; autrement, la fonction retourne une lecture FALSE. Comme l'instruction TimeIntoInterval(), nous l'intégrons souvent dans un énoncé de logique si/à ce moment (if/then).
If TimeIsBetween (0,10,60,Min) Then
SW12 (1) ' Turn phone on.
Else
SW12 (0) 'Turn phone off.
EndIf
Si TimeIsBetween() retourne une lecture TRUE pour l'ensemble de l'intervalle spécifié, alors que TimeIntoInterval() retourne une lecture TRUE seulement pour un balayage qui correspond à l'intervalle spécifié.
Par exemple, si vous avez envoyé un programme à l'enregistreur de données une minute après l'heure, l'instruction TimeIsBetween(), en utilisant l'extrait de programme ci-dessus, évaluerait votre premier balayage comme vraie (TRUE). L'instruction TimeIntoInterval(), en utilisant l'extrait de programme ci-dessous, évaluerait la lecture à TRUE au sommet de l'heure suivante, soit 59 minutes plus tard.
If TimeIntoInterval ( 0,60,Min) Then PortSet (9,1) 'Port “9” is the SW12V Port. Turn phone on.
If TimeIntoInterval (10,60,Min) Then PortSet (9,0) 'Turn phone off.
Remarque : BeginTime est inclusive et EndTime est exclusif de la gamme de temps qui retournerna un résultat véridique (VRAI). Par exemple : TimeIsBetween (0,10,60, min) retournera TRUE à 8 h 00 : 00.00 et FAUX à 08 H 10 : 00.00.