基本数据类型
控制器支持的元素数据类型遵循 IEC 1131-3 定义的数据类型。基本数据类型包括:
数据类型 | 说明 | 范围 |
BOOL | 1 位布尔型 | 0 = 已清除 1 = 设置 |
SINT | 1 字节整型 | -128 至 127 |
INT | 2 字节整型 | -32,768 至 32,767 |
DINT | 4 字节整型 | -2,147,483,648 至 2,147,483,647 |
LINT | 8 字节整型
小贴士:
LINT 数据类型在
CompactLogix 5370、ControlLogix 5570、Compact GuardLogix 5370 和 GuardLogix 5570 控制器上的使用受限。这些指令只能用于复制(COP、CPS)指令、CST/WallClock 时间属性、时间同步和 Add-On 自定义指令。 | -9223372036854775808 至 9223372036854775807 |
DT | 日期和时间。64 位存储;单位为微秒。 | DT#1970-01-01-00:00:00.000_000(UTC+00:00) 到 DT#2250-12-31-23:59:59.999_999(UTC+00:00)
小贴士:
在某些时区(如新加坡),范围如下:
DT#1970-01-01-08:00:00.000_000(UTC+08:00) 到 DT#2251-01-01-07:59:59.999_999(UTC+08:00) |
LDT | 长型日期和时间。64 位存储;单位为纳秒。 | LDT#1970-01-01-00:00:00.000_000(UTC+00:00) 到 LDT#2250-12-31-23:59:59.999_999_999(UTC+00:00)
小贴士:
在某些时区(如新加坡),范围如下:
LDT#1970-01-01-08:00:00.000_000_000(UTC+08:00) 到 LDT#2251-01-01-07:59:59.999_999_999(UTC+08:00) |
TIME32 | 时间的持续时间。32 位存储;单位为微秒。 | T32#-35m_47s_483ms_647us 到 T32#35m_47s_483ms_647us |
TIME | 时间的持续时间。64 位存储;单位为微秒。 | T#-106750d_12h_59m_59s_999ms_999us 至 T#106750d_12h_59m_59s_999ms_999us |
LTIME | 长型时间持续时间。64 位存储;单位为纳秒。 | LT#-106750d_12h_59m_59s_999ms_999us_999ns 至 LT#106750d_12h_59m_59s_999ms_999us_999ns |
USINT | 1 字节无符号整型 | 0 至 255 |
UINT | 2 字节无符号整型 | 0 至 65,535 |
UDINT | 4 字节无符号整型 | 0 至 4,294,967,295 |
ULINT | 8 字节无符号整型 | 0 至 18,446,744,073,709,551,615 |
REAL | 4 字节浮点型 | -3.4028235E38 到 -1.1754944E-38 (负值) 和 0.0 和 1.1754944E-38 到 3.4028235E38 (正值) |
LREAL | 8 字节浮点数 | -1.7976931348623157E308 到 -2.2250738585072014E-308 (负值) 和 0.0 和 2.2250738585072014E-308 到 1.7976931348623157E308 (正值) |
这些控制器支持以下基本数据类型:
控制器 | 数据类型 |
|---|---|
CompactLogix 5380、ControlLogix 5580、Compact GuardLogix 5380、GuardLogix 5580 和 ControlLogix 5590 控制器 | SINT、INT、DINT、LINT、REAL USINT、UINT、UDINT、ULINT、LREAL |
CompactLogix 5370、ControlLogix 5570、Compact GuardLogix 5370 和 GuardLogix 5570 控制器 | SINT、INT、DINT、LINT、REAL |
控制器将所有立即数按 DINT 数据类型进行处理。
REAL 数据类型还存储
无穷大和
NAN,但软件显示因显示格式而异。
无穷大和
NAN,但软件显示因显示格式而异。数据类型转换
如果同一指令中的操作数混用多种不同的数据类型,有些指令会将数据自动转换为最适合该指令的数据类型。有些情况下,控制器将对数据进行转换以适应新的数据类型;有些情况下,控制器仅仅是尽可能适应数据。
转换 | Result | ||
较大的整数转换为较小的整数 | 控制器会截断较大整数的高位并生成溢出故障。 例如: | ||
十进制 | 二进制 | ||
DINT | 65,665 | 0000_0000_0000_0001_0000_0000_1000_0001 | |
INT | 129 | 0000_0000_1000_0001 | |
SINT | -127 | 1000_0001 | |
SINT 或 INT 到 REAL | 数据精度无损失 | ||
DINT 转换为 REAL | 可能会损失数据精度。两种数据类型都是以 32 位存储数据,但 REAL 类型 32 位中的一些位用于存储指数值。如果精度出现损失,控制器从 DINT 的最低有效位获取数据。 | ||
LREAL 到 LREAL | 数据精度无损失。 | ||
LREAL 到 REAL | 可能会损失数据精度。 | ||
LREAL/REAL 到无符号整型 | 可能会损失数据精度。如果源数据过大,无法存储在控制器的目标存储位置,则可能会溢出。 | ||
有符号整型/无符号整型到 LREAL/REAL | 如果整型值的有效位过多,无法存储在目标位置,则低有效位将被截断。 | ||
有符号整型到无符号整型 | 如果源数据过大,无法存储在控制器的目标存储位置,则可能会溢出。 | ||
无符号整型到有符号整型 | 如果源数据过大,无法存储在控制器的目标存储位置,则可能会溢出。 | ||
REAL 转换为整型 | 控制器对小数部分进行四舍五入并截断非小数部分的高位。如果数据丢失,控制器会将溢出状态标志置位。 四舍五入至最接近的整数: 小于 0.5,舍去;等于 0.5,取为最接近的偶数;大于 0.5,则进位 例如: | ||
REAL(源数据) | DINT(结果) | ||
1.6 | 2 | ||
-1.6 | -2 | ||
1.5 | 2 | ||
-1.5 | -2 | ||
1.4 | 1 | ||
-1.4 | -1 | ||
2.5 | 2 | ||
-2.5 | -2 | ||
BOOL 数据类型无法与其他类型相互转换。
重要提示:
数学状态标志根据存储的值进行置位。对于通常不影响数学状态关键字的指令,如果由于指令参数混合使用不同数据类型而进行类型转换,可能会影响数学状态关键字。类型转换过程会将数学状态关键字置位。
安全数据类型
Logix Designer
应用程序会阻止修改用户定义的类型或 Add-On 定义的类型,以避免导致安全标签直接或间接引用的用户定义类型或 Add-On 定义类型的数据类型无效。(其中包括嵌套结构。)安全标签可使用以下数据类型:
- 所有基本数据类型。
- 用于安全应用指令的预定义类型。
- 用户定义数据类型或由前两个类型组成的数组。
安全标签中用户定义的数据类型成员名称的联机编辑
在
CompactLogix
5380、Compact GuardLogix
5380、ControlLogix
5580 和 GuardLogix
5580 控制器上,可以对用户自定义数据类型的成员名称进行联机编辑。但如果用户自定义数据类型用于安全标签,且控制器处于安全保护状态,联机编辑将被禁用。提供反馈