【Codesys】实现获取当前时间:天、秒、毫秒(源码)。-CODESYS资源下载区-酷德网 - CoDeSys软件教程下载,CoDeSys工控资讯门户 

酷德网

HSC6490-cn中国制造,中国芯~
查看: 1866|回复: 1

【Codesys】实现获取当前时间:天、秒、毫秒(源码)。

[复制链接]
  • TA的每日心情
    慵懒
    2017-11-9 20:49
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2024-11-6 20:22:07 | 显示全部楼层 |阅读模式
    获取当前系统时间的各种数值,方便记录当前时间发生时间。
    //获取当前时间,天、秒、毫秒
    FUNCTION_BLOCK FB_GetTime
    VAR_INPUT
    END_VAR
    VAR_OUTPUT
         GetTimeMs:STRING;
         GetTimeS:STRING;
         GetTimeDay:STRING;
    END_VAR
    VAR
         stUTC_Timestamp : SysTime;
         stLocal_TimeStamp : SysTime;
         stdNow : SysTimeDate;
         Result : RTS_IEC_RESULT;
         dtNow : DATE_AND_TIME;
         todNow : TIME_OF_DAY;
         datToday  : DATE;
         str1,Str2:STRING;

         udiUtcTime             : UDINT;
         udiUtcTimeLocal     : UDINT;
         udiResult             : UDINT;
         DTTime                : DATE_AND_TIME;
         strTime                :STRING;
    END_VAR
    运行代码
    (*-------------精确到毫秒-----------------*)
    Result := SysTimeRtcHighResGet(stUTC_Timestamp); // ULINT#1528273494913
    Result := SysTimeRtcConvertHighResToLocal(stUTC_Timestamp, stdNow);
    Result := SysTimeRtcConvertDateToHighRes(stdNow, stLocal_TimeStamp); // ULINT#1528280694913
    dtNow := TO_DT(stLocal_TimeStamp / 1000 (* ms *)); // DT#2018-6-6-10:24:54
    todNow := TO_TOD(stLocal_TimeStamp MOD TO_ULINT(T#1D)); // TOD#10:24:54.913
    datToday := TO_DATE(dtNow); // D#2018-6-6
    str1:= TO_STRING(datToday);
    str1:=REPLACE(STR1:=str1,STR2:='',L:=2,P:=1);
    GetTimeDay:=str1;
    str2:= TO_STRING(todNow);
    str2:=REPLACE(STR1:=str2,STR2:='-',L:=4,P:=1);
    GetTimeMs:=CONCAT(str1,str2);
    (*-------------精确到秒-----------------*)
    (* Fetch the UTC time. *)//获取UTC时间  
    udiUtcTime := SysTimeRtcGet(udiResult);
    (* Convert the UTC time to local time. *) //将UTC时间转化为本地时间
    udiResult := SysTimeRtcConvertUtcToLocal(udiUtcTime, udiUtcTimeLocal);
    (* Convert the seconds from the local time in a Date and Time format.*)  
    //转换本地时间格式  年月日时分秒
    DTTime := UDINT_TO_DT(udiUtcTimeLocal);
    strTime:=TO_STRING(DTTime);
    GetTimeS:=REPLACE(STR1:=strTime,STR2:='',L:=3,P:=1);
    +10
    不赞一个?
    打赏鼓励一下!
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

    本版积分规则

    
    顶部qrcode底部
    关注酷德网订阅号,获取更多资讯!

    QQ|Archiver|手机版|小黑屋|酷德论坛 ( 苏ICP备16065247号-1 )|网站地图

    GMT+8, 2026-10-7 12:19 , Processed in 0.221659 second(s), 46 queries .

    酷德网

    © 2001-2013 Hicodesys. 技术支持 by 酷德网

    快速回复 返回顶部 返回列表