Skip to main content

BACnet-Konfiguration im Laufzeitsystem

CODESYS BACnet2 SL verwendet zur Kommunikation die Komponente CmpBACnet oder CmpBACnet2. Diese Komponente muss In der Konfigurationsdatei des Laufzeitsystems eingetragen und folgendermaßen konfiguriert sein.

[ComponentManager]
Component.1=CmpBACnet2
[CmpBACnet2]
; configuration file of the BACnet stack
IniFile=$PlcLogic$/bacstac2.ini
; task priority of the BACstack process task, default: TASKPRIO_NORMAL_END (159)
TaskPrio=128
; name of the named pipe for the communication with the BACstack
AppName=/tmp/BACnetServer

CODESYS separiert grundsätzlich Zugriffe auf das Dateisystem innerhalb der IEC-Applikation und Zugriffe aus dem Programmcode der Laufzeitsystemkomponenten. Verschiedene Wurzelverzeichnisse können in der Konfigurationsdatei des Laufzeitsystems festgelegt werden.

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

Eine IEC-Applikation mit CODESYS BACnet2 SL schreibt die Konfigurationsdatei des BACnet-Stacks (unter Nutzung von Informationen aus BACnet.BACnetIPdatalink) beim Start des BACnet-Servers und liest die Datei danach innerhalb der Laufzeitkomponente CmpBACnet. Daher müssen für diese Konfigurationsdatei gemeinsame Schreib- und Lesezugriffe der IEC-Applikation und der Laufzeitsystemkomponente ermöglicht werden. Dies erfolgt entweder durch die Verwendung eines absoluten Pfades oder - beginnend mit CODESYS Control V3.5.16.0 - durch die Verwendung von Platzhaltern.

Absoluter Pfad:

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

Platzhalter - beispielsweise $BACnet$:

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

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

Des Weiterem erlaubt CODESYS das „sandboxing“ verschiedener Aspekte des Laufzeitsystems, unter Anderem auch Zugriffe auf das Dateisystem. Dabei werden Zugriffe auf das Dateisystem innerhalb der IEC-Applikation und Zugriffe aus dem Programmcode der Laufzeitsystemkomponenten grundsätzlich auf die konfigurierten Pfade beschränkt. Siehe dazu die Konfiguration von SysFile:

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

Weitere Informationen hierzu gibt es in der Hilfe zu CODESYS Control V3 Runtime System unter „CODESYS Control FilePath & Placeholders“. Diese Hilfe ist im CODESYS GmbH Kundenportal verfügbar.

Bei der Konfiguration des „sandboxing“ des Dateisystems ist zu beachten, dass der oben beschriebene Zugriff auf die Konfigurationsdatei des BACnet-Stacks möglich ist. Daher ist die Variante mit Platzhaltern in diesem Fall zwingend, wenn der Pfad zur bacstac.ini nicht schon anderweitig konfiguriert ist.

Für weitere Informationen siehe: Architektur, Bestandteile und deren Aufgaben