西門子SCL編程入門教程連載(13)-日期時間數據類型
日期和時間是PLC編程經常需要處理的數據,本節(jié)我們先來認識下西門子SCL編程語言所支持的日期時間數據類型,以便為后續(xù)介紹日期時間指令打下基礎。

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個字節(jié)(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個字節(jié)(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個字節(jié)(16bits)。S5TIME以BCD碼來存放時間信息,其常量以"S5T#"標識,比如:S5T#1s500ms(1秒500毫秒),可表達的時間范圍為:S5T#0ms~S5T#2h_46m_30s_0ms;
4、DATE(日期)
DATE數據類型的長度為2個字節(jié),它將日期的信息存放在無符號整數里。DATE數據類型的常量以"D#"標識,比如D#2019-12-11,其取值范圍為:D#1990-01-01 to D#2168-12-31。
5、TOD(TIME_OF_DATE)
TIME_OF_DATE數據類型的長度4個字節(jié),它存放當前時間從午夜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個字節(jié),它存放當前時間從午夜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個字節(jié),它以BCD碼存放日期及時間數據(精確到毫秒)。
DATE_AND_TIME各字節(jié)的定義如下:
|
字節(jié) |
描述 |
取值范圍 |
|
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個字節(jié),它存放從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個字節(jié),它可以存放日期及時間(精確到納秒)數據,其格式定義如下:
| 字節(jié) |
描述 |
數據類型 |
取值范圍 |
| 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
