FB_BACnet_Adapter

Funktionsbaustein für die Anbindung des PLC Programms an einen lokalen BACnet-Adapter (Netzwerkkarte). 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.

Achtung:

Dieser Baustein darf nicht im PLC Programm instanziiert werden! Eine Instanz des Bausteins ist bereits in den globalen Daten der PLC Library enthalten (fbBACnet_Adapter) und wird dort automatisch vom PLC Automapping erfasst. Die Instanziierung im PLC Programm ist nur bei Verwendung mehrer BACnet-Adapter in einem PLC Programm nötig!

 

FB_BACnet_Adapter 1:

 

Anwendung

Mit Hilfe des Funktionsbausteins FB_BACnet_Adapter wird der Zustand des lokalen BACnet Adapters gelesen (Prozessdatum Device Status) und im PLC Programm ausgegeben. Zudem wird mit Hilfe des Prozessdatums AmsNetId die AMS-NetID des BACnet-Adapters gelesen und an sAmsNetId ausgegeben.

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

Wie bereits oben beschrieben, wird eine Instanz des Bausteins FB_BACnet_Adapter bereits durch die PLC Library als globale Instanz bereitgestellt und darf daher nicht explizit angelegt werden. Die globale Instanz durch das PLC-Automapping erkannt und automatisch mit dem entsprechenden BACnet-Adapter im System Manager verknüpft.

Die Bausteininstanz wird von den BACnet Funktionsbausteinen FB_BACnet_Device und FB_BACnet_RemoteDevice benötigt. Im Folgenden ist die Hierarchie zwischen FB_BACnet_Adapter, FB_BACnet_Device und einem BACnet Objekt vom Typ AnalogValue dargestellt:

FB_BACnet_Adapter 3:
Bild-2: Abhängigkeit zwischen FB_BACnet_Adapter, FB_BACnet_Device und eines BACnet-Funktionsbausteins (Bsp.: FB_BACnet_AnalogValue).

 

  • Rot-gestrichelt: Funktionsbausteinaufruf FB_BACnet_Adapter aus den globalen Daten der PLC Library. Jeder Aufruf aktualisiert den globalen Pointer pBACnet_Adapter, den die Bausteine FB_BACnet_Device und FB_BACnet_RemoteDevice als Adapter-Referenz verwenden.
  • Rot: Device Baustein FB_BACnet_Device und FB_BACnet_RemoteDevice intern, wird die globale Instanz des BACnet Adapters verwendet, um den Status der BACnet Verbindung zu prüfen und die AMS-NetID zu lesen. Dabei wird die Instanz über den globlen Pointer pBACnet_Adaper ermittelt. Der globale Pointer kann ebenfalls im PLC Programm, vor Aufruf von FB_BACnet_Device und FB_BACnet_RemoteDevice, mit der eigenen Adapter Instanz überschrieben werden. So können beispielsweise PLC Programme mit mehreren Adaptern realisiert werden.
  • Orange-gestrichelt: Funktionsbausteinaufruf FB_BACnet_Device mit der Instanz aus dem PLC Programm. Die Instanz wird vom Anwender im PLC Programm lokal oder global angelegt und vom PLC Automapping mit dem entsprechenden Device im TwinCAT System Manager verknüpft.
  • Orange: Übergabe der Device Instanz (FB_BACnet_Device) an den Funktionsbaustein des BACnet Objekts. Der Funktionsbaustein des BACnet Objekts liest u.a. den Devicestatus aus der Instanz.

Tipp:

Die Instanz des Bausteins FB_BACnet_Adapter muss nicht im PLC Programm aufgerufen werden. Der Aufruf des Adapter wird bei Bedarf automatisch von den Bausteinen FB_BACnet_Device bzw. FB_BACnet_RemoteDevice vorgenommen.

VAR_OUPUT

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

eAdapterStatus: Aktueller Status des BACnet-Adapters; siehe: E_BACNETADAPTERSTATUS.

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: Fehlercode, siehe BACnet_Globals für eine Übersicht.

FB_BACnet_Adapter 4:

Bei fehlender Netzwerkverbindung (bEthLinkOk = FALSE) bzw. nicht erreichbarem Gateway (bGatewayOk = FALSE), werden sämtliche Remote-Objekte (BACnet Objekte unter einem Clients) gesperrt. Objekte des lokale BACnet Servers sind davon nicht betroffen.