Skip to main content

BACnet Configuración en tiempo de ejecución

CODESYS BACnet2 SL usa el CmpBACnet componente para la comunicación. Este componente debe ingresarse y configurarse en el archivo de configuración del tiempo de ejecución de la siguiente manera.

[ComponentManager]
Component.1=CmpBACnet2

[CmpBACnet2]
; IniFile=$PlcLogic$/bacstac2.ini
; The configuration of the BACnet stack is generated by the CODESYS BACnetServer durign startup,
; if the BACnetServer device parameter  g is set to TRUE (which is the default).
; Most likely IniFile= needs to be configured only, if there is a need to manually create a configuration file of the BACnet stack,
; or if another path in the PLC filesystem is required.
; IniFile=$PlcLogic$/bacstac2.ini

; Task priority of the BACstack process task - this is an optional configuration, default is TASKPRIO_NORMAL_END (159).
; The task priority only needs to be configured, if there is a real need 
to work with IEC task priorities and runtime component task priorities,
; on some very specific PLC's.
; TaskPrio=128

; Name of the named pipe for the communication with the BACstack - this is an optional configuration.
; By default this named pipe is generated at "\\\\.\\pipeCODESYSBACnetServer" on Windows PLCs or "/dev/CODESYSBACnetServer" on Linux (or any other) PLCs.
; Just in case the PLC filesystem is configured such, that there is no create/write permission for this specific path,
; there is e need to configure AppName=.
; AppName=/tmp/BACnetServer

En general, CODESYS separa el acceso al sistema de archivos dentro de la aplicación IEC y el acceso desde el código de programa de los componentes de tiempo de ejecución. Se pueden especificar diferentes directorios raíz en el archivo de configuración del tiempo de ejecución.

[SysFile]
; root file path for runtime components
FilePath=D:/Temp/Default
; root file path for IEC applications
IecFilePath=D:/Temp/IEC

¿Cuándo? AutoGenerateBACstackConfig está establecido en TRUE, una aplicación IEC con CODESYS BACnet2 SL escribe el archivo de configuración de BACnet pila (utilizando información de BACnet.BACnetIPdatalink) al iniciar el BACnet Servidor. Más adelante, durante la rutina de inicio, codifique dentro del componente del sistema de ejecución CmpBACnet lee el archivo de configuración. Por lo tanto, el acceso compartido de lectura y escritura a la aplicación IEC y al componente de tiempo de ejecución debe estar habilitado para este archivo de configuración. Esto se hace mediante una ruta absoluta o mediante el uso de marcadores CODESYS Control V3.5.16.0 y versiones posteriores).

Ruta absoluta:

...
[CmpBACnet2]
IniFile=D:/Temp/bacstac.ini ; Windows
; Linux -> IniFile=/tmp/bacstac.ini
...

Marcador de posición (ejemplo: $BACnet$):

...
[SysFile]
PlcLogicPrefix=1
PlaceholderFilePath=, $Firmware$
PlaceholderFilePath.1=$PlcLogic$/bacnet, $BACnet$

[CmpBACnet]
IniFile=$BACnet$/bacstac.ini
...

Además, CODESYS permite el "sandboxing" de varios aspectos del tiempo de ejecución, incluido el acceso al sistema de archivos. En este caso, el acceso al sistema de archivos dentro de la aplicación IEC y el acceso desde el código de programa de los componentes de tiempo de ejecución están restringidos a las rutas configuradas. Para obtener más información, consulte la configuración de SysFile:

...
[SysFile]
; ForceFilePath=1
; ForceIecFilePath=1
...

Para obtener más información al respecto, consulte la ayuda para CODESYS Sistema de tiempo de ejecución Control V3, "CODESYS Controlar FilePath & Placeholders". Esta ayuda está disponible en la CODESYS GmbHPortal del Cliente.

Al configurar el "sandboxing" del sistema de archivos, debe tener en cuenta que es posible acceder al archivo de configuración del BACnet apilar como se describe arriba. Por lo tanto, en este caso se requiere la alternativa de usar marcadores de posición cuando la ruta a bacstac.ini aún no está configurado en otro lugar.

Para más información, ver: Arquitectura, componentes y sus tareas