// Jahr
"MAIN_CLOCK_DB".LokalzeitDateChar.YYYY[0] := BYTE_TO_CHAR(INT_TO_BYTE(UINT_TO_INT("MAIN_CLOCK_DB".Lokalzeit.YEAR) / 1000 MOD 10) + 16#30);
"MAIN_CLOCK_DB".LokalzeitDateChar.YYYY[1] := BYTE_TO_CHAR(INT_TO_BYTE(UINT_TO_INT("MAIN_CLOCK_DB".Lokalzeit.YEAR) / 100 MOD 10) + 16#30);
"MAIN_CLOCK_DB".LokalzeitDateChar.YYYY[2] := BYTE_TO_CHAR(INT_TO_BYTE(UINT_TO_INT("MAIN_CLOCK_DB".Lokalzeit.YEAR) / 10 MOD 10) + 16#30);
"MAIN_CLOCK_DB".LokalzeitDateChar.YYYY[3] := BYTE_TO_CHAR(INT_TO_BYTE(UINT_TO_INT("MAIN_CLOCK_DB".Lokalzeit.YEAR) MOD 10) + 16#30);
// Monat
"MAIN_CLOCK_DB".LokalzeitDateChar.MM[0] := BYTE_TO_CHAR(INT_TO_BYTE(USINT_TO_INT("MAIN_CLOCK_DB".Lokalzeit.MONTH) / 10 MOD 10) + 16#30);
"MAIN_CLOCK_DB".LokalzeitDateChar.MM[1] := BYTE_TO_CHAR(INT_TO_BYTE(USINT_TO_INT("MAIN_CLOCK_DB".Lokalzeit.MONTH) MOD 10) + 16#30);
// Tag
"MAIN_CLOCK_DB".LokalzeitDateChar.DD[0] := BYTE_TO_CHAR(INT_TO_BYTE(USINT_TO_INT("MAIN_CLOCK_DB".Lokalzeit.DAY) / 10 MOD 10) + 16#30);
"MAIN_CLOCK_DB".LokalzeitDateChar.DD[1] := BYTE_TO_CHAR(INT_TO_BYTE(USINT_TO_INT("MAIN_CLOCK_DB".Lokalzeit.DAY) MOD 10) + 16#30);
// Stunde
"MAIN_CLOCK_DB".LokalzeitTimeChar.hh[0] := BYTE_TO_CHAR(INT_TO_BYTE(USINT_TO_INT("MAIN_CLOCK_DB".Lokalzeit.HOUR) / 10 MOD 10) + 16#30);
"MAIN_CLOCK_DB".LokalzeitTimeChar.hh[1] := BYTE_TO_CHAR(INT_TO_BYTE(USINT_TO_INT("MAIN_CLOCK_DB".Lokalzeit.HOUR) MOD 10) + 16#30);
// Minute
"MAIN_CLOCK_DB".LokalzeitTimeChar.mm[0] := BYTE_TO_CHAR(INT_TO_BYTE(USINT_TO_INT("MAIN_CLOCK_DB".Lokalzeit.MINUTE) / 10 MOD 10) + 16#30);
"MAIN_CLOCK_DB".LokalzeitTimeChar.mm[1] := BYTE_TO_CHAR(INT_TO_BYTE(USINT_TO_INT("MAIN_CLOCK_DB".Lokalzeit.MINUTE) MOD 10) + 16#30);
// Sekunde
"MAIN_CLOCK_DB".LokalzeitTimeChar.ss[0] := BYTE_TO_CHAR(INT_TO_BYTE(USINT_TO_INT("MAIN_CLOCK_DB".Lokalzeit.SECOND) / 10 MOD 10) + 16#30);
"MAIN_CLOCK_DB".LokalzeitTimeChar.ss[1] := BYTE_TO_CHAR(INT_TO_BYTE(USINT_TO_INT("MAIN_CLOCK_DB".Lokalzeit.SECOND) MOD 10) + 16#30);
// Millisekunde
"MAIN_CLOCK_DB".LokalzeitTimeChar.msmsmsms[0] := BYTE_TO_CHAR(DINT_TO_BYTE(UDINT_TO_DINT("MAIN_CLOCK_DB".Lokalzeit.NANOSECOND) / l#100_000_000 MOD 10) + 16#30);
"MAIN_CLOCK_DB".LokalzeitTimeChar.msmsmsms[1] := BYTE_TO_CHAR(DINT_TO_BYTE(UDINT_TO_DINT("MAIN_CLOCK_DB".Lokalzeit.NANOSECOND) / l#10_000_000 MOD 10) + 16#30);
"MAIN_CLOCK_DB".LokalzeitTimeChar.msmsmsms[2] := BYTE_TO_CHAR(DINT_TO_BYTE(UDINT_TO_DINT("MAIN_CLOCK_DB".Lokalzeit.NANOSECOND) / l#1_000_000 MOD 10) + 16#30);
"MAIN_CLOCK_DB".LokalzeitTimeChar.msmsmsms[3] := BYTE_TO_CHAR(DINT_TO_BYTE(UDINT_TO_DINT("MAIN_CLOCK_DB".Lokalzeit.NANOSECOND) / l#100_000 MOD 10) + 16#30);
Dafür kannst du auch einfach zB die Taktmerker aus dem Systembyte nehmen, musst du nur in der CPU aktivieren in der HardwarekonfigurationIch habe eine 1511er CPU FW V2.9. Es soll ein Baustein entstehen, der bei einem Startsignal eine Messung im Sekundentakt aufzeichnet. Als Eingang kommt ein Analog Input der uns den durchfluss in einer Leitung misst. Ich will dass bei einer positiven Flanke der Bausten aufzeichnet, und sobald eine neue (volle) Stunde beginnt, der Baustein seine bisher alten Werte in ein anderes Array umschreibt und von vorne beginnt die Messungen aufzuzeichnen.
Ich benutze die Funktion ReadSysTime und würde am liebstendie Stunden im Byte auslesen und schauen ob die nue stunde angeborchen ist
Achtung! Das mag zwar für DTL passen, für DT muss man aber u.A. noch die Kleinigkeit beachten, dass da die einzelnen Zahlen BCD-codiert sind.Das ist zwar für den Datentypen DTL, aber sinngemäß sollte es genauso funktionieren.
Ich habe eine 1511er CPU FW V2.9. Es soll ein Baustein entstehen, der bei einem Startsignal eine Messung im Sekundentakt aufzeichnet. ... Ich will dass bei einer positiven Flanke der Bausten aufzeichnet, und sobald eine neue (volle) Stunde beginnt, der Baustein seine bisher alten Werte in ein anderes Array umschreibt und von vorne beginnt die Messungen aufzuzeichnen.
Ich benutze die Funktion ReadSysTime und würde am liebstendie Stunden im Byte auslesen und schauen ob die nue stunde angeborchen ist
Was meinst du mit neue volle Stunde? Ab Start der Aufzeichnung oder Stunde der Uhrzeit?sobald eine neue (volle) Stunde beginnt
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?