业务销售;竭诚为你服务.
公司主营西门子PLC模块,数控伺服,触摸屏等系列产品,产品*,质保一年
![]() |
参考价 | ¥670 |
订货量 | 1 |
更新时间:2019-06-02 18:57:28浏览次数:327
联系我们时请说明是化工仪器网上看到的信息,谢谢!
数控备件6FC5250-0AD05-0AA0性能
本公司宗旨:本着以诚信为本,以顾客为中心,让顾客满意,创造一个舒心的购物GATHER_BLK:将单个位合并到 ARRAY of <位序列> 的多个元素中 (S7-1500)
说明
指令“将各个位组合为 ARRAY of <位序列> 的多个元素"用于将仅包含布尔型元素的
ARRAY of BOOL、匿名 STRUCT 或 PLC 数据类型中的各个位组合为 ARRAY of <位序列
> 中的一个或多个元素。您可以在 COUNT_OUT 参数中要写入的目标 ARRAY 元素数
量。在此步中,还可隐式 ARRAY of BOOL、匿名 STRUCT 或 PLC 数据类型中所需
的元素数量。OUT 参数中目标 ARRAY 的元素数量可能多于 COUNT_OUT 参数中的
数量。要保存待组合的各个位,ARRAY of <位序列> 中必须包含足够的元素数目。但目
标 ARRAY 可能更大。
说明
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:在 OUT 参数处,将互连一个 ARRAY[0..5] of WORD (sourceArrayWord[2])。参
数 COUNT_IN 的值为“3"。在 IN 参数处,将互连一个 ARRAY[0..1,0..5,0..7] of BOOL
(destinationArrayBool[0,0,0])。参数 IN 和参数 OUT 中两个数组的大小均为 96 位。48 个
单个位将组合为 ARRAY of BOOL。
说明
如果源 ARRAY 的 ARRAY 下限不是“0",请注意以下几点:
出于性能原因,索引必须始终以 BYTE、WORD 或 DWORD 限值开始。这就意味着索引
必须从 ARRAY 的下限处开始计算。通过以下公式进行相应计算:
有效下标 = ARRAY 下限 + n(位序列数量)× 所需位序列位数
对于 ARRAY[-2..45] of BOOL 和位序列 WORD,计算如下所示:
● 有效索引 (-2) = -2 + 0 × 16
● 有效索引 (14) = -2 + 1 × 16
● 有效索引 (30) = -2 + 2 × 16
相关示例,请参见如下内容。
说明
该指令的可用性
该指令可用于 S7-1500 系列 CPU 固件版本 V2.1 及以上版本。
指令
4.1 指令
对 PLC 进行编程
1602 编程和操作手册, 10/2018
参数
下表列出了该指令的参数:
参数声明数据类型存储区说明
IN Input ARRAY[*] of
BOOL、
STRUCT 或
PLC 数据类型的
元素
I、Q、M、D、L ARRAY of
BOOL、
STRUCT 或
PLC 数据类型,
其中各个位待组
合(源 ARRAY)
这些值不得位于
的 I/O 区域或工
艺对象的 DB 内。
COUNT_OUT Input USINT, UINT,
UDINT, ULINT
I、Q、M、D、L 计数目标
ARRAY 的元素
数量。
该值不得位于的
I/O 区域或工艺
对象的数据库
内。
OUT Output ARRAY[*] of <
位序列> 的元素
I、Q、M、D、L 保存各个位的
ARRAY of <位
序列>(目标
ARRAY)
有关有效数据类型的更多信息,请参见“另请参见"。
下限为“0"的源 ARRAY 示例
在块接创建以下变量:
变量区域数据类型
SourceArrayBool Input ARRAY[0..95] of BOOL
CounterOutput UDINT
DestinationArrayWord Output ARRAY[0..5] of WORD
指令
4.1 指令
对 PLC 进行编程
编程和操作手册, 10/2018 1603
以下示例说明了该指令的工作原理:
STL
CALL GATHER_BLK // 调用该指令
// 从“???"下拉列表中选择所需数据类型。
IN := SourceArrayBool[0] // 从操作数 #SourceArrayBool 的第 1 个元素开
始,将 48 个位组合到操作数
#DestinationArrayWord 中。
COUNT_OUT := #CounterOutput // 组合 3 个字
OUT := DestinationArrayWord[2] // 目标 ARRAY 中的起点是第三个元素。这意味着前
16 位将写入目标 ARRAY 的第三个字,第二组 16 位
写入第四个字,第三组 16 位写入第五个字。
下表将通过具体的操作数值对该指令的工作原理进行说明:
参数操作数数据类型
IN SourceArrayBool[0] 操作数“SourceArrayBool"
的数据类型为 ARRAY[0..95]
of BOOL。这意味着,它可
提供 96 个 BOOL 元素,可
再次组合成字。
COUNT_OUT CounterOutput = 3 UDINT3(要写入 3 个字。这
意味着源 ARRAY 中必须包
含 48 个位。)
OUT DestinationArrayWord[2] 操作
数“DestinationArrayWord"
的数据类型为 ARRAY[0..5]
of WORD。这意味着包含 6
个 WORD 元素。
下限为“-2"的源 ARRAY 示例
在块接创建以下变量:
变量区域数据类型
SourceArrayBool Input ARRAY[-2..93] of BOOL
CounterOutput UDINT
DestinationArrayWord Output ARRAY[0..5] of WORD
指令
4.1 指令
对 PLC 进行编程
1604 编程和操作手册, 10/2018
以下示例说明了该指令的工作原理:
STL
CALL GATHER_BLK // 调用该指令
// 从“???"下拉列表中选择所需数据类型。
IN := SourceArrayBool[14] // 从操作数 #SourceArrayBool 的第 16 个元素开
始,将 48 个位组合到操作数
#DestinationArrayWord 中。
COUNT_OUT := #CounterOutput // 组合 3 个字
OUT := DestinationArrayWord[2] // 目标 ARRAY 中的起点是第三个元素。这意味着将忽
略源 ARRAY 的前 16 位。第二组 16 位将写入目标
ARRAY 的第三个字,第三组 16 位写入第四个字,第四
组 16 位写入第五个字。不考虑源 ARRAY 剩余的 64
个位。
下表将通过具体的操作数值对该指令的工作原理进行说明:
参数操作数数据类型
IN SourceArrayBool[14] 操作数“SourceArrayBool"
的数据类型为
ARRAY[-2..93] of BOOL。
由于起点是第 16 个元素,因
此仅 80 个 BOOL 元素可再
次组合到字中。
COUNT_OUT CounterOutput = 3 UDINT3(要写入 3 个字。这
意味着源 ARRAY 中必须包
含 48 个位。)
OUT DestinationArrayWord[2] 操作
数“DestinationArrayWord"
的数据类型为 ARRAY[0..5]
of WORD。这意味着包含 6
个 WORD 元素。
下一篇:数控备件6FC5250-0AD03-0AA0分销商