以元素计的大小 (SIZE)
此信息适用于
Compact GuardLogix
5370、ControlLogix
5570、Compact GuardLogix
5370、GuardLogix
5570、Compact GuardLogix
5380、ControlLogix
5580 和 ControlLogix 5590 控制器。SIZE 指令可计算 Source 数组指定维数或字符串操作数中的元素数目(大小),并将结果放入 Size 操作数中。该指令可计算数组某维度的大小。
该指令可对以下类型的数据执行运算:
- 数组
- 结构中的数组
- 作为较大数组一部分的数组
- 字符串型标签
可用语言
梯形图

功能块
此指令不可用于功能块中。
结构化文本
SIZE(Source,Dimtovary,Size);
操作数
重要提示:
以下情况下会导致运行出现意外:
- 输出标签操作数被覆盖。
- 结构操作数的成员被覆盖。
- 除非另外指定,否则结构操作数由多条指令共用。
指令中混用数据类型时,需遵从相关的数据转换规则。请参阅 数据转换。
梯形图
操作数 | 数据类型 CompactLogix 5370、ControlLogix 5570、Compact GuardLogix 5370 和 GuardLogix 5570 控制器 | 数据类型 CompactLogix 5380、ControlLogix 5580、Compact GuardLogix 5380、GuardLogix 5580 和 ControlLogix 5590 控制器 | 格式 | 说明 | |
|---|---|---|---|---|---|
Source | SINT INT DINT REAL structure String type | BOOL SINT INT DINT REAL LINT USINT UINT UDINT ULINT LREAL structure String type TIME TIME32 LTIME DT LDT | 数组标签 | 指令执行运算要使用的数组的第一个元素 在验证过程中将不接受非数组标签 | |
Dimension to Vary | DINT | DINT | 立即数 (0、1、2) | 要使用的维度: | |
For the size of: | Enter: | ||||
first dimension | 0 | ||||
second dimension | 1 | ||||
third dimension | 2 | ||||
Size | SINT INT DINT REAL | SINT INT DINT REAL | 标签 | 用于存储数组指定维度中元素数目的标签 | |
有关结构化文本中表达式语法的详细信息,请参阅结构化文本语法。
影响数学状态标志
否
严重/轻微故障
没有特定于此指令的故障。对于数组索引故障,请参阅 数组索引编制。
执行
梯形图
条件/状态 | 执行的操作 |
|---|---|
预扫描 | 不适用 |
梯级输入条件为假 | 将梯级输出条件设置为梯级输入条件。 |
梯级输入条件为真 | 将梯级输出条件设置为梯级输入条件。 指令执行。 |
后扫描 | 不适用 |
结构化文本
条件/状态 | 执行的操作 |
|---|---|
预扫描 | 请参见“梯形图”表中的“预扫描”行 |
正常执行 | 请参见“梯形图”表中的“梯级输入条件为真”行。 |
后扫描 | 请参见“梯形图”表中的“后扫描”行。 |
示例
示例 1
计算 array_a 维度 0(第一维)的元素数目。将大小存储在 array_a_size 中。在此示例中,array_a 的维度 0 有 10 个元素。
梯形图

结构化文本
SIZE(array_a,0,array_a_size);
示例 2
计算 string_1(字符串)的 DATA 成员中的元素数目。将大小存储在 string_1_size 中。
在此示例中,string_1 的 DATA 成员有 82 个元素。字符串使用默认的 STRING 数据类型。由于每个元素存储一个字符,因此 string_1 最多可包含 82 个字符。
梯形图

结构化文本
SIZE(string_1.DATA[0],0,string_1_size);
示例 3
Strings_a 是一个字符串型结构数组。SIZE 指令可计算字符串型结构的 DATA 成员中的元素数目,并将该大小值存储到 data_size_a 中。
在此示例中,DATA 成员有 24 个元素。字符串结构的用户指定长度为 24。
梯形图

结构化文本
SIZE(string_a.[0].DATA[0],0,data_size_a);
提供反馈