Comment utiliser la fonction de rappel pour que votre centrale de mesure déclenche la récupération de données

par Jacob Davis | Mis à jour le : 02/22/2017 | Commentaires : 6

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

Communication initiée par une centrale de mesure afin d'envoyer les données vers un PC via le protocol PakBus

Avez-vous besoin pour certaines applications que votre centrale de mesure lance la récupération de données, plutôt que votre PC ? Par exemple, avez-vous une condition environnementale pour laquelle vous souhaitez transmettre des données d'alarme ?

Bien que la communication IP soit répandue, il se peut que vous ayez besoin d'une communication qui soit déclenchée par une centrale de mesure à travers un pare feu et des adresses IP privées ou publiques. Les enregistreurs de données Campbell Scientific compatibles IP peuvent lancer des connexions IP. (En fait, nos centrales d'acquisition de données ont eu la capacité de faire des ''call-back'' (ou rappel) sur un téléphone fixe depuis la sortie de la CR7 et 21X au début des années 1980.) Bien que vous ayez besoin de cette capacité de rappel, peut-être vous ne savez pas comment faire, pour la mettre en œuvre. J'espère que cet article va rapidement va vous aider à mettre en place le rappel depuis votre centrale de mesure vers un ordinateur équipé du logiciel LoggerNet.

Le commencement

Deux choses doivent se produire pour que le rappel (call-back) fonctionne :

  1. Le lien de communication doit être établi.
  2. La centrale de mesure doit indiquer à LoggerNet de lancer la collecte de données.

L'établissement du lien est un processus différent selon le type de télécommunications que vous utilisez. Néanmoins, la collecte de données est la même, quel que soit le type de lien de communication que vous utilisez.

Connexion directe en série

La liaison de télémétrie la plus élémentaire est une connexion série directe. Sur une connexion directe, la seule modification à effectuer dans LoggerNet est de sélectionner la case et cocher Call-Back Enabled (Rappel activé) pour le port de communication dans l'écran de configuration. Cela permettra à LoggerNet d'ouvrir le port série et d'écouter les demandes de collecte de données entrantes.

Ecran de configuration avec le ComPort selectionné

Si vous utilisez le port RS-232 sur une centrale de mesure, il est activé par défaut. Le lien de communication est prêt. Vous avez juste besoin de quelque chose pour arriver à dire à LoggerNet que la centrale de mesure veut parler. Pour initier une communication, ajoutez une instruction comme celle-ci à votre programme de votre enregistreur de données :


If TimeIntoInterval (0,1,HR) Then
	SendVariables (SendResult,COMRS232,0,4094,0000,0,"Public","Callback",PTemp,1)
EndIf
  • Le bloc If contrôle la fréquence de rappel.
  • L'instruction SendVariables() déclenche la collecte de données.

LoggerNet reconnaîtra une tentative de définir la variable Public appelée Callback comme une demande de collecte de données. Assurez-vous de changer l'adresse PakBus dans l'instruction SendVariables() si LoggerNet n'est pas configuré à la valeur par défaut 4094.

Après avoir effectué le changement dans l'écran de configuration (Setup) de LoggerNet et chargé le programme sur la centrale de mesure, la collecte de données se fera en arrière-plan. Pour vérifier que la collecte de données se fait en fonction de l'intervalle dans votre programme d'enregistreur de données, regardez le moniteur d'état (Status Monitor).

Recommandé pour vous Pour plus d'informations sur le moniteur d'état, regardez la vidéo sur le Status Monitor.



Connection IP

La configuration du rappel (call-back) est un peu différente pour une connexion IP. Un PakBusTcpServer est recommandé en tant que périphérique racine dans l'écran de configuration (Setup). Le serveur TCP a la fonction rappel (call-back) toujours activé. Il ouvrira un port IP et écoutera les connexions entrantes des centrales de mesure paramétrées. C'est une bonne idée d'avoir la case à cocher PakBus Port Always Open activée. Le numéro de port IP par défaut utilisé est 6785.

PakBusTcpServer sélectionné

