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.
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:
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).
Bei fehlender Netzwerkverbindung (bEthLinkOk = FALSE) bzw. nicht erreichbarem Gateway (bGatewayOk = FALSE) werden alle verbundenen Remote-Objekte (Clients) gesperrt. Lokale Objekte sind davon nicht betroffen. |