![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/dbb7e35f65d27f6128353502981dc41f.png)
功能描述
将仅包含布尔型元素的 ARRAY of BOOL、匿名 STRUCT 或 PLC 数据类型中的各个位组合为 ARRAY of <位序列> 中的一个或多个元素。
在 COUNT_OUT 参数中指定要写入的目标 ARRAY 元素数量。在此步中,还可隐式指定 ARRAY of BOOL、匿名 STRUCT 或 PLC 数据类型中所需的元素数量。
OUT 参数中目标 ARRAY 的元素数量可能多于 COUNT_OUT 参数中的指定数量。要保存待组合的各个位,ARRAY of <位序列> 中必须包含足够的元素数目。但目标 ARRAY 可能更大。
需要设置合并目标数据的数据类型和COUNT_OUT的数据类型。
执行条件
1.使能输入 EN 的信号状态不能为“0”。
2.源 ARRAY 的下标不能以 BYTE、WORD、DWORD 或 LWORD 限值开始。此时,不会向 ARRAY of <位序列> 中写入任何结果。 3.ARRAY[*] of <位序列> 中未提供所需的元素数量。此时,将尽可能多地组合位序列并写入 ARRAY of <位序列> 中。不再考虑剩余的位。
PS :对于执行条件第三条,我也不太理解。暂作记录
接口参数
参数 | 声明 | 数据类型(1200) | 数据类型(1500) | 存储区 | 说明 |
---|---|---|---|---|---|
EN | Input | BOOL | BOOL | I、Q、M、D、L 或常量 | 使能输入 |
ENO | Output | BOOL | BOOL | I、Q、M、D、L | 使能输出 |
IN | Input | ARRAY[*] of BOOL、STRUCT 或 PLC 数据类型的元素 | ARRAY[*] of BOOL、STRUCT 或 PLC 数据类型的元素 | I、Q、M、D、L | ARRAY of BOOL、STRUCT 或 PLC 数据类型,包含待组合的各个位(源 ARRAY) |
COUNT_OUT | Input | USINT, UINT, UDINT | USINT, UINT, UDINT, ULINT | I、Q、M、D、L | 待写入目标 ARRAY 元素数量的计数器 |
OUT | Output | BYTE, WORD, DWORD | BYTE, WORD, DWORD, LWORD | I、Q、M、D、L | 组合后的位序列,保存在一个变量中 |
程序举例
1.创建DB块,添加数据
2.创建FB块,添加功能指令,在OB1中调用
仿真演示
从第10个元素开始,遵循高位低字节原则,转换为二进制为0000 0011,OUt处的实参位16进制,合并后为3.