Skip to main content

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.

. Reglas generales:
  • Iniciar y detener el BACnet pila

    Siempre usa BACnetServer.StartBACnetStack y BACnetServer.StopBACnetStack o AutoStart. Nunca utilice directamente las funciones correspondientes del CmpBACnet biblioteca, como CmpBACnet.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 del BACnet biblioteca, como CmpBACnet.BACnetStorePropertyInstance.

  • Activación de solicitudes asíncronas

    Utilice siempre los bloques de función de cliente especificados del BACnet biblioteca, como BACnetClientReadProperty. Nunca utilice directamente las funciones correspondientes del CmpBACnet biblioteca, como CmpBACnet.BACnetReadProperty. Todas las funciones de la CmpBACnet biblioteca que requiere un BACnetAsyncTransactionToken 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 y BACnetServer.RegisterHook/UnregisterHook/RegisterCallback/UnregisterCallback. Nunca utilice directamente las funciones correspondientes del CmpBACnet biblioteca, como CmpBACnet.BACnetSetHook o CmpBACnet.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.BACnetEventCallbacks. Pero primero verifique si el BACnetDefaultImpl La biblioteca ya contiene una implementación estándar adecuada.