基本数据类型

基本数据类型:包括位、位序列、整数、浮点数、日期时间。此外字符也属于基本数据类型,请参见文档 StringWString

此外 BCD码虽然不属于数据类型,但也是一种数字表示方式,将在本文最后予以介绍。

1.位和位序列

备注

虽然位序列有数值表示方式,但一般不直接用于数学运算。通常在控制字、状态字、错误代码、标志字、状态位集合等处使用位序列。而数学运算使用下面的整数数据类型与浮点数数据类型。

数据类型

位大小

数值类型

数值范围

常数示例

地址示例

Bool

1

布尔运算

FALSE 或者 TRUE

TRUE

I1.0

二进制

2#0 或 2#1

2#0

M50.7

无符号整数

0 或 1

1

DB1.DBX2.3

八进制

8#0 或 8#1

8#1

Tag_name

十六进制

16#0 或 16#1

16#1

Byte

8

二进制

2#0 到 2#1111_1111

2#1000_1001

IB2

无符号整数

0 到 255

15

MB10

有符号整数

-128 到 127

-63

DB1.DBB4

八进制

8#0 到 8#377

8#17

Tag_name

十六进制

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

MW10

无符号整数

0 到 65535

61680

DB1.DBW2

有符号整数

-32768 到 32767

72

Tag_name

八进制

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

MD10

无符号整数

0 到 4_294_967_295

15_793_935

DB1.DBD8

有符号整数

-2_147_483_648 到 2_147_483_647

-400000

Tag_name

八进制

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

MB0

SInt

8

-128 到 127

+50、16#50

DB1.DBB4
Tag_name

UInt

16

0 到 65535

65295、0

MW2
DB1.DBW2

Int

16

-32768 到 32767

30000、+30000

Tag_nam

UDInt

32

0 到 4_294_967_295

4042322160

MD6
DB1.DBD8,

DInt

32

-2_147_483_648 到 2_147_483_647

-2131754992

Tag_name

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

MD100
DB1.DBD8
Tag_name

LReal

64

-1.7976931348623158e+308 到 -2.2250738585072014e-308、±0、+2.2250738585072014e-308 到 +1.7976931348623158e+308

12345.123456789e40、1.2E+40

DB_name.var_name
不支持直接寻址

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

T#5m_30s
T#1d_2h_15m_30s_45ms
TIME#10d20h30m20s630ms
500h10000ms
10d20h30m20s630ms

DATE

16

D#1990-1-1 到 D#2168-12-31 D#2009-12-31

DATE#2009-12-31

TOD/Time_of_Day

32

TOD#0:0:0.0 到 TOD#23:59:59.999

TOD#10:20:30.400
TIME_OF_DAY#10:20:30.400
23:10:1

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