Skip to main content

BACnet Configurazione nel runtime

CODESYS BACnet2 SL utilizza il CmpBACnet O CmpBACnet2 componente per la comunicazione. Questo componente deve essere inserito e configurato nel file di configurazione del runtime come segue.

[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

Generalmente, CODESYS separa l'accesso al file system all'interno dell'applicazione IEC e l'accesso dal codice di programma dei componenti runtime. Nel file di configurazione del runtime è possibile specificare diverse directory root.

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

Quando AutoGenerateBACstackConfig è impostato su TRUE, un'applicazione IEC con CODESYS BACnet2 SL scrive il file di configurazione di BACnet stack (utilizzando le informazioni di BACnet.BACnetIPdatalink) all'avvio del BACnet Server. Successivamente, durante la routine di avvio, esegui il codice all'interno del componente di sistema in fase di esecuzione CmpBACnet legge il file di configurazione. Pertanto, per questo file di configurazione è necessario abilitare l'accesso condiviso in lettura e scrittura all'applicazione IEC e al componente di runtime. Questa operazione viene eseguita utilizzando un percorso assoluto o utilizzando segnaposti (per CODESYS Control V3.5.16.0 e versioni successive).

Percorso assoluto:

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

Segnaposto (esempio: $BACnet$):

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

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

Inoltre, CODESYS consente il "sandboxing" di vari aspetti del runtime, incluso l'accesso al file system. In questo caso l'accesso al file system all'interno dell'applicazione IEC e l'accesso dal codice di programma dei componenti runtime sono limitati ai percorsi progettati. Per ulteriori informazioni vedere la configurazione di SysFile:

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

Per ulteriori informazioni a riguardo, consultare la guida di CODESYS Controllare il sistema runtime V3, "CODESYS Controlla percorso file e segnaposto". Questa guida è disponibile nel file CODESYS GmbH Portale clienti.

Quando si configura il "sandboxing" del file system, è necessario tenere presente che è possibile accedere al file di configurazione del BACnet impilare come descritto sopra. Pertanto, in questo caso è necessaria l'alternativa all'uso dei segnaposto quando il percorso to bacstac.ini non sia già configurato altrove.

Per ulteriori informazioni, vedere: Architettura, componenti e loro compiti