热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

时间转为毫秒数_西门子SCL编程入门教程连载(13)日期时间数据类型

日期和时间是PLC编程经常需要处理的数据,本节我们先来认识下西门子SCL编程语言所支持的日期时间数据类型,以便为后续介绍日期时间指令打下基础。IEC61

日期和时间是PLC编程经常需要处理的数据,本节我们先来认识下西门子SCL编程语言所支持的日期时间数据类型,以便为后续介绍日期时间指令打下基础。

68cbaf131f070c3ae117b74930522a59.png

IEC61131-3定义了8种时间日期数据类型,分别是:

  • TIME
  • LTIME(LONG TIME)
  • DATE
  • LDATE
  • TIME_OF_DAY(TOD)
  • LTIME_OF_DAY(LTOD)
  • DATE_AND_TIME(DT)
  • LDATE_AND_TIME(LDT)

数据来源:IEC61131-3:2013 Table 10 -Elementary date types(page 31)
西门子SCL编程语言符合IEC61131-3标准,也支持这些数据类型,下面我们来具体看下:

1、TIME(时间)

TIME类型的长度为4个字节(32bits),它可以表达包括天(day)、小时 (hour)、分钟(minute)、秒(second)、毫秒(millisecond)的信息。

TIME类型的数据用于定时器计时,其常量以"T#"标识,比如:T#9d20h12m20s630ms(9天20小时12分钟20秒630毫秒),其取值范围为:T#-24d20h31m23s648ms ~ T#+24d20h31m23s647ms;

2、LTIME(LONG TIME)

LTIME类型的长度为8个字节(64bits),它可以表达包括天(day)、小时(hour)、分钟(minute)、秒(second)、毫秒(millisecond)、微秒(microsecond)及纳秒(nanosecond)的信息,同样可用于定时器计时。
LTIME的常量以"LT#"标识,

比如:LT#50d20h25m14s830ms652us315ns(50天20小时25分钟14秒830毫秒652微秒315纳秒),其取值范围为:LT#-106751d23h47m16s854ms775us808ns~LT#+106751d23h47m16s854ms775us807ns。
使用LTIME类型时并不需要将所有的时间单位写出,LT#2h10s是个合格的常量。
需要说明的是:只有S7-1500系列CPU支持LTIME类型

3、S5TIME(S5时间类型)

S5TIME是西门子S7-300/400系列CPU支持的时间类型,其长度为2个字节(16bits)。S5TIME以BCD码来存放时间信息,其常量以"S5T#"标识,比如:S5T#1s500ms(1秒500毫秒),可表达的时间范围为:S5T#0ms~S5T#2h_46m_30s_0ms;

4、DATE(日期)

DATE数据类型的长度为2个字节,它将日期的信息存放在无符号整数里。DATE数据类型的常量以"D#"标识,比如D#2019-12-11,其取值范围为:D#1990-01-01 to D#2168-12-31。

5、TOD(TIME_OF_DATE)

TIME_OF_DATE数据类型的长度4个字节,它存放当前时间从午夜0:00算起所走经过的毫秒数(milliseconds)。

TIME_OF_DATE数据类型的常量以"TOD#"标识,其取值范围为:TOD#00:00:00.000 ~ TOD#23:59:59.999;

6、LTOD(LONG_TIME_OF_DATE)

LONG_TIME_OF_DATE数据类型的长度为8个字节,它存放当前时间从午夜0:00开始所走过的纳秒数。

LONG_TIME_OF_DATE的常量以"LTOD#"标识,其取值范围为:LTOD#00:00:00.000000000 ~ LTOD#23:59:59.999999999;
需要说明的是:只有S7-1500系列CPU支持LTOD类型

7、DATE_AND_TIME

DATE_AND_TIME数据类型的长度为8个字节,它以BCD码存放日期及时间数据(精确到毫秒)。
DATE_AND_TIME各字节的定义如下:

9f9422ff8ea115f173dedd97d6945963.png

DATE_AND_TIME数据结构

DATE_AND_TIME的常量以“DT#”标识,

比如当前时间为:DT#2019-12-12-20:47:32.621

注:关于最低权重位和最高权重位,请看官网:https://www.founderchip.com/?id=41这篇文章;

8、DATE_AND_LTIME

DATE_AND_LTIME的长度为8个字节,它存放从1970:0:0开始到现在所经过的时间(纳秒数);

