FB_BA_ExternalSysTime

FB_BA_ExternalSysTime 1:

Das Template liest in regelmäßigen Zeitabständen die NT-Systemzeit eines externen TwinCAT System aus.

Wenn das Auslesen erfolgreich war, dann wird die externe Systemzeit auf die lokale NT-Systemzeit des TwinCAT Systems und die lokale BACnet-Systemzeit des TwinCAT Systems geschrieben.

In regelmäßigen Zeitabständen werden die beiden lokalen Systemzeiten ausgelesen und in der SPS auf lokale und globale Variablen abgebildet.

Blockschaltbild

FB_BA_ExternalSysTime 2:

Syntax

FUNCTION_BLOCK FB_BA_ExternalSysTime
VAR_INPUT CONSTANT PERSISTET
  sExternalAmsNetId                      : T_AmsNetId := '';
  {attribute 'parameterUnit':= 's'}
  GetExtSysTime_nTiAuto                  : UDINT := 600;
  {attribute 'parameterUnit':= 's'}
  GetLocalSysTime_nTiAuto                : UDINT := 60;
END_VAR
VAR_INPUT CONSTANT
  GetExtSysTime                          : FB_BA_GetTime;

  SetSysTimeLocal                        : FB_BA_SetTime;
  SetBACnetAdapterTime                   : FB_BACnet_SetAdapterTime;

  GetLocalSysTime                        : FB_BA_GetTime;
  GetBACnetAdapterTime                   : FB_BACnet_GetAdapterTime;
END_VAR
VAR
  GetExtSysTime_bSync                    : BOOL;
  GetExtSysTime_rtrigSync                : R_TRIG;

  GetBACnetAdapterTime_wYear             : WORD;
  GetBACnetAdapterTime_wMonth            : WORD;
  GetBACnetAdapterTime_wDayOfWeek        : WORD;
  GetBACnetAdapterTime_wDay              : WORD;
  GetBACnetAdapterTime_wHour             : WORD;
  GetBACnetAdapterTime_wMinute           : WORD;
  GetBACnetAdapterTime_wSecond           : WORD;
  GetBACnetAdapterTime_wMilliseconds     : WORD;
END_VAR

FB_BA_ExternalSysTime 3: Eingänge CONSTANT PERSISTENT

Name

Typ

Beschreibung

sExternalAmsNetId

T_AmsNetId

Hier wird die AmsNetId des TwinCAT-Rechners angegeben dessen NT-Systemzeit ausgelesen werden soll.

GetBACnetAdapterTime_nTiAuto

UDINT

Anhand dieser Zeitangabe wird die lokale BACnet-Systemzeit des TwinCAT Systems regelmäßig ermittelt.

GetLocalSysTime_nTiAuto

UDINT

Anhand dieser Zeitangabe wird die lokale NT-Systemzeit des TwinCAT Systems regelmäßig ermittelt.

FB_BA_ExternalSysTime 4: Eingänge CONSTANT

Name

Typ

Beschreibung

GetExtSysTime

FB_BA_GetTime

Der Funktionsbaustein GetExtSysTime ermittelt die externe NT-Systemzeit eines TwinCAT Systems.

SetSysTimeLocal

FB_BA_SetTime

Die lokal, ermittelte BACnet-Systemzeit (GetBACnetAdapterTime) wird mit dem Funktionsbaustein SetSysTimeLocal auf die lokale NT-Systemzeit des TwinCAT-Systems geschrieben.

SetBACnetAdapterTime

FB_BACnet_SetAdapterTime

Der Funktionsbaustein SetBACnetAdapterTime kann sowohl die lokale BACnet-Systemzeit eines TwinCAT-Systems (SetBACnetAdapterTime.bTrigSyncLocal) wie auch durch Auslösen eines Broadcast-Befehls (SetBACnetAdapterTime.bTrigSyncBroadcast) sämtliche BACnet-Systemzeiten eines Netzes setzen. Wichtige Parameter sind unten erlätert.

GetLocalSysTime

FB_BA_GetTime

Der Funktionsbaustein GetLocalSysTime ermittelt die lokale NT-Systemzeit des TwinCAT-Systems. Die ermittelte Zeit wird an die globale Variablenlisten SysTime übertragen.

GetBACnetAdapterTime

FB_BACnet_GetAdapterTime

Der Funktionsbaustein "GetBACnetAdapterTime" ermittelt die lokale BACnet-Systemzeit. Wichtige Parameter sind unten erläutert.

VAR

Name

Typ

Beschreibung

GetExtSysTime_bSync

BOOL

