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