Sur la centrale de mesure, vous devez lui indiquer d'ouvrir un socket IP à LoggerNet. Le moyen le plus simple consiste à paramétrer les Clients PakBus/TCP sur l'enregistreur de données. Vous pouvez trouver ce paramètre dans l'onglet Services réseau (Network Services), lorsque votre ordinateur est connecté à la centrale de mesure à l'aide de DevConfig. Vous devrez entrer l'adresse IP routable et le numéro de port de l'ordinateur exécutant le serveur LoggerNet. Dans cet exemple, la centrale de mesure et l'ordinateur étaient tous deux à l'intérieur du même réseau Ethernet. J'ai vérifié l'adresse IP sur l'ordinateur, puis je l'ai entré dans la fenêtre de configuration sur la centrale d'acquisition de données.

Adresse IP entrée

Lorsque vous utilisez une connexion IP, vous ne disposerez pas d'un port de communication fixe pour référencer l'instruction SendVariables(). Une façon d'éviter le problème est d'utiliser la fonction de découverte automatique de PakBus. Une valeur de -1 comme adresse de voisin indique à la centrale de mesure d'ignorer le paramètre ComPort et d'utiliser la connexion dans la table de routage de la centrale de mesure. En fait, vous pouvez utiliser 0 comme ComPort. La connexion IP créée par PakBus/TCP Client se trouve dans la table de routage et peut être utilisée.


SendVariables (SendResult,0, -1,4094,0000,0,"Public","Callback",PTemp,1)

Après avoir effectué la configuration, le rappel sur la connexion IP fonctionnera beaucoup comme il le fait sur la connexion série. Vous avez maintenant la centrale de mesure contrôlant elle-même la collecte de données de LoggerNet. Par exemple, vous pouvez utiliser un déclenchement simple basé sur le temps dans la centrale de mesure. Vous pouvez également déclencher la collecte de données en comparant les variables par un seuil, comme le montre cet exemple :


If WaterLevel > 10.5 Then
	SendVariables (SendResult,0,-1,4094,0000,0,"Public","Callback",PTemp,1)
EndIf

Conclusion

Si vous avez des problèmes de pare-feu ou d'adresse IP, vous devrez peut-être utiliser la communication initiée par la centrale de mesure plutôt que la récupération de données initiée par PC. Vous pouvez utiliser la fonctionnalité de rappel des centrales d'acquisition de données de Campbell Scientific pour la communication initiée par une centrale de mesure en utilisant une connexion série directe ou une connexion IP. Quel que soit le type de connexion que vous utilisez, j'espère que vous trouverez la fonctionnalité de rappel (call-back) très utile et facile à configurer. Si vous avez des questions concernant le rappel, n'hésitez pas à les poster ci-dessous.


Partagez cet article



A propos de l'auteur

jacob davis Jacob Davis est un ingénieur qui s'occupe du support technique à la clientèle et de la mise en œuvre chez Campbell Scientific, Inc. Il fournit un soutien technique aux clients et aide à l'intégration des systèmes. Ses spécialités comprennent les communications séries et la programmation avancée des centrales de meure. Jacob possède une maîtrise en hydrologie et a travaillé sur de grands projets d'irrigation avant de venir chez Campbell Scientific, Inc.

Voir tous les articles de cet auteur.


Commentaires

jhurmence | 05/18/2018 at 08:58 AM

Will the IP connection solution work with the CR800?  We have RV50 modem connected through serial port.  We want call-back to an IP address.  What would the SendVariables command look like in that case?

JDavis | 05/18/2018 at 11:08 AM

The CR800 is able to make IP connections, if you configure it for PPP mode. There are instructions in the RV50 documentation on how to get that working.

Snohomish County SWM | 01/25/2023 at 10:37 PM

Within the SendVariables command in the example, does the Variable value of "PTemp" and Swath value of "1" have any impact on the results or is only important that a value is getting pushed back to LoggerNet to initiate the call-back?

JDavis | 01/25/2023 at 10:40 PM

Which variable you send does not matter. Swath of 1 is recommended.

Snohomish County SWM | 03/06/2023 at 06:29 PM

Which is more appropriate to use when performing Call-backs over KonectGDS: IPPort or PakBusTCPServer? If the latter, what are the configuration steps in LoggerNet? Thanks.

JDavis | 03/06/2023 at 06:37 PM

If you are using the Konect Pakbus router, there is only one setting you would change in your Loggernet setup versus what is shown in quick start guides. You would need to enable Pakbus Port Always Open on the IP Port in Loggernet.

When going through a Pakbus router, the SendVariables() instruction in the logger should include the Pakbus address of the Pakbus router in the neighbor address parameter.

Please log in or register to comment.