Welcome to our new forum
All users of the legacy CODESYS Forums, please create a new account at account.codesys.com. But make sure to use the same E-Mail address as in the old Forum. Then your posts will be matched. Close

Stunden , Minuten, Secunden , ms von time ausgeben

tiego
2010-07-05
2010-07-06
  • tiego - 2010-07-05

    Hallo

    wie kann man von einem dateitype time seperat die einzenlnen werte ausgeben?

    sec werden bis 60 gezählt und dan fangen sie wieder vorne an?

    Gibt es eine möglichkeit?

    Grüsse

     
  • Erik Böhm - 2010-07-06

    Moin

    1. Frage: Warum Datentyp TIME ?

    Von der RTC bekommst du in der Regel SystemTimeDate zurück.

    Ansonsten evtl. TIME_TO_STRING und dann den String zerlegen.

    z.b.

    SysTime(SystemTime:=sST,TimeDate:=sTD);

    strStringBuffer := '';

    IF sTD.Hour < 10 THEN

    strStringBuffer := CONCAT(strStringBuffer,'0');
    

    END_IF

    strStringBuffer := CONCAT(strStringBuffer,UINT_TO_STRING(sTD.Hour));

    strStringBuffer := CONCAT(strStringBuffer,':');

    IF sTD.Minute < 10 THEN

    strStringBuffer := CONCAT(strStringBuffer,'0');
    

    END_IF

    strStringBuffer := CONCAT(strStringBuffer,UINT_TO_STRING(sTD.Minute));

    strStringBuffer := CONCAT(strStringBuffer,':');

    IF sTD.Second < 10 THEN

    strStringBuffer := CONCAT(strStringBuffer,'0');
    

    END_IF

    strStringBuffer := CONCAT(strStringBuffer,UINT_TO_STRING(sTD.Second));

    strStringBuffer := CONCAT(strStringBuffer,',');

    IF sTD.Milliseconds < 100 THEN

    strStringBuffer := CONCAT(strStringBuffer,'0');
    
    IF sTD.Milliseconds < 10 THEN
    
        strStringBuffer := CONCAT(strStringBuffer,'0');
    
    END_IF
    

    END_IF

    strStringBuffer := CONCAT(strStringBuffer,UINT_TO_STRING(sTD.Milliseconds));

    Gruß

    Erik

     

Log in to post a comment.