【PLC学习五】利用Rd-sys-t读取CPU的系统时间
实际应用中必不可少的时间读取大法
近日,在学习PLC编程时,发现我们所设计的系统,是需要展示生产当天的日期的,有些产线的顺序控制更是需要精确到毫秒,这种功能该如何实现呢?
Rd-sys-t 模块就很好的解决了这个问题。在官方文件中,对于这个模块是这样描述的:可以使用Rd-sys-t指令读取 CPU 时钟的当前日期和当前时间(模块时间)。
应用实例
下面,我们在程序当中来看一下Rd-sys-t指令应当如何使用。
:----------------:
图一 程序示例(博途官方例子)
:----:
如图一所展示的,outputTime这个变量的数据类型是“date and time”,这种类型的数据是由DB1.DBB0到DB1.DBB7这8个字节组成的,分别对应的是年、月、日、时、分、秒、毫秒、毫秒&星期。特别注意一下,DB1.DBB6和DB1.DBB7这两个字节,组合起来就是DB1.DBW6这个字,这个字的前12个位表示毫秒,后4个位表示星期,后四位等于1就表示星期日,等于二就表示星期一……等于七就表示星期六。
:------------------------:
图二 拆分年月日
:-----:
在实际应用中,我们判断生产时间不会读取年、月等信息,因此需要对年、月、日、星期、时、分、秒等数据进行拆分,以方便后续编程时对于时间数据的使用。该功能可以通过 MOVE指令来实现,如图2所示。
MOVE指令左侧管脚,输入的是outputTime这个变量所对应的年、月、日等数据,MOVE指令右侧管脚,输出的是拆分后的年、月、日等数据。具体数据位置请观察数据块。
DTL数据格式如图所示。
:-------------------------:
图三 DTL数据格式
参考文章:
https://www.ad.siemens.com.cn/club/bbs/Post_1557689_4_75_0_0_0_0__0.html