FB_BACnet_NotificationSinkDelEntry

Funktionsbaustein zum Löschen von Einträge der "Notification Sink" über ADS.

FB_BACnet_NotificationSinkDelEntry 1:

Verwendung

Die Bausteininstanz wird im SPS Programm angelegt und zyklisch aufgerufen. Der Eingang nPort wird mit dem ADS Port aus der System Manager Konfiguration belegt (siehe Bild-1). Je nach Konfiguration können Ports variieren.

Mit Hilfe des Bausteins können Einträge an beliebiger Stelle der "Notification Sink" gelöscht werden. Wurden sämtliche Einträge entfernt, bzw. ist der angegebene Index größer als Einträge in der Liste vorhanden sind, dann meldet der Baustein bEmpty zurück.

FB_BACnet_NotificationSinkDelEntry 2:
Bild-1: ADS Port im System Manager

Die nötige NetId (AMS NetId) des BACnet Device kann im System Manager abgelesen werden (siehe Bild-2).

FB_BACnet_NotificationSinkDelEntry 3:

Die NetId entspricht nicht der lokalen NetId und muss immer angegeben werden - keine Verwendung von Leerstrings möglich!). Eine andere Möglichkeit besteht darin, die NetId aus dem Device Baustein bzw. Adapter Baustein in der SPS abzufragen (siehe Bild-3).

FB_BACnet_NotificationSinkDelEntry 4:
Bild-2: AMS NetId des BACnet Device

Für Informationen zur Funktionsweise des Adapter Bausteins siehe FB_BACnet_Adapter.

FB_BACnet_NotificationSinkDelEntry 5:
Bild-3: AMS NetId des BACnet Device

VAR_INPUT

bExecute     : BOOL;
nIndex       : UDINT;
sNetId       : T_AmsNetId;
nPort        : T_AmsPort;
tTimeout     : TIME := tBACnet_ADSTimeOut;

bExecute: Steigende Flanke am Eingang startet den Lesevorgang.

nIndex: Index des zu löschenden Eintrags (0 ... n-1).

sNetId: AMS NetId des BACnet Devices (Adapter) unter dem der Server bzw. Client konfiguriert wurde.

nPort: ADS Port unter dem die "Notification Sink" angelegt wurde (siehe auch unter Verwendung).

tTimeout: Optionaler Eingang, Überwachungszeit für den ADS Zugriff (Default: tBACnet_ADSTimeOut).

VAR_OUTPUT

bBusy        : BOOL;
bEmpty       : BOOL;
bError       : BOOL;
nErrorId     : UDINT;

bBusy: Der Baustein ist beschäftigt.

bEmpty: Ist gesetzt, wenn versucht wird einen nicht vorhandenen Eintrag zu löschen.

FB_BACnet_NotificationSinkDelEntry 6:

Wird der letzte Eintrag (Index 0) gelöscht, dann erfolgt die Meldung bEmpty erst nach einem erneuten Versuch einen Eintrag (Index 0) aus der bereits leeren Liste zu löschen!

bError: Fehler während der Abarbeitung.

nErrorId: ADS Fehlercode.

Beispiel

FB_BACnet_NotificationSinkDelEntry 7:
Bild-4: Beispiel für das Löschen der kompletten "Notification Sink" unter Port 1004.

Wird das Bit "bClearList" gesetzt, dann wird das Löschen des Eintrags "0" so oft wiederholt bis der Baustein bEmpty zurück meldet. Anschließend wird das Bit "bClearList" selbständig zurück gesetzt.