FB_EcDcTimeCtrl

FB_EcDcTimeCtrl 1:

Mit diesem Funktionsbaustein können die einzelnen Komponenten wie Jahr, Monat, Tag usw. einer 64 Bit TwinCAT "Distributed Clock System Time"-Variablen gelesen werden. Der Funktionsbaustein besitzt mehrere A_GetXYZ-Aktionen. Nach dem Aufruf der gewünschten Aktion steht der Wert der XYZ-Komponente in der get-Ausgangsvariablen zur Verfügung. Die put-Eingangsvariable wird zurzeit nicht benutzt.

Der Funktionsbaustein besitzt zurzeit folgende Aktionen:

VAR_IN_OUT

VAR_IN_OUT
    in          : T_DCTIME;
END_VAR

in: TwinCAT "Distributed Clock System Time"-Variable;

VAR_INPUT

VAR_INPUT
    put         : WORD;
END_VAR

put: Eingangsparameter (zur Zeit  nicht benutzt);

VAR_OUTPUT

VAR_OUTPUT
    bError      : BOOL;
    get         : WORD;
END_VAR

bError: Dieser Ausgang wird gesetzt wenn ein Fehler beim Aktionsaufruf aufgetreten ist;

get: Ausgangsparameter ( Jahr, Monat, Tag usw.);

Beispiel für eine Implementierung in ST: 

PROGRAM P_TEST
VAR
    dcStruct    : DCTIMESTRUCT;
    dcTime      : T_DCTIME;
    fbCtrl      : FB_EcDcTimeCtrl;

    wYear       : WORD;
    wMonth      : WORD;
    wDay        : WORD;
    wDayOfWeek  : WORD;
    wHour       : WORD;
    wMinute     : WORD;
    wSecond     : WORD;
    wMilli      : WORD;
    wMicro      : WORD;
    wNano       : WORD;
END_VAR
dcTime := F_GetCurDcTickTime();

fbCtrl.A_GetYear( in := dcTime, get => wYear );
fbCtrl.A_GetMonth( in := dcTime, get => wMonth );
fbCtrl.A_GetDay( in := dcTime, get => wDay );
fbCtrl.A_GetDayOfWeek( in := dcTime, get => wDayOfWeek );
fbCtrl.A_GetHour( in := dcTime, get => wHour );
fbCtrl.A_GetMinute( in := dcTime, get => wMinute );
fbCtrl.A_GetSecond( in := dcTime, get => wSecond );
fbCtrl.A_GetMilli( in := dcTime, get => wMilli );
fbCtrl.A_GetMicro( in := dcTime, get => wMicro );
fbCtrl.A_GetNano( in := dcTime, get => wNano );

 

Voraussetzungen

Entwicklungsumgebung

Zielplattform

Einzubindende SPS Bibliotheken

TwinCAT v2.10.0 Build > 1316 oder höher

PC oder CX (x86, ARM)

TcEtherCAT.Lib
( Standard.Lib; TcBase.Lib; TcSystem.Lib, TcUtilities.Lib werden automatisch eingebunden )