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.StartBACnetStackyBACnetServer.StopBACnetStackoAutoStart. Nunca utilice directamente las funciones correspondientes delCmpBACnetbiblioteca, 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 delBACnetbiblioteca, comoCmpBACnet.BACnetStorePropertyInstance.Activación de solicitudes asíncronas
Utilice siempre los bloques de función de cliente especificados del
BACnetbiblioteca, comoBACnetClientReadProperty. Nunca utilice directamente las funciones correspondientes delCmpBACnetbiblioteca, comoCmpBACnet.BACnetReadProperty. Todas las funciones de laCmpBACnetbiblioteca que requiere unBACnetAsyncTransactionTokenpertenecen 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
IBACnetEventConsumeryBACnetServer.RegisterHook/UnregisterHook/RegisterCallback/UnregisterCallback. Nunca utilice directamente las funciones correspondientes delCmpBACnetbiblioteca, comoCmpBACnet.BACnetSetHookoCmpBACnet.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.