codesys 获取系统时间
- 添加获取时间库 添加库输入caa dtutil搜索库,选中双击添加
2.定义功能块,读取时间
PROGRAM PLC_PRG
VAR//定义读取当前时间功能块ReadCurrentTime:dtu.GetDateAndTime;//系统当前时间,注意此时的时间为世界时间并非本地时间dtTime:DT;//更新时间变化RTC_BLOCK:RTC;dtTime2:DT;
END_VAR
ReadCurrentTime(xExecute:= TRUE, xDone=> , xBusy=> , xError=> , eError=> , dtDateAndTime=>dtTime , ePeriode=> );
RTC_BLOCK(EN:= ReadCurrentTime.xDone, PDT:= dtTime, Q=> , CDT=> dtTime2);
3.运行 Codesys SoftMotion Win 下载运行,效果如下:
4.注意此时读到的时间为世界时间需要转换为北京时间
PROGRAM PLC_PRG
VAR//定义读取当前时间功能块ReadCurrentTime:dtu.GetDateAndTime;//系统当前时间,注意此时的时间为世界时间并非本地时间dtTime:DT;//更新时间变化RTC_BLOCK:RTC;dtTime2:DT;//时间总秒数w_TotalSeconds :LINT;//本地时间总秒数l_TotalSeconds:LINT;sysCurrentTime:DT;
END_VAR
ReadCurrentTime(xExecute:= TRUE, xDone=> , xBusy=> , xError=> , eError=> , dtDateAndTime=>dtTime , ePeriode=> );RTC_BLOCK(EN:= ReadCurrentTime.xDone, PDT:= dtTime, Q=> , CDT=> dtTime2);
//获取时间时间总秒数
w_TotalSeconds:=DT_TO_LINT(dtTime2);
//应为北京时间和世界时间相差8小时
l_TotalSeconds:=w_TotalSeconds + 8 * 60 * 60;
//转换成时间格式
sysCurrentTime:=LINT_TO_DT(l_TotalSeconds);
5.从新下载运行即可得到本地时间
源码下载