Uhrzeit und Datum in Codesys

Bakr

Level-1
Beiträge
17
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo

ich möchte gern die Uhrzeit und das Datum des Systems bei der Visualisierung von Codesys zeigen! ich habe die Bibliothek SyslibRTC.Lib geguckt und auch die Funktion sysRTCGettime auspropiert und auch die Variable Dummy auf TRUE GESETZT: Trotzdem sehe ich in der Visualisierung kommisches Datum und kommische Uhrzeit 1970.1.1 00:00 !!!!!!

könnte jemand mir dabei helfen, die dieses Problem vorher erlebt hat?
 
Hallo,

das ist etwas zu wenig an Info. sysRTCGettime gibt meines Wissens ein DWORD zurück, vergangene Zeit seit 1.1.1970 00:00. Wie hast du diesen Wert zerlegt/Anzeigen lassen? Es wäre auch gut zu wissen welche Steuerung du einsetzt.

Grüße
 
Zuviel Werbung?
-> Hier kostenlos registrieren
das Format des Wertes ist DATE_AND_TIME

Den Ausgang der Funktion, der mit dem Format DATE_AND_TIME ist, habe ich in eine Textausgabe in der Visualisierung angelegt.

ich setze Codesys ABB ein! aber was ich mache ist nur eine Simulation bei der Visualisierung in codesys, es gibt kein realistische Hardware.
 
Hallo nochmal,

in einer Simulation wirst du keinen sinnvollen Wert von dieser Funktion zurück bekommen, es bleibt bei Null, und das ist in diesem Fall der 1.1.1970.

Es gibt auch Zeitformat für Texte diese können in der Visu die jeweilige Systemzeit darstellen

Beispiele:
%t%a %b %d.%m.%y %H:%M:%S
-> Ausgabe im Online Modus: Wed Aug 28.08.02 16:32:45

aus der Hilfe-Datei F1 kopiert.

Das könnte auch innerhalb der Simulation funktionieren.

Grüße
 
Zuletzt bearbeitet:
Danke für deine Hilfe und diese Information, aber was das code ist das ich in codesys und visualisierung schreiben kann um ZB 28.08.02 16:32:45 in der Visualisierung Simulation anzuzeigen

Grüße
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich versteh deine Frage nicht ganz. Was genau hast du vor/willst du erreichen?

Eine reine Zeitanzeige in der Visualisierung oder einen Wert im Programm mit dem z.B.: eine Zeitschaltfunktion umsetzen kannst?

Gruß,
Sagas
 
Okay, also nochmal sortiert:

mit einem Rechteck in der Visualiesierung mit dem Inhalt "%t%d.%m.%y %H:%M:%S " zeigt dir die Visu, auch in der Simulation, Datum und Uhrzeit an, das ist NICHT die Zeit in der SPS.

Mit der sysRTCGettime Funktion bekommst du die Zeit seit dem 1.1.1970 als DT Format, das geht nicht in der Simulation. Diesen Wert kannst du dann aber immer weiter zerlegen um Datum, Stunden , Minuten usw. in zb. einem Byte zu speichern und später für Vergleiche in der Logik zu nutzen.

Zur Anzeige solltest du es als String wandeln:

Code:
dtDate:=SysRTCGetTime(dummy:=True);
DatumString:=DATE_TO_STRING(DT_TO_DATE(dtDate));

sollte z.b. funktionieren.

Gruß Sagas
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ich hab umgesetzt, was du mir geschrieben hast, aber bei der Visualisierung ist der Messwert immer so: t.66675520.m.y H:M:

ich verstehe, was das bedeutet!!!!
 
Hallo,

vielleicht ist es einfacher wenn du kurz einen Screenshot machts und zeigst wie genau es aussieht und was im Programm/der Visu steht.

Um evtl. der Verwirrung vorzubeugen: für die Zeile %t%d.%m.%y %H:%M:%S wird KEINE Variable unter "Textvariable" hinterlegt. Bei Text neben Inhalt findest du eine Schaltfläch mit "?" dort werden dir nochmal alle möglichen Formatierungen aufgelistet.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Moin Moin,

ich bin Shahin und programmiere derzeit für den Abschluss meine Facharbeit. Nun bin ich genau da gelandet, wo ich mir eventuell Hilfe holen kann. Das Problem ist gerade bei mir, ich möchte die Uhrzeit und das Datum immer aktuell zeigen in der Visu, könnte jemand da weiterhelfen?
Ich bin in diesem Forum ganz neu, schaue ich mal wie ich zurecht komme,
LG
Shahin
 
PROGRAM SPS_Zeit
VAR

iState : INT;
CurrentDateAndTime : DATE_AND_TIME;
GetCurrentDateAndTime : DTU.GetDateAndTime;
SetCurrentTimeZoneInformation: DTU.SetTimeZoneInformation;
uiYear : UINT;
uiMonth : UINT;
uiDay : UINT;
uiHour : UINT;
uiMinute : UINT;
uiSecond : UINT;
uimillSecond : UINT;
SetCurrentDateAndTime : DTU.SetDateAndTime;
secpulsFB : R_TRIG;
secpuls : BOOL;
olds : UINT;
news : UINT;
change : BOOL;
scount : DINT;

sDatum_Zeit : STRING;


END_VAR

CASE iState OF
0: iState:= 1;
// Set the current timezone. The times to set the clock

SetCurrentTimeZoneInformation(
xExecute:= TRUE,
tziInfo:= DTU.GlobalConstants.gc_tziTimeZoneCET);
IF SetCurrentTimeZoneInformation.xDone THEN
SetCurrentTimeZoneInformation(xExecute:= FALSE);
iState:= 1;
END_IF
IF SetCurrentTimeZoneInformation.xError THEN
SetCurrentTimeZoneInformation(xExecute:= FALSE);
iState:= 32767;
END_IF

1: // Fetch the current date and time.
GetCurrentDateAndTime(
xExecute:= TRUE);
IF GetCurrentDateAndTime.xDone THEN
CurrentDateAndTime:= GetCurrentDateAndTime.dtDateAndTime;
GetCurrentDateAndTime(xExecute:= FALSE);
iState:= 2;
END_IF
IF GetCurrentDateAndTime.xError THEN
GetCurrentDateAndTime(xExecute:= FALSE);
iState:= 32767;
END_IF

2: // Split the date and time in its parts.
IF DTU.DTSplit(
CurrentDateAndTime,
ADR(uiYear),
ADR(uiMonth),
ADR(uiDay),
ADR(uiHour),
ADR(uiMinute),
ADR(uiSecond)) = DTU.ERROR.NO_ERROR
THEN
iState:= 1;
ELSE
iState:= 32767;
END_IF

32767: (*error*) ;
iState:= 1;
END_CASE

sDatum_Zeit:= TO_STRING(CurrentDateAndTime);
 

Anhänge

  • 2025-08-26 11_13_41-LEER.project_ - CODESYS.png
    2025-08-26 11_13_41-LEER.project_ - CODESYS.png
    109,4 KB · Aufrufe: 6
  • 2025-08-26 11_17_27-LEER.project_ - CODESYS.png
    2025-08-26 11_17_27-LEER.project_ - CODESYS.png
    28,4 KB · Aufrufe: 5
  • 2025-08-26 11_32_42-LEER.project_ - CODESYS.png
    2025-08-26 11_32_42-LEER.project_ - CODESYS.png
    61,7 KB · Aufrufe: 4
Zuletzt bearbeitet:
Zurück
Oben