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

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各字节的定义如下:
|
字节 |
描述 |
取值范围 |
|
0 |
年(year) |
1990年~2089年 BCD#90=1990 BCD0#=2000 BCD89#=2089 |
|
1 |
月(month) |
BCD#1~BCD#12 |
|
2 |
日(day) |
BCD#1~BCD#31 |
|
3 |
小时(hour) |
BCD#0~BCD#23 |
|
4 |
分钟(minute) |
BCD#0~BCD#59 |
|
5 |
秒(second) |
BCD#0~BCD#59 |
|
6 |
微秒的前两个最高权重位 | BCD#0~BCD#99 |
|
7(4MSB) |
微秒的最低权重位 | BCD#0~BCD#9 |
|
7(4LSB) |
一周中的第几天 | BCD#1~BCD#7 |
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个字节,它可以存放日期及时间(精确到纳秒)数据,其格式定义如下:
| 字节 |
描述 |
数据类型 |
取值范围 |
| 0 |
年(year) |
UNIT |
1970~2262 |
| 1 | |||
| 2 |
月(month) |
USINT |
1~12 |
| 3 |
日(day) |
USINT |
1~31 |
| 4 |
一周中第几天 |
USINT |
1~7 |
| 5 |
小时(hour) |
USINT |
0~23 |
| 6 |
分钟(minute) |
USINT |
0~59 |
| 7 | 纳秒(nanosecond) | UDINT | 0~999999999 |
| 8 | |||
| 9 | |||
| 10 | |||
| 11 |
DTL的常量以”DTL#”标识,其取值范围为:DTL#1970-01-01-00:00:00.0 ~ DTL#2262-04-11-23:47:16.854775807
好了,关于SCL的日期时间数据类型就介绍到这里。
-
Origin(Pro):学习版的窗口限制【数据绘图】 2020-08-07
-
如何卸载Aspen Plus并再重新安装,这篇文章告诉你! 2020-05-29
-
AutoCAD 保存时出现错误:“此图形中的一个或多个对象无法保存为指定格式”怎么办? 2020-08-03
-
OriginPro:学习版申请及过期激活方法【数据绘图】 2020-08-06
-
CAD视口的边框线看不到也选不中是怎么回事,怎么解决? 2020-06-04
-
教程 | Origin从DSC计算焓和比热容 2020-08-31
-
如何评价拟合效果-Origin(Pro)数据拟合系列教程【数据绘图】 2020-08-06
-
Aspen Plus安装过程中RMS License证书安装失败的解决方法,亲测有效! 2021-10-15
-
CAD外部参照无法绑定怎么办? 2020-06-03
-
CAD中如何将布局连带视口中的内容复制到另一张图中? 2020-07-03
