基本資料類型
基本資料類型:包括位、位序列、整數、浮點數、日期時間。此外字元也屬于基本資料類型。
此外 BCD 碼雖然不屬于資料類型,但也是一種數字表示方式,将在本文最後予以介紹。
1.位和位序列
注意:雖然位序列有數值表示方式,但一般不直接用于數學運算。通常在控制字、狀态字、錯誤代碼、标志字、狀态位集合等處使用位序列。而數學運算使用下面的整數資料類型與浮點數資料類型。
資料類型 | 位大小 | 數值類型 | 數值範圍 | 常數示例 | 位址示例 |
Bool | 1 | 布爾運算 | FALSE 或者 TRUE | TRUE |
|
二進制 | 2#0 或 2#1 | 2#0 | |||
無符号整數 | 0 或 1 | 1 | |||
八進制 | 8#0 或 8#1 | 8#1 | |||
十六進制 | 16#0 或 16#1 | 16#1 | |||
Byte | 8 | 二進制 | 2#0 到 2#1111_1111 | 2#1000_1001 |
|
無符号整數 | 0 到 255 | 15 | |||
有符号整數 | -128 到 127 | -63 | |||
八進制 | 8#0 到 8#377 | 8#17 | |||
十六進制 | B#16#0 到 B#16#FF / 16#0 到 16#FF | B#16#F、16#F | |||
Word | 16 | 二進制 | 2#0 到 2#1111_1111_1111_1111 | 2#1101_0010_1001_0110 |
|
無符号整數 | 0 到 65535 | 61680 | |||
有符号整數 | -32768 到 32767 | 72 | |||
八進制 | 8#0 到 8#177_777 | 8#170_362 | |||
十六進制 | W#16#0 到 W#16#FFFF / 16#0 到 16#FFFF | W#16#F1C0、16#A67B | |||
DWord | 32 | 二進制 | 2#0 到 2#1111_1111_1111_1111_1111_1111_1111_1111 | 2#1101_0100_1111_1110_1000_1100 |
|
無符号整數 | 0 到 4_294_967_295 | 15_793_935 | |||
有符号整數 | -2_147_483_648 到 2_147_483_647 | -400000 | |||
八進制 | 8#0 到 8#37_777_777_777 | 8#74_177_417 | |||
十六進制 | DW#16#0 到 DW#16#FFFF_FFFF / 16#0 到 16#FFFF_FFFF | DW#16#20_F30A、16#B_01F6 |
2.整數資料類型
資料類型 | 位大小 | 數值範圍 | 常數示例 | 位址示例 |
USInt | 8 | 0 到 255 | 78、2#01001110 |
|
SInt | 8 | -128 到 127 | +50、16#50 | |
UInt | 16 | 0 到 65535 | 65295、0 |
|
Int | 16 | -32768 到 32767 | 30000、+30000 | |
UDInt | 32 | 0 到 4_294_967_295 | 4042322160 |
|
DInt | 32 | -2_147_483_648 到 2_147_483_647 | -2131754992 |
3.浮點型實數資料類型
如 ANSI/IEEE 754-1985 标準所述,實(或浮點)數以 32 位單精度數 (Real) 或 64 位雙精度數 (LReal) 表示。 單精度浮點數的精度最高為 6 位有效數字,
而雙精度浮點數的精度最高為 15 位有效數字。在輸入浮點常數時,最多可以指定 6 位 (Real) 或 15 位 (LReal) 有效數字來保持精度。
資料類型 | 位大小 | 數值範圍 | 常數示例 | 位址示例 |
Real | 32 | -3.402823e+38 到 -1.175495e-38、±0、+1.175 495e-38 到 +3.402823e+38 | 123.456、-3.4、1.0e-5 |
|
LReal | 64 | -1.7976931348623158e+308 到 -2.2250738585072014e-308、 ±0、 +2.2250738585072014e-308 到 +1.7976931348623158e+308 | 12345.123456789e40、1.2E+40 |
|
4.時間和日期資料類型
TIME 資料作為有符号雙整數存儲,基本機關為毫秒。存儲的數值是多少,就代表有多少 ms。 編輯時可以選擇性使用天 (d)、小時(h)、分鐘 (m)、秒 (s) 和毫秒 (ms) 作為機關。
不需要指定全部時間機關。 例如,T#5h10s 和 500h 均有效。所有指定機關值的組合值不能超過以毫秒表示的時間日期類型的上限或下限(-2,147,483,648 ms 到 +2,147,483,647 ms)。
DATE 資料作為無符号整數值存儲,被解釋為添加到基礎日期 1990 年 1 月 1 日的天數,用以擷取指定日期。 編輯器格式必須指定年、月和日。
TOD (TIME_OF_DAY) 資料作為無符号雙整數值存儲,被解釋為自指定日期的淩晨算起的毫秒數(淩晨 = 0 ms)。 必須指定小時(24 小時/天)、分鐘和秒。 可以選擇指定小數秒格式。
資料類型 | 位大小 | 範圍 | 常數示例 |
Time | 32 | T#-24d_20h_31m_23s_648ms 到 T#24d_20h_31m_23s_647ms 存儲形式: -2,147,483,648 ms 到 +2,147,483,647 ms |
|
DATE | 16 | D#1990-1-1 到 D#2168-12-31 |
|
TOD/ Time_of_Day | 32 | TOD#0:0:0.0 到 TOD#23:59:59.999 |
|
5. BCD 碼
BCD 格式不能作為資料類型使用,但是以下轉換指令支援 BCD 數字格式轉換:
- BCD16_TO_INT
- INT_TO_BCD16
- BCD32_TO_DINT
- DINT_TO_BCD32
轉換舉例:16#100 >10#100,10#888777>16#888777
資料類型 | 位大小 | 範圍 | 常數示例 |
BCD16 | 16 | -999 到 999 | 123、-123 |
BCD32 | 32 | -9999999 到 9999999 | 1234567、-1234567 |