DATE_AND_LTIME的常量以”LDT#”标识,其取值范围为:LDT#1970-01-01-0:0:0.000000000~LDT#2263-04-11-23:47:16.854775808
需要说明的是:只有S7-1500系列CPU支持LDT类型

9、DTL

DTL的长度为12个字节,它可以存放日期及时间(精确到纳秒)数据,其格式定义如下:

1ae9328b19bc53990fc78f5afb170a85.png

DTL数据结构

DTL的常量以”DTL#”标识,其取值范围为:DTL#1970-01-01-00:00:00.0 ~ DTL#2262-04-11-23:47:16.854775807
好了,关于SCL的日期时间数据类型就介绍到这里。如果你喜欢这篇文章,可以去官网(www.founderchip.com)下载本文PDF版本。



推荐阅读
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • 在C#/ .NET中,处理基督面前的日期没有内置支持,需要编写自己的代码。本文介绍了在处理此类日期时的最佳方法,并提供了一个示例链接,可以参考编码的解决方案。 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了重温Linux内核:互斥和同步相关的知识,希望对你有一定的参考价值。文章目录 ... [详细]
  • 显卡750ti价格(750ti显卡发行价格)
    |责编:林光楠在当前这个B2BB2C逐步取代传统卖场占据主导地位的时代,通过电商、淘宝平台直接购买电脑相信已经成了不少对DIY认识不太深入的主流用户首选的配机方案。相比线下购买,网 ... [详细]
  • 本文介绍了基于c语言的mcs51单片机定时器计数器的应用教程,包括定时器的设置和计数方法,以及中断函数的使用。同时介绍了定时器应用的举例,包括定时器中断函数的编写和频率值的计算方法。主函数中设置了T0模式和T1计数的初值,并开启了T0和T1的中断,最后启动了CPU中断。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 本文介绍了机器学习手册中关于日期和时区操作的重要性以及其在实际应用中的作用。文章以一个故事为背景,描述了学童们面对老先生的教导时的反应,以及上官如在这个过程中的表现。同时,文章也提到了顾慎为对上官如的恨意以及他们之间的矛盾源于早年的结局。最后,文章强调了日期和时区操作在机器学习中的重要性,并指出了其在实际应用中的作用和意义。 ... [详细]
  • 嵌入式处理器的架构与内核发展历程
    本文主要介绍了嵌入式处理器的架构与内核发展历程,包括不同架构的指令集的变化,以及内核的流水线和结构。通过对ARM架构的分析,可以更好地理解嵌入式处理器的架构与内核的关系。 ... [详细]
  • 本文介绍了操作系统的定义和功能,包括操作系统的本质、用户界面以及系统调用的分类。同时还介绍了进程和线程的区别,包括进程和线程的定义和作用。 ... [详细]
  • 网卡工作原理及网络知识分享
    本文介绍了网卡的工作原理,包括CSMA/CD、ARP欺骗等网络知识。网卡是负责整台计算机的网络通信,没有它,计算机将成为信息孤岛。文章通过一个对话的形式,生动形象地讲述了网卡的工作原理,并介绍了集线器Hub时代的网络构成。对于想学习网络知识的读者来说,本文是一篇不错的参考资料。 ... [详细]
  • 本文讨论了微软的STL容器类是否线程安全。根据MSDN的回答,STL容器类包括vector、deque、list、queue、stack、priority_queue、valarray、map、hash_map、multimap、hash_multimap、set、hash_set、multiset、hash_multiset、basic_string和bitset。对于单个对象来说,多个线程同时读取是安全的。但如果一个线程正在写入一个对象,那么所有的读写操作都需要进行同步。 ... [详细]
  • 本文概述了JNI的原理以及常用方法。JNI提供了一种Java字节码调用C/C++的解决方案,但引用类型不能直接在Native层使用,需要进行类型转化。多维数组(包括二维数组)都是引用类型,需要使用jobjectArray类型来存取其值。此外,由于Java支持函数重载,根据函数名无法找到对应的JNI函数,因此介绍了JNI函数签名信息的解决方案。 ... [详细]
  • 这期内容当中小编将会给大家带来有关如何在php表单中使用正则表达式,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可 ... [详细]
  • 第2讲 Android Camera Native Framework 初识cameraserver进程
    本讲是AndroidCameraNativeFramework专题的第2讲,我们初识CameraServer,包括如下内容:Camera ... [详细]
author-avatar
立行谏圣
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有