FB_BACnet_NotificationSinkDelEntry
Funktionsbaustein zum Löschen von Einträge der "Notification Sink" über ADS.
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.
Die nötige NetId (AMS NetId) des BACnet Device kann im System Manager abgelesen werden (siehe Bild-2).
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). |
Für Informationen zur Funktionsweise des Adapter Bausteins siehe FB_BACnet_Adapter.
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.
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
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.