TwinCAT 3 HMI - Eingabe Datum und Uhrzeit

merlin

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

Ich hab in der SPS eine DATE_AND_TIME Variable.
Gibt es in der HMI eine Art Date&Time-Picker?
Aktuell habe ich ein normales Textfeld mit %c formatiert. Leider funktioniert das aber nicht, es wird weder der korrekte Wert angezeigt noch auf die Variable geschrieben.

Wie bringe ich eine DT-Variable korrekt auf die HMI?

Danke, Thomas
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also ich hab mir das in der PLC so vorbereitet:

Code:
TYPE TimeStampUnion :
UNION
  fileTime : Tc2_Utilities.T_FILETIME;
  wholeTimeStamp : LWORD;
END_UNION
END_TYPE

Code:
VAR
  calcAktTime_ : Tc2_Utilities.FB_FileTimeToTzSpecificLocalTime();
  timeStampUnion_ : TimeStampUnion;
  timezoneInformation_ : Tc2_Utilities.ST_TimeZoneInformation;
  tempFileTime_ : Tc2_Utilities.T_FILETIME; (* Temporäre FileTime Variable *)
  tempTimeStruct_ : Tc2_Utilities.TIMESTRUCT; (* Temporäre Timestruct *)

  myTime_ : STRING;
END_VAR

Code:
timeStampUnion_.wholeTimeStamp := Tc2_System.F_GetSystemTime();


(* Die Systemzeit um die ZeitzonenInformation korrigieren *)
calcAktTime_(in:=timeStampUnion_.fileTime, tzInfo:=timezoneInformation_, out=>tempFileTime_);


(* Nun Filetime in Systemtime umwandeln *)
tempTimeStruct_ := Tc2_Utilities.FILETIME_TO_SYSTEMTIME(fileTime:=tempFileTime_);



(* Zum Abschluss oben gewählte Zeit in String umwandeln *)
myTime_ := Tc2_Utilities.SYSTEMTIME_TO_STRING(tempTimeStruct_);

Die Variable timezoneInformation_ musst du dir noch mit der Funktion Tc2_Utilities.FB_GetTimeZoneInformation(); laden.
Ich hoffe ich hab nichts vergessen, einfach mal testen sonst nochmal melden.

Sg
 
Ich nutze den FB_LocalSystemTime wandle den Ausgang auf DT und im Anschluss auf einen String und separiere letztlich Datum und Zeit.
Anzeige dann mit %s.

Grüße
 
Zurück
Oben