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.
Démarrer et arrêter le BACnet empiler
Utilisez toujours
BACnetServer.StartBACnetStack
etBACnetServer.StopBACnetStack
ouAutoStart
. N’utilisez jamais directement les fonctions correspondantes duCmpBACnet
bibliothèque, commeCmpBACnet.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 duBACnet
bibliothèque, commeCmpBACnet.BACnetStorePropertyInstance
.Déclenchement de requêtes asynchrones
Utilisez toujours les blocs fonction client spécifiés du
BACnet
bibliothèque, commeBACnetClientReadProperty
. N’utilisez jamais directement les fonctions correspondantes duCmpBACnet
bibliothèque, commeCmpBACnet.BACnetReadProperty
. Toutes les fonctions duCmpBACnet
bibliothèque qui nécessite unBACnetAsyncTransactionToken
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
etBACnetServer.RegisterHook
/UnregisterHook/RegisterCallback
/UnregisterCallback
. N’utilisez jamais directement les fonctions correspondantes duCmpBACnet
bibliothèque, commeCmpBACnet.BACnetSetHook
ouCmpBACnet.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.BACnetEventCallback
s. Mais vérifiez d'abord si le BACnetDefaultImpl
La bibliothèque contient déjà une implémentation standard appropriée.