Die Variable löst das Schreiben der externen Systemzeit auf die lokale NT-Systemzeit des TwinCAT Systems und die lokale BACnet-Systemzeit des TwinCAT Systems aus.

GetExtSysTime_rtrigSync

R_TRIG

Der Funktionsbaustein erzeugt nach dem erfolgreichen Auslesen der externen Systemzeit GetExtSysTime eine steigende Flanke und gibt diese an GetExtSysTime_bSync weiter.

GetBACnetAdapterTime_wYear

WORD

Jahresangabe der BACnet-Systemzeit.

GetBACnetAdapterTime_wMonth

WORD

Monatsangabe der BACnet-Systemzeit.

GetBACnetAdapterTime_wDayOfWeek

WORD

Angabe des Wochentages der BACnet-Systemzeit.

GetBACnetAdapterTime_wDay

WORD

Angabe des Tages im Monat der BACnet-Systemzeit.

GetBACnetAdapterTime_wHour

WORD

Stundenangabe der BACnet-Systemzeit.

GetBACnetAdapterTime_wMinute

WORD

Minutenangabe der BACnet-Systemzeit.

GetBACnetAdapterTime_wSecond

WORD

Sekundenangabe der BACnet-Systemzeit.

GetBACnetAdapterTime_wMilliseconds

WORD

Millisekundenangabe der BACnet-Systemzeit.

Parameter of SetBACnetAdapterTime

Diese Parameter dienen zur Konfiguration der Zeitsynchronisation.

Name

Typ

Beschreibung

SetBACnetAdapterTime.bTrigSyncLocal

BOOL

Bei einer steigenden Flanke an diesem Eingang wird der Inhalt der Struktur SetBACnetAdapterTime.stDateTime auf die lokale BACnet-Systemzeit des TwinCAT-Systems geschrieben.

SetBACnetAdapterTime.bTrigSyncBroadcast

BOOL

Bei einer steigenden Flanke an diesem Eingang wird der Inhalt der Struktur SetBACnetAdapterTime.stDateTime auf sämtliche BACnet-Systemzeiten eines Netzes wie auch die lokale BACnet-Systemzeit des TwinCAT-Systems geschrieben.

SetBACnetAdapterTime.stDateTime

ST_BA_DateTime

Zeitangabe, die auf die lokale BACnet-Systemzeit geschrieben wird.

SetBACnetAdapterTime.fbAdapter

fbAdapter

Der Funktionsbaustein fbAdapter repräsentiert ein BACnet Device. Dieses ist vorinitialisiert auf das lokale BACnet Device des TwinCAT Systems unter Geräte.

SetBACnetAdapterTime.bSuccess

BOOL

Die Systemzeit wurde erfolgreich aus dem Zielsystem gelesen. Die Variable ist für einen Zyklus TRUE.

SetBACnetAdapterTime.bError

BOOL

Fehler beim Auslesen der BACnet-Systemzeit.

Parameter of GetBACnetAdapterTime

Diese Parameter dienen zur Konfiguration der Zeitsynchronisation.

Name

Typ

Beschreibung

GetBACnetAdapterTime.bTrig

BOOL

Bei einer steigenden Flanke an diesem Eingang wird die lokale BACnet-Systemzeit eines TwinCAT-Systems ermittelt.

GetBACnetAdapterTime.nTiAuto

UDINT

Anhand dieser Zeitangabe aus dem Parameter Menü wird die lokale BACnet-Systemzeit eines TwinCAT-Systems regelmäßig automatisch ermittelt.

Die Zeitangabe muss größer gleich 500ms sein. Der Default Wert beträgt 1800s.

GetBACnetAdapterTime.fbAdapter

fbAdapter

Der Funktionsbaustein fbAdapter repräsentiert ein BACnet Device. Dieses ist vorinitialisiert auf das lokale BACnet Device des TwinCAT Systems unter Geräte.

GetBACnetAdapterTime.bSuccess

BOOL

Die Systemzeit wurde erfolgreich aus dem Zielsystem gelesen. Die Variable ist für einen Zyklus TRUE.

GetBACnetAdapterTime.stDateTime

ST_BA_DateTime

Aktuelle BACnet-Systemzeit eines TwinCAT-Systems.

GetBACnetAdapterTime.stTimeStruct

TIMESTRUCT

Aktuelle BACnet-Systemzeit eines TwinCAT-Systems.

GetBACnetAdapterTime.bError

BOOL

Fehler beim Auslesen der BACnet-Systemzeit.

Voraussetzungen

Entwicklungsumgebung

Erforderliche Function

TwinCAT ab v3.1.4024.35

TF8040 | TwinCAT Building Automation ab V5.0.0.0