Hallo,
bitte nicht lachen, bin noch Anfänger in Codesys.
Ich möchte einer Variablen die Systemzeit zuweisen.
Wenn dann die Variable einer vogegebenen Zeit (hh.mm.ss) entspricht,
soll eine weitere Variable auf TRUE bzw. False gesetzt werden.
Kann mir jemand sagen wie´s geht ?
Danke
Martin
Hallo maddi67,
ich gehe mal davon aus, dass in diesem Forum niemand über eine Frage (oder den Fragenden) lacht
Nun zu deinem Anliegen:
Um die Systemzeit zu lesen, benötigst du die Bibliothek SysLibRtc.lib. Diese musst du in dein Projekt einbinden.
Mit dem Befehl
Echtzeit := SysRtcGetTime(dummy); (* Echtzeit lesen *)
wird die komplette Datum/Zeit-Information der CPU übernommen. Das bedeutet, die Variable "Echtzeit" muss vom Typ DT sein, also:
VAR Echtzeit: DT; (* Systemzeit komplett (z.B. DT#2006-11-21-18:42:31) im Format DT *)
Diese DT-Info muss gewandelt werden in einen String
Echtzeit_String:=DT_TO_STRING(Echtzeit); (* Echtzeit umwandeln in String *)
Je nach Bedarf werden die einzelnen Informationen vereinzelt und nach Int gewandelt.
Jahr:=STRING_TO_INT(MID(Echtzeit_String, 4, 4)); Monat:=STRING_TO_INT(MID(Echtzeit_String, 2, 9)); Tag:=STRING_TO_INT(MID(Echtzeit_String, 2, 12)); Stunde:=STRING_TO_INT(MID(Echtzeit_String, 2, 15)); Minute:=STRING_TO_INT(MID(Echtzeit_String, 2, 18 )); Sekunde:=STRING_TO_INT(MID(Echtzeit_String, 2, 21));
Alle Variablen müssen natürlich vereinbart werden. Am Besten global, dann stehen die Informationen projektweit zur Verfügung.
Eine Schaltuhr soll täglich um 18.34 Uhr einen 1s langen Impuls liefern: IF Stunde = 18 AND Minute = 34 AND Sekunde = 0 THEN Schaltuhr := TRUE; ELSE Schaltuhr := FALSE; END_IF;
Teste mal und viel Erfolg
Norbert
Hallo Norbert !
Es funktioniert !
Vielen Dank !!!
das war wirklich ausführlich und hat mich auch wieder auf einige ideen gebracht...
danke!
PS: ich hätte hier erst einmal mit TIME(TIME_TO_DWORD()) angefangen...
Log in to post a comment.
Hallo,
bitte nicht lachen, bin noch Anfänger in Codesys.
Ich möchte einer Variablen die Systemzeit zuweisen.
Wenn dann die Variable einer vogegebenen Zeit (hh.mm.ss) entspricht,
soll eine weitere Variable auf TRUE bzw. False gesetzt werden.
Kann mir jemand sagen wie´s geht ?
Danke
Martin
Hallo maddi67,
ich gehe mal davon aus, dass in diesem Forum niemand über eine Frage (oder den Fragenden) lacht
Nun zu deinem Anliegen:
Um die Systemzeit zu lesen, benötigst du die Bibliothek SysLibRtc.lib. Diese musst du in dein Projekt einbinden.
Mit dem Befehl
wird die komplette Datum/Zeit-Information der CPU übernommen. Das bedeutet, die Variable "Echtzeit" muss vom Typ DT sein, also:
Diese DT-Info muss gewandelt werden in einen String
Je nach Bedarf werden die einzelnen Informationen vereinzelt und nach Int gewandelt.
Alle Variablen müssen natürlich vereinbart werden. Am Besten global, dann stehen die Informationen projektweit zur Verfügung.
Teste mal und viel Erfolg
Norbert
Hallo Norbert !
Es funktioniert !
Vielen Dank !!!
Martin
das war wirklich ausführlich und hat mich auch wieder auf einige ideen gebracht...
danke!
PS: ich hätte hier erst einmal mit TIME(TIME_TO_DWORD()) angefangen...