苏州实操派科技有限公司官网-实操派教育科技,汇川技术PLC培训,实操派PLC培训,苏州PLC培训机构

如何在CODESYS中读取当前系统时间?

[复制链接]
1 332

附件下载,需登录可以查看贴内更多信息

您需要 登录 才可以下载或查看,没有账号?立即注册

x
在现代的自动化控制系统中,时间是至关重要的一个因素。准确的时间同步和时间戳可以帮助我们进行更精准的数据采集、控制、以及信息处理等操作。而CODESYS作为常用的自动控制编程软件,在实际的工程领域中也有着广泛的应用。本篇文章将从CODESYS读取当前系统时间这一主题出发,给大家介绍具体的实现方式及技巧。

首先,让我们来看一下CODESYS中如何读取当前系统时间。CODESYS提供了一些内置函数,可以让我们方便地获取当前日期、时间、甚至是毫秒数等信息。其中最常用的两个函数是DATE_AND_TIME()和TIME_OF_DAY()。这两个函数的具体用法如下:

1. DATE_AND_TIME():该函数返回包含当前日期和时间的DateAndTime类型变量。

2. TIME_OF_DAY():该函数返回包含当前时间的TimeOfDay类型变量。

下面,我们就针对这两个函数分别展开讨论。

1. DATE_AND_TIME()函数

在CODESYS中,我们可以通过DATE_AND_TIME()函数获取当前系统时间的年、月、日、时、分、秒以及毫秒数等信息。其具体用法如下:

```pascal
dtVar := DATE_AND_TIME();
nYear := dtVar.year;
nMonth := dtVar.month;
nDay := dtVar.day;
nHour := dtVar.hour;
nMinute := dtVar.minute;
nSecond := dtVar.second;
nMillisecond := dtVar.millisecond;
```

其中,dtVar是一个DateAndTime类型的变量,代表当前日期和时间;nYear、nMonth、nDay、nHour、nMinute、nSecond、nMillisecond分别是整型变量,分别表示当前系统时间的年、月、日、时、分、秒以及毫秒数。需要注意的是,在CODESYS中,年份是以4位数字形式进行存储和表示的。

2. TIME_OF_DAY()函数

和DATE_AND_TIME()函数类似,TIME_OF_DAY()函数可以帮助我们获取当前系统时间的时、分、秒以及毫秒数等信息。其具体用法如下:

```pascal
todVar := TIME_OF_DAY();
nHour := todVar.hour;
nMinute := todVar.minute;
nSecond := todVar.second;
nMillisecond := todVar.millisecond;
```

其中,todVar是一个TimeOfDay类型的变量,代表当前时间;nHour、nMinute、nSecond、nMillisecond分别是整型变量,分别表示当前系统时间的时、分、秒以及毫秒数。

需要注意的是,在DATE_AND_TIME()和TIME_OF_DAY()函数中,由于涉及到获取当前系统时间,因此需要保证系统时间的准确性。如果系统时间不准确,将会导致读取到的时间信息也存在误差。因此,我们在使用这两个函数时,应该尽可能保证系统时间的准确性。

在本文的后续部分,我们将通过结合具体的案例,来进一步说明在CODESYS中如何读取当前系统时间这一问题。

案例分析:PLC控制下的自动化包装线

假设我们现在需要设计一条自动化包装线,该包装线的主要功能是将物品进行打包。在其控制核心方面,我们采用了汇川PLC,同时使用CODESYS作为编程软件。这条自动化包装线需要实现物品自动检测、计数以及打包等功能,并且还需要将每一批次的打包信息保存起来,方便后续的生产数据统计和分析。

为了实现以上功能,我们设计了一个基于汇川PLC的自动化控制系统,并在CODESYS中进行了相应的编程。具体实现步骤如下:

1. 定义变量

首先,在CODESYS中定义我们需要用到的变量。我们需要定义以下变量:

- 一个BOOL类型的变量,代表当前是否检测到了物品;
- 一个UINT类型的变量,代表当前检测到的物品数量(计数器);
- 一个TimeOfDay类型的变量,代表当前时间;
- 一个DateAndTime类型的数组,存储每一批次的打包信息。

定义代码如下:

```pascal
VAR
    bDetect : BOOL;
    nCount : UINT;
    todNow : TIME_OF_DAY;
    aryBatch : ARRAY[1..10] OF DATE_AND_TIME;
END_VAR
```

在上述代码中,我们定义了一个BOOL类型的变量bDetect,用于存储当前是否检测到了物品;定义了一个UINT类型的变量nCount,用于存储当前检测到的物品数量;定义了一个TimeOfDay类型的变量todNow,用于存储当前时间;同时定义了一个DateAndTime类型的数组aryBatch,用于存储每一批次的打包信息。

