FB_BACnet_Adapter

Der folgende Funktionsbaustein wird für die Anbindung des SPS-Programmes an einen lokalen BACnet-Adapter (Netzwerkkarte) verwendet. Die Verknüpfung des Funktionsbausteins erfolgt mit Hilfe von Prozessdaten.

Die Prozessdaten können manuell oder mittels PLC-Automapping automatisch verknüpft werden. Die für das PLC-Automapping nötigen Kommentare ( (* ~ (BACnet... | ??? | ??? ) *) ) sind bereits in der Deklaration des Funktionsbausteins enthalten.

FB_BACnet_Adapter 1:
Bild-1: Prozessdaten des BACnet Adapters im System Manager.
FB_BACnet_Adapter 2:
Bild-2: Funktionsbaustein des BACnet Adapters im SPS-Programm.

Verwendung

Mit Hilfe des Funktionsbausteins FB_BACnet_Adapter wird der Zustand des lokalen BACnet Adapters gelesen (Prozessdatum "Device Status") und im SPS-Programm ausgegeben. Zudem wird mit Hilfe des Prozessdatums "AmsNetId" die AMS-NetID des BACnet-Adapters gelesen (ARRAY OF BYTE --> String) und als Zeichenkette ausgegeben.

Eine Instanz des Bausteins FB_BACnet_Adapter wird bereits durch die SPS-Bibliothek als globale Instanz bereitgestellt und muss daher nicht explizit angelegt werden. Die globale Instanz wird bei Verwendung des SPS-Automappings erkannt und automatisch mit dem BACnet-Adapter im System Manager verknüpft. Die Bausteininstanz wird von den Bausteinen FB_BACnet_Device und FB_BACnet_RemoteDevice benötigt. Im Folgenden ist die Hierarchie zwischen FB_BACnet_Adapter, FB_BACnet_Device bzw. FB_BACnet_RemoteDevice und einem Objekt vom Typ AnalogValue dargestellt:

FB_BACnet_Adapter 3:
Bild-3: Beispiel zur Verknüpfung der FB-Instanzen in der SPS.

Für Informationen zur Verwendung der Bausteine FB_BACnet_Device und -_RemoteDevice siehe FB_BACnet_Device bzw. FB_BACnet_RemoteDevice. Die Instanz des Bausteins FB_BACnet_Adapter muss jedoch nicht zwingend aufgerufen werden. Der Aufruf des Adapter-Bausteins wird bei Bedarf automatisch von den Instanzen der Bausteine FB_BACnet_Device bzw. FB_BACnet_RemoteDevice vorgenommen.

VAR_OUTPUT

eAdapterStatus   : E_BACnetAdapterStatus;
bEthLinkOk       : BOOL;
bGatewayOk       : BOOL;
sAmsNetId        : T_AmsNetId;
bFirstCycle      : BOOL;
bError           : BOOL;
nErrorId         : UINT;

eAdapterStatus: Aktueller Status des BACnet-Adapters. Folgende Werte sind möglich:
0: BACnetAdapterStatus_Init (Initialisierung hat begonnen)
1: BACnetAdapterStatus_CheckIpAddr (Prüfung der IP-Adresse)
2: BACnetAdapterStatus_CheckParam (Prüfung der Parameter)
3: BACnetAdapterStatus_GetGatewayMAC (MAC des Gateways ermitteln)
4: BACnetAdapterStatus_WaitGatewayMAC (Auf MAC Adresse des Gateways warten)
5: BACnetAdapterStatus_Complete (Fertig initialisiert und bereit)

bEthLinkOk: Die lokale Ethernet-Verbindung ist aktiv (Kabel gesteckt, Adapter verbunden), wenn der Ausgang auf TRUE gesetzt ist.

bGatewayOk: Das konfigurierte Gateway ist erreichbar, wenn der Ausgang auf TRUE gesetzt ist.

sAmsNetId: Ausgabe der AMS-NetID des lokalen BACnet-Adapters (kann für den asynchronen Zugriff via ADS auf BACnet-Objekte verwendet werden).

bFirstCycle: Wird mit dem ersten Aufruf der Bausteininstanz nach SPS-Reset bzw. -Neustart für einen Zyklus gesetzt.

bError: Ein Fehler steht an.

nErrorId: Fehlernummer (0 = kein Fehler; 1 = keine gültige AMS-NetID). Die Fehlernummern können als Baustein-Konstanten über die FB-Instanz abgefragt werden (FB_BACnet_Adapter.nERR_xxx).

FB_BACnet_Adapter 4:

Bei fehlender Netzwerkverbindung (bEthLinkOk = FALSE) bzw. nicht erreichbarem Gateway (bGatewayOk = FALSE) werden alle verbundenen Remote-Objekte (Clients) gesperrt. Lokale Objekte sind davon nicht betroffen.