
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.
Related Articles
Utilisation des boucles dans CRBasic afin d'empêcher d'avoir des ''skipped scans''
Découvrez comment éviter les skipped scans inutiles.
May 31, 2017
Sondes de température et HR de l'air : Que faut-il savoir ?
Découvrez un certain nombre de points importants au sujet des capteurs d'humidité relative et de température de l'air.
May 17, 2017
Une solution pour les problèmes de communication IP : Konect PakBus Routeur
Découvrez un moyen simple et sécurisé pour la communication IP.
April 5, 2017
Utilisez des pointeurs pour rendre vos programmes CRBasic plus efficaces
Découvrez comment utiliser des pointeurs pour réduire la quantité de code dont vous avez besoin pour écrire et utiliser moins de mémoire.
March 23, 2017