2. 实现功能

接下来,我们实现我们所需要的功能。具体实现代码如下:

```pascal
IF bDetect THEN
    //如果检测到物品,则计数器加1
    nCount := nCount + 1;
    //读取当前时间
    todNow := TIME_OF_DAY();
    //将当前时间添加到批次信息数组中,最多存储10条信息
    FOR i := 10 DOWNTO 2 DO
        aryBatch[i] := aryBatch[i - 1];
    END_FOR
    aryBatch[1] := DATE_AND_TIME();
END_IF
```

在上述代码中,我们首先判断当前是否检测到了物品,如果检测到了,则计数器nCount加1;然后通过TIME_OF_DAY()函数读取当前时间,并将其存储到todNow变量中;最后,将当前日期和时间添加到aryBatch数组中,其中最多存储10条信息,超过10条则覆盖之前的信息。

3. 结束操作

最后,在自动化包装线运行结束时,我们需要将所有的批次信息输出到外部设备中(例如U盘、SD卡等),以便后续的数据统计和分析。具体实现代码如下:

```pascal
//将批次信息输出到外部设备中
EXPORT BatchOutput() : BOOL
VAR
    i, nRet : INT;
    hFile : DINT;
    sFileName : STRING := 'batch_info.txt';
    sContent : STRING;
END_VAR

//打开文件
hFile := SysFileOpen(sFileName, SYSFILE_CREATE)

//将批次信息写入文件
FOR i := 1 TO 10 DO
    //构建每一行的内容
    sContent := CONCAT('Batch ', i, ': ', aryBatch[i].month, '/', aryBatch[i].day, '/', aryBatch[i].year, ' at ', todNow.hour, ':', toddNow.minute);
    //将内容写入文件
    nRet := SysFileWrite(hFile, ADR(sContent), STRLEN(sContent))
    IF nRet < 1 THEN
        //写入文件失败,打印错误信息
        RETURN FALSE
    END_IF
END_FOR

//关闭文件
SysFileClose(hFile)

//输出成功信息
RETURN TRUE
```

在上述代码中,我们首先定义了一个BatchOutput()函数,该函数用于输出批次信息,并返回一个BOOL类型的结果;然后定义了变量hFile、sFileName、sContent,分别代表文件句柄、文件名以及每一行的内容。接着,我们通过SysFileOpen()函数打开文件,将批次信息写入文件中,并最终通过SysFileClose()函数关闭文件,并返回一个成功或失败的结果。

综上所述,本文通过介绍如何在CODESYS中读取当前系统时间的方式,结合实际应用案例,给大家展示了具体实现方式及技巧,以期帮助大家更好地应对实际工程需求。

________________________________________________________________________

免责声明:本文非官方发布,内容真实性请注意甄别,文章内容仅供参考。本站不对内容真实性负责,请悉知!本站不对内容真实性负责,请悉知!。我们专注于汇川技术产品培训,官网https://shicaopai.com

相关帖子

回复

使用道具 举报

chatGPT机器人 2023-5-10 23:56:08 | 显示全部楼层
关键词:CODESYS,系统时间,自动化控制系统,日期,时间,时间戳,自动化包装线

文章大纲:

I. 介绍
    A. 自动化控
                                                                                                                                                                                                                                                 以上内容来自  AI机器人,如需继续对话,则在此回答下“点击回复” 或者 在提问时  “@机器人”!禁止 "黄赌毒及政治敏感",违者封号,严重者 提交 网警公安部门。本站不对内容真实性负责,AI机器人有时候会乱说一通……
回复

使用道具 举报

data/attachment/temp/202212/30/133743h8cd9z14sjs84kaz.png_thumb.jpg 共31章节628课时

【全科班】汇川中型PLC从0到1就业班(Codesys系统化全科班课程-600节+)-汇川PLC教程

朱子文

咨询客服
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240206/VMdEZiqp3BMkbBIlMRRD.png 共9章节44课时

【09-Codesys教程】电子凸轮齿轮从入门到进阶系统化课程-色标跟踪-探针-追剪-飞剪-间歇式工艺-汇川中大型PLC伺服多轴同步运控

朱子文

¥ 699.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240217/v39r666Z663eBBGKErRm.png 共30章节630课时

【全科班】汇川技术H5U从0到1就业班(系统化全科班-600节+)

张汉清

咨询客服
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240207/HlL5SWHry9lPVdqC8i59.png 共5章节63课时

【01-Codesys教程】ST文本从0到1,从入门到进阶-汇川中大型PLC教程

朱子文

¥ 499.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240227/AMo32PcbJeIMJBT3m8Pu.png 共4章节36课时

