公司主营:西门子数控,S7-200CN.S7-200smart.S7-300.S7-400.S7-1200.6ES5 ET200 人机界面,变频器,DP总线,MM变频器,6SE70交流工程调速变频器6RA70等系列产品。
产品简介
详细介绍
西门子组态6AV2105-0MA15-0AA0销售
因为诚信所以简单,成交只是开始,服务*止步。SCATTER_BLK:将 ARRAY of <位序列> 中的元素解析为单个位
说明
“将位序列 ARRAY 的元素解析为单个位"指令用于将 BYTE、WORD、DWORD 或
LWORD 数据类型的 ARRAY 分解为单个位,并保存在元素类型仅为布尔型的 ARRAY of
BOOL、匿名 STRUCT 或 PLC 数据类型中。在 COUNT_IN 参数中,可待解析源
ARRAY 中的元素数目。IN 参数中源 ARRAY 的元素数量可能多于 COUNT_IN 参数中的指
定数量。要保存所解析位序列的各个位,ARRAY of BOOL、匿名 STRUCT 或 PLC 数据
类型中必须包含足够的元素数量。但这可能会目标存储区空间。
说明
ARRAY of BOOL
如果 ARRAY 是一个 ARRAY of BOOL,即使未显式声明,也将对所包含维度的填充
位进行计数。
示例 1:ARRAY[1..10,0..4,1..2] of BOOL 的处理与 ARRAY[1..10,0..4,1..8] of BOOL
或 ARRAY[0..399] of BOOL 类似。
示例 2:在 IN 参数处,将互连一个 ARRAY[0..5] of WORD (sourceArrayWord[2])。参数
COUNT_IN 的值为“3"。在 OUT 参数处,将互连一个 ARRAY[0..1,0..5,0..7] of BOOL
(destinationArrayBool[0,0,0])。参数 IN 和参数 OUT 中两个数组的大小均为 96 位。ARRAY
of WORD 将解析为 48 个单个位。
说明
如果目标 ARRAY 的 ARRAY 下限不是“0",请注意以下几点:
出于性能方面的原因,索引必须始终以 BYTE、WORD、DWORD 或 LWORD 开始。
这就意味着索引必须从 ARRAY 的下限处开始计算。通过以下公式进行相应计算:
有效下标 = ARRAY 下限 + n(位序列数量)× 所需位序列位数
对于 ARRAY[-2..45] of BOOL 和位序列 WORD,计算如下所示:
● 有效索引 (-2) = -2 + 0 × 16
● 有效索引 (14) = -2 + 1 × 16
● 有效索引 (30) = -2 + 2 × 16
相关示例,请参见如下内容。
说明
该指令的可用性
该指令可用于固件版本为 V4.2 及以上版本的 S7-1200 系列 CPU 和固件版本为 V2.1 及以
上版本的 S7-1500 系列 CPU。
指令
4.1 指令
对 PLC 进行编程
编程和操作手册, 10/2018 931
例如,通过这种您可以解析状态字,并使用索引读取和改变单个位的状态。使用
GATHER,可再次将各个位组合为位序列。
如果下列条件之一,使能输出 ENO 将返回状态“0":
● 使能输入 EN 的状态为“0"。
● 源 ARRAY 中的元素数量少于 COUNT_IN 参数中的数量。
● 目标 ARRAY 的索引不以 BYTE、WORD、DWORD 或 LWORD 开始。在这种情
况中,将不向 ARRAY of BOOL 中写入任何结果。
● ARRAY[*] of BOOL、STRUCT 或 PLC 数据类型未提供所需的元素数量。此时,将尽
可能多地解析位序列并写入 ARRAY of BOOL、匿名 STRUCT 或 PLC 数据类型中。其
余位序列将不考虑在内。
参数
下表列出了该指令的参数:
参数声明数据类型存储区说明
S7-1200 S7-1500
EN Input BOOL BOOL I、Q、M、D、
L 或常量
使能输入
ENO Output BOOL BOOL I、Q、M、D、
L
使能输出
IN Input ARRAY[*] of
<位序列> 的
元素
ARRAY[*]
of <位序列
> 的元素
I、Q、M、D、
L
所解析的
ARRAY of <
位序列>
这些值不得位
于的 I/O 区域
或工艺对象的
DB 内。
指令
4.1 指令
对 PLC 进行编程
932 编程和操作手册, 10/2018
参数声明数据类型存储区说明
S7-1200 S7-1500
COUNT_IN Input USINT,
UINT, UDINT
USINT,
UINT,
UDINT,
ULINT
I、Q、M、D、
L
对待解析源
ARRAY 中的
元素数量进行
计数。
该值不得位于
的 I/O 区域或
工艺对象的数
据库内。
OUT Output ARRAY[*] of
BOOL、
STRUCT 或
PLC 数据类型
的元素
ARRAY[*]
of BOOL、
STRUCT
或 PLC 数
据类型的元
素
I、Q、M、D、
L
保存
ARRAY、
STRUCT 或
PLC 数据类型
中的各个位
可以从指令框的“???"下拉列表中选择所需位序列。
有关有效数据类型的更多信息,请参见“另请参见"。
下限为“0"的目标 ARRAY 示例
在块接创建以下变量:
变量区域数据类型
Enable Input BOOL
SourceArrayWord ARRAY[0..5] of WORD
CounterInput UDINT
EnableOut Output BOOL
DestinationArrayBool ARRAY[0..95] of BOOL
以下示例说明了该指令的工作原理:
指令
4.1 指令
对 PLC 进行编程
编程和操作手册, 10/2018 933
下表将通过具体的操作数值对该指令的工作原理进行说明:
参数操作数数据类型
IN SourceArrayWord[2] ARRAY[0..5] of WORD(可
以解析 96 位。)
COUNT_IN CounterInput = 3 UDINT3(将解析 3 个字或
48 位。这意味着目标
ARRAY 中至少需包含 48 个
位。)
OUT DestinationArrayBool[0] 操作
数“DestinationArrayBool"
的数据类型为 ARRAY[0..95]
of BOOL。这表示它可以提
供 96 个 BOOL 元素。
如果操作数 #Enable 在使能输入 EN 返回状态“1",则将执行该指令。从分配给操作
数 #DestinationArrayBool 各元素的第 1 个元素开始,将操作数 #SourceArrayWord 的第
3、第 4 和第 5 个 WORD 解析为单个的位 (48)。如果在指令执行期间出现错误,操作数
#EnableOut 将在使能输出 ENO 处返回状态“0"。
下限为“-2"的目标 ARRAY 示例
在块接创建以下变量:
变量区域数据类型
Enable Input BOOL
SourceArrayWord ARRAY[0..5] of WORD
CounterInput UDINT
EnableOut Output BOOL
DestinationArrayBool ARRAY[-2..93] of BOOL
以下示例说明了该指令的工作原理:
指令
4.1 指令
对 PLC 进行编程
934 编程和操作手册, 10/2018
下表将通过具体的操作数值对该指令的工作原理进行说明:
参数操作数数据类型
IN SourceArrayWord[2] ARRAY[0..5] of WORD(可
以解析 96 位。)
COUNT_IN CounterInput = 3 UDINT3(将解析 3 个字或
48 位。这意味着目标
ARRAY 中至少需包含 48 个
位。)
OUT DestinationArrayBool[14] 操作
数“DestinationArrayBool"
的数据类型为
ARRAY[-2..93] of BOOL。
这表示它可以提供 96 个
BOOL 元素。
如果操作数 #Enable 在使能输入 EN 返回状态“1",则将执行该指令。从分配给操作
数 #DestinationArrayBool 的各元素的第 16 个元素开始,将操作数 #SourceArrayWord 的
第 3、第 4 和第 5 个字解析为单个位 (48)。如果在指令执行期间出现错误,操作数
#EnableOut 将在使能输出 ENO 处返回状态“0"。其余 32 位不写入。
有关上述示例的更多信息和程序代码,请参见“指令的示例库 (页 697)"
下一篇:西门子编程软件6ES7823-0BA00-1BA0现货