DT auflösen

msbes

Level-1
Beiträge
60
Reaktionspunkte
0
Hallo,

folgendes Problem.

Wie kann ich ein DT (BYTE) auflösen in Datum (Byte) Wochentag (Byte) Stunde (Byte) Minute (Byte)?

Gruß
 
Moin moin,

eine Möglichkeit ist:

str := DT_TO_STRING gibt dir dein DT Wert als String zurück. den kannste dann ja mit String-Funktionen bearbeiten wie du willst ...

Grüße
 
wie kann ich das jetzt alles einzeln rausfiltern?

Ich bin neu bei Codesys. Bitte um eine ausführliche Antwort.
 
Code:
PROGRAM PLC_PRG
VAR
	dtDate : DT := DT#1996-05-06-15:36:30;
	sDateString : STRING;
	
	bySeconds : BYTE;
	byMinutes : BYTE;
	byHours : BYTE;
	
	byDay : BYTE;
	byMonth : BYTE;
	wYear : WORD;
END_VAR
Code:
sDateString := DT_TO_STRING(dtDate);

bySeconds := STRING_TO_BYTE(STANDARD.RIGHT(STR := sDateString, SIZE := 2));
byMinutes := STRING_TO_BYTE(STANDARD.MID(STR := sDateString, LEN := 2, POS := (LEN(sDateString)-4)));
byHours := STRING_TO_BYTE(STANDARD.MID(STR := sDateString, LEN := 2, POS := (LEN(sDateString)-7)));

byDay := STRING_TO_BYTE(STANDARD.MID(STR := sDateString, LEN := 2, POS := (LEN(sDateString)-10)));
byMonth := STRING_TO_BYTE(STANDARD.MID(STR := sDateString, LEN := 2, POS := (LEN(sDateString)-13)));
wYear := STRING_TO_WORD(STANDARD.MID(STR := sDateString, LEN := 4, POS := (LEN(sDateString)-18)));
 
Hi,
in der Wago lib scheduler03 gibt es die Funktion FuDT_To_DetailTime.
Damin kannst du alle Details extrahieren...
Gruß
 
@tomrey: nicht die richtige Funktion dabei. Trotzdem DANKE
@Mensetta: bekomme eine Fehlermeldung. (siehe Anhang) was ist falsch gelaufen?
 

Anhänge

  • DT_Fehler.jpg
    95,4 KB · Aufrufe: 79
MID und RIGHT sind Funktionen aus der Standard.lib. Ich weiss nicht warum Mensetta den Aufruf mit STANDARD.MID bzw STANDARD.RIGHT gemacht hat. MID oder RIGHT sollte eigentlich reichen wenn die Lib eingebunden ist.
Die Deklaration von Standard als bool kannst du bei dir wieder löschen. Das wäre so oder so falsch.
 
Also DT erst in einen String zu konvertieren, und dann aus den Strings wieder Werte dürfte so ziemlich das unperformanteste sein was es gibt. Zum Glück sieht man nicht was dadurch im Hintergrund für unnütze Anweisungen ausgeführt werden. Hat natürlich den Vorteil dass man keine externen Bibliotheken benötigt.

In der Oscat Bibliothek sind ebenfalls Funktionen enthalten um einen DT zu zerlegen - ohne String-Umweg.
 
Für die Nutzung dieser Website sind Cookies erforderlich. Du musst diese akzeptieren, um die Website weiter nutzen zu können. Erfahre mehr…