03 中大型ST文本结合仿真软件小项目 31节-气缸功能块封装-状态机编程思路-小设备框架

朱子文

¥ 499.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240206/Fu5pu34pPcTpu0La443P.png 共6章节52课时

【10-Codesys】包装行业-三伺服枕包机实战项目(4虚轴3实轴耦合+凸轮动态修改+防切工艺+防空工艺+色标探针+挺杆功能+状态机编程+程序框架+指针FIFO)

朱子文

¥ 899.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240206/Su1ibr3I77yl78DLBR7D.png 共4章节29课时

【12-Codesys小课】中大型PLC-PID控制器算法从入门到进阶之液位控制系统

朱子文

¥ 699.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20230603/Cz3hqDmDD8qHfT3MDm4m.png 共3章节30课时

【05-Codesys教程】汇川中大型PLC单轴运动控制教程-汇川PLC教程

朱子文

¥ 399.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20230603/gXpEpJ8Qb78eD5lDqlnQ.png 共3章节25课时

【06-Codesys教程】汇川中大型PLC运动控制进阶篇(多轴PTP)-编程框架与编程模板实操

朱子文

¥ 499.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240206/e39s63ppg54Q2s5H33H9.png 共3章节24课时

【08-codesys教程】汇川中大型codesys教程-多轴运控扩展篇经验分享小知识分享

朱子文

¥ 299.00
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

data/attachment/temp/202212/30/133743h8cd9z14sjs84kaz.png_thumb.jpg 共31章节628课时

【全科班】汇川中型PLC从0到1就业班(Codesys系统化全科班课程-600节+)-汇川PLC教程

朱子文

咨询客服
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240206/VMdEZiqp3BMkbBIlMRRD.png 共9章节44课时

【09-Codesys教程】电子凸轮齿轮从入门到进阶系统化课程-色标跟踪-探针-追剪-飞剪-间歇式工艺-汇川中大型PLC伺服多轴同步运控

朱子文

¥ 699.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240217/v39r666Z663eBBGKErRm.png 共30章节630课时

【全科班】汇川技术H5U从0到1就业班(系统化全科班-600节+)

张汉清

咨询客服
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240207/HlL5SWHry9lPVdqC8i59.png 共5章节63课时

【01-Codesys教程】ST文本从0到1,从入门到进阶-汇川中大型PLC教程

朱子文

¥ 499.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240227/AMo32PcbJeIMJBT3m8Pu.png 共4章节36课时

03 中大型ST文本结合仿真软件小项目 31节-气缸功能块封装-状态机编程思路-小设备框架

朱子文

¥ 499.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240206/Fu5pu34pPcTpu0La443P.png 共6章节52课时

【10-Codesys】包装行业-三伺服枕包机实战项目(4虚轴3实轴耦合+凸轮动态修改+防切工艺+防空工艺+色标探针+挺杆功能+状态机编程+程序框架+指针FIFO)

朱子文

¥ 899.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240206/Su1ibr3I77yl78DLBR7D.png 共4章节29课时

【12-Codesys小课】中大型PLC-PID控制器算法从入门到进阶之液位控制系统

朱子文

¥ 699.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20230603/Cz3hqDmDD8qHfT3MDm4m.png 共3章节30课时

【05-Codesys教程】汇川中大型PLC单轴运动控制教程-汇川PLC教程

朱子文

¥ 399.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20230603/gXpEpJ8Qb78eD5lDqlnQ.png 共3章节25课时

【06-Codesys教程】汇川中大型PLC运动控制进阶篇(多轴PTP)-编程框架与编程模板实操

朱子文

¥ 499.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240206/e39s63ppg54Q2s5H33H9.png 共3章节24课时

【08-codesys教程】汇川中大型codesys教程-多轴运控扩展篇经验分享小知识分享

朱子文

¥ 299.00

到"π³ 实操派",学PLC就是快!汇川PLC及Codesys培训

项目实战 手把手教学 微信&电话 15850116008
超600节系统化课程,汇川优秀自动化讲师亲授!学一门Codesys,玩800家PLC仅剩少量名额
点击免费试听

到实操派,学PLC就是快!

扫码领取工控文库VIP

钻石VIP先到先得

服务电话 & 微信:9:00-22:00

15850116008

苏州实操派科技有限公司

公司地址:江苏省苏州市吴中区越溪街道天鹅荡路5号31B13

Copyright © 苏州实操派科技有限公司 2022 到实操派,学PLC就是快!工业自动化业务培训适用人群:成人 ( 苏ICP备2022021576号-3 )

公司地址:江苏省苏州市吴中区越溪街道天鹅荡路5号31B13

返回顶部