Comment empêcher que la mise à jour de programme puisse causer la perte de communication

Essayez d'utiliser un peu de code de programmation pour éviter d'avoir à vous déplacer à votre station.

Rupture de communication entre une station météo et un ordinateur

Imaginez que vous ayez une station de mesure avec une centrale de mesure, qui enregistre vos données à trois heures de distance. Pour arriver physiquement à votre station, non seulement vous devez conduire pendant trois heures, mais ensuite vous devez faire de la randonnée pendant une heure dans une montagne couverte de neige.

Il y a quelques jours, vous avez apporté un changement à votre programme CRBasic de votre centrale d'acquisition de données et vous n'êtes pas sûr des effets de la mise à jour. Mais vous aviez besoin de faire le changement et d'envoyer le programme de mise à jour à l'enregistreur de données. Malheureusement, c'était la dernière fois que vous avez pu vous connecte à votre station.

Bien que vous ayez découvert ce qui n'allait pas dans le programme de votre centrale de mesure, et ce qui vous a fait perdre la communication, vous devez maintenant attendre un jour où il fasse beau, afin que vous puissiez faire trajet jusqu'à la montagne pour corriger le programme. Ne serait-il pas beaucoup plus facile si vous pouviez mettre votre station en marche à nouveau sans avoir à faire un voyage sur le site ?

Dans votre programme CRBasic, utilisez l'instruction RunProgram() et faites référence au nom du programme que votre nouveau programme remplacera. Dans l'exemple ci-dessous, l'instruction RunProgram() fait référence à un programme précédent nommé ProgNameRev1.cr6. Notez que l'instruction RunProgram() est placée dans une instruction conditionnelle If Then/EndIf-juste en dessous d'un timer.

Recommandé pour vous : Pour obtenir de l'aide et des informations supplémentaires sur le fonctionnement de l'instruction, reportez-vous à l'aide de l'éditeur CRBasic de l'instruction RunProgram(). Pour accéder au fichier, mettez en surbrillance RunProgram dans la liste d'instructions et cliquez sur le bouton d'Aide (Help) au-dessus de la liste.



 ‘ProgNameRev2 'Main Program BeginProg Scan (1,Sec,0,0) Public ChangeBackTimer ‘Déclaration de variable ChangeBackTimer = Timer (10,Min,0 ) ‘Le résultat du timer est assigné à une variable If ChangeBackTimer >= 10 Then ‘la condition évalue l'état de la variable RunProgram ("CPU:ProgNameRev1.cr6",4) ‘Pointe vers un autre programme sur le CPU, il est défini pour s'exécuter maintenant. EndIf NextScan EndProg 

Ce code permet à votre programme nouvellement téléchargé de fonctionner pendant 10 minutes (suffisamment de temps pour tester si votre communication a été ou non affectée). Ensuite, il revient automatiquement à votre programme précédent.

Si vous envoyez le nouveau programme, si votre centrale de mesure semble fonctionner comme prévu et que la communication fonctionne normalement, vous pouvez procéder à commenter ou à supprimer les parties ''ChangeBack'' de votre code. Puis renvoyer le programme. Félicitations à vous! Votre station est maintenant opérationnelle, votre datalogger a repris les données d'enregistrement, et vous n'avez pas eu à passer des heures à aller et venir sur votre site de station pour le faire. Bien que l'instruction RunProgram() ait beaucoup d'autres utilisations, dans cette application, elle peut juste vous sauver d'un voyage non prévue.

Note : Aussi fantastique que cette application puisse paraître, l'instruction RunProgram() n'est pas une instruction entièrement sécurisée. Des complications possibles peuvent survenir lors de la combinaison de RunProgram() avec d'autres instructions telles que SetSetting(). Contactez Campbell Scientific si vous utilisez l'instruction SetSetting() dans vos programmes.

Astuces : Il est toujours recommandé de télécharger fréquemment vos données et de conserver une sauvegarde de votre programme et de votre fichier de configuration.

Si vous pensez que l'instruction RunProgram() peut vous aider dans votre application, je vous invite à l'essayer quelques fois avec vos programmes dans votre bureau. Si vous avez des questions ou des commentaires sur l'utilisation de l'instruction, postez-les ci-dessous.

montages campbell

Connect With Us

envelope icon
Phone Numbers
General: (435) 227-9000
location icon
Corporate Address
815 W 1800 N
Logan, UT 84321
send icon
Email Address
sales@campbellsci.com

As a trusted leader in measurement systems for more than 50 years, our top priority at Campbell Scientific has always been to provide the most accurate, reliable data for research and industry.