在开始本次分享之前,先声明几个我们控制中常用的几个概念特别是字节和位的概念:
计算机/PLC处理器中不能直接识别数字,只能识别二进制数字即0,1码;
位:Bit,PLC程序中Zui小的数据单位;
字节:Byte,1个字节由8个位组成;
字:Word ,2个字节,16个位组成;(列举常用的,下面有详细解释)
浮点数/实数:float或Real,4个字节,32个位组成
所有整数数据的Zui大值(无符号)计算即2的位次方-1,例如:位:2^1^-1=1; 字:2^16^-1=65535
对于有符号(即正负数)整数,Zui高位代表符号位,当Zui高位为1时代表负数;以有符号整数int为例:Zui小值=-(2^15^)=-32768,Zui大值=2^15^-1=32767**(为什么不是-32767~+32767是因为+0,-0的存在,人为规定Zui小值是-32768)**
一 | 基本数据类型 |
基本数据类型:包括位、位序列、整数、浮点数、日期时间。字符也属于基本数据类型
位和位序列
注意:位序列有数值表示方式,但一般不直接用于数学运算。通常在控制字、状态字、错误代码、标志字、状态位集合等处使用位序列。而数学运算使用下面的整数数据类型与浮点数数据类型。
整数数据类型
数据类型 | 位大小 | 数值类型 | 数值范围 | 常数示例 | 地址示例 |
---|---|---|---|---|---|
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 |
数据类型 | 位大小 | 数值范围 | 常数示例 | 地址示例 |
---|---|---|---|---|
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 |
浮点型实数数据类型
如 ANSI/IEEE 754-1985 标准所述,实(或浮点)数以 32 位单精度数 (Real) 或 64 位双精度数(LReal) 表示。 单精度浮点数的精度Zui高为 6 位有效数字,
而双精度浮点数的精度Zui高为 15 位有效数字。在输入浮点常数时,Zui多可以指定 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 |
|
时间和日期数据类型
TIME 数据作为有符号双整数存储,基本单位为毫秒。存储的数值是多少,就代表有多少 ms。 编辑时可以选择性使用天(d)、小时(h)、分钟 (m)、秒 (s) 和毫秒 (ms) 作为单位。不需要指定全部时间单位。 例如,T#5h10s和 500h 均有效。所有指定单位值的组合值不能超过以毫秒表示的时间日期类型的上限或下限(-2,147,483,648ms 到 +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/ | 32 | TOD#0:0:0.0 到 TOD#23:59:59.999 |
|