Skip to main content

Quand utiliser la bibliothèque BACnet ou la bibliothèque CmpBACnet

Note

Les descriptions s'appliquent toujours également à la bibliothèque correspondante de CODESYS BACnet2 SL (« révision majeure 2 »).

La bibliothèque CEI BACnet est conçu comme une couche sur la bibliothèque CEI CmpBACnet. Cependant, la couche ne cache pas la bibliothèque car cela nécessiterait le BACnet bibliothèque pour avoir des "fonctions de façade" pour les fonctions de CmpBACnet. Ces « fonctions de façade » entraîneraient un code d'application plus volumineux et des exigences d'exécution accrues. C’est difficile à accepter pour l’automate. Pour cette raison, il est nécessaire de savoir à quel moment les éléments du BACnet bibliothèque ou CmpBACnet bibliothèque doivent être utilisées.

. Règles générales:
  • Démarrer et arrêter le BACnet empiler

    Utilisez toujours BACnetServer.StartBACnetStack et BACnetServer.StopBACnetStack ou AutoStart. N’utilisez jamais directement les fonctions correspondantes du CmpBACnet bibliothèque, comme CmpBACnet.BACnetServerInit.

  • En utilisant BACnet objets serveur et leurs propriétés

    Utilisez toujours les blocs fonctionnels spécifiés dans IEC-lib-BACnet, tels que BACnetAnalogValue. N’utilisez jamais directement les fonctions correspondantes du BACnet bibliothèque, comme CmpBACnet.BACnetStorePropertyInstance.

  • Déclenchement de requêtes asynchrones

    Utilisez toujours les blocs fonction client spécifiés du BACnet bibliothèque, comme BACnetClientReadProperty. N’utilisez jamais directement les fonctions correspondantes du CmpBACnet bibliothèque, comme CmpBACnet.BACnetReadProperty. Toutes les fonctions du CmpBACnet bibliothèque qui nécessite un BACnetAsyncTransactionToken appartiennent à cette catégorie et ne doivent jamais être utilisés directement.

  • Traitement des "callbacks" de la pile BACnet et distribution des "callbacks" à plusieurs récepteurs dans l'application

    Utilisez toujours IBACnetEventConsumer et BACnetServer.RegisterHook/UnregisterHook/RegisterCallback/UnregisterCallback. N’utilisez jamais directement les fonctions correspondantes du CmpBACnet bibliothèque, comme CmpBACnet.BACnetSetHook ou CmpBACnet.BACnetSetCallback.

Pour plus d'informations, voir : Architecture, composants et leurs tâches

Quand est-il approprié et sûr d'appeler directement les fonctions du CmpBACnet bibliothèque?

En gros, il suffit d’appeler les fonctions de CmpBACnet directement lorsqu'une fonctionnalité correspondante n'est pas fournie dans le BACnet bibliothèque. Vérifier la BACnet bibliothèque avant d'essayer d'utiliser CmpBACnet directement. Il est possible d'utiliser des "fonctions de blocage" dans CmpBACnet, tel que BACnet*CbCompletion, BACnetIam(Ex), ou BACnetIHave(Ex), BACnetUnconf*.

Le plus souvent, vous utiliserez BACnet*CbCompletion pour mettre en œuvre vos spécificités IBACnetEventConsumer.BACnetEventCallbacks. Mais vérifiez d'abord si le BACnetDefaultImpl La bibliothèque contient déjà une implémentation standard appropriée.