FB_EcDcTimeCtrl
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:
- A_GetYear;
- A_GetMonth;
- A_GetDay;
- A_GetDayOfWeek;
- A_GetHour;
- A_GetMinute;
- A_GetSecond;
- A_GetMilli;
- A_GetMicro;
- A_GetNano;
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 |