Cuándo usar la biblioteca BACnet o la biblioteca CmpBACnet
Nota
Las descripciones siempre se aplican también a la biblioteca correspondiente de CODESYS BACnet2 SL ("revisión mayor 2").
La biblioteca IEC BACnet
está pensado como una capa sobre la biblioteca IEC CmpBACnet
. Sin embargo, la capa no oculta la biblioteca porque esto requeriría la BACnet
biblioteca para tener "funciones de fachada" para funciones de CmpBACnet
. Estas "funciones de fachada" darían como resultado un código de aplicación más grande y mayores requisitos de tiempo de ejecución. Esto es difícil de aceptar para el PLC. Por ello, es necesario saber cuándo elementos de la BACnet
biblioteca o CmpBACnet
biblioteca se van a utilizar.
Iniciar y detener el BACnet pila
Siempre usa
BACnetServer.StartBACnetStack
yBACnetServer.StopBACnetStack
oAutoStart
. Nunca utilice directamente las funciones correspondientes delCmpBACnet
biblioteca, comoCmpBACnet.BACnetServerInit
.Usando BACnet objetos del servidor y sus propiedades
Utilice siempre los bloques de funciones especificados en IEC-lib-BACnet, como
BACnetAnalogValue
. Nunca utilice directamente las funciones correspondientes delBACnet
biblioteca, comoCmpBACnet.BACnetStorePropertyInstance
.Activación de solicitudes asíncronas
Utilice siempre los bloques de función de cliente especificados del
BACnet
biblioteca, comoBACnetClientReadProperty
. Nunca utilice directamente las funciones correspondientes delCmpBACnet
biblioteca, comoCmpBACnet.BACnetReadProperty
. Todas las funciones de laCmpBACnet
biblioteca que requiere unBACnetAsyncTransactionToken
pertenecen a esta categoría y nunca deben usarse directamente.Procesamiento de "devoluciones de llamada" de la pila BACnet y distribución de las "devoluciones de llamada" a múltiples receptores en la aplicación
Siempre usa
IBACnetEventConsumer
yBACnetServer.RegisterHook
/UnregisterHook/RegisterCallback
/UnregisterCallback
. Nunca utilice directamente las funciones correspondientes delCmpBACnet
biblioteca, comoCmpBACnet.BACnetSetHook
oCmpBACnet.BACnetSetCallback
.
Para más información, ver: Arquitectura, componentes y sus tareas
¿Cuándo es apropiado y seguro llamar directamente a las funciones del CmpBACnet
¿Biblioteca?
Básicamente, solo es necesario llamar funciones de CmpBACnet
directamente cuando no se proporciona una funcionalidad correspondiente en el BACnet
Biblioteca. Compruebe el BACnet
biblioteca primero antes de intentar usar CmpBACnet
directamente. Es posible utilizar "funciones de bloqueo" en CmpBACnet
, tal como BACnet*CbCompletion
, BACnetIam(Ex)
, o BACnetIHave(Ex), BACnetUnconf*
.
La mayoría de las veces, usará BACnet*CbCompletion
para implementar su IBACnetEventConsumer.BACnetEventCallback
s. Pero primero verifique si el BACnetDefaultImpl
La biblioteca ya contiene una implementación estándar adecuada.